Expand description
How each built-in tool’s call and result are set.
A call’s summary line carries the labelling and its body carries the subject, so the views here decide two things per tool: what the line says, and what shape the subject takes (a shell command, a diff, a plan, a list of questions). The shapes are the harness’s rather than a contract, so a call whose input doesn’t match what its view expects falls back to pretty-printed JSON: a tool that grows a field must not break a render.
Structs§
- Setting
- How one tool call is set: what its summary line says, and what its fold holds. A call whose subject the summary already states in full has no body, and is set flat with no fold to open.
Functions§
- acknowledges
- True when a result says only that the call above it was carried out. The call already shows the file it wrote or the task it changed, so the folio drops these rather than answering every edit with a line saying it worked.
- call
- How a call is set, falling back to JSON for a tool with no view of its own and for one whose input doesn’t match the shape its view expects.
- hint
- The first thing a result has to say, for its summary line.
- result
- How a result is set, which takes the call it answers: the wire format says only that some text came back, and what that text is (a file, a search, a terminal’s output) is a fact about the tool that produced it.
- spoken
- What a result says, however the harness wrote it down: a result that came back as text blocks says the same thing a plain-text one does, so it reads the same way, both when it is set and when it is weighed as an acknowledgement. Blocks that aren’t all text are content in their own right, and come back as themselves.