chainlesschain 0.166.117 → 0.166.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +26 -4
  2. package/package.json +3 -3
  3. package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
  4. package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
  5. package/src/assets/web-panel/.build-hash +1 -1
  6. package/src/assets/web-panel/assets/{AIOps-C9tSCImB.js → AIOps-BGySwMIP.js} +1 -1
  7. package/src/assets/web-panel/assets/{ActionButton-CXKExmT_.js → ActionButton-Chn7fBLr.js} +1 -1
  8. package/src/assets/web-panel/assets/{Analytics-DE8WBWHo.js → Analytics-ORH7UkGa.js} +3 -3
  9. package/src/assets/web-panel/assets/{AppLayout-BdpwNM08.js → AppLayout-8xV4jWjP.js} +4 -4
  10. package/src/assets/web-panel/assets/{Artifacts-94TQpe38.js → Artifacts-26SBK-x-.js} +1 -1
  11. package/src/assets/web-panel/assets/{Audit-DdDEv5Ej.js → Audit-CtXpqbXg.js} +1 -1
  12. package/src/assets/web-panel/assets/{BackgroundAgents-TU9nlV7j.js → BackgroundAgents-C5zLvQis.js} +1 -1
  13. package/src/assets/web-panel/assets/{Backup-C0GPoUUq.js → Backup-C93xY4vO.js} +1 -1
  14. package/src/assets/web-panel/assets/{BaseInput-iyrVn2I6.js → BaseInput-DpVCHfAn.js} +1 -1
  15. package/src/assets/web-panel/assets/{Chat-Dqo8spwp.js → Chat-DM0LblR2.js} +5 -5
  16. package/src/assets/web-panel/assets/{ChatBubbleRenderer-CDqHSzc4.js → ChatBubbleRenderer-unlQUF1T.js} +1 -1
  17. package/src/assets/web-panel/assets/{Checkbox-BF_XJvQi.js → Checkbox-BsAt3cKR.js} +1 -1
  18. package/src/assets/web-panel/assets/{Codegen-5tUWoOa9.js → Codegen-E_kp4KFd.js} +1 -1
  19. package/src/assets/web-panel/assets/{Col-BQxSeRvG.js → Col-6msR3T6I.js} +1 -1
  20. package/src/assets/web-panel/assets/{Community-B2Ra7w-J.js → Community-PyX9c5D-.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compact-GjxJwlr0.js → Compact-7G1bVDSH.js} +1 -1
  22. package/src/assets/web-panel/assets/{Compliance-BTUP6RTA.js → Compliance-DcHN7GlD.js} +1 -1
  23. package/src/assets/web-panel/assets/{Cowork-DiwfL16s.js → Cowork-WUIHJYDx.js} +2 -2
  24. package/src/assets/web-panel/assets/{Cron-1ceOo5ux.js → Cron-CWgCbptg.js} +2 -2
  25. package/src/assets/web-panel/assets/{Crosschain-aHYxLu0u.js → Crosschain-BzKZ6roD.js} +1 -1
  26. package/src/assets/web-panel/assets/{DID-eeTjzOLV.js → DID-r7zxeItn.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dashboard-CT3fpkvX.js → Dashboard-D3pBiN2H.js} +2 -2
  28. package/src/assets/web-panel/assets/{Dropdown-B3UpOy-N.js → Dropdown-C4otRJlZ.js} +1 -1
  29. package/src/assets/web-panel/assets/{EmailListRenderer-Ba2Rvoru.js → EmailListRenderer-CzDTC8lm.js} +1 -1
  30. package/src/assets/web-panel/assets/{EvolutionSettings-CGtn93on.js → EvolutionSettings-DGkXiIs-.js} +1 -1
  31. package/src/assets/web-panel/assets/{FamilyGuardDashboard-C0IUdHQt.js → FamilyGuardDashboard-BKdEyuiR.js} +1 -1
  32. package/src/assets/web-panel/assets/{Federation-1QIDwemn.js → Federation-dsI-xcpf.js} +1 -1
  33. package/src/assets/web-panel/assets/{FormItemContext-NGbSsdje.js → FormItemContext-CEEb1fMR.js} +1 -1
  34. package/src/assets/web-panel/assets/{GenericCardRenderer-DzVZc2Ba.js → GenericCardRenderer-D_mfO3Ts.js} +1 -1
  35. package/src/assets/web-panel/assets/{Git-B_1TDbSr.js → Git-CBwr2ZI3.js} +2 -2
  36. package/src/assets/web-panel/assets/{Governance-BDl_ySyI.js → Governance-D-Wy2Jjr.js} +1 -1
  37. package/src/assets/web-panel/assets/{Inference-CAp-wcCK.js → Inference-B4Yk_IRx.js} +1 -1
  38. package/src/assets/web-panel/assets/{KnowledgeGraph-DRjRcxul.js → KnowledgeGraph-DoI7bi6m.js} +1 -1
  39. package/src/assets/web-panel/assets/{Logs-qSuwMwk7.js → Logs-Ce1IiKAj.js} +2 -2
  40. package/src/assets/web-panel/assets/MarkdownRenderer-GND_8y0V.js +1 -0
  41. package/src/assets/web-panel/assets/{Marketplace-DfiXL6UO.js → Marketplace-CsIEByzK.js} +1 -1
  42. package/src/assets/web-panel/assets/{McpTools-D9rIvFjN.js → McpTools-_DRzjcIn.js} +2 -2
  43. package/src/assets/web-panel/assets/{Memory-D-p7yDzj.js → Memory-zvLpyi__.js} +2 -2
  44. package/src/assets/web-panel/assets/{MobileBridge-D0XT5B6m.js → MobileBridge-DXd1ik2Z.js} +1 -1
  45. package/src/assets/web-panel/assets/{MobileProjects-CL9cHVIk.js → MobileProjects-DKh2q-Y9.js} +1 -1
  46. package/src/assets/web-panel/assets/{Mtc-CME4kDmC.js → Mtc-Ct-fhtIx.js} +2 -2
  47. package/src/assets/web-panel/assets/{MtcAudit-BjGOXFnn.js → MtcAudit-J4zY3Oqk.js} +2 -2
  48. package/src/assets/web-panel/assets/{Multisig-CSzc53e0.js → Multisig-B2HJMCKe.js} +3 -3
  49. package/src/assets/web-panel/assets/{NLProgramming-BYjZnaH8.js → NLProgramming-CwcSmU4q.js} +1 -1
  50. package/src/assets/web-panel/assets/{Notes-BUPOYE0C.js → Notes-Da53L6wb.js} +3 -3
  51. package/src/assets/web-panel/assets/{NotificationSettings-BK8YADru.js → NotificationSettings-BxhufdrA.js} +1 -1
  52. package/src/assets/web-panel/assets/{OrderTableRenderer-B5F8bnWt.js → OrderTableRenderer-BoFwohAi.js} +1 -1
  53. package/src/assets/web-panel/assets/{Organization-B0WNlhMd.js → Organization-MIsMrUes.js} +4 -4
  54. package/src/assets/web-panel/assets/{Overflow-CED6ZO87.js → Overflow-Dy2P4v3q.js} +1 -1
  55. package/src/assets/web-panel/assets/{P2P-CBdc8fkP.js → P2P-CD9Sxn2y.js} +2 -2
  56. package/src/assets/web-panel/assets/{PdhVaultBrowser-DuauYi03.js → PdhVaultBrowser-BvBWgfG0.js} +3 -3
  57. package/src/assets/web-panel/assets/{Permissions-kfgY0ukN.js → Permissions-CwOlDRis.js} +4 -4
  58. package/src/assets/web-panel/assets/{PersonalDataHub-CDY3I1Do.js → PersonalDataHub-CZYaxEpv.js} +3 -3
  59. package/src/assets/web-panel/assets/{Pipeline-B9x0wKSK.js → Pipeline-kLU7PUbB.js} +1 -1
  60. package/src/assets/web-panel/assets/{Privacy-Cqhcr_Qv.js → Privacy-BVRycSiI.js} +1 -1
  61. package/src/assets/web-panel/assets/{ProjectInit-CFhoyo57.js → ProjectInit-DP3pr7uJ.js} +2 -2
  62. package/src/assets/web-panel/assets/{ProjectSettings-DCBjV2Hm.js → ProjectSettings-CACaDYjs.js} +2 -2
  63. package/src/assets/web-panel/assets/{Projects-C51w0LnM.js → Projects-CB1k4zTC.js} +1 -1
  64. package/src/assets/web-panel/assets/{Providers-BuCIWZY1.js → Providers-D7Y9WHRE.js} +1 -1
  65. package/src/assets/web-panel/assets/{QrScannerModal-CEXNL5CB.js → QrScannerModal-CeP8xzs1.js} +1 -1
  66. package/src/assets/web-panel/assets/{QuickAsk-DgK8aLAU.js → QuickAsk-iJVFrhZ2.js} +1 -1
  67. package/src/assets/web-panel/assets/{Recommend-BxEYQRAs.js → Recommend-DmTpnagw.js} +1 -1
  68. package/src/assets/web-panel/assets/{RemoteSession-PRsxNsYU.js → RemoteSession-C6ek8Uni.js} +2 -2
  69. package/src/assets/web-panel/assets/{Reputation-S-tQH70r.js → Reputation-CPfwc9de.js} +1 -1
  70. package/src/assets/web-panel/assets/{Row-U1Ws3CJl.js → Row-C1wwtSMJ.js} +1 -1
  71. package/src/assets/web-panel/assets/{RssFeed-BftCyeii.js → RssFeed-BiDJsqaH.js} +3 -3
  72. package/src/assets/web-panel/assets/{Search-o4gK0cPy.js → Search-BF6Aon95.js} +1 -1
  73. package/src/assets/web-panel/assets/{Security-U2ZRpsbA.js → Security-Bps0XnV4.js} +3 -3
  74. package/src/assets/web-panel/assets/{Services-D0tRjWl_.js → Services-uf92smGR.js} +2 -2
  75. package/src/assets/web-panel/assets/{Skeleton-DzZ8TFsB.js → Skeleton-DQd4eVWW.js} +1 -1
  76. package/src/assets/web-panel/assets/{Skills-B1cC7rju.js → Skills-DgamiYa5.js} +1 -1
  77. package/src/assets/web-panel/assets/{Sla-CtIHOR0J.js → Sla-CF1IVIrm.js} +1 -1
  78. package/src/assets/web-panel/assets/{SpeechSettings-CD8ZlQpW.js → SpeechSettings-Bzxmjbpc.js} +1 -1
  79. package/src/assets/web-panel/assets/{SyncSettings-BilFQWQk.js → SyncSettings-B8zKauiq.js} +2 -2
  80. package/src/assets/web-panel/assets/{Tasks-Bmg2qLXl.js → Tasks-DPKV_xSt.js} +1 -1
  81. package/src/assets/web-panel/assets/{Templates-D6yofyC1.js → Templates-BikeSZIF.js} +1 -1
  82. package/src/assets/web-panel/assets/{Tenant-BzttD-Gp.js → Tenant-CEaUaDkJ.js} +1 -1
  83. package/src/assets/web-panel/assets/{Terminal-DyRXeYuH.js → Terminal-ZPgOSQ_q.js} +3 -3
  84. package/src/assets/web-panel/assets/{TimelineRenderer-Bdmkx-Tr.js → TimelineRenderer-DmyB4Udk.js} +1 -1
  85. package/src/assets/web-panel/assets/{Tokens-10RcVAVJ.js → Tokens-g85Pm5TO.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trigger-CKV-9DdV.js → Trigger-D202hx9a.js} +1 -1
  87. package/src/assets/web-panel/assets/{Trust-BEc-sW1q.js → Trust-DzvQYVFy.js} +1 -1
  88. package/src/assets/web-panel/assets/{UkeySign-BSql8piX.js → UkeySign-KRzwddVg.js} +1 -1
  89. package/src/assets/web-panel/assets/{VideoEditing-C4OH2f4s.js → VideoEditing-IRBXLO2z.js} +1 -1
  90. package/src/assets/web-panel/assets/{Wallet-BSSvWKmv.js → Wallet-DSf5KPgQ.js} +4 -4
  91. package/src/assets/web-panel/assets/{WebAuthn-LxIzXo9d.js → WebAuthn-DNPxLTCc.js} +5 -5
  92. package/src/assets/web-panel/assets/{WorkflowEditor-DWwdfcte.js → WorkflowEditor-C3wAtVcK.js} +1 -1
  93. package/src/assets/web-panel/assets/{addon-fit-CK6X9sAG.js → addon-fit-CbkjSUJl.js} +1 -1
  94. package/src/assets/web-panel/assets/{chat-DWxYYLD5.js → chat-q3XXUtv2.js} +1 -1
  95. package/src/assets/web-panel/assets/{colors-BxEcQqtg.js → colors-CF54SNei.js} +1 -1
  96. package/src/assets/web-panel/assets/{compact-item-DNbezFOJ.js → compact-item-BaRkvZuT.js} +1 -1
  97. package/src/assets/web-panel/assets/{createContext-DaJXc5nx.js → createContext-CDR9hsfs.js} +1 -1
  98. package/src/assets/web-panel/assets/devWarning-1LO-NplX.js +1 -0
  99. package/src/assets/web-panel/assets/{hasIn-BMrw3sg3.js → hasIn-DlC--S8R.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DpSp97J8.js → index-B0Ptc7yu.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DzZHBzCb.js → index-B0V9rgdu.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-DEvdSKT4.js → index-BEiUlFKb.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-pzYLf5qu.js → index-BJO0n1LQ.js} +1 -1
  104. package/src/assets/web-panel/assets/index-BLaJsev4.js +1 -0
  105. package/src/assets/web-panel/assets/index-BLmviChG.js +1 -0
  106. package/src/assets/web-panel/assets/{index-2c0bL3SE.js → index-BU5DJqk7.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-Dr18agDl.js → index-BY-Tf3OM.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-T4T84G6X.js → index-BZrE0Go8.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-LRb0QX6S.js → index-BizdX2X5.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-B9b6UaZl.js → index-C87Yr3h1.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-BAV07GDK.js → index-C9Wypz9e.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-B_b9_6wQ.js → index-CAoG_E-q.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-NEW5EN2w.js → index-CAxSyMrF.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-Dwg38xTG.js → index-CC5HjNM6.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-Bs2QyMPQ.js → index-CNZQEZ9g.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-BR4nWOmR.js → index-CPvIhha6.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-hPy_f08G.js → index-CR_wqMGy.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-IX0g0s2t.js → index-CSClXoB3.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-cCqCEa9X.js → index-CZ8azVgB.js} +3 -3
  120. package/src/assets/web-panel/assets/{index-C25ig6EV.js → index-Ccc5z8eJ.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-7zzLqfvI.js → index-CeiKbM3a.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-CpwgF7vh.js → index-Cl6av3X7.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BNZDGV2q.js → index-CtGfeD7E.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-6W0V5G2t.js → index-Ctid12Gq.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-BaByEdBj.js → index-D0H-N0uG.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-BCCd8Rj6.js → index-D0vIgprF.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-CL-36X3A.js → index-D4wUDFRg.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DL0k35f0.js → index-DJFipyK7.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-BcuytRTa.js → index-DX2REKNp.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-Cm9DYzhC.js → index-Dc3gD0cw.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-Bum_aSyd.js → index-DiQzer2R.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-CaxzeSIM.js → index-DntKLOs9.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-cKBpcInt.js → index-Dplhl6gh.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-Ca2hwPMo.js → index-Dq8q_PWB.js} +1 -1
  135. package/src/assets/web-panel/assets/{index-DarVV5yG.js → index-IVQdOBNN.js} +1 -1
  136. package/src/assets/web-panel/assets/{index-rFaCnjXi.js → index-Kerduyao.js} +1 -1
  137. package/src/assets/web-panel/assets/{index-VD-dTYQE.js → index-W6cLGjpW.js} +1 -1
  138. package/src/assets/web-panel/assets/{index-CiEdfbB9.js → index-qZDNFll9.js} +1 -1
  139. package/src/assets/web-panel/assets/{initDefaultProps-BWVLgWhF.js → initDefaultProps-Ccz7v71u.js} +1 -1
  140. package/src/assets/web-panel/assets/{markdown-Yo_c6Krv.js → markdown-Bq2x0XsR.js} +1 -1
  141. package/src/assets/web-panel/assets/markdown-DUKxbhE4.js +51 -0
  142. package/src/assets/web-panel/assets/{motion-KJZ1xfDE.js → motion-BlCLpVDp.js} +1 -1
  143. package/src/assets/web-panel/assets/{move-DGqU6H7M.js → move-B80G7fLU.js} +1 -1
  144. package/src/assets/web-panel/assets/{mtc-parser-Dg0xkI5J.js → mtc-parser-Djw08NJh.js} +1 -1
  145. package/src/assets/web-panel/assets/{omit-B6RnMJAQ.js → omit-Bg_G1eUr.js} +1 -1
  146. package/src/assets/web-panel/assets/{pickAttrs-Ctw2i3jb.js → pickAttrs-Df9zYUg2.js} +1 -1
  147. package/src/assets/web-panel/assets/{placementArrow-D3F3x8Jm.js → placementArrow-DjCDLhJ4.js} +1 -1
  148. package/src/assets/web-panel/assets/{responsiveObserve-W6eHE0nM.js → responsiveObserve--Naz7NgY.js} +1 -1
  149. package/src/assets/web-panel/assets/{slide-BlFf8sY5.js → slide-CHn3ald-.js} +1 -1
  150. package/src/assets/web-panel/assets/{statusUtils-Cd6LMwmy.js → statusUtils-BiGwoIK_.js} +1 -1
  151. package/src/assets/web-panel/assets/{styleChecker-Bg5-U4Y1.js → styleChecker-Zf2dQx1j.js} +1 -1
  152. package/src/assets/web-panel/assets/{useFlexGapSupport-DTkLS3tn.js → useFlexGapSupport-sLES8nyD.js} +1 -1
  153. package/src/assets/web-panel/assets/{useFs-CwYGzoBt.js → useFs-DV1Hl4qu.js} +1 -1
  154. package/src/assets/web-panel/assets/{usePersonalDataHub-PCgFQXZP.js → usePersonalDataHub-CZXr2Qxg.js} +1 -1
  155. package/src/assets/web-panel/assets/{vnode-CJM7MkrB.js → vnode-e8Eo3Oyl.js} +1 -1
  156. package/src/assets/web-panel/assets/{xterm-BZcWGsqw.js → xterm-zbskxxGA.js} +1 -1
  157. package/src/assets/web-panel/assets/{zoom-CP0mgaFi.js → zoom-B8A6xKMF.js} +1 -1
  158. package/src/assets/web-panel/index.html +1 -1
  159. package/src/data/changelog.json +15 -2
  160. package/src/harness/jsonl-session-store.js +2 -1
  161. package/src/lib/artifact-store.js +129 -20
  162. package/src/lib/bounded-artifact-file-read.js +128 -46
  163. package/src/lib/evolution/agent-evolution-ingress.js +41 -7
  164. package/src/lib/evolution/agent-evolution-runtime-composition.js +65 -27
  165. package/src/lib/evolution/evidence-json-text.js +65 -3
  166. package/src/lib/evolution/evolution-artifact-ports.js +1005 -83
  167. package/src/lib/evolution/evolution-evidence-artifact-adapter.js +59 -15
  168. package/src/lib/evolution/evolution-evidence-projector.js +35 -3
  169. package/src/lib/evolution/evolution-evidence-storage-layout.js +115 -0
  170. package/src/lib/evolution/evolution-file-witness.js +7 -3
  171. package/src/lib/evolution/evolution-ledger-file-manifest-catalog.js +6 -2
  172. package/src/lib/evolution/evolution-ledger-file-manifest-head-store.js +6 -2
  173. package/src/lib/evolution/evolution-ledger.js +226 -55
  174. package/src/lib/evolution/evolution-private-storage.js +20 -0
  175. package/src/lib/evolution/evolution-run-ledger-adapter.js +298 -11
  176. package/src/lib/evolution/evolution-windows-directory-durability.js +215 -32
  177. package/src/lib/evolution/local-ui-evolution-runtime.js +3 -38
  178. package/src/lib/evolution/local-ui-signing-authority.js +69 -0
  179. package/src/lib/ollama-provider-fetch.js +33 -0
  180. package/src/lib/provider-stream.js +14 -13
  181. package/src/lib/session-history-origins.js +71 -32
  182. package/src/lib/session-message-provenance.js +26 -2
  183. package/src/lib/session-runtime-retention.js +10 -1
  184. package/src/lib/session-transcript-migration.js +67 -12
  185. package/src/lib/storage-failure-cause-codes.js +449 -0
  186. package/src/runtime/agent-core.js +54 -33
  187. package/src/runtime/headless-stream.js +89 -10
  188. package/src/assets/web-panel/assets/MarkdownRenderer-BgnYTegK.js +0 -1
  189. package/src/assets/web-panel/assets/devWarning-CRyXoGo9.js +0 -1
  190. package/src/assets/web-panel/assets/index-C-W0Ntk_.js +0 -1
  191. package/src/assets/web-panel/assets/index-CCk_qhBx.js +0 -1
  192. package/src/assets/web-panel/assets/markdown-CsiA8-E5.js +0 -50
@@ -18,6 +18,7 @@
18
18
 
19
19
  import { randomUUID } from "node:crypto";
20
20
  import { transportErrorDetails } from "../lib/transport-error-details.js";
21
+ import { storageFailureCauseSuffix } from "../lib/storage-failure-cause-codes.js";
21
22
  import { captureAgentExecutionPolicy } from "../lib/agent-execution-policy.js";
22
23
  import { resolveLlmConnection } from "../lib/llm-connection-resolution.js";
23
24
  import { TaskWorklog } from "../lib/context-memory-kernel/task-worklog-port.js";
@@ -155,7 +156,11 @@ import {
155
156
  isVerifiedSessionHostSnapshot,
156
157
  readSessionHostResumeState,
157
158
  } from "../lib/session-host-snapshot.js";
158
- import { acquireSessionHostLease } from "../lib/session-host-lease.js";
159
+ import {
160
+ acquireSessionHostLease,
161
+ SESSION_HOST_LEASE_FENCED_CODE,
162
+ SESSION_HOST_LEASE_UNAVAILABLE_CODE,
163
+ } from "../lib/session-host-lease.js";
159
164
  import {
160
165
  normalizeSessionBudgetRootConfig,
161
166
  openProductionSessionBudgetRoot,
@@ -1842,7 +1847,14 @@ async function runAgentHeadlessStreamInWorkspace(
1842
1847
  worklogError = message;
1843
1848
  }
1844
1849
  };
1850
+ let hostLeaseFailureReported = false;
1845
1851
  const emit = (event) => {
1852
+ if (
1853
+ event.type === "result" &&
1854
+ event.is_error === true &&
1855
+ sessionHostLease?.signal?.aborted
1856
+ )
1857
+ hostLeaseFailureReported = true;
1846
1858
  updateWorklog((log) => log.record(event));
1847
1859
  streamCoalescer.emit(event);
1848
1860
  };
@@ -3787,10 +3799,17 @@ async function runAgentHeadlessStreamInWorkspace(
3787
3799
  })),
3788
3800
  "readVerifiedProjection",
3789
3801
  );
3790
- return requireSynchronousRecoveryResult(
3802
+ const appended = requireSynchronousRecoveryResult(
3791
3803
  store.appendToolRoundsIfMessagesMatch(sessionId, messages, expected),
3792
3804
  "appendToolRoundsIfMessagesMatch",
3793
3805
  );
3806
+ if (typeof appended?.hash !== "string" || !appended.hash) {
3807
+ throw Object.assign(
3808
+ new Error("Tool round settlement did not return its durable head"),
3809
+ { code: "CC_SESSION_TOOL_ROUND_SETTLEMENT_HEAD_UNKNOWN" },
3810
+ );
3811
+ }
3812
+ return appended;
3794
3813
  };
3795
3814
  const settleToolRoundsForHost = (phase, clientMessageId = null) => {
3796
3815
  try {
@@ -4004,6 +4023,26 @@ async function runAgentHeadlessStreamInWorkspace(
4004
4023
  : null;
4005
4024
 
4006
4025
  let sawError = false;
4026
+ const reportHostLeaseFailure = () => {
4027
+ if (!sessionHostLease?.signal?.aborted) return false;
4028
+ sawError = true;
4029
+ if (!hostLeaseFailureReported) {
4030
+ emit({
4031
+ type: "result",
4032
+ subtype: "error",
4033
+ is_error: true,
4034
+ code:
4035
+ sessionHostLease.signal.reason?.code ===
4036
+ SESSION_HOST_LEASE_FENCED_CODE
4037
+ ? SESSION_HOST_LEASE_FENCED_CODE
4038
+ : SESSION_HOST_LEASE_UNAVAILABLE_CODE,
4039
+ error:
4040
+ "Session host authority was lost; refresh the session before continuing",
4041
+ session_id: sessionId,
4042
+ });
4043
+ }
4044
+ return true;
4045
+ };
4007
4046
  let evolutionIngressFailed = false;
4008
4047
  let terminalPersistenceFailure = null;
4009
4048
  const persistUsageEvent = persist
@@ -4319,7 +4358,12 @@ async function runAgentHeadlessStreamInWorkspace(
4319
4358
  break;
4320
4359
  }
4321
4360
  if (parsed == null) break; // stdin closed
4322
- sessionHostLease?.assert?.();
4361
+ try {
4362
+ sessionHostLease?.assert?.();
4363
+ } catch (error) {
4364
+ if (!reportHostLeaseFailure()) throw error;
4365
+ break;
4366
+ }
4323
4367
  if (turnBindingPersistenceError) {
4324
4368
  emitTurnBindingFailure();
4325
4369
  sawError = true;
@@ -5436,13 +5480,31 @@ async function runAgentHeadlessStreamInWorkspace(
5436
5480
  }
5437
5481
 
5438
5482
  if (evolutionIngress !== null) {
5439
- await evolutionIngress.ingestUserPrompt({
5440
- content: parsed.text,
5441
- imageCount: parsed.images?.length || 0,
5442
- sessionId,
5443
- source: "headless-stream",
5444
- turn: turns + 1,
5445
- });
5483
+ try {
5484
+ await evolutionIngress.ingestUserPrompt({
5485
+ content: parsed.text,
5486
+ imageCount: parsed.images?.length || 0,
5487
+ sessionId,
5488
+ source: "headless-stream",
5489
+ turn: turns + 1,
5490
+ });
5491
+ } catch (error) {
5492
+ if (error?.code !== AGENT_EVOLUTION_INGRESS_FAILED_CODE) throw error;
5493
+ evolutionIngressFailed = true;
5494
+ sawError = true;
5495
+ emit({
5496
+ type: "result",
5497
+ subtype: "error_evolution_ingress",
5498
+ is_error: true,
5499
+ code: AGENT_EVOLUTION_INGRESS_FAILED_CODE,
5500
+ error:
5501
+ "Agent evolution ingress failed before the user turn was admitted" +
5502
+ storageFailureCauseSuffix(error),
5503
+ session_id: sessionId,
5504
+ turn: turns + 1,
5505
+ });
5506
+ break;
5507
+ }
5446
5508
  }
5447
5509
  if (worklogHistory) {
5448
5510
  const historyPart =
@@ -5651,6 +5713,13 @@ async function runAgentHeadlessStreamInWorkspace(
5651
5713
  } catch (err) {
5652
5714
  const turnWasAborted = currentAbort?.signal.aborted === true;
5653
5715
  currentAbort = null;
5716
+ if (sessionHostLease?.signal?.aborted) {
5717
+ // Keep the established interrupted-tool repair. A fenced persistence
5718
+ // failure may already emit the terminal result; never emit it twice.
5719
+ if (repairAndSettleToolRoundsForHost("after-model"))
5720
+ reportHostLeaseFailure();
5721
+ break;
5722
+ }
5654
5723
  if (err?.code === AGENT_EVOLUTION_INGRESS_FAILED_CODE) {
5655
5724
  evolutionIngressFailed = true;
5656
5725
  // Ingress can reject the next model request after a tool round has
@@ -5790,6 +5859,13 @@ async function runAgentHeadlessStreamInWorkspace(
5790
5859
  break;
5791
5860
  }
5792
5861
  currentAbort = null;
5862
+ if (sessionHostLease?.signal?.aborted) {
5863
+ // A provider may finish successfully after observing cancellation late.
5864
+ // Lost host authority still forbids reporting that turn as successful.
5865
+ if (repairAndSettleToolRoundsForHost("after-model"))
5866
+ reportHostLeaseFailure();
5867
+ break;
5868
+ }
5793
5869
 
5794
5870
  if (outcome.endReason === "user-input-pending") {
5795
5871
  if (!settleToolRoundsForHost("after-model")) break;
@@ -5967,6 +6043,7 @@ async function runAgentHeadlessStreamInWorkspace(
5967
6043
  }
5968
6044
  }
5969
6045
 
6046
+ reportHostLeaseFailure();
5970
6047
  streamCleanup.setReason(
5971
6048
  pipeState.closed
5972
6049
  ? "pipe_closed"
@@ -5983,6 +6060,8 @@ async function runAgentHeadlessStreamInWorkspace(
5983
6060
  await evolutionIngress.complete();
5984
6061
  }
5985
6062
 
6063
+ reportHostLeaseFailure();
6064
+
5986
6065
  if (!pipeState.closed) {
5987
6066
  emit({ type: "system", subtype: "end", session_id: sessionId, turns });
5988
6067
  }
@@ -1 +0,0 @@
1
- import{P as a,J as p,b as c}from"./vendor-Bn1JzzAn.js";import{r as s}from"./markdown-Yo_c6Krv.js";import{_ as d}from"./index-cCqCEa9X.js";const _={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(t,{expose:o}){o();const e=t,r=c(()=>s(e.content||"")),n={props:e,rendered:r,computed:c,get renderMarkdown(){return s}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},i=["innerHTML"];function m(t,o,e,r,n,u){return a(),p("div",{class:"markdown-content",innerHTML:r.rendered},null,8,i)}const w=d(_,[["render",m],["__scopeId","data-v-0b0b9f63"],["__file","/tmp/cc-web-panel-zhcFUW/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{w as M};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-cCqCEa9X.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-U1Ws3CJl.js";import{a0 as t}from"./index-cCqCEa9X.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-W6eHE0nM.js";import"./useFlexGapSupport-DTkLS3tn.js";import"./styleChecker-Bg5-U4Y1.js";import"./index-IX0g0s2t.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-BQxSeRvG.js";import{a0 as t}from"./index-cCqCEa9X.js";import"./vendor-Bn1JzzAn.js";import"./index-IX0g0s2t.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};