[{"data":1,"prerenderedAt":2497},["ShallowReactive",2],{"navigation_docs":3,"-reference-http-api-budget-and-events":504,"-reference-http-api-budget-and-events-surround":2492},[4,28,51,187,214,469],{"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,113,134,183],{"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],{"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,"children":117,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[118,122,126,130],{"title":119,"path":120,"stem":121},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":123,"path":124,"stem":125},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":127,"path":128,"stem":129},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":131,"path":132,"stem":133},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":135,"path":136,"stem":137,"children":138,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[139,143,147,151,155,159,163,167,171,175,179],{"title":140,"path":141,"stem":142},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":144,"path":145,"stem":146},"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":148,"path":149,"stem":150},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":152,"path":153,"stem":154},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":156,"path":157,"stem":158},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":160,"path":161,"stem":162},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":164,"path":165,"stem":166},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":168,"path":169,"stem":170},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":172,"path":173,"stem":174},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":176,"path":177,"stem":178},"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":180,"path":181,"stem":182},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":184,"path":185,"stem":186},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":188,"path":189,"stem":190,"children":191},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[192,194,198,202,206,210],{"title":10,"path":189,"stem":193},"4.troubleshooting\u002Findex",{"title":195,"path":196,"stem":197},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":199,"path":200,"stem":201},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":203,"path":204,"stem":205},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":207,"path":208,"stem":209},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":211,"path":212,"stem":213},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":215,"path":216,"stem":217,"children":218},"Reference","\u002Freference","5.reference",[219,221,259,281,285,375,393,419,423,427,461,465],{"title":10,"path":216,"stem":220},"5.reference\u002Findex",{"title":222,"path":223,"stem":224,"children":225},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[226,227,231,235,239,243,247,251,255],{"title":10,"path":223,"stem":224},{"title":228,"path":229,"stem":230},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":232,"path":233,"stem":234},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":236,"path":237,"stem":238},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":240,"path":241,"stem":242},"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":244,"path":245,"stem":246},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":248,"path":249,"stem":250},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":252,"path":253,"stem":254},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":256,"path":257,"stem":258},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":260,"path":261,"stem":262,"children":263},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[264,265,269,273,277],{"title":10,"path":261,"stem":262},{"title":266,"path":267,"stem":268},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":270,"path":271,"stem":272},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":274,"path":275,"stem":276},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":278,"path":279,"stem":280},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":282,"path":283,"stem":284},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":286,"path":287,"stem":288,"children":289},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[290,291,309,313,317,321,325,329,333,337,371],{"title":10,"path":287,"stem":288},{"title":292,"path":293,"stem":294,"children":295},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[296,297,301,305],{"title":10,"path":293,"stem":294},{"title":298,"path":299,"stem":300},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":302,"path":303,"stem":304},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":306,"path":307,"stem":308},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":310,"path":311,"stem":312},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":314,"path":315,"stem":316},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":318,"path":319,"stem":320},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":322,"path":323,"stem":324},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":326,"path":327,"stem":328},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":330,"path":331,"stem":332},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":334,"path":335,"stem":336},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":338,"path":339,"stem":340,"children":341},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[342,343,347,351,355,359,363,367],{"title":10,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":348,"path":349,"stem":350},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":352,"path":353,"stem":354},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":356,"path":357,"stem":358},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":360,"path":361,"stem":362},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":364,"path":365,"stem":366},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":368,"path":369,"stem":370},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":372,"path":373,"stem":374},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":376,"path":377,"stem":378,"children":379},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[380,381,385,389],{"title":10,"path":377,"stem":378},{"title":382,"path":383,"stem":384},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":386,"path":387,"stem":388},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":390,"path":391,"stem":392},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":394,"path":395,"stem":396,"children":397},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[398,399,403,407,411,415],{"title":10,"path":395,"stem":396},{"title":400,"path":401,"stem":402},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":404,"path":405,"stem":406},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":408,"path":409,"stem":410},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":412,"path":413,"stem":414},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":416,"path":417,"stem":418},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":420,"path":421,"stem":422},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":424,"path":425,"stem":426},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":428,"path":429,"stem":430,"children":431},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[432,433,437,441,445,449,453,457],{"title":10,"path":429,"stem":430},{"title":434,"path":435,"stem":436},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":438,"path":439,"stem":440},"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":442,"path":443,"stem":444},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":446,"path":447,"stem":448},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":450,"path":451,"stem":452},"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":454,"path":455,"stem":456},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":458,"path":459,"stem":460},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":462,"path":463,"stem":464},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":466,"path":467,"stem":468},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":470,"path":471,"stem":472,"children":473},"Security and project","\u002Fproject","6.project",[474,476,480,484,488,492,496,500],{"title":10,"path":471,"stem":475},"6.project\u002Findex",{"title":477,"path":478,"stem":479},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":481,"path":482,"stem":483},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":485,"path":486,"stem":487},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":489,"path":490,"stem":491},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":493,"path":494,"stem":495},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":497,"path":498,"stem":499},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":501,"path":502,"stem":503},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":505,"title":446,"body":506,"description":2485,"extension":2486,"links":2487,"meta":2488,"navigation":2489,"path":447,"seo":2490,"stem":448,"__hash__":2491},"docs\u002F5.reference\u002F08.http-api\u002F5.budget-and-events.md",{"type":507,"value":508,"toc":2444},"minimark",[509,539,744,749,755,762,805,828,833,853,890,913,1015,1021,1025,1030,1064,1273,1390,1407,1424,1427,1432,1441,1536,1550,1590,1594,1599,1615,1665,1705,1752,1757,1760,1852,1898,1954,1959,1983,1992,2039,2044,2054,2059,2080,2097,2114,2159,2164,2189,2209,2213,2218,2242,2251,2288,2293,2311,2316,2330,2335,2340,2366,2375,2400,2410,2414,2440],[510,511,512,513,518,519,521,522,526,527,531,532,535,536,538],"p",{},"This page lists the board's routes for a ",[514,515,517],"a",{"href":516},"\u002Fconcepts\u002Fvocabulary#work-item","work item","'s budget, the dry run of a create, its events, its diff and review, and its documents. Like the other board routes they can change in any release: see ",[514,520,434],{"href":435}," for the rule, and the ",[514,523,525],{"href":524},"\u002Freference\u002Fhttp-api#stable-routes","stable routes"," for the two that keep their shape. Prefer the ",[528,529,530],"code",{},"kraft"," command with ",[528,533,534],{},"--json",". The fields these routes read from a work item's detail are under ",[514,537,442],{"href":443},".",[540,541,542,555],"table",{},[543,544,545],"thead",{},[546,547,548,552],"tr",{},[549,550,551],"th",{},"Route",[549,553,554],{},"What it does",[556,557,558,572,585,598,611,624,637,650,663,676,692,705,718,731],"tbody",{},[546,559,560,569],{},[561,562,563],"td",{},[514,564,566],{"href":565},"#get-apibudgettoday",[528,567,568],{},"GET \u002Fapi\u002Fbudget\u002Ftoday",[561,570,571],{},"Answers the instance's spend since local midnight against the daily cap.",[546,573,574,582],{},[561,575,576],{},[514,577,579],{"href":578},"#post-apiwork-itemsidbudgetraise",[528,580,581],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fbudget\u002Fraise",[561,583,584],{},"Raises the dollar cap that stopped an item and retries it.",[546,586,587,595],{},[561,588,589],{},[514,590,592],{"href":591},"#post-apiwork-itemsdry_run1",[528,593,594],{},"POST \u002Fapi\u002Fwork-items?dry_run=1",[561,596,597],{},"Runs every check of a create and files nothing.",[546,599,600,608],{},[561,601,602],{},[514,603,605],{"href":604},"#get-apiwork-itemsidevents",[528,606,607],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fevents",[561,609,610],{},"Reads an item's events, forward or backward.",[546,612,613,621],{},[561,614,615],{},[514,616,618],{"href":617},"#get-apiwork-itemsiddiff",[528,619,620],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdiff",[561,622,623],{},"Answers the changes the agents made.",[546,625,626,634],{},[561,627,628],{},[514,629,631],{"href":630},"#get-apiwork-itemsidcompare",[528,632,633],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fcompare",[561,635,636],{},"Diffs any two review targets.",[546,638,639,647],{},[561,640,641],{},[514,642,644],{"href":643},"#put-apiwork-itemsidviewed",[528,645,646],{},"PUT \u002Fapi\u002Fwork-items\u002F{id}\u002Fviewed",[561,648,649],{},"Marks a file viewed.",[546,651,652,660],{},[561,653,654],{},[514,655,657],{"href":656},"#delete-apiwork-itemsidviewed",[528,658,659],{},"DELETE \u002Fapi\u002Fwork-items\u002F{id}\u002Fviewed",[561,661,662],{},"Clears the mark.",[546,664,665,673],{},[561,666,667],{},[514,668,670],{"href":669},"#get-apiwork-itemsidfix-target",[528,671,672],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Ffix-target",[561,674,675],{},"Answers where a request-changes review would restart.",[546,677,678,686],{},[561,679,680],{},[514,681,683],{"href":682},"#post-apiwork-itemsidreview",[528,684,685],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Freview",[561,687,688,689,538],{},"Submits a review; this page covers its ",[528,690,691],{},"digest",[546,693,694,702],{},[561,695,696],{},[514,697,699],{"href":698},"#get-apiwork-itemsidattachmentskind",[528,700,701],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fattachments\u002F{kind}",[561,703,704],{},"Reads the spec or plan attached at intake.",[546,706,707,715],{},[561,708,709],{},[514,710,712],{"href":711},"#get-apiwork-itemsiddocuments",[528,713,714],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdocuments",[561,716,717],{},"Lists the documents linked to an item.",[546,719,720,728],{},[561,721,722],{},[514,723,725],{"href":724},"#get-apiwork-itemsidartifact",[528,726,727],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifact",[561,729,730],{},"Reads the pending gate's document.",[546,732,733,741],{},[561,734,735],{},[514,736,738],{"href":737},"#get-apiwork-itemsidartifactskind",[528,739,740],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifacts\u002F{kind}",[561,742,743],{},"Reads the document a task wrote.",[745,746,748],"h2",{"id":747},"budget","Budget",[750,751,753],"h3",{"id":752},"get-apibudgettoday",[528,754,568],{},[510,756,757,758,761],{},"Answers the instance's spend since local midnight against ",[528,759,760],{},"policy.budget.daily_usd",":",[763,764,769],"pre",{"className":765,"code":766,"language":767,"meta":768,"style":768},"language-json shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","{\"spent_usd\": 3.4, \"cap_usd\": 20.0}\n","json","",[528,770,771],{"__ignoreMap":768},[772,773,776,780,784,787,791,794,797,799,802],"span",{"class":774,"line":775},"line",1,[772,777,779],{"class":778},"s7iLA","{",[772,781,783],{"class":782},"sb7M8","\"spent_usd\"",[772,785,786],{"class":778},": ",[772,788,790],{"class":789},"ssYy9","3.4",[772,792,793],{"class":778},", ",[772,795,796],{"class":782},"\"cap_usd\"",[772,798,786],{"class":778},[772,800,801],{"class":789},"20.0",[772,803,804],{"class":778},"}\n",[510,806,807,810,811,814,815,817,818,821,822,538],{},[528,808,809],{},"cap_usd"," is ",[528,812,813],{},"null"," when ",[528,816,760],{}," is unset. The same two numbers are ",[528,819,820],{},"daily"," in a work item's ",[514,823,825],{"href":824},"\u002Freference\u002Fhttp-api\u002Fwork-item-object#the-budget_cap-field",[528,826,827],{},"budget_cap",[750,829,831],{"id":830},"post-apiwork-itemsidbudgetraise",[528,832,581],{},[510,834,835,836,839,840,843,844,847,848,852],{},"Raises the dollar cap that stopped the item and retries the stopped node, as ",[528,837,838],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fretry"," does. ",[528,841,842],{},"kraft item raise-budget"," calls it. It raises the item's own cap, or the item-wide ",[528,845,846],{},"budget_usd"," of its policy: whichever stopped the item. ",[514,849,851],{"href":850},"\u002Freference\u002Fcli\u002Fitem#raise-a-cap-that-stopped-an-item","Raise a cap that stopped an item"," says what the command accepts and refuses.",[540,854,855,868],{},[543,856,857],{},[546,858,859,862,865],{},[549,860,861],{},"Field",[549,863,864],{},"Type",[549,866,867],{},"Meaning",[556,869,870],{},[546,871,872,876,881],{},[561,873,874],{},[528,875,846],{},[561,877,878,879],{},"number or ",[528,880,813],{},[561,882,883,884,886,887,538],{},"The new cap. ",[528,885,813],{}," means no cap. The field is required: leaving it out answers ",[528,888,889],{},"422",[510,891,892,893,900,901,786,904,907,908,912],{},"The answer is ",[514,894,896,899],{"href":895},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidretry",[528,897,898],{},"\u002Fretry","'s"," with no ",[528,902,903],{},"path",[528,905,906],{},"{id, node_id, path, loop, steer, attempt}",", or ",[514,909,911],{"href":910},"\u002Freference\u002Fhttp-api\u002Fwork-item-object#the-stored-row","the stored row"," when the retry stops at once.",[540,914,915,925],{},[543,916,917],{},[546,918,919,922],{},[549,920,921],{},"Status",[549,923,924],{},"When",[556,926,927,937,947,957,973,985,1002],{},[546,928,929,934],{},[561,930,931],{},[528,932,933],{},"403",[561,935,936],{},"A worker session or an escalation turn raises a cap. A spending cap is a person's call.",[546,938,939,944],{},[561,940,941],{},[528,942,943],{},"404",[561,945,946],{},"There is no such item.",[546,948,949,954],{},[561,950,951],{},[528,952,953],{},"409",[561,955,956],{},"The item has ended.",[546,958,959,963],{},[561,960,961],{},[528,962,953],{},[561,964,965,966,968,969,972],{},"The item is not stopped, or a different cap stopped it: a node, step or task's ",[528,967,846],{},", a ",[528,970,971],{},"token_budget"," or the daily cap.",[546,974,975,979],{},[561,976,977],{},[528,978,953],{},[561,980,981,982,984],{},"Spend a harness never reported stopped it and the body sets a number. Only ",[528,983,813],{}," passes that stop.",[546,986,987,991],{},[561,988,989],{},[528,990,953],{},[561,992,993,994,538],{},"The retry could not start, with every slot busy or a walk still running. The cap is not changed. These are two of ",[514,995,996,998,999,1001],{"href":895},[528,997,898],{},"'s ",[528,1000,953],{},"s",[546,1003,1004,1008],{},[561,1005,1006],{},[528,1007,889],{},[561,1009,1010,1011,1014],{},"The new cap is at or below what the item has already spent, so it would stop again at once. Or the policy's ",[528,1012,1013],{},"maxima"," refuse an item-wide cap.",[510,1016,1017,1018,1020],{},"If the retry is refused after the cap was raised, the answer has the retry's own status, ",[528,1019,953],{}," for example, and its message says the cap was raised and the retry was not.",[745,1022,1024],{"id":1023},"dry-run","Dry run",[750,1026,1028],{"id":1027},"post-apiwork-itemsdry_run1",[528,1029,594],{},[510,1031,1032,1033,1036,1037,1040,1041,1044,1045,793,1047,1049,1050,1053,1054,1056,1057,1060,1061,1063],{},"Runs every check ",[528,1034,1035],{},"POST \u002Fapi\u002Fwork-items"," runs, up to and including validating ",[528,1038,1039],{},"node_overrides",", then answers ",[528,1042,1043],{},"200"," without filing anything: no row, no bead, no attachment copy, no spawn. The body is a create's. A body that would answer ",[528,1046,933],{},[528,1048,889],{}," or ",[528,1051,1052],{},"503"," on an ordinary create answers the same on a dry run. The ",[528,1055,933],{}," for an agent's ",[528,1058,1059],{},"autostart"," is checked before the ",[528,1062,889],{},"s, so it runs here too.",[763,1065,1067],{"className":765,"code":1066,"language":767,"meta":768,"style":768},"{\n  \"dry_run\": true,\n  \"nodes\": [...],\n  \"skipped\": [{\"node\": \"spec\", \"why\": \"covered_by\", \"kind\": \"spec\"}, {\"node\": \"...\", \"why\": \"skip\"}],\n  \"gates\": [\"spec_approval\", \"...\"],\n  \"caps\": {\n    \"budget_usd\": 5.0,\n    \"budget_source\": \"item\",\n    \"daily_usd\": 20.0,\n    \"nodes\": {\"implement\": {\"attempts\": 3, \"wall_clock_s\": 7200}}\n  }\n}\n",[528,1068,1069,1074,1088,1104,1163,1180,1189,1202,1215,1227,1262,1268],{"__ignoreMap":768},[772,1070,1071],{"class":774,"line":775},[772,1072,1073],{"class":778},"{\n",[772,1075,1077,1080,1082,1085],{"class":774,"line":1076},2,[772,1078,1079],{"class":782},"  \"dry_run\"",[772,1081,786],{"class":778},[772,1083,1084],{"class":789},"true",[772,1086,1087],{"class":778},",\n",[772,1089,1091,1094,1097,1101],{"class":774,"line":1090},3,[772,1092,1093],{"class":782},"  \"nodes\"",[772,1095,1096],{"class":778},": [",[772,1098,1100],{"class":1099},"sLsVW","...",[772,1102,1103],{"class":778},"],\n",[772,1105,1107,1110,1113,1116,1118,1122,1124,1127,1129,1132,1134,1137,1139,1141,1144,1146,1148,1151,1153,1155,1157,1160],{"class":774,"line":1106},4,[772,1108,1109],{"class":782},"  \"skipped\"",[772,1111,1112],{"class":778},": [{",[772,1114,1115],{"class":782},"\"node\"",[772,1117,786],{"class":778},[772,1119,1121],{"class":1120},"semJd","\"spec\"",[772,1123,793],{"class":778},[772,1125,1126],{"class":782},"\"why\"",[772,1128,786],{"class":778},[772,1130,1131],{"class":1120},"\"covered_by\"",[772,1133,793],{"class":778},[772,1135,1136],{"class":782},"\"kind\"",[772,1138,786],{"class":778},[772,1140,1121],{"class":1120},[772,1142,1143],{"class":778},"}, {",[772,1145,1115],{"class":782},[772,1147,786],{"class":778},[772,1149,1150],{"class":1120},"\"...\"",[772,1152,793],{"class":778},[772,1154,1126],{"class":782},[772,1156,786],{"class":778},[772,1158,1159],{"class":1120},"\"skip\"",[772,1161,1162],{"class":778},"}],\n",[772,1164,1166,1169,1171,1174,1176,1178],{"class":774,"line":1165},5,[772,1167,1168],{"class":782},"  \"gates\"",[772,1170,1096],{"class":778},[772,1172,1173],{"class":1120},"\"spec_approval\"",[772,1175,793],{"class":778},[772,1177,1150],{"class":1120},[772,1179,1103],{"class":778},[772,1181,1183,1186],{"class":774,"line":1182},6,[772,1184,1185],{"class":782},"  \"caps\"",[772,1187,1188],{"class":778},": {\n",[772,1190,1192,1195,1197,1200],{"class":774,"line":1191},7,[772,1193,1194],{"class":782},"    \"budget_usd\"",[772,1196,786],{"class":778},[772,1198,1199],{"class":789},"5.0",[772,1201,1087],{"class":778},[772,1203,1205,1208,1210,1213],{"class":774,"line":1204},8,[772,1206,1207],{"class":782},"    \"budget_source\"",[772,1209,786],{"class":778},[772,1211,1212],{"class":1120},"\"item\"",[772,1214,1087],{"class":778},[772,1216,1218,1221,1223,1225],{"class":774,"line":1217},9,[772,1219,1220],{"class":782},"    \"daily_usd\"",[772,1222,786],{"class":778},[772,1224,801],{"class":789},[772,1226,1087],{"class":778},[772,1228,1230,1233,1236,1239,1241,1244,1246,1249,1251,1254,1256,1259],{"class":774,"line":1229},10,[772,1231,1232],{"class":782},"    \"nodes\"",[772,1234,1235],{"class":778},": {",[772,1237,1238],{"class":782},"\"implement\"",[772,1240,1235],{"class":778},[772,1242,1243],{"class":782},"\"attempts\"",[772,1245,786],{"class":778},[772,1247,1248],{"class":789},"3",[772,1250,793],{"class":778},[772,1252,1253],{"class":782},"\"wall_clock_s\"",[772,1255,786],{"class":778},[772,1257,1258],{"class":789},"7200",[772,1260,1261],{"class":778},"}}\n",[772,1263,1265],{"class":774,"line":1264},11,[772,1266,1267],{"class":778},"  }\n",[772,1269,1271],{"class":774,"line":1270},12,[772,1272,804],{"class":778},[540,1274,1275,1283],{},[543,1276,1277],{},[546,1278,1279,1281],{},[549,1280,861],{},[549,1282,867],{},[556,1284,1285,1299,1321,1331,1359,1372],{},[546,1286,1287,1292],{},[561,1288,1289],{},[528,1290,1291],{},"nodes",[561,1293,1294,1295,1298],{},"The chain that would be filed, in ",[528,1296,1297],{},"chain_definition","'s own node shape.",[546,1300,1301,1306],{},[561,1302,1303],{},[528,1304,1305],{},"skipped",[561,1307,1308,1309,1312,1313,1316,1317,1320],{},"Every node the attachments or ",[528,1310,1311],{},"skip_nodes"," dropped. ",[528,1314,1315],{},"covered_by"," names the attachment kind that made it redundant, and ",[528,1318,1319],{},"skip"," is your own choice.",[546,1322,1323,1328],{},[561,1324,1325],{},[528,1326,1327],{},"gates",[561,1329,1330],{},"The ids of the gate nodes left in the chain.",[546,1332,1333,1341],{},[561,1334,1335,793,1338],{},[528,1336,1337],{},"caps.budget_usd",[528,1339,1340],{},"caps.budget_source",[561,1342,1343,1344,1346,1347,1349,1350,1353,1354,810,1356,1358],{},"The create route's own cap resolution: ",[528,1345,1212],{}," for the body's own ",[528,1348,846],{},", else ",[528,1351,1352],{},"\"policy\"",". ",[528,1355,846],{},[528,1357,813],{}," when no cap applies.",[546,1360,1361,1366],{},[561,1362,1363],{},[528,1364,1365],{},"caps.daily_usd",[561,1367,1368,907,1370,538],{},[528,1369,760],{},[528,1371,813],{},[546,1373,1374,1379],{},[561,1375,1376],{},[528,1377,1378],{},"caps.nodes",[561,1380,1381,1382,1385,1386,1389],{},"Each fix-loop node's ",[528,1383,1384],{},"attempts"," and ",[528,1387,1388],{},"wall_clock_s",", resolved as the walk resolves them. See below.",[510,1391,1392,1393,1396,1397,793,1400,1049,1403,1406],{},"A dry run skips everything after those checks: it has no ",[528,1394,1395],{},"slots"," key, no ",[528,1398,1399],{},"repo_warning",[528,1401,1402],{},"duplicate_warning",[528,1404,1405],{},"bead_warning",", and it files no bead and copies no attachment.",[510,1408,1409,1411,1412,1416,1417,1420,1421,1423],{},[528,1410,1378],{}," resolves the way the ",[514,1413,1415],{"href":1414},"\u002Fconcepts\u002Fvocabulary#walk","walk"," resolves caps at run time: the node's own ",[528,1418,1419],{},"policy",", the ",[528,1422,1039],{}," entry and any item-wide override are layered on in the same order. A node's own override and an item-wide value each show where they apply.",[745,1425,466],{"id":1426},"events",[750,1428,1430],{"id":1429},"get-apiwork-itemsidevents",[528,1431,607],{},[510,1433,1434,1435,1438,1439,538],{},"Reads an item's events, oldest first. Each row is ",[528,1436,1437],{},"{seq, work_item_id, type, payload, node_id, created_at}",": see ",[514,1440,466],{"href":467},[540,1442,1443,1457],{},[543,1444,1445],{},[546,1446,1447,1450,1452,1455],{},[549,1448,1449],{},"Query",[549,1451,864],{},[549,1453,1454],{},"Default",[549,1456,867],{},[556,1458,1459,1480,1502],{},[546,1460,1461,1466,1469,1474],{},[561,1462,1463],{},[528,1464,1465],{},"after_seq",[561,1467,1468],{},"integer",[561,1470,1471],{},[528,1472,1473],{},"0",[561,1475,1476,1477,538],{},"Return events with a greater ",[528,1478,1479],{},"seq",[546,1481,1482,1487,1489,1492],{},[561,1483,1484],{},[528,1485,1486],{},"before_seq",[561,1488,1468],{},[561,1490,1491],{},"none",[561,1493,1494,1495,1498,1499,1501],{},"Page backward instead: return the last ",[528,1496,1497],{},"limit"," events with ",[528,1500,1479],{}," below it.",[546,1503,1504,1508,1510,1519],{},[561,1505,1506],{},[528,1507,1497],{},[561,1509,1468],{},[561,1511,1512,1513,1516,1517],{},"none, or ",[528,1514,1515],{},"100"," with ",[528,1518,1486],{},[561,1520,1521,1522,1525,1526,1529,1530,1532,1533,1535],{},"At most this many events, from ",[528,1523,1524],{},"1"," to ",[528,1527,1528],{},"500",". With ",[528,1531,1465],{}," alone it bounds the forward window to the first ",[528,1534,1497],{}," events after it.",[510,1537,1538,1539,1541,1542,1544,1545,810,1547,1549],{},"Without ",[528,1540,1486],{},", the route returns every event after ",[528,1543,1465],{},". With it, ",[528,1546,1497],{},[528,1548,1515],{}," when omitted.",[540,1551,1552,1560],{},[543,1553,1554],{},[546,1555,1556,1558],{},[549,1557,921],{},[549,1559,924],{},[556,1561,1562,1570],{},[546,1563,1564,1568],{},[561,1565,1566],{},[528,1567,943],{},[561,1569,946],{},[546,1571,1572,1576],{},[561,1573,1574],{},[528,1575,889],{},[561,1577,1578,1580,1581,1525,1583,907,1585,1385,1587,1589],{},[528,1579,1497],{}," is outside ",[528,1582,1524],{},[528,1584,1528],{},[528,1586,1465],{},[528,1588,1486],{}," are both given.",[745,1591,1593],{"id":1592},"diff-and-review","Diff and review",[750,1595,1597],{"id":1596},"get-apiwork-itemsiddiff",[528,1598,620],{},[510,1600,1601,1602,1605,1606,810,1609,1525,1612,1614],{},"Answers the changes the agents made, for a reviewer with no filesystem access. It keeps two ranges apart: the top level is ",[528,1603,1604],{},"HEAD"," to the working tree (the uncommitted part, usually empty at a gate), and ",[528,1607,1608],{},"landed",[528,1610,1611],{},"base_ref",[528,1613,1604],{}," (what the chain's nodes committed).",[540,1616,1617,1629],{},[543,1618,1619],{},[546,1620,1621,1623,1625,1627],{},[549,1622,1449],{},[549,1624,864],{},[549,1626,1454],{},[549,1628,867],{},[556,1630,1631],{},[546,1632,1633,1638,1641,1646],{},[561,1634,1635],{},[528,1636,1637],{},"ignore_whitespace",[561,1639,1640],{},"boolean",[561,1642,1643],{},[528,1644,1645],{},"false",[561,1647,1648,1649,1652,1653,1656,1657,1660,1661,1664],{},"As ",[528,1650,1651],{},"git diff -w",". A file whose only change is whitespace drops out of ",[528,1654,1655],{},"files",", the per-file counts and ",[528,1658,1659],{},"diff"," together, so the three never disagree. ",[528,1662,1663],{},"untracked"," does not follow it.",[510,1666,1667,1668,793,1671,793,1673,793,1675,793,1677,793,1679,793,1682,1684,1685,1687,1688,1691,1692,1385,1695,1698,1699,1701,1702,538],{},"The answer carries ",[528,1669,1670],{},"work_item_id",[528,1672,1611],{},[528,1674,1655],{},[528,1676,1659],{},[528,1678,1663],{},[528,1680,1681],{},"truncated",[528,1683,1637],{}," (the value it used), ",[528,1686,1608],{}," (",[528,1689,1690],{},"{commits, files, diff, truncated}","), ",[528,1693,1694],{},"diff_max_bytes",[528,1696,1697],{},"worktree_path",". An item with no ",[528,1700,1611],{}," answers the same keys empty, with ",[528,1703,1704],{},"base_ref: null",[540,1706,1707,1715],{},[543,1708,1709],{},[546,1710,1711,1713],{},[549,1712,921],{},[549,1714,924],{},[556,1716,1717,1734,1743],{},[546,1718,1719,1723],{},[561,1720,1721],{},[528,1722,943],{},[561,1724,1725,1726,538],{},"The item has no worktree on disk. See ",[514,1727,1729,1730,1733],{"href":1728},"\u002Freference\u002Fhttp-api\u002Fwork-item-object#the-worktree_exists-field","The ",[528,1731,1732],{},"worktree_exists"," field",[546,1735,1736,1740],{},[561,1737,1738],{},[528,1739,953],{},[561,1741,1742],{},"A sandboxed worker can still write the worktree, so host git does not read it.",[546,1744,1745,1749],{},[561,1746,1747],{},[528,1748,1528],{},[561,1750,1751],{},"Git could not read the worktree.",[750,1753,1755],{"id":1754},"get-apiwork-itemsidcompare",[528,1756,633],{},[510,1758,1759],{},"Diffs any two review targets of the pending gate.",[540,1761,1762,1774],{},[543,1763,1764],{},[546,1765,1766,1768,1770,1772],{},[549,1767,1449],{},[549,1769,864],{},[549,1771,1454],{},[549,1773,867],{},[556,1775,1776,1797,1813,1831],{},[546,1777,1778,1783,1786,1791],{},[561,1779,1780],{},[528,1781,1782],{},"from",[561,1784,1785],{},"target",[561,1787,1788],{},[528,1789,1790],{},"base",[561,1792,1793,1794,538],{},"The older side. It cannot be ",[528,1795,1796],{},"latest",[546,1798,1799,1804,1806,1810],{},[561,1800,1801],{},[528,1802,1803],{},"to",[561,1805,1785],{},[561,1807,1808],{},[528,1809,1796],{},[561,1811,1812],{},"The newer side.",[546,1814,1815,1819,1822,1824],{},[561,1816,1817],{},[528,1818,1291],{},[561,1820,1821],{},"string",[561,1823,1491],{},[561,1825,1826,1827,1830],{},"Comma-separated node ids. Only files those nodes touched are kept, and ",[528,1828,1829],{},"groups"," lists each node's files.",[546,1832,1833,1837,1839,1843],{},[561,1834,1835],{},[528,1836,1637],{},[561,1838,1640],{},[561,1840,1841],{},[528,1842,1645],{},[561,1844,1845,1846,1353,1849,1664],{},"As on ",[528,1847,1848],{},"\u002Fdiff",[528,1850,1851],{},"touched_by",[510,1853,1854,1855,793,1857,1859,1860,1049,1863,1866,1867,1385,1869,1871,1872,1691,1875,793,1878,1880,1881,1385,1883,1691,1886,793,1888,793,1890,793,1892,793,1894,1385,1896,538],{},"A target is ",[528,1856,1790],{},[528,1858,1796],{}," (the working tree), ",[528,1861,1862],{},"last_review",[528,1864,1865],{},"attempt:N",". The answer carries ",[528,1868,1782],{},[528,1870,1803],{}," (each ",[528,1873,1874],{},"{target, sha}",[528,1876,1877],{},"rebased",[528,1879,1655],{}," (each with ",[528,1882,1851],{},[528,1884,1885],{},"viewed",[528,1887,1829],{},[528,1889,1659],{},[528,1891,1663],{},[528,1893,1681],{},[528,1895,1637],{},[528,1897,1694],{},[540,1899,1900,1908],{},[543,1901,1902],{},[546,1903,1904,1906],{},[549,1905,921],{},[549,1907,924],{},[556,1909,1910,1924,1936,1945],{},[546,1911,1912,1917],{},[561,1913,1914],{},[528,1915,1916],{},"400",[561,1918,1919,1920,810,1922,538],{},"A target is not one of the four, or ",[528,1921,1782],{},[528,1923,1796],{},[546,1925,1926,1930],{},[561,1927,1928],{},[528,1929,943],{},[561,1931,1932,1933,1935],{},"No review has been submitted for the gate (",[528,1934,1862],{},"), the gate has no such attempt, or the item has no worktree on disk.",[546,1937,1938,1942],{},[561,1939,1940],{},[528,1941,953],{},[561,1943,1944],{},"The item has no base commit, or a sandboxed worker can still write the worktree.",[546,1946,1947,1951],{},[561,1948,1949],{},[528,1950,1528],{},[561,1952,1953],{},"Git could not diff the two targets.",[750,1955,1957],{"id":1956},"put-apiwork-itemsidviewed",[528,1958,646],{},[510,1960,1961,1962,1965,1966,1969,1970,1972,1973,1975,1976,1979,1980,1982],{},"Marks a file viewed. ",[528,1963,1964],{},"?file=\u003Cpath>&to=\u003Ctarget>"," names it: ",[528,1967,1968],{},"file"," is a repository-relative path, and ",[528,1971,1803],{}," is a compare target, ",[528,1974,1796],{}," by default. The answer is ",[528,1977,1978],{},"{file, to, viewed}",", with ",[528,1981,1885],{}," true.",[510,1984,1985,1986,1988,1989,1991],{},"A mark belongs to the file's content at ",[528,1987,1803],{},", not to the ",[528,1990,1782],{}," side. A file that has not changed since you ticked it stays ticked in any other comparison, and a new attempt that edits it clears the tick.",[540,1993,1994,2002],{},[543,1995,1996],{},[546,1997,1998,2000],{},[549,1999,921],{},[549,2001,924],{},[556,2003,2004,2018,2030],{},[546,2005,2006,2010],{},[561,2007,2008],{},[528,2009,1916],{},[561,2011,2012,2014,2015,2017],{},[528,2013,1968],{}," is empty, absolute, or leaves the repository. Or ",[528,2016,1803],{}," is not a compare target.",[546,2019,2020,2024],{},[561,2021,2022],{},[528,2023,943],{},[561,2025,2026,2027,2029],{},"The item does not have the target ",[528,2028,1803],{},", or has no worktree on disk.",[546,2031,2032,2036],{},[561,2033,2034],{},[528,2035,953],{},[561,2037,2038],{},"A sandboxed worker can still write the worktree.",[750,2040,2042],{"id":2041},"delete-apiwork-itemsidviewed",[528,2043,659],{},[510,2045,2046,2047,2049,2050,2053],{},"Clears the mark, with the same query, answer (",[528,2048,1885],{}," false) and refusals as ",[528,2051,2052],{},"PUT",". It clears the mark on that content wherever it was made.",[750,2055,2057],{"id":2056},"get-apiwork-itemsidfix-target",[528,2058,672],{},[510,2060,2061,2062,2065,2066,2069,2070,2076,2077,538],{},"Answers where the work restarts if the reviewer requests changes now. It takes ",[528,2063,2064],{},"?node=&gate="," for a target the reviewer picked, and answers ",[528,2067,2068],{},"{gate, node, then, round, reason}",": the shape of ",[514,2071,2073],{"href":2072},"\u002Freference\u002Fhttp-api\u002Fwork-item-object#the-fix_target-field",[528,2074,2075],{},"fix_target"," with a ",[528,2078,2079],{},"reason",[510,2081,2082,2083,2086,2087,1385,2090,2093,2094,2096],{},"With no gate pending it gives what a gateless ",[528,2084,2085],{},"request_changes"," would target, with ",[528,2088,2089],{},"gate",[528,2091,2092],{},"round"," ",[528,2095,813],{},". It does git work per thread, so call it on demand.",[510,2098,2099,2101,2102,2105,2106,793,2109,907,2112,538],{},[528,2100,2079],{}," is one of ",[528,2103,2104],{},"requested"," (you named the node), ",[528,2107,2108],{},"threads on \u003Cpath or node>",[528,2110,2111],{},"current node",[528,2113,2089],{},[540,2115,2116,2124],{},[543,2117,2118],{},[546,2119,2120,2122],{},[549,2121,921],{},[549,2123,924],{},[556,2125,2126,2138,2150],{},[546,2127,2128,2132],{},[561,2129,2130],{},[528,2131,1916],{},[561,2133,2134,2137],{},[528,2135,2136],{},"node"," is not before the pending gate. With no gate pending, it is not at or before the item's current node.",[546,2139,2140,2144],{},[561,2141,2142],{},[528,2143,953],{},[561,2145,2146,2147,2149],{},"The item has ended, or ",[528,2148,2089],{}," is not pending.",[546,2151,2152,2156],{},[561,2153,2154],{},[528,2155,953],{},[561,2157,2158],{},"With no gate pending, the item has no current node, or its changes target cannot be worked out. The answer says why.",[750,2160,2162],{"id":2161},"post-apiwork-itemsidreview",[528,2163,685],{},[510,2165,2166,2167,810,2170,793,2173,1049,2175,1353,2178,2181,2182,2185,2186,2188],{},"Submits a review on whichever gate is pending: ",[528,2168,2169],{},"outcome",[528,2171,2172],{},"approve",[528,2174,2085],{},[528,2176,2177],{},"comment",[514,2179,2180],{"href":77},"Review a change"," covers it. ",[528,2183,2184],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Freview"," takes the same body for a named gate, and answers ",[528,2187,953],{}," when that gate is not pending.",[510,2190,2191,2192,2195,2196,2198,2199,2202,2203,2205,2206,2208],{},"A review with ",[528,2193,2194],{},"outcome: approve"," takes an optional ",[528,2197,691],{},", passed to the gate approval as ",[528,2200,2201],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Fapprove"," takes it. A chain revision gate needs it: the one ",[528,2204,727],{}," returned. Without it, or with a stale one, the route answers ",[528,2207,953],{},". Any other gate ignores it.",[745,2210,2212],{"id":2211},"documents","Documents",[750,2214,2216],{"id":2215},"get-apiwork-itemsidattachmentskind",[528,2217,701],{},[510,2219,2220,2221,810,2224,1049,2227,2230,2231,2234,2235,2238,2239,538],{},"Reads the spec or plan attached at intake. ",[528,2222,2223],{},"kind",[528,2225,2226],{},"spec",[528,2228,2229],{},"plan",". It reads the copy Kraft keeps under ",[528,2232,2233],{},"run\u002Fattachments\u002F\u003Cid>\u002F",", the one the worktree gets when the item starts. Before the item starts nothing is indexed, so this is how the board and the phone open one, as do ",[528,2236,2237],{},"kraft view docs --attachment"," and the MCP tool ",[528,2240,2241],{},"get_attachment",[510,2243,2244,2245,793,2248,2250],{},"It answers ",[528,2246,2247],{},"{work_item_id, kind, path, title, content, truncated}",[528,2249,903],{}," being where the worktree puts it.",[540,2252,2253,2261],{},[543,2254,2255],{},[546,2256,2257,2259],{},[549,2258,921],{},[549,2260,924],{},[556,2262,2263,2272],{},[546,2264,2265,2269],{},[561,2266,2267],{},[528,2268,943],{},[561,2270,2271],{},"The item has no such attachment, or its copy is gone.",[546,2273,2274,2278],{},[561,2275,2276],{},[528,2277,889],{},[561,2279,2280,2282,2283,2285,2286,538],{},[528,2281,2223],{}," is neither ",[528,2284,2226],{}," nor ",[528,2287,2229],{},[750,2289,2291],{"id":2290},"get-apiwork-itemsiddocuments",[528,2292,714],{},[510,2294,2295,2296,2299,2300,2303,2304,2307,2308,2310],{},"Lists the documents linked to the item, newest first, as ",[528,2297,2298],{},"{work_item_id, documents}",". An attachment that is not indexed yet is listed as ",[528,2301,2302],{},"attachment:\u003Cid>:\u003Ckind>",", which ",[528,2305,2306],{},"GET \u002Fapi\u002Fdocuments\u002F{id}"," reads. It comes from the copy under ",[528,2309,2233],{}," while the item has no worktree directory, before it starts and after the worktree is removed.",[750,2312,2314],{"id":2313},"get-apiwork-itemsidartifact",[528,2315,727],{},[510,2317,2318,2319,2322,2323,2325,2326,2329],{},"Reads the pending gate's document from the item's worktree, as it is on disk now. It answers ",[528,2320,2321],{},"{work_item_id, path, absolute_path, title, content, truncated, artifact_max_bytes}",". A chain revision is rendered as its gate shows it, and the answer adds ",[528,2324,691],{},", which an approval sends back. ",[528,2327,2328],{},"kraft view artifact"," calls it.",[510,2331,2244,2332,2334],{},[528,2333,943],{}," when the gate has no artifact or the file cannot be read.",[750,2336,2338],{"id":2337},"get-apiwork-itemsidartifactskind",[528,2339,740],{},[510,2341,2342,2343,2345,2346,2349,2350,2354,2355,2357,2358,2360,2361,1349,2364,538],{},"Reads the document of ",[528,2344,2223],{}," a task wrote (its ",[528,2347,2348],{},"produces","), whether or not a gate is pending on it: what the task's ",[2351,2352,2353],"strong",{},"Output"," opens. ",[528,2356,2223],{}," must be one the item's chain names, as a task's ",[528,2359,2348],{}," or a gate's ",[528,2362,2363],{},"artifact",[528,2365,943],{},[510,2367,2368,2369,2371,2372,538],{},"It reads the item's worktree as ",[528,2370,727],{}," does, with a chain revision rendered as its gate shows it, and answers ",[528,2373,2374],{},"{kind, work_item_id, path, absolute_path, title, content, truncated}",[540,2376,2377,2385],{},[543,2378,2379],{},[546,2380,2381,2383],{},[549,2382,921],{},[549,2384,924],{},[556,2386,2387],{},[546,2388,2389,2393],{},[561,2390,2391],{},[528,2392,943],{},[561,2394,2395,2396,2399],{},"The file there is refused (a symlink, an unreadable file): the answer gives the reason, and the item's timeline records ",[528,2397,2398],{},"artifact_refused",". Or the worktree has no file and Kraft has no copy.",[510,2401,2402,2403,2406,2407,538],{},"With no file in the worktree it reads the copy the gate's approval indexed. That answer has the same fields with ",[528,2404,2405],{},"origin"," in place of ",[528,2408,2409],{},"absolute_path",[745,2411,2413],{"id":2412},"related","Related",[2415,2416,2417,2425,2430,2435],"ul",{},[2418,2419,2420,1385,2422,2424],"li",{},[514,2421,434],{"href":435},[514,2423,438],{"href":439},": the routes that file, change, decide and end a work item.",[2418,2426,2427,2429],{},[514,2428,442],{"href":443},": the fields these routes read from an item's detail.",[2418,2431,2432,2434],{},[514,2433,466],{"href":467},": every event type, and the WebSocket that streams them.",[2418,2436,2437,2439],{},[514,2438,76],{"href":77},": the review these routes carry, from the board.",[2441,2442,2443],"style",{},"html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}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);}html pre.shiki code .sLsVW, html code.shiki .sLsVW{--shiki-light:#6E011A;--shiki-light-font-style:italic;--shiki-default:#6E011A;--shiki-default-font-style:italic;--shiki-dark:#FFB1AF;--shiki-dark-font-style:italic}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}",{"title":768,"searchDepth":1076,"depth":1076,"links":2445},[2446,2452,2456,2460,2474,2484],{"id":747,"depth":1076,"text":748,"children":2447},[2448,2450],{"id":752,"depth":1090,"text":2449},"GET \u002Fapi\u002F​budget\u002F​today",{"id":830,"depth":1090,"text":2451},"POST \u002Fapi\u002F​work-​items\u002F​{id}\u002F​budget\u002F​raise",{"id":1023,"depth":1076,"text":1024,"children":2453},[2454],{"id":1027,"depth":1090,"text":2455},"POST \u002Fapi\u002F​work-​items?​dry_​run=​1",{"id":1426,"depth":1076,"text":466,"children":2457},[2458],{"id":1429,"depth":1090,"text":2459},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​events",{"id":1592,"depth":1076,"text":1593,"children":2461},[2462,2464,2466,2468,2470,2472],{"id":1596,"depth":1090,"text":2463},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​diff",{"id":1754,"depth":1090,"text":2465},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​compare",{"id":1956,"depth":1090,"text":2467},"PUT \u002Fapi\u002F​work-​items\u002F​{id}\u002F​viewed",{"id":2041,"depth":1090,"text":2469},"DELETE \u002Fapi\u002F​work-​items\u002F​{id}\u002F​viewed",{"id":2056,"depth":1090,"text":2471},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​fix-​target",{"id":2161,"depth":1090,"text":2473},"POST \u002Fapi\u002F​work-​items\u002F​{id}\u002F​review",{"id":2211,"depth":1076,"text":2212,"children":2475},[2476,2478,2480,2482],{"id":2215,"depth":1090,"text":2477},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​attachments\u002F​{kind}",{"id":2290,"depth":1090,"text":2479},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​documents",{"id":2313,"depth":1090,"text":2481},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​artifact",{"id":2337,"depth":1090,"text":2483},"GET \u002Fapi\u002F​work-​items\u002F​{id}\u002F​artifacts\u002F​{kind}",{"id":2412,"depth":1076,"text":2413},"The board's routes for the daily spend total, raising a budget, the dry run of a create, an item's events, its diff and review, and its documents.","md",null,{},true,{"title":446,"description":2485},"3QDrTLpkHRNZzvdmOgUpv-szp1rV2MFbSgqOS1Pu30c",[2493,2495],{"title":442,"path":443,"stem":444,"description":2494,"children":-1},"The three shapes a work item answers in, its stored columns, and the fields that need an explanation, from its status and stop to its budget cap and plan progress.",{"title":450,"path":451,"stem":452,"description":2496,"children":-1},"The board's routes for connecting a repo, reading chain templates and harnesses, applying saved changes, checking for updates and opening editors.",1791801260347]