chainlesschain 0.166.104 → 0.166.105

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 (164) hide show
  1. package/README.md +14 -2
  2. package/package.json +2 -1
  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/assets/{AIOps-Bah3HREy.js → AIOps-CcD-AVDw.js} +1 -1
  6. package/src/assets/web-panel/assets/{ActionButton-DY2aeZMc.js → ActionButton-CYy-g36A.js} +1 -1
  7. package/src/assets/web-panel/assets/{Analytics-BFly8Xaa.js → Analytics-DPFDNaBL.js} +3 -3
  8. package/src/assets/web-panel/assets/{AppLayout-dp0Zz-JM.js → AppLayout-PVIuRdgN.js} +4 -4
  9. package/src/assets/web-panel/assets/{Artifacts-DcIg09ai.js → Artifacts-BXGD3bM-.js} +1 -1
  10. package/src/assets/web-panel/assets/{Audit-DkN-lsjZ.js → Audit-Bu5s_4tu.js} +1 -1
  11. package/src/assets/web-panel/assets/{BackgroundAgents-BjzgusLx.js → BackgroundAgents-BHmgpnzo.js} +1 -1
  12. package/src/assets/web-panel/assets/{Backup-CU8S6qu9.js → Backup-C872jURx.js} +1 -1
  13. package/src/assets/web-panel/assets/{BaseInput-B1pC2gjL.js → BaseInput-Bh7xO30H.js} +1 -1
  14. package/src/assets/web-panel/assets/{Chat-B6xFp6gD.js → Chat-DaacK53T.js} +6 -6
  15. package/src/assets/web-panel/assets/{ChatBubbleRenderer-DxNCLZ_X.js → ChatBubbleRenderer-PYrSKMM_.js} +1 -1
  16. package/src/assets/web-panel/assets/{Checkbox-QHw7Vc4U.js → Checkbox-Cnt7_8I2.js} +1 -1
  17. package/src/assets/web-panel/assets/{Codegen-gdecsfjg.js → Codegen-AZRz6kmW.js} +1 -1
  18. package/src/assets/web-panel/assets/{Col-B0_JmAmc.js → Col-BtOXzMFt.js} +1 -1
  19. package/src/assets/web-panel/assets/{Community-DRCcP5xR.js → Community-BFmFygS7.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compact-DZtoGzhX.js → Compact-2z5CfKpR.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compliance-BfNTvEnT.js → Compliance-B5hKrPVF.js} +1 -1
  22. package/src/assets/web-panel/assets/{Cowork-CDXTLm84.js → Cowork-CxEyp2ww.js} +3 -3
  23. package/src/assets/web-panel/assets/{Cron-Big35CbN.js → Cron-B-8f9_qF.js} +2 -2
  24. package/src/assets/web-panel/assets/{Crosschain-C8ArrAVr.js → Crosschain-XARMOcc4.js} +1 -1
  25. package/src/assets/web-panel/assets/{DID-D_77BI2O.js → DID-DwLtEKAe.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dashboard-D2SxTzEp.js → Dashboard-Cjw0L_iA.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dropdown-mR1-b9ud.js → Dropdown-BBGWIP7l.js} +1 -1
  28. package/src/assets/web-panel/assets/{EmailListRenderer-DPl7TE1c.js → EmailListRenderer-DG4kZFkm.js} +1 -1
  29. package/src/assets/web-panel/assets/{EvolutionSettings-BxRYLRSH.js → EvolutionSettings-D8vuNDde.js} +1 -1
  30. package/src/assets/web-panel/assets/{FamilyGuardDashboard-rnGtXJ5Z.js → FamilyGuardDashboard-COXCzDXI.js} +1 -1
  31. package/src/assets/web-panel/assets/{Federation-BpxenYK8.js → Federation-Btb-aMhW.js} +1 -1
  32. package/src/assets/web-panel/assets/{FormItemContext-Cz1kDf6l.js → FormItemContext-TO-E6l6e.js} +1 -1
  33. package/src/assets/web-panel/assets/{GenericCardRenderer-CGV3KN6U.js → GenericCardRenderer-BWXdJCT0.js} +1 -1
  34. package/src/assets/web-panel/assets/{Git-CIRP4UTx.js → Git-B6icGhEv.js} +2 -2
  35. package/src/assets/web-panel/assets/{Governance-DX4r8Vmt.js → Governance-C5Y__K6S.js} +1 -1
  36. package/src/assets/web-panel/assets/{Inference-DQKk02Hl.js → Inference-DZGEKnbN.js} +1 -1
  37. package/src/assets/web-panel/assets/{KnowledgeGraph-DdD6J-By.js → KnowledgeGraph--Kga5yvm.js} +1 -1
  38. package/src/assets/web-panel/assets/{Logs-DA2w-1_m.js → Logs-BXs3EPKj.js} +2 -2
  39. package/src/assets/web-panel/assets/MarkdownRenderer-BsSiyE-A.js +1 -0
  40. package/src/assets/web-panel/assets/{Marketplace-BsJ6_6KW.js → Marketplace-JSEAu0su.js} +1 -1
  41. package/src/assets/web-panel/assets/{McpTools-_6k30z6u.js → McpTools-BUBifkKP.js} +3 -3
  42. package/src/assets/web-panel/assets/{Memory-C0_dYY0A.js → Memory-Cb7sE4a-.js} +2 -2
  43. package/src/assets/web-panel/assets/{MobileBridge-CCTnVqiC.js → MobileBridge-BOzmmNV2.js} +1 -1
  44. package/src/assets/web-panel/assets/{MobileProjects-RZdxDSwC.js → MobileProjects-ClRlavdF.js} +1 -1
  45. package/src/assets/web-panel/assets/{Mtc-D4Ys8lvX.js → Mtc-DmMWErG1.js} +2 -2
  46. package/src/assets/web-panel/assets/{MtcAudit-BKTC--a2.js → MtcAudit-DnGkRVXF.js} +2 -2
  47. package/src/assets/web-panel/assets/{Multisig-CGR1qOe1.js → Multisig-C3mzascL.js} +3 -3
  48. package/src/assets/web-panel/assets/{NLProgramming-hKKD4qWb.js → NLProgramming-CrmMZZ1t.js} +1 -1
  49. package/src/assets/web-panel/assets/{Notes-pCn7Ec40.js → Notes-4S6uts9Q.js} +3 -3
  50. package/src/assets/web-panel/assets/{NotificationSettings-B9eEJXEs.js → NotificationSettings-gn3UrWwW.js} +1 -1
  51. package/src/assets/web-panel/assets/{OrderTableRenderer-CmJuhaT2.js → OrderTableRenderer-CDVAlBUf.js} +1 -1
  52. package/src/assets/web-panel/assets/{Organization-CcQbrnwW.js → Organization-fMlkdgpW.js} +4 -4
  53. package/src/assets/web-panel/assets/{Overflow-HmD4Mn72.js → Overflow-DGwCUPU1.js} +1 -1
  54. package/src/assets/web-panel/assets/{P2P-B7LIgx5H.js → P2P-BDGcpPmf.js} +2 -2
  55. package/src/assets/web-panel/assets/{PdhVaultBrowser-CXiHnBfX.js → PdhVaultBrowser-CccRPAB9.js} +3 -3
  56. package/src/assets/web-panel/assets/{Permissions-CQRI3y_l.js → Permissions-C33dNECx.js} +4 -4
  57. package/src/assets/web-panel/assets/{PersonalDataHub-1EeHmsy5.js → PersonalDataHub-BeqbCStc.js} +4 -4
  58. package/src/assets/web-panel/assets/{Pipeline-BFyoIdn8.js → Pipeline-CTmasgbQ.js} +1 -1
  59. package/src/assets/web-panel/assets/{Privacy-BxWthXMF.js → Privacy-ktd37BSp.js} +1 -1
  60. package/src/assets/web-panel/assets/{ProjectInit-DfigBilu.js → ProjectInit-KOGvQtBX.js} +2 -2
  61. package/src/assets/web-panel/assets/{ProjectSettings-CFmIcVc-.js → ProjectSettings-CUvH_hC6.js} +2 -2
  62. package/src/assets/web-panel/assets/{Projects-CR7H59v3.js → Projects-BvP_Os-1.js} +1 -1
  63. package/src/assets/web-panel/assets/{Providers-2ulom-76.js → Providers-C-hmLXlO.js} +1 -1
  64. package/src/assets/web-panel/assets/{QrScannerModal-BwhO07b_.js → QrScannerModal-DzG_rbSL.js} +1 -1
  65. package/src/assets/web-panel/assets/{QuickAsk-_Wg34OwF.js → QuickAsk-ShwiATg4.js} +1 -1
  66. package/src/assets/web-panel/assets/{Recommend-D_jq6Svg.js → Recommend-DkV8Ruep.js} +1 -1
  67. package/src/assets/web-panel/assets/{RemoteSession-BlzvEfsa.js → RemoteSession-Ca2dOx_G.js} +2 -2
  68. package/src/assets/web-panel/assets/{Reputation-9CTXHfL4.js → Reputation-DYA5BJ6A.js} +1 -1
  69. package/src/assets/web-panel/assets/{Row-DlCYCN-t.js → Row-DvGDgxLS.js} +1 -1
  70. package/src/assets/web-panel/assets/{RssFeed-BvlInFCH.js → RssFeed-DbwTBSPw.js} +3 -3
  71. package/src/assets/web-panel/assets/{Search-CfaUzKuL.js → Search-C5XAMQ9T.js} +1 -1
  72. package/src/assets/web-panel/assets/{Security-bAWgLyve.js → Security-CKWT60Qt.js} +3 -3
  73. package/src/assets/web-panel/assets/{Services-C4LOGACW.js → Services-CZvASlWL.js} +2 -2
  74. package/src/assets/web-panel/assets/{Skeleton-Dd0Uwh3_.js → Skeleton-DFkMVqws.js} +1 -1
  75. package/src/assets/web-panel/assets/{Skills-ZYF1kYCU.js → Skills-hslZ_GyP.js} +1 -1
  76. package/src/assets/web-panel/assets/{Sla-DpsmIaEo.js → Sla-BLW5rmZ5.js} +1 -1
  77. package/src/assets/web-panel/assets/{SpeechSettings-BBXoJ4yc.js → SpeechSettings-Cn4ffCi5.js} +1 -1
  78. package/src/assets/web-panel/assets/{SyncSettings-SOnROi2Y.js → SyncSettings-D1K0nJuo.js} +2 -2
  79. package/src/assets/web-panel/assets/{Tasks-HFA_ZlDk.js → Tasks-CCRu0xoN.js} +1 -1
  80. package/src/assets/web-panel/assets/{Templates-fsK-RCEc.js → Templates-L19GYuS4.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tenant-CuqYxamb.js → Tenant-CZ6HE3PF.js} +1 -1
  82. package/src/assets/web-panel/assets/{Terminal-GKlI2R5F.js → Terminal-BiAwzaBT.js} +2 -2
  83. package/src/assets/web-panel/assets/{TimelineRenderer-DMDMHLeY.js → TimelineRenderer-DRHSWQT5.js} +1 -1
  84. package/src/assets/web-panel/assets/{Tokens-BoV60rh3.js → Tokens-Cm-XATgh.js} +1 -1
  85. package/src/assets/web-panel/assets/{Trigger-CE344-Ws.js → Trigger-BVXtx3kn.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trust-DENwgkVc.js → Trust-Bb0TmkLJ.js} +1 -1
  87. package/src/assets/web-panel/assets/{UkeySign-FrcM7yfm.js → UkeySign-Dbt9R7l0.js} +1 -1
  88. package/src/assets/web-panel/assets/{VideoEditing-DAY9WaC2.js → VideoEditing-z0-Ti8eJ.js} +1 -1
  89. package/src/assets/web-panel/assets/{Wallet-BuUR5i82.js → Wallet-BZh31tI-.js} +4 -4
  90. package/src/assets/web-panel/assets/{WebAuthn-nfSQuq85.js → WebAuthn-DQ0yIr5K.js} +4 -4
  91. package/src/assets/web-panel/assets/{WorkflowEditor-DHhPOp9l.js → WorkflowEditor-DCt_yuWG.js} +1 -1
  92. package/src/assets/web-panel/assets/{chat-C4nsLzYy.js → chat-BLgtmFeS.js} +1 -1
  93. package/src/assets/web-panel/assets/{colors-BwXH0Wjn.js → colors-xU4UH8M1.js} +1 -1
  94. package/src/assets/web-panel/assets/{compact-item-uApFG30S.js → compact-item-C4w4v16T.js} +1 -1
  95. package/src/assets/web-panel/assets/{createContext-BpyYs4fe.js → createContext-CZM9hAaj.js} +1 -1
  96. package/src/assets/web-panel/assets/devWarning-BZUZgMkO.js +1 -0
  97. package/src/assets/web-panel/assets/{hasIn-MXCLi00p.js → hasIn-DvHqEpE7.js} +1 -1
  98. package/src/assets/web-panel/assets/index--_-pNhk0.js +1 -0
  99. package/src/assets/web-panel/assets/{index-BOhjapd5.js → index-55Rkd1KA.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CNjUPfJP.js → index-B0IvKEVO.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DucLR6YX.js → index-B4jIcYSv.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-Gz2rGWef.js → index-B64Vf-8H.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-IvgszJ3C.js → index-B6AQ2b5U.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-pgHGBAoF.js → index-BHK3CQHq.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-DE4W4vLO.js → index-BHg9NoJ5.js} +3 -3
  106. package/src/assets/web-panel/assets/{index-Dt-nq2eF.js → index-BIWumeQl.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-1LxX2IwJ.js → index-BRhD9RMV.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-nn22NSDK.js → index-BTxhDCtg.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-B7jojVc7.js → index-BaQZvM4m.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-CF0bUOP4.js → index-Bf8Wm4ks.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-ChUTKrOq.js → index-Bh14b1k0.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-pCIAE2yS.js → index-BkTKWAgq.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-pRpMLhMt.js → index-BlN5KPq6.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-XHBXtvqp.js → index-C6ZrTSw5.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-CwVvk2i7.js → index-C9YnZFv2.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-xLGf7f9K.js → index-CExiTobS.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-C_oOpXhP.js → index-CF9ebAIB.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-BaBwXpAp.js → index-CKugxsw3.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-Dn12gJJU.js → index-CPC7OGCe.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DLxKx5_J.js → index-CPDw21XY.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-CiIpIYhs.js → index-CQEzxnYS.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-Daco83me.js → index-CRLP56-W.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-CRmNdEk_.js → index-CYrQnkqA.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-DffWVpZv.js → index-Cm00787d.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-Btv--Nnt.js → index-CpiuuIww.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-S80LLjdx.js → index-CqDiY-jl.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-ugIUt5TL.js → index-CyV8fNBg.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-D3_tj06B.js → index-DGdLkss8.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-BEGMfaOo.js → index-DifMvnMQ.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-61CBBrHE.js → index-Ds1tM734.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-DTXi_gQh.js → index-Ds6wKTMh.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-Du01X9N9.js → index-QHmhwgfc.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-WKbnwbKa.js → index-SNV95Zen.js} +1 -1
  134. package/src/assets/web-panel/assets/index-ftwO31cp.js +1 -0
  135. package/src/assets/web-panel/assets/{index-B0P1Z_oa.js → index-n6SAUmmI.js} +1 -1
  136. package/src/assets/web-panel/assets/{index-Dkncxel3.js → index-wYRjvvbl.js} +1 -1
  137. package/src/assets/web-panel/assets/{initDefaultProps-C58CkKEo.js → initDefaultProps-C44ZER6c.js} +1 -1
  138. package/src/assets/web-panel/assets/{motion-BLWPO2NV.js → motion-DbNzzScd.js} +1 -1
  139. package/src/assets/web-panel/assets/{move-BgrFMwYp.js → move-BrRrDH2u.js} +1 -1
  140. package/src/assets/web-panel/assets/{mtc-parser-Cq2AuGzl.js → mtc-parser-DZ_T_Pw8.js} +1 -1
  141. package/src/assets/web-panel/assets/{omit-Bb-9L7if.js → omit-5QHHk_V3.js} +1 -1
  142. package/src/assets/web-panel/assets/{pickAttrs-vLmOxYr1.js → pickAttrs-BdxEl0G2.js} +1 -1
  143. package/src/assets/web-panel/assets/{placementArrow-BNySU_dJ.js → placementArrow-CGyD615D.js} +1 -1
  144. package/src/assets/web-panel/assets/{responsiveObserve-xnbwagnm.js → responsiveObserve-QqcWAQmN.js} +1 -1
  145. package/src/assets/web-panel/assets/{slide-BccbY5Cn.js → slide-BumQrJ5R.js} +1 -1
  146. package/src/assets/web-panel/assets/{statusUtils-DOp9d2-w.js → statusUtils-Pf64olM7.js} +1 -1
  147. package/src/assets/web-panel/assets/{styleChecker-Bu1w6ho9.js → styleChecker-DNwm5SQZ.js} +1 -1
  148. package/src/assets/web-panel/assets/{useFlexGapSupport-ZsUOrVdL.js → useFlexGapSupport-c3gLKs6e.js} +1 -1
  149. package/src/assets/web-panel/assets/{useFs-C0zpzKtO.js → useFs-TzTd6NDM.js} +1 -1
  150. package/src/assets/web-panel/assets/{usePersonalDataHub-DO1OdgXK.js → usePersonalDataHub-BP5E_0Fe.js} +1 -1
  151. package/src/assets/web-panel/assets/{vnode-jTIRyhR5.js → vnode-CVEkRfZU.js} +1 -1
  152. package/src/assets/web-panel/assets/{zoom-DKvS7-Qs.js → zoom-C18X_8TJ.js} +1 -1
  153. package/src/assets/web-panel/index.html +1 -1
  154. package/src/data/changelog.json +13 -0
  155. package/src/lib/coding-task-guidance.js +13 -0
  156. package/src/lib/file-import-diagnostics.js +246 -0
  157. package/src/lib/transport-error-details.js +83 -0
  158. package/src/runtime/agent-core.js +137 -2
  159. package/src/runtime/headless-runner.js +83 -49
  160. package/src/runtime/headless-stream.js +8 -2
  161. package/src/assets/web-panel/assets/MarkdownRenderer-C9aSGETh.js +0 -1
  162. package/src/assets/web-panel/assets/devWarning-Bk6HGn3N.js +0 -1
  163. package/src/assets/web-panel/assets/index-Bb1LPYdi.js +0 -1
  164. package/src/assets/web-panel/assets/index-C-FsTuFG.js +0 -1
@@ -23,7 +23,9 @@
23
23
  */
24
24
 
25
25
  import { randomUUID } from "node:crypto";
26
+ import { transportErrorDetails } from "../lib/transport-error-details.js";
26
27
  import { captureAgentExecutionPolicy } from "../lib/agent-execution-policy.js";
28
+ import { HERMETIC_CODING_SYSTEM_PROMPT } from "../lib/coding-task-guidance.js";
27
29
  import { bootstrap } from "./bootstrap.js";
28
30
  import {
29
31
  buildSystemPrompt,
@@ -1223,8 +1225,9 @@ async function runAgentHeadlessInWorkspace(
1223
1225
  const loaded = loadHooks({ cwd, settingsFile: options.settingsFile });
1224
1226
  // Fold in installed plugins' hooks/hooks.json (Phase 3.3c) — plugins ADD
1225
1227
  // to the user's settings hooks, never replace them.
1226
- const { mergePluginHooks } =
1227
- await import("../lib/plugin-runtime/hooks.js");
1228
+ const { mergePluginHooks } = await import(
1229
+ "../lib/plugin-runtime/hooks.js"
1230
+ );
1228
1231
  const effectiveHooks = mergePluginHooks(
1229
1232
  attachAuthorityErrors(loaded.hooks, loaded.authorityErrors),
1230
1233
  { cwd },
@@ -1265,8 +1268,9 @@ async function runAgentHeadlessInWorkspace(
1265
1268
  // the run, so no explicit restore is needed.
1266
1269
  if (!hermeticExecution) {
1267
1270
  try {
1268
- const { applyPluginBinPath } =
1269
- await import("../lib/plugin-runtime/bin.js");
1271
+ const { applyPluginBinPath } = await import(
1272
+ "../lib/plugin-runtime/bin.js"
1273
+ );
1270
1274
  applyPluginBinPath({ cwd });
1271
1275
  } catch {
1272
1276
  /* best-effort — plugin bin PATH never blocks a headless run */
@@ -1277,8 +1281,9 @@ async function runAgentHeadlessInWorkspace(
1277
1281
  // keys not already set; the process exits at the end so no restore is needed.
1278
1282
  if (!hermeticExecution) {
1279
1283
  try {
1280
- const { applyPluginSettingsEnv } =
1281
- await import("../lib/plugin-runtime/settings.js");
1284
+ const { applyPluginSettingsEnv } = await import(
1285
+ "../lib/plugin-runtime/settings.js"
1286
+ );
1282
1287
  applyPluginSettingsEnv({ cwd });
1283
1288
  } catch {
1284
1289
  /* best-effort — plugin settings never block a headless run */
@@ -1412,8 +1417,9 @@ async function runAgentHeadlessInWorkspace(
1412
1417
  if (isHeadlessConfigCommand(prompt)) {
1413
1418
  const cm = await import("../lib/config-manager.js");
1414
1419
  const { getConfigPath } = await import("../lib/paths.js");
1415
- const { runConfigDirective } =
1416
- await import("../lib/headless-config-command.js");
1420
+ const { runConfigDirective } = await import(
1421
+ "../lib/headless-config-command.js"
1422
+ );
1417
1423
  const { text, isError } = runConfigDirective(prompt, {
1418
1424
  configManager: cm,
1419
1425
  getConfigPath,
@@ -1489,8 +1495,9 @@ async function runAgentHeadlessInWorkspace(
1489
1495
  model = macro.model;
1490
1496
  writeErr(` command: model → ${model}\n`);
1491
1497
  try {
1492
- const { maybeWarnDeprecatedModel } =
1493
- await import("../lib/model-deprecation.js");
1498
+ const { maybeWarnDeprecatedModel } = await import(
1499
+ "../lib/model-deprecation.js"
1500
+ );
1494
1501
  maybeWarnDeprecatedModel({ model });
1495
1502
  } catch {
1496
1503
  // deprecation notice is best-effort
@@ -1527,8 +1534,9 @@ async function runAgentHeadlessInWorkspace(
1527
1534
 
1528
1535
  // ── Permission + tool resolution ──────────────────────────────────────
1529
1536
  if (managedSettings) {
1530
- const { assertManagedPermissionMode } =
1531
- await import("../lib/settings-loader.cjs");
1537
+ const { assertManagedPermissionMode } = await import(
1538
+ "../lib/settings-loader.cjs"
1539
+ );
1532
1540
  assertManagedPermissionMode(options.permissionMode, managedSettings);
1533
1541
  }
1534
1542
  const perm = resolvePermissionMode(options.permissionMode);
@@ -1988,8 +1996,9 @@ async function runAgentHeadlessInWorkspace(
1988
1996
  : null;
1989
1997
  if (!hermeticExecution && !instructionExcludes) {
1990
1998
  try {
1991
- const { readStringArraySetting } =
1992
- await import("../lib/settings-loader.cjs");
1999
+ const { readStringArraySetting } = await import(
2000
+ "../lib/settings-loader.cjs"
2001
+ );
1993
2002
  const fromSettings = readStringArraySetting("instructionExcludes", {
1994
2003
  cwd,
1995
2004
  settingsFile: options.settingsFile,
@@ -2014,10 +2023,9 @@ async function runAgentHeadlessInWorkspace(
2014
2023
  : options.skillLoader ||
2015
2024
  new CLISkillLoader(captureSkillRuntimeDependencies(options));
2016
2025
  const systemContent = hermeticExecution
2017
- ? composeSystemPrompt(
2018
- "You are a hermetic code fixer. The exposed file tools are the complete tool surface. Inspect and mutate only the exact paths authorized in the user request, then return a concise completion message.",
2019
- { projectMemory: false },
2020
- )
2026
+ ? composeSystemPrompt(HERMETIC_CODING_SYSTEM_PROMPT, {
2027
+ projectMemory: false,
2028
+ })
2021
2029
  : composeSystemPrompt(
2022
2030
  buildSystemPrompt(cwd, {
2023
2031
  additionalDirectories,
@@ -2044,8 +2052,9 @@ async function runAgentHeadlessInWorkspace(
2044
2052
  // settings.json UserPromptSubmit hooks. block → abort the run; context → inject.
2045
2053
  if (settingsHooks) {
2046
2054
  try {
2047
- const { runUserPromptSubmitHooks } =
2048
- await import("../lib/settings-hook-events.js");
2055
+ const { runUserPromptSubmitHooks } = await import(
2056
+ "../lib/settings-hook-events.js"
2057
+ );
2049
2058
  const ups = await runUserPromptSubmitHooks(settingsHooks, {
2050
2059
  prompt: userContent,
2051
2060
  cwd,
@@ -2075,8 +2084,9 @@ async function runAgentHeadlessInWorkspace(
2075
2084
  let instructionsLoadedContext = null;
2076
2085
  if (settingsHooks && _loadedInstructions) {
2077
2086
  try {
2078
- const { runInstructionsLoadedHooks } =
2079
- await import("../lib/settings-hook-events.js");
2087
+ const { runInstructionsLoadedHooks } = await import(
2088
+ "../lib/settings-hook-events.js"
2089
+ );
2080
2090
  instructionsLoadedContext = (
2081
2091
  await runInstructionsLoadedHooks(settingsHooks, {
2082
2092
  files: _loadedInstructions.files,
@@ -2093,8 +2103,9 @@ async function runAgentHeadlessInWorkspace(
2093
2103
  let sessionStartContext = null;
2094
2104
  if (settingsHooks) {
2095
2105
  try {
2096
- const { runSessionStartHooks } =
2097
- await import("../lib/settings-hook-events.js");
2106
+ const { runSessionStartHooks } = await import(
2107
+ "../lib/settings-hook-events.js"
2108
+ );
2098
2109
  sessionStartContext = (
2099
2110
  await runSessionStartHooks(settingsHooks, {
2100
2111
  source: resumeId ? "resume" : "startup",
@@ -2114,8 +2125,9 @@ async function runAgentHeadlessInWorkspace(
2114
2125
  // back up" — e.g. re-run a workspace sanity check. Observe-only, best-effort.
2115
2126
  if (settingsHooks && resumeId && history.length > 0) {
2116
2127
  try {
2117
- const { runObserveHooks } =
2118
- await import("../lib/settings-hook-events.js");
2128
+ const { runObserveHooks } = await import(
2129
+ "../lib/settings-hook-events.js"
2130
+ );
2119
2131
  await runObserveHooks(
2120
2132
  settingsHooks,
2121
2133
  "SessionResume",
@@ -2367,8 +2379,9 @@ async function runAgentHeadlessInWorkspace(
2367
2379
  // --add-dir → workspaceRootDirs = [cwd] and this is a no-op. Best-effort.
2368
2380
  if (hostMcp?.mcpClient && additionalDirectories.length > 0) {
2369
2381
  try {
2370
- const { notifyMcpRootsChanged, workspaceRootDirs } =
2371
- await import("../repl/add-dir.js");
2382
+ const { notifyMcpRootsChanged, workspaceRootDirs } = await import(
2383
+ "../repl/add-dir.js"
2384
+ );
2372
2385
  notifyMcpRootsChanged(
2373
2386
  [hostMcp.mcpClient],
2374
2387
  workspaceRootDirs(options.cwd || process.cwd(), additionalDirectories),
@@ -2476,8 +2489,9 @@ async function runAgentHeadlessInWorkspace(
2476
2489
  error.code = "CC_REMOTE_APPROVAL_GATE_UNAVAILABLE";
2477
2490
  throw error;
2478
2491
  }
2479
- const { startHeadlessRemoteApproval } =
2480
- await import("../lib/remote-approval-bridge.js");
2492
+ const { startHeadlessRemoteApproval } = await import(
2493
+ "../lib/remote-approval-bridge.js"
2494
+ );
2481
2495
  _remoteApproval = await (
2482
2496
  deps.startHeadlessRemoteApproval || startHeadlessRemoteApproval
2483
2497
  )({
@@ -2508,8 +2522,9 @@ async function runAgentHeadlessInWorkspace(
2508
2522
  let _collectorEnabled = false;
2509
2523
  if (!hermeticExecution) {
2510
2524
  try {
2511
- const { isOtlpCollectorEnabled } =
2512
- await import("../lib/observability/index.js");
2525
+ const { isOtlpCollectorEnabled } = await import(
2526
+ "../lib/observability/index.js"
2527
+ );
2513
2528
  _collectorEnabled = isOtlpCollectorEnabled();
2514
2529
  } catch {
2515
2530
  _collectorEnabled = false;
@@ -2517,8 +2532,9 @@ async function runAgentHeadlessInWorkspace(
2517
2532
  }
2518
2533
  if (!hermeticExecution && (options.otlp || _collectorEnabled)) {
2519
2534
  try {
2520
- const { TelemetryRecorder } =
2521
- await import("../lib/telemetry/span-recorder.js");
2535
+ const { TelemetryRecorder } = await import(
2536
+ "../lib/telemetry/span-recorder.js"
2537
+ );
2522
2538
  _otlpRecorder = new TelemetryRecorder({ serviceName: "cc-agent" });
2523
2539
  } catch {
2524
2540
  _otlpRecorder = null; // telemetry is best-effort, never blocks the run
@@ -2532,8 +2548,9 @@ async function runAgentHeadlessInWorkspace(
2532
2548
  let _hookSupervisor = null;
2533
2549
  if (settingsHooks) {
2534
2550
  try {
2535
- const { AsyncHookSupervisor } =
2536
- await import("../lib/async-hook-supervisor.js");
2551
+ const { AsyncHookSupervisor } = await import(
2552
+ "../lib/async-hook-supervisor.js"
2553
+ );
2537
2554
  _hookSupervisor = new AsyncHookSupervisor({
2538
2555
  persistStats: true,
2539
2556
  // Durably park failed-rewake signals keyed by session so a crash before
@@ -3027,8 +3044,9 @@ async function runAgentHeadlessInWorkspace(
3027
3044
  if (options.goal !== undefined && options.goal !== false) {
3028
3045
  try {
3029
3046
  const explicitId = typeof options.goal === "string" ? options.goal : null;
3030
- const { resolveActiveGoal, linkSession } =
3031
- await import("../lib/goal-store.js");
3047
+ const { resolveActiveGoal, linkSession } = await import(
3048
+ "../lib/goal-store.js"
3049
+ );
3032
3050
  const goal = (deps.resolveActiveGoal || resolveActiveGoal)({
3033
3051
  explicitId,
3034
3052
  sessionId,
@@ -3832,6 +3850,7 @@ async function runAgentHeadlessInWorkspace(
3832
3850
  autoRewake &&
3833
3851
  _hookSupervisor &&
3834
3852
  !stopForCost &&
3853
+ endReason !== "deferred-mutation-unresolved" &&
3835
3854
  endReason !== "max_turns" &&
3836
3855
  endReason !== "cost-budget-exhausted"
3837
3856
  ) {
@@ -3886,7 +3905,8 @@ async function runAgentHeadlessInWorkspace(
3886
3905
  !goalEngine.done &&
3887
3906
  !stopForCost &&
3888
3907
  endReason !== "cost-budget-exhausted" &&
3889
- endReason !== "max_turns"
3908
+ endReason !== "max_turns" &&
3909
+ endReason !== "deferred-mutation-unresolved"
3890
3910
  ) {
3891
3911
  // Feed this turn's usage DELTA so the engine's totals equal the run's
3892
3912
  // cumulative usage (recordTurnUsage accumulates).
@@ -4004,17 +4024,23 @@ async function runAgentHeadlessInWorkspace(
4004
4024
  : sessionBudgetFailed
4005
4025
  ? "error_session_budget"
4006
4026
  : "error";
4027
+ const transportDetails =
4028
+ errorSubtype === "error" ? transportErrorDetails(err) : undefined;
4029
+ const diagnosticFields = transportDetails
4030
+ ? { error_details: transportDetails }
4031
+ : {};
4007
4032
  if (isStream) {
4008
4033
  emitStream({
4009
4034
  type: "result",
4010
4035
  subtype: errorSubtype,
4011
4036
  is_error: true,
4012
4037
  error: message,
4038
+ ...diagnosticFields,
4013
4039
  });
4014
4040
  } else if (isJson) {
4015
4041
  writeOut(
4016
- JSON.stringify(
4017
- buildResultEnvelope({
4042
+ JSON.stringify({
4043
+ ...buildResultEnvelope({
4018
4044
  subtype: errorSubtype,
4019
4045
  isError: true,
4020
4046
  result: message,
@@ -4026,7 +4052,8 @@ async function runAgentHeadlessInWorkspace(
4026
4052
  denials,
4027
4053
  compactionDegradations,
4028
4054
  }),
4029
- ) + "\n",
4055
+ ...diagnosticFields,
4056
+ }) + "\n",
4030
4057
  );
4031
4058
  } else {
4032
4059
  writeErr(`Error: ${message}\n`);
@@ -4077,8 +4104,9 @@ async function runAgentHeadlessInWorkspace(
4077
4104
  await cleanupDeadline.run("settings-hooks", async () => {
4078
4105
  if (settingsHooks) {
4079
4106
  try {
4080
- const { runObserveHooks } =
4081
- await import("../lib/settings-hook-events.js");
4107
+ const { runObserveHooks } = await import(
4108
+ "../lib/settings-hook-events.js"
4109
+ );
4082
4110
  const stopPayload = {
4083
4111
  reason: pipeState.closed ? "pipe_closed" : endReason,
4084
4112
  cwd,
@@ -4208,7 +4236,11 @@ async function runAgentHeadlessInWorkspace(
4208
4236
  const exhausted =
4209
4237
  endReason === "budget-exhausted" || endReason === "max_turns";
4210
4238
  const costStopped = endReason === "cost-budget-exhausted";
4211
- let isError = exhausted || costStopped || endReason === "no-response";
4239
+ let isError =
4240
+ exhausted ||
4241
+ costStopped ||
4242
+ endReason === "no-response" ||
4243
+ endReason === "deferred-mutation-unresolved";
4212
4244
  let subtype = exhausted
4213
4245
  ? "error_max_turns"
4214
4246
  : costStopped
@@ -4355,8 +4387,9 @@ async function runAgentHeadlessInWorkspace(
4355
4387
  emitStream({ type: "denials_summary", count: denials.length, denials });
4356
4388
  }
4357
4389
  try {
4358
- const { appendRecentDenials } =
4359
- await import("../lib/permission-denial-store.js");
4390
+ const { appendRecentDenials } = await import(
4391
+ "../lib/permission-denial-store.js"
4392
+ );
4360
4393
  appendRecentDenials(denials, {
4361
4394
  sessionId,
4362
4395
  permissionMode: options.permissionMode || "default",
@@ -4429,8 +4462,9 @@ async function runAgentHeadlessInWorkspace(
4429
4462
  }
4430
4463
  if (_collectorEnabled) {
4431
4464
  try {
4432
- const { exportTelemetryRecorder } =
4433
- await import("../lib/observability/index.js");
4465
+ const { exportTelemetryRecorder } = await import(
4466
+ "../lib/observability/index.js"
4467
+ );
4434
4468
  exportTelemetryRecorder(_otlpRecorder);
4435
4469
  } catch {
4436
4470
  // Telemetry is observational only and never changes the agent result.
@@ -17,6 +17,7 @@
17
17
  */
18
18
 
19
19
  import { randomUUID } from "node:crypto";
20
+ import { transportErrorDetails } from "../lib/transport-error-details.js";
20
21
  import { captureAgentExecutionPolicy } from "../lib/agent-execution-policy.js";
21
22
  import { TaskWorklog } from "../lib/context-memory-kernel/task-worklog-port.js";
22
23
  import { isProxy } from "node:util/types";
@@ -5546,6 +5547,7 @@ async function runAgentHeadlessStreamInWorkspace(
5546
5547
  },
5547
5548
  );
5548
5549
  } catch (err) {
5550
+ const turnWasAborted = currentAbort?.signal.aborted === true;
5549
5551
  currentAbort = null;
5550
5552
  if (err?.code === AGENT_EVOLUTION_INGRESS_FAILED_CODE) {
5551
5553
  emit({
@@ -5623,8 +5625,9 @@ async function runAgentHeadlessStreamInWorkspace(
5623
5625
  sawError = true;
5624
5626
  break;
5625
5627
  }
5626
- const isAbort =
5627
- err?.name === "AbortError" || /abort/i.test(err?.message || "");
5628
+ // Providers can abort their own transport/timeouts, even with AbortError
5629
+ // or ABORT_ERR. Only our owned signals establish user/caller cancellation.
5630
+ const isAbort = turnWasAborted || options.signal?.aborted === true;
5628
5631
  if (isAbort && !options.signal?.aborted) {
5629
5632
  // User-initiated turn interrupt — not an error; no assistant message
5630
5633
  // is recorded (the dangling user turn is fine for the next exchange).
@@ -5653,11 +5656,13 @@ async function runAgentHeadlessStreamInWorkspace(
5653
5656
  continue;
5654
5657
  }
5655
5658
  if (isAbort) break; // outer options.signal — caller is shutting down
5659
+ const transportDetails = transportErrorDetails(err);
5656
5660
  emit({
5657
5661
  type: "result",
5658
5662
  subtype: "error",
5659
5663
  is_error: true,
5660
5664
  error: err?.message || String(err),
5665
+ ...(transportDetails ? { error_details: transportDetails } : {}),
5661
5666
  turn: turns,
5662
5667
  });
5663
5668
  sawError = true;
@@ -5770,6 +5775,7 @@ async function runAgentHeadlessStreamInWorkspace(
5770
5775
  exhausted ||
5771
5776
  costStopped ||
5772
5777
  outcome.endReason === "no-response" ||
5778
+ outcome.endReason === "deferred-mutation-unresolved" ||
5773
5779
  Boolean(persistenceFailure);
5774
5780
  if (isError) sawError = true;
5775
5781
  const transcriptRefs = !persistenceFailure
@@ -1 +0,0 @@
1
- import{P as c,J as p,b as s}from"./vendor-Bn1JzzAn.js";import{r as a}from"./markdown-Yo_c6Krv.js";import{_ as d}from"./index-DE4W4vLO.js";const _={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(t,{expose:o}){o();const e=t,r=s(()=>a(e.content||"")),n={props:e,rendered:r,computed:s,get renderMarkdown(){return a}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},i=["innerHTML"];function m(t,o,e,r,n,u){return c(),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-C4oDSZ/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{w as M};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-DE4W4vLO.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-B0_JmAmc.js";import{a0 as t}from"./index-DE4W4vLO.js";import"./vendor-Bn1JzzAn.js";import"./index-pgHGBAoF.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-DlCYCN-t.js";import{a0 as t}from"./index-DE4W4vLO.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-xnbwagnm.js";import"./useFlexGapSupport-ZsUOrVdL.js";import"./styleChecker-Bu1w6ho9.js";import"./index-pgHGBAoF.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};