feat(ack): support project agent routing overrides
This commit is contained in:
@@ -224,6 +224,39 @@ class CanonicalHashTests(unittest.TestCase):
|
||||
|
||||
|
||||
class ProfileValidationTests(unittest.TestCase):
|
||||
def test_pi_default_model_is_explicitly_supported(self) -> None:
|
||||
routing = {
|
||||
"profileVersion": 1,
|
||||
"mode": "orca",
|
||||
"modelAllowlist": {
|
||||
"pi": {
|
||||
"developer": {"standard": [None], "strong": [None]},
|
||||
},
|
||||
"cursor-agent": {"test": {"standard": ["auto"]}},
|
||||
},
|
||||
"profiles": {
|
||||
"pi-dev": {
|
||||
"role": "developer",
|
||||
"cli": "pi",
|
||||
"tier": "standard",
|
||||
"model": None,
|
||||
"reasoningEffort": "medium",
|
||||
"permissionMode": "workspace-write",
|
||||
},
|
||||
"cursor-test": {
|
||||
"role": "test",
|
||||
"cli": "cursor-agent",
|
||||
"tier": "standard",
|
||||
"model": "auto",
|
||||
"reasoningEffort": None,
|
||||
"permissionMode": "workspace-write",
|
||||
},
|
||||
},
|
||||
"defaults": {"developer": "pi-dev", "test": "cursor-test"},
|
||||
}
|
||||
|
||||
self.assertEqual(worker_profiles.validate_orchestration(routing), [])
|
||||
|
||||
def test_valid_orchestration_passes(self) -> None:
|
||||
self.assertEqual(
|
||||
worker_profiles.validate_orchestration(valid_orchestration()),
|
||||
@@ -406,6 +439,44 @@ class ProfileValidationTests(unittest.TestCase):
|
||||
|
||||
|
||||
class ArgvRendererTests(unittest.TestCase):
|
||||
def test_pi_default_model_omits_model_flag(self) -> None:
|
||||
profile = {
|
||||
"role": "developer",
|
||||
"cli": "pi",
|
||||
"tier": "standard",
|
||||
"model": None,
|
||||
"reasoningEffort": "medium",
|
||||
"permissionMode": "workspace-write",
|
||||
}
|
||||
|
||||
self.assertEqual(
|
||||
worker_profiles.render_worker_argv(
|
||||
profile,
|
||||
"/home/ace/.local/share/mise/shims/pi",
|
||||
"/repo/demo",
|
||||
),
|
||||
[
|
||||
"/home/ace/.local/share/mise/shims/pi",
|
||||
"--thinking",
|
||||
"medium",
|
||||
],
|
||||
)
|
||||
|
||||
def test_pi_read_only_limits_tools(self) -> None:
|
||||
profile = {
|
||||
"role": "test",
|
||||
"cli": "pi",
|
||||
"tier": "standard",
|
||||
"model": None,
|
||||
"reasoningEffort": "low",
|
||||
"permissionMode": "read-only",
|
||||
}
|
||||
|
||||
self.assertEqual(
|
||||
worker_profiles.render_worker_argv(profile, "/usr/local/bin/pi", "/repo/demo"),
|
||||
["/usr/local/bin/pi", "--thinking", "low", "--tools", "read,grep,find,ls"],
|
||||
)
|
||||
|
||||
def test_codex_exact_safe_argv(self) -> None:
|
||||
profile = valid_orchestration()["profiles"]["codex-dev-standard"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user