approval-gate::configuration-id
Returns this approval-gate instance's configuration entry ID, without its value.
- idstringrequired
Policy and decision surface for human-held function calls — pre_trigger gate, pending inbox, per-session permission settings, and two notification trigger types.
iii trigger compose::add worker=approval-gateRun in your project with the iii engine running. Exact versions are immutable and digest-pinned.
Returns this approval-gate instance's configuration entry ID, without its value.
Add a function to the session's auto-mode trust list (idempotent). Human/console-only.
The stored per-session record (scope `approval_settings`). Reads compute the effective settings from configuration defaults when no record exists — see settings.rs.
Consulted only in auto mode.
ms epoch
Consulted in every mode — remembered human decisions.
ms epoch
ms epoch
Record a per-session 'approve always' grant (honoured in every mode). Human/console-only.
The stored per-session record (scope `approval_settings`). Reads compute the effective settings from configuration defaults when no record exists — see settings.rs.
Consulted only in auto mode.
ms epoch
Consulted in every mode — remembered human decisions.
ms epoch
ms epoch
Drop the session's stored settings record (revert to configuration defaults).
Report what approval::gate WOULD decide for a function id (allow / deny / needs_approval) without deciding it: no pending record, no writes. Called by the harness before binding a trigger to an ordinary function, since a trigger-fired call runs outside any turn and cannot ask a human.
Call arguments, for deployments whose rules carry argument constraints. Defaults to `{}`.
The function id to evaluate.
Session whose effective settings apply (mode + always-allow list).
Why, for the non-allow verdicts.
What [`crate::functions::gate`] WOULD answer for this call.
post_trigger hook: watch shell::*/coder::* dispatch failures for a jail-scope filesystem_access_request and hold a filesystem_access pending approval for it. Called by the harness only.
pre_trigger payload.
Sub-agent depth (hooks run for child turns too).
The per-send tracing metadata (`metadata.fs_scope.root` is the user-picked session workspace, absolute + canonical).
post_trigger payload: the function_result about to be delivered.
pre_trigger hook: evaluate the permission model and answer continue / deny / hold; writes the pending inbox record on hold. Called by the harness only.
pre_trigger payload.
Sub-agent depth (hooks run for child turns too).
The per-send tracing metadata (`metadata.fs_scope.root` is the user-picked session workspace, absolute + canonical).
post_trigger payload: the function_result about to be delivered.
Read one pending record; null when resolved or unknown.
The function call id of the held call.
The session the pending record belongs to.
The inbox payload — shared by both triggers, `list_pending`, and `get_pending`. Self-describing (all ids inside the value) and notification-safe (arguments pass through redaction).
Present only when `kind == "filesystem_access"`.
The raw offending path from the request, as sent by the caller.
The jail-scope rejection code that produced this hint (`S215`, `S220`, `C215`, `C220`).
Canonical root a grant should target (existing directory, or nearest existing ancestor directory of the offending path).
Redacted — safe to forward to notification channels.
First text block of the assistant message that contained this function_call. Best-effort; not derivable from `pre_trigger` `HookInput` in v1, so always omitted today.
Sub-agent depth (0 = top-level), from `HookInput`.
`"function"` or `"filesystem_access"`.
ms epoch
Tenancy + routing (trigger config filter target).
Read the session's effective settings (stored record or configuration defaults); never writes.
The stored per-session record (scope `approval_settings`). Reads compute the effective settings from configuration defaults when no record exists — see settings.rs.
Consulted only in auto mode.
ms epoch
Consulted in every mode — remembered human decisions.
ms epoch
ms epoch
Whether a per-session record exists.
The pending inbox across sessions, with tenancy filters; the catch-up path for notification workers after a restart.
Opaque.
Default 50.
Equality match against `session_metadata` (tenancy).
Ordered by pending_at ascending.
Present only when `kind == "filesystem_access"`.
The raw offending path from the request, as sent by the caller.
The jail-scope rejection code that produced this hint (`S215`, `S220`, `C215`, `C220`).
Canonical root a grant should target (existing directory, or nearest existing ancestor directory of the offending path).
Redacted — safe to forward to notification channels.
First text block of the assistant message that contained this function_call. Best-effort; not derivable from `pre_trigger` `HookInput` in v1, so always omitted today.
Sub-agent depth (0 = top-level), from `HookInput`.
`"function"` or `"filesystem_access"`.
ms epoch
Tenancy + routing (trigger config filter target).
Internal: hot-reload approval-gate from the authoritative configuration when it changes — swaps the per-call snapshot (timeouts + approval defaults).
Configuration id that changed (advisory; the handler re-fetches the value).
Internal: session::deleted handler (purge the session's settings and pending records).
Internal: harness::turn-completed handler (purge the turn's pending records).
Remove a function from the session's auto-mode trust list (no-op when absent). Human/console-only.
The stored per-session record (scope `approval_settings`). Reads compute the effective settings from configuration defaults when no record exists — see settings.rs.
Consulted only in auto mode.
ms epoch
Consulted in every mode — remembered human decisions.
ms epoch
ms epoch
Apply a human decision to a held call: release it for execution (allow) or deliver a denial (deny). Human/console-only.
Only meaningful when the target record is `kind: "filesystem_access"` and `decision: "allow"`. Defaults to `once`.
Surfaced to the model on deny.
false: unknown/already-resolved pending call.
Passthrough from harness::function::resolve.
Set the session's permission mode (manual / auto / full). Human/console-only.
The stored per-session record (scope `approval_settings`). Reads compute the effective settings from configuration defaults when no record exists — see settings.rs.
Consulted only in auto mode.
ms epoch
Consulted in every mode — remembered human decisions.
ms epoch
ms epoch
A function call was held for human approval and its inbox record written. Payload: PendingApprovalRecord (redacted args, session context, expiry). Bind notification workers here.
Equality match against the record's `session_metadata` (every key given here must equal the stored value — subset match).
Only deliver events for this session.
A pending approval left the inbox (outcome: allow | deny | timeout | aborted). Emitted exactly once per record; lets UIs clear badges.
Equality match against the record's `session_metadata` (every key given here must equal the stored value — subset match).
Only deliver events for this session.
Find workers, kits and executables, or jump to a page.