Command reference
oko asks answer
Answers a waiting ask once and records where it was answered. Oko Desktop answers with --on oko-desktop — from the sheet that opens when an ask reaches it and from the Requests screen — and Oko iOS with oko-ios; the product that asked reads the answer from the ask.
Invocation#
oko asks answer <id> --text TEXT --on SURFACEInputs and options#
- The ask id; --text, the answer (for an ask that offers choices, exactly one of them); --on, the surface it was given on (`oko-desktop`, `oko-ios`, `terminal` for an answer typed where the service wrote the ask, or the channel's own name).
Output and state effect#
- Writes the answer, its time and surface, and prints the ask with its deliveries.
- Keeps the answer as the answering member's steering: it is stored as that member's message of the session `ask-<id>` and goes through the same ledger a transcript's messages do — read for its kind by `oko tasks read`, placed in the task graph, listed by `oko tasks map` and `oko tasks rules` with its author. An answer another surface wrote straight to the database (Oko iOS) is kept the same way by the next reading pass, which reports it under `answers.kept`.
Refusals and safe exits#
- `oko asks answer requires --text <text>`, `oko asks answer requires a non-empty --text`, the same for --on (exit 2).
- `ask <id> takes one of its choices (<choices>), not <text>; answer with --text <choice>` for an ask that offers choices.
- `ask <id> expired at <time>, so it cannot be answered; <product> asks again when it still needs the answer`; `ask <id> is already answered|withdrawn, so it cannot be answered`; `ask <id> stopped waiting while this change was made; `oko asks show <id>` reads it`. The database enforces the same rules, the choice rule included, for every surface.
- `ask <id> was answered, but keeping the answer as steering failed: <cause>; oko asks show <id> holds it` when the ledger write failed, and `ask <id> was answered, but its answer reads as a product's wrapper or Oko's handover, not a person's words, so it was not kept as steering`; the answer stays recorded on the ask in both.