Expand description
The CLI human channel (06 §4: the cli notification/collection
channel): renders pending human requests from the ledger and collects
responses through the store’s single-writer arbitration.
This crate is presentation + collection only. It never judges, never
writes ledger events itself (submission goes through
pointlock_store::Store::submit_human_response, the one arbitration
door), and reads request context straight from the humanRequested
events — the log is the truth (I1).
Modules§
- webhook
- The webhook notify-only channel (06 §4.2): the POST payload and its
optional HMAC signature. Notify-only by ruling — v0.1’s single-process
local architecture has no authenticable inbound HTTP face, so
responses NEVER come back this way; collection stays with the
clichannel (store-arbitrated). Transport (the actual POST) lives with the assembly layer; this module is the pure, testable half.
Structs§
- Pending
Request - One unanswered human request, reconstructed from the ledger (the
humanRequestedpayload plus its pairing state).
Enums§
- Human
CliError - Errors of the collection channel.
Functions§
- answer_
hint - The answer vocabulary line for a request (what the human may type).
- cli_
actor - The CLI channel’s actor string:
cli:os:<user>@<host>(06 §4.4). Attribution, not authentication — the v0.1 trust boundary is the machine itself; the report honestly records who was at the keyboard. - collect
- Renders the request, reads one answer line, and submits it through the
store arbitration. Returns the appended
humanRespondedseq and the interpreted response (the interactive loop inspects supervisionsuspendanswers to stop re-prompting). - find_
pending - Finds one pending request by id.
- interpret_
answer - Interprets one answer line into the mode-shaped response payload the store arbitration validates (06 §2.1 union).
- pending_
requests - Scans one run’s ledger for unanswered human requests, in request
order. A supervision
suspendanswer is non-final and keeps its request pending (spine §6.9). A terminal exit of the awaiting step (or an ancestor of it) settles its request without a response — the lazy timeout settlement and the aborted disposition (06 §5.3) — so the channel’s view matches the store’s, which rejects such requests as settled. - render
- Renders one pending request for a terminal.