[{"data":1,"prerenderedAt":31},["ShallowReactive",2],{"$f27rc3n3h6p6sm":3},{"href":4,"title":5,"description":6,"kind":7,"mark":7,"planned":8,"contributors":9,"provenance":7,"html":10,"headings":11},"\u002Fdocs\u002Ftools\u002Fbuilt-in","Built-in tools","Every operation the OS answers for a task itself, with its inputs, effects, gates, retry safety and errors.",null,false,[],"\u003Cp>\u003Cem>Generated from the built-in tools registry. Do not edit by hand.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>A task calls two kinds of tool. \u003Cstrong>Vendor tools\u003C\u002Fstrong> come from the MCP servers an enterprise binds on the Tools page: GitHub, Slack, Sentry and the rest. \u003Cstrong>Built-in tools\u003C\u002Fstrong> are answered by the OS itself: \u003Ccode>os.*\u003C\u002Fcode>, \u003Ccode>workspace.*\u003C\u002Fcode>, \u003Ccode>memory.*\u003C\u002Fcode> and \u003Ccode>web.*\u003C\u002Fcode>, the CEO chat’s own tools, and the verbs of a Computer-Use binding.\u003C\u002Fp>\n\u003Cp>This reference lists every built-in tool. It is generated from the same definitions the model is served, so what you read here is what a run sees.\u003C\u002Fp>\n\u003Ch2 id=\"declaring-a-tool\">Declaring a tool\u003C\u002Fh2>\n\u003Cp>A task can call only the tools it declares, by exact name, in its \u003Ccode>tools\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  &quot;tools&quot;: [\n    &quot;workspace.read_file&quot;,\n    &quot;workspace.edit&quot;,\n    &quot;workspace.git_commit&quot;,\n    &quot;os.set_execution_name&quot;\n  ]\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>A name in a built-in namespace (\u003Ccode>os.\u003C\u002Fcode>, \u003Ccode>workspace.\u003C\u002Fcode>, \u003Ccode>memory.\u003C\u002Fcode>, \u003Ccode>web.\u003C\u002Fcode>) that is not listed here is refused when the task is saved (\u003Ccode>tool_unknown\u003C\u002Fcode>). So is a tool only the CEO chat offers (\u003Ccode>tool_not_run_callable\u003C\u002Fcode>): a run never answers one.\u003C\u002Fli>\n\u003Cli>A task can pin a field to particular values: \u003Ccode>&lt;tool&gt;#&lt;field&gt;=&lt;value&gt;,&lt;value&gt;\u003C\u002Fcode>. The model is offered only those values, and a call carrying any other is refused.\u003C\u002Fli>\n\u003Cli>The model calls a tool with its dots replaced: \u003Ccode>workspace.read_file\u003C\u002Fcode> is \u003Ccode>workspace__read_file\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Agents can read this reference as data: \u003Ccode>GET \u002Fv1\u002Ftools\u002Fbuilt-in\u003C\u002Fcode> and \u003Ccode>GET \u002Fv1\u002Ftools\u002Fbuilt-in\u002F:name\u003C\u002Fcode>, with a session or an API token scoped \u003Ccode>tools:read\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"the-tools\">The tools\u003C\u002Fh2>\n\u003Cdiv class=\"prose__table\">\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Family\u003C\u002Fth>\n\u003Cth>Tools\u003C\u002Fth>\n\u003Cth>Page\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Workspace\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-read-file\">\u003Ccode>workspace.read_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-list-dir\">\u003Ccode>workspace.list_dir\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-write-file\">\u003Ccode>workspace.write_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-delete-file\">\u003Ccode>workspace.delete_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-edit\">\u003Ccode>workspace.edit\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-search\">\u003Ccode>workspace.search\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-run-command\">\u003Ccode>workspace.run_command\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-git-commit\">\u003Ccode>workspace.git_commit\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-git-push\">\u003Ccode>workspace.git_push\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace\">Workspace tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Memory\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory#memory-ask\">\u003Ccode>memory.ask\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory#memory-train\">\u003Ccode>memory.train\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory\">Memory tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Execution labels\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-execution-name\">\u003Ccode>os.set_execution_name\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-add-execution-link\">\u003Ccode>os.add_execution_link\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Gate summary\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-gate-summary\">\u003Ccode>os.set_gate_summary\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>CEO questions\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-ask-ceo\">\u003Ccode>os.ask_ceo\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Self-improvement\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-recommendations\">\u003Ccode>os.list_recommendations\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-recommendation\">\u003Ccode>os.get_recommendation\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-decide-recommendation\">\u003Ccode>os.decide_recommendation\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Mail\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-list\">\u003Ccode>os.mail_list\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-read\">\u003Ccode>os.mail_read\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply\">\u003Ccode>os.mail_reply\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-send\">\u003Ccode>os.mail_send\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Mail triage\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-label\">\u003Ccode>os.mail_set_label\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-handled\">\u003Ccode>os.mail_set_handled\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-many\">\u003Ccode>os.mail_set_many\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Mail follow-ups\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-quiet-threads\">\u003Ccode>os.mail_quiet_threads\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-mark-chased\">\u003Ccode>os.mail_mark_chased\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-snooze\">\u003Ccode>os.mail_snooze\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Escalations\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-mail\">\u003Ccode>os.escalate_mail\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply-draft\">\u003Ccode>os.mail_reply_draft\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>KPIs\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-kpis\">\u003Ccode>os.list_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-record-kpi-reading\">\u003Ccode>os.record_kpi_reading\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-enterprise-kpis\">\u003Ccode>os.get_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-enterprise-kpis\">\u003Ccode>os.set_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-team-kpis\">\u003Ccode>os.get_team_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-team-kpis\">\u003Ccode>os.set_team_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#kpi-record-reading\">\u003Ccode>kpi.record_reading\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#kpi-list-readings\">\u003Ccode>kpi.list_readings\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-list-kpis\">\u003Ccode>role.list_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-define-kpi\">\u003Ccode>role.define_kpi\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-edit-kpi\">\u003Ccode>role.edit_kpi\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Context\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-context\">\u003Ccode>os.set_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-context\">\u003Ccode>os.get_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-delete-context\">\u003Ccode>os.delete_context\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Company state\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-inspect-enterprise\">\u003Ccode>os.inspect_enterprise\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-directory\">\u003Ccode>os.directory\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-blockers\">\u003Ccode>os.list_blockers\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-open-gates\">\u003Ccode>os.list_open_gates\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Unblocking runs\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-retry-run\">\u003Ccode>os.retry_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-route-run\">\u003Ccode>os.route_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-clear-run\">\u003Ccode>os.clear_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-run\">\u003Ccode>os.escalate_run\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Planning\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-read-enterprise\">\u003Ccode>os.read_enterprise\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-search-catalog\">\u003Ccode>os.search_catalog\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-tool-bindings\">\u003Ccode>os.list_tool_bindings\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-built-in-tools\">\u003Ccode>os.list_built_in_tools\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-read-task\">\u003Ccode>os.read_task\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-assess-impact\">\u003Ccode>os.assess_impact\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-write-plan\">\u003Ccode>os.write_plan\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-read-plan\">\u003Ccode>os.read_plan\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Briefs\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-file-daily-brief\">\u003Ccode>os.file_daily_brief\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Chat threads\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-list\">\u003Ccode>os.chat_list\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-read\">\u003Ccode>os.chat_read\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-write\">\u003Ccode>os.chat_write\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-open\">\u003Ccode>os.chat_open\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos\">OS tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Chat\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-list-tasks\">\u003Ccode>os.list_tasks\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-start-task\">\u003Ccode>os.start_task\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-get-run\">\u003Ccode>os.get_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-hand-off-task-brief\">\u003Ccode>os.hand_off_task_brief\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-list-runs\">\u003Ccode>os.list_runs\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-kpi-board\">\u003Ccode>os.kpi_board\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-list-enterprise-kpis\">\u003Ccode>os.list_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat\">Chat tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Computer use\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-navigate\">\u003Ccode>&lt;prefix&gt;.navigate\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-click\">\u003Ccode>&lt;prefix&gt;.click\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-type\">\u003Ccode>&lt;prefix&gt;.type\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-screenshot\">\u003Ccode>&lt;prefix&gt;.screenshot\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-extract\">\u003Ccode>&lt;prefix&gt;.extract\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-download\">\u003Ccode>&lt;prefix&gt;.download\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-upload\">\u003Ccode>&lt;prefix&gt;.upload\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use\">Computer-Use tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Web\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb#web-read\">\u003Ccode>web.read\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb#web-sitemap\">\u003Ccode>web.sitemap\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb#web-request\">\u003Ccode>web.request\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb\">Web tools\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"read-and-write\">Read and write\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Read\u003C\u002Fstrong> tools change nothing. \u003Cstrong>Write\u003C\u002Fstrong> tools change something: a file, a label, a decision, a note in memory. A run credential can write only if its task declares an \u003Ccode>os.*\u003C\u002Fcode> tool that writes.\u003C\u002Fp>\n\u003Cp>Write tools: \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-write-file\">\u003Ccode>workspace.write_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-delete-file\">\u003Ccode>workspace.delete_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-edit\">\u003Ccode>workspace.edit\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-run-command\">\u003Ccode>workspace.run_command\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-git-commit\">\u003Ccode>workspace.git_commit\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-git-push\">\u003Ccode>workspace.git_push\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory#memory-train\">\u003Ccode>memory.train\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-execution-name\">\u003Ccode>os.set_execution_name\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-add-execution-link\">\u003Ccode>os.add_execution_link\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-gate-summary\">\u003Ccode>os.set_gate_summary\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-ask-ceo\">\u003Ccode>os.ask_ceo\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-decide-recommendation\">\u003Ccode>os.decide_recommendation\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply\">\u003Ccode>os.mail_reply\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-send\">\u003Ccode>os.mail_send\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-label\">\u003Ccode>os.mail_set_label\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-handled\">\u003Ccode>os.mail_set_handled\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-many\">\u003Ccode>os.mail_set_many\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-mark-chased\">\u003Ccode>os.mail_mark_chased\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-snooze\">\u003Ccode>os.mail_snooze\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-mail\">\u003Ccode>os.escalate_mail\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply-draft\">\u003Ccode>os.mail_reply_draft\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-record-kpi-reading\">\u003Ccode>os.record_kpi_reading\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-enterprise-kpis\">\u003Ccode>os.set_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-team-kpis\">\u003Ccode>os.set_team_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-context\">\u003Ccode>os.set_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-delete-context\">\u003Ccode>os.delete_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#kpi-record-reading\">\u003Ccode>kpi.record_reading\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-define-kpi\">\u003Ccode>role.define_kpi\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-edit-kpi\">\u003Ccode>role.edit_kpi\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-retry-run\">\u003Ccode>os.retry_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-route-run\">\u003Ccode>os.route_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-clear-run\">\u003Ccode>os.clear_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-run\">\u003Ccode>os.escalate_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-write-plan\">\u003Ccode>os.write_plan\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-file-daily-brief\">\u003Ccode>os.file_daily_brief\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-write\">\u003Ccode>os.chat_write\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-open\">\u003Ccode>os.chat_open\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-start-task\">\u003Ccode>os.start_task\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-hand-off-task-brief\">\u003Ccode>os.hand_off_task_brief\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-click\">\u003Ccode>&lt;prefix&gt;.click\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-type\">\u003Ccode>&lt;prefix&gt;.type\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-upload\">\u003Ccode>&lt;prefix&gt;.upload\u003C\u002Fcode>\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>A few reads have a side effect, listed on the tool:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-recommendations\">\u003Ccode>os.list_recommendations\u003C\u002Fcode>\u003C\u002Fa>: View \u003Ccode>issues\u003C\u002Fcode> refreshes \u003Ccode>issueOutcome\u003C\u002Fcode> on recommendations whose issue was still open, and returns what ended since the last call as \u003Ccode>settled\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-read\">\u003Ccode>os.mail_read\u003C\u002Fcode>\u003C\u002Fa>: Marks the message read for the member, the same as opening it in the portal.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-read\">\u003Ccode>os.chat_read\u003C\u002Fcode>\u003C\u002Fa>: Over the API and the MCP server, marks the thread read, the same as opening it in the portal. In a run, nothing.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"gates-and-grants\">Gates and grants\u003C\u002Fh2>\n\u003Cp>A task can put a gate on a tool it declares, in its \u003Ccode>gates\u003C\u002Fcode>, and the call then waits for the CEO. The exception is a \u003Ccode>workspace.*\u003C\u002Fcode> or \u003Ccode>memory.*\u003C\u002Fcode> tool: the OS answers those calls before it reads the task’s gates, so a gate on one is saved but never waits. Some built-in tools carry gates or grants of their own:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-ask-ceo\">\u003Ccode>os.ask_ceo\u003C\u002Fcode>\u003C\u002Fa> is always gated, whatever the task declares, and the run ends on the CEO’s decision.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply\">\u003Ccode>os.mail_reply\u003C\u002Fcode>\u003C\u002Fa> is always gated, whatever the task declares, and the run ends on the CEO’s decision.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-send\">\u003Ccode>os.mail_send\u003C\u002Fcode>\u003C\u002Fa> is always gated, whatever the task declares, and the run ends on the CEO’s decision.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-mail\">\u003Ccode>os.escalate_mail\u003C\u002Fcode>\u003C\u002Fa> is always gated, whatever the task declares, and the run ends on the CEO’s decision.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-gate-summary\">\u003Ccode>os.set_gate_summary\u003C\u002Fcode>\u003C\u002Fa> must be called before \u003Ccode>github.merge_pull_request\u003C\u002Fcode>, \u003Ccode>os.mail_reply\u003C\u002Fcode>, which is handed back until it is. A task that declares one must declare the other.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory#memory-train\">\u003Ccode>memory.train\u003C\u002Fcode>\u003C\u002Fa>: \u003Ccode>task\u003C\u002Fcode> is always allowed. \u003Ccode>member\u003C\u002Fcode> and \u003Ccode>role\u003C\u002Fcode> only on an original task, never a clone. \u003Ccode>team\u003C\u002Fcode> and \u003Ccode>enterprise\u003C\u002Fcode> only when this version grants that layer and the source event id starts with the granted prefix; a clone cannot use the grant. Reserved event ids (\u003Ccode>team:\u003C\u002Fcode> and \u003Ccode>gate:\u003C\u002Fcode>) stay refused.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>What else a tool needs (a \u003Ccode>repo\u003C\u002Fcode> input, an assigned member, a binding) is on its own entry.\u003C\u002Fp>\n\u003Ch2 id=\"retry-safety\">Retry safety\u003C\u002Fh2>\n\u003Cp>A call can be sent twice: a response lost on the way back, a retried run. Each tool says what a repeat does:\u003C\u002Fp>\n\u003Cdiv class=\"prose__table\">\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Retry\u003C\u002Fth>\n\u003Cth>Meaning\u003C\u002Fth>\n\u003Cth>Tools\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>safe\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Safe: repeating the call changes nothing.\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-read-file\">\u003Ccode>workspace.read_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-list-dir\">\u003Ccode>workspace.list_dir\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-search\">\u003Ccode>workspace.search\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory#memory-ask\">\u003Ccode>memory.ask\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-recommendations\">\u003Ccode>os.list_recommendations\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-recommendation\">\u003Ccode>os.get_recommendation\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-list\">\u003Ccode>os.mail_list\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-read\">\u003Ccode>os.mail_read\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-quiet-threads\">\u003Ccode>os.mail_quiet_threads\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-mark-chased\">\u003Ccode>os.mail_mark_chased\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-snooze\">\u003Ccode>os.mail_snooze\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-kpis\">\u003Ccode>os.list_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-enterprise-kpis\">\u003Ccode>os.get_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-team-kpis\">\u003Ccode>os.get_team_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-get-context\">\u003Ccode>os.get_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#kpi-list-readings\">\u003Ccode>kpi.list_readings\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-list-kpis\">\u003Ccode>role.list_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-inspect-enterprise\">\u003Ccode>os.inspect_enterprise\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-directory\">\u003Ccode>os.directory\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-blockers\">\u003Ccode>os.list_blockers\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-open-gates\">\u003Ccode>os.list_open_gates\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-read-enterprise\">\u003Ccode>os.read_enterprise\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-search-catalog\">\u003Ccode>os.search_catalog\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-tool-bindings\">\u003Ccode>os.list_tool_bindings\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-list-built-in-tools\">\u003Ccode>os.list_built_in_tools\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-read-task\">\u003Ccode>os.read_task\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-assess-impact\">\u003Ccode>os.assess_impact\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-read-plan\">\u003Ccode>os.read_plan\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-list\">\u003Ccode>os.chat_list\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-read\">\u003Ccode>os.chat_read\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-list-tasks\">\u003Ccode>os.list_tasks\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-get-run\">\u003Ccode>os.get_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-list-runs\">\u003Ccode>os.list_runs\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-kpi-board\">\u003Ccode>os.kpi_board\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-list-enterprise-kpis\">\u003Ccode>os.list_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-navigate\">\u003Ccode>&lt;prefix&gt;.navigate\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-screenshot\">\u003Ccode>&lt;prefix&gt;.screenshot\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-extract\">\u003Ccode>&lt;prefix&gt;.extract\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-download\">\u003Ccode>&lt;prefix&gt;.download\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb#web-read\">\u003Ccode>web.read\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb#web-sitemap\">\u003Ccode>web.sitemap\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fweb#web-request\">\u003Ccode>web.request\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>idempotent\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Idempotent: a repeat of the same call acts once, or leaves the same state.\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-write-file\">\u003Ccode>workspace.write_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-git-push\">\u003Ccode>workspace.git_push\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fmemory#memory-train\">\u003Ccode>memory.train\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-execution-name\">\u003Ccode>os.set_execution_name\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-add-execution-link\">\u003Ccode>os.add_execution_link\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-gate-summary\">\u003Ccode>os.set_gate_summary\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-ask-ceo\">\u003Ccode>os.ask_ceo\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-decide-recommendation\">\u003Ccode>os.decide_recommendation\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-label\">\u003Ccode>os.mail_set_label\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-handled\">\u003Ccode>os.mail_set_handled\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-set-many\">\u003Ccode>os.mail_set_many\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-record-kpi-reading\">\u003Ccode>os.record_kpi_reading\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-enterprise-kpis\">\u003Ccode>os.set_enterprise_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-team-kpis\">\u003Ccode>os.set_team_kpis\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-set-context\">\u003Ccode>os.set_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-delete-context\">\u003Ccode>os.delete_context\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-edit-kpi\">\u003Ccode>role.edit_kpi\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-retry-run\">\u003Ccode>os.retry_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-route-run\">\u003Ccode>os.route_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-clear-run\">\u003Ccode>os.clear_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-run\">\u003Ccode>os.escalate_run\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-write-plan\">\u003Ccode>os.write_plan\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-start-task\">\u003Ccode>os.start_task\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fchat#os-hand-off-task-brief\">\u003Ccode>os.hand_off_task_brief\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>unsafe\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Not retry-safe: a repeat acts again.\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-delete-file\">\u003Ccode>workspace.delete_file\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-edit\">\u003Ccode>workspace.edit\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-run-command\">\u003Ccode>workspace.run_command\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fworkspace#workspace-git-commit\">\u003Ccode>workspace.git_commit\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply\">\u003Ccode>os.mail_reply\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-send\">\u003Ccode>os.mail_send\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-escalate-mail\">\u003Ccode>os.escalate_mail\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-mail-reply-draft\">\u003Ccode>os.mail_reply_draft\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#kpi-record-reading\">\u003Ccode>kpi.record_reading\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#role-define-kpi\">\u003Ccode>role.define_kpi\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-file-daily-brief\">\u003Ccode>os.file_daily_brief\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-write\">\u003Ccode>os.chat_write\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fos#os-chat-open\">\u003Ccode>os.chat_open\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-click\">\u003Ccode>&lt;prefix&gt;.click\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-type\">\u003Ccode>&lt;prefix&gt;.type\u003C\u002Fcode>\u003C\u002Fa>, \u003Ca href=\"\u002Fdocs\u002Ftools\u002Fbuilt-in\u002Fcomputer-use#prefix-upload\">\u003Ccode>&lt;prefix&gt;.upload\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"errors\">Errors\u003C\u002Fh2>\n\u003Cp>A failed call comes back one of three ways:\u003C\u002Fp>\n\u003Cdiv class=\"prose__table\">\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Handling\u003C\u002Fth>\n\u003Cth>What happens\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Handed back (\u003Ccode>hand_back\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>Refused and handed back: nothing ran, and the model gets another turn\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Tool error (\u003Ccode>tool_error\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>A tool error: the model reads it as the result and carries on\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Run fails (\u003Ccode>fail\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>The run fails\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>Any tool call can come back with these, before the tool itself is reached:\u003C\u002Fp>\n\u003Cdiv class=\"prose__table\">\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Error\u003C\u002Fth>\n\u003Cth>When\u003C\u002Fth>\n\u003Cth>What happens\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>tool_not_on_task\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The tool exists, but the task does not declare it.\u003C\u002Ftd>\n\u003Ctd>The run fails\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>unknown_tool_name\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No tool anywhere has that name: a typo. The model is told the task's closest tools.\u003C\u002Ftd>\n\u003Ctd>Refused and handed back: nothing ran, and the model gets another turn\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>unknown_tool_repeated\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Three unknown names were already handed back in this run, and it called another.\u003C\u002Ftd>\n\u003Ctd>The run fails\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>bare_tool_name\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The call named a whole vendor catalog (\u003Ccode>github\u003C\u002Fcode>) instead of one of its tools.\u003C\u002Ftd>\n\u003Ctd>Refused and handed back: nothing ran, and the model gets another turn\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>tool_value_not_declared\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The task pinned a field (\u003Ccode>&lt;tool&gt;#&lt;field&gt;=&lt;value&gt;\u003C\u002Fcode>) and the call carried another value.\u003C\u002Ftd>\n\u003Ctd>Refused and handed back: nothing ran, and the model gets another turn\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>tool_value_refused\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The same, where the task marked the field fatal (\u003Ccode>&lt;tool&gt;#!&lt;field&gt;=&lt;value&gt;\u003C\u002Fcode>).\u003C\u002Ftd>\n\u003Ctd>The run fails\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>Each tool lists its own errors on its entry.\u003C\u002Fp>\n",[12,16,19,22,25,28],{"id":13,"text":14,"level":15,"planned":8},"declaring-a-tool","Declaring a tool",2,{"id":17,"text":18,"level":15,"planned":8},"the-tools","The tools",{"id":20,"text":21,"level":15,"planned":8},"read-and-write","Read and write",{"id":23,"text":24,"level":15,"planned":8},"gates-and-grants","Gates and grants",{"id":26,"text":27,"level":15,"planned":8},"retry-safety","Retry safety",{"id":29,"text":30,"level":15,"planned":8},"errors","Errors",1791124519714]