chainlesschain 0.166.30 → 0.166.32

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 (162) hide show
  1. package/README.md +4 -2
  2. package/package.json +1 -1
  3. package/src/assets/web-panel/assets/{AIOps-D0L1OM_i.js → AIOps-DKUOkYex.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-CeZUkX_V.js → ActionButton-B3luFrPA.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-P_7CIOew.js → Analytics-jbZ8R2S3.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-NuqDYrlO.js → AppLayout-CFS2vzPS.js} +5 -5
  7. package/src/assets/web-panel/assets/{Artifacts-D1BTQqJM.js → Artifacts-sS0Qpy5q.js} +1 -1
  8. package/src/assets/web-panel/assets/{Audit-D9XL6DVf.js → Audit-CZ7kfjCG.js} +1 -1
  9. package/src/assets/web-panel/assets/{BackgroundAgents-Ci2DB2gV.js → BackgroundAgents-BpWc5SgP.js} +1 -1
  10. package/src/assets/web-panel/assets/{Backup-CreK3Yqn.js → Backup-DpEYnvoy.js} +1 -1
  11. package/src/assets/web-panel/assets/{BaseInput-BkIRKFXX.js → BaseInput-kFzUGLnl.js} +1 -1
  12. package/src/assets/web-panel/assets/{Chat-BoJjlCDT.js → Chat-BP_8aAfJ.js} +6 -6
  13. package/src/assets/web-panel/assets/ChatBubbleRenderer-yFeZ15D4.js +1 -0
  14. package/src/assets/web-panel/assets/{Checkbox-BbA932P3.js → Checkbox-HR1HQ06d.js} +1 -1
  15. package/src/assets/web-panel/assets/{Codegen-BS_f3kQy.js → Codegen-DxAqDPjT.js} +1 -1
  16. package/src/assets/web-panel/assets/{Col-BJ1tzpRh.js → Col-BaCLih7J.js} +1 -1
  17. package/src/assets/web-panel/assets/{Community-DYsZZlgI.js → Community-ZX64uW8D.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compact-Cq41A43W.js → Compact-CLtMoXTt.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compliance-CBqSz1op.js → Compliance-BlyxBDrs.js} +1 -1
  20. package/src/assets/web-panel/assets/{Cowork-ZAn8buD_.js → Cowork-CtQZIYPh.js} +3 -3
  21. package/src/assets/web-panel/assets/{Cron-DM4WTZQT.js → Cron-BebN-ajI.js} +2 -2
  22. package/src/assets/web-panel/assets/{Crosschain-S65sJZwe.js → Crosschain-3gRU0-58.js} +1 -1
  23. package/src/assets/web-panel/assets/{DID-0Av7FTMv.js → DID-DSVTtLnb.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dashboard-D-1vFtiV.js → Dashboard-CvnhOWqc.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dropdown-BZufOCir.js → Dropdown-BhdofmCJ.js} +1 -1
  26. package/src/assets/web-panel/assets/{EmailListRenderer-DJE8szQZ.js → EmailListRenderer-Dhpua9Lo.js} +1 -1
  27. package/src/assets/web-panel/assets/{FamilyGuardDashboard-BqqPHaZn.js → FamilyGuardDashboard-DA1mLqQ4.js} +1 -1
  28. package/src/assets/web-panel/assets/{Federation-CslSyj60.js → Federation-D6SUyKGb.js} +1 -1
  29. package/src/assets/web-panel/assets/{FormItemContext-uTfAl63o.js → FormItemContext-BcMiwguB.js} +1 -1
  30. package/src/assets/web-panel/assets/{GenericCardRenderer-BIP2obER.js → GenericCardRenderer-CGEB1WcH.js} +1 -1
  31. package/src/assets/web-panel/assets/{Git-CoVpUKSg.js → Git-DGCNNqR_.js} +2 -2
  32. package/src/assets/web-panel/assets/{Governance-zW6mlFcK.js → Governance-D4HVyFdL.js} +1 -1
  33. package/src/assets/web-panel/assets/{Inference-zfu2tMaa.js → Inference-BOoEmvKl.js} +1 -1
  34. package/src/assets/web-panel/assets/{KnowledgeGraph-Dd38pMCe.js → KnowledgeGraph-ECLI0C0_.js} +1 -1
  35. package/src/assets/web-panel/assets/{Logs-BhX28L73.js → Logs-Cf9GjHtX.js} +2 -2
  36. package/src/assets/web-panel/assets/MarkdownRenderer-C3J59f8v.js +1 -0
  37. package/src/assets/web-panel/assets/{Marketplace-DGBKtVL6.js → Marketplace-DeL4rOAJ.js} +1 -1
  38. package/src/assets/web-panel/assets/{McpTools-C0jSXrYN.js → McpTools-Dvn3KpLW.js} +2 -2
  39. package/src/assets/web-panel/assets/{Memory-_xyOJV55.js → Memory-CSlLy-aw.js} +2 -2
  40. package/src/assets/web-panel/assets/{MobileBridge-DGm6cS5Y.js → MobileBridge-yNIe8-74.js} +1 -1
  41. package/src/assets/web-panel/assets/{MobileProjects-DqNyu4pO.js → MobileProjects-CsS8Lozw.js} +1 -1
  42. package/src/assets/web-panel/assets/{Mtc-CSfoeF9f.js → Mtc-Q7iMzSds.js} +6 -6
  43. package/src/assets/web-panel/assets/{MtcAudit-DuXFbCYL.js → MtcAudit-CW71IQrK.js} +2 -2
  44. package/src/assets/web-panel/assets/{Multisig-CdnOBFhs.js → Multisig-pursAeeT.js} +3 -3
  45. package/src/assets/web-panel/assets/{NLProgramming-C0URZ4u4.js → NLProgramming-DtNo1qqO.js} +1 -1
  46. package/src/assets/web-panel/assets/{Notes-CJznx6ft.js → Notes-B1xUFwUT.js} +3 -3
  47. package/src/assets/web-panel/assets/{NotificationSettings-DJcqYoZP.js → NotificationSettings-BgmQs_J8.js} +1 -1
  48. package/src/assets/web-panel/assets/{OrderTableRenderer-CEQJHoU9.js → OrderTableRenderer-DI9t8YZl.js} +1 -1
  49. package/src/assets/web-panel/assets/{Organization-ucvP5Gzp.js → Organization-BbrrT6gR.js} +4 -4
  50. package/src/assets/web-panel/assets/{Overflow-Be3DoWvY.js → Overflow-BcPi4YUc.js} +1 -1
  51. package/src/assets/web-panel/assets/{P2P-BXV17CWM.js → P2P-DfRteW76.js} +2 -2
  52. package/src/assets/web-panel/assets/{PdhVaultBrowser-CZDiOia9.js → PdhVaultBrowser-De81lu5Q.js} +3 -3
  53. package/src/assets/web-panel/assets/{Permissions-Bn0mjFJA.js → Permissions-DLCRaOe3.js} +4 -4
  54. package/src/assets/web-panel/assets/{PersonalDataHub-CQ2uLeuD.js → PersonalDataHub-fuTL6z8u.js} +5 -5
  55. package/src/assets/web-panel/assets/{Pipeline-DWv7KJKL.js → Pipeline-D3ztsQDw.js} +1 -1
  56. package/src/assets/web-panel/assets/{Privacy-B4I0G5_J.js → Privacy-4f-SQ4ie.js} +1 -1
  57. package/src/assets/web-panel/assets/{ProjectInit-CDGy6B7j.js → ProjectInit-CC_ZFjrV.js} +2 -2
  58. package/src/assets/web-panel/assets/{ProjectSettings-CXUq9nGH.js → ProjectSettings-C9FWHcne.js} +2 -2
  59. package/src/assets/web-panel/assets/{Projects-B-IA5qsB.js → Projects-CR3ETMQQ.js} +1 -1
  60. package/src/assets/web-panel/assets/{Providers-Card8pXM.js → Providers-BWcbdgXx.js} +1 -1
  61. package/src/assets/web-panel/assets/{QrScannerModal-DrU0hFRp.js → QrScannerModal-BavxpdIK.js} +1 -1
  62. package/src/assets/web-panel/assets/{QuickAsk-cB-AFOxA.js → QuickAsk-CZ7gupY4.js} +1 -1
  63. package/src/assets/web-panel/assets/{Recommend-CvAvFr0u.js → Recommend-BQNpBYLL.js} +1 -1
  64. package/src/assets/web-panel/assets/{RemoteSession-BIrtatCm.js → RemoteSession-2LU0Vr44.js} +2 -2
  65. package/src/assets/web-panel/assets/{Reputation-CrRpi112.js → Reputation-oYWo7qyp.js} +1 -1
  66. package/src/assets/web-panel/assets/{Row-DmaenKNU.js → Row-B8Yj-Csx.js} +1 -1
  67. package/src/assets/web-panel/assets/{RssFeed-CGZBcNLM.js → RssFeed-CbxKbHJr.js} +3 -3
  68. package/src/assets/web-panel/assets/{Search-Bvxjc4AU.js → Search-DGe-u9s0.js} +1 -1
  69. package/src/assets/web-panel/assets/{Security-1Z-5c2n6.js → Security-BwjfMAFI.js} +3 -3
  70. package/src/assets/web-panel/assets/{Services-3zYh5_28.js → Services-BB5NQHwQ.js} +2 -2
  71. package/src/assets/web-panel/assets/{Skeleton-DEyGi_mq.js → Skeleton-BPSVUive.js} +1 -1
  72. package/src/assets/web-panel/assets/{Skills-BjWR0303.js → Skills-DU2D-IYQ.js} +1 -1
  73. package/src/assets/web-panel/assets/{Sla-C6rE_C6V.js → Sla-DLX0vcyj.js} +1 -1
  74. package/src/assets/web-panel/assets/{SpeechSettings-DJ1DtDuf.js → SpeechSettings-CsPt1rpa.js} +1 -1
  75. package/src/assets/web-panel/assets/{SyncSettings-B2j0LEry.js → SyncSettings-QuDslViv.js} +2 -2
  76. package/src/assets/web-panel/assets/{Tasks-ClYwVLRE.js → Tasks-C-jF6Kwk.js} +1 -1
  77. package/src/assets/web-panel/assets/{Templates-Eb0UjdGe.js → Templates-B6tY1zm-.js} +1 -1
  78. package/src/assets/web-panel/assets/{Tenant-BlkC3jZ8.js → Tenant-BXx5FAY1.js} +1 -1
  79. package/src/assets/web-panel/assets/{Terminal-MMaa8P6V.js → Terminal-CNk8KI4J.js} +2 -2
  80. package/src/assets/web-panel/assets/{TimelineRenderer-B4EsSPro.js → TimelineRenderer-Bo2YVc2l.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tokens-Chk0rule.js → Tokens-Bs1Oq8t9.js} +1 -1
  82. package/src/assets/web-panel/assets/{Trigger-Cww9ZKjK.js → Trigger-CtDhiQxG.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trust-xSwx_Zhk.js → Trust-riAZiPHp.js} +1 -1
  84. package/src/assets/web-panel/assets/{UkeySign-CNaC0gRj.js → UkeySign-DZRzYaNL.js} +1 -1
  85. package/src/assets/web-panel/assets/{VideoEditing-gpoRF70F.js → VideoEditing-DTwOdg2x.js} +1 -1
  86. package/src/assets/web-panel/assets/{Wallet-eSjvqmUV.js → Wallet-ByuDECxb.js} +4 -4
  87. package/src/assets/web-panel/assets/{WebAuthn-C4T03Dyz.js → WebAuthn-CkSKfId0.js} +5 -5
  88. package/src/assets/web-panel/assets/{WorkflowEditor-eR0JIHbW.js → WorkflowEditor-BmyJJndu.js} +1 -1
  89. package/src/assets/web-panel/assets/{chat-CPRK3APB.js → chat-s1LiqLff.js} +1 -1
  90. package/src/assets/web-panel/assets/{colors-BP4ZS2SA.js → colors-CMKVIFUx.js} +1 -1
  91. package/src/assets/web-panel/assets/{compact-item-C2bvxEX0.js → compact-item-DQGdG4Y5.js} +1 -1
  92. package/src/assets/web-panel/assets/{createContext-DfgFYASc.js → createContext-Csln9jj1.js} +1 -1
  93. package/src/assets/web-panel/assets/devWarning-C8YOOF96.js +1 -0
  94. package/src/assets/web-panel/assets/{hasIn-BlwCGOVd.js → hasIn-D1RYDhMF.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-B0HiXNYh.js → index--G_4msyB.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-B_LuOKcc.js → index-8mlgjcck.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-BgUnGGL8.js → index-B0vls3Cv.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-5b_mMYB_.js → index-B39ap5Fq.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-9VWjFlVU.js → index-BFHhLE91.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DR2Tg8uN.js → index-BJsa5jwk.js} +1 -1
  101. package/src/assets/web-panel/assets/index-BUXHmygu.js +1 -0
  102. package/src/assets/web-panel/assets/{index-Dx3HnzcX.js → index-BiT8auXA.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-C3qzM-P9.js → index-Bl5BNEwF.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-CKZNLHhD.js → index-Bqhj13Jf.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-_5mGFZRu.js → index-BsmEoBNu.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-C2n5VKtr.js → index-BvrkxTu0.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-B2D-mqRz.js → index-BxVtT9q8.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-DEohnDSJ.js → index-C1y8O1ZP.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-DnD3N8YJ.js → index-C8sTim5H.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-DLTzHq3a.js → index-CGBHLqy3.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-CZHYspFu.js → index-CHmRaTdN.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-XBrnfoX6.js → index-CJwH7xWo.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-IYshwMo1.js → index-CTg3OrkW.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-C6Zbp8DY.js → index-CUVbDS_3.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DDGliY6u.js → index-CUlRsoXi.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-Sk-fx_32.js → index-Cew8V1UQ.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-Bg_1EOhP.js → index-CiB2ZOQm.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-AbVd9bHP.js → index-CmAjtQdv.js} +1 -1
  119. package/src/assets/web-panel/assets/index-CsNpDb_W.js +1 -0
  120. package/src/assets/web-panel/assets/{index-DzHzRE9E.js → index-D1kWd1be.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-CyMwW_p5.js → index-D2v6xn0e.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-JhYgZWbg.js → index-D3TPgm-r.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BENgpvOm.js → index-D6eoC11O.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-CBJrpDfv.js → index-DHic4uvV.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-QE8jhGyd.js → index-DIFiRztW.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-DDavuQ3n.js → index-DQ86qdvJ.js} +19 -19
  127. package/src/assets/web-panel/assets/{index-BO1fPYye.js → index-DU23ertt.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-WSC6WoDZ.js → index-DauplA4h.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-DZbQQtMn.js → index-DmIeFdLq.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-BPezy3IJ.js → index-FLnF1aVs.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-B-ubYfKF.js → index-jPM2-LMz.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-DQ-CB1zc.js → index-rHRlGEnX.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-DdaniU1x.js → index-ugL-2h6d.js} +1 -1
  134. package/src/assets/web-panel/assets/{initDefaultProps-CmR0B8Wx.js → initDefaultProps-DWJU65d6.js} +1 -1
  135. package/src/assets/web-panel/assets/{motion-BC0UJWJb.js → motion-B0cCdvX2.js} +1 -1
  136. package/src/assets/web-panel/assets/{move-cvEJQRZ_.js → move-CSWGW4YZ.js} +1 -1
  137. package/src/assets/web-panel/assets/{mtc-parser-0ZPAo5px.js → mtc-parser-_P9unVrC.js} +1 -1
  138. package/src/assets/web-panel/assets/{omit-UBXYakkw.js → omit-eUFaswv5.js} +1 -1
  139. package/src/assets/web-panel/assets/{pickAttrs-CRZgdSvi.js → pickAttrs-Hmk4wpqj.js} +1 -1
  140. package/src/assets/web-panel/assets/{placementArrow-B_Y8sKr_.js → placementArrow-COIVVq2l.js} +1 -1
  141. package/src/assets/web-panel/assets/{responsiveObserve-CFgbiMsJ.js → responsiveObserve-CkXZS7fs.js} +1 -1
  142. package/src/assets/web-panel/assets/{slide-CF6LYcYS.js → slide-BGdyZ1Ue.js} +1 -1
  143. package/src/assets/web-panel/assets/{statusUtils-Cj2PusGV.js → statusUtils-rbVNSZAN.js} +1 -1
  144. package/src/assets/web-panel/assets/{styleChecker-Czg7dDLr.js → styleChecker-CcdFI5tK.js} +1 -1
  145. package/src/assets/web-panel/assets/{useFlexGapSupport-Bhi9P67E.js → useFlexGapSupport-C9yiJQMh.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFs-X9lqJXBc.js → useFs-B73ulQmg.js} +1 -1
  147. package/src/assets/web-panel/assets/{usePersonalDataHub-iL34aL71.js → usePersonalDataHub-DNN-hD_j.js} +1 -1
  148. package/src/assets/web-panel/assets/{vnode-DJ7TA9fc.js → vnode-BN1KizIr.js} +1 -1
  149. package/src/assets/web-panel/assets/{zoom-DfQDsJXd.js → zoom-0KE4Sg53.js} +1 -1
  150. package/src/assets/web-panel/index.html +1 -1
  151. package/src/data/changelog.json +26 -0
  152. package/src/lib/evolution/evolution-file-witness.js +59 -13
  153. package/src/lib/evolution/evolution-ledger-file-backend.js +16 -1
  154. package/src/lib/remote-read-loop-guard.js +231 -0
  155. package/src/lib/task-progress-tracker.js +5 -1
  156. package/src/lib/web-fetch.js +129 -12
  157. package/src/runtime/agent-core.js +41 -1
  158. package/src/assets/web-panel/assets/ChatBubbleRenderer-D68YIuni.js +0 -1
  159. package/src/assets/web-panel/assets/MarkdownRenderer-CbOmzhyX.js +0 -1
  160. package/src/assets/web-panel/assets/devWarning-CahG3JuS.js +0 -1
  161. package/src/assets/web-panel/assets/index-BZ3kGfit.js +0 -1
  162. package/src/assets/web-panel/assets/index-Dm5MZg8A.js +0 -1
@@ -21,6 +21,7 @@ import {
21
21
  buildReadFileOutline,
22
22
  } from "../lib/read-file-page.js";
23
23
  import { ReadFileLoopGuard } from "../lib/read-file-loop-guard.js";
24
+ import { RemoteReadLoopGuard } from "../lib/remote-read-loop-guard.js";
24
25
  import {
25
26
  TaskProgressTracker,
26
27
  TASK_RECOVERY_TOOLS,
@@ -13807,11 +13808,24 @@ export async function* agentLoop(messages, options) {
13807
13808
  // rather than looping forever (the iteration budget is the hard backstop).
13808
13809
  let emptyThinkingReprompted = false;
13809
13810
  const readFileLoopGuard = new ReadFileLoopGuard();
13811
+ const remoteReadLoopGuard = new RemoteReadLoopGuard();
13810
13812
  toolContext.readFileLoopGuard = readFileLoopGuard;
13811
13813
  let lastTaskProgressIntervention = null;
13812
13814
 
13813
13815
  while (budget.hasRemaining()) {
13814
13816
  readFileLoopGuard.finishBatch();
13817
+ if (remoteReadLoopGuard.stalled) {
13818
+ await _awaitBackgroundUsageSettlement(
13819
+ backgroundSubAgents,
13820
+ backgroundUsageFailureState,
13821
+ );
13822
+ yield* _drainSubAgentUsage(subAgentUsageSink);
13823
+ const error = new Error(
13824
+ "Repeated remote fetch failures or unchanged GitHub Actions logs continued after recovery guidance. Stopped the retry loop; the task is not complete. Use the retained findings, check authentication/connectivity, or fetch a specific missing log section before retrying.",
13825
+ );
13826
+ error.code = "CC_AGENT_REPEATED_REMOTE_READ";
13827
+ throw error;
13828
+ }
13815
13829
  if (readFileLoopGuard.stalled) {
13816
13830
  await _awaitBackgroundUsageSettlement(
13817
13831
  backgroundSubAgents,
@@ -14388,6 +14402,14 @@ export async function* agentLoop(messages, options) {
14388
14402
  // whole-file request. This changes discovery for one request only; runtime
14389
14403
  // permissions are untouched and ordinary reads return on the next turn.
14390
14404
  const readRecoveryTurn = readFileLoopGuard.takeRecoveryTurn();
14405
+ const remoteRecoveryTools = remoteReadLoopGuard.takeRecoveryTurn();
14406
+ if (remoteRecoveryTools.length) {
14407
+ yield {
14408
+ type: "iteration-warning",
14409
+ message:
14410
+ "Repeated web/log requests made no progress. Use retained evidence; the repeating tool is paused for one model turn.",
14411
+ };
14412
+ }
14391
14413
  const progressIntervention = taskProgressTracker.intervention;
14392
14414
  const newProgressIntervention =
14393
14415
  progressIntervention &&
@@ -14408,7 +14430,7 @@ export async function* agentLoop(messages, options) {
14408
14430
  };
14409
14431
  }
14410
14432
  const iterationToolOptions =
14411
- readRecoveryTurn || taskRecoveryTurn
14433
+ readRecoveryTurn || taskRecoveryTurn || remoteRecoveryTools.length
14412
14434
  ? {
14413
14435
  ...effectiveToolOptions,
14414
14436
  disabledTools: [
@@ -14416,6 +14438,7 @@ export async function* agentLoop(messages, options) {
14416
14438
  ...(effectiveToolOptions.disabledTools || []),
14417
14439
  ...(readRecoveryTurn ? ["read_file"] : []),
14418
14440
  ...(taskRecoveryTurn ? TASK_RECOVERY_TOOLS : []),
14441
+ ...remoteRecoveryTools,
14419
14442
  ]),
14420
14443
  ],
14421
14444
  }
@@ -14423,6 +14446,7 @@ export async function* agentLoop(messages, options) {
14423
14446
  const readContext = [
14424
14447
  readFileLoopGuard.findingsHint,
14425
14448
  readFileLoopGuard.progressHint,
14449
+ remoteReadLoopGuard.findingsHint,
14426
14450
  taskProgressTracker.checkpointFor(runId),
14427
14451
  ].filter(Boolean);
14428
14452
  if (readContext.length) {
@@ -14468,6 +14492,20 @@ export async function* agentLoop(messages, options) {
14468
14492
  }
14469
14493
  }
14470
14494
  const contextMemoryTrustedSystemIndexes = [];
14495
+ if (remoteReadLoopGuard.recoveryHint) {
14496
+ callMessages = [
14497
+ ...callMessages,
14498
+ {
14499
+ role: "system",
14500
+ content:
14501
+ remoteReadLoopGuard.recoveryHint +
14502
+ (remoteRecoveryTools.length
14503
+ ? ` One-turn recovery: ${remoteRecoveryTools.join(", ")} omitted for this request only; availability resumes on the next turn.`
14504
+ : ""),
14505
+ },
14506
+ ];
14507
+ contextMemoryTrustedSystemIndexes.push(callMessages.length - 1);
14508
+ }
14471
14509
  if (progressIntervention) {
14472
14510
  callMessages = [
14473
14511
  ...callMessages,
@@ -15044,6 +15082,7 @@ export async function* agentLoop(messages, options) {
15044
15082
  _throwBackgroundUsageFailureState(backgroundUsageFailureState);
15045
15083
  const { result: toolResult, error: toolError } = await promise;
15046
15084
  throwIfAborted(signal);
15085
+ remoteReadLoopGuard.record(call.function.name, toolResult, toolArgs);
15047
15086
  readFileLoopGuard.record(
15048
15087
  call.function.name,
15049
15088
  toolResult,
@@ -15528,6 +15567,7 @@ export async function* agentLoop(messages, options) {
15528
15567
  // context — but tell the model when we cut it (no more silent
15529
15568
  // mid-content slice). See MAX_TOOL_RESULT_CHARS / capToolResultString.
15530
15569
  const resultStr = toolResultForModel(toolName, toolResult, messages);
15570
+ remoteReadLoopGuard.record(toolName, toolResult, toolArgs);
15531
15571
  readFileLoopGuard.record(
15532
15572
  toolName,
15533
15573
  toolResult,
@@ -1 +0,0 @@
1
- import{I as h,P as u,J as y,U as n,R as a,S,K as x,Q as C,V as w,_ as B,b as s}from"./vendor-Bn1JzzAn.js";import{_ as k}from"./index-DDavuQ3n.js";import"./icons-DG5UD-6K.js";const N={__name:"ChatBubbleRenderer",props:{event:{type:Object,required:!0}},setup(c,{expose:d}){d();const t=c,r=s(()=>{const e=t.event.content||{};return e.text||e.body||e.message||e.title||JSON.stringify(e).slice(0,200)}),i=s(()=>{const e=t.event.content||{};return e.from||e.sender||e.senderName||t.event.actor||"(unknown)"}),l=s(()=>{const e=(t.event.actor||"").toLowerCase();return e.includes("self")||e==="me"||e.endsWith("_self")}),o=s(()=>{const e=t.event.source.adapter||"";return e.startsWith("messaging-qq")?"magenta":e==="wechat"?"green":"blue"}),m=s(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),p=e.getFullYear(),f=String(e.getMonth()+1).padStart(2,"0"),g=String(e.getDate()).padStart(2,"0"),b=String(e.getHours()).padStart(2,"0"),v=String(e.getMinutes()).padStart(2,"0");return`${p}-${f}-${g} ${b}:${v}`}catch{return""}}),_={props:t,messageText:r,actorLabel:i,isMine:l,adapterColor:o,formattedTime:m,computed:s};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}},T={class:"bubble"},M={class:"meta"},R={class:"actor"},V={class:"time"},q={class:"body"};function D(c,d,t,r,i,l){const o=h("a-tag");return u(),y("div",{class:B(["chat-row",{mine:r.isMine}])},[n("div",T,[n("div",M,[n("span",R,a(r.actorLabel),1),n("span",V,a(r.formattedTime),1)]),n("div",q,a(r.messageText),1),t.event.source.adapter?(u(),S(o,{key:0,class:"src",color:r.adapterColor},{default:x(()=>[C(a(t.event.source.adapter),1)]),_:1},8,["color"])):w("v-if",!0)])],2)}const A=k(N,[["render",D],["__scopeId","data-v-49238629"],["__file","/tmp/cc-web-panel-0cyvxy/repo/packages/web-panel/src/components/pdh/renderers/ChatBubbleRenderer.vue"]]);export{A as default};
@@ -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-DDavuQ3n.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-0cyvxy/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{w as M};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-DDavuQ3n.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-BJ1tzpRh.js";import{a0 as t}from"./index-DDavuQ3n.js";import"./vendor-Bn1JzzAn.js";import"./index-C2n5VKtr.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-DmaenKNU.js";import{a0 as t}from"./index-DDavuQ3n.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-CFgbiMsJ.js";import"./useFlexGapSupport-Bhi9P67E.js";import"./styleChecker-Czg7dDLr.js";import"./index-C2n5VKtr.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};