Intake
Decides what an inbound message means before a turn runs.
intake.DecisionPlanner asks every closed question about a message in one call to a decision model. Each question is a choice among named options or a noul, a probability that a statement is true. The questions cover the route, the difficulty level, the expected number of tools, whether independent work is present, whether an external send is requested, the task shape, the deliverable kind, the language the message is mainly written in (asked only when the host names none), requested output formats and, when relevant, addressing, the reply to a pending choice or confirmation, and whether the message continues a running task. The chat model is asked only for words.
intake.TurnRouter turns those answers into a TurnDecision. The route is one of:
| route | meaning |
|---|---|
start_task | work that takes tools and time |
continue_task | add to, or approve, work already running |
revise_task | redirect running work toward a changed target or scope |
answer_question | answer in words now |
answer_meta | answer a question about the agent itself |
clarify | ask the one thing only the sender can resolve |
consume | acknowledge with an emoji and say nothing |
give_up | the request is impossible or plainly improper on its face |
Intake chooses the level from low, medium and high. A request for slides, a site prototype or another visual deliverable is raised to xhigh. When the route starts, continues or revises work, one chat call writes the expected results: what should exist when the work is done and which tool result, file or link proves it. The other routes that need words (clarify, answer_question, answer_meta, give_up) get them from the same kind of call.