[{"data":1,"prerenderedAt":1123},["ShallowReactive",2],{"navigation_docs":3,"-reference-vscode-extension":551,"-reference-vscode-extension-surround":1118},[4,32,55,206,237,516],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24,28],{"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},"The real chain","\u002Fget-started\u002Fthe-real-chain","1.get-started\u002F3.the-real-chain",{"title":29,"path":30,"stem":31},"FAQ","\u002Fget-started\u002Ffaq","1.get-started\u002F4.faq",{"title":33,"path":34,"stem":35,"children":36},"Concepts","\u002Fconcepts","2.concepts",[37,39,43,47,51],{"title":10,"path":34,"stem":38},"2.concepts\u002Findex",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F1.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F2.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F3.permission-gate",{"title":52,"path":53,"stem":54},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F4.vocabulary",{"title":56,"path":57,"stem":58,"children":59},"Guides","\u002Fguides","3.guides",[60,62,100,126,148,202],{"title":10,"path":57,"stem":61},"3.guides\u002Findex",{"title":63,"path":64,"stem":65,"children":66},"Day to day","\u002Fguides\u002Fday-to-day","3.guides\u002F1.day-to-day\u002Findex",[67,68,72,76,80,84,88,92,96],{"title":10,"path":64,"stem":65},{"title":69,"path":70,"stem":71},"The setup wizard on first start","\u002Fguides\u002Fday-to-day\u002Ffirst-run","3.guides\u002F1.day-to-day\u002F2.first-run",{"title":73,"path":74,"stem":75},"File a work item","\u002Fguides\u002Fday-to-day\u002Ffile-a-work-item","3.guides\u002F1.day-to-day\u002F3.file-a-work-item",{"title":77,"path":78,"stem":79},"Use Kraft from your agent","\u002Fguides\u002Fday-to-day\u002Fagent-integration","3.guides\u002F1.day-to-day\u002F4.agent-integration",{"title":81,"path":82,"stem":83},"Reviewing a change","\u002Fguides\u002Fday-to-day\u002Freview-a-change","3.guides\u002F1.day-to-day\u002F5.review-a-change",{"title":85,"path":86,"stem":87},"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":89,"path":90,"stem":91},"Kraft for VS Code","\u002Fguides\u002Fday-to-day\u002Fvscode","3.guides\u002F1.day-to-day\u002F7.vscode",{"title":93,"path":94,"stem":95},"Kraft on a phone","\u002Fguides\u002Fday-to-day\u002Fkraft-on-a-phone","3.guides\u002F1.day-to-day\u002F8.kraft-on-a-phone",{"title":97,"path":98,"stem":99},"Get notified when an item needs you","\u002Fguides\u002Fday-to-day\u002Fnotifications","3.guides\u002F1.day-to-day\u002F9.notifications",{"title":101,"path":102,"stem":103,"children":104},"Customize and automate","\u002Fguides\u002Fcustomize","3.guides\u002F2.customize\u002Findex",[105,106,110,114,118,122],{"title":10,"path":102,"stem":103},{"title":107,"path":108,"stem":109},"Write your own chain","\u002Fguides\u002Fcustomize\u002Fwrite-your-own-chain","3.guides\u002F2.customize\u002F1.write-your-own-chain",{"title":111,"path":112,"stem":113},"Add a security review or a gate reviewer","\u002Fguides\u002Fcustomize\u002Fadd-review-agents","3.guides\u002F2.customize\u002F2.add-review-agents",{"title":115,"path":116,"stem":117},"Schedule or webhook work","\u002Fguides\u002Fcustomize\u002Fschedule-and-webhook-work","3.guides\u002F2.customize\u002F3.schedule-and-webhook-work",{"title":119,"path":120,"stem":121},"Share chains with add-ons","\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons","3.guides\u002F2.customize\u002F4.share-chains-with-addons",{"title":123,"path":124,"stem":125},"Publish an add-on","\u002Fguides\u002Fcustomize\u002Fpublish-an-add-on","3.guides\u002F2.customize\u002F5.publish-an-add-on",{"title":127,"path":128,"stem":129,"children":130},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses\u002Findex",[131,132,136,140,144],{"title":10,"path":128,"stem":129},{"title":133,"path":134,"stem":135},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":137,"path":138,"stem":139},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":141,"path":142,"stem":143},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":145,"path":146,"stem":147},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":149,"path":150,"stem":151,"children":152},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run\u002Findex",[153,154,158,162,166,170,174,178,182,186,190,194,198],{"title":10,"path":150,"stem":151},{"title":155,"path":156,"stem":157},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":159,"path":160,"stem":161},"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":163,"path":164,"stem":165},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":167,"path":168,"stem":169},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":171,"path":172,"stem":173},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":175,"path":176,"stem":177},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":179,"path":180,"stem":181},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":183,"path":184,"stem":185},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":187,"path":188,"stem":189},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":191,"path":192,"stem":193},"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":195,"path":196,"stem":197},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":199,"path":200,"stem":201},"Run items in your own checkout","\u002Fguides\u002Frun\u002Frun-items-in-place","3.guides\u002F4.run\u002F12.run-items-in-place",{"title":203,"path":204,"stem":205},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":207,"path":208,"stem":209,"children":210},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[211,213,217,221,225,229,233],{"title":10,"path":208,"stem":212},"4.troubleshooting\u002Findex",{"title":214,"path":215,"stem":216},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":218,"path":219,"stem":220},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":222,"path":223,"stem":224},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":226,"path":227,"stem":228},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":230,"path":231,"stem":232},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":234,"path":235,"stem":236},"Add-on problems","\u002Ftroubleshooting\u002Faddon-problems","4.troubleshooting\u002F6.addon-problems",{"title":238,"path":239,"stem":240,"children":241},"Reference","\u002Freference","5.reference",[242,244,286,308,312,316,414,432,458,462,466,500,504,508,512],{"title":10,"path":239,"stem":243},"5.reference\u002Findex",{"title":245,"path":246,"stem":247,"children":248},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[249,250,254,258,262,266,270,274,278,282],{"title":10,"path":246,"stem":247},{"title":251,"path":252,"stem":253},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":255,"path":256,"stem":257},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":259,"path":260,"stem":261},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":263,"path":264,"stem":265},"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":267,"path":268,"stem":269},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":271,"path":272,"stem":273},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":275,"path":276,"stem":277},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":279,"path":280,"stem":281},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":283,"path":284,"stem":285},"Cap stops and raises","\u002Freference\u002Fweb-ui\u002Fcap-stops-and-raises","5.reference\u002F00.web-ui\u002F8.cap-stops-and-raises",{"title":287,"path":288,"stem":289,"children":290},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[291,292,296,300,304],{"title":10,"path":288,"stem":289},{"title":293,"path":294,"stem":295},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":297,"path":298,"stem":299},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":301,"path":302,"stem":303},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":305,"path":306,"stem":307},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":309,"path":310,"stem":311},"Console","\u002Freference\u002Fconsole","5.reference\u002F01.console",{"title":313,"path":314,"stem":315},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":317,"path":318,"stem":319,"children":320},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[321,322,340,344,348,352,356,360,364,368,402,406,410],{"title":10,"path":318,"stem":319},{"title":323,"path":324,"stem":325,"children":326},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[327,328,332,336],{"title":10,"path":324,"stem":325},{"title":329,"path":330,"stem":331},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":333,"path":334,"stem":335},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":337,"path":338,"stem":339},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":341,"path":342,"stem":343},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":345,"path":346,"stem":347},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":349,"path":350,"stem":351},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":353,"path":354,"stem":355},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":357,"path":358,"stem":359},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":361,"path":362,"stem":363},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":365,"path":366,"stem":367},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":369,"path":370,"stem":371,"children":372},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[373,374,378,382,386,390,394,398],{"title":10,"path":370,"stem":371},{"title":375,"path":376,"stem":377},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":379,"path":380,"stem":381},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":383,"path":384,"stem":385},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":387,"path":388,"stem":389},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":391,"path":392,"stem":393},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":395,"path":396,"stem":397},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":399,"path":400,"stem":401},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":403,"path":404,"stem":405},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":407,"path":408,"stem":409},"Add-ons and collections","\u002Freference\u002Fconfiguration\u002Faddons","5.reference\u002F03.configuration\u002F12.addons",{"title":411,"path":412,"stem":413},"Repo libraries","\u002Freference\u002Fconfiguration\u002Frepo-libraries","5.reference\u002F03.configuration\u002F13.repo-libraries",{"title":415,"path":416,"stem":417,"children":418},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[419,420,424,428],{"title":10,"path":416,"stem":417},{"title":421,"path":422,"stem":423},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":425,"path":426,"stem":427},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":429,"path":430,"stem":431},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":433,"path":434,"stem":435,"children":436},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[437,438,442,446,450,454],{"title":10,"path":434,"stem":435},{"title":439,"path":440,"stem":441},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":443,"path":444,"stem":445},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":447,"path":448,"stem":449},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":451,"path":452,"stem":453},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":455,"path":456,"stem":457},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":459,"path":460,"stem":461},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":463,"path":464,"stem":465},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":467,"path":468,"stem":469,"children":470},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[471,472,476,480,484,488,492,496],{"title":10,"path":468,"stem":469},{"title":473,"path":474,"stem":475},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":477,"path":478,"stem":479},"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":481,"path":482,"stem":483},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":485,"path":486,"stem":487},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":489,"path":490,"stem":491},"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":493,"path":494,"stem":495},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":497,"path":498,"stem":499},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":501,"path":502,"stem":503},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":505,"path":506,"stem":507},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":509,"path":510,"stem":511},"VS Code extension","\u002Freference\u002Fvscode-extension","5.reference\u002F11.vscode-extension",{"title":513,"path":514,"stem":515},"Changes from 1.4 to 2.0","\u002Freference\u002Fchanges-from-1-4","5.reference\u002F12.changes-from-1-4",{"title":517,"path":518,"stem":519,"children":520},"Project","\u002Fproject","6.project",[521,523,527,531,535,539,543,547],{"title":10,"path":518,"stem":522},"6.project\u002Findex",{"title":524,"path":525,"stem":526},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":528,"path":529,"stem":530},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":532,"path":533,"stem":534},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":536,"path":537,"stem":538},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":540,"path":541,"stem":542},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":544,"path":545,"stem":546},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":548,"path":549,"stem":550},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":552,"title":553,"body":554,"description":1111,"extension":1112,"links":1113,"meta":1114,"navigation":1115,"path":510,"seo":1116,"stem":511,"__hash__":1117},"docs\u002F5.reference\u002F11.vscode-extension.md","Kraft for VS Code reference",{"type":555,"value":556,"toc":1096},"minimark",[557,565,570,586,593,599,625,631,703,709,733,737,743,746,762,765,776,785,795,798,801,814,829,842,849,853,857,860,871,878,881,884,977,981,985,1001,1011,1015,1020,1059,1064,1072,1078,1082,1085,1089],[558,559,560,561,564],"p",{},"For installing it and clearing a gate, see ",[562,563,89],"a",{"href":90},".",[566,567,569],"h2",{"id":568},"the-status-bar-and-the-connection","The status bar and the connection",[558,571,572,573,577,578,581,582,564],{},"The status bar shows a check mark beside ",[574,575,576],"code",{},"Kraft"," while the extension is\nconnected and nothing waits on you, and ",[574,579,580],{},"Kraft (read-only)"," when the versions do\nnot match or the workspace is in ",[562,583,585],{"href":584},"#in-restricted-mode","Restricted Mode",[558,587,588,589,592],{},"While connected, the status bar also shows how many items in scope wait on you,\nsuch as ",[574,590,591],{},"Kraft 2",", the same count as the Needs you group. When something waits,\nit shows a bell in place of the check mark on VS Code's warning background. It\nleaves the number out when nothing waits.",[558,594,595,596,598],{},"While connected, hovering ",[574,597,576],{}," shows what Kraft has spent today against its daily cap, such\nas \"Today: $1.20 of $20.00\" or \"Today: $0.500 (no daily cap)\". It reads the\nfigure on connect and again at most every 30 seconds while the board changes,\nand leaves the line out when the server does not answer.",[558,600,601,602,604,605,609,610,609,613,616,617,620,621,624],{},"Click ",[574,603,576],{}," in the status bar for ",[606,607,608],"strong",{},"Show Log",", ",[606,611,612],{},"Open Web UI",[606,614,615],{},"Start\nKraft"," (only while it is disconnected) and ",[606,618,619],{},"Retry Now",". ",[606,622,623],{},"Kraft: Show Log","\nin the Command Palette opens the same log: it records each connect, disconnect\nand retry with its delay, every request Kraft refused, and every command that\nfailed.",[558,626,627,628,630],{},"While the extension cannot connect, hovering ",[574,629,576],{}," says why, and an empty\nKraft view shows one row:",[632,633,634,650],"table",{},[635,636,637],"thead",{},[638,639,640,644,647],"tr",{},[641,642,643],"th",{},"Row",[641,645,646],{},"Meaning",[641,648,649],{},"Clicking it",[651,652,653,675,692],"tbody",{},[638,654,655,659,665],{},[656,657,658],"td",{},"Kraft isn't running — Start",[656,660,661,662,564],{},"Nothing answers at ",[574,663,664],{},"kraft.url",[656,666,667,668,671,672,564],{},"Starts Kraft in the background: ",[574,669,670],{},"kraft admin start --detach",", from ",[574,673,674],{},"kraft.path",[638,676,677,680,686],{},[656,678,679],{},"Kraft refused the token — check kraft.url",[656,681,682,683,685],{},"Kraft answered but rejected the token: ",[574,684,664],{}," points at another Kraft, or the token changed.",[656,687,688,689,691],{},"Opens the ",[574,690,664],{}," setting.",[638,693,694,697,700],{},[656,695,696],{},"Kraft error: … — Show log",[656,698,699],{},"Kraft answered with another error.",[656,701,702],{},"Opens the log.",[558,704,705,706,708],{},"The extension retries on its own, waiting 1 second, then 2, 4 and so on up to\n30 seconds between tries. ",[606,707,619],{}," tries again at once.",[558,710,711,714,715,718,719,722,723,726,727,729,730,732],{},[606,712,713],{},"Start Kraft"," runs from your home folder and shows \"Starting Kraft…\" until\nKraft answers, then connects. A Kraft that is already running is said so, and\nthe extension reconnects to it. When the binary is not found, ",[606,716,717],{},"Get Kraft","\nopens the ",[562,720,721],{"href":18},"install page"," and ",[606,724,725],{},"Open Settings"," opens ",[574,728,674],{},". Any other failure shows Kraft's own error, with the full\noutput in ",[606,731,608],{},". Clicking again while one start runs says \"Kraft is already starting.\"",[566,734,736],{"id":735},"which-items-the-board-shows","Which items the board shows",[558,738,739],{},[740,741,742],"em",{},"Added in 2.1",[558,744,745],{},"The board, the count on its icon and the notifications cover the repos of the\nwindow's folders. A folder matches its repo the way Kraft matches it, so these\nall show the repo's items:",[747,748,749,753,756,759],"ul",{},[750,751,752],"li",{},"A subfolder of the repo.",[750,754,755],{},"A symlinked path to it.",[750,757,758],{},"A linked worktree of it.",[750,760,761],{},"A submodule or nested repo under a connected repo.",[558,763,764],{},"A window opened on an item's worktree shows that item's repo.",[558,766,767,768,771,772,775],{},"Archived items sit under ",[606,769,770],{},"Archived",", the last group, collapsed. Expand it to\nlist them, then right-click one, or select several, and run ",[606,773,774],{},"Restore"," to put\nthem back under Done. The group reads its items from Kraft when you expand it,\nwhen the extension connects, and after an item is archived or restored. If that\nread fails, the group shows one row saying why.",[558,777,778,780,781,784],{},[606,779,770],{}," shows only while the board has other items. When it has none,\nrestore from the Command Palette with ",[606,782,783],{},"Kraft: Restore",", which lists the\narchived items to pick from, or from the web UI.",[558,786,787,790,791,794],{},[606,788,789],{},"Show All Repos",", in the view's title bar, widens the board, the count and the\nnotifications to every repo Kraft has work in. ",[606,792,793],{},"Show This Repo",", in the same\nplace while all repos show, goes back to this window's repos. Both are also in\nthe Command Palette.",[558,796,797],{},"The view's description says which it shows, \"This repo\" or \"All repos\", where\nVS Code shows a description (not in a sidebar that holds only the board). While\nKraft is disconnected, the rows are the last it knew, and a line above them says\n\"Not connected · last known\".",[558,799,800],{},"The choice is kept per workspace: reopen the folder, or reload the window, and\nthe board shows the repos it showed when you left it.",[558,802,803,804,722,807,810,811,813],{},"When this window's repos have no Kraft work, the view says \"No Kraft work in\nthis repo.\" with ",[606,805,806],{},"File Work Item…",[606,808,809],{},"Show all repos"," links. With all\nrepos shown and no work in any, it says \"No Kraft work yet, in any repo.\" with\nthe ",[606,812,806],{}," link.",[558,815,816,817,820,821,824,825,828],{},"When a folder's repo isn't connected to Kraft at all, the view says \"This repo\nisn't connected to Kraft.\" instead, after one sentence on what Kraft is and what a\ngate is, with a ",[606,818,819],{},"What is Kraft?"," link to the docs and a ",[606,822,823],{},"Connect this repo"," link (also\n",[606,826,827],{},"Kraft: Connect This Repo"," in the Command Palette). It connects the repo with\nthe commands Kraft detects, and the board then reads the connected repos again.",[558,830,831,832,835,836,838,839,841],{},"To set the test or setup command yourself, connect from the web UI or with\n",[574,833,834],{},"kraft repo connect",". Connecting from VS Code needs Kraft on this machine: when\n",[574,837,664],{}," points elsewhere, neither the link nor the command is offered, and\nyou connect the repo from the web UI or with ",[574,840,834],{}," on Kraft's\nmachine. A read-only window doesn't offer them either.",[558,843,844,845,848],{},"To work in an item's worktree, right-click the item and run ",[606,846,847],{},"Open Worktree in\nNew Window",". It appears only while the item's worktree is on disk: not before\nthe item has run, and not once its worktree is reclaimed.",[566,850,852],{"id":851},"gate-notifications-and-approval","Gate notifications and approval",[558,854,855],{},[740,856,742],{},[558,858,859],{},"When a gate opens, the notification names the item by its title and says what\nthe gate asks, such as \"Design the caching layer: approve spec\". A notification\nfor an item that failed or hit a cap or budget is a warning; a question or a\ngate is not.",[558,861,862,863,866,867,870],{},"When two or more arrive at once, as on startup or after a reconnect, one\nnotification says \"3 items need you\" instead, with ",[606,864,865],{},"Next Gate"," when a gate is\namong them and ",[606,868,869],{},"Show Board"," to reach the rest.",[558,872,873,874],{},"Approving a gate whose document you have not opened opens it instead (\"Read the\nspec on ",[875,876,877],"title",{}," first: the document is open.\"). A message then says what was\napproved (\"Approved: \u003Ctitle> · approve spec\"), and where the item went when\nKraft already knows.",[558,879,880],{},"A gate that is followed by a merge or a push asks first (\"Approve and merge",[875,882,883],{}," into the target branch?\", with an **Approve and Merge** or **Approve and\nPush** button), whether you approve from the gate or by **Submit Review** with\nthe Approve outcome; every other gate is one click. Kraft sends no flag for\nthis, so the extension reads the item's chain: a `merge` or `push` node or task\nbetween this gate and the next.\nSettings",[632,885,886,896],{},[635,887,888],{},[638,889,890,893],{},[641,891,892],{},"Setting",[641,894,895],{},"What it does",[651,897,898,924,951],{},[638,899,900,904],{},[656,901,902],{},[574,903,664],{},[656,905,906,907,722,910,913,914,722,917,920,921,923],{},"Where Kraft listens. Empty reads ",[574,908,909],{},"KRAFT_HOST",[574,911,912],{},"KRAFT_PORT",", then ",[574,915,916],{},"bind",[574,918,919],{},"port"," from ",[574,922,353],{},". Set in your user or Remote settings only: a workspace's settings cannot change it.",[638,925,926,930],{},[656,927,928],{},[574,929,674],{},[656,931,932,933,936,937,939,940,942,943,946,947,950],{},"The ",[574,934,935],{},"kraft"," binary ",[606,938,713],{}," runs. Empty runs ",[574,941,935],{}," on your ",[574,944,945],{},"PATH","; a leading ",[574,948,949],{},"~"," means your home folder. Set in your user or Remote settings only.",[638,952,953,958],{},[656,954,955],{},[574,956,957],{},"kraft.notifications",[656,959,960,609,963,966,967,970,971,973,974,976],{},[574,961,962],{},"all",[574,964,965],{},"gates"," or ",[574,968,969],{},"off",": ",[574,972,962],{}," notifies when an item needs you or fails, ",[574,975,965],{}," only when a gate opens. Pausing an item yourself never notifies.",[566,978,980],{"id":979},"in-restricted-mode","In Restricted Mode",[558,982,983],{},[740,984,742],{},[558,986,987,988,991,992,722,995,997,998,1000],{},"In a workspace you have not trusted, the extension runs read-only. The board,\ngate documents and ",[606,989,990],{},"Review Changes"," work. Every action, from Approve to\n",[606,993,994],{},"Submit Review",[606,996,713],{},", shows \"Kraft is read-only in Restricted\nMode: trust this workspace to act.\" The status bar item reads\n",[574,999,580],{},", with the reason in its tooltip.",[558,1002,1003,1004,722,1007,1010],{},"Config checks, schema completion, ",[606,1005,1006],{},"Show Resolved Chain",[606,1008,1009],{},"Lint Template\nLibrary"," start once you trust the workspace, with no reload.",[566,1012,1014],{"id":1013},"if-the-extension-is-read-only","If the extension is read-only",[558,1016,1017,1018,564],{},"The extension works with a Kraft of its own major release and at least its\nminor: the 2.0 extension needs Kraft 2.0 or a later 2.x. Against any other, it\nturns read-only. The board still updates, every action is disabled, and its\nstatus bar item reads ",[574,1019,580],{},[632,1021,1022,1035],{},[635,1023,1024],{},[638,1025,1026,1029,1032],{},[641,1027,1028],{},"The extension",[641,1030,1031],{},"The server",[641,1033,1034],{},"The fix",[651,1036,1037,1050],{},[638,1038,1039,1042,1045],{},[656,1040,1041],{},"2.0",[656,1043,1044],{},"1.4",[656,1046,1047,564],{},[562,1048,187],{"href":1049},"\u002Fguides\u002Frun\u002Fupgrade-from-1-4#update-from-14",[638,1051,1052,1054,1056],{},[656,1053,1044],{},[656,1055,1041],{},[656,1057,1058],{},"Update the extension.",[1060,1061,1063],"h3",{"id":1062},"an-extension-newer-than-kraft","An extension newer than Kraft",[747,1065,1066,1069],{},[750,1067,1068],{},"When it connects, it shows a warning that says which to update, and the status\nbar item's tooltip repeats it: against a 1.4 server, \"This extension (2.0.0)\nneeds Kraft 2.0 or later; this server runs 1.4.0. Update Kraft. Actions are\ndisabled until they match.\"",[750,1070,1071],{},"When you then try an action, it shows \"Kraft is read-only: this server's\nversion does not work with this extension. Hover Kraft in the status bar to see\nwhich one to update.\"",[558,1073,1074,1075,564],{},"VS Code updates the extension on its own, so after a new major release this is\nwhat you see until you ",[562,1076,1077],{"href":1049},"update Kraft from 1.4",[1060,1079,1081],{"id":1080},"an-extension-older-than-kraft","An extension older than Kraft",[558,1083,1084],{},"The rule holds the other way too: an extension from 1.4, one whose updates are\noff or that you pinned, is read-only against a 2.0 server. The 1.4 extension\nhas no tooltip and says less. When it connects, it shows \"Kraft 2.0.0 does not\nmatch this extension (1.4.0); actions are disabled until they match.\" When you\ntry an action, it shows \"Kraft is read-only: the daemon's version does not match\nthis extension.\" Update the extension as well.",[566,1086,1088],{"id":1087},"related","Related",[747,1090,1091],{},[750,1092,1093,1095],{},[562,1094,89],{"href":90},": install the extension, clear a gate, review a branch and edit config files.",{"title":1097,"searchDepth":1098,"depth":1098,"links":1099},"",2,[1100,1101,1102,1103,1104,1110],{"id":568,"depth":1098,"text":569},{"id":735,"depth":1098,"text":736},{"id":851,"depth":1098,"text":852},{"id":979,"depth":1098,"text":980},{"id":1013,"depth":1098,"text":1105,"children":1106},"If the extension is read-​only",[1107,1109],{"id":1062,"depth":1108,"text":1063},3,{"id":1080,"depth":1108,"text":1081},{"id":1087,"depth":1098,"text":1088},"The Kraft extension's status bar, the items its board shows, its settings, Restricted Mode, and the versions it works with.","md",null,{},{"title":509},{"title":553,"description":1111},"DZir4NWQjJMTCMxWAf0iSpnhavGmJFBRJQAPIYbv87c",[1119,1121],{"title":505,"path":506,"stem":507,"description":1120,"children":-1},"Every event type on a work item's timeline, its key payload fields, and the notification webhook that sends them.",{"title":513,"path":514,"stem":515,"description":1122,"children":-1},"What 2.0 changes from 1.4, what 1.4 did, and what to do about each change, plus where the pages moved and what became of your theme.",1792362342654]