Action bindings
The commands an operator binds to the actions of one installed protocol, so that b10x-loom run drives a protocol whose actions no built-in binding performs. The operator declares them in a run configuration file (run --action-bindings <FILE>): the protocol, by its registration name, and for each action one argv, run without a shell. A run of that protocol performs an admitted action by starting its command with the action's arguments as JSON on standard input; the command's exit status decides the outcome, 0 performed and any other refused, and its standard output, one JSON object, is the action's performed report. The command is the verifier of its own action: its report may state evidence of the kinds the action declares it may produce, and only those are submitted, about the intent. A binding confers no authority: an action that needs a capability still needs its grant, and the governor still decides admission. Commands start with a cleared environment that keeps only PATH, never Loom's own credentials, and are killed past the configuration's timeout. Substrate does not confine them, so a run given a run configuration is refused, before any model call, with the confinement refusal CommandUnconfined unless the operator opts in to running the commands unconfined: with the run's --unconfined-bindings flag, or with the file's own unconfined_bindings: true; the flag wins, and the run reports which one opted in. A routed protocol that declares an action the file binds no command to ends with no local executor, naming the action. Configuration is trusted host context, never model output, and a protocol document never names a command.
intake.bindings is one of intake's bounded contexts. All domains.
Types
ActionBinding
intake.bindings.ActionBinding is a record of two fields:
- action —
String argv—List<String>
ActionBindings
intake.bindings.ActionBindings is a record of four fields:
protocol—Stringtimeout_seconds—Optional<Integer>, which may be absentunconfined_bindings—Optional<Boolean>, which may be absentbindings—List<intake.bindings.ActionBinding>
CommandEvidence
intake.bindings.CommandEvidence is a record of two fields:
kind—Stringresult—String
Two of the types above are reached by nothing else in this system: intake.bindings.ActionBindings and intake.bindings.CommandEvidence. No entity, view, command, event, error or crossing names them, so it is either vocabulary something outside this specification uses or a leftover — and only a person can tell which.
Generated from intake v1 · model digest 91e7b24c1442a41a622f4feaa84db250d7769d7784122bae93f2e0cda0c64c8e · contract digest slice-sha256/2:8d1fee2eed0f196c1fa284d8313277e6f21a4618da2960148c3abb8b0493f58f. Do not edit this file; change the specification and regenerate it with task docs-generate.