Tools and the kernel
The fixed tool names every host is expected to provide, plus whatever else the host registers.
The model's kernel is read, write, edit, bash, plan and equip. The first four are the work. plan sizes and steps the task. equip takes a sentence describing a need and answers with the tools that serve it, through the same agentcontract.ToolSelector intake uses, as implemented by intake.DecisionPlanner; the tools it names are pinned for the next turn.
The names are constants in toolcontract/kernel_tools.go. The descriptors behind them belong to the host, which marks a tool as kernel by setting its ProviderID to kernel. Kernel tools stay callable, and stay valid as required evidence, even when the host marks their availability denied; a command the actor may not run fails at execution. toolcontract also names tools the runtime calls on the model's behalf: ask_input and file_deliver run behind a reply, and file_read, file_preview, file_delete, image_read, skill_search and conversation_history are available to hosts that register them. Records written under the retired names shell, file_write, file_edit and find_tools are read as bash, write, edit and equip.
Beyond the kernel, each turn exposes at most MaxExtensionCallableToolCount (15) host tools, filled in order from recovery tools, the pending required tool, required evidence, pinned tools, selected skills and evidence alternatives.