[{"data":1,"prerenderedAt":2833},["ShallowReactive",2],{"navigation_docs":3,"-reference-http-api":520,"-reference-http-api-surround":2828},[4,28,51,191,222,485],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"FAQ","\u002Fget-started\u002Ffaq","1.get-started\u002F3.faq",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F1.how-a-work-item-runs",{"title":40,"path":41,"stem":42},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F2.caps-and-budgets",{"title":44,"path":45,"stem":46},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F3.permission-gate",{"title":48,"path":49,"stem":50},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F4.vocabulary",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,96,117,138,187],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61,"children":62,"page":95},"Day to day","\u002Fguides\u002Fday-to-day","3.guides\u002F1.day-to-day",[63,67,71,75,79,83,87,91],{"title":64,"path":65,"stem":66},"The setup wizard on first start","\u002Fguides\u002Fday-to-day\u002Ffirst-run","3.guides\u002F1.day-to-day\u002F2.first-run",{"title":68,"path":69,"stem":70},"File a work item","\u002Fguides\u002Fday-to-day\u002Ffile-a-work-item","3.guides\u002F1.day-to-day\u002F3.file-a-work-item",{"title":72,"path":73,"stem":74},"Use Kraft from your agent","\u002Fguides\u002Fday-to-day\u002Fagent-integration","3.guides\u002F1.day-to-day\u002F4.agent-integration",{"title":76,"path":77,"stem":78},"Reviewing a change","\u002Fguides\u002Fday-to-day\u002Freview-a-change","3.guides\u002F1.day-to-day\u002F5.review-a-change",{"title":80,"path":81,"stem":82},"Raise a cap on a stopped item","\u002Fguides\u002Fday-to-day\u002Fraise-a-cap","3.guides\u002F1.day-to-day\u002F6.raise-a-cap",{"title":84,"path":85,"stem":86},"Kraft for VS Code","\u002Fguides\u002Fday-to-day\u002Fvscode","3.guides\u002F1.day-to-day\u002F7.vscode",{"title":88,"path":89,"stem":90},"Kraft on a phone","\u002Fguides\u002Fday-to-day\u002Fkraft-on-a-phone","3.guides\u002F1.day-to-day\u002F8.kraft-on-a-phone",{"title":92,"path":93,"stem":94},"Get notified when an item needs you","\u002Fguides\u002Fday-to-day\u002Fnotifications","3.guides\u002F1.day-to-day\u002F9.notifications",false,{"title":97,"path":98,"stem":99,"children":100,"page":95},"Customize and automate","\u002Fguides\u002Fcustomize","3.guides\u002F2.customize",[101,105,109,113],{"title":102,"path":103,"stem":104},"Write your own chain","\u002Fguides\u002Fcustomize\u002Fwrite-your-own-chain","3.guides\u002F2.customize\u002F1.write-your-own-chain",{"title":106,"path":107,"stem":108},"Add a security review or a gate reviewer","\u002Fguides\u002Fcustomize\u002Fadd-review-agents","3.guides\u002F2.customize\u002F2.add-review-agents",{"title":110,"path":111,"stem":112},"Schedule or webhook work","\u002Fguides\u002Fcustomize\u002Fschedule-and-webhook-work","3.guides\u002F2.customize\u002F3.schedule-and-webhook-work",{"title":114,"path":115,"stem":116},"Share chains with add-ons","\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons","3.guides\u002F2.customize\u002F4.share-chains-with-addons",{"title":118,"path":119,"stem":120,"children":121,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[122,126,130,134],{"title":123,"path":124,"stem":125},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":127,"path":128,"stem":129},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":131,"path":132,"stem":133},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":135,"path":136,"stem":137},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":139,"path":140,"stem":141,"children":142,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[143,147,151,155,159,163,167,171,175,179,183],{"title":144,"path":145,"stem":146},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":148,"path":149,"stem":150},"Put a proxy in front of Kraft","\u002Fguides\u002Frun\u002Fput-a-proxy-in-front-of-kraft","3.guides\u002F4.run\u002F02.put-a-proxy-in-front-of-kraft",{"title":152,"path":153,"stem":154},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":156,"path":157,"stem":158},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":160,"path":161,"stem":162},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":164,"path":165,"stem":166},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":168,"path":169,"stem":170},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":172,"path":173,"stem":174},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":176,"path":177,"stem":178},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":180,"path":181,"stem":182},"Upgrade from 0.x or a release candidate","\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate","3.guides\u002F4.run\u002F10.upgrade-from-0-x-or-a-release-candidate",{"title":184,"path":185,"stem":186},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":188,"path":189,"stem":190},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":192,"path":193,"stem":194,"children":195},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[196,198,202,206,210,214,218],{"title":10,"path":193,"stem":197},"4.troubleshooting\u002Findex",{"title":199,"path":200,"stem":201},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":203,"path":204,"stem":205},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":207,"path":208,"stem":209},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":211,"path":212,"stem":213},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":215,"path":216,"stem":217},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":219,"path":220,"stem":221},"Add-on problems","\u002Ftroubleshooting\u002Faddon-problems","4.troubleshooting\u002F6.addon-problems",{"title":223,"path":224,"stem":225,"children":226},"Reference","\u002Freference","5.reference",[227,229,267,289,293,391,409,435,439,443,477,481],{"title":10,"path":224,"stem":228},"5.reference\u002Findex",{"title":230,"path":231,"stem":232,"children":233},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[234,235,239,243,247,251,255,259,263],{"title":10,"path":231,"stem":232},{"title":236,"path":237,"stem":238},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":240,"path":241,"stem":242},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":244,"path":245,"stem":246},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":248,"path":249,"stem":250},"Fix loops and test scopes","\u002Freference\u002Fweb-ui\u002Ffix-loops-and-test-scopes","5.reference\u002F00.web-ui\u002F3.fix-loops-and-test-scopes",{"title":252,"path":253,"stem":254},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":256,"path":257,"stem":258},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":260,"path":261,"stem":262},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":264,"path":265,"stem":266},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":268,"path":269,"stem":270,"children":271},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[272,273,277,281,285],{"title":10,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":278,"path":279,"stem":280},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":282,"path":283,"stem":284},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":286,"path":287,"stem":288},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":290,"path":291,"stem":292},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":294,"path":295,"stem":296,"children":297},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[298,299,317,321,325,329,333,337,341,345,379,383,387],{"title":10,"path":295,"stem":296},{"title":300,"path":301,"stem":302,"children":303},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[304,305,309,313],{"title":10,"path":301,"stem":302},{"title":306,"path":307,"stem":308},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":310,"path":311,"stem":312},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":314,"path":315,"stem":316},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":318,"path":319,"stem":320},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":322,"path":323,"stem":324},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":326,"path":327,"stem":328},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":330,"path":331,"stem":332},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":334,"path":335,"stem":336},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":338,"path":339,"stem":340},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":342,"path":343,"stem":344},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":346,"path":347,"stem":348,"children":349},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[350,351,355,359,363,367,371,375],{"title":10,"path":347,"stem":348},{"title":352,"path":353,"stem":354},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":356,"path":357,"stem":358},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":360,"path":361,"stem":362},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":364,"path":365,"stem":366},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":368,"path":369,"stem":370},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":372,"path":373,"stem":374},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":376,"path":377,"stem":378},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":380,"path":381,"stem":382},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":384,"path":385,"stem":386},"Add-ons and collections","\u002Freference\u002Fconfiguration\u002Faddons","5.reference\u002F03.configuration\u002F12.addons",{"title":388,"path":389,"stem":390},"Repo libraries","\u002Freference\u002Fconfiguration\u002Frepo-libraries","5.reference\u002F03.configuration\u002F13.repo-libraries",{"title":392,"path":393,"stem":394,"children":395},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[396,397,401,405],{"title":10,"path":393,"stem":394},{"title":398,"path":399,"stem":400},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":402,"path":403,"stem":404},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":406,"path":407,"stem":408},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":410,"path":411,"stem":412,"children":413},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[414,415,419,423,427,431],{"title":10,"path":411,"stem":412},{"title":416,"path":417,"stem":418},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":420,"path":421,"stem":422},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":424,"path":425,"stem":426},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":428,"path":429,"stem":430},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":432,"path":433,"stem":434},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":436,"path":437,"stem":438},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":440,"path":441,"stem":442},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":444,"path":445,"stem":446,"children":447},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[448,449,453,457,461,465,469,473],{"title":10,"path":445,"stem":446},{"title":450,"path":451,"stem":452},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":454,"path":455,"stem":456},"Gates, run control, ending and retry","\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending","5.reference\u002F08.http-api\u002F3.gates-run-control-and-ending",{"title":458,"path":459,"stem":460},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":462,"path":463,"stem":464},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":466,"path":467,"stem":468},"Repos, chains, harnesses and the server","\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server","5.reference\u002F08.http-api\u002F6.repos-chains-harnesses-and-server",{"title":470,"path":471,"stem":472},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":474,"path":475,"stem":476},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":478,"path":479,"stem":480},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":482,"path":483,"stem":484},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":486,"path":487,"stem":488,"children":489},"Security and project","\u002Fproject","6.project",[490,492,496,500,504,508,512,516],{"title":10,"path":487,"stem":491},"6.project\u002Findex",{"title":493,"path":494,"stem":495},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":497,"path":498,"stem":499},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":501,"path":502,"stem":503},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":505,"path":506,"stem":507},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":509,"path":510,"stem":511},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":513,"path":514,"stem":515},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":517,"path":518,"stem":519},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":521,"title":444,"body":522,"description":2821,"extension":2822,"links":2823,"meta":2824,"navigation":2825,"path":445,"seo":2826,"stem":446,"__hash__":2827},"docs\u002F5.reference\u002F08.http-api\u002Findex.md",{"type":523,"value":524,"toc":2789},"minimark",[525,551,556,569,622,628,664,667,911,932,955,958,1030,1039,1043,1110,1116,1155,1178,1182,1185,1232,1253,1261,1264,1270,1273,1288,1311,1329,1342,1346,1449,1453,1491,1495,1637,1641,1731,1735,1773,1776,1817,1821,1930,1933,1997,2001,2078,2081,2119,2123,2202,2206,2309,2313,2364,2368,2425,2429,2509,2513,2672,2676,2740,2744,2785],[526,527,528,529,533,534,537,538,543,544,550],"p",{},"The Kraft server serves its board, and the JSON API behind it, on one port\n(",[530,531,532],"code",{},"127.0.0.1:8765"," by default). The ",[530,535,536],{},"kraft"," command and the MCP server are\nclients of that API. The pages in this section document part of it: see ",[539,540,542],"a",{"href":541},"#routes-the-pages-document","Routes the pages document",". ",[539,545,547],{"href":546},"#the-schema",[530,548,549],{},"\u002Fopenapi.json"," lists every HTTP route.",[552,553,555],"h2",{"id":554},"stable-routes","Stable routes",[526,557,558,559,563,564,568],{},"Only two routes are meant for other programs, and only these keep their shape\nbetween minor releases. See\n",[539,560,562],{"href":561},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","Versioning and stability",".\nWho may call them is under ",[539,565,567],{"href":566},"#who-may-call","Who may call",".",[570,571,572,585],"table",{},[573,574,575],"thead",{},[576,577,578,582],"tr",{},[579,580,581],"th",{},"Route",[579,583,584],{},"Use",[586,587,588,607],"tbody",{},[576,589,590,596],{},[591,592,593],"td",{},[530,594,595],{},"POST \u002Fapi\u002Ftriggers",[591,597,598,599,603,604,568],{},"File a ",[539,600,602],{"href":601},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," from a webhook or script. See ",[539,605,440],{"href":606},"\u002Freference\u002Ftriggers#post-apitriggers",[576,608,609,614],{},[591,610,611],{},[530,612,613],{},"GET \u002Fapi\u002Fhealth",[591,615,616,617,568],{},"Check that the server is up. Needs no login. See ",[539,618,620],{"href":619},"#get-apihealth",[530,621,613],{},[623,624,626],"h3",{"id":625},"get-apihealth",[530,627,613],{},[629,630,635],"pre",{"className":631,"code":632,"language":633,"meta":634,"style":634},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","curl -s http:\u002F\u002F127.0.0.1:8765\u002Fapi\u002Fhealth | jq .status\n","bash","",[530,636,637],{"__ignoreMap":634},[638,639,642,646,650,654,658,661],"span",{"class":640,"line":641},"line",1,[638,643,645],{"class":644},"szw1H","curl",[638,647,649],{"class":648},"ssYy9"," -s",[638,651,653],{"class":652},"semJd"," http:\u002F\u002F127.0.0.1:8765\u002Fapi\u002Fhealth",[638,655,657],{"class":656},"sklAV"," |",[638,659,660],{"class":644}," jq",[638,662,663],{"class":652}," .status\n",[526,665,666],{},"The answer carries:",[570,668,669,679],{},[573,670,671],{},[576,672,673,676],{},[579,674,675],{},"Field",[579,677,678],{},"Meaning",[586,680,681,697,723,771,789,811,833,843,853,878,901],{},[576,682,683,688],{},[591,684,685],{},[530,686,687],{},"status",[591,689,690,693,694,568],{},[530,691,692],{},"ok"," or ",[530,695,696],{},"degraded",[576,698,699,711],{},[591,700,701,704,705,704,708],{},[530,702,703],{},"invalid_templates",", ",[530,706,707],{},"invalid_policy",[530,709,710],{},"invalid_intake",[591,712,713,714,716,717,719,720,568],{},"The reasons it is degraded. ",[530,715,710],{}," is why ",[530,718,334],{}," does not load, else ",[530,721,722],{},"null",[576,724,725,730],{},[591,726,727],{},[530,728,729],{},"storage",[591,731,732,734,735,738,739,543,742,745,746,704,748,693,751,754,755,757,758,760,761,543,763,766,767,770],{},[530,733,722],{}," without ",[530,736,737],{},"storage.worktrees.limit",", else ",[530,740,741],{},"{state, used_bytes, quota_bytes, limit_bytes, measured_at, too_recent}",[530,743,744],{},"state"," is ",[530,747,692],{},[530,749,750],{},"over_quota",[530,752,753],{},"held",", and ",[530,756,753],{}," makes ",[530,759,687],{}," ",[530,762,696],{},[530,764,765],{},"too_recent"," counts finished items the last automatic clean-up left because they ended less than ",[530,768,769],{},"min_age"," ago.",[576,772,773,778],{},[591,774,775],{},[530,776,777],{},"intake_off",[591,779,780,781,785,786,788],{},"Whether ",[539,782,784],{"href":783},"\u002Fconcepts\u002Fvocabulary#auto-intake","auto-intake"," and ",[530,787,334],{},"'s schedules are off for it.",[576,790,791,796],{},[591,792,793],{},[530,794,795],{},"addon_updates",[591,797,798,799,802,803,806,807,568],{},"Each auto-updating add-on's last update, by add-on id: ",[530,800,801],{},"{outcome, kind}",", without the message, which ",[530,804,805],{},"kraft admin doctor"," shows. Empty when none has run. See ",[539,808,810],{"href":809},"\u002Freference\u002Fconfiguration\u002Faddons#auto-update","Auto-update",[576,812,813,830],{},[591,814,815,704,818,704,821,704,824,704,827],{},[530,816,817],{},"run_dir",[530,819,820],{},"pid",[530,822,823],{},"uptime_s",[530,825,826],{},"bind",[530,828,829],{},"port",[591,831,832],{},"Which instance this is.",[576,834,835,840],{},[591,836,837],{},[530,838,839],{},"version",[591,841,842],{},"The version it runs.",[576,844,845,850],{},[591,846,847],{},[530,848,849],{},"installed",[591,851,852],{},"The version installed on disk, which differs until a restart finishes an update.",[576,854,855,860],{},[591,856,857],{},[530,858,859],{},"reattach_summary",[591,861,862,863,704,866,704,869,704,872,785,875,568],{},"What startup found of agent sessions that were running: ",[530,864,865],{},"scanned",[530,867,868],{},"adopted",[530,870,871],{},"resolved_from_file",[530,873,874],{},"unknown",[530,876,877],{},"resumed_work_items",[576,879,880,885],{},[591,881,882],{},[530,883,884],{},"index",[591,886,887,888,704,891,704,894,897,898,568],{},"The search index: ",[530,889,890],{},"last_scan_at",[530,892,893],{},"repos_scanned",[530,895,896],{},"documents",", and the state of ",[530,899,900],{},"embeddings",[576,902,903,908],{},[591,904,905],{},[530,906,907],{},"session_expiry_days",[591,909,910],{},"How long a login lasts, which the login screen shows.",[526,912,913,914,916,917,920,921,745,923,925,926,928,929,931],{},"An add-on that is installed and did not load is under ",[530,915,703],{},", as ",[530,918,919],{},"add-on \u003Cid>"," with the reason, and ",[530,922,687],{},[530,924,696],{},". A held or failed entry of ",[530,927,795],{}," leaves ",[530,930,687],{}," as it is.",[526,933,934,745,936,939,940,942,943,947,948,950,951,954],{},[530,935,777],{},[530,937,938],{},"true"," when the server started on an ",[530,941,334],{}," that does not load. A ",[539,944,946],{"href":945},"\u002Fconcepts\u002Fvocabulary#trigger","trigger"," left in ",[530,949,318],{}," still fires. It is ",[530,952,953],{},"false"," when a reload refused the file and the running schedules are kept.",[552,956,567],{"id":957},"who-may-call",[570,959,960,970],{},[573,961,962],{},[576,963,964,967],{},[579,965,966],{},"Caller",[579,968,969],{},"What it needs",[586,971,972,989,1004,1019],{},[576,973,974,977],{},[591,975,976],{},"A process on the same machine, while Kraft is bound to loopback",[591,978,979,980,704,983,693,986,568],{},"Nothing, as long as it addresses the server as ",[530,981,982],{},"127.0.0.1",[530,984,985],{},"localhost",[530,987,988],{},"[::1]",[576,990,991,994],{},[591,992,993],{},"Anyone, once Kraft is bound off loopback",[591,995,996,997,1000,1001,568],{},"A browser session from the login page, or the MCP bearer token in ",[530,998,999],{},"$KRAFT_HOME\u002Frun\u002Fmcp-token",", sent as ",[530,1002,1003],{},"Authorization: Bearer \u003Ctoken>",[576,1005,1006,1009],{},[591,1007,1008],{},"A trigger sender, once Kraft is bound off loopback",[591,1010,1011,1012,1014,1015,1018],{},"For ",[530,1013,595],{}," only, the trigger token in ",[530,1016,1017],{},"$KRAFT_HOME\u002Frun\u002Ftrigger-token",", sent the same way.",[576,1020,1021,1024],{},[591,1022,1023],{},"A remote caller while no password is set",[591,1025,1026,1027,568],{},"Nothing works. Kraft answers ",[530,1028,1029],{},"403",[526,1031,1032,1033,1035,1036,1038],{},"The MCP bearer token is a full-access credential. See ",[539,1034,493],{"href":494}," for the whole model, and ",[539,1037,144],{"href":145}," to set a password.",[623,1040,1042],{"id":1041},"refusals","Refusals",[570,1044,1045,1055],{},[573,1046,1047],{},[576,1048,1049,1052],{},[579,1050,1051],{},"Status",[579,1053,1054],{},"When",[586,1056,1057,1067,1076,1093],{},[576,1058,1059,1064],{},[591,1060,1061],{},[530,1062,1063],{},"401",[591,1065,1066],{},"The request has no valid credentials.",[576,1068,1069,1073],{},[591,1070,1071],{},[530,1072,1029],{},[591,1074,1075],{},"A remote caller, while no password is set.",[576,1077,1078,1082],{},[591,1079,1080],{},[530,1081,1029],{},[591,1083,1084,1085,1088,1089,1092],{},"The ",[530,1086,1087],{},"Host"," is not an allowed name: ",[530,1090,1091],{},"unexpected Host for a server bound to …",". See the rules below.",[576,1094,1095,1099],{},[591,1096,1097],{},[530,1098,1029],{},[591,1100,1101,1102,1105,1106,1109],{},"A cross-site write. The ",[530,1103,1104],{},"\u002Fapi\u002Fws\u002Fevents"," WebSocket refuses the handshake the same way when its ",[530,1107,1108],{},"Origin"," is another site's.",[526,1111,1112,1113,1115],{},"A ",[530,1114,1087],{}," is not allowed when:",[1117,1118,1119,1129],"ul",{},[1120,1121,1122,1123,704,1125,693,1127,568],"li",{},"Kraft is bound to loopback and the request is not addressed to ",[530,1124,982],{},[530,1126,985],{},[530,1128,988],{},[1120,1130,1131,1132,704,1135,704,1137,1140,1141,1144,1145,1147,1148,1151,1152,1154],{},"Kraft is bound off loopback and the request comes from a browser (it sends ",[530,1133,1134],{},"Sec-Fetch-Site",[530,1136,1108],{},[530,1138,1139],{},"Referer"," or an HTML ",[530,1142,1143],{},"Accept",") whose ",[530,1146,1087],{}," is neither a loopback name nor in ",[530,1149,1150],{},"allowed_hosts",". The CLI, MCP and ",[530,1153,645],{}," need no entry there.",[526,1156,1157,1158,1161,1162,1165,1166,1168,1169,1171,1172,1174,1175,1177],{},"A browser opening a page (a ",[530,1159,1160],{},"GET"," outside ",[530,1163,1164],{},"\u002Fapi"," with an HTML ",[530,1167,1143],{},") gets the ",[530,1170,1029],{}," as a short HTML page instead. The page names the ",[530,1173,1087],{}," it sent and how to allow it. The WebSocket applies the same ",[530,1176,1087],{}," rules.",[552,1179,1181],{"id":1180},"the-schema","The schema",[526,1183,1184],{},"FastAPI generates a schema of every HTTP route:",[570,1186,1187,1197],{},[573,1188,1189],{},[576,1190,1191,1194],{},[579,1192,1193],{},"Path",[579,1195,1196],{},"What it serves",[586,1198,1199,1212,1222],{},[576,1200,1201,1205],{},[591,1202,1203],{},[530,1204,549],{},[591,1206,1207,1208,1211],{},"The OpenAPI schema, as JSON. Its ",[530,1209,1210],{},"info"," names Kraft and the installed version.",[576,1213,1214,1219],{},[591,1215,1216],{},[530,1217,1218],{},"\u002Fdocs",[591,1220,1221],{},"Swagger UI for that schema.",[576,1223,1224,1229],{},[591,1225,1226],{},[530,1227,1228],{},"\u002Fredoc",[591,1230,1231],{},"ReDoc for that schema.",[629,1233,1235],{"className":631,"code":1234,"language":633,"meta":634,"style":634},"curl -s http:\u002F\u002F127.0.0.1:8765\u002Fopenapi.json | jq '.paths | keys'\n",[530,1236,1237],{"__ignoreMap":634},[638,1238,1239,1241,1243,1246,1248,1250],{"class":640,"line":641},[638,1240,645],{"class":644},[638,1242,649],{"class":648},[638,1244,1245],{"class":652}," http:\u002F\u002F127.0.0.1:8765\u002Fopenapi.json",[638,1247,657],{"class":656},[638,1249,660],{"class":644},[638,1251,1252],{"class":652}," '.paths | keys'\n",[526,1254,1255,1256,693,1258,1260],{},"These three paths need no login. Open ",[530,1257,1218],{},[530,1259,1228],{}," in a browser to read\nthe API there.",[526,1262,1263],{},"Both pages load their scripts from a public CDN, jsdelivr. Each\nscript is pinned to one exact release, and your browser refuses it unless it\nmatches the hash Kraft ships. Nothing else on either page comes from another\nsite: their policy lets an image load only from Kraft itself or inline, so\nReDoc's \"Redocly\" logo is not fetched.",[526,1265,1266,1267,1269],{},"On a machine without internet access,\nload ",[530,1268,549],{}," into your own OpenAPI viewer.",[552,1271,542],{"id":1272},"routes-the-pages-document",[526,1274,1275,1276,1278,1279,1283,1284,1287],{},"The pages in this section document the board's routes for work items, repos, chains, harnesses, settings, drafts and the server's own state, and the ",[530,1277,1104],{}," WebSocket. They do not document every route. ",[539,1280,1281],{"href":546},[530,1282,549],{}," lists every HTTP route, but not the WebSocket, which is only described under ",[539,1285,482],{"href":1286},"\u002Freference\u002Fevents#ws-apiwsevents",". The pages leave out these groups, which the board uses and a script rarely needs:",[1117,1289,1290,1293,1296,1299,1302,1305,1308],{},[1120,1291,1292],{},"review threads and their comments;",[1120,1294,1295],{},"login and logout, and the browser sessions;",[1120,1297,1298],{},"search, the index rescan, and reading one indexed document;",[1120,1300,1301],{},"worker session logs and permission asks;",[1120,1303,1304],{},"analytics;",[1120,1306,1307],{},"reading and saving the theme, access, notify and intake settings, sending a test notification, saving the library, reading and saving a chain's file, and the checks that run on them;",[1120,1309,1310],{},"reading one harness provider's Settings view, and reading and saving one harness profile's.",[526,1312,1313,1314,1316,1317,1320,1321,1323,1324,1328],{},"A route listed here is written in full: its method and its path with the ",[530,1315,1164],{}," prefix, as in ",[530,1318,1319],{},"POST \u002Fapi\u002Fwork-items",". That is how the route appears in ",[530,1322,549],{}," and in a request. A route that is in none of the tables below, nor in the ",[539,1325,1327],{"href":1326},"#stable-routes","stable routes",", has no entry.",[526,1330,1331,1332,1334,1335,1337,1338,1341],{},"The pages can change in any release. A script that must keep working calls the ",[539,1333,1327],{"href":1326},", or the ",[530,1336,536],{}," command with ",[530,1339,1340],{},"--json",". Each table below links a route to its entry.",[623,1343,1345],{"id":1344},"work-items","Work items",[570,1347,1348,1357],{},[573,1349,1350],{},[576,1351,1352,1354],{},[579,1353,581],{},[579,1355,1356],{},"What it does",[586,1358,1359,1371,1384,1397,1410,1423,1436],{},[576,1360,1361,1368],{},[591,1362,1363],{},[539,1364,1366],{"href":1365},"\u002Freference\u002Fhttp-api\u002Fwork-items#post-apiwork-items",[530,1367,1319],{},[591,1369,1370],{},"Files a work item, paused unless the body starts it.",[576,1372,1373,1381],{},[591,1374,1375],{},[539,1376,1378],{"href":1377},"\u002Freference\u002Fhttp-api\u002Fwork-items#post-apiwork-itemsidduplicate",[530,1379,1380],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fduplicate",[591,1382,1383],{},"Files a fresh paused item from an existing one.",[576,1385,1386,1394],{},[591,1387,1388],{},[539,1389,1391],{"href":1390},"\u002Freference\u002Fhttp-api\u002Fwork-items#get-apiwork-items",[530,1392,1393],{},"GET \u002Fapi\u002Fwork-items",[591,1395,1396],{},"Lists the items on the board.",[576,1398,1399,1407],{},[591,1400,1401],{},[539,1402,1404],{"href":1403},"\u002Freference\u002Fhttp-api\u002Fwork-items#get-apiwork-itemsid",[530,1405,1406],{},"GET \u002Fapi\u002Fwork-items\u002F{id}",[591,1408,1409],{},"Answers one item in full.",[576,1411,1412,1420],{},[591,1413,1414],{},[539,1415,1417],{"href":1416},"\u002Freference\u002Fhttp-api\u002Fwork-items#patch-apiwork-itemsid",[530,1418,1419],{},"PATCH \u002Fapi\u002Fwork-items\u002F{id}",[591,1421,1422],{},"Changes an item's title, description, chain, overrides, budget, policy or attachments.",[576,1424,1425,1433],{},[591,1426,1427],{},[539,1428,1430],{"href":1429},"\u002Freference\u002Fhttp-api\u002Fwork-items#post-apiwork-itemsbulk",[530,1431,1432],{},"POST \u002Fapi\u002Fwork-items\u002Fbulk",[591,1434,1435],{},"Pauses, cancels, archives or restores several items.",[576,1437,1438,1446],{},[591,1439,1440],{},[539,1441,1443],{"href":1442},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#post-apiwork-itemsdry_run1",[530,1444,1445],{},"POST \u002Fapi\u002Fwork-items?dry_run=1",[591,1447,1448],{},"Runs every check of a create and files nothing.",[623,1450,1452],{"id":1451},"gates","Gates",[570,1454,1455,1463],{},[573,1456,1457],{},[576,1458,1459,1461],{},[579,1460,581],{},[579,1462,1356],{},[586,1464,1465,1478],{},[576,1466,1467,1475],{},[591,1468,1469],{},[539,1470,1472],{"href":1471},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidgatesgateapprove",[530,1473,1474],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Fapprove",[591,1476,1477],{},"Approves the pending gate and starts the chain again.",[576,1479,1480,1488],{},[591,1481,1482],{},[539,1483,1485],{"href":1484},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidgatesgatereject",[530,1486,1487],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Freject",[591,1489,1490],{},"Rejects the pending gate and sends the chain back to work.",[623,1492,1494],{"id":1493},"run-control","Run control",[570,1496,1497,1505],{},[573,1498,1499],{},[576,1500,1501,1503],{},[579,1502,581],{},[579,1504,1356],{},[586,1506,1507,1520,1533,1546,1559,1572,1585,1598,1611,1624],{},[576,1508,1509,1517],{},[591,1510,1511],{},[539,1512,1514],{"href":1513},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidpause",[530,1515,1516],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fpause",[591,1518,1519],{},"Stops a running item and ends its sessions.",[576,1521,1522,1530],{},[591,1523,1524],{},[539,1525,1527],{"href":1526},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidsteer",[530,1528,1529],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fsteer",[591,1531,1532],{},"Stores a note for the next agent launch of a paused item.",[576,1534,1535,1543],{},[591,1536,1537],{},[539,1538,1540],{"href":1539},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidresume",[530,1541,1542],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fresume",[591,1544,1545],{},"Starts a paused item, with a note if you give one.",[576,1547,1548,1556],{},[591,1549,1550],{},[539,1551,1553],{"href":1552},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidskip",[530,1554,1555],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fskip",[591,1557,1558],{},"Advances past the current node or gate without running it.",[576,1560,1561,1569],{},[591,1562,1563],{},[539,1564,1566],{"href":1565},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidescalate",[530,1567,1568],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fescalate",[591,1570,1571],{},"Sends a message to an agent that helps with a stopped item.",[576,1573,1574,1582],{},[591,1575,1576],{},[539,1577,1579],{"href":1578},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidescalatestop",[530,1580,1581],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fescalate\u002Fstop",[591,1583,1584],{},"Ends the running escalation turn.",[576,1586,1587,1595],{},[591,1588,1589],{},[539,1590,1592],{"href":1591},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidretry",[530,1593,1594],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fretry",[591,1596,1597],{},"Reruns the node an item stopped on.",[576,1599,1600,1608],{},[591,1601,1602],{},[539,1603,1605],{"href":1604},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidreopen-mr",[530,1606,1607],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Freopen-mr",[591,1609,1610],{},"Reopens a merge request closed on the forge, then retries.",[576,1612,1613,1621],{},[591,1614,1615],{},[539,1616,1618],{"href":1617},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidprogress",[530,1619,1620],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fprogress",[591,1622,1623],{},"Records that a worker started a plan task.",[576,1625,1626,1634],{},[591,1627,1628],{},[539,1629,1631],{"href":1630},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidmr-labels",[530,1632,1633],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fmr-labels",[591,1635,1636],{},"Labels the item's merge request.",[623,1638,1640],{"id":1639},"ending","Ending",[570,1642,1643,1651],{},[573,1644,1645],{},[576,1646,1647,1649],{},[579,1648,581],{},[579,1650,1356],{},[586,1652,1653,1666,1679,1692,1705,1718],{},[576,1654,1655,1663],{},[591,1656,1657],{},[539,1658,1660],{"href":1659},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#get-apiwork-itemsidcancel-preview",[530,1661,1662],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fcancel-preview",[591,1664,1665],{},"Shows what a cancel would do, without doing it.",[576,1667,1668,1676],{},[591,1669,1670],{},[539,1671,1673],{"href":1672},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidcancel",[530,1674,1675],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fcancel",[591,1677,1678],{},"Ends an item and keeps its worktree and branch.",[576,1680,1681,1689],{},[591,1682,1683],{},[539,1684,1686],{"href":1685},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidcomplete",[530,1687,1688],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fcomplete",[591,1690,1691],{},"Ends an item as completed, by hand.",[576,1693,1694,1702],{},[591,1695,1696],{},[539,1697,1699],{"href":1698},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidarchive",[530,1700,1701],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Farchive",[591,1703,1704],{},"Archives a completed or cancelled item and reclaims its worktree.",[576,1706,1707,1715],{},[591,1708,1709],{},[539,1710,1712],{"href":1711},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidrestore",[530,1713,1714],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Frestore",[591,1716,1717],{},"Puts an archived item back under Done.",[576,1719,1720,1728],{},[591,1721,1722],{},[539,1723,1725],{"href":1724},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidabandon",[530,1726,1727],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fabandon",[591,1729,1730],{},"Ends an item and deletes its worktree and branch.",[623,1732,1734],{"id":1733},"budget","Budget",[570,1736,1737,1745],{},[573,1738,1739],{},[576,1740,1741,1743],{},[579,1742,581],{},[579,1744,1356],{},[586,1746,1747,1760],{},[576,1748,1749,1757],{},[591,1750,1751],{},[539,1752,1754],{"href":1753},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apibudgettoday",[530,1755,1756],{},"GET \u002Fapi\u002Fbudget\u002Ftoday",[591,1758,1759],{},"Answers the instance's spend since local midnight against the daily cap.",[576,1761,1762,1770],{},[591,1763,1764],{},[539,1765,1767],{"href":1766},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#post-apiwork-itemsidbudgetraise",[530,1768,1769],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fbudget\u002Fraise",[591,1771,1772],{},"Raises the dollar cap that stopped an item and retries it.",[623,1774,482],{"id":1775},"events",[570,1777,1778,1786],{},[573,1779,1780],{},[576,1781,1782,1784],{},[579,1783,581],{},[579,1785,1356],{},[586,1787,1788,1801],{},[576,1789,1790,1798],{},[591,1791,1792],{},[539,1793,1795],{"href":1794},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidevents",[530,1796,1797],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fevents",[591,1799,1800],{},"Reads an item's events, forward or backward.",[576,1802,1803,1810],{},[591,1804,1805],{},[539,1806,1807],{"href":1286},[530,1808,1809],{},"WS \u002Fapi\u002Fws\u002Fevents",[591,1811,1812,1813,1816],{},"Streams every item's events as they are stored, replaying from ",[530,1814,1815],{},"after_seq"," first.",[623,1818,1820],{"id":1819},"diff-and-review","Diff and review",[570,1822,1823,1831],{},[573,1824,1825],{},[576,1826,1827,1829],{},[579,1828,581],{},[579,1830,1356],{},[586,1832,1833,1846,1859,1872,1885,1898,1914],{},[576,1834,1835,1843],{},[591,1836,1837],{},[539,1838,1840],{"href":1839},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsiddiff",[530,1841,1842],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdiff",[591,1844,1845],{},"Answers the changes the agents made.",[576,1847,1848,1856],{},[591,1849,1850],{},[539,1851,1853],{"href":1852},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidcompare",[530,1854,1855],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fcompare",[591,1857,1858],{},"Diffs any two review targets.",[576,1860,1861,1869],{},[591,1862,1863],{},[539,1864,1866],{"href":1865},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#put-apiwork-itemsidviewed",[530,1867,1868],{},"PUT \u002Fapi\u002Fwork-items\u002F{id}\u002Fviewed",[591,1870,1871],{},"Marks a file viewed.",[576,1873,1874,1882],{},[591,1875,1876],{},[539,1877,1879],{"href":1878},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#delete-apiwork-itemsidviewed",[530,1880,1881],{},"DELETE \u002Fapi\u002Fwork-items\u002F{id}\u002Fviewed",[591,1883,1884],{},"Clears the mark.",[576,1886,1887,1895],{},[591,1888,1889],{},[539,1890,1892],{"href":1891},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidfix-target",[530,1893,1894],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Ffix-target",[591,1896,1897],{},"Answers where a request-changes review would restart.",[576,1899,1900,1908],{},[591,1901,1902],{},[539,1903,1905],{"href":1904},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#post-apiwork-itemsidreview",[530,1906,1907],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Freview",[591,1909,1910,1911,568],{},"Submits a review. Its entry documents only ",[530,1912,1913],{},"digest",[576,1915,1916,1923],{},[591,1917,1918],{},[539,1919,1920],{"href":1904},[530,1921,1922],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Freview",[591,1924,1925,1926,1929],{},"Submits a review for a named gate, as ",[530,1927,1928],{},"\u002Freview"," does for the pending one.",[623,1931,1932],{"id":896},"Documents",[570,1934,1935,1943],{},[573,1936,1937],{},[576,1938,1939,1941],{},[579,1940,581],{},[579,1942,1356],{},[586,1944,1945,1958,1971,1984],{},[576,1946,1947,1955],{},[591,1948,1949],{},[539,1950,1952],{"href":1951},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidattachmentskind",[530,1953,1954],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fattachments\u002F{kind}",[591,1956,1957],{},"Reads the spec or plan attached at intake.",[576,1959,1960,1968],{},[591,1961,1962],{},[539,1963,1965],{"href":1964},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsiddocuments",[530,1966,1967],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdocuments",[591,1969,1970],{},"Lists the documents linked to an item.",[576,1972,1973,1981],{},[591,1974,1975],{},[539,1976,1978],{"href":1977},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidartifact",[530,1979,1980],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifact",[591,1982,1983],{},"Reads the pending gate's document.",[576,1985,1986,1994],{},[591,1987,1988],{},[539,1989,1991],{"href":1990},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidartifactskind",[530,1992,1993],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifacts\u002F{kind}",[591,1995,1996],{},"Reads the document a task wrote.",[623,1998,2000],{"id":1999},"opening-in-an-editor","Opening in an editor",[570,2002,2003,2011],{},[573,2004,2005],{},[576,2006,2007,2009],{},[579,2008,581],{},[579,2010,1356],{},[586,2012,2013,2026,2039,2052,2065],{},[576,2014,2015,2023],{},[591,2016,2017],{},[539,2018,2020],{"href":2019},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apieditors",[530,2021,2022],{},"GET \u002Fapi\u002Feditors",[591,2024,2025],{},"Lists the editors this machine can open.",[576,2027,2028,2036],{},[591,2029,2030],{},[539,2031,2033],{"href":2032},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apidocumentsidopen",[530,2034,2035],{},"POST \u002Fapi\u002Fdocuments\u002F{id}\u002Fopen",[591,2037,2038],{},"Opens a document in an editor.",[576,2040,2041,2049],{},[591,2042,2043],{},[539,2044,2046],{"href":2045},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiwork-itemsidartifactopen",[530,2047,2048],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifact\u002Fopen",[591,2050,2051],{},"Opens the pending gate's document.",[576,2053,2054,2062],{},[591,2055,2056],{},[539,2057,2059],{"href":2058},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiwork-itemsidartifactskindopen",[530,2060,2061],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifacts\u002F{kind}\u002Fopen",[591,2063,2064],{},"Opens a task's document.",[576,2066,2067,2075],{},[591,2068,2069],{},[539,2070,2072],{"href":2071},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiwork-itemsidopen-worktree",[530,2073,2074],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fopen-worktree",[591,2076,2077],{},"Opens the item's worktree.",[623,2079,2080],{"id":729},"Storage",[570,2082,2083,2091],{},[573,2084,2085],{},[576,2086,2087,2089],{},[579,2088,581],{},[579,2090,1356],{},[586,2092,2093,2106],{},[576,2094,2095,2103],{},[591,2096,2097],{},[539,2098,2100],{"href":2099},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apistorage",[530,2101,2102],{},"GET \u002Fapi\u002Fstorage",[591,2104,2105],{},"Answers the disk the worktrees use, item by item.",[576,2107,2108,2116],{},[591,2109,2110],{},[539,2111,2113],{"href":2112},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apistoragepreview",[530,2114,2115],{},"POST \u002Fapi\u002Fstorage\u002Fpreview",[591,2117,2118],{},"Shows what archiving some items would free and lose.",[623,2120,2122],{"id":2121},"repos","Repos",[570,2124,2125,2133],{},[573,2126,2127],{},[576,2128,2129,2131],{},[579,2130,581],{},[579,2132,1356],{},[586,2134,2135,2148,2161,2174,2189],{},[576,2136,2137,2145],{},[591,2138,2139],{},[539,2140,2142],{"href":2141},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apirepos",[530,2143,2144],{},"GET \u002Fapi\u002Frepos",[591,2146,2147],{},"Lists the connected repos and workspaces.",[576,2149,2150,2158],{},[591,2151,2152],{},[539,2153,2155],{"href":2154},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apireposprobe",[530,2156,2157],{},"POST \u002Fapi\u002Frepos\u002Fprobe",[591,2159,2160],{},"Reads a repository and proposes how to connect it.",[576,2162,2163,2171],{},[591,2164,2165],{},[539,2166,2168],{"href":2167},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apirepos",[530,2169,2170],{},"POST \u002Fapi\u002Frepos",[591,2172,2173],{},"Connects a repository.",[576,2175,2176,2184],{},[591,2177,2178],{},[539,2179,2181],{"href":2180},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#patch-apirepospath",[530,2182,2183],{},"PATCH \u002Fapi\u002Frepos?path=",[591,2185,2186,2187,568],{},"Changes a connected repo's entry in ",[530,2188,300],{},[576,2190,2191,2199],{},[591,2192,2193],{},[539,2194,2196],{"href":2195},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#delete-apirepospath",[530,2197,2198],{},"DELETE \u002Fapi\u002Frepos?path=",[591,2200,2201],{},"Disconnects a repo.",[623,2203,2205],{"id":2204},"chains-and-library","Chains and library",[570,2207,2208,2216],{},[573,2209,2210],{},[576,2211,2212,2214],{},[579,2213,581],{},[579,2215,1356],{},[586,2217,2218,2231,2248,2265,2278,2291],{},[576,2219,2220,2228],{},[591,2221,2222],{},[539,2223,2225],{"href":2224},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateschains",[530,2226,2227],{},"GET \u002Fapi\u002Ftemplates\u002Fchains",[591,2229,2230],{},"Lists every chain.",[576,2232,2233,2241],{},[591,2234,2235],{},[539,2236,2238],{"href":2237},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateschainsidresolved",[530,2239,2240],{},"GET \u002Fapi\u002Ftemplates\u002Fchains\u002F{id}\u002Fresolved",[591,2242,2243,2244,2247],{},"Answers one chain with its ",[530,2245,2246],{},"extends"," expanded.",[576,2249,2250,2258],{},[591,2251,2252],{},[539,2253,2255],{"href":2254},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateslibrary",[530,2256,2257],{},"GET \u002Fapi\u002Ftemplates\u002Flibrary",[591,2259,2260,2261,2264],{},"Answers ",[530,2262,2263],{},"library.yaml"," and every component in it.",[576,2266,2267,2275],{},[591,2268,2269],{},[539,2270,2272],{"href":2271},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateslibraryref",[530,2273,2274],{},"GET \u002Fapi\u002Ftemplates\u002Flibrary\u002F{ref}",[591,2276,2277],{},"Answers one library component.",[576,2279,2280,2288],{},[591,2281,2282],{},[539,2283,2285],{"href":2284},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplatessteeringpreview",[530,2286,2287],{},"GET \u002Fapi\u002Ftemplates\u002Fsteering\u002Fpreview",[591,2289,2290],{},"Shows what an agent task reads at launch.",[576,2292,2293,2301],{},[591,2294,2295],{},[539,2296,2298],{"href":2297},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apitemplatesreload",[530,2299,2300],{},"POST \u002Fapi\u002Ftemplates\u002Freload",[591,2302,2303,2304,785,2306,2308],{},"Rereads the library, ",[530,2305,318],{},[530,2307,334],{},", and answers what it refused.",[623,2310,2312],{"id":2311},"harnesses-and-providers","Harnesses and providers",[570,2314,2315,2323],{},[573,2316,2317],{},[576,2318,2319,2321],{},[579,2320,581],{},[579,2322,1356],{},[586,2324,2325,2338,2351],{},[576,2326,2327,2335],{},[591,2328,2329],{},[539,2330,2332],{"href":2331},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiharnessesprofiles",[530,2333,2334],{},"GET \u002Fapi\u002Fharnesses\u002Fprofiles",[591,2336,2337],{},"Answers the harness profiles and the agent profiles.",[576,2339,2340,2348],{},[591,2341,2342],{},[539,2343,2345],{"href":2344},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiharnesses",[530,2346,2347],{},"GET \u002Fapi\u002Fharnesses",[591,2349,2350],{},"Lists each provider and whether its CLI is installed.",[576,2352,2353,2361],{},[591,2354,2355],{},[539,2356,2358],{"href":2357},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiharnessesproviders",[530,2359,2360],{},"GET \u002Fapi\u002Fharnesses\u002Fproviders",[591,2362,2363],{},"Answers each provider's capabilities.",[623,2365,2367],{"id":2366},"settings","Settings",[570,2369,2370,2378],{},[573,2371,2372],{},[576,2373,2374,2376],{},[579,2375,581],{},[579,2377,1356],{},[586,2379,2380,2396,2412],{},[576,2381,2382,2390],{},[591,2383,2384],{},[539,2385,2387],{"href":2386},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apipolicy",[530,2388,2389],{},"GET \u002Fapi\u002Fpolicy",[591,2391,2392,2393,2395],{},"Reads ",[530,2394,318],{}," from disk.",[576,2397,2398,2406],{},[591,2399,2400],{},[539,2401,2403],{"href":2402},"\u002Freference\u002Fhttp-api\u002Fdrafts#put-apipolicy",[530,2404,2405],{},"PUT \u002Fapi\u002Fpolicy",[591,2407,2408,2409,2411],{},"Saves ",[530,2410,318],{}," without a draft, and applies it.",[576,2413,2414,2422],{},[591,2415,2416],{},[539,2417,2419],{"href":2418},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apiintakecheckslimit",[530,2420,2421],{},"GET \u002Fapi\u002Fintake\u002Fchecks?limit=",[591,2423,2424],{},"Lists what recent intake polls found.",[623,2426,2428],{"id":2427},"server","Server",[570,2430,2431,2439],{},[573,2432,2433],{},[576,2434,2435,2437],{},[579,2436,581],{},[579,2438,1356],{},[586,2440,2441,2454,2470,2483,2496],{},[576,2442,2443,2451],{},[591,2444,2445],{},[539,2446,2448],{"href":2447},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiapply",[530,2449,2450],{},"GET \u002Fapi\u002Fapply",[591,2452,2453],{},"Lists what is saved and not running yet.",[576,2455,2456,2464],{},[591,2457,2458],{},[539,2459,2461],{"href":2460},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiapplyreload",[530,2462,2463],{},"POST \u002Fapi\u002Fapply\u002Freload",[591,2465,2303,2466,785,2468,568],{},[530,2467,318],{},[530,2469,334],{},[576,2471,2472,2480],{},[591,2473,2474],{},[539,2475,2477],{"href":2476},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiapplyrestart",[530,2478,2479],{},"POST \u002Fapi\u002Fapply\u002Frestart",[591,2481,2482],{},"Restarts a server that a service manager started.",[576,2484,2485,2493],{},[591,2486,2487],{},[539,2488,2490],{"href":2489},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiupdate",[530,2491,2492],{},"GET \u002Fapi\u002Fupdate",[591,2494,2495],{},"Answers the cached update check.",[576,2497,2498,2506],{},[591,2499,2500],{},[539,2501,2503],{"href":2502},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiupdatecheck",[530,2504,2505],{},"POST \u002Fapi\u002Fupdate\u002Fcheck",[591,2507,2508],{},"Asks the release feed now.",[623,2510,2512],{"id":2511},"config-drafts","Config drafts",[570,2514,2515,2523],{},[573,2516,2517],{},[576,2518,2519,2521],{},[579,2520,581],{},[579,2522,1356],{},[586,2524,2525,2538,2551,2564,2581,2594,2607,2620,2633,2646,2659],{},[576,2526,2527,2535],{},[591,2528,2529],{},[539,2530,2532],{"href":2531},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidrafts",[530,2533,2534],{},"GET \u002Fapi\u002Fdrafts",[591,2536,2537],{},"Lists every open draft.",[576,2539,2540,2548],{},[591,2541,2542],{},[539,2543,2545],{"href":2544},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidraftsareakey",[530,2546,2547],{},"GET \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}",[591,2549,2550],{},"Reads a draft, or the published files when there is none.",[576,2552,2553,2561],{},[591,2554,2555],{},[539,2556,2558],{"href":2557},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidraftsareakeyfragmentpath",[530,2559,2560],{},"GET \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Ffragment?path=",[591,2562,2563],{},"Reads one component of a draft as YAML.",[576,2565,2566,2574],{},[591,2567,2568],{},[539,2569,2571],{"href":2570},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidraftspolicykeypreviewchain",[530,2572,2573],{},"GET \u002Fapi\u002Fdrafts\u002Fpolicy\u002F{key}\u002Fpreview?chain=",[591,2575,2576,2577,2580],{},"Shows a published chain's caps under the ",[530,2578,2579],{},"policy"," draft.",[576,2582,2583,2591],{},[591,2584,2585],{},[539,2586,2588],{"href":2587},"\u002Freference\u002Fhttp-api\u002Fdrafts#put-apidraftsareakeyfilesfile",[530,2589,2590],{},"PUT \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Ffiles\u002F{file}",[591,2592,2593],{},"Stores one file's text as typed.",[576,2595,2596,2604],{},[591,2597,2598],{},[539,2599,2601],{"href":2600},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyops",[530,2602,2603],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fops",[591,2605,2606],{},"Applies a list of ops, all or nothing.",[576,2608,2609,2617],{},[591,2610,2611],{},[539,2612,2614],{"href":2613},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyopspreview1",[530,2615,2616],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fops?preview=1",[591,2618,2619],{},"Answers what a list of ops would do, and saves nothing.",[576,2621,2622,2630],{},[591,2623,2624],{},[539,2625,2627],{"href":2626},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyundo",[530,2628,2629],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fundo",[591,2631,2632],{},"Undoes the last request.",[576,2634,2635,2643],{},[591,2636,2637],{},[539,2638,2640],{"href":2639},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeypublish",[530,2641,2642],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fpublish",[591,2644,2645],{},"Writes the draft's files and applies them.",[576,2647,2648,2656],{},[591,2649,2650],{},[539,2651,2653],{"href":2652},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyrebase",[530,2654,2655],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Frebase",[591,2657,2658],{},"Keeps the draft's text over files that changed on disk.",[576,2660,2661,2669],{},[591,2662,2663],{},[539,2664,2666],{"href":2665},"\u002Freference\u002Fhttp-api\u002Fdrafts#delete-apidraftsareakey",[530,2667,2668],{},"DELETE \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}",[591,2670,2671],{},"Discards a draft for good.",[623,2673,2675],{"id":2674},"a-work-items-draft","A work item's draft",[570,2677,2678,2686],{},[573,2679,2680],{},[576,2681,2682,2684],{},[579,2683,581],{},[579,2685,1356],{},[586,2687,2688,2701,2714,2727],{},[576,2689,2690,2698],{},[591,2691,2692],{},[539,2693,2695],{"href":2694},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#get-apiwork-itemsiddraft",[530,2696,2697],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft",[591,2699,2700],{},"Reads an item's draft.",[576,2702,2703,2711],{},[591,2704,2705],{},[539,2706,2708],{"href":2707},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#put-apiwork-itemsiddraft",[530,2709,2710],{},"PUT \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft",[591,2712,2713],{},"Replaces an item's op list.",[576,2715,2716,2724],{},[591,2717,2718],{},[539,2719,2721],{"href":2720},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#delete-apiwork-itemsiddraft",[530,2722,2723],{},"DELETE \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft",[591,2725,2726],{},"Discards an item's draft.",[576,2728,2729,2737],{},[591,2730,2731],{},[539,2732,2734],{"href":2733},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#post-apiwork-itemsiddraftapply",[530,2735,2736],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft\u002Fapply",[591,2738,2739],{},"Applies an item's draft.",[552,2741,2743],{"id":2742},"in-this-section","In this section",[1117,2745,2746,2751,2756,2761,2766,2771,2780],{},[1120,2747,2748,2750],{},[539,2749,450],{"href":451},": filing and duplicating an item, reading the board and one item, changing an item, and acting on several at once.",[1120,2752,2753,2755],{},[539,2754,454],{"href":455},": deciding a gate, pausing, resuming, skipping and escalating, ending and archiving an item, retrying it, and the routes a worker calls.",[1120,2757,2758,2760],{},[539,2759,458],{"href":459},": the three shapes a work item answers in, its stored columns, and the fields that need an explanation.",[1120,2762,2763,2765],{},[539,2764,462],{"href":463},": the daily spend total and raising a budget, the dry run of a create, events paging, the diff and review routes, and a work item's documents.",[1120,2767,2768,2770],{},[539,2769,466],{"href":467},": connecting, changing and disconnecting a repo, chains and library components, harnesses, changes saved but not applied, the update check, and opening an editor.",[1120,2772,2773,2775,2776,2779],{},[539,2774,470],{"href":471},": the routes the Templates and Settings editors use to keep, change, publish and discard a draft and the ",[530,2777,2778],{},"result"," each answers, and the policy and intake-check routes.",[1120,2781,2782,2784],{},[539,2783,474],{"href":475},": every op a draft takes, by area, and a work item's own draft.",[2786,2787,2788],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .sklAV, html code.shiki .sklAV{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":634,"searchDepth":2790,"depth":2790,"links":2791},2,[2792,2797,2800,2801,2820],{"id":554,"depth":2790,"text":555,"children":2793},[2794],{"id":625,"depth":2795,"text":2796},3,"GET \u002Fapi\u002F​health",{"id":957,"depth":2790,"text":567,"children":2798},[2799],{"id":1041,"depth":2795,"text":1042},{"id":1180,"depth":2790,"text":1181},{"id":1272,"depth":2790,"text":542,"children":2802},[2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819],{"id":1344,"depth":2795,"text":1345},{"id":1451,"depth":2795,"text":1452},{"id":1493,"depth":2795,"text":1494},{"id":1639,"depth":2795,"text":1640},{"id":1733,"depth":2795,"text":1734},{"id":1775,"depth":2795,"text":482},{"id":1819,"depth":2795,"text":1820},{"id":896,"depth":2795,"text":1932},{"id":1999,"depth":2795,"text":2000},{"id":729,"depth":2795,"text":2080},{"id":2121,"depth":2795,"text":2122},{"id":2204,"depth":2795,"text":2205},{"id":2311,"depth":2795,"text":2312},{"id":2366,"depth":2795,"text":2367},{"id":2427,"depth":2795,"text":2428},{"id":2511,"depth":2795,"text":2512},{"id":2674,"depth":2795,"text":2675},{"id":2742,"depth":2790,"text":2743},"Which of Kraft's HTTP routes are stable, which the pages here document, where the full schema is, and who may call them.","md",null,{},{"title":10},{"title":444,"description":2821},"DvkQQs5ohGRfr8wWzNkHSkl71CQZ_3VikVTi6wibqnc",[2829,2831],{"title":440,"path":441,"stem":442,"description":2830,"children":-1},"The schedule fields in intake.yaml and the POST \u002Fapi\u002Ftriggers contract for starting a chain from a cron or a webhook.",{"title":450,"path":451,"stem":452,"description":2832,"children":-1},"The board's routes for filing a work item, duplicating it, reading the board and one item, changing an item, and acting on several at once.",1791801177343]