chainlesschain 0.166.63 → 0.166.65

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 (161) hide show
  1. package/README.md +42 -17
  2. package/package.json +1 -1
  3. package/src/assets/web-panel/assets/{AIOps-CfPrpABR.js → AIOps-Byz17CTN.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-Bkv1erki.js → ActionButton-C5LiW2-J.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-fY_7epoU.js → Analytics-D1INcvZF.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-DegaN-aa.js → AppLayout-DZzHO1VV.js} +3 -3
  7. package/src/assets/web-panel/assets/{Artifacts-90-UNTVE.js → Artifacts-WfYQL6Ia.js} +1 -1
  8. package/src/assets/web-panel/assets/{Audit-BRQ1F4sA.js → Audit-DohBoGWO.js} +1 -1
  9. package/src/assets/web-panel/assets/{BackgroundAgents-Cb85uP7O.js → BackgroundAgents-Chtk-Hde.js} +1 -1
  10. package/src/assets/web-panel/assets/{Backup-CrLBSWQK.js → Backup-B813PuMz.js} +1 -1
  11. package/src/assets/web-panel/assets/{BaseInput-DditUW5B.js → BaseInput-DaDdWWgK.js} +1 -1
  12. package/src/assets/web-panel/assets/{Chat-0XozleDQ.js → Chat-D4pJ6oZ7.js} +4 -4
  13. package/src/assets/web-panel/assets/{ChatBubbleRenderer-8QXBJvgy.js → ChatBubbleRenderer-Cf3LLgDc.js} +1 -1
  14. package/src/assets/web-panel/assets/{Checkbox-C2Ck_3ju.js → Checkbox-Clo9TvO6.js} +1 -1
  15. package/src/assets/web-panel/assets/{Codegen-Chjw-MS7.js → Codegen-uejLg8Ih.js} +1 -1
  16. package/src/assets/web-panel/assets/{Col-B_w8_Oka.js → Col-B7nbx-iJ.js} +1 -1
  17. package/src/assets/web-panel/assets/{Community-XAqxPnXq.js → Community-FEyjPK1j.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compact-BX_3GJ3m.js → Compact-B6Fk0Kn6.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compliance-DE3kIC9z.js → Compliance-BQG8goUl.js} +1 -1
  20. package/src/assets/web-panel/assets/{Cowork-DPBYp1ey.js → Cowork-CbBeEfHp.js} +2 -2
  21. package/src/assets/web-panel/assets/{Cron-D9cknqzn.js → Cron-DPzlFcEZ.js} +2 -2
  22. package/src/assets/web-panel/assets/{Crosschain-BzHrGWY9.js → Crosschain-B8pWJrbg.js} +1 -1
  23. package/src/assets/web-panel/assets/{DID-BuD8TkZl.js → DID-gGQHUlFN.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dashboard-BbxMuZVK.js → Dashboard-C2TMFHrn.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dropdown-jq0ki-tE.js → Dropdown-BVPxGbll.js} +1 -1
  26. package/src/assets/web-panel/assets/{EmailListRenderer-RiMvINxT.js → EmailListRenderer-CNPxs0hd.js} +1 -1
  27. package/src/assets/web-panel/assets/{EvolutionSettings-DE-URi9i.js → EvolutionSettings-_XTiB7q1.js} +1 -1
  28. package/src/assets/web-panel/assets/{FamilyGuardDashboard-DV3ao62-.js → FamilyGuardDashboard-UyE3VWtI.js} +1 -1
  29. package/src/assets/web-panel/assets/{Federation-BF6BmBPg.js → Federation-CLt6FHK-.js} +1 -1
  30. package/src/assets/web-panel/assets/{FormItemContext-CKTX59j2.js → FormItemContext-CdNQPRPw.js} +1 -1
  31. package/src/assets/web-panel/assets/{GenericCardRenderer-DZkH-CTs.js → GenericCardRenderer-BJ0AMhrh.js} +1 -1
  32. package/src/assets/web-panel/assets/{Git-B5JYb-w-.js → Git-CQnvMfOM.js} +2 -2
  33. package/src/assets/web-panel/assets/{Governance-D3WfDZ6W.js → Governance-deYsHC-o.js} +1 -1
  34. package/src/assets/web-panel/assets/{Inference-DoSvfDUk.js → Inference-qaSck43z.js} +1 -1
  35. package/src/assets/web-panel/assets/{KnowledgeGraph-DUDIzN97.js → KnowledgeGraph-De0aJ3Ls.js} +1 -1
  36. package/src/assets/web-panel/assets/{Logs-JfJerfFD.js → Logs-ZtS98jCm.js} +2 -2
  37. package/src/assets/web-panel/assets/MarkdownRenderer-CTsYo9NN.js +1 -0
  38. package/src/assets/web-panel/assets/{Marketplace-BpVrOM_V.js → Marketplace-Byz3xCBN.js} +1 -1
  39. package/src/assets/web-panel/assets/{McpTools-CFnQdiSv.js → McpTools-DOZUUW6z.js} +2 -2
  40. package/src/assets/web-panel/assets/{Memory-Dxv81cNl.js → Memory-C33wC2hA.js} +2 -2
  41. package/src/assets/web-panel/assets/{MobileBridge-C92eX7PB.js → MobileBridge-zZe-T_6M.js} +1 -1
  42. package/src/assets/web-panel/assets/{MobileProjects-BUHw7Wox.js → MobileProjects-CRnUIume.js} +1 -1
  43. package/src/assets/web-panel/assets/{Mtc-D-G9H4A1.js → Mtc-C1xlRVAN.js} +4 -4
  44. package/src/assets/web-panel/assets/{MtcAudit-CAEaEtAz.js → MtcAudit-D0U07bIi.js} +2 -2
  45. package/src/assets/web-panel/assets/{Multisig-Cx_-X9HD.js → Multisig-DF8uvV3h.js} +3 -3
  46. package/src/assets/web-panel/assets/{NLProgramming-DRIKG4Xy.js → NLProgramming-bBPGAFlt.js} +1 -1
  47. package/src/assets/web-panel/assets/{Notes-CmL0vKUv.js → Notes-BHAaOsgg.js} +3 -3
  48. package/src/assets/web-panel/assets/{NotificationSettings-D2cQ5aQn.js → NotificationSettings-Cl0fG_rA.js} +1 -1
  49. package/src/assets/web-panel/assets/{OrderTableRenderer-CPfd7PNy.js → OrderTableRenderer-BEPAs8Zv.js} +1 -1
  50. package/src/assets/web-panel/assets/{Organization-EKqO46hz.js → Organization-BAxSwgk5.js} +4 -4
  51. package/src/assets/web-panel/assets/{Overflow-BOHjBwJo.js → Overflow-D68KubAu.js} +1 -1
  52. package/src/assets/web-panel/assets/{P2P-Dx4LdCE0.js → P2P-bhdT17zk.js} +2 -2
  53. package/src/assets/web-panel/assets/{PdhVaultBrowser-CgCt2xdT.js → PdhVaultBrowser-DqaO6wgH.js} +3 -3
  54. package/src/assets/web-panel/assets/{Permissions-DWjDeO7O.js → Permissions-Bq8fvkak.js} +4 -4
  55. package/src/assets/web-panel/assets/{PersonalDataHub-Bx4Od8pG.js → PersonalDataHub-BYd2JEic.js} +5 -5
  56. package/src/assets/web-panel/assets/{Pipeline-oKxws_Ch.js → Pipeline-Csg_ja69.js} +1 -1
  57. package/src/assets/web-panel/assets/{Privacy-Df1HVRKR.js → Privacy-lwxwLj4M.js} +1 -1
  58. package/src/assets/web-panel/assets/{ProjectInit-BraLwZT4.js → ProjectInit-BdBZkH8z.js} +2 -2
  59. package/src/assets/web-panel/assets/{ProjectSettings-CKru54M0.js → ProjectSettings-ClWgFy-K.js} +2 -2
  60. package/src/assets/web-panel/assets/{Projects-BEr7cJcS.js → Projects-Bu-qj8N1.js} +1 -1
  61. package/src/assets/web-panel/assets/{Providers-C8v30DU3.js → Providers-DEjxrxw3.js} +1 -1
  62. package/src/assets/web-panel/assets/{QrScannerModal-CPyNV-O5.js → QrScannerModal-eccy-8Vi.js} +1 -1
  63. package/src/assets/web-panel/assets/{QuickAsk-BLIew7A5.js → QuickAsk-Vx3uDvFg.js} +1 -1
  64. package/src/assets/web-panel/assets/{Recommend-DVjWmsPs.js → Recommend-CfUivNps.js} +1 -1
  65. package/src/assets/web-panel/assets/{RemoteSession-B4PNTaEf.js → RemoteSession-BU4gk7GI.js} +3 -3
  66. package/src/assets/web-panel/assets/{Reputation-D5HOV6oI.js → Reputation-CbPzdZ0C.js} +1 -1
  67. package/src/assets/web-panel/assets/{Row-DgCQom2M.js → Row-CYLrgfKA.js} +1 -1
  68. package/src/assets/web-panel/assets/{RssFeed-zvIcGHgz.js → RssFeed-DbY1oyuv.js} +2 -2
  69. package/src/assets/web-panel/assets/{Search-C-KbJP_z.js → Search-QeW41K5r.js} +1 -1
  70. package/src/assets/web-panel/assets/{Security-CasnI-Ld.js → Security-CJxf1kLZ.js} +3 -3
  71. package/src/assets/web-panel/assets/{Services-CR-pSlFv.js → Services-CFO9ySZc.js} +2 -2
  72. package/src/assets/web-panel/assets/{Skeleton-BB5On1b5.js → Skeleton-CQFjeQN0.js} +1 -1
  73. package/src/assets/web-panel/assets/{Skills-CC-wdQi-.js → Skills-CLLB4INW.js} +1 -1
  74. package/src/assets/web-panel/assets/{Sla-CPX5QKEu.js → Sla-DxeLIJk0.js} +1 -1
  75. package/src/assets/web-panel/assets/{SpeechSettings-Bifkl6Zz.js → SpeechSettings-D4FA9KYI.js} +1 -1
  76. package/src/assets/web-panel/assets/{SyncSettings-CdUVeB-S.js → SyncSettings-C6NOkcQK.js} +2 -2
  77. package/src/assets/web-panel/assets/{Tasks-BttwN3fs.js → Tasks-LmVPWDfQ.js} +1 -1
  78. package/src/assets/web-panel/assets/{Templates-CBHNbpQ7.js → Templates-BdEfUoVB.js} +1 -1
  79. package/src/assets/web-panel/assets/{Tenant-B90lEwSQ.js → Tenant-IUlESacN.js} +1 -1
  80. package/src/assets/web-panel/assets/{Terminal-u8KqitsA.js → Terminal-B9pDe7sn.js} +2 -2
  81. package/src/assets/web-panel/assets/{TimelineRenderer-CnEJMkJo.js → TimelineRenderer-ZCwB-Pki.js} +1 -1
  82. package/src/assets/web-panel/assets/{Tokens-CTM2OOJ_.js → Tokens-4qk16LX1.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trigger-Ca8NmmgU.js → Trigger-jXNyargn.js} +1 -1
  84. package/src/assets/web-panel/assets/{Trust-CI9GpUj2.js → Trust-D13PydtT.js} +1 -1
  85. package/src/assets/web-panel/assets/{UkeySign-BlMLGqKK.js → UkeySign-yPgws6mS.js} +1 -1
  86. package/src/assets/web-panel/assets/{VideoEditing-C8yCZrH0.js → VideoEditing-B329WjpG.js} +1 -1
  87. package/src/assets/web-panel/assets/{Wallet-BpuYrz8o.js → Wallet-T8VM-Ttm.js} +4 -4
  88. package/src/assets/web-panel/assets/{WebAuthn-DFpNfLG_.js → WebAuthn-XuRibrpP.js} +5 -5
  89. package/src/assets/web-panel/assets/{WorkflowEditor-BWhLoeU4.js → WorkflowEditor-D1Gwz3YR.js} +1 -1
  90. package/src/assets/web-panel/assets/{chat-Dwo4LC7E.js → chat-DjydtnT-.js} +1 -1
  91. package/src/assets/web-panel/assets/{colors-DkdGvKBf.js → colors-gFtBvPrr.js} +1 -1
  92. package/src/assets/web-panel/assets/{compact-item-1gI0lfs3.js → compact-item-CndxhGfx.js} +1 -1
  93. package/src/assets/web-panel/assets/{createContext-O9iHirtr.js → createContext-DnfGpd0L.js} +1 -1
  94. package/src/assets/web-panel/assets/devWarning-D60SbiD-.js +1 -0
  95. package/src/assets/web-panel/assets/{hasIn-DY1jo9BQ.js → hasIn-CmT5hRVW.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-E5Ar6dNV.js → index-B0WFjxWs.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-BmAK4o9I.js → index-BFif4Cev.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DTppQua6.js → index-BGlmPbl_.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-DwJBbK3Z.js → index-BNHdO6Jr.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-BgVO1aXv.js → index-BVM_w30N.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DwBcFhcc.js → index-BW3nWiu0.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-rkkMl4Lb.js → index-BXNUTiW8.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-rIJqtLz-.js → index-BlTcxT_L.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-BDwV_V5g.js → index-BsRKmb6k.js} +1 -1
  105. package/src/assets/web-panel/assets/index-C0yR4_7h.js +1 -0
  106. package/src/assets/web-panel/assets/{index-CBqSTwY9.js → index-C14jryXi.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-1AnBwAoM.js → index-C3HvYeA3.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-Dx51Am-0.js → index-C4Mqhmas.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-hRtVittm.js → index-CB27echm.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BumRAO-7.js → index-CRqz8TtI.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-tXjOuLZm.js → index-CZLDbPTa.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-DfFzjnA0.js → index-CgMKElUh.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-DNnaEzC5.js → index-CqpR0Des.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-B0TX-bLV.js → index-CuOx4Pbe.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-Bx4MNNMY.js → index-D2d7358Y.js} +1 -1
  116. package/src/assets/web-panel/assets/index-D4xuvo03.js +1 -0
  117. package/src/assets/web-panel/assets/{index-ETHEhWvI.js → index-D5na0B7G.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-DskEFn8M.js → index-D88-8bsB.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-qUbrqzvO.js → index-DGbKeg8G.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DwhJqZqM.js → index-DKyuE_Y2.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-DvRvwzc-.js → index-DUlubR4l.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-B5l7eb6E.js → index-DV2PR3Fa.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-D8fqsTHW.js → index-DV6NrfJx.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-zLOzCcxM.js → index-DaEPE2DC.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-nXoV4OCZ.js → index-Dbpk75MO.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-YnGvCu0P.js → index-DjY-3sMA.js} +3 -3
  127. package/src/assets/web-panel/assets/{index-B-kbagPi.js → index-DjcR-CwS.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-Bl6GfsQZ.js → index-DoBKSzqu.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-DCqPIE3G.js → index-DreYqebI.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-BgHG4f2K.js → index-DuAvYTmY.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-KUrBWzIM.js → index-HHP1zzo7.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-BsQkwBu2.js → index-_-wGLtAg.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-C4c0XaiT.js → index-ktN-K1Tf.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-zPpssHXA.js → index-zQf599Uq.js} +1 -1
  135. package/src/assets/web-panel/assets/{initDefaultProps-Du5HHTVt.js → initDefaultProps-KV3V-PNH.js} +1 -1
  136. package/src/assets/web-panel/assets/{motion-D9mAVPKP.js → motion-PFGQg7_X.js} +1 -1
  137. package/src/assets/web-panel/assets/{move-DPO_sFtt.js → move-Dnl79wq4.js} +1 -1
  138. package/src/assets/web-panel/assets/{mtc-parser-CnezVcXi.js → mtc-parser-Bwl5JH9V.js} +1 -1
  139. package/src/assets/web-panel/assets/{omit-DNpYMbet.js → omit-DCcTtM1l.js} +1 -1
  140. package/src/assets/web-panel/assets/{pickAttrs-BUFm_slL.js → pickAttrs-Cl6BjjDf.js} +1 -1
  141. package/src/assets/web-panel/assets/{placementArrow-DvwJtnzY.js → placementArrow-fdqhyo42.js} +1 -1
  142. package/src/assets/web-panel/assets/{responsiveObserve-CUWOh_KI.js → responsiveObserve-DYQpmcDW.js} +1 -1
  143. package/src/assets/web-panel/assets/{slide-bVHCUsdj.js → slide-C4l-VfO4.js} +1 -1
  144. package/src/assets/web-panel/assets/{statusUtils-FlOzOrxf.js → statusUtils-DYDw_dyZ.js} +1 -1
  145. package/src/assets/web-panel/assets/{styleChecker-C6CFXutA.js → styleChecker-BEsubSMu.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFlexGapSupport-BNGqO_E0.js → useFlexGapSupport-Cj82ggQ_.js} +1 -1
  147. package/src/assets/web-panel/assets/{useFs-DyKOrA27.js → useFs-B7L1eJ0V.js} +1 -1
  148. package/src/assets/web-panel/assets/{usePersonalDataHub-DZAqeMAJ.js → usePersonalDataHub-DVlJVD4d.js} +1 -1
  149. package/src/assets/web-panel/assets/{vnode-Do7fVasi.js → vnode-BBAbRN_Y.js} +1 -1
  150. package/src/assets/web-panel/assets/{zoom-DYkEmOT2.js → zoom-BYn48q-I.js} +1 -1
  151. package/src/assets/web-panel/index.html +1 -1
  152. package/src/data/changelog.json +26 -0
  153. package/src/lib/read-file-loop-guard.js +18 -15
  154. package/src/lib/remote-read-loop-guard.js +25 -18
  155. package/src/lib/task-progress-tracker.js +1 -1
  156. package/src/lib/tool-recovery-result.js +11 -0
  157. package/src/runtime/agent-core.js +22 -9
  158. package/src/assets/web-panel/assets/MarkdownRenderer-DXgA7cZm.js +0 -1
  159. package/src/assets/web-panel/assets/devWarning-axBqv361.js +0 -1
  160. package/src/assets/web-panel/assets/index-CAsOttsq.js +0 -1
  161. package/src/assets/web-panel/assets/index-MgEKheCh.js +0 -1
@@ -39,6 +39,7 @@ import {
39
39
  TaskProgressTracker,
40
40
  TASK_RECOVERY_TOOLS,
41
41
  } from "../lib/task-progress-tracker.js";
42
+ import { TOOL_RECOVERY_PAUSED_CODE } from "../lib/tool-recovery-result.js";
42
43
  import broker from "../lib/process-execution-broker/index.js";
43
44
  import os from "os";
44
45
  import { createHash, randomUUID } from "node:crypto";
@@ -14993,9 +14994,18 @@ export async function* agentLoop(messages, options) {
14993
14994
  const prInvestigationExhausted =
14994
14995
  prActionTask &&
14995
14996
  taskProgressTracker.explorationCalls >= PR_INVESTIGATION_LIMIT;
14997
+ // Keep read_file visible during task recovery so the model can request a
14998
+ // known, explicitly bounded section. Admission below still rejects broad
14999
+ // new-file reads and repeated covered ranges.
14996
15000
  const taskRecoveryTools = TASK_RECOVERY_TOOLS.filter(
14997
- (tool) => tool !== "read_file" || !readFileLoopGuard.hasRecoveryReads,
15001
+ (tool) =>
15002
+ tool !== "read_file" &&
15003
+ !remoteReadLoopGuard.hasScopedContinuation(tool),
14998
15004
  );
15005
+ const readToolRecoveryPaused =
15006
+ readRecoveryTurn &&
15007
+ !taskRecoveryTurn &&
15008
+ !readFileLoopGuard.hasEditRecoveryReads;
14999
15009
  if (newProgressIntervention) {
15000
15010
  lastTaskProgressIntervention = progressIntervention.key;
15001
15011
  // Reuse the existing warning event so CLI, REPL and IDE clients all show
@@ -15010,9 +15020,7 @@ export async function* agentLoop(messages, options) {
15010
15020
  };
15011
15021
  }
15012
15022
  const pausedTools = new Set([
15013
- ...(readRecoveryTurn && !readFileLoopGuard.hasEditRecoveryReads
15014
- ? ["read_file"]
15015
- : []),
15023
+ ...(readToolRecoveryPaused ? ["read_file"] : []),
15016
15024
  ...(taskRecoveryTurn ? taskRecoveryTools : []),
15017
15025
  ...remoteRecoveryTools,
15018
15026
  ...(prInvestigationExhausted
@@ -15125,13 +15133,13 @@ export async function* agentLoop(messages, options) {
15125
15133
  content:
15126
15134
  progressIntervention.guidance +
15127
15135
  (taskRecoveryTurn
15128
- ? ` Recovery remains active: ${taskRecoveryTools.join(", ")} are omitted until an actionable tool outcome. Only unfinished, already-started file scans may continue; new whole-file discovery is paused. Focused search, authorized changes and verification remain available.`
15136
+ ? ` Recovery remains active: ${taskRecoveryTools.join(", ")} are omitted until an actionable tool outcome. Unfinished scans and explicit target-section reads of at most 80 lines may continue; new whole-file discovery is paused. Focused search, authorized changes and verification remain available.`
15129
15137
  : ""),
15130
15138
  },
15131
15139
  ];
15132
15140
  contextMemoryTrustedSystemIndexes.push(callMessages.length - 1);
15133
15141
  }
15134
- if (readRecoveryTurn && !prInvestigationExhausted) {
15142
+ if (readToolRecoveryPaused && !prInvestigationExhausted) {
15135
15143
  callMessages = [
15136
15144
  ...callMessages,
15137
15145
  {
@@ -15909,7 +15917,9 @@ export async function* agentLoop(messages, options) {
15909
15917
  );
15910
15918
  const earlyAuthorityDenial =
15911
15919
  ((pausedTools.has(toolName) && !editRecoveryRead) ||
15912
- (readRecoveryTurn && toolName === "read_file" && !editRecoveryRead) ||
15920
+ (readToolRecoveryPaused &&
15921
+ toolName === "read_file" &&
15922
+ !editRecoveryRead) ||
15913
15923
  remoteReadLoopGuard.shouldPause(toolName, toolArgs) ||
15914
15924
  (taskRecoveryTurn &&
15915
15925
  toolName === "read_file" &&
@@ -15919,10 +15929,13 @@ export async function* agentLoop(messages, options) {
15919
15929
  path.resolve(toolContext.cwd || process.cwd(), toolArgs.path),
15920
15930
  toolArgs,
15921
15931
  )
15922
- ))
15932
+ )) ||
15933
+ (taskRecoveryTurn &&
15934
+ (toolName === "web_fetch" || toolName === "web_search") &&
15935
+ !remoteReadLoopGuard.canContinue(toolName, toolArgs))
15923
15936
  ? {
15924
15937
  success: false,
15925
- code: "CC_TOOL_RECOVERY_PAUSED",
15938
+ code: TOOL_RECOVERY_PAUSED_CODE,
15926
15939
  error: `${toolName} is paused for loop recovery and was not executed. Use retained findings for an authorized action or report the specific blocker; do not repeat or disguise this call.`,
15927
15940
  }
15928
15941
  : null) ||
@@ -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-YnGvCu0P.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 u(t,o,e,r,n,m){return c(),p("div",{class:"markdown-content",innerHTML:r.rendered},null,8,i)}const w=d(_,[["render",u],["__scopeId","data-v-0b0b9f63"],["__file","/tmp/cc-web-panel-ugikQQ/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{w as M};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-YnGvCu0P.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-B_w8_Oka.js";import{a0 as t}from"./index-YnGvCu0P.js";import"./vendor-Bn1JzzAn.js";import"./index-Dx51Am-0.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-DgCQom2M.js";import{a0 as t}from"./index-YnGvCu0P.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-CUWOh_KI.js";import"./useFlexGapSupport-BNGqO_E0.js";import"./styleChecker-C6CFXutA.js";import"./index-Dx51Am-0.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};