chainlesschain 0.166.129 → 0.166.131

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 (473) hide show
  1. package/README.md +24 -2
  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-_zlP_Z6z.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-nMgYkH8H.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-i0owJaGP.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-DDXrvvm-.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-CaRUAOY_.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-fFkycCT4.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-ASRgSh_Y.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-DgGU_D0o.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-C_kELmV6.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-DE-ZxAv_.js → colors-DcTBrGvS.js} +1 -1
  170. package/src/assets/web-panel/assets/{compact-item-BowulLDi.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-Be7mK-iw.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-nLHTuHoT.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-DMKo49Um.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-DjC2TJeH.js → index-Brc0BF-k.js} +2 -2
  186. package/src/assets/web-panel/assets/{index-3Ql7xQLn.js → index-CG9YLDmI.js} +1 -1
  187. package/src/assets/web-panel/assets/{index-lN916819.js → index-CNHWMMDX.js} +1 -1
  188. package/src/assets/web-panel/assets/{index-DLCzaLH4.js → index-COuEJdmr.js} +3 -3
  189. package/src/assets/web-panel/assets/{index-BdzVLz-c.js → index-CRW3AWdS.js} +1 -1
  190. package/src/assets/web-panel/assets/{index-_cYsz4df.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-OH54KMLN.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-DEDVYN7D.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-Ao-LXr-d.js → index-Vo7A4aiN.js} +4 -4
  208. package/src/assets/web-panel/assets/{index-LVrxqU88.js → index-XdlYkgCa.js} +1 -1
  209. package/src/assets/web-panel/assets/{index-4KkYmFy5.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-Cvy4vdVW.js → index-lnTt0Jps.js} +2 -2
  212. package/src/assets/web-panel/assets/{index-D3lOYd9_.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-CXvy8HrM.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-BNhziAal.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-rFx211Cl.js → move-A_28O5T2.js} +1 -1
  222. package/src/assets/web-panel/assets/{mtc-parser-CEP1wN3R.js → mtc-parser-0zlMjabo.js} +1 -1
  223. package/src/assets/web-panel/assets/{omit-DacHd_Zm.js → omit-DF7mU3yG.js} +1 -1
  224. package/src/assets/web-panel/assets/{pickAttrs-Dqp58Ep2.js → pickAttrs-Cmt8liJP.js} +1 -1
  225. package/src/assets/web-panel/assets/{placementArrow-Cv6Rm0pV.js → placementArrow-DaMDC57b.js} +1 -1
  226. package/src/assets/web-panel/assets/{responsiveObserve-rNE0p9ZW.js → responsiveObserve-CHw_f2d3.js} +1 -1
  227. package/src/assets/web-panel/assets/{slide-C97JxD4S.js → slide-DJS9fFQq.js} +1 -1
  228. package/src/assets/web-panel/assets/{statusUtils-Cxk1gV9M.js → statusUtils-Bk3XdZwh.js} +1 -1
  229. package/src/assets/web-panel/assets/{styleChecker-CbtKKsPo.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-6c7qrpE_.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-OjxtBGe7.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-Cc1qKiSZ.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/constants.js +1 -1
  246. package/src/data/changelog.json +27 -1
  247. package/src/harness/worktree-isolator.js +4 -1
  248. package/src/lib/compaction-host-provenance.js +24 -0
  249. package/src/lib/context-memory-kernel/durable-memory-port.js +46 -34
  250. package/src/lib/context-memory-kernel/live-compaction.js +12 -3
  251. package/src/lib/context-memory-kernel/memory-query-bundle.js +375 -0
  252. package/src/lib/context-memory-kernel/memory-query-control.js +28 -0
  253. package/src/lib/context-memory-kernel/memory-service.js +30 -16
  254. package/src/lib/context-memory-kernel/memory-shard-snapshots.js +63 -0
  255. package/src/lib/context-memory-kernel/provider-context.js +55 -24
  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-assess.js +4 -1
  265. package/src/lib/goal-check-evidence.js +77 -9
  266. package/src/lib/goal-condition-engine.js +20 -3
  267. package/src/lib/goal-model-call.js +107 -0
  268. package/src/lib/goal-verification-command.js +221 -0
  269. package/src/lib/goal-verification-plan.js +372 -0
  270. package/src/lib/goal-workspace-evidence.js +299 -0
  271. package/src/lib/llm-connection-probe.js +12 -5
  272. package/src/lib/llm-onboarding-catalog.json +2 -2
  273. package/src/lib/llm-pricing.js +34 -8
  274. package/src/lib/llm-providers.js +1 -0
  275. package/src/lib/mcp-tool-catalog-authority.js +244 -0
  276. package/src/lib/model-capabilities.js +6 -0
  277. package/src/lib/model-catalog-review.js +3 -0
  278. package/src/lib/model-context-catalog.js +44 -2
  279. package/src/lib/openai-responses.js +35 -6
  280. package/src/lib/sub-agent-context.js +12 -4
  281. package/src/lib/subagent-inheritance.js +162 -2
  282. package/src/lib/task-model-selector.js +1 -1
  283. package/src/lib/usage-pricing-context.js +34 -17
  284. package/src/repl/agent-repl.js +34 -2
  285. package/src/runtime/agent-core.js +226 -10
  286. package/src/runtime/compaction-host-context.js +72 -0
  287. package/src/runtime/headless-runner.js +331 -141
  288. package/src/runtime/headless-stream.js +38 -21
  289. package/src/runtime/mcp-agent-catalog.js +257 -0
  290. package/src/runtime/mcp-config.js +18 -69
  291. package/src/runtime/mcp-tool-search.js +16 -1
  292. package/src/runtime/system-prompt.js +9 -0
  293. package/src/assets/web-panel/assets/AIOps-CSpp7iGY.css +0 -1
  294. package/src/assets/web-panel/assets/AIOps-CjPaaF2r.js +0 -1
  295. package/src/assets/web-panel/assets/Analytics-C7X31L8l.js +0 -3
  296. package/src/assets/web-panel/assets/Analytics-DJcHjy5J.css +0 -1
  297. package/src/assets/web-panel/assets/AppLayout-BmYa34Se.js +0 -9
  298. package/src/assets/web-panel/assets/AppLayout-VlanTjPw.css +0 -1
  299. package/src/assets/web-panel/assets/Artifacts-B_YKNjlp.js +0 -1
  300. package/src/assets/web-panel/assets/Artifacts-CTVt96zW.css +0 -1
  301. package/src/assets/web-panel/assets/Audit-5JsI67XQ.js +0 -1
  302. package/src/assets/web-panel/assets/Audit-D8oxP0wr.css +0 -1
  303. package/src/assets/web-panel/assets/BackgroundAgents-BL3QbzvS.js +0 -1
  304. package/src/assets/web-panel/assets/BackgroundAgents-Dq2340Kl.css +0 -1
  305. package/src/assets/web-panel/assets/Backup-BRmg-gTa.js +0 -1
  306. package/src/assets/web-panel/assets/Backup-Wi9CaP3d.css +0 -1
  307. package/src/assets/web-panel/assets/BaseInput-DNE7mT3K.js +0 -1
  308. package/src/assets/web-panel/assets/Chat-KSGPtU0L.css +0 -1
  309. package/src/assets/web-panel/assets/Chat-OYwAopdM.js +0 -8
  310. package/src/assets/web-panel/assets/ChatBubbleRenderer-Dtxw3Wgt.js +0 -1
  311. package/src/assets/web-panel/assets/ChatBubbleRenderer-gy5SDGw2.css +0 -1
  312. package/src/assets/web-panel/assets/Codegen-B9G2ngLI.js +0 -1
  313. package/src/assets/web-panel/assets/Codegen-BB08p1fn.css +0 -1
  314. package/src/assets/web-panel/assets/Community-B3Ta0mI_.js +0 -1
  315. package/src/assets/web-panel/assets/Community-Cbq1nrpo.css +0 -1
  316. package/src/assets/web-panel/assets/Compliance-Bn4Uq6U1.js +0 -1
  317. package/src/assets/web-panel/assets/Compliance-NoXr2Vof.css +0 -1
  318. package/src/assets/web-panel/assets/Cowork-BlXJRu6L.css +0 -1
  319. package/src/assets/web-panel/assets/Cowork-CO5NKD6r.js +0 -6
  320. package/src/assets/web-panel/assets/Cron-ByjNese0.js +0 -2
  321. package/src/assets/web-panel/assets/Crosschain-BN1FUYyi.js +0 -1
  322. package/src/assets/web-panel/assets/Crosschain-CgRAecoR.css +0 -1
  323. package/src/assets/web-panel/assets/DID-CUFX5RL3.js +0 -2
  324. package/src/assets/web-panel/assets/DID-DVsYcgvs.css +0 -1
  325. package/src/assets/web-panel/assets/Dashboard-CAPSdFR4.css +0 -1
  326. package/src/assets/web-panel/assets/Dashboard-D_2FDPBP.js +0 -3
  327. package/src/assets/web-panel/assets/Dropdown-lGOMtIzb.js +0 -1
  328. package/src/assets/web-panel/assets/EmailListRenderer-DA3Qf1S2.js +0 -1
  329. package/src/assets/web-panel/assets/EmailListRenderer-DTPZPx_S.css +0 -1
  330. package/src/assets/web-panel/assets/EvolutionSettings-Bdw8ApoT.css +0 -1
  331. package/src/assets/web-panel/assets/EvolutionSettings-DLcnicCr.js +0 -1
  332. package/src/assets/web-panel/assets/FamilyGuardDashboard-BPOSaIN1.js +0 -1
  333. package/src/assets/web-panel/assets/FamilyGuardDashboard-nd3idUVb.css +0 -1
  334. package/src/assets/web-panel/assets/Federation-DzJUCQq8.js +0 -1
  335. package/src/assets/web-panel/assets/Federation-fGN6iMX_.css +0 -1
  336. package/src/assets/web-panel/assets/FormItemContext-DVx1XNKx.js +0 -2
  337. package/src/assets/web-panel/assets/GenericCardRenderer-BkqzO_lh.js +0 -1
  338. package/src/assets/web-panel/assets/GenericCardRenderer-o85VDYQS.css +0 -1
  339. package/src/assets/web-panel/assets/Git-Dr_rdT_j.js +0 -2
  340. package/src/assets/web-panel/assets/Governance-DtCS4NDm.css +0 -1
  341. package/src/assets/web-panel/assets/Governance-DyVkZddw.js +0 -1
  342. package/src/assets/web-panel/assets/Inference-IN2YDd4v.js +0 -1
  343. package/src/assets/web-panel/assets/Inference-t-w0NgIS.css +0 -1
  344. package/src/assets/web-panel/assets/KnowledgeGraph-4NU1S2Xm.css +0 -1
  345. package/src/assets/web-panel/assets/KnowledgeGraph-Ceiy4n6N.js +0 -1
  346. package/src/assets/web-panel/assets/Logs-DQbCaYhL.css +0 -1
  347. package/src/assets/web-panel/assets/Logs-d7pIEAX2.js +0 -2
  348. package/src/assets/web-panel/assets/MarkdownRenderer-DbzhFwvz.css +0 -1
  349. package/src/assets/web-panel/assets/MarkdownRenderer-DmSl0MNI.js +0 -1
  350. package/src/assets/web-panel/assets/Marketplace-Bvo5cuGa.css +0 -1
  351. package/src/assets/web-panel/assets/Marketplace-uVE7U14g.js +0 -1
  352. package/src/assets/web-panel/assets/McpTools-534Q95Mx.css +0 -1
  353. package/src/assets/web-panel/assets/McpTools-DUfBM--y.js +0 -4
  354. package/src/assets/web-panel/assets/Memory-6gkcR02J.js +0 -2
  355. package/src/assets/web-panel/assets/Memory-CleW_R6V.css +0 -1
  356. package/src/assets/web-panel/assets/MobileBridge-Cl6ys2O9.js +0 -1
  357. package/src/assets/web-panel/assets/MobileBridge-D3Arxfeg.css +0 -1
  358. package/src/assets/web-panel/assets/MobileProjects-5P8jN4gf.js +0 -1
  359. package/src/assets/web-panel/assets/MobileProjects-BD4alw6-.css +0 -1
  360. package/src/assets/web-panel/assets/Mtc-CXZGO9Sh.css +0 -1
  361. package/src/assets/web-panel/assets/Mtc-DtiT1Kol.js +0 -6
  362. package/src/assets/web-panel/assets/MtcAudit-C1JM8esp.css +0 -1
  363. package/src/assets/web-panel/assets/MtcAudit-DZz8iiTE.js +0 -19
  364. package/src/assets/web-panel/assets/Multisig-BryR2Jpr.css +0 -1
  365. package/src/assets/web-panel/assets/Multisig-DFH3-fBJ.js +0 -13
  366. package/src/assets/web-panel/assets/NLProgramming-BYNuDOt-.js +0 -1
  367. package/src/assets/web-panel/assets/NLProgramming-DGDHq6Z9.css +0 -1
  368. package/src/assets/web-panel/assets/Notes-BCY4jgYy.js +0 -7
  369. package/src/assets/web-panel/assets/Notes-BKKmMtqV.css +0 -1
  370. package/src/assets/web-panel/assets/NotificationSettings-Bk2ltghU.js +0 -1
  371. package/src/assets/web-panel/assets/NotificationSettings-CG3Kfuef.css +0 -1
  372. package/src/assets/web-panel/assets/OrderTableRenderer-CfrDjSHT.css +0 -1
  373. package/src/assets/web-panel/assets/OrderTableRenderer-OdeXEGAn.js +0 -1
  374. package/src/assets/web-panel/assets/Organization-CY4_mSiV.js +0 -4
  375. package/src/assets/web-panel/assets/Organization-LVvqwG0D.css +0 -1
  376. package/src/assets/web-panel/assets/P2P-Bd96rBWQ.js +0 -2
  377. package/src/assets/web-panel/assets/P2P-DcFvP7F-.css +0 -1
  378. package/src/assets/web-panel/assets/PdhVaultBrowser-DZZrUOr1.css +0 -1
  379. package/src/assets/web-panel/assets/PdhVaultBrowser-JjnExxan.js +0 -7
  380. package/src/assets/web-panel/assets/Permissions-CW1PUJB0.js +0 -4
  381. package/src/assets/web-panel/assets/Permissions-DsPE_IQy.css +0 -1
  382. package/src/assets/web-panel/assets/PersonalDataHub-BNn9alTk.js +0 -9
  383. package/src/assets/web-panel/assets/PersonalDataHub-BhpRlh9D.css +0 -1
  384. package/src/assets/web-panel/assets/Pipeline-01_PBiUu.js +0 -1
  385. package/src/assets/web-panel/assets/Pipeline-BItr5CyP.css +0 -1
  386. package/src/assets/web-panel/assets/Privacy-BP4DlVGb.js +0 -1
  387. package/src/assets/web-panel/assets/Privacy-F_ENsxZk.css +0 -1
  388. package/src/assets/web-panel/assets/ProjectInit-B86LEzDL.css +0 -1
  389. package/src/assets/web-panel/assets/ProjectInit-CAMnQj4n.js +0 -2
  390. package/src/assets/web-panel/assets/ProjectSettings-DK7KA_iX.css +0 -1
  391. package/src/assets/web-panel/assets/ProjectSettings-DKxV5On_.js +0 -2
  392. package/src/assets/web-panel/assets/Projects-B_4kRnM8.js +0 -1
  393. package/src/assets/web-panel/assets/Projects-CmJeUDBW.css +0 -1
  394. package/src/assets/web-panel/assets/Providers-C6q_fvea.css +0 -1
  395. package/src/assets/web-panel/assets/Providers-DeqqZyUv.js +0 -1
  396. package/src/assets/web-panel/assets/QrScannerModal-NwAHNfiJ.css +0 -1
  397. package/src/assets/web-panel/assets/QuickAsk-Ln6qQidy.js +0 -1
  398. package/src/assets/web-panel/assets/Recommend-D_bf91K6.css +0 -1
  399. package/src/assets/web-panel/assets/Recommend-DeENA-y0.js +0 -1
  400. package/src/assets/web-panel/assets/RemoteSession-CRxSYxo4.js +0 -5
  401. package/src/assets/web-panel/assets/Reputation-B2kU2F0l.js +0 -1
  402. package/src/assets/web-panel/assets/Reputation-DiOsOleI.css +0 -1
  403. package/src/assets/web-panel/assets/Row-lV_nLlFq.js +0 -1
  404. package/src/assets/web-panel/assets/RssFeed-CjcbkyUb.css +0 -1
  405. package/src/assets/web-panel/assets/RssFeed-Df21mCdF.js +0 -3
  406. package/src/assets/web-panel/assets/Search-8_Dz4qU9.js +0 -1
  407. package/src/assets/web-panel/assets/Search-Klk29S7C.css +0 -1
  408. package/src/assets/web-panel/assets/Security-BmrukMHn.css +0 -1
  409. package/src/assets/web-panel/assets/Security-Cl5-PEcp.js +0 -4
  410. package/src/assets/web-panel/assets/Services-C5qgCqA7.js +0 -2
  411. package/src/assets/web-panel/assets/Services-DAnVNhUG.css +0 -1
  412. package/src/assets/web-panel/assets/Skills-BUu9owbR.css +0 -1
  413. package/src/assets/web-panel/assets/Skills-DWx01ZJ7.js +0 -1
  414. package/src/assets/web-panel/assets/Sla-I2gbgtW8.js +0 -1
  415. package/src/assets/web-panel/assets/Sla-sodqCU4a.css +0 -1
  416. package/src/assets/web-panel/assets/SpeechSettings-BqTikzfe.js +0 -1
  417. package/src/assets/web-panel/assets/SpeechSettings-CgB9nFyq.css +0 -1
  418. package/src/assets/web-panel/assets/SyncSettings-B3hJqmBP.css +0 -1
  419. package/src/assets/web-panel/assets/SyncSettings-D3zCpBFV.js +0 -2
  420. package/src/assets/web-panel/assets/Tasks-DjMWII45.js +0 -1
  421. package/src/assets/web-panel/assets/Tasks-nbTUVXvt.css +0 -1
  422. package/src/assets/web-panel/assets/Templates-CpFsKk_l.css +0 -1
  423. package/src/assets/web-panel/assets/Templates-Cq7qDnHX.js +0 -1
  424. package/src/assets/web-panel/assets/Tenant-DEasKDpQ.js +0 -1
  425. package/src/assets/web-panel/assets/Tenant-MuPJnOjk.css +0 -1
  426. package/src/assets/web-panel/assets/Terminal-DHoveJwj.css +0 -1
  427. package/src/assets/web-panel/assets/Terminal-J6fLkTzi.js +0 -3
  428. package/src/assets/web-panel/assets/TimelineRenderer-BlTAtkOc.css +0 -1
  429. package/src/assets/web-panel/assets/TimelineRenderer-CNvWrWN-.js +0 -1
  430. package/src/assets/web-panel/assets/Tokens-BSgHJCKH.js +0 -1
  431. package/src/assets/web-panel/assets/Tokens-CynVae-o.css +0 -1
  432. package/src/assets/web-panel/assets/Trust-BANlv-uB.js +0 -1
  433. package/src/assets/web-panel/assets/Trust-C-WrW0Fj.css +0 -1
  434. package/src/assets/web-panel/assets/UkeySign-qh8GPRsU.js +0 -1
  435. package/src/assets/web-panel/assets/VideoEditing-BDFghpzP.css +0 -1
  436. package/src/assets/web-panel/assets/VideoEditing-DBiGTB4H.js +0 -1
  437. package/src/assets/web-panel/assets/Wallet-DMUFR7cL.js +0 -4
  438. package/src/assets/web-panel/assets/Wallet-DUbpTRcg.css +0 -1
  439. package/src/assets/web-panel/assets/WebAuthn-CVAFRfCQ.css +0 -1
  440. package/src/assets/web-panel/assets/WebAuthn-DP9nQQzW.js +0 -5
  441. package/src/assets/web-panel/assets/WorkflowEditor-429lPWYk.css +0 -1
  442. package/src/assets/web-panel/assets/WorkflowEditor-DT_6jDkL.js +0 -1
  443. package/src/assets/web-panel/assets/createContext-DCh8oMBQ.js +0 -1
  444. package/src/assets/web-panel/assets/devWarning-BVvJAp91.js +0 -1
  445. package/src/assets/web-panel/assets/echarts-C61Vn3mP.js +0 -25
  446. package/src/assets/web-panel/assets/index-6OluUVJJ.js +0 -55
  447. package/src/assets/web-panel/assets/index-B-3EDOlf.js +0 -1
  448. package/src/assets/web-panel/assets/index-B7IhCfsh.js +0 -1
  449. package/src/assets/web-panel/assets/index-BDIIR8g6.js +0 -1
  450. package/src/assets/web-panel/assets/index-BMrbe_Ey.js +0 -1
  451. package/src/assets/web-panel/assets/index-BlzMqaWB.js +0 -1
  452. package/src/assets/web-panel/assets/index-BwY31W-u.js +0 -12
  453. package/src/assets/web-panel/assets/index-C2pCquZC.js +0 -1
  454. package/src/assets/web-panel/assets/index-CKmC6ugN.js +0 -1
  455. package/src/assets/web-panel/assets/index-CL2hAUWh.js +0 -1
  456. package/src/assets/web-panel/assets/index-CUXfwAhF.js +0 -3
  457. package/src/assets/web-panel/assets/index-C_VnSUjh.js +0 -3
  458. package/src/assets/web-panel/assets/index-CecGCLWI.js +0 -31
  459. package/src/assets/web-panel/assets/index-Ck6MYKVN.js +0 -21
  460. package/src/assets/web-panel/assets/index-CwJfLNqv.js +0 -1
  461. package/src/assets/web-panel/assets/index-DMDaGPxG.js +0 -19
  462. package/src/assets/web-panel/assets/index-DN1AT3FH.js +0 -1
  463. package/src/assets/web-panel/assets/index-DOebEvgn.js +0 -1
  464. package/src/assets/web-panel/assets/index-DPX3N4T8.js +0 -13
  465. package/src/assets/web-panel/assets/index-DSRKtgJg.js +0 -1
  466. package/src/assets/web-panel/assets/index-DSqZBvQM.js +0 -12
  467. package/src/assets/web-panel/assets/index-DbrQO1p9.js +0 -21
  468. package/src/assets/web-panel/assets/index-Qx8cTReg.js +0 -75
  469. package/src/assets/web-panel/assets/isSymbol-S5WZT7lS.js +0 -1
  470. package/src/assets/web-panel/assets/motion-fUkbJz38.js +0 -11
  471. package/src/assets/web-panel/assets/useFlexGapSupport-CQATs2JQ.js +0 -1
  472. package/src/assets/web-panel/assets/vendor-Bn1JzzAn.js +0 -42
  473. package/src/assets/web-panel/assets/vnode-CSlXfUSh.js +0 -1
@@ -0,0 +1,244 @@
1
+ import { createHash } from "node:crypto";
2
+
3
+ // Only host-owned publications can enlarge a live catalog. A plain object or a
4
+ // mutated startup array is not a catalog authority.
5
+ const authorities = new WeakMap();
6
+ const publishers = new WeakMap();
7
+
8
+ function freezeMetadata(value, seen = new WeakSet()) {
9
+ if (!value || typeof value !== "object" || seen.has(value)) return value;
10
+ seen.add(value);
11
+ for (const child of Object.values(value)) freezeMetadata(child, seen);
12
+ return Object.freeze(value);
13
+ }
14
+
15
+ export function captureMcpToolCatalog(authority) {
16
+ if (authority == null) return null;
17
+ if (!authorities.has(authority)) {
18
+ const error = new TypeError("MCP tool catalog authority is invalid");
19
+ error.code = "CC_MCP_TOOL_CATALOG_AUTHORITY_INVALID";
20
+ throw error;
21
+ }
22
+ return authority;
23
+ }
24
+
25
+ export function readMcpToolCatalog(authority) {
26
+ return authorities.get(captureMcpToolCatalog(authority))?.read() || null;
27
+ }
28
+
29
+ function installAuthority(read, extendSelection = false, selectionBase = null) {
30
+ const authority = Object.freeze({});
31
+ authorities.set(authority, {
32
+ read,
33
+ extendSelection,
34
+ selectionBase: Array.isArray(selectionBase)
35
+ ? Object.freeze([...selectionBase])
36
+ : null,
37
+ });
38
+ return authority;
39
+ }
40
+
41
+ /** Publish a completed, admitted host inventory; never expose a partial batch. */
42
+ export function publishMcpToolCatalog(mcp, { create = false } = {}) {
43
+ let publisher = publishers.get(mcp);
44
+ if (!publisher && !create) return null;
45
+ if (!publisher) {
46
+ publisher = { snapshot: null, records: new Map(), revision: 0 };
47
+ publisher.authority = installAuthority(() => {
48
+ publisher.refresh?.();
49
+ return publisher.snapshot;
50
+ });
51
+ publishers.set(mcp, publisher);
52
+ Object.defineProperty(mcp, "mcpToolCatalog", {
53
+ value: publisher.authority,
54
+ enumerable: true,
55
+ });
56
+ }
57
+ const records = new Map();
58
+ const identities = new Map();
59
+ for (const definition of mcp.extraToolDefinitions || []) {
60
+ const name = definition?.function?.name;
61
+ const executor = mcp.externalToolExecutors?.[name];
62
+ if (!name || !executor) continue;
63
+ const full =
64
+ executor.registry?.deferred?.get(name)?.definition || definition;
65
+ freezeMetadata(full);
66
+ freezeMetadata(definition);
67
+ freezeMetadata(mcp.externalToolDescriptors?.[name]);
68
+ for (const key of [
69
+ "kind",
70
+ "serverName",
71
+ "toolName",
72
+ "op",
73
+ "toolResultConfig",
74
+ ]) {
75
+ if (!Object.hasOwn(executor, key)) continue;
76
+ Object.defineProperty(executor, key, {
77
+ value: freezeMetadata(executor[key]),
78
+ enumerable: true,
79
+ writable: false,
80
+ configurable: false,
81
+ });
82
+ }
83
+ const fingerprint = createHash("sha256")
84
+ .update(
85
+ JSON.stringify({
86
+ definition: full,
87
+ descriptor: mcp.externalToolDescriptors?.[name] || null,
88
+ route: {
89
+ kind: executor.kind,
90
+ serverName: executor.serverName,
91
+ toolName: executor.toolName,
92
+ op: executor.op,
93
+ inheritable: executor.inheritable,
94
+ },
95
+ }),
96
+ )
97
+ .digest("hex");
98
+ const previous = publisher.records.get(name);
99
+ const identity =
100
+ previous?.executor === executor && previous.fingerprint === fingerprint
101
+ ? previous.identity
102
+ : Object.freeze({});
103
+ records.set(name, { executor, fingerprint, identity });
104
+ identities.set(name, identity);
105
+ }
106
+ publisher.records = records;
107
+ publisher.snapshot = Object.freeze({
108
+ revision: ++publisher.revision,
109
+ extraToolDefinitions: Object.freeze([...(mcp.extraToolDefinitions || [])]),
110
+ externalToolDescriptors: Object.freeze({ ...mcp.externalToolDescriptors }),
111
+ externalToolExecutors: Object.freeze({ ...mcp.externalToolExecutors }),
112
+ mcpClient: mcp.mcpClient || null,
113
+ identities,
114
+ });
115
+ return publisher.authority;
116
+ }
117
+
118
+ export function setMcpToolCatalogRefresh(mcp, refresh) {
119
+ if (!publishers.has(mcp)) publishMcpToolCatalog(mcp, { create: true });
120
+ publishers.get(mcp).refresh = refresh;
121
+ }
122
+
123
+ /** A derived authority can only remove names from its parent. */
124
+ export function projectMcpToolCatalog(
125
+ authority,
126
+ project,
127
+ { extendSelection = false, selectionBase = null } = {},
128
+ ) {
129
+ captureMcpToolCatalog(authority);
130
+ let previousSource;
131
+ let previousResult;
132
+ return installAuthority(
133
+ () => {
134
+ const source = readMcpToolCatalog(authority);
135
+ if (source === previousSource) return previousResult;
136
+ const result = project(source, previousResult);
137
+ const permitted = new Set(
138
+ source.extraToolDefinitions.map((def) => def.function.name),
139
+ );
140
+ const definitions = (result?.extraToolDefinitions || []).filter((def) =>
141
+ permitted.has(def?.function?.name),
142
+ );
143
+ const names = new Set(definitions.map((def) => def.function.name));
144
+ const subset = (values) =>
145
+ Object.fromEntries(
146
+ Object.entries(values || {}).filter(([name]) => names.has(name)),
147
+ );
148
+ previousSource = source;
149
+ previousResult = Object.freeze({
150
+ ...result,
151
+ revision: source.revision,
152
+ extraToolDefinitions: Object.freeze(definitions),
153
+ externalToolDescriptors: Object.freeze(
154
+ subset(result?.externalToolDescriptors),
155
+ ),
156
+ externalToolExecutors: Object.freeze(
157
+ subset(result?.externalToolExecutors),
158
+ ),
159
+ mcpClient: source.mcpClient,
160
+ identities: new Map(
161
+ [...source.identities].filter(([name]) => names.has(name)),
162
+ ),
163
+ });
164
+ return previousResult;
165
+ },
166
+ extendSelection,
167
+ selectionBase,
168
+ );
169
+ }
170
+
171
+ export function restrictMcpToolCatalog(snapshot, names) {
172
+ const allowed = new Set(names);
173
+ return {
174
+ ...snapshot,
175
+ extraToolDefinitions: snapshot.extraToolDefinitions.filter((def) =>
176
+ allowed.has(def.function.name),
177
+ ),
178
+ };
179
+ }
180
+
181
+ export function assertMcpCatalogBinding(binding, name) {
182
+ if (!binding) return;
183
+ const current = readMcpToolCatalog(binding.authority);
184
+ const identity = binding.snapshot.identities.get(name);
185
+ if (!identity || current.identities.get(name) !== identity) {
186
+ const error = new Error(
187
+ `MCP tool catalog changed before dispatch of ${name}; request its current schema again`,
188
+ );
189
+ error.code = "CC_MCP_TOOL_CATALOG_STALE";
190
+ error.dispatched = false;
191
+ throw error;
192
+ }
193
+ }
194
+
195
+ /** Replace catalog-owned fields while retaining unrelated host tools. */
196
+ export function mergeMcpToolCatalog(options, snapshot, authority) {
197
+ const selection = authorities.get(captureMcpToolCatalog(authority));
198
+ const mayExtendSelection =
199
+ selection.extendSelection === true &&
200
+ Array.isArray(selection.selectionBase) &&
201
+ Array.isArray(options.enabledToolNames) &&
202
+ options.enabledToolNames.length === selection.selectionBase.length &&
203
+ options.enabledToolNames.every((name) =>
204
+ selection.selectionBase.includes(name),
205
+ );
206
+ const owned = (name) =>
207
+ name === "tool_search" ||
208
+ name?.startsWith("mcp__") ||
209
+ ["mcp", "mcp-resource", "tool-search"].includes(
210
+ options.externalToolExecutors?.[name]?.kind,
211
+ );
212
+ const other = (map) =>
213
+ Object.fromEntries(
214
+ Object.entries(map || {}).filter(([name]) => !owned(name)),
215
+ );
216
+ return {
217
+ ...options,
218
+ extraToolDefinitions: [
219
+ ...(options.extraToolDefinitions || []).filter(
220
+ (def) => !owned(def?.function?.name),
221
+ ),
222
+ ...snapshot.extraToolDefinitions,
223
+ ],
224
+ externalToolDescriptors: {
225
+ ...other(options.externalToolDescriptors),
226
+ ...snapshot.externalToolDescriptors,
227
+ },
228
+ externalToolExecutors: {
229
+ ...other(options.externalToolExecutors),
230
+ ...snapshot.externalToolExecutors,
231
+ },
232
+ ...(mayExtendSelection
233
+ ? {
234
+ enabledToolNames: [
235
+ ...new Set([
236
+ ...options.enabledToolNames,
237
+ ...snapshot.extraToolDefinitions.map((def) => def.function.name),
238
+ ]),
239
+ ],
240
+ }
241
+ : {}),
242
+ mcpClient: snapshot.mcpClient,
243
+ };
244
+ }
@@ -277,6 +277,9 @@ export function resolveModelCapabilityProfile({
277
277
  runtimeVerified: false,
278
278
  ...output,
279
279
  advertisedMaxOutputTokens: documented?.advertisedMaxOutputTokens ?? null,
280
+ ...(documented?.advertisedMaxInputTokens != null
281
+ ? { advertisedMaxInputTokens: documented.advertisedMaxInputTokens }
282
+ : {}),
280
283
  ...(documented?.adaptiveThinkingDefault
281
284
  ? {
282
285
  adaptiveThinkingDefault: true,
@@ -286,6 +289,9 @@ export function resolveModelCapabilityProfile({
286
289
  ...(documented?.reasoningEfforts
287
290
  ? { reasoningEfforts: [...documented.reasoningEfforts] }
288
291
  : {}),
292
+ ...(documented?.defaultReasoningEffort
293
+ ? { defaultReasoningEffort: documented.defaultReasoningEffort }
294
+ : {}),
289
295
  sources: documented ? [...documented.sources] : [],
290
296
  limitations,
291
297
  };
@@ -65,7 +65,9 @@ export function reviewModelCatalog(review, snapshots = {}) {
65
65
  "runtimeProtocol",
66
66
  "contextWindowTokens",
67
67
  "advertisedMaxOutputTokens",
68
+ "advertisedMaxInputTokens",
68
69
  "reviewedAt",
70
+ "defaultReasoningEffort",
69
71
  ]) {
70
72
  if (
71
73
  Object.hasOwn(expected, field) &&
@@ -110,6 +112,7 @@ export function reviewModelCatalog(review, snapshots = {}) {
110
112
  "cacheReadMultiplier",
111
113
  "cacheWriteMultiplier",
112
114
  "cacheWrite1hMultiplier",
115
+ "cacheWrite12hMultiplier",
113
116
  "longContext",
114
117
  "serviceMultipliers",
115
118
  ]) {
@@ -45,7 +45,7 @@ export const CONTEXT_WINDOWS = Object.freeze({
45
45
  }),
46
46
  });
47
47
 
48
- export const MODEL_CAPABILITY_CATALOG_VERSION = "2026-10-15";
48
+ export const MODEL_CAPABILITY_CATALOG_VERSION = "2026-10-29";
49
49
 
50
50
  // Explicit ownership prevents a model name served by an unrelated provider
51
51
  // from silently inheriting another provider's catalog window.
@@ -82,9 +82,50 @@ export const LEGACY_MODEL_PROVIDERS = Object.freeze({
82
82
  "doubao-seed-2-1-pro-260628": "volcengine",
83
83
  });
84
84
 
85
- // Official pages reviewed on the catalog version date. These describe the
85
+ // Official pages reviewed on each entry's review date. These describe the
86
86
  // named models, not endpoint access, account entitlement, or a live CLI run.
87
87
  export const DOCUMENTED_OPENAI_MODELS = Object.freeze({
88
+ "gpt-6.1-terra": Object.freeze({
89
+ reviewedAt: "2026-10-29",
90
+ serviceTiers: Object.freeze([
91
+ "standard",
92
+ "default",
93
+ "auto",
94
+ "fast",
95
+ "priority",
96
+ "flex",
97
+ ]),
98
+ serviceMultipliers: Object.freeze({
99
+ standard: 1,
100
+ default: 1,
101
+ auto: 1,
102
+ batch: 0.5,
103
+ flex: 0.5,
104
+ fast: 2,
105
+ priority: 2,
106
+ }),
107
+ contextWindowTokens: 1050000,
108
+ advertisedMaxInputTokens: 922000,
109
+ advertisedMaxOutputTokens: 128000,
110
+ requiresResponsesForTools: true,
111
+ reasoningEfforts: Object.freeze([
112
+ "none",
113
+ "low",
114
+ "medium",
115
+ "high",
116
+ "xhigh",
117
+ "max",
118
+ ]),
119
+ defaultReasoningEffort: "medium",
120
+ pricing: Object.freeze({ in: 1, out: 5 }),
121
+ cacheReadMultiplier: 0.05,
122
+ sources: Object.freeze([
123
+ "https://developers.openai.com/api/docs/models/gpt-6.1-terra",
124
+ "https://developers.openai.com/api/docs/guides/latest-model",
125
+ "https://developers.openai.com/api/docs/pricing",
126
+ "https://developers.openai.com/api/docs/guides/prompt-caching",
127
+ ]),
128
+ }),
88
129
  "gpt-6.1-sol": Object.freeze({
89
130
  reviewedAt: "2026-10-15",
90
131
  serviceTiers: Object.freeze([
@@ -235,6 +276,7 @@ export const DOCUMENTED_ANTHROPIC_MODELS = Object.freeze({
235
276
  export const GPT6_PRICING_TERMS = Object.freeze({
236
277
  cacheReadMultiplier: 0.1,
237
278
  cacheWriteMultiplier: 1.25,
279
+ cacheWrite12hMultiplier: 2.5,
238
280
  longContext: Object.freeze({
239
281
  threshold: 272000,
240
282
  inputMultiplier: 2,
@@ -1,4 +1,5 @@
1
1
  import { resolveModelServiceTier } from "./model-capabilities.js";
2
+ import { projectEnvelopePricingContext } from "./usage-pricing-context.js";
2
3
 
3
4
  const RESPONSES_FAILURE_CODE = "CC_OPENAI_RESPONSES_FAILED";
4
5
  const MAX_REASONING_ITEMS = 16;
@@ -212,7 +213,13 @@ export function createOpenAIResponsesReasoning(
212
213
  modelProfile = null,
213
214
  ) {
214
215
  const want = options.thinking;
215
- if (!want || want === "off" || want === "none") return null;
216
+ const disabled = want === false || want === "off" || want === "none";
217
+ if (disabled) {
218
+ return modelProfile?.reasoningEfforts?.includes("none")
219
+ ? { effort: "none" }
220
+ : null;
221
+ }
222
+ if (!want && options.thinkingEffort == null) return null;
216
223
  const requested =
217
224
  typeof options.thinkingEffort === "string"
218
225
  ? options.thinkingEffort.toLowerCase()
@@ -233,7 +240,7 @@ export function createOpenAIResponsesReasoning(
233
240
  `Unsupported reasoning effort for ${modelProfile.model}; allowed: ${modelProfile.reasoningEfforts.join(", ")}`,
234
241
  );
235
242
  }
236
- return { effort, summary: "auto" };
243
+ return effort === "none" ? { effort } : { effort, summary: "auto" };
237
244
  }
238
245
 
239
246
  export function normalizeOpenAIResponsesUsage(usage) {
@@ -244,6 +251,8 @@ export function normalizeOpenAIResponsesUsage(usage) {
244
251
  const details = usage.input_tokens_details;
245
252
  const outputDetails = usage.output_tokens_details;
246
253
  let cached = 0;
254
+ let written = 0;
255
+ let cacheWriteContext = {};
247
256
  let reasoning = null;
248
257
  if (details != null) {
249
258
  if (typeof details !== "object" || Array.isArray(details)) return null;
@@ -251,6 +260,24 @@ export function normalizeOpenAIResponsesUsage(usage) {
251
260
  cached = nonNegativeInteger(details.cached_tokens);
252
261
  if (cached === null || cached > input) return null;
253
262
  }
263
+ if (Object.hasOwn(details, "cache_write_tokens")) {
264
+ written = nonNegativeInteger(details.cache_write_tokens);
265
+ if (written === null || written > input - cached) return null;
266
+ }
267
+ if (written > 0 || Object.hasOwn(details, "cache_write_tokens_details")) {
268
+ const split = details.cache_write_tokens_details;
269
+ const thirty = nonNegativeInteger(split?.ttl_30m_tokens);
270
+ const twelve = nonNegativeInteger(split?.ttl_12h_tokens);
271
+ cacheWriteContext =
272
+ split &&
273
+ !Array.isArray(split) &&
274
+ thirty !== null &&
275
+ twelve !== null &&
276
+ Object.hasOwn(details, "cache_write_tokens") &&
277
+ thirty + twelve === written
278
+ ? { cacheCreation30mTokens: thirty, cacheCreation12hTokens: twelve }
279
+ : { cacheCreationInvalid: true };
280
+ }
254
281
  }
255
282
  if (outputDetails != null) {
256
283
  if (typeof outputDetails !== "object" || Array.isArray(outputDetails)) {
@@ -265,9 +292,13 @@ export function normalizeOpenAIResponsesUsage(usage) {
265
292
  }
266
293
  }
267
294
  return {
268
- input_tokens: input - cached,
295
+ input_tokens: input - cached - written,
269
296
  output_tokens: output,
270
297
  cache_read_input_tokens: cached,
298
+ ...(Object.hasOwn(details || {}, "cache_write_tokens") ||
299
+ Object.keys(cacheWriteContext).length
300
+ ? { cache_creation_input_tokens: written, ...cacheWriteContext }
301
+ : {}),
271
302
  ...(reasoning !== null ? { reasoning_tokens: reasoning } : {}),
272
303
  };
273
304
  }
@@ -350,9 +381,7 @@ export function normalizeOpenAIResponsesResponse(data) {
350
381
  if (usage)
351
382
  result.usage = {
352
383
  ...usage,
353
- ...(typeof data.service_tier === "string"
354
- ? { service_tier: data.service_tier }
355
- : {}),
384
+ ...projectEnvelopePricingContext(usage, data),
356
385
  };
357
386
  return result;
358
387
  }
@@ -14,6 +14,7 @@ import {
14
14
  resolveAgentToolSelection,
15
15
  } from "./agent-execution-policy.js";
16
16
  import { CLIContextEngineering } from "./cli-context-engineering.js";
17
+ import { markCompactionHostBase } from "./compaction-host-provenance.js";
17
18
  import {
18
19
  agentLoop,
19
20
  buildSystemPrompt,
@@ -23,6 +24,7 @@ import { feature } from "./feature-flags.js";
23
24
  import { isEvolutionIngressFailure } from "./model-failure-policy.js";
24
25
  import { isFormalBudgetError } from "./formal-budget-errors.js";
25
26
  import { captureAgentEvolutionIngress } from "./evolution/agent-evolution-ingress.js";
27
+ import { captureMcpToolCatalog } from "./mcp-tool-catalog-authority.js";
26
28
  import {
27
29
  createWorktree,
28
30
  removeWorktree,
@@ -359,6 +361,7 @@ export class SubAgentContext {
359
361
  ? options.externalToolExecutors
360
362
  : {};
361
363
  this._mcpClient = options.mcpClient || null;
364
+ this._mcpToolCatalog = captureMcpToolCatalog(options.mcpToolCatalog);
362
365
  this._mcpHostClient = options.mcpHostClient || this._mcpClient;
363
366
  this._mcpCallLedger = options.mcpCallLedger || null;
364
367
  this._mcpConflictScheduler = options.mcpConflictScheduler || null;
@@ -404,10 +407,12 @@ export class SubAgentContext {
404
407
  ? `\n\n## Parent Context\n${this.inheritedContext}`
405
408
  : "";
406
409
 
407
- this.messages.push({
408
- role: "system",
409
- content: basePrompt + profilePrompt + rolePrompt + contextSection,
410
- });
410
+ this.messages.push(
411
+ markCompactionHostBase({
412
+ role: "system",
413
+ content: basePrompt + profilePrompt + rolePrompt + contextSection,
414
+ }),
415
+ );
411
416
  }
412
417
 
413
418
  /**
@@ -881,6 +886,9 @@ export class SubAgentContext {
881
886
  if (this._mcpClient) {
882
887
  options.mcpClient = this._mcpClient;
883
888
  }
889
+ if (this._mcpToolCatalog) {
890
+ options.mcpToolCatalog = this._mcpToolCatalog;
891
+ }
884
892
  if (this._mcpHostClient) {
885
893
  options.mcpHostClient = this._mcpHostClient;
886
894
  }
@@ -17,6 +17,61 @@
17
17
  *
18
18
  * @module subagent-inheritance
19
19
  */
20
+ import {
21
+ projectMcpToolCatalog,
22
+ restrictMcpToolCatalog,
23
+ } from "./mcp-tool-catalog-authority.js";
24
+
25
+ /** Keep a child's directory live without broadening its captured contract. */
26
+ export function createInheritedMcpToolCatalog(
27
+ parent,
28
+ allow,
29
+ requestedTools,
30
+ effectiveTools,
31
+ ) {
32
+ const servers = Array.isArray(allow) ? Object.freeze([...allow]) : null;
33
+ const names = Array.isArray(requestedTools)
34
+ ? Object.freeze([...requestedTools])
35
+ : null;
36
+ const staticParentNames =
37
+ parent.mcpCatalogBinding?.authority !== parent.mcpToolCatalog &&
38
+ Array.isArray(parent.effectiveAllowedToolNames)
39
+ ? Object.freeze([...parent.effectiveAllowedToolNames])
40
+ : null;
41
+ return projectMcpToolCatalog(
42
+ parent.mcpToolCatalog,
43
+ (snapshot, previous) => {
44
+ let inherited = filterInheritedMcp(snapshot, servers) || {
45
+ extraToolDefinitions: [],
46
+ externalToolDescriptors: {},
47
+ externalToolExecutors: {},
48
+ };
49
+ if (names) inherited = restrictMcpToolCatalog(inherited, names);
50
+ if (staticParentNames)
51
+ inherited = restrictMcpToolCatalog(inherited, staticParentNames);
52
+ if (previous) {
53
+ const registries = new Set(
54
+ Object.values(inherited.externalToolExecutors)
55
+ .map((executor) => executor.registry)
56
+ .filter(Boolean),
57
+ );
58
+ for (const registry of registries) registry.loaded.clear();
59
+ for (const [name, executor] of Object.entries(
60
+ inherited.externalToolExecutors,
61
+ )) {
62
+ if (
63
+ executor.registry &&
64
+ previous.identities.get(name) === snapshot.identities.get(name) &&
65
+ previous.externalToolExecutors[name]?.registry?.loaded.has(name)
66
+ )
67
+ executor.registry.loaded.add(name);
68
+ }
69
+ }
70
+ return inherited;
71
+ },
72
+ { extendSelection: names === null, selectionBase: effectiveTools },
73
+ );
74
+ }
20
75
 
21
76
  /** Extract the server segment from an `mcp__<server>__<tool>` wire name. */
22
77
  export function mcpServerOf(name) {
@@ -27,6 +82,102 @@ export function mcpServerOf(name) {
27
82
  return idx === -1 ? rest || null : rest.slice(0, idx) || null;
28
83
  }
29
84
 
85
+ /**
86
+ * Discovery state belongs to one loop. Keep the inherited snapshot bounded to
87
+ * its tools, while observing revocation of the source entries. Sharing the
88
+ * parent's registry would expose excluded schemas and let one child's search
89
+ * change the provider projection of its parent and siblings.
90
+ */
91
+ function forkDiscoveryRegistries(parent, definitions, descriptors, executors) {
92
+ const registries = new Map();
93
+ const definitionsByName = new Map(
94
+ definitions.map((definition) => [definition?.function?.name, definition]),
95
+ );
96
+ for (const [name, sourceExecutor] of Object.entries(executors)) {
97
+ const source = sourceExecutor?.registry;
98
+ if (sourceExecutor?.deferred !== true || !(source?.deferred instanceof Map))
99
+ continue;
100
+ let registry = registries.get(source);
101
+ if (!registry) {
102
+ registry = {
103
+ catalogMode: source.catalogMode,
104
+ maxResults: source.maxResults,
105
+ compactSearchDefinition: source.compactSearchDefinition
106
+ ? structuredClone(source.compactSearchDefinition)
107
+ : undefined,
108
+ deferred: new Map(),
109
+ loaded: new Set(),
110
+ instructionsByServer: Object.create(null),
111
+ };
112
+ registries.set(source, registry);
113
+ }
114
+ const executor = { ...sourceExecutor, registry };
115
+ executors[name] = executor;
116
+ const entry = source.deferred.get(name);
117
+ // A missing/mismatched entry remains unavailable through the ordinary
118
+ // deferred-call gate; never reconstruct a schema from a stale stub.
119
+ if (
120
+ !entry ||
121
+ !definitionsByName.has(name) ||
122
+ entry.executor !== sourceExecutor ||
123
+ entry.serverName !== sourceExecutor.serverName ||
124
+ entry.toolName !== sourceExecutor.toolName
125
+ )
126
+ continue;
127
+ const sourceDescriptor = parent.externalToolDescriptors?.[name];
128
+ const inherited = {
129
+ definition: structuredClone(entry.definition),
130
+ stub: structuredClone(entry.stub),
131
+ executor,
132
+ serverName: entry.serverName,
133
+ toolName: entry.toolName,
134
+ get stale() {
135
+ return (
136
+ entry.stale === true ||
137
+ source.deferred.get(name) !== entry ||
138
+ parent.externalToolExecutors?.[name] !== sourceExecutor ||
139
+ parent.externalToolDescriptors?.[name] !== sourceDescriptor ||
140
+ sourceExecutor.inheritable === false ||
141
+ sourceDescriptor?.inheritable === false
142
+ );
143
+ },
144
+ };
145
+ registry.deferred.set(name, inherited);
146
+ if (source.loaded?.has(name) && !inherited.stale) registry.loaded.add(name);
147
+ if (definitionsByName.get(name) === entry.stub)
148
+ definitionsByName.set(name, inherited.stub);
149
+ if (Object.hasOwn(source.instructionsByServer || {}, entry.serverName)) {
150
+ registry.instructionsByServer[entry.serverName] =
151
+ source.instructionsByServer[entry.serverName];
152
+ }
153
+ }
154
+
155
+ const searchName = "tool_search";
156
+ const search = parent?.externalToolExecutors?.[searchName];
157
+ const searchDescriptor = parent?.externalToolDescriptors?.[searchName];
158
+ const searchDefinition = Array.isArray(parent?.extraToolDefinitions)
159
+ ? parent.extraToolDefinitions.find(
160
+ (definition) => definition?.function?.name === searchName,
161
+ )
162
+ : null;
163
+ const registry = registries.get(search?.registry);
164
+ // Search is a directory helper, not a server capability of its own. Restore
165
+ // it only for an inherited deferred directory and only if the parent grants
166
+ // inheritance of the helper itself. Execution still checks the tool ceiling.
167
+ if (
168
+ search?.kind === "tool-search" &&
169
+ search.inheritable !== false &&
170
+ searchDescriptor?.inheritable !== false &&
171
+ searchDefinition &&
172
+ registry?.deferred.size > 0
173
+ ) {
174
+ definitionsByName.set(searchName, structuredClone(searchDefinition));
175
+ executors[searchName] = { ...search, registry };
176
+ if (searchDescriptor) descriptors[searchName] = { ...searchDescriptor };
177
+ }
178
+ return [...definitionsByName.values()];
179
+ }
180
+
30
181
  /**
31
182
  * Filter the parent's MCP plumbing to the servers the child may use.
32
183
  *
@@ -57,21 +208,30 @@ export function filterInheritedMcp(parent, allow) {
57
208
  const inheritable = (name) =>
58
209
  descs[name]?.inheritable !== false && execs[name]?.inheritable !== false;
59
210
 
60
- const outDefs = defs.filter((d) => {
211
+ let outDefs = defs.filter((d) => {
61
212
  const name = d?.function?.name;
62
- return name && inheritable(name) && serverAllowed(mcpServerOf(name));
213
+ return (
214
+ name &&
215
+ name !== "tool_search" &&
216
+ inheritable(name) &&
217
+ serverAllowed(mcpServerOf(name))
218
+ );
63
219
  });
64
220
  const outDescs = {};
65
221
  for (const [name, desc] of Object.entries(descs)) {
222
+ if (name === "tool_search") continue;
66
223
  const server = desc?.serverName || mcpServerOf(name);
67
224
  if (inheritable(name) && serverAllowed(server)) outDescs[name] = desc;
68
225
  }
69
226
  const outExecs = {};
70
227
  for (const [name, exec] of Object.entries(execs)) {
228
+ if (name === "tool_search") continue;
71
229
  const server = exec?.serverName || mcpServerOf(name);
72
230
  if (inheritable(name) && serverAllowed(server)) outExecs[name] = exec;
73
231
  }
74
232
 
233
+ outDefs = forkDiscoveryRegistries(parent, outDefs, outDescs, outExecs);
234
+
75
235
  if (
76
236
  outDefs.length === 0 &&
77
237
  Object.keys(outDescs).length === 0 &&
@@ -24,7 +24,7 @@ export const TaskType = {
24
24
  */
25
25
  const TASK_MODEL_MAP = {
26
26
  [TaskType.CHAT]: {
27
- volcengine: "deepseek-v4-1-flash-260910",
27
+ volcengine: "deepseek-v4-1-flash-economy-261017",
28
28
  openai: "gpt-4o-mini",
29
29
  anthropic: "claude-sonnet-4-6",
30
30
  deepseek: "deepseek-chat",