[{"data":1,"prerenderedAt":2685},["ShallowReactive",2],{"navigation_docs":3,"-reference-http-api":504,"-reference-http-api-surround":2680},[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":428,"body":506,"description":2673,"extension":2674,"links":2675,"meta":2676,"navigation":2677,"path":429,"seo":2678,"stem":430,"__hash__":2679},"docs\u002F5.reference\u002F08.http-api\u002Findex.md",{"type":507,"value":508,"toc":2642},"minimark",[509,535,540,553,606,612,648,651,825,849,852,924,933,937,1004,1010,1049,1072,1076,1079,1126,1147,1155,1158,1164,1167,1182,1205,1223,1236,1240,1343,1347,1385,1389,1531,1535,1625,1629,1667,1670,1711,1715,1824,1827,1891,1895,1972,1976,2055,2059,2162,2166,2217,2221,2278,2282,2362,2366,2525,2529,2593,2597,2638],[510,511,512,513,517,518,521,522,527,528,534],"p",{},"The Kraft server serves its board, and the JSON API behind it, on one port\n(",[514,515,516],"code",{},"127.0.0.1:8765"," by default). The ",[514,519,520],{},"kraft"," command and the MCP server are\nclients of that API. The pages in this section document part of it: see ",[523,524,526],"a",{"href":525},"#routes-the-pages-document","Routes the pages document",". ",[523,529,531],{"href":530},"#the-schema",[514,532,533],{},"\u002Fopenapi.json"," lists every HTTP route.",[536,537,539],"h2",{"id":538},"stable-routes","Stable routes",[510,541,542,543,547,548,552],{},"Only two routes are meant for other programs, and only these keep their shape\nbetween minor releases. See\n",[523,544,546],{"href":545},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","Versioning and stability",".\nWho may call them is under ",[523,549,551],{"href":550},"#who-may-call","Who may call",".",[554,555,556,569],"table",{},[557,558,559],"thead",{},[560,561,562,566],"tr",{},[563,564,565],"th",{},"Route",[563,567,568],{},"Use",[570,571,572,591],"tbody",{},[560,573,574,580],{},[575,576,577],"td",{},[514,578,579],{},"POST \u002Fapi\u002Ftriggers",[575,581,582,583,587,588,552],{},"File a ",[523,584,586],{"href":585},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," from a webhook or script. See ",[523,589,424],{"href":590},"\u002Freference\u002Ftriggers#post-apitriggers",[560,592,593,598],{},[575,594,595],{},[514,596,597],{},"GET \u002Fapi\u002Fhealth",[575,599,600,601,552],{},"Check that the server is up. Needs no login. See ",[523,602,604],{"href":603},"#get-apihealth",[514,605,597],{},[607,608,610],"h3",{"id":609},"get-apihealth",[514,611,597],{},[613,614,619],"pre",{"className":615,"code":616,"language":617,"meta":618,"style":618},"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","",[514,620,621],{"__ignoreMap":618},[622,623,626,630,634,638,642,645],"span",{"class":624,"line":625},"line",1,[622,627,629],{"class":628},"szw1H","curl",[622,631,633],{"class":632},"ssYy9"," -s",[622,635,637],{"class":636},"semJd"," http:\u002F\u002F127.0.0.1:8765\u002Fapi\u002Fhealth",[622,639,641],{"class":640},"sklAV"," |",[622,643,644],{"class":628}," jq",[622,646,647],{"class":636}," .status\n",[510,649,650],{},"The answer carries:",[554,652,653,663],{},[557,654,655],{},[560,656,657,660],{},[563,658,659],{},"Field",[563,661,662],{},"Meaning",[570,664,665,681,707,725,747,757,767,792,815],{},[560,666,667,672],{},[575,668,669],{},[514,670,671],{},"status",[575,673,674,677,678,552],{},[514,675,676],{},"ok"," or ",[514,679,680],{},"degraded",[560,682,683,695],{},[575,684,685,688,689,688,692],{},[514,686,687],{},"invalid_templates",", ",[514,690,691],{},"invalid_policy",[514,693,694],{},"invalid_intake",[575,696,697,698,700,701,703,704,552],{},"The reasons it is degraded. ",[514,699,694],{}," is why ",[514,702,326],{}," does not load, else ",[514,705,706],{},"null",[560,708,709,714],{},[575,710,711],{},[514,712,713],{},"intake_off",[575,715,716,717,721,722,724],{},"Whether ",[523,718,720],{"href":719},"\u002Fconcepts\u002Fvocabulary#auto-intake","auto-intake"," and ",[514,723,326],{},"'s schedules are off for it.",[560,726,727,744],{},[575,728,729,688,732,688,735,688,738,688,741],{},[514,730,731],{},"run_dir",[514,733,734],{},"pid",[514,736,737],{},"uptime_s",[514,739,740],{},"bind",[514,742,743],{},"port",[575,745,746],{},"Which instance this is.",[560,748,749,754],{},[575,750,751],{},[514,752,753],{},"version",[575,755,756],{},"The version it runs.",[560,758,759,764],{},[575,760,761],{},[514,762,763],{},"installed",[575,765,766],{},"The version installed on disk, which differs until a restart finishes an update.",[560,768,769,774],{},[575,770,771],{},[514,772,773],{},"reattach_summary",[575,775,776,777,688,780,688,783,688,786,721,789,552],{},"What startup found of agent sessions that were running: ",[514,778,779],{},"scanned",[514,781,782],{},"adopted",[514,784,785],{},"resolved_from_file",[514,787,788],{},"unknown",[514,790,791],{},"resumed_work_items",[560,793,794,799],{},[575,795,796],{},[514,797,798],{},"index",[575,800,801,802,688,805,688,808,811,812,552],{},"The search index: ",[514,803,804],{},"last_scan_at",[514,806,807],{},"repos_scanned",[514,809,810],{},"documents",", and the state of ",[514,813,814],{},"embeddings",[560,816,817,822],{},[575,818,819],{},[514,820,821],{},"session_expiry_days",[575,823,824],{},"How long a login lasts, which the login screen shows.",[510,826,827,829,830,833,834,836,837,841,842,844,845,848],{},[514,828,713],{}," is ",[514,831,832],{},"true"," when the server started on an ",[514,835,326],{}," that does not load. A ",[523,838,840],{"href":839},"\u002Fconcepts\u002Fvocabulary#trigger","trigger"," left in ",[514,843,310],{}," still fires. It is ",[514,846,847],{},"false"," when a reload refused the file and the running schedules are kept.",[536,850,551],{"id":851},"who-may-call",[554,853,854,864],{},[557,855,856],{},[560,857,858,861],{},[563,859,860],{},"Caller",[563,862,863],{},"What it needs",[570,865,866,883,898,913],{},[560,867,868,871],{},[575,869,870],{},"A process on the same machine, while Kraft is bound to loopback",[575,872,873,874,688,877,677,880,552],{},"Nothing, as long as it addresses the server as ",[514,875,876],{},"127.0.0.1",[514,878,879],{},"localhost",[514,881,882],{},"[::1]",[560,884,885,888],{},[575,886,887],{},"Anyone, once Kraft is bound off loopback",[575,889,890,891,894,895,552],{},"A browser session from the login page, or the MCP bearer token in ",[514,892,893],{},"$KRAFT_HOME\u002Frun\u002Fmcp-token",", sent as ",[514,896,897],{},"Authorization: Bearer \u003Ctoken>",[560,899,900,903],{},[575,901,902],{},"A trigger sender, once Kraft is bound off loopback",[575,904,905,906,908,909,912],{},"For ",[514,907,579],{}," only, the trigger token in ",[514,910,911],{},"$KRAFT_HOME\u002Frun\u002Ftrigger-token",", sent the same way.",[560,914,915,918],{},[575,916,917],{},"A remote caller while no password is set",[575,919,920,921,552],{},"Nothing works. Kraft answers ",[514,922,923],{},"403",[510,925,926,927,929,930,932],{},"The MCP bearer token is a full-access credential. See ",[523,928,477],{"href":478}," for the whole model, and ",[523,931,140],{"href":141}," to set a password.",[607,934,936],{"id":935},"refusals","Refusals",[554,938,939,949],{},[557,940,941],{},[560,942,943,946],{},[563,944,945],{},"Status",[563,947,948],{},"When",[570,950,951,961,970,987],{},[560,952,953,958],{},[575,954,955],{},[514,956,957],{},"401",[575,959,960],{},"The request has no valid credentials.",[560,962,963,967],{},[575,964,965],{},[514,966,923],{},[575,968,969],{},"A remote caller, while no password is set.",[560,971,972,976],{},[575,973,974],{},[514,975,923],{},[575,977,978,979,982,983,986],{},"The ",[514,980,981],{},"Host"," is not an allowed name: ",[514,984,985],{},"unexpected Host for a server bound to …",". See the rules below.",[560,988,989,993],{},[575,990,991],{},[514,992,923],{},[575,994,995,996,999,1000,1003],{},"A cross-site write. The ",[514,997,998],{},"\u002Fapi\u002Fws\u002Fevents"," WebSocket refuses the handshake the same way when its ",[514,1001,1002],{},"Origin"," is another site's.",[510,1005,1006,1007,1009],{},"A ",[514,1008,981],{}," is not allowed when:",[1011,1012,1013,1023],"ul",{},[1014,1015,1016,1017,688,1019,677,1021,552],"li",{},"Kraft is bound to loopback and the request is not addressed to ",[514,1018,876],{},[514,1020,879],{},[514,1022,882],{},[1014,1024,1025,1026,688,1029,688,1031,1034,1035,1038,1039,1041,1042,1045,1046,1048],{},"Kraft is bound off loopback and the request comes from a browser (it sends ",[514,1027,1028],{},"Sec-Fetch-Site",[514,1030,1002],{},[514,1032,1033],{},"Referer"," or an HTML ",[514,1036,1037],{},"Accept",") whose ",[514,1040,981],{}," is neither a loopback name nor in ",[514,1043,1044],{},"allowed_hosts",". The CLI, MCP and ",[514,1047,629],{}," need no entry there.",[510,1050,1051,1052,1055,1056,1059,1060,1062,1063,1065,1066,1068,1069,1071],{},"A browser opening a page (a ",[514,1053,1054],{},"GET"," outside ",[514,1057,1058],{},"\u002Fapi"," with an HTML ",[514,1061,1037],{},") gets the ",[514,1064,923],{}," as a short HTML page instead. The page names the ",[514,1067,981],{}," it sent and how to allow it. The WebSocket applies the same ",[514,1070,981],{}," rules.",[536,1073,1075],{"id":1074},"the-schema","The schema",[510,1077,1078],{},"FastAPI generates a schema of every HTTP route:",[554,1080,1081,1091],{},[557,1082,1083],{},[560,1084,1085,1088],{},[563,1086,1087],{},"Path",[563,1089,1090],{},"What it serves",[570,1092,1093,1106,1116],{},[560,1094,1095,1099],{},[575,1096,1097],{},[514,1098,533],{},[575,1100,1101,1102,1105],{},"The OpenAPI schema, as JSON. Its ",[514,1103,1104],{},"info"," names Kraft and the installed version.",[560,1107,1108,1113],{},[575,1109,1110],{},[514,1111,1112],{},"\u002Fdocs",[575,1114,1115],{},"Swagger UI for that schema.",[560,1117,1118,1123],{},[575,1119,1120],{},[514,1121,1122],{},"\u002Fredoc",[575,1124,1125],{},"ReDoc for that schema.",[613,1127,1129],{"className":615,"code":1128,"language":617,"meta":618,"style":618},"curl -s http:\u002F\u002F127.0.0.1:8765\u002Fopenapi.json | jq '.paths | keys'\n",[514,1130,1131],{"__ignoreMap":618},[622,1132,1133,1135,1137,1140,1142,1144],{"class":624,"line":625},[622,1134,629],{"class":628},[622,1136,633],{"class":632},[622,1138,1139],{"class":636}," http:\u002F\u002F127.0.0.1:8765\u002Fopenapi.json",[622,1141,641],{"class":640},[622,1143,644],{"class":628},[622,1145,1146],{"class":636}," '.paths | keys'\n",[510,1148,1149,1150,677,1152,1154],{},"These three paths need no login. Open ",[514,1151,1112],{},[514,1153,1122],{}," in a browser to read\nthe API there.",[510,1156,1157],{},"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.",[510,1159,1160,1161,1163],{},"On a machine without internet access,\nload ",[514,1162,533],{}," into your own OpenAPI viewer.",[536,1165,526],{"id":1166},"routes-the-pages-document",[510,1168,1169,1170,1172,1173,1177,1178,1181],{},"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 ",[514,1171,998],{}," WebSocket. They do not document every route. ",[523,1174,1175],{"href":530},[514,1176,533],{}," lists every HTTP route, but not the WebSocket, which is only described under ",[523,1179,466],{"href":1180},"\u002Freference\u002Fevents#ws-apiwsevents",". The pages leave out these groups, which the board uses and a script rarely needs:",[1011,1183,1184,1187,1190,1193,1196,1199,1202],{},[1014,1185,1186],{},"review threads and their comments;",[1014,1188,1189],{},"login and logout, and the browser sessions;",[1014,1191,1192],{},"search, the index rescan, and reading one indexed document;",[1014,1194,1195],{},"worker session logs and permission asks;",[1014,1197,1198],{},"analytics;",[1014,1200,1201],{},"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;",[1014,1203,1204],{},"reading one harness provider's Settings view, and reading and saving one harness profile's.",[510,1206,1207,1208,1210,1211,1214,1215,1217,1218,1222],{},"A route listed here is written in full: its method and its path with the ",[514,1209,1058],{}," prefix, as in ",[514,1212,1213],{},"POST \u002Fapi\u002Fwork-items",". That is how the route appears in ",[514,1216,533],{}," and in a request. A route that is in none of the tables below, nor in the ",[523,1219,1221],{"href":1220},"#stable-routes","stable routes",", has no entry.",[510,1224,1225,1226,1228,1229,1231,1232,1235],{},"The pages can change in any release. A script that must keep working calls the ",[523,1227,1221],{"href":1220},", or the ",[514,1230,520],{}," command with ",[514,1233,1234],{},"--json",". Each table below links a route to its entry.",[607,1237,1239],{"id":1238},"work-items","Work items",[554,1241,1242,1251],{},[557,1243,1244],{},[560,1245,1246,1248],{},[563,1247,565],{},[563,1249,1250],{},"What it does",[570,1252,1253,1265,1278,1291,1304,1317,1330],{},[560,1254,1255,1262],{},[575,1256,1257],{},[523,1258,1260],{"href":1259},"\u002Freference\u002Fhttp-api\u002Fwork-items#post-apiwork-items",[514,1261,1213],{},[575,1263,1264],{},"Files a work item, paused unless the body starts it.",[560,1266,1267,1275],{},[575,1268,1269],{},[523,1270,1272],{"href":1271},"\u002Freference\u002Fhttp-api\u002Fwork-items#post-apiwork-itemsidduplicate",[514,1273,1274],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fduplicate",[575,1276,1277],{},"Files a fresh paused item from an existing one.",[560,1279,1280,1288],{},[575,1281,1282],{},[523,1283,1285],{"href":1284},"\u002Freference\u002Fhttp-api\u002Fwork-items#get-apiwork-items",[514,1286,1287],{},"GET \u002Fapi\u002Fwork-items",[575,1289,1290],{},"Lists the items on the board.",[560,1292,1293,1301],{},[575,1294,1295],{},[523,1296,1298],{"href":1297},"\u002Freference\u002Fhttp-api\u002Fwork-items#get-apiwork-itemsid",[514,1299,1300],{},"GET \u002Fapi\u002Fwork-items\u002F{id}",[575,1302,1303],{},"Answers one item in full.",[560,1305,1306,1314],{},[575,1307,1308],{},[523,1309,1311],{"href":1310},"\u002Freference\u002Fhttp-api\u002Fwork-items#patch-apiwork-itemsid",[514,1312,1313],{},"PATCH \u002Fapi\u002Fwork-items\u002F{id}",[575,1315,1316],{},"Changes an item's title, description, chain, overrides, budget, policy or attachments.",[560,1318,1319,1327],{},[575,1320,1321],{},[523,1322,1324],{"href":1323},"\u002Freference\u002Fhttp-api\u002Fwork-items#post-apiwork-itemsbulk",[514,1325,1326],{},"POST \u002Fapi\u002Fwork-items\u002Fbulk",[575,1328,1329],{},"Pauses, cancels, archives or restores several items.",[560,1331,1332,1340],{},[575,1333,1334],{},[523,1335,1337],{"href":1336},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#post-apiwork-itemsdry_run1",[514,1338,1339],{},"POST \u002Fapi\u002Fwork-items?dry_run=1",[575,1341,1342],{},"Runs every check of a create and files nothing.",[607,1344,1346],{"id":1345},"gates","Gates",[554,1348,1349,1357],{},[557,1350,1351],{},[560,1352,1353,1355],{},[563,1354,565],{},[563,1356,1250],{},[570,1358,1359,1372],{},[560,1360,1361,1369],{},[575,1362,1363],{},[523,1364,1366],{"href":1365},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidgatesgateapprove",[514,1367,1368],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Fapprove",[575,1370,1371],{},"Approves the pending gate and starts the chain again.",[560,1373,1374,1382],{},[575,1375,1376],{},[523,1377,1379],{"href":1378},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidgatesgatereject",[514,1380,1381],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Freject",[575,1383,1384],{},"Rejects the pending gate and sends the chain back to work.",[607,1386,1388],{"id":1387},"run-control","Run control",[554,1390,1391,1399],{},[557,1392,1393],{},[560,1394,1395,1397],{},[563,1396,565],{},[563,1398,1250],{},[570,1400,1401,1414,1427,1440,1453,1466,1479,1492,1505,1518],{},[560,1402,1403,1411],{},[575,1404,1405],{},[523,1406,1408],{"href":1407},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidpause",[514,1409,1410],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fpause",[575,1412,1413],{},"Stops a running item and ends its sessions.",[560,1415,1416,1424],{},[575,1417,1418],{},[523,1419,1421],{"href":1420},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidsteer",[514,1422,1423],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fsteer",[575,1425,1426],{},"Stores a note for the next agent launch of a paused item.",[560,1428,1429,1437],{},[575,1430,1431],{},[523,1432,1434],{"href":1433},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidresume",[514,1435,1436],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fresume",[575,1438,1439],{},"Starts a paused item, with a note if you give one.",[560,1441,1442,1450],{},[575,1443,1444],{},[523,1445,1447],{"href":1446},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidskip",[514,1448,1449],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fskip",[575,1451,1452],{},"Advances past the current node or gate without running it.",[560,1454,1455,1463],{},[575,1456,1457],{},[523,1458,1460],{"href":1459},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidescalate",[514,1461,1462],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fescalate",[575,1464,1465],{},"Sends a message to an agent that helps with a stopped item.",[560,1467,1468,1476],{},[575,1469,1470],{},[523,1471,1473],{"href":1472},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidescalatestop",[514,1474,1475],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fescalate\u002Fstop",[575,1477,1478],{},"Ends the running escalation turn.",[560,1480,1481,1489],{},[575,1482,1483],{},[523,1484,1486],{"href":1485},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidretry",[514,1487,1488],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fretry",[575,1490,1491],{},"Reruns the node an item stopped on.",[560,1493,1494,1502],{},[575,1495,1496],{},[523,1497,1499],{"href":1498},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidreopen-mr",[514,1500,1501],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Freopen-mr",[575,1503,1504],{},"Reopens a merge request closed on the forge, then retries.",[560,1506,1507,1515],{},[575,1508,1509],{},[523,1510,1512],{"href":1511},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidprogress",[514,1513,1514],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fprogress",[575,1516,1517],{},"Records that a worker started a plan task.",[560,1519,1520,1528],{},[575,1521,1522],{},[523,1523,1525],{"href":1524},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidmr-labels",[514,1526,1527],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fmr-labels",[575,1529,1530],{},"Labels the item's merge request.",[607,1532,1534],{"id":1533},"ending","Ending",[554,1536,1537,1545],{},[557,1538,1539],{},[560,1540,1541,1543],{},[563,1542,565],{},[563,1544,1250],{},[570,1546,1547,1560,1573,1586,1599,1612],{},[560,1548,1549,1557],{},[575,1550,1551],{},[523,1552,1554],{"href":1553},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#get-apiwork-itemsidcancel-preview",[514,1555,1556],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fcancel-preview",[575,1558,1559],{},"Shows what a cancel would do, without doing it.",[560,1561,1562,1570],{},[575,1563,1564],{},[523,1565,1567],{"href":1566},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidcancel",[514,1568,1569],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fcancel",[575,1571,1572],{},"Ends an item and keeps its worktree and branch.",[560,1574,1575,1583],{},[575,1576,1577],{},[523,1578,1580],{"href":1579},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidcomplete",[514,1581,1582],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fcomplete",[575,1584,1585],{},"Ends an item as completed, by hand.",[560,1587,1588,1596],{},[575,1589,1590],{},[523,1591,1593],{"href":1592},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidarchive",[514,1594,1595],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Farchive",[575,1597,1598],{},"Archives a completed or cancelled item and reclaims its worktree.",[560,1600,1601,1609],{},[575,1602,1603],{},[523,1604,1606],{"href":1605},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidrestore",[514,1607,1608],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Frestore",[575,1610,1611],{},"Puts an archived item back under Done.",[560,1613,1614,1622],{},[575,1615,1616],{},[523,1617,1619],{"href":1618},"\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending#post-apiwork-itemsidabandon",[514,1620,1621],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fabandon",[575,1623,1624],{},"Ends an item and deletes its worktree and branch.",[607,1626,1628],{"id":1627},"budget","Budget",[554,1630,1631,1639],{},[557,1632,1633],{},[560,1634,1635,1637],{},[563,1636,565],{},[563,1638,1250],{},[570,1640,1641,1654],{},[560,1642,1643,1651],{},[575,1644,1645],{},[523,1646,1648],{"href":1647},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apibudgettoday",[514,1649,1650],{},"GET \u002Fapi\u002Fbudget\u002Ftoday",[575,1652,1653],{},"Answers the instance's spend since local midnight against the daily cap.",[560,1655,1656,1664],{},[575,1657,1658],{},[523,1659,1661],{"href":1660},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#post-apiwork-itemsidbudgetraise",[514,1662,1663],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fbudget\u002Fraise",[575,1665,1666],{},"Raises the dollar cap that stopped an item and retries it.",[607,1668,466],{"id":1669},"events",[554,1671,1672,1680],{},[557,1673,1674],{},[560,1675,1676,1678],{},[563,1677,565],{},[563,1679,1250],{},[570,1681,1682,1695],{},[560,1683,1684,1692],{},[575,1685,1686],{},[523,1687,1689],{"href":1688},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidevents",[514,1690,1691],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fevents",[575,1693,1694],{},"Reads an item's events, forward or backward.",[560,1696,1697,1704],{},[575,1698,1699],{},[523,1700,1701],{"href":1180},[514,1702,1703],{},"WS \u002Fapi\u002Fws\u002Fevents",[575,1705,1706,1707,1710],{},"Streams every item's events as they are stored, replaying from ",[514,1708,1709],{},"after_seq"," first.",[607,1712,1714],{"id":1713},"diff-and-review","Diff and review",[554,1716,1717,1725],{},[557,1718,1719],{},[560,1720,1721,1723],{},[563,1722,565],{},[563,1724,1250],{},[570,1726,1727,1740,1753,1766,1779,1792,1808],{},[560,1728,1729,1737],{},[575,1730,1731],{},[523,1732,1734],{"href":1733},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsiddiff",[514,1735,1736],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdiff",[575,1738,1739],{},"Answers the changes the agents made.",[560,1741,1742,1750],{},[575,1743,1744],{},[523,1745,1747],{"href":1746},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidcompare",[514,1748,1749],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fcompare",[575,1751,1752],{},"Diffs any two review targets.",[560,1754,1755,1763],{},[575,1756,1757],{},[523,1758,1760],{"href":1759},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#put-apiwork-itemsidviewed",[514,1761,1762],{},"PUT \u002Fapi\u002Fwork-items\u002F{id}\u002Fviewed",[575,1764,1765],{},"Marks a file viewed.",[560,1767,1768,1776],{},[575,1769,1770],{},[523,1771,1773],{"href":1772},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#delete-apiwork-itemsidviewed",[514,1774,1775],{},"DELETE \u002Fapi\u002Fwork-items\u002F{id}\u002Fviewed",[575,1777,1778],{},"Clears the mark.",[560,1780,1781,1789],{},[575,1782,1783],{},[523,1784,1786],{"href":1785},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidfix-target",[514,1787,1788],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Ffix-target",[575,1790,1791],{},"Answers where a request-changes review would restart.",[560,1793,1794,1802],{},[575,1795,1796],{},[523,1797,1799],{"href":1798},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#post-apiwork-itemsidreview",[514,1800,1801],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Freview",[575,1803,1804,1805,552],{},"Submits a review. Its entry documents only ",[514,1806,1807],{},"digest",[560,1809,1810,1817],{},[575,1811,1812],{},[523,1813,1814],{"href":1798},[514,1815,1816],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fgates\u002F{gate}\u002Freview",[575,1818,1819,1820,1823],{},"Submits a review for a named gate, as ",[514,1821,1822],{},"\u002Freview"," does for the pending one.",[607,1825,1826],{"id":810},"Documents",[554,1828,1829,1837],{},[557,1830,1831],{},[560,1832,1833,1835],{},[563,1834,565],{},[563,1836,1250],{},[570,1838,1839,1852,1865,1878],{},[560,1840,1841,1849],{},[575,1842,1843],{},[523,1844,1846],{"href":1845},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidattachmentskind",[514,1847,1848],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fattachments\u002F{kind}",[575,1850,1851],{},"Reads the spec or plan attached at intake.",[560,1853,1854,1862],{},[575,1855,1856],{},[523,1857,1859],{"href":1858},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsiddocuments",[514,1860,1861],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdocuments",[575,1863,1864],{},"Lists the documents linked to an item.",[560,1866,1867,1875],{},[575,1868,1869],{},[523,1870,1872],{"href":1871},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidartifact",[514,1873,1874],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifact",[575,1876,1877],{},"Reads the pending gate's document.",[560,1879,1880,1888],{},[575,1881,1882],{},[523,1883,1885],{"href":1884},"\u002Freference\u002Fhttp-api\u002Fbudget-and-events#get-apiwork-itemsidartifactskind",[514,1886,1887],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifacts\u002F{kind}",[575,1889,1890],{},"Reads the document a task wrote.",[607,1892,1894],{"id":1893},"opening-in-an-editor","Opening in an editor",[554,1896,1897,1905],{},[557,1898,1899],{},[560,1900,1901,1903],{},[563,1902,565],{},[563,1904,1250],{},[570,1906,1907,1920,1933,1946,1959],{},[560,1908,1909,1917],{},[575,1910,1911],{},[523,1912,1914],{"href":1913},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apieditors",[514,1915,1916],{},"GET \u002Fapi\u002Feditors",[575,1918,1919],{},"Lists the editors this machine can open.",[560,1921,1922,1930],{},[575,1923,1924],{},[523,1925,1927],{"href":1926},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apidocumentsidopen",[514,1928,1929],{},"POST \u002Fapi\u002Fdocuments\u002F{id}\u002Fopen",[575,1931,1932],{},"Opens a document in an editor.",[560,1934,1935,1943],{},[575,1936,1937],{},[523,1938,1940],{"href":1939},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiwork-itemsidartifactopen",[514,1941,1942],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifact\u002Fopen",[575,1944,1945],{},"Opens the pending gate's document.",[560,1947,1948,1956],{},[575,1949,1950],{},[523,1951,1953],{"href":1952},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiwork-itemsidartifactskindopen",[514,1954,1955],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fartifacts\u002F{kind}\u002Fopen",[575,1957,1958],{},"Opens a task's document.",[560,1960,1961,1969],{},[575,1962,1963],{},[523,1964,1966],{"href":1965},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiwork-itemsidopen-worktree",[514,1967,1968],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fopen-worktree",[575,1970,1971],{},"Opens the item's worktree.",[607,1973,1975],{"id":1974},"repos","Repos",[554,1977,1978,1986],{},[557,1979,1980],{},[560,1981,1982,1984],{},[563,1983,565],{},[563,1985,1250],{},[570,1987,1988,2001,2014,2027,2042],{},[560,1989,1990,1998],{},[575,1991,1992],{},[523,1993,1995],{"href":1994},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apirepos",[514,1996,1997],{},"GET \u002Fapi\u002Frepos",[575,1999,2000],{},"Lists the connected repos and workspaces.",[560,2002,2003,2011],{},[575,2004,2005],{},[523,2006,2008],{"href":2007},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apireposprobe",[514,2009,2010],{},"POST \u002Fapi\u002Frepos\u002Fprobe",[575,2012,2013],{},"Reads a repository and proposes how to connect it.",[560,2015,2016,2024],{},[575,2017,2018],{},[523,2019,2021],{"href":2020},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apirepos",[514,2022,2023],{},"POST \u002Fapi\u002Frepos",[575,2025,2026],{},"Connects a repository.",[560,2028,2029,2037],{},[575,2030,2031],{},[523,2032,2034],{"href":2033},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#patch-apirepospath",[514,2035,2036],{},"PATCH \u002Fapi\u002Frepos?path=",[575,2038,2039,2040,552],{},"Changes a connected repo's entry in ",[514,2041,292],{},[560,2043,2044,2052],{},[575,2045,2046],{},[523,2047,2049],{"href":2048},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#delete-apirepospath",[514,2050,2051],{},"DELETE \u002Fapi\u002Frepos?path=",[575,2053,2054],{},"Disconnects a repo.",[607,2056,2058],{"id":2057},"chains-and-library","Chains and library",[554,2060,2061,2069],{},[557,2062,2063],{},[560,2064,2065,2067],{},[563,2066,565],{},[563,2068,1250],{},[570,2070,2071,2084,2101,2118,2131,2144],{},[560,2072,2073,2081],{},[575,2074,2075],{},[523,2076,2078],{"href":2077},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateschains",[514,2079,2080],{},"GET \u002Fapi\u002Ftemplates\u002Fchains",[575,2082,2083],{},"Lists every chain.",[560,2085,2086,2094],{},[575,2087,2088],{},[523,2089,2091],{"href":2090},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateschainsidresolved",[514,2092,2093],{},"GET \u002Fapi\u002Ftemplates\u002Fchains\u002F{id}\u002Fresolved",[575,2095,2096,2097,2100],{},"Answers one chain with its ",[514,2098,2099],{},"extends"," expanded.",[560,2102,2103,2111],{},[575,2104,2105],{},[523,2106,2108],{"href":2107},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateslibrary",[514,2109,2110],{},"GET \u002Fapi\u002Ftemplates\u002Flibrary",[575,2112,2113,2114,2117],{},"Answers ",[514,2115,2116],{},"library.yaml"," and every component in it.",[560,2119,2120,2128],{},[575,2121,2122],{},[523,2123,2125],{"href":2124},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplateslibraryref",[514,2126,2127],{},"GET \u002Fapi\u002Ftemplates\u002Flibrary\u002F{ref}",[575,2129,2130],{},"Answers one library component.",[560,2132,2133,2141],{},[575,2134,2135],{},[523,2136,2138],{"href":2137},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apitemplatessteeringpreview",[514,2139,2140],{},"GET \u002Fapi\u002Ftemplates\u002Fsteering\u002Fpreview",[575,2142,2143],{},"Shows what an agent task reads at launch.",[560,2145,2146,2154],{},[575,2147,2148],{},[523,2149,2151],{"href":2150},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apitemplatesreload",[514,2152,2153],{},"POST \u002Fapi\u002Ftemplates\u002Freload",[575,2155,2156,2157,721,2159,2161],{},"Rereads the library, ",[514,2158,310],{},[514,2160,326],{},", and answers what it refused.",[607,2163,2165],{"id":2164},"harnesses-and-providers","Harnesses and providers",[554,2167,2168,2176],{},[557,2169,2170],{},[560,2171,2172,2174],{},[563,2173,565],{},[563,2175,1250],{},[570,2177,2178,2191,2204],{},[560,2179,2180,2188],{},[575,2181,2182],{},[523,2183,2185],{"href":2184},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiharnessesprofiles",[514,2186,2187],{},"GET \u002Fapi\u002Fharnesses\u002Fprofiles",[575,2189,2190],{},"Answers the harness profiles and the agent profiles.",[560,2192,2193,2201],{},[575,2194,2195],{},[523,2196,2198],{"href":2197},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiharnesses",[514,2199,2200],{},"GET \u002Fapi\u002Fharnesses",[575,2202,2203],{},"Lists each provider and whether its CLI is installed.",[560,2205,2206,2214],{},[575,2207,2208],{},[523,2209,2211],{"href":2210},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiharnessesproviders",[514,2212,2213],{},"GET \u002Fapi\u002Fharnesses\u002Fproviders",[575,2215,2216],{},"Answers each provider's capabilities.",[607,2218,2220],{"id":2219},"settings","Settings",[554,2222,2223,2231],{},[557,2224,2225],{},[560,2226,2227,2229],{},[563,2228,565],{},[563,2230,1250],{},[570,2232,2233,2249,2265],{},[560,2234,2235,2243],{},[575,2236,2237],{},[523,2238,2240],{"href":2239},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apipolicy",[514,2241,2242],{},"GET \u002Fapi\u002Fpolicy",[575,2244,2245,2246,2248],{},"Reads ",[514,2247,310],{}," from disk.",[560,2250,2251,2259],{},[575,2252,2253],{},[523,2254,2256],{"href":2255},"\u002Freference\u002Fhttp-api\u002Fdrafts#put-apipolicy",[514,2257,2258],{},"PUT \u002Fapi\u002Fpolicy",[575,2260,2261,2262,2264],{},"Saves ",[514,2263,310],{}," without a draft, and applies it.",[560,2266,2267,2275],{},[575,2268,2269],{},[523,2270,2272],{"href":2271},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apiintakecheckslimit",[514,2273,2274],{},"GET \u002Fapi\u002Fintake\u002Fchecks?limit=",[575,2276,2277],{},"Lists what recent intake polls found.",[607,2279,2281],{"id":2280},"server","Server",[554,2283,2284,2292],{},[557,2285,2286],{},[560,2287,2288,2290],{},[563,2289,565],{},[563,2291,1250],{},[570,2293,2294,2307,2323,2336,2349],{},[560,2295,2296,2304],{},[575,2297,2298],{},[523,2299,2301],{"href":2300},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiapply",[514,2302,2303],{},"GET \u002Fapi\u002Fapply",[575,2305,2306],{},"Lists what is saved and not running yet.",[560,2308,2309,2317],{},[575,2310,2311],{},[523,2312,2314],{"href":2313},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiapplyreload",[514,2315,2316],{},"POST \u002Fapi\u002Fapply\u002Freload",[575,2318,2156,2319,721,2321,552],{},[514,2320,310],{},[514,2322,326],{},[560,2324,2325,2333],{},[575,2326,2327],{},[523,2328,2330],{"href":2329},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiapplyrestart",[514,2331,2332],{},"POST \u002Fapi\u002Fapply\u002Frestart",[575,2334,2335],{},"Restarts a server that a service manager started.",[560,2337,2338,2346],{},[575,2339,2340],{},[523,2341,2343],{"href":2342},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#get-apiupdate",[514,2344,2345],{},"GET \u002Fapi\u002Fupdate",[575,2347,2348],{},"Answers the cached update check.",[560,2350,2351,2359],{},[575,2352,2353],{},[523,2354,2356],{"href":2355},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#post-apiupdatecheck",[514,2357,2358],{},"POST \u002Fapi\u002Fupdate\u002Fcheck",[575,2360,2361],{},"Asks the release feed now.",[607,2363,2365],{"id":2364},"config-drafts","Config drafts",[554,2367,2368,2376],{},[557,2369,2370],{},[560,2371,2372,2374],{},[563,2373,565],{},[563,2375,1250],{},[570,2377,2378,2391,2404,2417,2434,2447,2460,2473,2486,2499,2512],{},[560,2379,2380,2388],{},[575,2381,2382],{},[523,2383,2385],{"href":2384},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidrafts",[514,2386,2387],{},"GET \u002Fapi\u002Fdrafts",[575,2389,2390],{},"Lists every open draft.",[560,2392,2393,2401],{},[575,2394,2395],{},[523,2396,2398],{"href":2397},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidraftsareakey",[514,2399,2400],{},"GET \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}",[575,2402,2403],{},"Reads a draft, or the published files when there is none.",[560,2405,2406,2414],{},[575,2407,2408],{},[523,2409,2411],{"href":2410},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidraftsareakeyfragmentpath",[514,2412,2413],{},"GET \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Ffragment?path=",[575,2415,2416],{},"Reads one component of a draft as YAML.",[560,2418,2419,2427],{},[575,2420,2421],{},[523,2422,2424],{"href":2423},"\u002Freference\u002Fhttp-api\u002Fdrafts#get-apidraftspolicykeypreviewchain",[514,2425,2426],{},"GET \u002Fapi\u002Fdrafts\u002Fpolicy\u002F{key}\u002Fpreview?chain=",[575,2428,2429,2430,2433],{},"Shows a published chain's caps under the ",[514,2431,2432],{},"policy"," draft.",[560,2435,2436,2444],{},[575,2437,2438],{},[523,2439,2441],{"href":2440},"\u002Freference\u002Fhttp-api\u002Fdrafts#put-apidraftsareakeyfilesfile",[514,2442,2443],{},"PUT \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Ffiles\u002F{file}",[575,2445,2446],{},"Stores one file's text as typed.",[560,2448,2449,2457],{},[575,2450,2451],{},[523,2452,2454],{"href":2453},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyops",[514,2455,2456],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fops",[575,2458,2459],{},"Applies a list of ops, all or nothing.",[560,2461,2462,2470],{},[575,2463,2464],{},[523,2465,2467],{"href":2466},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyopspreview1",[514,2468,2469],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fops?preview=1",[575,2471,2472],{},"Answers what a list of ops would do, and saves nothing.",[560,2474,2475,2483],{},[575,2476,2477],{},[523,2478,2480],{"href":2479},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyundo",[514,2481,2482],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fundo",[575,2484,2485],{},"Undoes the last request.",[560,2487,2488,2496],{},[575,2489,2490],{},[523,2491,2493],{"href":2492},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeypublish",[514,2494,2495],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Fpublish",[575,2497,2498],{},"Writes the draft's files and applies them.",[560,2500,2501,2509],{},[575,2502,2503],{},[523,2504,2506],{"href":2505},"\u002Freference\u002Fhttp-api\u002Fdrafts#post-apidraftsareakeyrebase",[514,2507,2508],{},"POST \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}\u002Frebase",[575,2510,2511],{},"Keeps the draft's text over files that changed on disk.",[560,2513,2514,2522],{},[575,2515,2516],{},[523,2517,2519],{"href":2518},"\u002Freference\u002Fhttp-api\u002Fdrafts#delete-apidraftsareakey",[514,2520,2521],{},"DELETE \u002Fapi\u002Fdrafts\u002F{area}\u002F{key}",[575,2523,2524],{},"Discards a draft for good.",[607,2526,2528],{"id":2527},"a-work-items-draft","A work item's draft",[554,2530,2531,2539],{},[557,2532,2533],{},[560,2534,2535,2537],{},[563,2536,565],{},[563,2538,1250],{},[570,2540,2541,2554,2567,2580],{},[560,2542,2543,2551],{},[575,2544,2545],{},[523,2546,2548],{"href":2547},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#get-apiwork-itemsiddraft",[514,2549,2550],{},"GET \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft",[575,2552,2553],{},"Reads an item's draft.",[560,2555,2556,2564],{},[575,2557,2558],{},[523,2559,2561],{"href":2560},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#put-apiwork-itemsiddraft",[514,2562,2563],{},"PUT \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft",[575,2565,2566],{},"Replaces an item's op list.",[560,2568,2569,2577],{},[575,2570,2571],{},[523,2572,2574],{"href":2573},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#delete-apiwork-itemsiddraft",[514,2575,2576],{},"DELETE \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft",[575,2578,2579],{},"Discards an item's draft.",[560,2581,2582,2590],{},[575,2583,2584],{},[523,2585,2587],{"href":2586},"\u002Freference\u002Fhttp-api\u002Fdraft-ops#post-apiwork-itemsiddraftapply",[514,2588,2589],{},"POST \u002Fapi\u002Fwork-items\u002F{id}\u002Fdraft\u002Fapply",[575,2591,2592],{},"Applies an item's draft.",[536,2594,2596],{"id":2595},"in-this-section","In this section",[1011,2598,2599,2604,2609,2614,2619,2624,2633],{},[1014,2600,2601,2603],{},[523,2602,434],{"href":435},": filing and duplicating an item, reading the board and one item, changing an item, and acting on several at once.",[1014,2605,2606,2608],{},[523,2607,438],{"href":439},": deciding a gate, pausing, resuming, skipping and escalating, ending and archiving an item, retrying it, and the routes a worker calls.",[1014,2610,2611,2613],{},[523,2612,442],{"href":443},": the three shapes a work item answers in, its stored columns, and the fields that need an explanation.",[1014,2615,2616,2618],{},[523,2617,446],{"href":447},": 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.",[1014,2620,2621,2623],{},[523,2622,450],{"href":451},": connecting, changing and disconnecting a repo, chains and library components, harnesses, changes saved but not applied, the update check, and opening an editor.",[1014,2625,2626,2628,2629,2632],{},[523,2627,454],{"href":455},": the routes the Templates and Settings editors use to keep, change, publish and discard a draft and the ",[514,2630,2631],{},"result"," each answers, and the policy and intake-check routes.",[1014,2634,2635,2637],{},[523,2636,458],{"href":459},": every op a draft takes, by area, and a work item's own draft.",[2639,2640,2641],"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":618,"searchDepth":2643,"depth":2643,"links":2644},2,[2645,2650,2653,2654,2672],{"id":538,"depth":2643,"text":539,"children":2646},[2647],{"id":609,"depth":2648,"text":2649},3,"GET \u002Fapi\u002F​health",{"id":851,"depth":2643,"text":551,"children":2651},[2652],{"id":935,"depth":2648,"text":936},{"id":1074,"depth":2643,"text":1075},{"id":1166,"depth":2643,"text":526,"children":2655},[2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671],{"id":1238,"depth":2648,"text":1239},{"id":1345,"depth":2648,"text":1346},{"id":1387,"depth":2648,"text":1388},{"id":1533,"depth":2648,"text":1534},{"id":1627,"depth":2648,"text":1628},{"id":1669,"depth":2648,"text":466},{"id":1713,"depth":2648,"text":1714},{"id":810,"depth":2648,"text":1826},{"id":1893,"depth":2648,"text":1894},{"id":1974,"depth":2648,"text":1975},{"id":2057,"depth":2648,"text":2058},{"id":2164,"depth":2648,"text":2165},{"id":2219,"depth":2648,"text":2220},{"id":2280,"depth":2648,"text":2281},{"id":2364,"depth":2648,"text":2365},{"id":2527,"depth":2648,"text":2528},{"id":2595,"depth":2643,"text":2596},"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":428,"description":2673},"G88zDGQhiYZn9kJmYCghJe9vL94yGVe_7i5p0jYxPus",[2681,2683],{"title":424,"path":425,"stem":426,"description":2682,"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":434,"path":435,"stem":436,"description":2684,"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.",1791801259460]