[{"data":1,"prerenderedAt":2956},["ShallowReactive",2],{"navigation_docs":3,"-reference-events":270,"-reference-events-surround":2951},[4,28,51,110,243],{"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},"Troubleshooting and FAQ","\u002Fget-started\u002Ftroubleshooting","1.get-started\u002F3.troubleshooting",{"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},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F1.vocabulary",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F2.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F3.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F4.permission-gate",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,62,66,70,74,78,82,86,90,94,98,102,106],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61},"Use Kraft from your agent","\u002Fguides\u002Fagent-integration","3.guides\u002F01.agent-integration",{"title":63,"path":64,"stem":65},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F02.kraft-lite",{"title":67,"path":68,"stem":69},"Remote access","\u002Fguides\u002Fremote-access","3.guides\u002F03.remote-access",{"title":71,"path":72,"stem":73},"Add or override a harness","\u002Fguides\u002Fadding-a-harness","3.guides\u002F04.adding-a-harness",{"title":75,"path":76,"stem":77},"Schedule or webhook work","\u002Fguides\u002Fschedule-and-webhook-work","3.guides\u002F05.schedule-and-webhook-work",{"title":79,"path":80,"stem":81},"Add a security review or a gate reviewer","\u002Fguides\u002Fadd-review-agents","3.guides\u002F06.add-review-agents",{"title":83,"path":84,"stem":85},"Kraft for VS Code","\u002Fguides\u002Fvscode","3.guides\u002F07.vscode",{"title":87,"path":88,"stem":89},"Reviewing a change","\u002Fguides\u002Freview-a-change","3.guides\u002F08.review-a-change",{"title":91,"path":92,"stem":93},"Write your own chain","\u002Fguides\u002Fwrite-your-own-chain","3.guides\u002F09.write-your-own-chain",{"title":95,"path":96,"stem":97},"Switch a harness","\u002Fguides\u002Fswitch-harness","3.guides\u002F10.switch-harness",{"title":99,"path":100,"stem":101},"Upgrade your templates","\u002Fguides\u002Fupgrading-templates","3.guides\u002F11.upgrading-templates",{"title":103,"path":104,"stem":105},"Operations","\u002Fguides\u002Foperations","3.guides\u002F12.operations",{"title":107,"path":108,"stem":109},"Worker Kit","\u002Fguides\u002Fworker-kit","3.guides\u002F13.worker-kit",{"title":111,"path":112,"stem":113,"children":114},"Reference","\u002Freference","4.reference",[115,117,139,183,201,205,227,231,235,239],{"title":10,"path":112,"stem":116},"4.reference\u002Findex",{"title":118,"path":119,"stem":120,"children":121},"CLI","\u002Freference\u002Fcli","4.reference\u002F1.cli\u002Findex",[122,123,127,131,135],{"title":10,"path":119,"stem":120},{"title":124,"path":125,"stem":126},"Item verbs","\u002Freference\u002Fcli\u002Fitem","4.reference\u002F1.cli\u002F2.item",{"title":128,"path":129,"stem":130},"View verbs","\u002Freference\u002Fcli\u002Fview","4.reference\u002F1.cli\u002F3.view",{"title":132,"path":133,"stem":134},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","4.reference\u002F1.cli\u002F4.repo",{"title":136,"path":137,"stem":138},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","4.reference\u002F1.cli\u002F5.admin",{"title":140,"path":141,"stem":142,"children":143},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F2.configuration\u002Findex",[144,145,155,159,163,167,171,175,179],{"title":10,"path":141,"stem":142},{"title":146,"path":147,"stem":148,"children":149},"Repos","\u002Freference\u002Fconfiguration\u002Frepos","4.reference\u002F2.configuration\u002F2.repos\u002Findex",[150,151],{"title":10,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","4.reference\u002F2.configuration\u002F2.repos\u002F3.workspaces",{"title":156,"path":157,"stem":158},"Policy","\u002Freference\u002Fconfiguration\u002Fpolicy","4.reference\u002F2.configuration\u002F3.policy",{"title":160,"path":161,"stem":162},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","4.reference\u002F2.configuration\u002F4.library-and-chains",{"title":164,"path":165,"stem":166},"Harnesses file","\u002Freference\u002Fconfiguration\u002Fharnesses-file","4.reference\u002F2.configuration\u002F5.harnesses-file",{"title":168,"path":169,"stem":170},"Access","\u002Freference\u002Fconfiguration\u002Faccess","4.reference\u002F2.configuration\u002F6.access",{"title":172,"path":173,"stem":174},"Intake","\u002Freference\u002Fconfiguration\u002Fintake","4.reference\u002F2.configuration\u002F7.intake",{"title":176,"path":177,"stem":178},"Sandbox host","\u002Freference\u002Fconfiguration\u002Fsandbox","4.reference\u002F2.configuration\u002F8.sandbox",{"title":180,"path":181,"stem":182},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","4.reference\u002F2.configuration\u002F9.environment-variables",{"title":184,"path":185,"stem":186,"children":187},"Chain nodes","\u002Freference\u002Fchain-nodes","4.reference\u002F3.chain-nodes\u002Findex",[188,189,193,197],{"title":10,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","4.reference\u002F3.chain-nodes\u002F2.subprocess-tasks",{"title":194,"path":195,"stem":196},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","4.reference\u002F3.chain-nodes\u002F3.fix-loop",{"title":198,"path":199,"stem":200},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","4.reference\u002F3.chain-nodes\u002F4.result-file",{"title":202,"path":203,"stem":204},"Permission gate","\u002Freference\u002Fpermissions","4.reference\u002F4.permissions",{"title":206,"path":207,"stem":208,"children":209},"Agent harnesses","\u002Freference\u002Fharnesses","4.reference\u002F5.harnesses\u002Findex",[210,211,215,219,223],{"title":10,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","4.reference\u002F5.harnesses\u002F2.unattended-runs",{"title":216,"path":217,"stem":218},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","4.reference\u002F5.harnesses\u002F3.agent-profiles",{"title":220,"path":221,"stem":222},"Harness files","\u002Freference\u002Fharnesses\u002Fharness-files","4.reference\u002F5.harnesses\u002F4.harness-files",{"title":224,"path":225,"stem":226},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","4.reference\u002F5.harnesses\u002F5.fallback-and-escalation",{"title":228,"path":229,"stem":230},"Inbound triggers","\u002Freference\u002Ftriggers","4.reference\u002F6.triggers",{"title":232,"path":233,"stem":234},"HTTP API","\u002Freference\u002Fhttp-api","4.reference\u002F7.http-api",{"title":236,"path":237,"stem":238},"MCP tools","\u002Freference\u002Fmcp-tools","4.reference\u002F8.mcp-tools",{"title":240,"path":241,"stem":242},"Events","\u002Freference\u002Fevents","4.reference\u002F9.events",{"title":244,"path":245,"stem":246,"children":247},"Project","\u002Fproject","5.project",[248,250,254,258,262,266],{"title":10,"path":245,"stem":249},"5.project\u002Findex",{"title":251,"path":252,"stem":253},"Architecture","\u002Fproject\u002Farchitecture","5.project\u002F1.architecture",{"title":255,"path":256,"stem":257},"Contributing","\u002Fproject\u002Fcontributing","5.project\u002F2.contributing",{"title":259,"path":260,"stem":261},"Security","\u002Fproject\u002Fsecurity","5.project\u002F3.security",{"title":263,"path":264,"stem":265},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","5.project\u002F4.data-and-privacy",{"title":267,"path":268,"stem":269},"Status and support","\u002Fproject\u002Fstatus-and-support","5.project\u002F5.status-and-support",{"id":271,"title":240,"body":272,"description":2944,"extension":2945,"links":2946,"meta":2947,"navigation":2948,"path":241,"seo":2949,"stem":242,"__hash__":2950},"docs\u002F4.reference\u002F9.events.md",{"type":273,"value":274,"toc":2930},"minimark",[275,300,390,399,404,787,792,803,915,922,926,1255,1259,1573,1596,1600,1792,1796,1983,1987,2132,2136,2360,2364,2488,2497,2501,2612,2616,2626,2693,2762,2765,2883,2891,2926],[276,277,278,279,283,284,287,288,291,292,295,296,299],"p",{},"Kraft records what happens to a work item as a list of events, its timeline.\nEach event has a ",[280,281,282],"code",{},"seq"," number, the ",[280,285,286],{},"work_item_id",", a ",[280,289,290],{},"type",", a JSON ",[280,293,294],{},"payload","\nand a ",[280,297,298],{},"created_at"," time. Read them with:",[301,302,307],"pre",{"className":303,"code":304,"language":305,"meta":306,"style":306},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kraft view events ID                     # the whole timeline\nkraft view events ID --type gate_requested\nkraft view events ID --after 120 -f      # later events, then follow\nkraft view events ID --json              # the raw events\n","bash","",[280,308,309,332,349,373],{"__ignoreMap":306},[310,311,314,318,322,325,328],"span",{"class":312,"line":313},"line",1,[310,315,317],{"class":316},"sBMFI","kraft",[310,319,321],{"class":320},"sfazB"," view",[310,323,324],{"class":320}," events",[310,326,327],{"class":320}," ID",[310,329,331],{"class":330},"sHwdD","                     # the whole timeline\n",[310,333,335,337,339,341,343,346],{"class":312,"line":334},2,[310,336,317],{"class":316},[310,338,321],{"class":320},[310,340,324],{"class":320},[310,342,327],{"class":320},[310,344,345],{"class":320}," --type",[310,347,348],{"class":320}," gate_requested\n",[310,350,352,354,356,358,360,363,367,370],{"class":312,"line":351},3,[310,353,317],{"class":316},[310,355,321],{"class":320},[310,357,324],{"class":320},[310,359,327],{"class":320},[310,361,362],{"class":320}," --after",[310,364,366],{"class":365},"sbssI"," 120",[310,368,369],{"class":320}," -f",[310,371,372],{"class":330},"      # later events, then follow\n",[310,374,376,378,380,382,384,387],{"class":312,"line":375},4,[310,377,317],{"class":316},[310,379,321],{"class":320},[310,381,324],{"class":320},[310,383,327],{"class":320},[310,385,386],{"class":320}," --json",[310,388,389],{"class":330},"              # the raw events\n",[276,391,392,393,398],{},"The tables list each type and the payload fields you are most likely to use.\nA payload can carry more fields than these. Event types and payloads are not a\n",[394,395,397],"a",{"href":396},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","stable interface",": a\nrelease can add, rename or reshape them.",[400,401,403],"h2",{"id":402},"work-item","Work item",[405,406,407,423],"table",{},[408,409,410],"thead",{},[411,412,413,417,420],"tr",{},[414,415,416],"th",{},"Type",[414,418,419],{},"When",[414,421,422],{},"Key fields",[424,425,426,460,475,490,505,523,541,563,580,596,616,629,645,661,673,696,708,722,737,759,773],"tbody",{},[411,427,428,434,437],{},[429,430,431],"td",{},[280,432,433],{},"work_item_created",[429,435,436],{},"The item is filed.",[429,438,439,442,443,442,446,449,450,442,453,442,456,459],{},[280,440,441],{},"title",", ",[280,444,445],{},"repo",[280,447,448],{},"chain_template","; ",[280,451,452],{},"source",[280,454,455],{},"bead_id",[280,457,458],{},"priority"," when auto-intake filed it",[411,461,462,467,470],{},[429,463,464],{},[280,465,466],{},"work_item_attachments",[429,468,469],{},"The item is filed with a spec or plan.",[429,471,472],{},[280,473,474],{},"attachments",[411,476,477,482,485],{},[429,478,479],{},[280,480,481],{},"work_item_resumed",[429,483,484],{},"A paused item starts or restarts.",[429,486,487],{},[280,488,489],{},"steer",[411,491,492,497,500],{},[429,493,494],{},[280,495,496],{},"pause_requested",[429,498,499],{},"Someone pauses the item.",[429,501,502],{},[280,503,504],{},"sessions",[411,506,507,512,515],{},[429,508,509],{},[280,510,511],{},"work_item_blocked_by_dependency",[429,513,514],{},"An open bead dependency paused the item before its next node.",[429,516,517,442,520],{},[280,518,519],{},"node_id",[280,521,522],{},"blocked_by",[411,524,525,530,533],{},[429,526,527],{},[280,528,529],{},"paused_by_broken_base",[429,531,532],{},"Another item broke the base branch, so this one paused.",[429,534,535,442,538],{},[280,536,537],{},"broken_by",[280,539,540],{},"follow_up_bead",[411,542,543,548,556],{},[429,544,545],{},[280,546,547],{},"work_item_needs_human",[429,549,550,551,555],{},"The item stopped for a person. See ",[394,552,554],{"href":553},"#work_item_needs_human","below",".",[429,557,558,442,560],{},[280,559,519],{},[280,561,562],{},"reason",[411,564,565,570,573],{},[429,566,567],{},[280,568,569],{},"work_item_waiting",[429,571,572],{},"The item is parked on an external wait.",[429,574,575,442,577],{},[280,576,519],{},[280,578,579],{},"retry_at",[411,581,582,587,590],{},[429,583,584],{},[280,585,586],{},"work_item_rate_limited",[429,588,589],{},"The agent hit a rate limit; the item retries on its own.",[429,591,592,442,594],{},[280,593,519],{},[280,595,579],{},[411,597,598,603,606],{},[429,599,600],{},[280,601,602],{},"work_item_retried",[429,604,605],{},"Someone retried the item.",[429,607,608,442,610,442,612,615],{},[280,609,519],{},[280,611,489],{},[280,613,614],{},"escalated"," (an escalation turn retried it)",[411,617,618,623,626],{},[429,619,620],{},[280,621,622],{},"work_item_completed",[429,624,625],{},"The item finished, on its own or by hand.",[429,627,628],{},"none",[411,630,631,636,639],{},[429,632,633],{},[280,634,635],{},"work_item_manually_completed",[429,637,638],{},"Someone completed the item by hand.",[429,640,641,442,643],{},[280,642,562],{},[280,644,519],{},[411,646,647,652,655],{},[429,648,649],{},[280,650,651],{},"work_item_cancelled",[429,653,654],{},"Someone cancelled the item.",[429,656,657,442,659],{},[280,658,562],{},[280,660,519],{},[411,662,663,668,671],{},[429,664,665],{},[280,666,667],{},"work_item_abandoned",[429,669,670],{},"The item was cancelled or abandoned.",[429,672,628],{},[411,674,675,680,683],{},[429,676,677],{},[280,678,679],{},"work_item_archived",[429,681,682],{},"The item left the Done column.",[429,684,685,688,689,692,693],{},[280,686,687],{},"by",": ",[280,690,691],{},"you"," or ",[280,694,695],{},"auto",[411,697,698,703,706],{},[429,699,700],{},[280,701,702],{},"work_item_restored",[429,704,705],{},"An archived item came back.",[429,707,628],{},[411,709,710,715,718],{},[429,711,712],{},[280,713,714],{},"work_item_title_edited",[429,716,717],{},"The title changed.",[429,719,720],{},[280,721,441],{},[411,723,724,729,732],{},[429,725,726],{},[280,727,728],{},"work_item_description_edited",[429,730,731],{},"The description changed.",[429,733,734],{},[280,735,736],{},"description",[411,738,739,744,747],{},[429,740,741],{},[280,742,743],{},"plan_progress",[429,745,746],{},"A worker started a plan task.",[429,748,749,442,751,442,754,442,757],{},[280,750,519],{},[280,752,753],{},"task",[280,755,756],{},"total",[280,758,441],{},[411,760,761,766,769],{},[429,762,763],{},[280,764,765],{},"steer_context_set",[429,767,768],{},"A steer was stored for the next agent.",[429,770,771],{},[280,772,489],{},[411,774,775,780,783],{},[429,776,777],{},[280,778,779],{},"steer_undelivered",[429,781,782],{},"A steer was stored but no agent received it.",[429,784,785],{},[280,786,489],{},[788,789,790],"h3",{"id":547},[280,791,547],{},[276,793,794,795,798,799,802],{},"This is the event behind ",[280,796,797],{},"stop_reason"," in ",[280,800,801],{},"kraft view show --json",", and behind\n\"why did it stop\" on the board. Its fields:",[405,804,805,815],{},[408,806,807],{},[411,808,809,812],{},[414,810,811],{},"Field",[414,813,814],{},"Meaning",[424,816,817,826,839,853,866,879,892,902],{},[411,818,819,823],{},[429,820,821],{},[280,822,519],{},[429,824,825],{},"The node the item stopped on.",[411,827,828,832],{},[429,829,830],{},[280,831,562],{},[429,833,834,835,838],{},"What stopped it, in words. A reason that starts ",[280,836,837],{},"needs_context:"," is a question from the agent.",[411,840,841,846],{},[429,842,843],{},[280,844,845],{},"session_id",[429,847,848,849,852],{},"The last session of that node, when it failed or asked a question. ",[280,850,851],{},"kraft view logs"," reads its log.",[411,854,855,860],{},[429,856,857],{},[280,858,859],{},"capped",[429,861,862,865],{},[280,863,864],{},"{cycles, attempts}"," when a fix loop spent its attempts.",[411,867,868,873],{},[429,869,870],{},[280,871,872],{},"budget",[429,874,875,878],{},[280,876,877],{},"{scope, spent_usd, cap_usd}"," when a spend cap stopped the item.",[411,880,881,886],{},[429,882,883],{},[280,884,885],{},"stuck",[429,887,888,891],{},[280,889,890],{},"true"," when the item stopped in a way an escalation turn can answer.",[411,893,894,899],{},[429,895,896],{},[280,897,898],{},"bundle",[429,900,901],{},"What Kraft gathered about a stuck item when it gave up.",[411,903,904,909],{},[429,905,906],{},[280,907,908],{},"suggested_action",[429,910,911,914],{},[280,912,913],{},"{action, reason}",", the next step Kraft suggests.",[276,916,917,921],{},[394,918,920],{"href":919},"\u002Fget-started\u002Ftroubleshooting#why-did-my-item-stop","Troubleshooting"," maps each\nreason to a fix.",[400,923,925],{"id":924},"chain-and-nodes","Chain and nodes",[405,927,928,938],{},[408,929,930],{},[411,931,932,934,936],{},[414,933,416],{},[414,935,419],{},[414,937,422],{},[424,939,940,952,967,981,995,1015,1032,1049,1069,1089,1107,1126,1145,1164,1183,1205,1224,1238],{},[411,941,942,947,950],{},[429,943,944],{},[280,945,946],{},"chain_loaded",[429,948,949],{},"The chain was built for the item.",[429,951,628],{},[411,953,954,959,962],{},[429,955,956],{},[280,957,958],{},"worktree_prepared",[429,960,961],{},"The worktree was created and set up.",[429,963,964],{},[280,965,966],{},"report",[411,968,969,974,977],{},[429,970,971],{},[280,972,973],{},"node_started",[429,975,976],{},"A node began.",[429,978,979],{},[280,980,519],{},[411,982,983,988,991],{},[429,984,985],{},[280,986,987],{},"node_completed",[429,989,990],{},"A node finished.",[429,992,993],{},[280,994,519],{},[411,996,997,1002,1005],{},[429,998,999],{},[280,1000,1001],{},"node_skipped",[429,1003,1004],{},"A node or its gate was skipped.",[429,1006,1007,442,1009,442,1012],{},[280,1008,519],{},[280,1010,1011],{},"gate",[280,1013,1014],{},"note",[411,1016,1017,1022,1025],{},[429,1018,1019],{},[280,1020,1021],{},"scope_skipped",[429,1023,1024],{},"A step or task inside a node was skipped.",[429,1026,1027,442,1030],{},[280,1028,1029],{},"path",[280,1031,1014],{},[411,1033,1034,1039,1042],{},[429,1035,1036],{},[280,1037,1038],{},"node_recovery_started",[429,1040,1041],{},"Kraft reran a node's failed tasks.",[429,1043,1044,442,1046],{},[280,1045,519],{},[280,1047,1048],{},"failed_tasks",[411,1050,1051,1056,1059],{},[429,1052,1053],{},[280,1054,1055],{},"run_forked",[429,1057,1058],{},"A retry started a new run from part of the old one.",[429,1060,1061,442,1063,442,1066],{},[280,1062,1029],{},[280,1064,1065],{},"scope",[280,1067,1068],{},"reopened",[411,1070,1071,1076,1079],{},[429,1072,1073],{},[280,1074,1075],{},"base_change_restart",[429,1077,1078],{},"The base branch moved, so part of the chain reran.",[429,1080,1081,442,1083,442,1086],{},[280,1082,519],{},[280,1084,1085],{},"restart_from",[280,1087,1088],{},"nodes",[411,1090,1091,1096,1099],{},[429,1092,1093],{},[280,1094,1095],{},"worktree_rebase_verified",[429,1097,1098],{},"A rebase reported by a worker matched the worktree.",[429,1100,1101,442,1104],{},[280,1102,1103],{},"reported_head",[280,1105,1106],{},"worktree_head",[411,1108,1109,1114,1117],{},[429,1110,1111],{},[280,1112,1113],{},"read_only_violated",[429,1115,1116],{},"A read-only node or step changed the worktree.",[429,1118,1119,442,1121,442,1123],{},[280,1120,519],{},[280,1122,1065],{},[280,1124,1125],{},"files",[411,1127,1128,1133,1136],{},[429,1129,1130],{},[280,1131,1132],{},"fix_cycle_started",[429,1134,1135],{},"A fix loop started another attempt.",[429,1137,1138,442,1140,442,1143],{},[280,1139,519],{},[280,1141,1142],{},"cycle",[280,1144,1048],{},[411,1146,1147,1152,1155],{},[429,1148,1149],{},[280,1150,1151],{},"fix_cycle_refunded",[429,1153,1154],{},"A fix attempt did not count, because the repair never ran.",[429,1156,1157,442,1159,442,1161],{},[280,1158,519],{},[280,1160,1142],{},[280,1162,1163],{},"outcome",[411,1165,1166,1171,1174],{},[429,1167,1168],{},[280,1169,1170],{},"findings_measured",[429,1172,1173],{},"A review or check produced findings.",[429,1175,1176,442,1178,442,1180],{},[280,1177,519],{},[280,1179,1142],{},[280,1181,1182],{},"findings",[411,1184,1185,1190,1193],{},[429,1186,1187],{},[280,1188,1189],{},"judge_verdict",[429,1191,1192],{},"A judge ruled on findings.",[429,1194,1195,442,1197,442,1199,442,1202],{},[280,1196,519],{},[280,1198,1142],{},[280,1200,1201],{},"verdict",[280,1203,1204],{},"reasoning",[411,1206,1207,1212,1215],{},[429,1208,1209],{},[280,1210,1211],{},"sweep_failed",[429,1213,1214],{},"Kraft could not commit work an agent task left uncommitted: the commit failed, or the worktree was not on the item's branch, held a git operation Kraft did not start, or held a repository Kraft did not create. The work stays in the worktree.",[429,1216,1217,442,1219,442,1221],{},[280,1218,519],{},[280,1220,753],{},[280,1222,1223],{},"error",[411,1225,1226,1231,1234],{},[429,1227,1228],{},[280,1229,1230],{},"bead_not_filed",[429,1232,1233],{},"Intake could not file a bead.",[429,1235,1236],{},[280,1237,562],{},[411,1239,1240,1245,1248],{},[429,1241,1242],{},[280,1243,1244],{},"beads_left_open",[429,1246,1247],{},"The item completed but its beads stayed open.",[429,1249,1250,442,1253],{},[280,1251,1252],{},"beads",[280,1254,562],{},[400,1256,1258],{"id":1257},"gates-and-review","Gates and review",[405,1260,1261,1271],{},[408,1262,1263],{},[411,1264,1265,1267,1269],{},[414,1266,416],{},[414,1268,419],{},[414,1270,422],{},[424,1272,1273,1289,1305,1326,1342,1358,1374,1392,1409,1426,1439,1455,1474,1492,1511,1525,1541,1557],{},[411,1274,1275,1280,1283],{},[429,1276,1277],{},[280,1278,1279],{},"gate_requested",[429,1281,1282],{},"A gate is waiting for a decision.",[429,1284,1285,442,1287],{},[280,1286,1011],{},[280,1288,519],{},[411,1290,1291,1296,1299],{},[429,1292,1293],{},[280,1294,1295],{},"gate_approved",[429,1297,1298],{},"A gate was approved.",[429,1300,1301,442,1303],{},[280,1302,1011],{},[280,1304,687],{},[411,1306,1307,1312,1315],{},[429,1308,1309],{},[280,1310,1311],{},"gate_rejected",[429,1313,1314],{},"A gate was rejected.",[429,1316,1317,442,1319,442,1321,442,1324],{},[280,1318,1011],{},[280,1320,1014],{},[280,1322,1323],{},"node",[280,1325,687],{},[411,1327,1328,1333,1336],{},[429,1329,1330],{},[280,1331,1332],{},"gate_reopened",[429,1334,1335],{},"An approved gate is open again.",[429,1337,1338,442,1340],{},[280,1339,1011],{},[280,1341,562],{},[411,1343,1344,1349,1352],{},[429,1345,1346],{},[280,1347,1348],{},"gate_auto_review_started",[429,1350,1351],{},"A gate's review agent started.",[429,1353,1354,442,1356],{},[280,1355,1011],{},[280,1357,845],{},[411,1359,1360,1365,1368],{},[429,1361,1362],{},[280,1363,1364],{},"gate_auto_review_skipped",[429,1366,1367],{},"A gate's review agent did not run.",[429,1369,1370,442,1372],{},[280,1371,1011],{},[280,1373,562],{},[411,1375,1376,1381,1384],{},[429,1377,1378],{},[280,1379,1380],{},"gate_auto_review_discarded",[429,1382,1383],{},"A review agent's verdict was not used.",[429,1385,1386,442,1388,442,1390],{},[280,1387,1011],{},[280,1389,1201],{},[280,1391,562],{},[411,1393,1394,1399,1402],{},[429,1395,1396],{},[280,1397,1398],{},"chain_revision_shown",[429,1400,1401],{},"A person was shown a chain revision.",[429,1403,1404,442,1406],{},[280,1405,1011],{},[280,1407,1408],{},"digest",[411,1410,1411,1416,1419],{},[429,1412,1413],{},[280,1414,1415],{},"chain_revision_unchanged",[429,1417,1418],{},"A chain revision proposed no change, so its gate passed.",[429,1420,1421,442,1423],{},[280,1422,1011],{},[280,1424,1425],{},"rationale",[411,1427,1428,1433,1436],{},[429,1429,1430],{},[280,1431,1432],{},"chain_revised",[429,1434,1435],{},"An approved chain revision replaced the chain.",[429,1437,1438],{},"varies",[411,1440,1441,1446,1449],{},[429,1442,1443],{},[280,1444,1445],{},"artifact_refused",[429,1447,1448],{},"Kraft found a gate's document but would not serve it.",[429,1450,1451,442,1453],{},[280,1452,1029],{},[280,1454,562],{},[411,1456,1457,1462,1465],{},[429,1458,1459],{},[280,1460,1461],{},"review_submitted",[429,1463,1464],{},"A review was sent.",[429,1466,1467,442,1470,442,1472],{},[280,1468,1469],{},"review_id",[280,1471,1011],{},[280,1473,1163],{},[411,1475,1476,1481,1484],{},[429,1477,1478],{},[280,1479,1480],{},"thread_updated",[429,1482,1483],{},"A review thread was resolved or reopened.",[429,1485,1486,442,1489],{},[280,1487,1488],{},"thread_id",[280,1490,1491],{},"state",[411,1493,1494,1499,1502],{},[429,1495,1496],{},[280,1497,1498],{},"rewind_requested",[429,1500,1501],{},"A review asked for work to be redone.",[429,1503,1504,442,1506,442,1509],{},[280,1505,1469],{},[280,1507,1508],{},"target",[280,1510,1014],{},[411,1512,1513,1518,1521],{},[429,1514,1515],{},[280,1516,1517],{},"rewind_cancelled",[429,1519,1520],{},"That request was withdrawn.",[429,1522,1523],{},[280,1524,1469],{},[411,1526,1527,1532,1535],{},[429,1528,1529],{},[280,1530,1531],{},"reply_agent_wrote",[429,1533,1534],{},"An agent answered review threads.",[429,1536,1537,442,1539],{},[280,1538,1011],{},[280,1540,1125],{},[411,1542,1543,1548,1551],{},[429,1544,1545],{},[280,1546,1547],{},"reply_agent_skipped",[429,1549,1550],{},"No agent answered review threads.",[429,1552,1553,442,1555],{},[280,1554,1011],{},[280,1556,562],{},[411,1558,1559,1564,1567],{},[429,1560,1561],{},[280,1562,1563],{},"reply_agent_failed",[429,1565,1566],{},"The reply agent failed.",[429,1568,1569,442,1571],{},[280,1570,1011],{},[280,1572,1223],{},[276,1574,1575,1577,1578,1581,1582,1584,1585,1588,1589,1592,1593,1595],{},[280,1576,687],{}," is ",[280,1579,1580],{},"human"," (the board or the ",[280,1583,317],{}," command), ",[280,1586,1587],{},"assistant"," (an agent\nthrough the MCP server), ",[280,1590,1591],{},"agent"," (a Kraft worker, such as a gate's review\nagent) or ",[280,1594,317],{}," (Kraft itself).",[400,1597,1599],{"id":1598},"agent-sessions","Agent sessions",[405,1601,1602,1612],{},[408,1603,1604],{},[411,1605,1606,1608,1610],{},[414,1607,416],{},[414,1609,419],{},[414,1611,422],{},[424,1613,1614,1636,1657,1684,1698,1714,1730,1746,1760],{},[411,1615,1616,1621,1624],{},[429,1617,1618],{},[280,1619,1620],{},"worker_session_created",[429,1622,1623],{},"A session was recorded, before launch.",[429,1625,1626,442,1628,442,1630,442,1633],{},[280,1627,845],{},[280,1629,519],{},[280,1631,1632],{},"hook_point",[280,1634,1635],{},"attempt",[411,1637,1638,1643,1646],{},[429,1639,1640],{},[280,1641,1642],{},"worker_session_started",[429,1644,1645],{},"Its process started.",[429,1647,1648,442,1650,442,1652,442,1654],{},[280,1649,845],{},[280,1651,519],{},[280,1653,1632],{},[280,1655,1656],{},"pid",[411,1658,1659,1664,1667],{},[429,1660,1661],{},[280,1662,1663],{},"worker_session_exited",[429,1665,1666],{},"It ended.",[429,1668,1669,442,1671,442,1674,442,1677,442,1680,1683],{},[280,1670,845],{},[280,1672,1673],{},"status",[280,1675,1676],{},"wall_ms",[280,1678,1679],{},"model",[280,1681,1682],{},"cost_usd",", token counts",[411,1685,1686,1691,1694],{},[429,1687,1688],{},[280,1689,1690],{},"worker_session_paused",[429,1692,1693],{},"It was stopped by a pause, skip or manual end.",[429,1695,1696],{},[280,1697,845],{},[411,1699,1700,1705,1708],{},[429,1701,1702],{},[280,1703,1704],{},"agent_session_resumed",[429,1706,1707],{},"A session resumed the agent's earlier conversation.",[429,1709,1710,442,1712],{},[280,1711,753],{},[280,1713,845],{},[411,1715,1716,1721,1724],{},[429,1717,1718],{},[280,1719,1720],{},"session_reattached",[429,1722,1723],{},"After a restart, Kraft found a session still running.",[429,1725,1726,442,1728],{},[280,1727,845],{},[280,1729,1656],{},[411,1731,1732,1737,1740],{},[429,1733,1734],{},[280,1735,1736],{},"session_unknown",[429,1738,1739],{},"After a restart, Kraft could not confirm a session.",[429,1741,1742,442,1744],{},[280,1743,845],{},[280,1745,562],{},[411,1747,1748,1753,1756],{},[429,1749,1750],{},[280,1751,1752],{},"background_jobs_abandoned",[429,1754,1755],{},"A session left background jobs behind.",[429,1757,1758],{},[280,1759,562],{},[411,1761,1762,1767,1775],{},[429,1763,1764],{},[280,1765,1766],{},"permission_decision",[429,1768,1769,1770,1774],{},"The ",[394,1771,1773],{"href":1772},"\u002Freference\u002Fpermissions#reading-decisions","permission gate"," answered a tool call.",[429,1776,1777,442,1779,442,1781,442,1784,442,1787,442,1789],{},[280,1778,845],{},[280,1780,519],{},[280,1782,1783],{},"tool",[280,1785,1786],{},"decision",[280,1788,562],{},[280,1790,1791],{},"grant",[400,1793,1795],{"id":1794},"caps-budgets-and-limits","Caps, budgets and limits",[405,1797,1798,1808],{},[408,1799,1800],{},[411,1801,1802,1804,1806],{},[414,1803,416],{},[414,1805,419],{},[414,1807,422],{},[424,1809,1810,1834,1849,1864,1878,1904,1921,1941,1965],{},[411,1811,1812,1817,1820],{},[429,1813,1814],{},[280,1815,1816],{},"time_cap_reached",[429,1818,1819],{},"A time cap ran out.",[429,1821,1822,442,1824,442,1827,442,1830,442,1832],{},[280,1823,1065],{},[280,1825,1826],{},"field",[280,1828,1829],{},"minutes",[280,1831,562],{},[280,1833,519],{},[411,1835,1836,1841,1844],{},[429,1837,1838],{},[280,1839,1840],{},"scope_budget_reached",[429,1842,1843],{},"A scope's token or dollar cap refused a launch.",[429,1845,1846,1847],{},"the breach fields, ",[280,1848,753],{},[411,1850,1851,1856,1859],{},[429,1852,1853],{},[280,1854,1855],{},"budget_changed",[429,1857,1858],{},"The item's spend cap was set.",[429,1860,1861],{},[280,1862,1863],{},"budget_usd",[411,1865,1866,1871,1874],{},[429,1867,1868],{},[280,1869,1870],{},"budget_raised",[429,1872,1873],{},"The cap was raised to continue a stopped item.",[429,1875,1876],{},[280,1877,1863],{},[411,1879,1880,1885,1892],{},[429,1881,1882],{},[280,1883,1884],{},"spend_unpriced",[429,1886,1887,1888,1891],{},"The first session on the item whose harness reported no cost and whose model ",[280,1889,1890],{},"prices.json"," cannot price: the item and daily dollar caps count it as $0.",[429,1893,1894,442,1896,442,1899,442,1901],{},[280,1895,845],{},[280,1897,1898],{},"harness",[280,1900,1679],{},[280,1902,1903],{},"message",[411,1905,1906,1911,1914],{},[429,1907,1908],{},[280,1909,1910],{},"cap_counters_reset",[429,1912,1913],{},"Loop counters were reset.",[429,1915,1916,442,1918],{},[280,1917,687],{},[280,1919,1920],{},"counters",[411,1922,1923,1928,1931],{},[429,1924,1925],{},[280,1926,1927],{},"rate_limit_hit",[429,1929,1930],{},"An agent CLI refused a launch for a rate limit.",[429,1932,1933,442,1935,442,1938],{},[280,1934,519],{},[280,1936,1937],{},"rate_limit_type",[280,1939,1940],{},"resets_at_iso",[411,1942,1943,1948,1951],{},[429,1944,1945],{},[280,1946,1947],{},"launch_fallback",[429,1949,1950],{},"A launch moved to the next harness or model.",[429,1952,1953,442,1955,442,1957,442,1960,442,1963],{},[280,1954,519],{},[280,1956,753],{},[280,1958,1959],{},"from",[280,1961,1962],{},"to",[280,1964,562],{},[411,1966,1967,1972,1975],{},[429,1968,1969],{},[280,1970,1971],{},"launch_fallback_exhausted",[429,1973,1974],{},"Every fallback was limited.",[429,1976,1977,442,1979,442,1981],{},[280,1978,519],{},[280,1980,753],{},[280,1982,1940],{},[400,1984,1986],{"id":1985},"escalation","Escalation",[405,1988,1989,1999],{},[408,1990,1991],{},[411,1992,1993,1995,1997],{},[414,1994,416],{},[414,1996,419],{},[414,1998,422],{},[424,2000,2001,2025,2045,2063,2077,2095,2116],{},[411,2002,2003,2008,2011],{},[429,2004,2005],{},[280,2006,2007],{},"escalation_message",[429,2009,2010],{},"A message went into the escalation thread.",[429,2012,2013,442,2015,442,2017,442,2019,442,2022],{},[280,2014,845],{},[280,2016,1903],{},[280,2018,695],{},[280,2020,2021],{},"thread",[280,2023,2024],{},"turn",[411,2026,2027,2032,2035],{},[429,2028,2029],{},[280,2030,2031],{},"stuck_escalation_started",[429,2033,2034],{},"Kraft started an escalation turn on a stuck item.",[429,2036,2037,442,2039,442,2041,442,2043],{},[280,2038,519],{},[280,2040,753],{},[280,2042,562],{},[280,2044,1635],{},[411,2046,2047,2052,2055],{},[429,2048,2049],{},[280,2050,2051],{},"stuck_escalation_finished",[429,2053,2054],{},"That turn ended.",[429,2056,2057,442,2059,442,2061],{},[280,2058,519],{},[280,2060,753],{},[280,2062,1673],{},[411,2064,2065,2070,2073],{},[429,2066,2067],{},[280,2068,2069],{},"work_item_auto_escalate_skipped",[429,2071,2072],{},"Kraft did not escalate a stop.",[429,2074,2075],{},[280,2076,562],{},[411,2078,2079,2084,2087],{},[429,2080,2081],{},[280,2082,2083],{},"work_item_auto_escalate_capped",[429,2085,2086],{},"Automatic escalations hit their limit.",[429,2088,2089,442,2092],{},[280,2090,2091],{},"cap",[280,2093,2094],{},"count",[411,2096,2097,2102,2105],{},[429,2098,2099],{},[280,2100,2101],{},"work_item_self_retry_requested",[429,2103,2104],{},"An escalation turn asked to retry the item.",[429,2106,2107,442,2109,442,2111,442,2114],{},[280,2108,519],{},[280,2110,1029],{},[280,2112,2113],{},"restart",[280,2115,489],{},[411,2117,2118,2123,2126],{},[429,2119,2120],{},[280,2121,2122],{},"work_item_self_retry_dropped",[429,2124,2125],{},"That retry did not happen.",[429,2127,2128,442,2130],{},[280,2129,519],{},[280,2131,1673],{},[400,2133,2135],{"id":2134},"forge-ci-and-waits","Forge, CI and waits",[405,2137,2138,2148],{},[408,2139,2140],{},[411,2141,2142,2144,2146],{},[414,2143,416],{},[414,2145,419],{},[414,2147,422],{},[424,2149,2150,2168,2183,2208,2233,2251,2272,2288,2304,2326,2344],{},[411,2151,2152,2157,2160],{},[429,2153,2154],{},[280,2155,2156],{},"mr_opened",[429,2158,2159],{},"The merge request was opened.",[429,2161,2162,442,2165],{},[280,2163,2164],{},"number",[280,2166,2167],{},"url",[411,2169,2170,2175,2178],{},[429,2171,2172],{},[280,2173,2174],{},"mr_labels_set",[429,2176,2177],{},"A worker labeled the merge request.",[429,2179,2180],{},[280,2181,2182],{},"labels",[411,2184,2185,2190,2193],{},[429,2186,2187],{},[280,2188,2189],{},"external_wait_started",[429,2191,2192],{},"A wait on CI or a review began.",[429,2194,2195,442,2197,442,2199,442,2202,442,2205],{},[280,2196,753],{},[280,2198,519],{},[280,2200,2201],{},"kind",[280,2203,2204],{},"timeout_s",[280,2206,2207],{},"deadline",[411,2209,2210,2215,2218],{},[429,2211,2212],{},[280,2213,2214],{},"external_wait_observed",[429,2216,2217],{},"Kraft checked the wait.",[429,2219,2220,442,2222,442,2225,442,2227,442,2230],{},[280,2221,753],{},[280,2223,2224],{},"observation",[280,2226,1491],{},[280,2228,2229],{},"result",[280,2231,2232],{},"next_observation_at",[411,2234,2235,2240,2243],{},[429,2236,2237],{},[280,2238,2239],{},"external_wait_rebounded",[429,2241,2242],{},"A policy change moved the wait's limits.",[429,2244,2245,442,2247,442,2249],{},[280,2246,753],{},[280,2248,2204],{},[280,2250,2207],{},[411,2252,2253,2258,2261],{},[429,2254,2255],{},[280,2256,2257],{},"external_wait_ended",[429,2259,2260],{},"The wait settled, timed out or errored.",[429,2262,2263,442,2265,442,2267,442,2269],{},[280,2264,753],{},[280,2266,1163],{},[280,2268,2229],{},[280,2270,2271],{},"observations",[411,2273,2274,2279,2282],{},[429,2275,2276],{},[280,2277,2278],{},"ci_infra_exhausted",[429,2280,2281],{},"CI failed for its own reasons, and retries did not help.",[429,2283,2284,442,2286],{},[280,2285,519],{},[280,2287,562],{},[411,2289,2290,2295,2298],{},[429,2291,2292],{},[280,2293,2294],{},"ci_run_abandoned",[429,2296,2297],{},"A cancelled CI run has no successor.",[429,2299,2300,442,2302],{},[280,2301,519],{},[280,2303,562],{},[411,2305,2306,2311,2318],{},[429,2307,2308],{},[280,2309,2310],{},"ci_not_configured",[429,2312,2313,2314,2317],{},"The repo sets ",[280,2315,2316],{},"ci_checks: false",", so a CI wait, before or after the merge, passed without checking.",[429,2319,2320,442,2322,442,2324],{},[280,2321,519],{},[280,2323,753],{},[280,2325,445],{},[411,2327,2328,2333,2336],{},[429,2329,2330],{},[280,2331,2332],{},"automated_review_not_configured",[429,2334,2335],{},"The repo names no automated reviewer, so the wait settles without one.",[429,2337,2338,442,2340,442,2342],{},[280,2339,519],{},[280,2341,753],{},[280,2343,445],{},[411,2345,2346,2351,2354],{},[429,2347,2348],{},[280,2349,2350],{},"automated_review_errored",[429,2352,2353],{},"The automated reviewer failed.",[429,2355,2356,442,2358],{},[280,2357,519],{},[280,2359,562],{},[400,2361,2363],{"id":2362},"sandbox","Sandbox",[405,2365,2366,2376],{},[408,2367,2368],{},[411,2369,2370,2372,2374],{},[414,2371,416],{},[414,2373,419],{},[414,2375,422],{},[424,2377,2378,2403,2426,2445],{},[411,2379,2380,2385,2388],{},[429,2381,2382],{},[280,2383,2384],{},"sandbox_egress_refused",[429,2386,2387],{},"The sandbox proxy refused a host.",[429,2389,2390,442,2392,442,2395,442,2398,442,2401],{},[280,2391,845],{},[280,2393,2394],{},"host",[280,2396,2397],{},"port",[280,2399,2400],{},"phase",[280,2402,562],{},[411,2404,2405,2410,2417],{},[429,2406,2407],{},[280,2408,2409],{},"sandbox_oom_killed",[429,2411,2412,2413,2416],{},"The container was killed under its memory limit. ",[280,2414,2415],{},"confirmed"," is false when the runtime never flagged the kill and Kraft counted exit 137 under the limit instead.",[429,2418,2419,442,2421,442,2424],{},[280,2420,845],{},[280,2422,2423],{},"memory",[280,2425,2415],{},[411,2427,2428,2433,2436],{},[429,2429,2430],{},[280,2431,2432],{},"sandbox_branch_not_synced",[429,2434,2435],{},"The sandbox's branch did not reach the worktree.",[429,2437,2438,442,2440,442,2443],{},[280,2439,845],{},[280,2441,2442],{},"branch",[280,2444,562],{},[411,2446,2447,2452,2476],{},[429,2448,2449],{},[280,2450,2451],{},"sandbox_kit_resolved",[429,2453,2454,2455,2459,2460,2463,2464,2467,2468,2471,2472,2475],{},"A task was dispatched under a ",[394,2456,2458],{"href":2457},"\u002Freference\u002Fconfiguration\u002Frepos#kits","Kit",", once per item and Kit. ",[280,2461,2462],{},"skipped"," lists the optional capabilities Kraft does not enforce, and ",[280,2465,2466],{},"ignored"," those it accepts without applying (",[280,2469,2470],{},"agent-sessions@1",", a credential's ",[280,2473,2474],{},"oauth",").",[429,2477,2478,442,2481,442,2484,442,2486],{},[280,2479,2480],{},"kit",[280,2482,2483],{},"manifest",[280,2485,2462],{},[280,2487,2466],{},[276,2489,2490,2491,2493,2494,2496],{},"A workspace item records one ",[280,2492,2432],{}," for each repository whose branch did not move, and its ",[280,2495,562],{}," names that repository.",[400,2498,2500],{"id":2499},"settings-changed","Settings changed",[405,2502,2503,2513],{},[408,2504,2505],{},[411,2506,2507,2509,2511],{},[414,2508,416],{},[414,2510,419],{},[414,2512,422],{},[424,2514,2515,2531,2547,2562,2576,2591],{},[411,2516,2517,2522,2525],{},[429,2518,2519],{},[280,2520,2521],{},"chain_template_changed",[429,2523,2524],{},"The item moved to another chain before it started.",[429,2526,2527,442,2529],{},[280,2528,1959],{},[280,2530,1962],{},[411,2532,2533,2538,2541],{},[429,2534,2535],{},[280,2536,2537],{},"attachments_changed",[429,2539,2540],{},"Its spec or plan changed before it started.",[429,2542,2543,442,2545],{},[280,2544,1959],{},[280,2546,1962],{},[411,2548,2549,2554,2557],{},[429,2550,2551],{},[280,2552,2553],{},"agent_overrides_changed",[429,2555,2556],{},"Its model or effort override changed.",[429,2558,2559],{},[280,2560,2561],{},"overrides",[411,2563,2564,2569,2572],{},[429,2565,2566],{},[280,2567,2568],{},"node_overrides_changed",[429,2570,2571],{},"A node's override changed.",[429,2573,2574],{},[280,2575,2561],{},[411,2577,2578,2583,2586],{},[429,2579,2580],{},[280,2581,2582],{},"policy_override_changed",[429,2584,2585],{},"Its policy override changed.",[429,2587,2588],{},[280,2589,2590],{},"policy",[411,2592,2593,2598,2601],{},[429,2594,2595],{},[280,2596,2597],{},"notification_failed",[429,2599,2600],{},"The notification webhook failed twice.",[429,2602,2603,442,2606,442,2608,442,2610],{},[280,2604,2605],{},"event_type",[280,2607,1673],{},[280,2609,2394],{},[280,2611,1223],{},[400,2613,2615],{"id":2614},"notifications","Notifications",[276,2617,2618,2621,2622,2625],{},[280,2619,2620],{},"notify.yaml"," sends an HTTP ",[280,2623,2624],{},"POST"," to a webhook when an event you name\nhappens. Set it on the Settings screen, or edit the file:",[301,2627,2631],{"className":2628,"code":2629,"language":2630,"meta":306,"style":306},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","enabled: true\nurl: https:\u002F\u002Fhooks.example.com\u002Fabc123   # a secret; Kraft never shows it back\nbase_url: https:\u002F\u002Fkraft.example.com     # where links in the message point\nevents: [gate_requested, work_item_needs_human]\n","yaml",[280,2632,2633,2647,2659,2672],{"__ignoreMap":306},[310,2634,2635,2639,2643],{"class":312,"line":313},[310,2636,2638],{"class":2637},"swJcz","enabled",[310,2640,2642],{"class":2641},"sMK4o",":",[310,2644,2646],{"class":2645},"sfNiH"," true\n",[310,2648,2649,2651,2653,2656],{"class":312,"line":334},[310,2650,2167],{"class":2637},[310,2652,2642],{"class":2641},[310,2654,2655],{"class":320}," https:\u002F\u002Fhooks.example.com\u002Fabc123",[310,2657,2658],{"class":330},"   # a secret; Kraft never shows it back\n",[310,2660,2661,2664,2666,2669],{"class":312,"line":351},[310,2662,2663],{"class":2637},"base_url",[310,2665,2642],{"class":2641},[310,2667,2668],{"class":320}," https:\u002F\u002Fkraft.example.com",[310,2670,2671],{"class":330},"     # where links in the message point\n",[310,2673,2674,2677,2679,2682,2684,2687,2690],{"class":312,"line":375},[310,2675,2676],{"class":2637},"events",[310,2678,2642],{"class":2641},[310,2680,2681],{"class":2641}," [",[310,2683,1279],{"class":320},[310,2685,2686],{"class":2641},",",[310,2688,2689],{"class":320}," work_item_needs_human",[310,2691,2692],{"class":2641},"]\n",[405,2694,2695,2706],{},[408,2696,2697],{},[411,2698,2699,2701,2704],{},[414,2700,811],{},[414,2702,2703],{},"Default",[414,2705,814],{},[424,2707,2708,2725,2736,2748],{},[411,2709,2710,2714,2719],{},[429,2711,2712],{},[280,2713,2638],{},[429,2715,2716],{},[280,2717,2718],{},"false",[429,2720,2721,2722,2724],{},"Nothing is sent while this is off, or while ",[280,2723,2167],{}," is empty.",[411,2726,2727,2731,2733],{},[429,2728,2729],{},[280,2730,2167],{},[429,2732,628],{},[429,2734,2735],{},"The webhook.",[411,2737,2738,2742,2745],{},[429,2739,2740],{},[280,2741,2663],{},[429,2743,2744],{},"the address the server listens on",[429,2746,2747],{},"The start of the link in each message.",[411,2749,2750,2754,2759],{},[429,2751,2752],{},[280,2753,2676],{},[429,2755,2756],{},[280,2757,2758],{},"[gate_requested, work_item_needs_human]",[429,2760,2761],{},"Which event types send a message. Any type on this page works; Kraft does not check the names, so a typo sends nothing.",[276,2763,2764],{},"The body is JSON:",[301,2766,2770],{"className":2767,"code":2768,"language":2769,"meta":306,"style":306},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"work_item_id\": \"\u003Cwork-item-id>\",\n  \"title\": \"Fix the flaky login test\",\n  \"type\": \"gate_requested\",\n  \"gate\": \"spec_approval\",\n  \"url\": \"https:\u002F\u002Fkraft.example.com\u002Fwork-items\u002F\u003Cwork-item-id>\"\n}\n","json",[280,2771,2772,2777,2801,2820,2838,2858,2877],{"__ignoreMap":306},[310,2773,2774],{"class":312,"line":313},[310,2775,2776],{"class":2641},"{\n",[310,2778,2779,2782,2785,2788,2790,2793,2796,2798],{"class":312,"line":334},[310,2780,2781],{"class":2641},"  \"",[310,2783,286],{"class":2784},"spNyl",[310,2786,2787],{"class":2641},"\"",[310,2789,2642],{"class":2641},[310,2791,2792],{"class":2641}," \"",[310,2794,2795],{"class":320},"\u003Cwork-item-id>",[310,2797,2787],{"class":2641},[310,2799,2800],{"class":2641},",\n",[310,2802,2803,2805,2807,2809,2811,2813,2816,2818],{"class":312,"line":351},[310,2804,2781],{"class":2641},[310,2806,441],{"class":2784},[310,2808,2787],{"class":2641},[310,2810,2642],{"class":2641},[310,2812,2792],{"class":2641},[310,2814,2815],{"class":320},"Fix the flaky login test",[310,2817,2787],{"class":2641},[310,2819,2800],{"class":2641},[310,2821,2822,2824,2826,2828,2830,2832,2834,2836],{"class":312,"line":375},[310,2823,2781],{"class":2641},[310,2825,290],{"class":2784},[310,2827,2787],{"class":2641},[310,2829,2642],{"class":2641},[310,2831,2792],{"class":2641},[310,2833,1279],{"class":320},[310,2835,2787],{"class":2641},[310,2837,2800],{"class":2641},[310,2839,2841,2843,2845,2847,2849,2851,2854,2856],{"class":312,"line":2840},5,[310,2842,2781],{"class":2641},[310,2844,1011],{"class":2784},[310,2846,2787],{"class":2641},[310,2848,2642],{"class":2641},[310,2850,2792],{"class":2641},[310,2852,2853],{"class":320},"spec_approval",[310,2855,2787],{"class":2641},[310,2857,2800],{"class":2641},[310,2859,2861,2863,2865,2867,2869,2871,2874],{"class":312,"line":2860},6,[310,2862,2781],{"class":2641},[310,2864,2167],{"class":2784},[310,2866,2787],{"class":2641},[310,2868,2642],{"class":2641},[310,2870,2792],{"class":2641},[310,2872,2873],{"class":320},"https:\u002F\u002Fkraft.example.com\u002Fwork-items\u002F\u003Cwork-item-id>",[310,2875,2876],{"class":2641},"\"\n",[310,2878,2880],{"class":312,"line":2879},7,[310,2881,2882],{"class":2641},"}\n",[276,2884,2885,1577,2887,2890],{},[280,2886,1011],{},[280,2888,2889],{},"null"," for an event that is not about a gate.",[2892,2893,2894,2898,2904,2907],"ul",{},[2895,2896,2897],"li",{},"Kraft sends at most one message per work item every 10 seconds. A second\nmatching event in that window sends nothing.",[2895,2899,2900,2901,2903],{},"A send that times out after 5 seconds, errors, or gets a status of 400 or\nmore is tried once more after 2 seconds. If that fails too, Kraft records a\n",[280,2902,2597],{}," event on the item.",[2895,2905,2906],{},"Events that happen while the server is down send nothing when it comes back.",[2895,2908,2909,2910,2914,2915,2918,2919,2921,2923,2924,555],{},"The Settings screen's ",[2911,2912,2913],"strong",{},"Send a test"," posts ",[280,2916,2917],{},"\"type\": \"test\""," with a ",[280,2920,2889],{},[280,2922,286],{}," and ",[280,2925,1011],{},[2927,2928,2929],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":306,"searchDepth":334,"depth":334,"links":2931},[2932,2935,2936,2937,2938,2939,2940,2941,2942,2943],{"id":402,"depth":334,"text":403,"children":2933},[2934],{"id":547,"depth":351,"text":547},{"id":924,"depth":334,"text":925},{"id":1257,"depth":334,"text":1258},{"id":1598,"depth":334,"text":1599},{"id":1794,"depth":334,"text":1795},{"id":1985,"depth":334,"text":1986},{"id":2134,"depth":334,"text":2135},{"id":2362,"depth":334,"text":2363},{"id":2499,"depth":334,"text":2500},{"id":2614,"depth":334,"text":2615},"Every event type on a work item's timeline, its key payload fields, and the notification webhook that sends them.","md",null,{},true,{"title":240,"description":2944},"Eum1LqmyKhiQP2cX3qtwmOJADSiRy7zcLBHT325euf0",[2952,2954],{"title":236,"path":237,"stem":238,"description":2953,"children":-1},"Every tool the kraft MCP server serves, with its parameters and the kraft command that does the same.",{"title":10,"path":245,"stem":249,"description":2955,"children":-1},"Architecture, contributing, and security.",1790824542158]