fix(tier3): adapt define/patch to b125 role schema (was model)

Live Worldtree b125 changed POST /agents/define: the request field is
now 'role' (a model-role like 'thoughtful-character'), replacing 'model';
the response still echoes it as 'model'. Update define_agent/patch_agent
request bodies + CLI (--model -> --role); response parse + LocalAgentEntry
unchanged. Verified end-to-end against live (delete->define round-trip);
26 tier3 tests green. Full b22->b125 spec-pin bump remains a follow-up.
This commit is contained in:
2026-07-17 20:11:22 -07:00
parent 36aad58ce9
commit 860e0d56bb
4 changed files with 36 additions and 34 deletions
+17 -17
View File
@@ -43,7 +43,7 @@ class TestDefineAgent:
client,
agent_name="wizard",
system_prompt="You are a wizard.",
model="qwen3.6-35-a3b",
role="qwen3.6-35-a3b",
)
assert isinstance(info, Tier3AgentInfo)
assert info.agent_id == "ratatoskr:wizard"
@@ -64,14 +64,14 @@ class TestDefineAgent:
client,
agent_name="wizard",
system_prompt="You are a wizard.",
model="qwen3.6-35-a3b",
role="qwen3.6-35-a3b",
)
body = _json.loads(route.calls[0].request.content)
# INV-001: exactly these three keys — no layer fields, no metadata.
assert body == {
"agent_name": "wizard",
"system_prompt": "You are a wizard.",
"model": "qwen3.6-35-a3b",
"role": "qwen3.6-35-a3b",
}
@respx.mock
@@ -90,7 +90,7 @@ class TestDefineAgent:
client,
agent_name="overflow",
system_prompt="x",
model="m",
role="m",
)
assert exc.value.retry_after == 0
@@ -105,7 +105,7 @@ class TestDefineAgent:
async with httpx.AsyncClient(base_url="https://w.example") as client:
with pytest.raises(Tier3UserIdUnsupported):
await define_agent(
client, agent_name="wizard", system_prompt="x", model="m"
client, agent_name="wizard", system_prompt="x", role="m"
)
@respx.mock
@@ -120,7 +120,7 @@ class TestDefineAgent:
async with httpx.AsyncClient(base_url="https://w.example") as client:
with pytest.raises(Tier3LayerDeferred) as exc:
await define_agent(
client, agent_name="wizard", system_prompt="x", model="m"
client, agent_name="wizard", system_prompt="x", role="m"
)
assert exc.value.field == "persona"
@@ -133,7 +133,7 @@ class TestDefineAgent:
async with httpx.AsyncClient(base_url="https://w.example") as client:
with pytest.raises(AssertionError):
await define_agent(
client, agent_name="Wizard", system_prompt="x", model="m"
client, agent_name="Wizard", system_prompt="x", role="m"
)
assert route.call_count == 0
@@ -146,7 +146,7 @@ class TestDefineAgent:
async with httpx.AsyncClient(base_url="https://w.example") as client:
with pytest.raises(AssertionError):
await define_agent(
client, agent_name="ab", system_prompt="x", model="m"
client, agent_name="ab", system_prompt="x", role="m"
)
assert route.call_count == 0
@@ -159,7 +159,7 @@ class TestDefineAgent:
async with httpx.AsyncClient(base_url="https://w.example") as client:
with pytest.raises(AssertionError):
await define_agent(
client, agent_name="wizard", system_prompt="", model="m"
client, agent_name="wizard", system_prompt="", role="m"
)
assert route.call_count == 0
@@ -172,7 +172,7 @@ class TestDefineAgent:
async with httpx.AsyncClient(base_url="https://w.example") as client:
with pytest.raises(SessionApiFailed) as exc:
await define_agent(
client, agent_name="wizard", system_prompt="x", model="m"
client, agent_name="wizard", system_prompt="x", role="m"
)
assert exc.value.status == 503
@@ -196,16 +196,16 @@ class TestPatchAgent:
client,
"ratatoskr:wizard",
system_prompt="new prompt",
model="different-model",
role="different-model",
)
body = _json.loads(route.calls[0].request.content)
assert body == {"system_prompt": "new prompt", "model": "different-model"}
assert body == {"system_prompt": "new prompt", "role": "different-model"}
assert info.system_prompt == "new prompt"
assert info.model == "different-model"
@respx.mock
async def test_happy_patch_single_field(self) -> None:
"""happy_patch_single_field: omit model → body has system_prompt only."""
"""happy_patch_single_field: omit role → body has system_prompt only."""
import json as _json
updated = {**_FULL_AGENT_RESP, "system_prompt": "only this"}
@@ -349,7 +349,7 @@ class TestCli:
"define",
"--name", "wizard",
"--system-prompt", "You are a wizard.",
"--model", "qwen3.6-35-a3b",
"--role", "qwen3.6-35-a3b",
])
out = capsys.readouterr()
assert rc == 0
@@ -429,7 +429,7 @@ class TestCli:
"define",
"--name", "wizard",
"--system-prompt", "x",
"--model", "m",
"--role", "m",
])
err = capsys.readouterr().err
assert rc == 11
@@ -449,7 +449,7 @@ class TestCli:
"define",
"--name", "wizard",
"--system-prompt", "x",
"--model", "m",
"--role", "m",
])
err = capsys.readouterr().err
assert rc == 20
@@ -473,7 +473,7 @@ class TestCli:
"define",
"--name", "wizard",
"--system-prompt", "x",
"--model", "m",
"--role", "m",
])
err = capsys.readouterr().err
assert rc == 20