50 lines
1.4 KiB
JSON
50 lines
1.4 KiB
JSON
{
|
|
"version": "v0.1",
|
|
"updated_at": "2026-03-09T11:40:00+08:00",
|
|
"global": {
|
|
"max_concurrency": 3,
|
|
"queue_limit": 20,
|
|
"failure_streak_degrade_to": 1
|
|
},
|
|
"roles": {
|
|
"helix": {
|
|
"stage": "draft",
|
|
"max_concurrency": 2,
|
|
"allowed_tools": ["read", "web_search", "web_fetch", "memory_search", "sessions_spawn", "sessions_send"],
|
|
"forbidden_actions": ["external_send", "irreversible_change"]
|
|
},
|
|
"sentinel": {
|
|
"stage": "audit",
|
|
"max_concurrency": 2,
|
|
"allowed_tools": ["read", "memory_search", "session_status"],
|
|
"audit_decisions": ["PASS", "SOFT_BLOCK", "HARD_BLOCK"]
|
|
},
|
|
"anvil": {
|
|
"stage": "execute",
|
|
"max_concurrency": 2,
|
|
"allowed_tools": ["read", "write", "edit", "exec", "process"],
|
|
"requires_audit": "PASS"
|
|
}
|
|
},
|
|
"routing": [
|
|
{ "when": "new_task", "to": "helix" },
|
|
{ "when": "helix.done", "to": "sentinel" },
|
|
{ "when": "sentinel.PASS", "to": "anvil" },
|
|
{ "when": "sentinel.SOFT_BLOCK", "to": "helix" },
|
|
{ "when": "sentinel.HARD_BLOCK", "to": "val.report" }
|
|
],
|
|
"escalation": {
|
|
"must_escalate_if": [
|
|
"external_send",
|
|
"irreversible_action",
|
|
"privacy_boundary_crossing",
|
|
"budget_threshold_exceeded",
|
|
"audit_uncertainty_high"
|
|
],
|
|
"double_sign_rule": {
|
|
"required": ["sentinel", "bastion"],
|
|
"proxy_if_bastion_missing": "val"
|
|
}
|
|
}
|
|
}
|