Oko/Docs

Command reference

oko sessions send

Types a message into the broker terminal running a session; every supervised executor receives the declared wording for its measured standing, then the exact requested instruction.

Invocation#

Command
oko sessions send ID|--executors-of SUPERVISOR --text TEXT [--submit] [--defect ID] [--intervention redirect|approval] [--assign] [--as-standing] [--socket PATH]

Inputs and options#

  • --text is required. Without --submit the text remains a draft in the terminal, not a delivered instruction. --submit presses Return separately after the text. A supervised executor requires --defect ID before a message is typed; first use `oko defects record` to register the failure. --intervention explicitly identifies a redirect or approval rather than guessing from the words. --assign requires one recorded executor, --defect and --submit; a draft cannot transfer ownership.
  • ID is a broker terminal, or an agent session whose transcript a broker terminal is writing. A session no broker terminal runs (an OMP window in VS Code) is written to with `oko sessions resume`, which continues it in a broker terminal.
  • --executors-of SUPERVISOR reaches every executor `oko sessions role set <id> executor --supervisor SUPERVISOR` recorded; it takes no ID.
  • --as-standing requires recorded executor targets and explicitly requests the same standing rendering used for all supervised sends. Compare the session or model with `oko scorecard standing --json` before sending. The original instruction is checked against operator rulings before a standing opening is added.

Output and state effect#

  • Records a requested assignment first, then sends the rendered text and a separate Return. Without --submit, only drafts the text; it does not create an instruction. Prints `{sent: [{target, terminal, defect, standingTone}]}` on delivery. standingTone cites the session, measured standing, declared level, credited points, charged commits and compiler errors; the intervention and submitted instruction records keep the actual text typed. Each linked intervention records its target and observed delivery outcome. If terminal delivery fails after assignment, the defect still names its executor and the intervention records the failure. A submitted send to a supervised executor keeps one instruction per target, with its transcript coordinate captured before typing; settlement judges the next turn as acted or ignored through Brama.

Refusals and safe exits#

  • Missing ID or --text, an unknown flag, an invalid --intervention, --assign without a defect, --submit or a single target, and a supervised executor without --defect are refused before typing. A closed, withdrawn or already repaired defect is refused with its identity. --assign to a terminal that is not a recorded executor is refused without typing. An unreadable transcript is refused with its path and cause before ownership or typing. The supervisor's proposed text is compared through Brama with the operator decisions bound to installed Tama hooks before a keystroke; loosening a gate or directing prohibited build, test or SSH quotes the decision and date. An unbound hook, unreadable catalogue or unavailable model refuses with its actual cause instead of guessing.
  • A missing charge register, unresolved compiler attribution, unreadable credit claim, absent scorecard session, or malformed charged error refuses before typing, naming that source. The sender never silently chooses neutral wording. --as-standing on a nonexecutor is a usage refusal.
  • With --submit, a target whose terminal took the text but not the Return is refused with “the text reached terminal <terminal> but Return was not pressed: <cause>”.
  • Per target, Oko names a missing terminal, unwritten transcript, external process, broker refusal or defect-register write failure with the observed delivery state. One failed target does not stop the others; the command fails with `completed <targets>; failed: <target>: <cause>`. A message that reached a terminal but could not be retained on its defect is never reported as unsent.
  • --executors-of requires a recorded supervisor with executors; each target is bound to the defect before any is sent. A defect-register read or assignment-write failure refuses before a keystroke; an intervention write failure after delivery names that delivery and the write cause.
  • An executor send on a defect another session holds is refused before any keystroke: the register names another owner (`defect … is claimed by session …`; `--assign` transfers ownership itself), or another session holds an instruction on it from an earlier send (`session … already holds instruction …`; retract it with `oko instructions retract`). Targets of one send do not refuse one another.

CLI reference#