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
@@ -0,0 +1,372 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { createHash } from "node:crypto";
4
+ import { captureGoalWorkspace } from "./goal-workspace-evidence.js";
5
+ import { sameGoalWorkspace } from "./goal-check-evidence.js";
6
+ import {
7
+ checkGoalVerificationCancellation,
8
+ goalVerificationError,
9
+ runGoalVerificationCommand,
10
+ } from "./goal-verification-command.js";
11
+
12
+ export const GOAL_VERIFICATION_SCHEMA = "chainlesschain.goal-verification/v1";
13
+ const PREPARED_SCHEMA = "chainlesschain.prepared-goal-verification/v1";
14
+ const digest = (value) =>
15
+ `sha256:${createHash("sha256").update(value).digest("hex")}`;
16
+ const fail = (message) => {
17
+ throw goalVerificationError(message);
18
+ };
19
+ const fileCall = (file) => ({ tool: "read_file", args: { path: file } });
20
+
21
+ function fields(value, allowed, label) {
22
+ if (
23
+ !value ||
24
+ typeof value !== "object" ||
25
+ Array.isArray(value) ||
26
+ Object.keys(value).some((key) => !allowed.includes(key))
27
+ )
28
+ fail(`${label} contains unsupported fields`);
29
+ }
30
+ function text(value, label, maximum = 4096) {
31
+ if (
32
+ typeof value !== "string" ||
33
+ !value.trim() ||
34
+ value.length > maximum ||
35
+ /[\0\r\n]/u.test(value)
36
+ )
37
+ fail(`${label} is invalid`);
38
+ return value;
39
+ }
40
+ function list(value, label, maximum) {
41
+ if (!Array.isArray(value) || value.length === 0 || value.length > maximum)
42
+ fail(`${label} must contain 1-${maximum} entries`);
43
+ return value;
44
+ }
45
+ function freeze(value) {
46
+ if (value && typeof value === "object") {
47
+ Object.values(value).forEach(freeze);
48
+ Object.freeze(value);
49
+ }
50
+ return value;
51
+ }
52
+ function remaining(deadline) {
53
+ const ms = deadline - Date.now();
54
+ if (ms <= 0)
55
+ fail("Goal verification preparation exceeded its resource limit");
56
+ return ms;
57
+ }
58
+ async function bindFile(
59
+ file,
60
+ signal,
61
+ deadline,
62
+ maxFileBytes = 8 * 1024 * 1024,
63
+ ) {
64
+ checkGoalVerificationCancellation(signal);
65
+ const binding = await captureGoalWorkspace(
66
+ path.dirname(file),
67
+ fileCall(path.basename(file)),
68
+ {
69
+ signal,
70
+ limits: {
71
+ maxFileBytes,
72
+ maxBytes: maxFileBytes,
73
+ maxMs: Math.min(15_000, remaining(deadline)),
74
+ },
75
+ },
76
+ );
77
+ checkGoalVerificationCancellation(signal);
78
+ if (!binding.verified)
79
+ fail(`Goal checker input is unavailable (${binding.reason}): ${file}`);
80
+ return { path: file, binding };
81
+ }
82
+ async function readManifest(file, signal, deadline) {
83
+ const before = await bindFile(file, signal, deadline, 64 * 1024);
84
+ const handle = await fs.open(file, "r");
85
+ let bytes;
86
+ try {
87
+ const buffer = Buffer.alloc(64 * 1024 + 1);
88
+ let size = 0;
89
+ while (size < buffer.length) {
90
+ checkGoalVerificationCancellation(signal);
91
+ const next = await handle.read(buffer, size, buffer.length - size, size);
92
+ if (next.bytesRead === 0) break;
93
+ size += next.bytesRead;
94
+ }
95
+ if (size > 64 * 1024) fail("Goal verification manifest is too large");
96
+ bytes = buffer.subarray(0, size);
97
+ } finally {
98
+ await handle.close();
99
+ }
100
+ const after = await bindFile(file, signal, deadline, 64 * 1024);
101
+ if (
102
+ !sameGoalWorkspace(before.binding, after.binding) ||
103
+ digest(bytes) !== before.binding.artifacts[0].digest
104
+ )
105
+ fail("Goal verification manifest changed while it was read");
106
+ let manifest;
107
+ try {
108
+ manifest = JSON.parse(
109
+ new TextDecoder("utf-8", { fatal: true }).decode(bytes),
110
+ );
111
+ } catch {
112
+ fail("Goal verification manifest must be valid UTF-8 JSON");
113
+ }
114
+ return { manifest, input: after };
115
+ }
116
+
117
+ /** Prepare before any author turn. On resume, the original definition and
118
+ * checker input identities win; replacing a manifest cannot weaken the goal.
119
+ */
120
+ export async function prepareGoalVerification(condition, cwd, { signal } = {}) {
121
+ const deadline = Date.now() + 30_000;
122
+ const manifestPath = path.resolve(cwd, text(condition.path, "manifest path"));
123
+ const { manifest, input } = await readManifest(
124
+ manifestPath,
125
+ signal,
126
+ deadline,
127
+ );
128
+ fields(
129
+ manifest,
130
+ ["schema", "checks", "artifacts"],
131
+ "Goal verification manifest",
132
+ );
133
+ if (manifest.schema !== GOAL_VERIFICATION_SCHEMA)
134
+ fail("Unknown Goal verification manifest schema");
135
+ const root = await fs.realpath(path.resolve(cwd));
136
+ const artifacts = list(manifest.artifacts, "artifacts", 32).map((name) => {
137
+ const target = path.resolve(root, text(name, "artifact path"));
138
+ const relative = path.relative(root, target);
139
+ if (
140
+ !relative ||
141
+ relative === ".." ||
142
+ relative.startsWith(`..${path.sep}`) ||
143
+ path.isAbsolute(relative)
144
+ )
145
+ fail("Goal verification artifacts must be files inside the workspace");
146
+ return relative.split(path.sep).join("/");
147
+ });
148
+ const ids = new Set(),
149
+ inputs = new Map([[manifestPath, input]]);
150
+ const checks = [];
151
+ for (const value of list(manifest.checks, "checks", 8)) {
152
+ fields(
153
+ value,
154
+ ["id", "executable", "args", "checkerFiles", "timeoutMs", "requirements"],
155
+ "Goal check",
156
+ );
157
+ const id = text(value.id, "check id", 80);
158
+ if (!/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/u.test(id) || ids.has(id))
159
+ fail("Goal check IDs must be distinct identifiers");
160
+ ids.add(id);
161
+ const requirements = list(value.requirements, "requirements", 32).map(
162
+ (requirement) => text(requirement, "requirement ID", 80),
163
+ );
164
+ if (
165
+ new Set(requirements).size !== requirements.length ||
166
+ requirements.some(
167
+ (requirement) => !/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/u.test(requirement),
168
+ )
169
+ )
170
+ fail("Requirement IDs must be distinct identifiers within each check");
171
+ const executable = text(value.executable, "checker executable");
172
+ if (executable !== "node" && !path.isAbsolute(executable))
173
+ fail("Use node or an absolute checker executable path");
174
+ if (
175
+ !Array.isArray(value.args) ||
176
+ value.args.length > 64 ||
177
+ value.args.some(
178
+ (arg) =>
179
+ typeof arg !== "string" || arg.length > 4096 || arg.includes("\0"),
180
+ )
181
+ )
182
+ fail("Goal checker args must be a bounded string array");
183
+ const timeoutMs = value.timeoutMs ?? 30_000;
184
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 60_000)
185
+ fail("Goal checker timeout must be 1-60000ms");
186
+ const checkerFiles = [];
187
+ for (const name of list(value.checkerFiles, "checkerFiles", 32)) {
188
+ const file = path.resolve(
189
+ path.dirname(manifestPath),
190
+ text(name, "checker input"),
191
+ );
192
+ if (
193
+ artifacts.some(
194
+ (artifact) =>
195
+ path.relative(file, path.resolve(root, artifact)) === "",
196
+ )
197
+ )
198
+ fail("A mutable deliverable cannot also be a frozen checker input");
199
+ if (!inputs.has(file)) {
200
+ if (inputs.size >= 65) fail("Too many frozen checker inputs");
201
+ inputs.set(file, await bindFile(file, signal, deadline));
202
+ }
203
+ checkerFiles.push(file);
204
+ }
205
+ checks.push({
206
+ id,
207
+ executable,
208
+ args: [...value.args],
209
+ checkerFiles,
210
+ timeoutMs,
211
+ requirements,
212
+ });
213
+ }
214
+ const prepared = {
215
+ schema: PREPARED_SCHEMA,
216
+ workspace: root,
217
+ manifestPath,
218
+ checks,
219
+ artifacts,
220
+ inputs: [...inputs.values()],
221
+ };
222
+ const planDigest = digest(JSON.stringify(prepared));
223
+ if (
224
+ condition.verification &&
225
+ (condition.verification.schema !== PREPARED_SCHEMA ||
226
+ condition.verification.digest !== planDigest)
227
+ )
228
+ fail(
229
+ "The frozen Goal verification definition changed; resume cannot replace its acceptance checks",
230
+ );
231
+ return freeze({
232
+ ...condition,
233
+ verification: { ...prepared, digest: planDigest },
234
+ });
235
+ }
236
+
237
+ async function currentInputs(plan, signal) {
238
+ const deadline = Date.now() + 30_000;
239
+ for (const input of plan.inputs) {
240
+ try {
241
+ const current = await bindFile(input.path, signal, deadline);
242
+ if (!sameGoalWorkspace(input.binding, current.binding)) return false;
243
+ } catch {
244
+ checkGoalVerificationCancellation(signal);
245
+ return false;
246
+ }
247
+ }
248
+ return true;
249
+ }
250
+ async function captureInputs(plan, signal) {
251
+ checkGoalVerificationCancellation(signal);
252
+ const source = await captureGoalWorkspace(
253
+ plan.workspace,
254
+ { tool: "run_shell" },
255
+ { signal },
256
+ );
257
+ const artifacts = [];
258
+ for (const artifact of plan.artifacts) {
259
+ checkGoalVerificationCancellation(signal);
260
+ artifacts.push(
261
+ await captureGoalWorkspace(plan.workspace, fileCall(artifact), {
262
+ signal,
263
+ }),
264
+ );
265
+ }
266
+ checkGoalVerificationCancellation(signal);
267
+ return {
268
+ source,
269
+ artifacts,
270
+ verified: source.verified && artifacts.every((entry) => entry.verified),
271
+ };
272
+ }
273
+ function sameInputs(left, right) {
274
+ return (
275
+ sameGoalWorkspace(left.source, right.source) &&
276
+ left.artifacts.length === right.artifacts.length &&
277
+ left.artifacts.every((entry, index) =>
278
+ sameGoalWorkspace(entry, right.artifacts[index]),
279
+ )
280
+ );
281
+ }
282
+
283
+ /** All independently declared checks must pass against one unchanged candidate.
284
+ * The author/model cannot supply the command result or select a passing subset.
285
+ */
286
+ export async function evaluateGoalVerification(
287
+ condition,
288
+ {
289
+ cwd,
290
+ signal,
291
+ deadline = Infinity,
292
+ runCommand = runGoalVerificationCommand,
293
+ onCheckStart = () => {},
294
+ } = {},
295
+ ) {
296
+ checkGoalVerificationCancellation(signal);
297
+ const plan = condition.verification;
298
+ if (!plan || plan.schema !== PREPARED_SCHEMA)
299
+ fail("Goal verification was not prepared before the author turn");
300
+ if ((await fs.realpath(path.resolve(cwd))) !== plan.workspace)
301
+ fail("Goal verification workspace changed");
302
+ const evidence = {
303
+ kind: "verification",
304
+ source: "host-prepared-checks",
305
+ planDigest: plan.digest,
306
+ manifestPath: plan.manifestPath,
307
+ requiredChecks: plan.checks.map((check) => check.id),
308
+ checks: [],
309
+ checkerInputs: plan.inputs,
310
+ coverage: { required: plan.checks.length, executed: 0, passed: 0 },
311
+ manualReviewRequired: false,
312
+ };
313
+ const unmet = (reason) => ({ met: false, reason, evidence });
314
+ if (Date.now() >= deadline)
315
+ return unmet("Goal time budget exhausted before independent verification");
316
+ if (!(await currentInputs(plan, signal)))
317
+ fail(
318
+ "Frozen Goal checker inputs changed; stop and review the acceptance definition",
319
+ );
320
+ const before = await captureInputs(plan, signal);
321
+ evidence.workspace = before;
322
+ if (!before.verified)
323
+ return unmet(
324
+ "Goal source or required artifact evidence is missing or incomplete",
325
+ );
326
+ for (const check of plan.checks) {
327
+ checkGoalVerificationCancellation(signal);
328
+ await onCheckStart({
329
+ met: false,
330
+ reason: `Independent Goal check ${check.id} is starting`,
331
+ evidence: { ...structuredClone(evidence), pendingCheckId: check.id },
332
+ });
333
+ checkGoalVerificationCancellation(signal);
334
+ const remainingMs = deadline - Date.now();
335
+ if (remainingMs <= 0)
336
+ return unmet(
337
+ "Goal time budget exhausted before independent verification",
338
+ );
339
+ const result = await runCommand(check, {
340
+ cwd: plan.workspace,
341
+ signal,
342
+ timeoutMs: Math.min(check.timeoutMs, remainingMs),
343
+ });
344
+ checkGoalVerificationCancellation(signal);
345
+ evidence.checks.push(result);
346
+ evidence.coverage.executed++;
347
+ if (!(await currentInputs(plan, signal)))
348
+ fail(
349
+ "Frozen Goal checker inputs changed during verification; stop and review",
350
+ );
351
+ const after = await captureInputs(plan, signal);
352
+ evidence.workspaceCurrent = after.verified && sameInputs(before, after);
353
+ if (!evidence.workspaceCurrent)
354
+ return unmet(
355
+ "Goal source or artifacts changed during independent verification",
356
+ );
357
+ if (result?.status !== "passed" || result.exitCode !== 0 || result.signal)
358
+ return unmet(
359
+ `Independent Goal check ${check.id} did not pass (${result?.status || "unknown"})`,
360
+ );
361
+ evidence.coverage.passed++;
362
+ }
363
+ if (Date.now() >= deadline)
364
+ return unmet("Goal time budget expired before verification settled");
365
+ checkGoalVerificationCancellation(signal);
366
+ return {
367
+ met: true,
368
+ reason:
369
+ "All independent Goal checks passed for the current source and required artifacts",
370
+ evidence,
371
+ };
372
+ }
@@ -4,6 +4,10 @@ import { providerFetch } from "./formal-budget-provider-scope.js";
4
4
  import { isFormalBudgetError } from "./formal-budget-errors.js";
5
5
  import { normalizeOllamaBaseUrl } from "./ollama-base-url.js";
6
6
  import { resolveModelCapabilityProfile } from "./model-capabilities.js";
7
+ import {
8
+ projectEnvelopePricingContext,
9
+ projectUsagePricingContext,
10
+ } from "./usage-pricing-context.js";
7
11
  import {
8
12
  createOpenAIResponsesBody,
9
13
  normalizeOpenAIResponsesResponse,
@@ -23,10 +27,6 @@ export function normalizeLlmProbeUsage(provider, data, runtimeProtocol = null) {
23
27
  if (!data || typeof data !== "object" || Array.isArray(data)) return null;
24
28
  let usage;
25
29
  if (provider === "openai" && runtimeProtocol === "openai-responses") {
26
- // The existing Responses codec owns cached/reasoning token accounting.
27
- // Do not invent a priced cache-write split that the probe has not verified.
28
- const writes = data.usage?.input_tokens_details?.cache_write_tokens;
29
- if (writes !== undefined && writes !== 0) return null;
30
30
  usage = normalizeOpenAIResponsesUsage(data.usage);
31
31
  } else if (provider === "ollama") {
32
32
  usage = {
@@ -91,7 +91,9 @@ export function normalizeLlmProbeUsage(provider, data, runtimeProtocol = null) {
91
91
  ? 0
92
92
  : usage.cache_creation_input_tokens,
93
93
  };
94
- return Object.values(normalized).every(count) ? normalized : null;
94
+ return Object.values(normalized).every(count)
95
+ ? { ...normalized, ...projectEnvelopePricingContext(usage, data) }
96
+ : null;
95
97
  }
96
98
 
97
99
  export function priceLlmProbeUsage(target, usage) {
@@ -105,6 +107,7 @@ export function priceLlmProbeUsage(target, usage) {
105
107
  ].every(count)
106
108
  )
107
109
  return null;
110
+ const context = projectUsagePricingContext(usage);
108
111
  const estimate = estimateCost({
109
112
  provider: target.provider,
110
113
  model: target.model,
@@ -112,6 +115,9 @@ export function priceLlmProbeUsage(target, usage) {
112
115
  outputTokens: usage.output_tokens,
113
116
  cacheReadTokens: usage.cache_read_input_tokens,
114
117
  cacheCreationTokens: usage.cache_creation_input_tokens,
118
+ ...context,
119
+ serviceTier: context.service_tier ?? "standard",
120
+ regionalProcessing: context.regional_processing === true,
115
121
  });
116
122
  return estimate.matched && Number.isFinite(estimate.totalCost)
117
123
  ? estimate.totalCost
@@ -130,6 +136,7 @@ export function llmProbeReceipt(
130
136
  output_tokens: usage.output_tokens,
131
137
  cache_read_input_tokens: usage.cache_read_input_tokens,
132
138
  cache_creation_input_tokens: usage.cache_creation_input_tokens,
139
+ ...projectUsagePricingContext(usage),
133
140
  };
134
141
  return {
135
142
  schema: LLM_PROBE_SCHEMA,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "chainlesschain.llm-onboarding-catalog/v1",
3
- "capabilityCatalogVersion": "2026-10-15",
3
+ "capabilityCatalogVersion": "2026-10-29",
4
4
  "scope": "new-connections",
5
5
  "runtimeVerified": false,
6
6
  "accountVerified": false,
@@ -220,6 +220,7 @@ export function normalizePricingTerms(value) {
220
220
  "cacheReadMultiplier",
221
221
  "cacheWriteMultiplier",
222
222
  "cacheWrite1hMultiplier",
223
+ "cacheWrite12hMultiplier",
223
224
  "longContext",
224
225
  "serviceMultipliers",
225
226
  ]);
@@ -230,6 +231,7 @@ export function normalizePricingTerms(value) {
230
231
  "cacheReadMultiplier",
231
232
  "cacheWriteMultiplier",
232
233
  "cacheWrite1hMultiplier",
234
+ "cacheWrite12hMultiplier",
233
235
  ]) {
234
236
  if (!Object.hasOwn(value, key)) continue;
235
237
  if (!finite(value[key])) fail();
@@ -333,8 +335,8 @@ export function lookupRate(provider, model, table = PRICE_TABLE) {
333
335
  * currency:string, matched:boolean, free:boolean, rate:object|null }}
334
336
  */
335
337
  // Prompt-cache price multipliers relative to the input rate. A cache WRITE
336
- // (Anthropic 5-minute ephemeral breakpoint) bills at ~125%; only Anthropic
337
- // reports cache creation. Cache READ pricing differs per provider — Anthropic
338
+ // (Anthropic 5-minute / OpenAI 30-minute) bills at 125%; longer TTLs have
339
+ // separate rates and require usage evidence. Cache READ pricing differs — Anthropic
338
340
  // ~10%, OpenAI ~50%, DeepSeek ~25% of the input rate — so the default below is
339
341
  // overridden per provider. Applied only when cache token counts are present, so
340
342
  // non-caching usage is priced exactly as before. Public list-price estimates
@@ -361,6 +363,8 @@ export function estimateCost({
361
363
  cacheCreationTokens = 0,
362
364
  cacheCreation5mTokens,
363
365
  cacheCreation1hTokens,
366
+ cacheCreation30mTokens,
367
+ cacheCreation12hTokens,
364
368
  cacheCreationInvalid = false,
365
369
  pricingContextInvalid = false,
366
370
  requestInputTokens,
@@ -378,9 +382,25 @@ export function estimateCost({
378
382
  Number.isSafeInteger(cacheCreation1hTokens) &&
379
383
  cacheCreation1hTokens >= 0 &&
380
384
  cacheCreation5mTokens + cacheCreation1hTokens === cacheCreationTokens;
385
+ const openaiSplitPresent =
386
+ cacheCreation30mTokens != null || cacheCreation12hTokens != null;
387
+ const openaiSplitValid =
388
+ openaiSplitPresent &&
389
+ Number.isSafeInteger(cacheCreation30mTokens) &&
390
+ cacheCreation30mTokens >= 0 &&
391
+ Number.isSafeInteger(cacheCreation12hTokens) &&
392
+ cacheCreation12hTokens >= 0 &&
393
+ cacheCreation30mTokens + cacheCreation12hTokens === cacheCreationTokens;
381
394
  const missingCacheEvidence =
382
395
  cacheCreationInvalid ||
383
396
  (splitPresent && !splitValid) ||
397
+ (openaiSplitPresent && !openaiSplitValid) ||
398
+ (openaiSplitPresent && splitPresent) ||
399
+ (openaiSplitPresent && rate?.terms?.cacheWrite12hMultiplier == null) ||
400
+ (splitPresent && rate?.terms?.cacheWrite12hMultiplier != null) ||
401
+ (rate?.terms?.cacheWrite12hMultiplier != null &&
402
+ cacheCreationTokens > 0 &&
403
+ !openaiSplitValid) ||
384
404
  (rate?.terms?.cacheWrite1hMultiplier != null &&
385
405
  cacheCreationTokens > 0 &&
386
406
  !splitValid);
@@ -432,12 +452,16 @@ export function estimateCost({
432
452
  inputMultiplier *
433
453
  multiplier;
434
454
  const cacheCreationCost =
435
- ((splitValid
436
- ? cacheCreation5mTokens *
437
- (rate.terms?.cacheWriteMultiplier ?? CACHE_WRITE_MULTIPLIER) +
438
- cacheCreation1hTokens * (rate.terms?.cacheWrite1hMultiplier ?? 2)
439
- : Number(cacheCreationTokens) *
440
- (rate.terms?.cacheWriteMultiplier ?? CACHE_WRITE_MULTIPLIER)) /
455
+ ((openaiSplitValid
456
+ ? cacheCreation30mTokens *
457
+ (rate.terms.cacheWriteMultiplier ?? CACHE_WRITE_MULTIPLIER) +
458
+ cacheCreation12hTokens * rate.terms.cacheWrite12hMultiplier
459
+ : splitValid
460
+ ? cacheCreation5mTokens *
461
+ (rate.terms?.cacheWriteMultiplier ?? CACHE_WRITE_MULTIPLIER) +
462
+ cacheCreation1hTokens * (rate.terms?.cacheWrite1hMultiplier ?? 2)
463
+ : Number(cacheCreationTokens) *
464
+ (rate.terms?.cacheWriteMultiplier ?? CACHE_WRITE_MULTIPLIER)) /
441
465
  1e6) *
442
466
  rate.in *
443
467
  inputMultiplier *
@@ -474,6 +498,8 @@ export function priceRollup(aggregate, { table } = {}) {
474
498
  cacheCreationTokens: row.cacheCreationTokens,
475
499
  cacheCreation5mTokens: row.cacheCreation5mTokens,
476
500
  cacheCreation1hTokens: row.cacheCreation1hTokens,
501
+ cacheCreation30mTokens: row.cacheCreation30mTokens,
502
+ cacheCreation12hTokens: row.cacheCreation12hTokens,
477
503
  cacheCreationInvalid: row.cacheCreationInvalid,
478
504
  pricingContextInvalid:
479
505
  row.pricingContextInvalid === true ||