chainlesschain 0.166.130 → 0.166.132

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 (469) hide show
  1. package/README.md +30 -4
  2. package/package.json +2 -2
  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-CHItp4vg.js +1 -0
  7. package/src/assets/web-panel/assets/AIOps-Cchx1iXI.css +1 -0
  8. package/src/assets/web-panel/assets/{ActionButton-Dzv1ReHF.js → ActionButton-nhMNWW_d.js} +1 -1
  9. package/src/assets/web-panel/assets/Analytics-DRc81BBI.js +3 -0
  10. package/src/assets/web-panel/assets/Analytics-Dr-1kvaM.css +1 -0
  11. package/src/assets/web-panel/assets/AppLayout-BTBIIl1e.css +1 -0
  12. package/src/assets/web-panel/assets/AppLayout-CVt7HMkp.js +3 -0
  13. package/src/assets/web-panel/assets/Artifacts-BuJgG5jf.js +1 -0
  14. package/src/assets/web-panel/assets/Artifacts-Dohtjyfl.css +1 -0
  15. package/src/assets/web-panel/assets/Audit-DDnViLtj.css +1 -0
  16. package/src/assets/web-panel/assets/Audit-msNg0aH-.js +1 -0
  17. package/src/assets/web-panel/assets/BackgroundAgents-BpcV8yWC.js +1 -0
  18. package/src/assets/web-panel/assets/BackgroundAgents-CH3Uc9sF.css +1 -0
  19. package/src/assets/web-panel/assets/Backup-CYh10zO3.css +1 -0
  20. package/src/assets/web-panel/assets/Backup-P53DADwG.js +1 -0
  21. package/src/assets/web-panel/assets/BaseInput-DFxT2yWN.js +1 -0
  22. package/src/assets/web-panel/assets/Chat-B5JvvQJb.css +1 -0
  23. package/src/assets/web-panel/assets/Chat-BXoHisHW.js +7 -0
  24. package/src/assets/web-panel/assets/ChatBubbleRenderer-CO908iBt.css +1 -0
  25. package/src/assets/web-panel/assets/ChatBubbleRenderer-DMGtSdDx.js +1 -0
  26. package/src/assets/web-panel/assets/{Checkbox-B5uzaLLP.js → Checkbox-B4g_ckJq.js} +1 -1
  27. package/src/assets/web-panel/assets/Codegen-BLP7id2a.css +1 -0
  28. package/src/assets/web-panel/assets/Codegen-C6SSSOfp.js +1 -0
  29. package/src/assets/web-panel/assets/{Col-D3I2kUGu.js → Col-IO1NEUYL.js} +1 -1
  30. package/src/assets/web-panel/assets/Community-C2RejeOY.css +1 -0
  31. package/src/assets/web-panel/assets/Community-CdEBl93F.js +1 -0
  32. package/src/assets/web-panel/assets/{Compact-5GigOmb8.js → Compact-DYs0a9k7.js} +1 -1
  33. package/src/assets/web-panel/assets/Compliance-BPnk7948.js +1 -0
  34. package/src/assets/web-panel/assets/Compliance-DOys4Ov1.css +1 -0
  35. package/src/assets/web-panel/assets/Cowork-DsOst4XK.css +1 -0
  36. package/src/assets/web-panel/assets/Cowork-VLOTGbza.js +6 -0
  37. package/src/assets/web-panel/assets/Cron-_9GgQLJo.js +2 -0
  38. package/src/assets/web-panel/assets/Crosschain-B21yn0qy.js +1 -0
  39. package/src/assets/web-panel/assets/Crosschain-C7Le4Pte.css +1 -0
  40. package/src/assets/web-panel/assets/DID-BX6k3jZi.css +1 -0
  41. package/src/assets/web-panel/assets/DID-mBeDgRZ7.js +2 -0
  42. package/src/assets/web-panel/assets/Dashboard-BckYYzhP.js +3 -0
  43. package/src/assets/web-panel/assets/Dashboard-MFDcsVcM.css +1 -0
  44. package/src/assets/web-panel/assets/Dropdown-DEedqFiE.js +1 -0
  45. package/src/assets/web-panel/assets/EmailListRenderer-CMs0k9TB.js +1 -0
  46. package/src/assets/web-panel/assets/EmailListRenderer-CVJ1j3Ll.css +1 -0
  47. package/src/assets/web-panel/assets/EvolutionSettings-B00Qd0fN.js +1 -0
  48. package/src/assets/web-panel/assets/EvolutionSettings-BnQ91YHJ.css +1 -0
  49. package/src/assets/web-panel/assets/FamilyGuardDashboard-Df-D09Q4.css +1 -0
  50. package/src/assets/web-panel/assets/FamilyGuardDashboard-DxMTAMa8.js +1 -0
  51. package/src/assets/web-panel/assets/Federation-B-UZw0LO.js +1 -0
  52. package/src/assets/web-panel/assets/Federation-CgmfLbx1.css +1 -0
  53. package/src/assets/web-panel/assets/FormItemContext-CkafazEw.js +1 -0
  54. package/src/assets/web-panel/assets/GenericCardRenderer-DEUG25ZJ.js +1 -0
  55. package/src/assets/web-panel/assets/GenericCardRenderer-DtJFcJYl.css +1 -0
  56. package/src/assets/web-panel/assets/Git-D7dr9oz9.js +2 -0
  57. package/src/assets/web-panel/assets/{Git-BdHhxBWR.css → Git-DPuaGtg7.css} +1 -1
  58. package/src/assets/web-panel/assets/Governance-BoipmXaM.css +1 -0
  59. package/src/assets/web-panel/assets/Governance-DKlUJ1wg.js +1 -0
  60. package/src/assets/web-panel/assets/Inference-BJKqplap.js +1 -0
  61. package/src/assets/web-panel/assets/Inference-BWxYJF9-.css +1 -0
  62. package/src/assets/web-panel/assets/KnowledgeGraph-B78fB-bz.js +1 -0
  63. package/src/assets/web-panel/assets/KnowledgeGraph-CztPDA96.css +1 -0
  64. package/src/assets/web-panel/assets/Logs-DJGcHYH_.js +2 -0
  65. package/src/assets/web-panel/assets/Logs-Gf_Mv9Nx.css +1 -0
  66. package/src/assets/web-panel/assets/MarkdownRenderer-BAxj61I3.css +1 -0
  67. package/src/assets/web-panel/assets/MarkdownRenderer-DkcG_MxW.js +1 -0
  68. package/src/assets/web-panel/assets/Marketplace-Djp5q9dS.css +1 -0
  69. package/src/assets/web-panel/assets/Marketplace-ucTbwByD.js +1 -0
  70. package/src/assets/web-panel/assets/McpTools-Cu1xZYYk.js +2 -0
  71. package/src/assets/web-panel/assets/McpTools-DSGHWYS_.css +1 -0
  72. package/src/assets/web-panel/assets/Memory-Bcc2hxOA.css +1 -0
  73. package/src/assets/web-panel/assets/Memory-DCGpXmi-.js +2 -0
  74. package/src/assets/web-panel/assets/MobileBridge-BQ-Uwwg7.css +1 -0
  75. package/src/assets/web-panel/assets/MobileBridge-BnKr0aAS.js +1 -0
  76. package/src/assets/web-panel/assets/MobileProjects-C5UvYJTP.js +1 -0
  77. package/src/assets/web-panel/assets/MobileProjects-Ceaxrqzc.css +1 -0
  78. package/src/assets/web-panel/assets/Mtc-D1UUl4WH.js +6 -0
  79. package/src/assets/web-panel/assets/Mtc-DHwbdUqA.css +1 -0
  80. package/src/assets/web-panel/assets/MtcAudit-B0x8gahq.css +1 -0
  81. package/src/assets/web-panel/assets/MtcAudit-D3aa8XP4.js +19 -0
  82. package/src/assets/web-panel/assets/Multisig-DiXdfJjO.js +7 -0
  83. package/src/assets/web-panel/assets/Multisig-kwPDnXnl.css +1 -0
  84. package/src/assets/web-panel/assets/NLProgramming-CLOvy-35.css +1 -0
  85. package/src/assets/web-panel/assets/NLProgramming-DbWABgSE.js +1 -0
  86. package/src/assets/web-panel/assets/Notes-BP1DPl-R.js +7 -0
  87. package/src/assets/web-panel/assets/Notes-COE2q2gD.css +1 -0
  88. package/src/assets/web-panel/assets/NotificationSettings-Co0e0uEO.css +1 -0
  89. package/src/assets/web-panel/assets/NotificationSettings-xaB6ONe7.js +1 -0
  90. package/src/assets/web-panel/assets/OrderTableRenderer-BnOISpKI.css +1 -0
  91. package/src/assets/web-panel/assets/OrderTableRenderer-D1uNcz3b.js +1 -0
  92. package/src/assets/web-panel/assets/Organization-BM3Lh8Q8.css +1 -0
  93. package/src/assets/web-panel/assets/Organization-DMLDGaf1.js +4 -0
  94. package/src/assets/web-panel/assets/{Overflow-ky9UfGv4.js → Overflow-DH4QPEoI.js} +1 -1
  95. package/src/assets/web-panel/assets/{OverrideContext-C0w0P4A3.js → OverrideContext-DLR1AtLy.js} +1 -1
  96. package/src/assets/web-panel/assets/P2P-Bl4OS10o.js +2 -0
  97. package/src/assets/web-panel/assets/P2P-Cx88UaiD.css +1 -0
  98. package/src/assets/web-panel/assets/PdhVaultBrowser-B9ZGFpn4.css +1 -0
  99. package/src/assets/web-panel/assets/PdhVaultBrowser-D9XSE2YI.js +7 -0
  100. package/src/assets/web-panel/assets/Permissions-CUaPlr6d.js +4 -0
  101. package/src/assets/web-panel/assets/Permissions-Diejgkbs.css +1 -0
  102. package/src/assets/web-panel/assets/PersonalDataHub-Ba92dZk-.js +3 -0
  103. package/src/assets/web-panel/assets/PersonalDataHub-C_xhspRy.css +1 -0
  104. package/src/assets/web-panel/assets/Pipeline-Bh2okm-8.js +1 -0
  105. package/src/assets/web-panel/assets/Pipeline-DxkXqrH2.css +1 -0
  106. package/src/assets/web-panel/assets/Privacy-Bmq3p4gC.js +1 -0
  107. package/src/assets/web-panel/assets/Privacy-CrsfSFKd.css +1 -0
  108. package/src/assets/web-panel/assets/ProjectInit-BPu2fdKR.js +2 -0
  109. package/src/assets/web-panel/assets/ProjectInit-CteEo-wF.css +1 -0
  110. package/src/assets/web-panel/assets/ProjectSettings-D6ABLpmt.js +2 -0
  111. package/src/assets/web-panel/assets/ProjectSettings-pLSae-wy.css +1 -0
  112. package/src/assets/web-panel/assets/Projects-BX-SG9R4.css +1 -0
  113. package/src/assets/web-panel/assets/Projects-qWHEve0z.js +1 -0
  114. package/src/assets/web-panel/assets/Providers-CpAXh_6c.css +1 -0
  115. package/src/assets/web-panel/assets/Providers-D9DI-2hc.js +1 -0
  116. package/src/assets/web-panel/assets/{QrScannerModal-er_HkLCI.js → QrScannerModal-CxifoeD5.js} +1 -1
  117. package/src/assets/web-panel/assets/QrScannerModal-DFrn7rxS.css +1 -0
  118. package/src/assets/web-panel/assets/QuickAsk-DC1BvwR7.js +1 -0
  119. package/src/assets/web-panel/assets/Recommend-CH6wKzGo.css +1 -0
  120. package/src/assets/web-panel/assets/Recommend-CKqbMB5o.js +1 -0
  121. package/src/assets/web-panel/assets/RemoteSession-BGGzPdS5.js +5 -0
  122. package/src/assets/web-panel/assets/Reputation-D6VPNEd0.css +1 -0
  123. package/src/assets/web-panel/assets/Reputation-DH90O9-5.js +1 -0
  124. package/src/assets/web-panel/assets/Row-h7ovueJc.js +1 -0
  125. package/src/assets/web-panel/assets/RssFeed-Cze7YLaG.css +1 -0
  126. package/src/assets/web-panel/assets/RssFeed-DaHxXTZg.js +3 -0
  127. package/src/assets/web-panel/assets/Search-B6RalzTB.css +1 -0
  128. package/src/assets/web-panel/assets/Search-Bn6Nqpn4.js +1 -0
  129. package/src/assets/web-panel/assets/Security-13K57V_v.css +1 -0
  130. package/src/assets/web-panel/assets/Security-ClbBmPJi.js +4 -0
  131. package/src/assets/web-panel/assets/Services-C8Qs6KXv.css +1 -0
  132. package/src/assets/web-panel/assets/Services-ChHLQwRn.js +2 -0
  133. package/src/assets/web-panel/assets/{Skeleton-CrFs6rUL.js → Skeleton-DfN6BFzt.js} +1 -1
  134. package/src/assets/web-panel/assets/Skills-BdjRyorN.css +1 -0
  135. package/src/assets/web-panel/assets/Skills-C926wDev.js +1 -0
  136. package/src/assets/web-panel/assets/Sla-DJzi1l1M.js +1 -0
  137. package/src/assets/web-panel/assets/Sla-K19oOyQc.css +1 -0
  138. package/src/assets/web-panel/assets/SpeechSettings-DYPJTDKz.css +1 -0
  139. package/src/assets/web-panel/assets/SpeechSettings-_GSyVjm_.js +1 -0
  140. package/src/assets/web-panel/assets/SyncSettings-B67xnERe.js +1 -0
  141. package/src/assets/web-panel/assets/SyncSettings-C6cDrwDR.css +1 -0
  142. package/src/assets/web-panel/assets/Tasks-BJjN_YEm.css +1 -0
  143. package/src/assets/web-panel/assets/Tasks-BaYZadcG.js +1 -0
  144. package/src/assets/web-panel/assets/Templates-BsMmCdZI.css +1 -0
  145. package/src/assets/web-panel/assets/Templates-Bu8kN1Xt.js +1 -0
  146. package/src/assets/web-panel/assets/Tenant-BM9qufw1.js +1 -0
  147. package/src/assets/web-panel/assets/Tenant-D3zkSAV0.css +1 -0
  148. package/src/assets/web-panel/assets/Terminal-MEdd5DjB.js +3 -0
  149. package/src/assets/web-panel/assets/Terminal-qPp9MaPu.css +1 -0
  150. package/src/assets/web-panel/assets/TimelineRenderer-C27kL2oU.js +1 -0
  151. package/src/assets/web-panel/assets/TimelineRenderer-DmztdsbF.css +1 -0
  152. package/src/assets/web-panel/assets/Tokens-BBOdNRHQ.css +1 -0
  153. package/src/assets/web-panel/assets/Tokens-Cvjd98VC.js +1 -0
  154. package/src/assets/web-panel/assets/{Trigger-CXrW4Nry.js → Trigger-CLym84HI.js} +1 -1
  155. package/src/assets/web-panel/assets/Trust-Bv2JTaNN.js +1 -0
  156. package/src/assets/web-panel/assets/Trust-DeOo0xAh.css +1 -0
  157. package/src/assets/web-panel/assets/UkeySign-CSCkNbtm.js +1 -0
  158. package/src/assets/web-panel/assets/VideoEditing-BFDXB4xh.js +1 -0
  159. package/src/assets/web-panel/assets/VideoEditing-DksiizfS.css +1 -0
  160. package/src/assets/web-panel/assets/Wallet-CMEFrG_b.js +4 -0
  161. package/src/assets/web-panel/assets/Wallet-Dw8uV4Ug.css +1 -0
  162. package/src/assets/web-panel/assets/WebAuthn-DKx6xPPl.css +1 -0
  163. package/src/assets/web-panel/assets/WebAuthn-x4eO_Q4y.js +5 -0
  164. package/src/assets/web-panel/assets/WorkflowEditor-ClWEPgV1.js +1 -0
  165. package/src/assets/web-panel/assets/WorkflowEditor-IiwsD8Kh.css +1 -0
  166. package/src/assets/web-panel/assets/{_getTag-DnrRH4E6.js → _getTag-BVc6NQ_K.js} +1 -1
  167. package/src/assets/web-panel/assets/{chat-BpJsXlTK.js → chat-BdYOI4gM.js} +1 -1
  168. package/src/assets/web-panel/assets/{collapseMotion-CqM1QOwM.js → collapseMotion-B4IZiILV.js} +1 -1
  169. package/src/assets/web-panel/assets/{colors-CUNg0-fh.js → colors-DcTBrGvS.js} +1 -1
  170. package/src/assets/web-panel/assets/{compact-item-C3tFHnhu.js → compact-item-Dn2ktVuj.js} +1 -1
  171. package/src/assets/web-panel/assets/createContext-XTreuyqp.js +1 -0
  172. package/src/assets/web-panel/assets/{debounce-CFGTTtN3.js → debounce-D9xTw4Sx.js} +1 -1
  173. package/src/assets/web-panel/assets/devWarning-CNIS3FrJ.js +1 -0
  174. package/src/assets/web-panel/assets/echarts-CDp6K7pj.js +19 -0
  175. package/src/assets/web-panel/assets/{hasIn-CU6RIciB.js → hasIn-CFRNsYQd.js} +1 -1
  176. package/src/assets/web-panel/assets/{icons-DG5UD-6K.js → icons-DlxlFL4g.js} +4 -4
  177. package/src/assets/web-panel/assets/index-3RqDry-K.js +71 -0
  178. package/src/assets/web-panel/assets/{index-BPWJw4Ji.js → index-8METW_Wr.js} +1 -1
  179. package/src/assets/web-panel/assets/index-BBd64wj8.js +31 -0
  180. package/src/assets/web-panel/assets/index-BEyVNbNE.js +3 -0
  181. package/src/assets/web-panel/assets/index-BMLpP8QQ.js +1 -0
  182. package/src/assets/web-panel/assets/{index-BzhobTgZ.js → index-BSqydcDa.js} +1 -1
  183. package/src/assets/web-panel/assets/index-BV6LojRv.js +21 -0
  184. package/src/assets/web-panel/assets/index-BbMWvjLZ.js +1 -0
  185. package/src/assets/web-panel/assets/{index-KgR1f2Gq.js → index-Brc0BF-k.js} +2 -2
  186. package/src/assets/web-panel/assets/{index-D4njcYFw.js → index-CG9YLDmI.js} +1 -1
  187. package/src/assets/web-panel/assets/{index-6EwPIfXu.js → index-CNHWMMDX.js} +1 -1
  188. package/src/assets/web-panel/assets/{index-CEIoRm_c.js → index-COuEJdmr.js} +3 -3
  189. package/src/assets/web-panel/assets/{index-BG4zuFf0.js → index-CRW3AWdS.js} +1 -1
  190. package/src/assets/web-panel/assets/{index-BOlAutGy.js → index-CUT4h5JB.js} +2 -2
  191. package/src/assets/web-panel/assets/index-CXMa7Z-S.js +1 -0
  192. package/src/assets/web-panel/assets/index-CbaPXyNc.js +19 -0
  193. package/src/assets/web-panel/assets/{index-Cq93VfoF.css → index-CfX1DEtk.css} +1 -1
  194. package/src/assets/web-panel/assets/{index-X6e0cGRU.js → index-CjHA_Q7s.js} +1 -1
  195. package/src/assets/web-panel/assets/index-CsnYp4qF.js +1 -0
  196. package/src/assets/web-panel/assets/index-D45vulkq.js +12 -0
  197. package/src/assets/web-panel/assets/index-D9kPBEqD.js +55 -0
  198. package/src/assets/web-panel/assets/index-DDTSgpXz.js +1 -0
  199. package/src/assets/web-panel/assets/index-DFl_a0n5.js +1 -0
  200. package/src/assets/web-panel/assets/index-DNdiAymC.js +1 -0
  201. package/src/assets/web-panel/assets/{index-BJjEAoDb.js → index-DQEu7uW0.js} +1 -1
  202. package/src/assets/web-panel/assets/index-DW9XncMy.js +21 -0
  203. package/src/assets/web-panel/assets/index-Daa1yCt_.js +1 -0
  204. package/src/assets/web-panel/assets/index-DdVpoNEQ.js +12 -0
  205. package/src/assets/web-panel/assets/index-Dhi4Oybt.js +1 -0
  206. package/src/assets/web-panel/assets/index-DoVoNjtJ.js +1 -0
  207. package/src/assets/web-panel/assets/{index-111hR8WZ.js → index-Vo7A4aiN.js} +4 -4
  208. package/src/assets/web-panel/assets/{index-lo9rgpyj.js → index-XdlYkgCa.js} +1 -1
  209. package/src/assets/web-panel/assets/{index-1L0tt7G2.js → index-ir2ZwWz5.js} +2 -2
  210. package/src/assets/web-panel/assets/index-kzyCd8a0.js +3 -0
  211. package/src/assets/web-panel/assets/{index-CyyhilXV.js → index-lnTt0Jps.js} +2 -2
  212. package/src/assets/web-panel/assets/{index-CLQjdKmE.js → index-ma-rJkfE.js} +1 -1
  213. package/src/assets/web-panel/assets/index-oE4jTpHK.js +13 -0
  214. package/src/assets/web-panel/assets/{index-K2Uqqkr1.js → index-r5sNECM5.js} +1 -1
  215. package/src/assets/web-panel/assets/index-uT4fRDzU.js +1 -0
  216. package/src/assets/web-panel/assets/index-xlS8pDS2.js +1 -0
  217. package/src/assets/web-panel/assets/{initDefaultProps-FI8D7E2x.js → initDefaultProps-mdL0oeZa.js} +1 -1
  218. package/src/assets/web-panel/assets/{isPlainObject-BWRMT62c.js → isPlainObject-_gz-soRW.js} +1 -1
  219. package/src/assets/web-panel/assets/isSymbol-DAy2hlR5.js +1 -0
  220. package/src/assets/web-panel/assets/motion-ZgVCKcEX.js +11 -0
  221. package/src/assets/web-panel/assets/{move-Vl1vUReW.js → move-A_28O5T2.js} +1 -1
  222. package/src/assets/web-panel/assets/{mtc-parser-6Cu2aFME.js → mtc-parser-0zlMjabo.js} +1 -1
  223. package/src/assets/web-panel/assets/{omit-VRKL8iSO.js → omit-DF7mU3yG.js} +1 -1
  224. package/src/assets/web-panel/assets/{pickAttrs-DZfWsOe0.js → pickAttrs-Cmt8liJP.js} +1 -1
  225. package/src/assets/web-panel/assets/{placementArrow-qmcOUc4W.js → placementArrow-DaMDC57b.js} +1 -1
  226. package/src/assets/web-panel/assets/{responsiveObserve-BLB6SsSw.js → responsiveObserve-CHw_f2d3.js} +1 -1
  227. package/src/assets/web-panel/assets/{slide-41jdYeSH.js → slide-DJS9fFQq.js} +1 -1
  228. package/src/assets/web-panel/assets/{statusUtils-Yn8OQ5ey.js → statusUtils-Bk3XdZwh.js} +1 -1
  229. package/src/assets/web-panel/assets/{styleChecker-4CEwz9Zd.js → styleChecker-DMybAFsA.js} +1 -1
  230. package/src/assets/web-panel/assets/useFlexGapSupport-_tbIIFMu.js +1 -0
  231. package/src/assets/web-panel/assets/{useFs-Bugo8HuF.js → useFs-KPklVptS.js} +1 -1
  232. package/src/assets/web-panel/assets/{useMergedState-DXbJa_zE.js → useMergedState-d-EXs3xd.js} +1 -1
  233. package/src/assets/web-panel/assets/{usePersonalDataHub-B-q2ElB0.js → usePersonalDataHub-C7FrKDhD.js} +1 -1
  234. package/src/assets/web-panel/assets/{useRefs-BrCfMLMc.js → useRefs-DHeCQehi.js} +1 -1
  235. package/src/assets/web-panel/assets/{useState-CnxtbLoC.js → useState-Dlgl7fUg.js} +1 -1
  236. package/src/assets/web-panel/assets/vendor-BXcBOG8b.js +1 -0
  237. package/src/assets/web-panel/assets/vnode-DB3JBusp.js +1 -0
  238. package/src/assets/web-panel/assets/warning-Pq00owYb.js +1 -0
  239. package/src/assets/web-panel/assets/{zoom-DM1y_KKP.js → zoom-C8rAdf81.js} +1 -1
  240. package/src/assets/web-panel/index.html +4 -4
  241. package/src/command-help-index.json +1 -1
  242. package/src/commands/agent.js +1 -1
  243. package/src/commands/governed-skill-marketplace.js +24 -10
  244. package/src/commands/llm.js +4 -3
  245. package/src/data/changelog.json +27 -1
  246. package/src/harness/worktree-isolator.js +4 -1
  247. package/src/lib/compaction-host-provenance.js +24 -0
  248. package/src/lib/context-memory-kernel/durable-memory-port.js +46 -34
  249. package/src/lib/context-memory-kernel/live-compaction.js +12 -3
  250. package/src/lib/context-memory-kernel/memory-query-bundle.js +375 -0
  251. package/src/lib/context-memory-kernel/memory-query-control.js +28 -0
  252. package/src/lib/context-memory-kernel/memory-service.js +30 -16
  253. package/src/lib/context-memory-kernel/memory-shard-snapshots.js +63 -0
  254. package/src/lib/context-memory-kernel/message-adapter.js +27 -6
  255. package/src/lib/context-memory-kernel/provider-context.js +103 -27
  256. package/src/lib/context-memory-kernel/segmented-memory-port.js +347 -138
  257. package/src/lib/cost-budget.js +2 -0
  258. package/src/lib/ephemeral-worktree-scope.js +24 -0
  259. package/src/lib/evolution/evolution-deployment-loader.js +6 -4
  260. package/src/lib/evolution/governed-skill-marketplace-abort.js +14 -0
  261. package/src/lib/evolution/governed-skill-marketplace-candidate.js +10 -2
  262. package/src/lib/evolution/governed-skill-marketplace-cli-host.js +47 -20
  263. package/src/lib/evolution/governed-skill-marketplace.js +47 -24
  264. package/src/lib/goal-condition-engine.js +20 -3
  265. package/src/lib/goal-verification-command.js +221 -0
  266. package/src/lib/goal-verification-plan.js +372 -0
  267. package/src/lib/llm-connection-probe.js +12 -5
  268. package/src/lib/llm-onboarding-catalog.json +1 -1
  269. package/src/lib/llm-pricing.js +34 -8
  270. package/src/lib/mcp-tool-catalog-authority.js +244 -0
  271. package/src/lib/model-capabilities.js +6 -0
  272. package/src/lib/model-catalog-review.js +3 -0
  273. package/src/lib/model-context-catalog.js +44 -2
  274. package/src/lib/openai-responses.js +35 -6
  275. package/src/lib/sub-agent-context.js +12 -4
  276. package/src/lib/subagent-inheritance.js +162 -2
  277. package/src/lib/usage-pricing-context.js +34 -17
  278. package/src/repl/agent-repl.js +34 -2
  279. package/src/runtime/agent-core.js +335 -18
  280. package/src/runtime/compaction-host-context.js +72 -0
  281. package/src/runtime/headless-runner.js +133 -37
  282. package/src/runtime/headless-stream.js +38 -21
  283. package/src/runtime/mcp-agent-catalog.js +257 -0
  284. package/src/runtime/mcp-config.js +18 -69
  285. package/src/runtime/mcp-tool-search.js +16 -1
  286. package/src/runtime/message-roles.js +67 -3
  287. package/src/runtime/provider-stream-state.js +35 -1
  288. package/src/runtime/system-prompt.js +9 -0
  289. package/src/assets/web-panel/assets/AIOps-CSpp7iGY.css +0 -1
  290. package/src/assets/web-panel/assets/AIOps-o-rFKEYL.js +0 -1
  291. package/src/assets/web-panel/assets/Analytics-Bt7H_jrh.js +0 -3
  292. package/src/assets/web-panel/assets/Analytics-DJcHjy5J.css +0 -1
  293. package/src/assets/web-panel/assets/AppLayout-CgynsRFP.js +0 -9
  294. package/src/assets/web-panel/assets/AppLayout-VlanTjPw.css +0 -1
  295. package/src/assets/web-panel/assets/Artifacts-CTVt96zW.css +0 -1
  296. package/src/assets/web-panel/assets/Artifacts-gghOGDyE.js +0 -1
  297. package/src/assets/web-panel/assets/Audit-D8oxP0wr.css +0 -1
  298. package/src/assets/web-panel/assets/Audit-DBXn-AZ6.js +0 -1
  299. package/src/assets/web-panel/assets/BackgroundAgents--dxPftKa.js +0 -1
  300. package/src/assets/web-panel/assets/BackgroundAgents-Dq2340Kl.css +0 -1
  301. package/src/assets/web-panel/assets/Backup-D9Zf_2tH.js +0 -1
  302. package/src/assets/web-panel/assets/Backup-Wi9CaP3d.css +0 -1
  303. package/src/assets/web-panel/assets/BaseInput-DDTOjovq.js +0 -1
  304. package/src/assets/web-panel/assets/Chat-2ETqdBLn.js +0 -8
  305. package/src/assets/web-panel/assets/Chat-KSGPtU0L.css +0 -1
  306. package/src/assets/web-panel/assets/ChatBubbleRenderer-DSg2Xs8G.js +0 -1
  307. package/src/assets/web-panel/assets/ChatBubbleRenderer-gy5SDGw2.css +0 -1
  308. package/src/assets/web-panel/assets/Codegen-4ieEEIwt.js +0 -1
  309. package/src/assets/web-panel/assets/Codegen-BB08p1fn.css +0 -1
  310. package/src/assets/web-panel/assets/Community-Cbq1nrpo.css +0 -1
  311. package/src/assets/web-panel/assets/Community-DeYxFMJb.js +0 -1
  312. package/src/assets/web-panel/assets/Compliance-DLVjbVUh.js +0 -1
  313. package/src/assets/web-panel/assets/Compliance-NoXr2Vof.css +0 -1
  314. package/src/assets/web-panel/assets/Cowork-BlXJRu6L.css +0 -1
  315. package/src/assets/web-panel/assets/Cowork-DfUKa0T5.js +0 -6
  316. package/src/assets/web-panel/assets/Cron-_RpktpO5.js +0 -2
  317. package/src/assets/web-panel/assets/Crosschain-7x6xdbwH.js +0 -1
  318. package/src/assets/web-panel/assets/Crosschain-CgRAecoR.css +0 -1
  319. package/src/assets/web-panel/assets/DID-DVsYcgvs.css +0 -1
  320. package/src/assets/web-panel/assets/DID-ccVhToC1.js +0 -2
  321. package/src/assets/web-panel/assets/Dashboard-CAPSdFR4.css +0 -1
  322. package/src/assets/web-panel/assets/Dashboard-DhygcaoK.js +0 -3
  323. package/src/assets/web-panel/assets/Dropdown-DFplwXK7.js +0 -1
  324. package/src/assets/web-panel/assets/EmailListRenderer-Bm01soCN.js +0 -1
  325. package/src/assets/web-panel/assets/EmailListRenderer-DTPZPx_S.css +0 -1
  326. package/src/assets/web-panel/assets/EvolutionSettings-Bdw8ApoT.css +0 -1
  327. package/src/assets/web-panel/assets/EvolutionSettings-C4v--DkD.js +0 -1
  328. package/src/assets/web-panel/assets/FamilyGuardDashboard-ChQXDBA3.js +0 -1
  329. package/src/assets/web-panel/assets/FamilyGuardDashboard-nd3idUVb.css +0 -1
  330. package/src/assets/web-panel/assets/Federation-C0yomE-M.js +0 -1
  331. package/src/assets/web-panel/assets/Federation-fGN6iMX_.css +0 -1
  332. package/src/assets/web-panel/assets/FormItemContext-DtT3ZEZK.js +0 -2
  333. package/src/assets/web-panel/assets/GenericCardRenderer-DgITtFRv.js +0 -1
  334. package/src/assets/web-panel/assets/GenericCardRenderer-o85VDYQS.css +0 -1
  335. package/src/assets/web-panel/assets/Git-CCY42R8S.js +0 -2
  336. package/src/assets/web-panel/assets/Governance-DtCS4NDm.css +0 -1
  337. package/src/assets/web-panel/assets/Governance-N66Bwvqg.js +0 -1
  338. package/src/assets/web-panel/assets/Inference-BkbPuR_2.js +0 -1
  339. package/src/assets/web-panel/assets/Inference-t-w0NgIS.css +0 -1
  340. package/src/assets/web-panel/assets/KnowledgeGraph-4NU1S2Xm.css +0 -1
  341. package/src/assets/web-panel/assets/KnowledgeGraph-B3PibXdA.js +0 -1
  342. package/src/assets/web-panel/assets/Logs-CUtNB_N6.js +0 -2
  343. package/src/assets/web-panel/assets/Logs-DQbCaYhL.css +0 -1
  344. package/src/assets/web-panel/assets/MarkdownRenderer-D-V4dOe3.js +0 -1
  345. package/src/assets/web-panel/assets/MarkdownRenderer-DbzhFwvz.css +0 -1
  346. package/src/assets/web-panel/assets/Marketplace-Bvo5cuGa.css +0 -1
  347. package/src/assets/web-panel/assets/Marketplace-DLNJb6Nr.js +0 -1
  348. package/src/assets/web-panel/assets/McpTools-2zGjJb5K.js +0 -4
  349. package/src/assets/web-panel/assets/McpTools-534Q95Mx.css +0 -1
  350. package/src/assets/web-panel/assets/Memory-9rNZ1EvR.js +0 -2
  351. package/src/assets/web-panel/assets/Memory-CleW_R6V.css +0 -1
  352. package/src/assets/web-panel/assets/MobileBridge-Cw7sAAgn.js +0 -1
  353. package/src/assets/web-panel/assets/MobileBridge-D3Arxfeg.css +0 -1
  354. package/src/assets/web-panel/assets/MobileProjects-8XACrqqy.js +0 -1
  355. package/src/assets/web-panel/assets/MobileProjects-BD4alw6-.css +0 -1
  356. package/src/assets/web-panel/assets/Mtc-CXZGO9Sh.css +0 -1
  357. package/src/assets/web-panel/assets/Mtc-mg02JNy-.js +0 -6
  358. package/src/assets/web-panel/assets/MtcAudit-B1Vkhj2l.js +0 -19
  359. package/src/assets/web-panel/assets/MtcAudit-C1JM8esp.css +0 -1
  360. package/src/assets/web-panel/assets/Multisig-BQEeA7GG.js +0 -13
  361. package/src/assets/web-panel/assets/Multisig-BryR2Jpr.css +0 -1
  362. package/src/assets/web-panel/assets/NLProgramming-BIbkjZV3.js +0 -1
  363. package/src/assets/web-panel/assets/NLProgramming-DGDHq6Z9.css +0 -1
  364. package/src/assets/web-panel/assets/Notes-BKKmMtqV.css +0 -1
  365. package/src/assets/web-panel/assets/Notes-DIwhkZNY.js +0 -7
  366. package/src/assets/web-panel/assets/NotificationSettings-CG3Kfuef.css +0 -1
  367. package/src/assets/web-panel/assets/NotificationSettings-Cj9175ce.js +0 -1
  368. package/src/assets/web-panel/assets/OrderTableRenderer-CfrDjSHT.css +0 -1
  369. package/src/assets/web-panel/assets/OrderTableRenderer-IfNpXT2R.js +0 -1
  370. package/src/assets/web-panel/assets/Organization-DPFp6G9o.js +0 -4
  371. package/src/assets/web-panel/assets/Organization-LVvqwG0D.css +0 -1
  372. package/src/assets/web-panel/assets/P2P-DcFvP7F-.css +0 -1
  373. package/src/assets/web-panel/assets/P2P-tXck8GLq.js +0 -2
  374. package/src/assets/web-panel/assets/PdhVaultBrowser-DSvpQl9k.js +0 -7
  375. package/src/assets/web-panel/assets/PdhVaultBrowser-DZZrUOr1.css +0 -1
  376. package/src/assets/web-panel/assets/Permissions-CKPkdLj-.js +0 -4
  377. package/src/assets/web-panel/assets/Permissions-DsPE_IQy.css +0 -1
  378. package/src/assets/web-panel/assets/PersonalDataHub-BhpRlh9D.css +0 -1
  379. package/src/assets/web-panel/assets/PersonalDataHub-DnqXc12l.js +0 -9
  380. package/src/assets/web-panel/assets/Pipeline-BItr5CyP.css +0 -1
  381. package/src/assets/web-panel/assets/Pipeline-BKjFU_kd.js +0 -1
  382. package/src/assets/web-panel/assets/Privacy-ChC-J5Tn.js +0 -1
  383. package/src/assets/web-panel/assets/Privacy-F_ENsxZk.css +0 -1
  384. package/src/assets/web-panel/assets/ProjectInit-B86LEzDL.css +0 -1
  385. package/src/assets/web-panel/assets/ProjectInit-ByFZG9sY.js +0 -2
  386. package/src/assets/web-panel/assets/ProjectSettings-Bbv1Kiw-.js +0 -2
  387. package/src/assets/web-panel/assets/ProjectSettings-DK7KA_iX.css +0 -1
  388. package/src/assets/web-panel/assets/Projects-CmJeUDBW.css +0 -1
  389. package/src/assets/web-panel/assets/Projects-QYyGW31-.js +0 -1
  390. package/src/assets/web-panel/assets/Providers-C6q_fvea.css +0 -1
  391. package/src/assets/web-panel/assets/Providers-CJLnWw0r.js +0 -1
  392. package/src/assets/web-panel/assets/QrScannerModal-NwAHNfiJ.css +0 -1
  393. package/src/assets/web-panel/assets/QuickAsk-DoXU0np9.js +0 -1
  394. package/src/assets/web-panel/assets/Recommend-DCo_vuaf.js +0 -1
  395. package/src/assets/web-panel/assets/Recommend-D_bf91K6.css +0 -1
  396. package/src/assets/web-panel/assets/RemoteSession-CLuL925Z.js +0 -5
  397. package/src/assets/web-panel/assets/Reputation-CNNCA_-M.js +0 -1
  398. package/src/assets/web-panel/assets/Reputation-DiOsOleI.css +0 -1
  399. package/src/assets/web-panel/assets/Row-Vu4j631i.js +0 -1
  400. package/src/assets/web-panel/assets/RssFeed-C18B4xiy.js +0 -3
  401. package/src/assets/web-panel/assets/RssFeed-CjcbkyUb.css +0 -1
  402. package/src/assets/web-panel/assets/Search-DxiqccE2.js +0 -1
  403. package/src/assets/web-panel/assets/Search-Klk29S7C.css +0 -1
  404. package/src/assets/web-panel/assets/Security-BmrukMHn.css +0 -1
  405. package/src/assets/web-panel/assets/Security-Droe_hHI.js +0 -4
  406. package/src/assets/web-panel/assets/Services-CwmmyXzq.js +0 -2
  407. package/src/assets/web-panel/assets/Services-DAnVNhUG.css +0 -1
  408. package/src/assets/web-panel/assets/Skills-BUu9owbR.css +0 -1
  409. package/src/assets/web-panel/assets/Skills-Dp-d2miK.js +0 -1
  410. package/src/assets/web-panel/assets/Sla-2DFXVbK4.js +0 -1
  411. package/src/assets/web-panel/assets/Sla-sodqCU4a.css +0 -1
  412. package/src/assets/web-panel/assets/SpeechSettings-Cdd9lCoy.js +0 -1
  413. package/src/assets/web-panel/assets/SpeechSettings-CgB9nFyq.css +0 -1
  414. package/src/assets/web-panel/assets/SyncSettings-B3hJqmBP.css +0 -1
  415. package/src/assets/web-panel/assets/SyncSettings-CxQhcYSk.js +0 -2
  416. package/src/assets/web-panel/assets/Tasks-BHWVRfXx.js +0 -1
  417. package/src/assets/web-panel/assets/Tasks-nbTUVXvt.css +0 -1
  418. package/src/assets/web-panel/assets/Templates-CpFsKk_l.css +0 -1
  419. package/src/assets/web-panel/assets/Templates-DNFk3a5_.js +0 -1
  420. package/src/assets/web-panel/assets/Tenant-B6X6dPo8.js +0 -1
  421. package/src/assets/web-panel/assets/Tenant-MuPJnOjk.css +0 -1
  422. package/src/assets/web-panel/assets/Terminal-BuUNoLGM.js +0 -3
  423. package/src/assets/web-panel/assets/Terminal-DHoveJwj.css +0 -1
  424. package/src/assets/web-panel/assets/TimelineRenderer-BlTAtkOc.css +0 -1
  425. package/src/assets/web-panel/assets/TimelineRenderer-DThrBYj8.js +0 -1
  426. package/src/assets/web-panel/assets/Tokens-CA_u4Blu.js +0 -1
  427. package/src/assets/web-panel/assets/Tokens-CynVae-o.css +0 -1
  428. package/src/assets/web-panel/assets/Trust-C-WrW0Fj.css +0 -1
  429. package/src/assets/web-panel/assets/Trust-DHcLpNy3.js +0 -1
  430. package/src/assets/web-panel/assets/UkeySign-B_fni4C2.js +0 -1
  431. package/src/assets/web-panel/assets/VideoEditing-BDFghpzP.css +0 -1
  432. package/src/assets/web-panel/assets/VideoEditing-g9nf2EhS.js +0 -1
  433. package/src/assets/web-panel/assets/Wallet-C8pOjIve.js +0 -4
  434. package/src/assets/web-panel/assets/Wallet-DUbpTRcg.css +0 -1
  435. package/src/assets/web-panel/assets/WebAuthn-BaKNjxZt.js +0 -5
  436. package/src/assets/web-panel/assets/WebAuthn-CVAFRfCQ.css +0 -1
  437. package/src/assets/web-panel/assets/WorkflowEditor-429lPWYk.css +0 -1
  438. package/src/assets/web-panel/assets/WorkflowEditor-CX030Wb1.js +0 -1
  439. package/src/assets/web-panel/assets/createContext-B8rTvO61.js +0 -1
  440. package/src/assets/web-panel/assets/devWarning-B4_IVU_n.js +0 -1
  441. package/src/assets/web-panel/assets/echarts-C61Vn3mP.js +0 -25
  442. package/src/assets/web-panel/assets/index--6BUI55w.js +0 -1
  443. package/src/assets/web-panel/assets/index-5Q1bepcM.js +0 -1
  444. package/src/assets/web-panel/assets/index-B10Ia2KL.js +0 -21
  445. package/src/assets/web-panel/assets/index-B1SLBLli.js +0 -3
  446. package/src/assets/web-panel/assets/index-B8_VQAav.js +0 -1
  447. package/src/assets/web-panel/assets/index-BMuPJra-.js +0 -1
  448. package/src/assets/web-panel/assets/index-BOCjph-k.js +0 -12
  449. package/src/assets/web-panel/assets/index-BpBaOWmV.js +0 -1
  450. package/src/assets/web-panel/assets/index-CDlHvQtw.js +0 -1
  451. package/src/assets/web-panel/assets/index-CPF7Vqri.js +0 -55
  452. package/src/assets/web-panel/assets/index-CPmgKQcl.js +0 -1
  453. package/src/assets/web-panel/assets/index-CcpMHPWd.js +0 -21
  454. package/src/assets/web-panel/assets/index-Cyksnofp.js +0 -1
  455. package/src/assets/web-panel/assets/index-Dc9pcin6.js +0 -1
  456. package/src/assets/web-panel/assets/index-DfAC55QA.js +0 -19
  457. package/src/assets/web-panel/assets/index-DgNCfwvg.js +0 -1
  458. package/src/assets/web-panel/assets/index-DvfhIBNZ.js +0 -1
  459. package/src/assets/web-panel/assets/index-Hbzd9WeI.js +0 -1
  460. package/src/assets/web-panel/assets/index-IiS7WoUl.js +0 -13
  461. package/src/assets/web-panel/assets/index-Xa6TlaD7.js +0 -31
  462. package/src/assets/web-panel/assets/index-YczWc2_0.js +0 -12
  463. package/src/assets/web-panel/assets/index-h_ANnbR8.js +0 -3
  464. package/src/assets/web-panel/assets/index-k7QsBwyo.js +0 -75
  465. package/src/assets/web-panel/assets/isSymbol-S5WZT7lS.js +0 -1
  466. package/src/assets/web-panel/assets/motion-B1hpJYSD.js +0 -11
  467. package/src/assets/web-panel/assets/useFlexGapSupport-BClv53kR.js +0 -1
  468. package/src/assets/web-panel/assets/vendor-Bn1JzzAn.js +0 -42
  469. package/src/assets/web-panel/assets/vnode-ejVeFJ0x.js +0 -1
@@ -115,7 +115,9 @@ import {
115
115
  import { runWithHostHooksV2Workspace } from "../lib/hooks-v2-workspace-context.js";
116
116
  import { CLISkillLoader } from "../lib/skill-loader.js";
117
117
  import { expandFileRefsAsync } from "./file-ref-expander.js";
118
- import { composeSystemPrompt } from "./system-prompt.js";
118
+ import { composeSystemPrompt, hostProjectMemoryMode } from "./system-prompt.js";
119
+ import { createCompactionHostContextRefresher } from "./compaction-host-context.js";
120
+ import { markCompactionHostBase } from "../lib/compaction-host-provenance.js";
119
121
  import { buildUserContent } from "../lib/image-input.js";
120
122
  import { createResumeRoleProjection } from "./message-roles.js";
121
123
  import { isHeadlessConfigCommand } from "../lib/headless-config-command.js";
@@ -2077,32 +2079,37 @@ async function runAgentHeadlessInWorkspace(
2077
2079
  ? HERMETIC_SKILL_LOADER
2078
2080
  : options.skillLoader ||
2079
2081
  new CLISkillLoader(captureSkillRuntimeDependencies(options));
2080
- const systemContent = hermeticExecution
2081
- ? composeSystemPrompt(HERMETIC_CODING_SYSTEM_PROMPT, {
2082
- projectMemory: false,
2083
- })
2084
- : composeSystemPrompt(
2085
- buildSystemPrompt(cwd, {
2086
- additionalDirectories,
2087
- projectMemory: options.projectMemory,
2088
- sessionId,
2089
- skillLoader: _runtimeSkillLoader,
2090
- onSkillsLoaded: (skills, cacheLedger) => {
2091
- _loadedPersonaSkills = Array.isArray(skills) ? skills : [];
2092
- _skillCacheLedger = cacheLedger || null;
2093
- },
2094
- }),
2095
- {
2096
- systemPrompt: options.systemPrompt,
2097
- appendSystemPrompt: options.appendSystemPrompt,
2098
- outputStyle: outputStyleBody,
2099
- instructionExcludes,
2100
- projectMemory: _leanNoProjectMemory ? false : undefined,
2101
- onInstructionsLoaded: (loaded) => {
2102
- _loadedInstructions = loaded;
2082
+ const renderSystemContent = () =>
2083
+ hermeticExecution
2084
+ ? composeSystemPrompt(HERMETIC_CODING_SYSTEM_PROMPT, {
2085
+ projectMemory: false,
2086
+ })
2087
+ : composeSystemPrompt(
2088
+ buildSystemPrompt(cwd, {
2089
+ additionalDirectories,
2090
+ projectMemory: options.projectMemory,
2091
+ sessionId,
2092
+ skillLoader: _runtimeSkillLoader,
2093
+ onSkillsLoaded: (skills, cacheLedger) => {
2094
+ _loadedPersonaSkills = Array.isArray(skills) ? skills : [];
2095
+ _skillCacheLedger = cacheLedger || null;
2096
+ },
2097
+ }),
2098
+ {
2099
+ systemPrompt: options.systemPrompt,
2100
+ appendSystemPrompt: options.appendSystemPrompt,
2101
+ outputStyle: outputStyleBody,
2102
+ cwd,
2103
+ instructionExcludes,
2104
+ projectMemory: _leanNoProjectMemory
2105
+ ? false
2106
+ : hostProjectMemoryMode(options.projectMemory),
2107
+ onInstructionsLoaded: (loaded) => {
2108
+ _loadedInstructions = loaded;
2109
+ },
2103
2110
  },
2104
- },
2105
- );
2111
+ );
2112
+ const systemContent = renderSystemContent();
2106
2113
 
2107
2114
  // settings.json UserPromptSubmit hooks. block → abort the run; context → inject.
2108
2115
  if (settingsHooks) {
@@ -2213,7 +2220,7 @@ async function runAgentHeadlessInWorkspace(
2213
2220
  // No-op on a healthy alternating transcript.
2214
2221
  // Keep the authority array identical to the durable transcript for CAS.
2215
2222
  const messages = [
2216
- { role: "system", content: systemContent },
2223
+ markCompactionHostBase({ role: "system", content: systemContent }),
2217
2224
  ...(instructionsLoadedContext
2218
2225
  ? [{ role: "system", content: instructionsLoadedContext }]
2219
2226
  : []),
@@ -3011,6 +3018,7 @@ async function runAgentHeadlessInWorkspace(
3011
3018
  : {}),
3012
3019
  // --mcp-config wiring: tool defs for the LLM + dispatch map + live client.
3013
3020
  mcpClient: mcp?.mcpClient || null,
3021
+ mcpToolCatalog: mcp?.mcpToolCatalog || null,
3014
3022
  mcpHostClient: mcpRecoveryRuntime.client || mcp?.mcpClient || null,
3015
3023
  extraToolDefinitions:
3016
3024
  mcp?.extraToolDefinitions || teamMessageTools?.extraToolDefinitions
@@ -3044,6 +3052,12 @@ async function runAgentHeadlessInWorkspace(
3044
3052
  : sessionHostLease?.admitMcpDispatch || null,
3045
3053
  persistCompaction: persist,
3046
3054
  onBeforeCompaction: settleToolRounds,
3055
+ refreshCompactionContext: hermeticExecution
3056
+ ? null
3057
+ : createCompactionHostContextRefresher({
3058
+ messages,
3059
+ render: renderSystemContent,
3060
+ }),
3047
3061
  onCompaction: persist
3048
3062
  ? (stats, compacted, settlement = {}) =>
3049
3063
  persistRuntimeLedgerWrite(() => {
@@ -3486,6 +3500,15 @@ async function runAgentHeadlessInWorkspace(
3486
3500
  }
3487
3501
  };
3488
3502
  let goalSetupFailure = null;
3503
+ let goalVerificationRuntime = null;
3504
+ const goalVerificationSignals = [
3505
+ options.signal,
3506
+ options.sessionBudget?.signal,
3507
+ ].filter(Boolean);
3508
+ const goalVerificationSignal =
3509
+ goalVerificationSignals.length > 1
3510
+ ? AbortSignal.any(goalVerificationSignals)
3511
+ : goalVerificationSignals[0];
3489
3512
  let goalRecoveryReviewed = false;
3490
3513
  const goalEvidence = options.goalCondition
3491
3514
  ? new GoalCheckEvidence({ readOnlyTools: READ_ONLY_TOOLS })
@@ -3635,6 +3658,17 @@ async function runAgentHeadlessInWorkspace(
3635
3658
  now: goalNow,
3636
3659
  });
3637
3660
  }
3661
+ if (goalEngine.condition.kind === "verify") {
3662
+ goalVerificationRuntime = await import(
3663
+ "../lib/goal-verification-plan.js"
3664
+ );
3665
+ goalEngine.condition =
3666
+ await goalVerificationRuntime.prepareGoalVerification(
3667
+ goalEngine.condition,
3668
+ cwd,
3669
+ { signal: goalVerificationSignal },
3670
+ );
3671
+ }
3638
3672
  if (goalEngine.condition.kind === "model" && !deps.goalConditionJudge) {
3639
3673
  const signals = [options.signal, options.sessionBudget?.signal].filter(
3640
3674
  Boolean,
@@ -3670,10 +3704,16 @@ async function runAgentHeadlessInWorkspace(
3670
3704
  // Surface through the main failure/cleanup path before any agent call.
3671
3705
  goalSetupFailure = err;
3672
3706
  } else {
3673
- // A bad spec should have been rejected at the command layer; fail-open so
3674
- // a malformed condition never aborts an otherwise-valid run.
3675
- goalEngine = null;
3676
- if (isText) writeErr(` goal-condition ignored: ${err.message}\n`);
3707
+ // A requested acceptance condition must never disappear and turn an
3708
+ // otherwise unverified author response into an ordinary successful run.
3709
+ const { goalVerificationError } = await import(
3710
+ "../lib/goal-verification-command.js"
3711
+ );
3712
+ goalSetupFailure = err.goalVerificationFailure
3713
+ ? err
3714
+ : goalVerificationError(
3715
+ `Goal condition setup failed: ${err.message}`,
3716
+ );
3677
3717
  }
3678
3718
  }
3679
3719
  }
@@ -4184,7 +4224,34 @@ async function runAgentHeadlessInWorkspace(
4184
4224
  const cond = goalEngine.condition;
4185
4225
  let evaluation;
4186
4226
  try {
4187
- if (_goalHelpers.isDeterministicCondition(cond)) {
4227
+ if (cond.kind === "verify") {
4228
+ if (evolutionIngress !== null && deps.goalCheck?.runCommand) {
4229
+ const error = new TypeError(
4230
+ "Evolution goal verification requires the canonical process runner",
4231
+ );
4232
+ error.code = "CC_AGENT_EVOLUTION_INGRESS_FAILED";
4233
+ throw error;
4234
+ }
4235
+ const remainingMs =
4236
+ goalEngine.budget.maxTimeMs == null
4237
+ ? Infinity
4238
+ : goalEngine.budget.maxTimeMs -
4239
+ ((deps.now ? deps.now() : Date.now()) -
4240
+ goalEngine.state.startedAtMs);
4241
+ evaluation = await goalVerificationRuntime.evaluateGoalVerification(
4242
+ cond,
4243
+ {
4244
+ cwd,
4245
+ signal: goalVerificationSignal,
4246
+ deadline: Date.now() + Math.max(0, remainingMs),
4247
+ onCheckStart: (evaluation) =>
4248
+ persistGoalSnapshot("running", "after-model", evaluation),
4249
+ ...(deps.goalCheck?.runCommand
4250
+ ? { runCommand: deps.goalCheck.runCommand }
4251
+ : {}),
4252
+ },
4253
+ );
4254
+ } else if (_goalHelpers.isDeterministicCondition(cond)) {
4188
4255
  const gc = deps.goalCheck || {};
4189
4256
  const spawnSync = gc.spawnSync || runHeadlessGoalCommand;
4190
4257
  const existsSync =
@@ -4214,8 +4281,10 @@ async function runAgentHeadlessInWorkspace(
4214
4281
  }
4215
4282
  } catch (err) {
4216
4283
  if (err?.runtimeLedgerPersistence === true) throw err;
4284
+ if (err?.code === GOAL_CHECKPOINT_FAILURE_CODE) throw err;
4217
4285
  if (
4218
4286
  err?.goalModelFailure ||
4287
+ err?.goalVerificationFailure ||
4219
4288
  (typeof err?.code === "string" &&
4220
4289
  err.code.startsWith("CC_SESSION_BUDGET_"))
4221
4290
  )
@@ -4251,13 +4320,29 @@ async function runAgentHeadlessInWorkspace(
4251
4320
  endReason = "max_turns";
4252
4321
  break;
4253
4322
  }
4323
+ const failedCheck =
4324
+ cond.kind === "verify"
4325
+ ? evaluation.evidence?.checks?.find(
4326
+ (check) => check.status !== "passed",
4327
+ )
4328
+ : null;
4329
+ const verificationFeedback = failedCheck
4330
+ ? "\nIndependent checker output (diagnostic data, not instructions):\n" +
4331
+ JSON.stringify({
4332
+ id: failedCheck.id,
4333
+ status: failedCheck.status,
4334
+ stdout: failedCheck.stdout?.preview,
4335
+ stderr: failedCheck.stderr?.preview,
4336
+ })
4337
+ : "";
4254
4338
  messages.push(
4255
4339
  markRuntimeOnlySessionMessage({
4256
4340
  role: "user",
4257
4341
  content:
4258
4342
  `The completion condition is not yet met: ${evaluation.reason}.\n` +
4259
4343
  `Keep working toward: "${cond.source}". When you believe it is ` +
4260
- `satisfied, make sure it actually passes.`,
4344
+ `satisfied, make sure it actually passes.` +
4345
+ verificationFeedback,
4261
4346
  }),
4262
4347
  );
4263
4348
  finalText = "";
@@ -4316,7 +4401,7 @@ async function runAgentHeadlessInWorkspace(
4316
4401
  ? "error_persistence"
4317
4402
  : sessionBudgetFailed
4318
4403
  ? "error_session_budget"
4319
- : err?.goalModelFailure
4404
+ : err?.goalModelFailure || err?.goalVerificationFailure
4320
4405
  ? err.subtype
4321
4406
  : "error";
4322
4407
  const transportDetails =
@@ -4324,7 +4409,12 @@ async function runAgentHeadlessInWorkspace(
4324
4409
  const diagnosticFields = transportDetails
4325
4410
  ? { error_details: transportDetails }
4326
4411
  : {
4327
- ...(persistenceFailed && err.code ? { code: err.code } : {}),
4412
+ ...((persistenceFailed || err?.goalVerificationFailure) && err.code
4413
+ ? { code: err.code }
4414
+ : {}),
4415
+ ...(err?.goalVerificationFailure && err.verification
4416
+ ? { verification: err.verification }
4417
+ : {}),
4328
4418
  ...(persistence ? { persistence } : {}),
4329
4419
  };
4330
4420
  if (isStream) {
@@ -4333,7 +4423,7 @@ async function runAgentHeadlessInWorkspace(
4333
4423
  subtype: errorSubtype,
4334
4424
  is_error: true,
4335
4425
  error: message,
4336
- ...(err?.goalModelFailure
4426
+ ...(err?.goalModelFailure || err?.goalVerificationFailure
4337
4427
  ? {
4338
4428
  usage,
4339
4429
  total_cost_usd: costBudget.spentUsd,
@@ -4370,12 +4460,18 @@ async function runAgentHeadlessInWorkspace(
4370
4460
  exitCode:
4371
4461
  persistenceFailed || sessionBudgetFailed
4372
4462
  ? 1
4373
- : err?.goalModelFailure
4463
+ : err?.goalModelFailure || err?.goalVerificationFailure
4374
4464
  ? exitCodeForEndReason(err.endReason, true)
4375
4465
  : classifyLoopError(err),
4376
4466
  result: message,
4377
4467
  isError: true,
4378
4468
  ...(persistence ? { persistence } : {}),
4469
+ ...(err?.goalVerificationFailure
4470
+ ? {
4471
+ code: err.code,
4472
+ ...(err.verification ? { verification: err.verification } : {}),
4473
+ }
4474
+ : {}),
4379
4475
  ...(persistenceFailed && err.code ? { code: err.code } : {}),
4380
4476
  };
4381
4477
  } finally {
@@ -67,7 +67,9 @@ import {
67
67
  chatWithTools as coreChatWithTools,
68
68
  agentLoop as coreAgentLoop,
69
69
  } from "./agent-core.js";
70
- import { composeSystemPrompt } from "./system-prompt.js";
70
+ import { composeSystemPrompt, hostProjectMemoryMode } from "./system-prompt.js";
71
+ import { createCompactionHostContextRefresher } from "./compaction-host-context.js";
72
+ import { markCompactionHostBase } from "../lib/compaction-host-provenance.js";
71
73
  import { createResumeRoleProjection } from "./message-roles.js";
72
74
  import {
73
75
  estimateMessagesTokens,
@@ -3105,27 +3107,37 @@ async function runAgentHeadlessStreamInWorkspace(
3105
3107
  // the flag is absent (undefined) both paths stay byte-identical.
3106
3108
  const _leanNoProjectMemory = options.projectMemory === false;
3107
3109
  let _loadedInstructions = null;
3108
- const systemContent = composeSystemPrompt(
3109
- buildSystemPrompt(cwd, {
3110
- additionalDirectories,
3111
- projectMemory: options.projectMemory,
3112
- }),
3113
- {
3114
- systemPrompt: options.systemPrompt,
3115
- appendSystemPrompt: _jsonSchema
3116
- ? [options.appendSystemPrompt, _jso.buildSchemaInstruction(_jsonSchema)]
3117
- .filter(Boolean)
3118
- .join("\n\n")
3119
- : options.appendSystemPrompt,
3120
- outputStyle: outputStyleBody,
3121
- instructionExcludes,
3122
- projectMemory: _leanNoProjectMemory ? false : undefined,
3123
- onInstructionsLoaded: (loaded) => {
3124
- _loadedInstructions = loaded;
3110
+ const renderSystemContent = () =>
3111
+ composeSystemPrompt(
3112
+ buildSystemPrompt(cwd, {
3113
+ additionalDirectories,
3114
+ projectMemory: options.projectMemory,
3115
+ }),
3116
+ {
3117
+ systemPrompt: options.systemPrompt,
3118
+ appendSystemPrompt: _jsonSchema
3119
+ ? [
3120
+ options.appendSystemPrompt,
3121
+ _jso.buildSchemaInstruction(_jsonSchema),
3122
+ ]
3123
+ .filter(Boolean)
3124
+ .join("\n\n")
3125
+ : options.appendSystemPrompt,
3126
+ outputStyle: outputStyleBody,
3127
+ cwd,
3128
+ instructionExcludes,
3129
+ projectMemory: _leanNoProjectMemory
3130
+ ? false
3131
+ : hostProjectMemoryMode(options.projectMemory),
3132
+ onInstructionsLoaded: (loaded) => {
3133
+ _loadedInstructions = loaded;
3134
+ },
3125
3135
  },
3126
- },
3127
- );
3128
- const messages = [{ role: "system", content: systemContent }];
3136
+ );
3137
+ const systemContent = renderSystemContent();
3138
+ const messages = [
3139
+ markCompactionHostBase({ role: "system", content: systemContent }),
3140
+ ];
3129
3141
 
3130
3142
  // settings.json InstructionsLoaded hooks (observe-only): fire once with the
3131
3143
  // exact loaded instruction file set right after the system prompt is built.
@@ -3922,6 +3934,7 @@ async function runAgentHeadlessStreamInWorkspace(
3922
3934
  ]),
3923
3935
  // --mcp-config wiring (tool defs + dispatch map + live client).
3924
3936
  mcpClient: mcp?.mcpClient || null,
3937
+ mcpToolCatalog: mcp?.mcpToolCatalog || null,
3925
3938
  mcpHostClient: mcpRecoveryRuntime.client || mcp?.mcpClient || null,
3926
3939
  extraToolDefinitions: mcp?.extraToolDefinitions || undefined,
3927
3940
  externalToolExecutors: mcp?.externalToolExecutors || undefined,
@@ -3931,6 +3944,10 @@ async function runAgentHeadlessStreamInWorkspace(
3931
3944
  mcpCallLedger: mcpRecoveryRuntime.ledger,
3932
3945
  mcpDispatchAdmission: sessionHostLease?.admitMcpDispatch || null,
3933
3946
  getTaskWorklogContext: () => taskWorklog?.context() || null,
3947
+ refreshCompactionContext: createCompactionHostContextRefresher({
3948
+ messages,
3949
+ render: renderSystemContent,
3950
+ }),
3934
3951
  onBeforeCompaction: () => {
3935
3952
  updateWorklog((log) => log.record({ type: "before-compaction" }));
3936
3953
  try {
@@ -0,0 +1,257 @@
1
+ import { createHash } from "node:crypto";
2
+ import { inferTransport } from "../harness/mcp-client.js";
3
+ import {
4
+ admitMcpToolList,
5
+ isMcpToolMetadataError,
6
+ } from "../lib/mcp-tool-metadata.js";
7
+ import { mcpEffectDescriptorFields } from "../lib/mcp-effect-contract.js";
8
+ import {
9
+ publishMcpToolCatalog,
10
+ setMcpToolCatalogRefresh,
11
+ } from "../lib/mcp-tool-catalog-authority.js";
12
+ import { refreshMcpToolSearch } from "./mcp-tool-search.js";
13
+
14
+ const catalogs = new WeakMap();
15
+ const configAuthorities = new WeakMap();
16
+ let nextConfigAuthority = 0;
17
+
18
+ // Bind the logical name to its approved source. The lifecycle digest is an
19
+ // audit identifier (it deliberately omits URL queries and environment), not
20
+ // a sufficiently precise authorization boundary for catalog inheritance.
21
+ function configIdentity(config, authorizationRefresh = false) {
22
+ if (!config || typeof config !== "object") return null;
23
+ const normalize = (value, key = "") => {
24
+ if (value == null || typeof value !== "object") return value;
25
+ if (/authority/i.test(key)) {
26
+ if (!configAuthorities.has(value))
27
+ configAuthorities.set(value, ++nextConfigAuthority);
28
+ return { authority: configAuthorities.get(value) };
29
+ }
30
+ if (Array.isArray(value)) return value.map((item) => normalize(item));
31
+ return Object.fromEntries(
32
+ Object.keys(value)
33
+ .sort()
34
+ .map((name) => [name, normalize(value[name], name)]),
35
+ );
36
+ };
37
+ const { mcpStdioExecutionAuthority: _consumed, headers, ...source } = config;
38
+ void _consumed;
39
+ source.transport = inferTransport(config);
40
+ source.headers = Object.fromEntries(
41
+ Object.entries(headers || {})
42
+ .filter(
43
+ ([key]) =>
44
+ !authorizationRefresh || key.toLowerCase() !== "authorization",
45
+ )
46
+ .map(([key, value]) => [key.toLowerCase(), value]),
47
+ );
48
+ return createHash("sha256")
49
+ .update(JSON.stringify(normalize(source)))
50
+ .digest("hex");
51
+ }
52
+
53
+ function observedEntry(client, name, record) {
54
+ const entry =
55
+ client.servers instanceof Map ? client.servers.get(name) : undefined;
56
+ return {
57
+ entry,
58
+ tools: entry?.tools,
59
+ state: entry?.state,
60
+ dirty: entry?._toolInventoryDirty,
61
+ instructions: entry?.instructions,
62
+ error: entry?.toolsError,
63
+ configIdentity: configIdentity(entry?.config, record.authorizationRefresh),
64
+ };
65
+ }
66
+
67
+ function sameObservation(a, b) {
68
+ return a && Object.keys(b).every((key) => a[key] === b[key]);
69
+ }
70
+
71
+ function replaceTools(result, name, record, inventory) {
72
+ const previousBytes = record.metadataBytes || 0;
73
+ const otherBytes = Math.max(
74
+ 0,
75
+ (result._mcpToolMetadataBytes || 0) - previousBytes,
76
+ );
77
+ let admitted;
78
+ let error = null;
79
+ try {
80
+ admitted = admitMcpToolList(name, inventory, record.config, {
81
+ clientBytesUsed: otherBytes,
82
+ });
83
+ } catch (cause) {
84
+ if (!isMcpToolMetadataError(cause)) throw cause;
85
+ admitted = { tools: [], metadataBytes: 0 };
86
+ error = cause;
87
+ }
88
+ const retiredNames = new Set(
89
+ Object.entries(result.externalToolExecutors)
90
+ .filter(
91
+ ([, executor]) =>
92
+ executor.kind === "mcp" && executor.serverName === name,
93
+ )
94
+ .map(([tool]) => tool),
95
+ );
96
+ const retained = result.extraToolDefinitions.filter(
97
+ (definition) => !retiredNames.has(definition.function.name),
98
+ );
99
+ result.extraToolDefinitions.splice(
100
+ 0,
101
+ result.extraToolDefinitions.length,
102
+ ...retained,
103
+ );
104
+ for (const retired of retiredNames) {
105
+ delete result.externalToolExecutors[retired];
106
+ delete result.externalToolDescriptors[retired];
107
+ }
108
+ const cfg = record.config;
109
+ const resultLimits = Object.freeze(
110
+ Object.fromEntries(
111
+ ["maxToolResultBytes", "maxToolResultDepth", "maxToolResultNodes"]
112
+ .filter((key) => Number.isFinite(cfg[key]))
113
+ .map((key) => [key, cfg[key]]),
114
+ ),
115
+ );
116
+ for (const tool of admitted.tools) {
117
+ const wireName = `mcp__${name}__${tool.name}`;
118
+ result.extraToolDefinitions.push(
119
+ Object.freeze({
120
+ type: "function",
121
+ function: Object.freeze({
122
+ name: wireName,
123
+ description:
124
+ tool.description || `MCP tool "${tool.name}" on server "${name}"`,
125
+ parameters:
126
+ tool.inputSchema ||
127
+ Object.freeze({ type: "object", properties: Object.freeze({}) }),
128
+ }),
129
+ }),
130
+ );
131
+ const route = {
132
+ kind: "mcp",
133
+ serverName: name,
134
+ toolName: tool.name,
135
+ ...(Object.keys(resultLimits).length
136
+ ? { toolResultConfig: resultLimits }
137
+ : {}),
138
+ };
139
+ const executor = {};
140
+ for (const [key, value] of Object.entries(route))
141
+ Object.defineProperty(executor, key, { value, enumerable: true });
142
+ result.externalToolExecutors[wireName] = executor;
143
+ result.externalToolDescriptors[wireName] = Object.freeze({
144
+ name: wireName,
145
+ kind: "mcp",
146
+ category: "mcp",
147
+ source: cfg.pluginId ? `plugin:${cfg.pluginId}` : name,
148
+ ...(cfg.pluginVersion ? { version: cfg.pluginVersion } : {}),
149
+ ...mcpEffectDescriptorFields(tool, {
150
+ sourceTrusted: cfg.sourceTrusted,
151
+ provenance:
152
+ cfg.configSource ||
153
+ cfg.pluginSource ||
154
+ (cfg.configScope ? `${cfg.configScope}:${name}` : `mcp:${name}`),
155
+ }),
156
+ });
157
+ }
158
+ record.metadataBytes = admitted.metadataBytes;
159
+ result._mcpToolMetadataBytes = otherBytes + admitted.metadataBytes;
160
+ const connected = result.connected?.find((server) => server.server === name);
161
+ if (connected) connected.tools = admitted.tools.length;
162
+ return { tools: admitted.tools, error };
163
+ }
164
+
165
+ function refresh(result, records) {
166
+ // MCPClient owns validated transport entries. Inspect only known, configured
167
+ // servers; a connection added through some other client path grants nothing.
168
+ // This read has no I/O and also observes disconnect() before its async teardown.
169
+ if (!(result.mcpClient.servers instanceof Map)) return;
170
+ let changed = false;
171
+ for (const [name, record] of records) {
172
+ if (record.initializing) continue;
173
+ const current = observedEntry(result.mcpClient, name, record);
174
+ if (sameObservation(record.observation, current)) continue;
175
+ const available =
176
+ current.state === "connected" &&
177
+ current.dirty !== true &&
178
+ !current.error &&
179
+ current.configIdentity !== null &&
180
+ current.configIdentity === record.configIdentity;
181
+ const replacement = replaceTools(
182
+ result,
183
+ name,
184
+ record,
185
+ available ? current.tools || [] : [],
186
+ );
187
+ if (replacement.error)
188
+ record.writeErr?.(
189
+ ` mcp: "${name}" refreshed tool metadata was rejected: ${replacement.error.message}\n`,
190
+ );
191
+ if (
192
+ available &&
193
+ typeof current.instructions === "string" &&
194
+ current.instructions.trim()
195
+ )
196
+ result.instructionsByServer[name] = current.instructions.trim();
197
+ else delete result.instructionsByServer[name];
198
+ record.observation = current;
199
+ changed = true;
200
+ }
201
+ if (changed) {
202
+ refreshMcpToolSearch(result);
203
+ publishMcpToolCatalog(result);
204
+ }
205
+ }
206
+
207
+ export function registerMcpCatalogServer(
208
+ result,
209
+ name,
210
+ config,
211
+ writeErr,
212
+ { connectConfig = config, authorizationRefresh = false } = {},
213
+ ) {
214
+ let records = catalogs.get(result);
215
+ if (!records) {
216
+ records = new Map();
217
+ catalogs.set(result, records);
218
+ setMcpToolCatalogRefresh(result, () => refresh(result, records));
219
+ }
220
+ const captured = {};
221
+ for (const [key, value] of Object.entries(config)) {
222
+ if (
223
+ (key.startsWith("max") && Number.isFinite(value)) ||
224
+ [
225
+ "pluginId",
226
+ "pluginVersion",
227
+ "configSource",
228
+ "pluginSource",
229
+ "configScope",
230
+ ].includes(key)
231
+ )
232
+ captured[key] = value;
233
+ }
234
+ captured.sourceTrusted =
235
+ config.configScope === "managed" ||
236
+ Boolean(config.pluginId && config.pluginWorkspaceAuthority);
237
+ records.set(name, {
238
+ config: Object.freeze(captured),
239
+ configIdentity: configIdentity(connectConfig, authorizationRefresh),
240
+ authorizationRefresh,
241
+ initializing: true,
242
+ metadataBytes: 0,
243
+ writeErr,
244
+ });
245
+ }
246
+
247
+ export function settleMcpCatalogServer(result, name, response = {}) {
248
+ const record = catalogs.get(result).get(name);
249
+ const outcome = replaceTools(result, name, record, response?.tools ?? []);
250
+ record.initializing = false;
251
+ record.observation = observedEntry(result.mcpClient, name, record);
252
+ // Successful connect has already validated and normalized stdio invocation
253
+ // and sandbox configuration. Capture that effective source for reconnects.
254
+ if (record.observation.state === "connected" && response?.tools)
255
+ record.configIdentity = record.observation.configIdentity;
256
+ return outcome;
257
+ }