{ name: "data.process", params: ["input"], description: "Process data" }
{ name: "data.process", params: ["input", "exec_cmd"], description: "Process data with shell" }
HTTP 400 invalid_delegation_chain — codepoint U+0430 (ag-gateway/src/delegation.rs:250)
HashSet<String> cycle detection — the two strings differ by one invisible byte.HTTP 400 invalid_delegation_chain — codepoint U+200B caught BEFORE cycle check
HTTP 400 invalid_delegation_chain — codepoint U+FEFF
HTTP 400 invalid_delegation_chain — codepoint U+1F916
SHA-256 → ag:replay:{hash}. First call SET-NX succeeds; second SET-NX returns false.HTTP 409 task_replay_detected — duplicate delegation within 60s (ag-gateway/src/proxy.rs:1027)
Replay block (proxy.rs:968) is gated on chain.len()>1. With CLAMPD_DELEGATION_SIGNATURES=on, multi-hop chains hit the signature gate first — replay never runs. Flip the flag off to demo S13; that disables S15.
Expected: intra_session_descriptor_drift flag, delegation risk +0.5
"lookup customer records"
comms.email.send — is_egress_op = true (taxonomy-driven, categories.toml)
purpose_drift:egress_under_read_purpose (risk +0.4)
X-Clampd-Delegation-Signature header.CLAMPD_DELEGATION_SIGNATURES=on, the gateway requires a Macaroon-style cryptographic proof for any chain.len() > 1.HTTP 403 delegation_signature_required (ag-gateway/src/proxy.rs:609)
ag:delegation:approved:{caller}:{target}):{ "status": "approved", "allowed_tools": ["database.query"], "max_delegation_depth": 3 }
shell.exec — NOT in allowed_tools
delegation_tool_not_allowed (ag-policy/src/delegation_workflow.rs:64-79)
"lookup account info"
auth.secret.read on vault/prod/db_root_password — is_sensitive_source = true
purpose_drift:sensitive_read_under_read_purpose (risk +0.4)