bluecollar

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:

routemeaning
start_taskwork that takes tools and time
continue_taskadd to, or approve, work already running
revise_taskredirect running work toward a changed target or scope
answer_questionanswer in words now
answer_metaanswer a question about the agent itself
clarifyask the one thing only the sender can resolve
consumeacknowledge with an emoji and say nothing
give_upthe 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.