chainlesschain 0.166.20 → 0.166.21

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 (214) hide show
  1. package/package.json +2 -2
  2. package/src/assets/web-panel/assets/{AIOps-CcJst5Zs.js → AIOps-BjMnsUci.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-BpHPFKd3.js → ActionButton-DdYFP03A.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-DHAsASuS.js → Analytics-Bb8TuuK_.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-BTKwo5RC.js → AppLayout-Kn3TIOtk.js} +5 -5
  6. package/src/assets/web-panel/assets/{Artifacts-BcCBTggA.js → Artifacts-4IxpqI_b.js} +1 -1
  7. package/src/assets/web-panel/assets/{Audit-z1JvJYbT.js → Audit-BOV2caqU.js} +1 -1
  8. package/src/assets/web-panel/assets/{BackgroundAgents-CJ7DCMDR.js → BackgroundAgents-B86k-ay4.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-CKpxw4uw.js → Backup-C5_ie1e3.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-2jI_IlUB.js → BaseInput-xpwg6QCW.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-C_4RfBeN.js → Chat-CVZOcZau.js} +5 -5
  12. package/src/assets/web-panel/assets/ChatBubbleRenderer-D8fPYhUu.js +1 -0
  13. package/src/assets/web-panel/assets/{Checkbox-BnF4z4N1.js → Checkbox-MKTq3zdP.js} +1 -1
  14. package/src/assets/web-panel/assets/{Codegen-m_LMamhM.js → Codegen-JUk3wzep.js} +1 -1
  15. package/src/assets/web-panel/assets/{Col-DzMbA760.js → Col-JPvTA0kC.js} +1 -1
  16. package/src/assets/web-panel/assets/{Community-SScuZUcW.js → Community-Tqgl87NQ.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compact-CiOHRvwQ.js → Compact-BuAFYBmN.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compliance-97FzYz-6.js → Compliance-CXS9WIPZ.js} +1 -1
  19. package/src/assets/web-panel/assets/{Cowork-C0ss-SRl.js → Cowork-Ds2bFHrr.js} +2 -2
  20. package/src/assets/web-panel/assets/{Cron-CCbdc9fp.js → Cron-C_dV_OeW.js} +2 -2
  21. package/src/assets/web-panel/assets/{Crosschain-BPnabXej.js → Crosschain-BsO6tIRo.js} +1 -1
  22. package/src/assets/web-panel/assets/{DID-B65hFnHs.js → DID-rNOFqBac.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dashboard-B6qR_TF2.js → Dashboard-C2fcKKVY.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dropdown-6c-2Fxm-.js → Dropdown-Y7Ndr0X_.js} +1 -1
  25. package/src/assets/web-panel/assets/{EmailListRenderer-GD57mfiz.js → EmailListRenderer-DcP_uPmL.js} +1 -1
  26. package/src/assets/web-panel/assets/{FamilyGuardDashboard-B2mxG6LN.js → FamilyGuardDashboard-Cwn3gDzk.js} +1 -1
  27. package/src/assets/web-panel/assets/{Federation-cZS-uvAo.js → Federation-ClQuOsqb.js} +1 -1
  28. package/src/assets/web-panel/assets/{FormItemContext-UbSfBIe1.js → FormItemContext-DfwtmlcK.js} +1 -1
  29. package/src/assets/web-panel/assets/GenericCardRenderer-zNZhtbC5.js +1 -0
  30. package/src/assets/web-panel/assets/{Git-DAlhOiDA.js → Git-BZmdW-G5.js} +2 -2
  31. package/src/assets/web-panel/assets/{Governance-B-RRVaP8.js → Governance-CqBk4lEn.js} +1 -1
  32. package/src/assets/web-panel/assets/{Inference-DBl-pXYR.js → Inference-Dbmt3ZXk.js} +1 -1
  33. package/src/assets/web-panel/assets/{KnowledgeGraph-DjqOkvgY.js → KnowledgeGraph-hMTH6qf3.js} +1 -1
  34. package/src/assets/web-panel/assets/{Logs-CEV7AEAD.js → Logs-CkiYgiW2.js} +2 -2
  35. package/src/assets/web-panel/assets/{MarkdownRenderer-BDCxa4d1.js → MarkdownRenderer-BL1FElXg.js} +1 -1
  36. package/src/assets/web-panel/assets/{Marketplace-oRjzfmYJ.js → Marketplace-CbB6wfin.js} +1 -1
  37. package/src/assets/web-panel/assets/{McpTools-BiTnznLw.js → McpTools-BSwiFtte.js} +3 -3
  38. package/src/assets/web-panel/assets/{Memory-DR0C5K4N.js → Memory-B03PeHrz.js} +2 -2
  39. package/src/assets/web-panel/assets/{MobileBridge--oR8wEcp.js → MobileBridge-CRGrnd-X.js} +1 -1
  40. package/src/assets/web-panel/assets/{MobileProjects-DKqpYMuG.js → MobileProjects-CE_5v2kO.js} +1 -1
  41. package/src/assets/web-panel/assets/{Mtc-Dg0D6fDQ.js → Mtc-Dp11QVx1.js} +2 -2
  42. package/src/assets/web-panel/assets/{MtcAudit-D4_-yWTK.js → MtcAudit-CYu-3JBu.js} +5 -5
  43. package/src/assets/web-panel/assets/{Multisig-Coz55FxA.js → Multisig-CGyJ0Xl3.js} +3 -3
  44. package/src/assets/web-panel/assets/{NLProgramming-BWVjgW9Y.js → NLProgramming-CoWi_ov1.js} +1 -1
  45. package/src/assets/web-panel/assets/{Notes-BflVuGwr.js → Notes-CgU9DDo9.js} +3 -3
  46. package/src/assets/web-panel/assets/{NotificationSettings-CT0F_dJ7.js → NotificationSettings-DX4I2b4W.js} +1 -1
  47. package/src/assets/web-panel/assets/OrderTableRenderer-CwHc15Zs.js +1 -0
  48. package/src/assets/web-panel/assets/{Organization-CMDTM2z5.js → Organization-oopLO_tk.js} +4 -4
  49. package/src/assets/web-panel/assets/{Overflow-acKvvYpC.js → Overflow-BFVvjMyf.js} +1 -1
  50. package/src/assets/web-panel/assets/{P2P-CRq5j9Ax.js → P2P-CBy5t-Tk.js} +2 -2
  51. package/src/assets/web-panel/assets/{PdhVaultBrowser-DmtzN6Kn.js → PdhVaultBrowser--YWJNsu6.js} +4 -4
  52. package/src/assets/web-panel/assets/{Permissions-SZ-kjJDa.js → Permissions-C2dZ8scb.js} +3 -3
  53. package/src/assets/web-panel/assets/{PersonalDataHub-DXh-ZfgJ.js → PersonalDataHub-Bs3l7Hlx.js} +6 -6
  54. package/src/assets/web-panel/assets/{Pipeline-DhBU9ftP.js → Pipeline-DEBWbZuD.js} +1 -1
  55. package/src/assets/web-panel/assets/{Privacy-BgEXpO_V.js → Privacy-CjHBb6NU.js} +1 -1
  56. package/src/assets/web-panel/assets/{ProjectInit-B2DJ-dmK.js → ProjectInit-D2WipUz5.js} +2 -2
  57. package/src/assets/web-panel/assets/{ProjectSettings-ve3SocWc.js → ProjectSettings-B6WfnrGB.js} +2 -2
  58. package/src/assets/web-panel/assets/{Projects-5ZvFasSJ.js → Projects-FF_thRi6.js} +1 -1
  59. package/src/assets/web-panel/assets/{Providers-C8fcF3BK.js → Providers-CCv5M_Dv.js} +1 -1
  60. package/src/assets/web-panel/assets/{QrScannerModal-unjO8lNO.js → QrScannerModal-CGthxU54.js} +1 -1
  61. package/src/assets/web-panel/assets/{QuickAsk-BT1QtT7D.js → QuickAsk-CnPmXPFb.js} +1 -1
  62. package/src/assets/web-panel/assets/{Recommend-BSjFrY1w.js → Recommend-Df_tGEa9.js} +1 -1
  63. package/src/assets/web-panel/assets/{RemoteSession-CWV0bICg.js → RemoteSession-Z58N0Loe.js} +2 -2
  64. package/src/assets/web-panel/assets/{Reputation-BMjiMsk2.js → Reputation-CZTBQ2Vt.js} +1 -1
  65. package/src/assets/web-panel/assets/{Row-9XCY22PM.js → Row-CdK3YpCQ.js} +1 -1
  66. package/src/assets/web-panel/assets/{RssFeed-DQ9PDy7Q.js → RssFeed-CFMVT5sb.js} +3 -3
  67. package/src/assets/web-panel/assets/{Search-Boym2HwG.js → Search-DrF8RIvD.js} +1 -1
  68. package/src/assets/web-panel/assets/{Security-Gbq3lGQb.js → Security-Ddk2f2DM.js} +4 -4
  69. package/src/assets/web-panel/assets/{Services-OcUfLdnu.js → Services-CCuK-VOo.js} +2 -2
  70. package/src/assets/web-panel/assets/{Skeleton-BjTog6cA.js → Skeleton-DxCpHzeM.js} +1 -1
  71. package/src/assets/web-panel/assets/{Skills-Dny4ft_1.js → Skills-t2oTDgcv.js} +1 -1
  72. package/src/assets/web-panel/assets/{Sla-Cy_VnhpZ.js → Sla-Df63M9_R.js} +1 -1
  73. package/src/assets/web-panel/assets/{SpeechSettings-CrFuL_lp.js → SpeechSettings-l7ox6KuX.js} +1 -1
  74. package/src/assets/web-panel/assets/{SyncSettings-k-FnjuOR.js → SyncSettings-COd_tgPp.js} +2 -2
  75. package/src/assets/web-panel/assets/{Tasks-ZEqDSo0_.js → Tasks-CzDCcrik.js} +1 -1
  76. package/src/assets/web-panel/assets/{Templates-CYYksYV5.js → Templates-D-vfxTGA.js} +1 -1
  77. package/src/assets/web-panel/assets/{Tenant-BvTTRTHS.js → Tenant-BlpT_Gxc.js} +1 -1
  78. package/src/assets/web-panel/assets/{Terminal-DMOQOtkj.js → Terminal-D5rq52Hg.js} +2 -2
  79. package/src/assets/web-panel/assets/TimelineRenderer-DdoMndkK.js +1 -0
  80. package/src/assets/web-panel/assets/{Tokens-VW6Wocdp.js → Tokens-BhgBsI6g.js} +1 -1
  81. package/src/assets/web-panel/assets/{Trigger-BtOxZqP6.js → Trigger-DwwzoikZ.js} +1 -1
  82. package/src/assets/web-panel/assets/{Trust-XcGJoTQx.js → Trust-HkTpzXFb.js} +1 -1
  83. package/src/assets/web-panel/assets/{UkeySign-aASNCs5j.js → UkeySign-D9nk6Ehe.js} +1 -1
  84. package/src/assets/web-panel/assets/{VideoEditing-Bz89M52u.js → VideoEditing-BKk0rfoy.js} +1 -1
  85. package/src/assets/web-panel/assets/{Wallet-uU4dSS_N.js → Wallet-IVWIU_Lq.js} +4 -4
  86. package/src/assets/web-panel/assets/{WebAuthn-Brrroxgr.js → WebAuthn-CFTCpfsG.js} +4 -4
  87. package/src/assets/web-panel/assets/{WorkflowEditor-Cny-evI9.js → WorkflowEditor-Dnf4Obif.js} +1 -1
  88. package/src/assets/web-panel/assets/{chat-CJ5iSwWq.js → chat-D2snERdj.js} +1 -1
  89. package/src/assets/web-panel/assets/{colors-DWa-2flG.js → colors-DKEjK1N1.js} +1 -1
  90. package/src/assets/web-panel/assets/{compact-item-DFwUfptU.js → compact-item-BEDLwQdt.js} +1 -1
  91. package/src/assets/web-panel/assets/{createContext-FHWWcyeB.js → createContext-DA9iW1a0.js} +1 -1
  92. package/src/assets/web-panel/assets/devWarning-DyhgpXPf.js +1 -0
  93. package/src/assets/web-panel/assets/{hasIn-QY_TElrN.js → hasIn-5l2xEcY9.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-hw1J_Oxs.js → index-5pW4t1iD.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-BR4RMPnB.js → index-7P1b8HZo.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-BUNwuu5v.js → index-B00GeekA.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-B18zERdP.js → index-B4QYBliR.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-wqiOz655.js → index-B7_W_rYd.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BQCtBurK.js → index-BO9dQjpt.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DUfILsc-.js → index-BZ5lY2zx.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DUepuy7O.js → index-B_eCoZgW.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-uRUZdL7I.js → index-BgfImyZI.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-CUoLd1dt.js → index-Bq5P3piS.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-BiHRihC0.js → index-Bqc8tdIF.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-BcVr-LOk.js → index-C7sKbM5s.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-DDpXDi4J.js → index-CGlotREA.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-CjejB-z9.js → index-CRPrHE7h.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-D2rPJ6Sv.js → index-CX1x4AFn.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-w3SdYwaC.js → index-CbTPvp2_.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-D-Mhq8K6.js → index-CjWltbi_.js} +1 -1
  111. package/src/assets/web-panel/assets/index-Ck1jhFE0.js +1 -0
  112. package/src/assets/web-panel/assets/{index-Bd7McYpJ.js → index-CkMKuqUs.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-BYbwQ7SP.js → index-CmruhzFi.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-2ufsNuVn.js → index-Csfb-7hw.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-0umhind6.js → index-CxEtQYdi.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-B33frlaD.js → index-D7z4zB_a.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-Dy2PnKZx.js → index-DLoalqRX.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-CUiTugu3.js → index-DU2TXJu-.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-CGv5In_T.js → index-DXet1xol.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DCHMVYG1.js → index-Dbd7eEex.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-th467RN6.js → index-Dbkghqn_.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-CkmgbT7h.js → index-Dg2a9owQ.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-aTiI7lOQ.js → index-DpqtbXdE.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-C5F1vwec.js → index-DqwPFbOb.js} +3 -3
  125. package/src/assets/web-panel/assets/{index-DaHvj4jA.js → index-DvV03Ayk.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-BRsGZBHc.js → index-NJieh3T1.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-CeGn0A4W.js → index-Td8ZwyoC.js} +1 -1
  128. package/src/assets/web-panel/assets/index-c8jJEHVs.js +1 -0
  129. package/src/assets/web-panel/assets/{index-va4Rt-yM.js → index-e-e40id6.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-CKS7n6mE.js → index-fccZmC_h.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-BEjwv2x6.js → index-fgYk0QXO.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-Dlq-u9E4.js → index-yYEQXYaU.js} +1 -1
  133. package/src/assets/web-panel/assets/{initDefaultProps-BeSPUFDz.js → initDefaultProps-CPrcB1TC.js} +1 -1
  134. package/src/assets/web-panel/assets/{motion-Dcajvjm9.js → motion-BQ7mWRh_.js} +1 -1
  135. package/src/assets/web-panel/assets/{move-B76orau-.js → move-CzOEq99p.js} +1 -1
  136. package/src/assets/web-panel/assets/{mtc-parser-zB6yFwcX.js → mtc-parser-BlQI5jrw.js} +1 -1
  137. package/src/assets/web-panel/assets/{omit-BsbNjz8w.js → omit-DlW4gxmv.js} +1 -1
  138. package/src/assets/web-panel/assets/{pickAttrs-BiJ9tssQ.js → pickAttrs-BBYms5nP.js} +1 -1
  139. package/src/assets/web-panel/assets/{placementArrow-BdfMjMeN.js → placementArrow-az2MPJ_7.js} +1 -1
  140. package/src/assets/web-panel/assets/{responsiveObserve-rV4LGpbU.js → responsiveObserve-D1-ibEol.js} +1 -1
  141. package/src/assets/web-panel/assets/{slide-HsVw1qFQ.js → slide-DHGqa4GA.js} +1 -1
  142. package/src/assets/web-panel/assets/{statusUtils-D1ry8XPE.js → statusUtils-CYGDo6lD.js} +1 -1
  143. package/src/assets/web-panel/assets/{styleChecker-B1t6aQQ_.js → styleChecker-Cl2EM9K6.js} +1 -1
  144. package/src/assets/web-panel/assets/{useFlexGapSupport-C8qbl-9w.js → useFlexGapSupport-DdYhzuv1.js} +1 -1
  145. package/src/assets/web-panel/assets/{useFs-R7g_mYTC.js → useFs-DWumPuBW.js} +1 -1
  146. package/src/assets/web-panel/assets/{usePersonalDataHub-Cd-kCe7Z.js → usePersonalDataHub-DxAO-Aqi.js} +1 -1
  147. package/src/assets/web-panel/assets/{vnode-9WhK5UWA.js → vnode-CplsQf_N.js} +1 -1
  148. package/src/assets/web-panel/assets/{zoom-CUqppPco.js → zoom-Cw5HXNSG.js} +1 -1
  149. package/src/assets/web-panel/index.html +1 -1
  150. package/src/command-help-index.json +2 -2
  151. package/src/commands/agent.js +19 -1
  152. package/src/commands/evolution-knowledge.js +54 -0
  153. package/src/commands/evolution-workbench.js +83 -0
  154. package/src/commands/evolution.js +6 -1
  155. package/src/commands/serve.js +16 -0
  156. package/src/commands/skill.js +158 -16
  157. package/src/data/changelog.json +13 -0
  158. package/src/gateways/ws/session-protocol.js +2 -0
  159. package/src/gateways/ws/ws-agent-handler.js +124 -69
  160. package/src/gateways/ws/ws-server.js +19 -0
  161. package/src/generated/cc-agent-protocol.schema.json +7 -1
  162. package/src/harness/jsonl-session-store.js +25 -1
  163. package/src/index.js +1 -1
  164. package/src/lib/app-server/cli-agent-kernel-adapter.js +8 -0
  165. package/src/lib/app-server/graph-runtime.js +40 -1
  166. package/src/lib/app-server/server.js +181 -3
  167. package/src/lib/app-server/websocket-transport.js +2 -0
  168. package/src/lib/evolution/agent-evolution-runtime-composition-brand.js +17 -0
  169. package/src/lib/evolution/agent-evolution-runtime-composition.js +165 -1
  170. package/src/lib/evolution/controlled-skill-production-pilot.js +912 -0
  171. package/src/lib/evolution/evolution-artifact-ports.js +21 -0
  172. package/src/lib/evolution/evolution-raw-crypto-shred.js +185 -0
  173. package/src/lib/evolution/evolution-workbench-batch-executor.js +195 -0
  174. package/src/lib/evolution/evolution-workbench-cli-host.js +169 -0
  175. package/src/lib/evolution/evolution-workbench-metrics-ledger-adapter.js +648 -0
  176. package/src/lib/evolution/evolution-workbench-metrics.js +943 -0
  177. package/src/lib/evolution/evolution-workbench-projection.js +734 -0
  178. package/src/lib/evolution/evolution-workbench-version-control.js +272 -0
  179. package/src/lib/evolution/governed-knowledge-conflict-merge.js +352 -0
  180. package/src/lib/evolution/governed-knowledge-dependency-authority.js +273 -0
  181. package/src/lib/evolution/governed-knowledge-dependency-ledger-executor.js +646 -0
  182. package/src/lib/evolution/governed-knowledge-merge-ledger-executor.js +644 -0
  183. package/src/lib/evolution/governed-knowledge-merge-publisher-authority.js +282 -0
  184. package/src/lib/evolution/governed-knowledge-node-crypto-authority.js +348 -0
  185. package/src/lib/evolution/governed-knowledge-rbac-approval-authority.js +621 -0
  186. package/src/lib/evolution/governed-knowledge-review-host.js +249 -0
  187. package/src/lib/evolution/governed-knowledge-sync-ledger-adapter.js +643 -0
  188. package/src/lib/evolution/governed-knowledge-sync-merge-publisher.js +259 -0
  189. package/src/lib/evolution/governed-knowledge-sync.js +485 -0
  190. package/src/lib/evolution/governed-knowledge-trust-ledger.js +707 -0
  191. package/src/lib/evolution/governed-skill-marketplace.js +430 -0
  192. package/src/lib/evolution/governed-wiki-pruning.js +435 -0
  193. package/src/lib/evolution/skill-outcome-index-authority.js +268 -0
  194. package/src/lib/evolution/skill-outcome-source-catalog-authority.js +237 -0
  195. package/src/lib/public-ide-capability-manifest.js +4 -0
  196. package/src/lib/skill-outcome-authority.js +43 -0
  197. package/src/lib/skill-outcome-transcript-authority.js +252 -0
  198. package/src/lib/skill-retrieval-router-benchmark.js +135 -0
  199. package/src/lib/skill-retrieval-router.js +235 -0
  200. package/src/lib/skill-vector-authority.js +325 -0
  201. package/src/lib/skill-vector-process-authority.js +386 -0
  202. package/src/repl/agent-repl.js +7 -1
  203. package/src/runtime/agent-core.js +72 -6
  204. package/src/runtime/agent-runtime.js +42 -0
  205. package/src/runtime/headless-runner.js +32 -0
  206. package/src/runtime/headless-stream.js +36 -1
  207. package/src/runtime/runtime-factory.js +62 -4
  208. package/src/assets/web-panel/assets/ChatBubbleRenderer-eMmw1eZF.js +0 -1
  209. package/src/assets/web-panel/assets/GenericCardRenderer-BMAtvGt1.js +0 -1
  210. package/src/assets/web-panel/assets/OrderTableRenderer-Dyrnqy_o.js +0 -1
  211. package/src/assets/web-panel/assets/TimelineRenderer-CnudkJxk.js +0 -1
  212. package/src/assets/web-panel/assets/devWarning-DxufPwXC.js +0 -1
  213. package/src/assets/web-panel/assets/index-ZMTB9p5z.js +0 -1
  214. package/src/assets/web-panel/assets/index-_PvIDelE.js +0 -1
@@ -74,6 +74,8 @@ import {
74
74
  settleWsTurnClaim,
75
75
  } from "../../harness/jsonl-session-store.js";
76
76
  import { sessionBudgetAdmissionError } from "../../lib/session-budget-production-root.js";
77
+ import { captureAgentSkillOutcomeIndex } from "../../lib/evolution/agent-evolution-runtime-composition-brand.js";
78
+ import { captureSkillVectorAuthority } from "../../lib/skill-vector-authority.js";
77
79
  import {
78
80
  beginSessionBudgetUsage,
79
81
  markSessionBudgetUsageUnknown,
@@ -178,6 +180,8 @@ export class WSAgentHandler {
178
180
  sessionBudgetRoot = null,
179
181
  hostResourceBudget = null,
180
182
  evolutionCompositionFactory = null,
183
+ skillOutcomeIndex = null,
184
+ skillVectorAuthority = null,
181
185
  }) {
182
186
  this.session = session;
183
187
  this.interaction = interaction;
@@ -252,6 +256,23 @@ export class WSAgentHandler {
252
256
  throw new TypeError("evolutionCompositionFactory must be a function");
253
257
  }
254
258
  this._evolutionCompositionFactory = evolutionCompositionFactory;
259
+ this._skillOutcomeIndex =
260
+ skillOutcomeIndex === null
261
+ ? null
262
+ : captureAgentSkillOutcomeIndex(skillOutcomeIndex);
263
+ this._skillVectorAuthority =
264
+ skillVectorAuthority === null
265
+ ? null
266
+ : captureSkillVectorAuthority(skillVectorAuthority);
267
+ if (
268
+ this._skillOutcomeIndex !== null &&
269
+ this._skillVectorAuthority !== null &&
270
+ this._skillOutcomeIndex.tenantId !== this._skillVectorAuthority.tenantId
271
+ ) {
272
+ throw new TypeError(
273
+ "WebSocket retrieval authorities must share one tenant",
274
+ );
275
+ }
255
276
  this._compactionLlmQuery = compactionLlmQuery || null;
256
277
  this._compactionSettlementBlock = null;
257
278
  this._compactionChatFn =
@@ -333,6 +354,22 @@ export class WSAgentHandler {
333
354
  "Agent evolution composition belongs to another WebSocket turn",
334
355
  );
335
356
  }
357
+ if (
358
+ this._skillOutcomeIndex !== null &&
359
+ composition.tenantId !== this._skillOutcomeIndex.tenantId
360
+ ) {
361
+ throw new TypeError(
362
+ "WebSocket evolution composition and Skill outcome index must share one tenant",
363
+ );
364
+ }
365
+ if (
366
+ this._skillVectorAuthority !== null &&
367
+ composition.tenantId !== this._skillVectorAuthority.tenantId
368
+ ) {
369
+ throw new TypeError(
370
+ "WebSocket evolution composition and Skill vector authority must share one tenant",
371
+ );
372
+ }
336
373
  await composition.evolutionIngress.start();
337
374
  return composition;
338
375
  } catch (cause) {
@@ -821,44 +858,50 @@ export class WSAgentHandler {
821
858
  let result;
822
859
  try {
823
860
  this._sessionHostLease?.assert?.();
824
- result = await this._compactContextMemory(session.messages, {
825
- provider: session.provider,
826
- model: session.model,
827
- baseUrl: session.baseUrl,
828
- apiKey: session.apiKey,
829
- signal:
830
- signal || this._sessionBudgetSignal || this._sessionHostLease?.signal,
831
- onlyIfNeeded: true,
832
- preserveCompletedExchange: true,
833
- llmQuery: this._compactionLlmQuery,
834
- chatFn: this._compactionChatFn,
835
- chatOptions: {
836
- cwd: session.projectRoot,
837
- sessionId: session.id,
838
- },
839
- ...(meterCompaction
840
- ? {
841
- onProviderCallStart: () => {
842
- const call = this._beginCanonicalCompactionUsage();
843
- compactionUsageCall = call;
844
- return call.callId;
845
- },
861
+ result = await this._compactContextMemory(
862
+ session.messages,
863
+ {
864
+ provider: session.provider,
865
+ model: session.model,
866
+ baseUrl: session.baseUrl,
867
+ apiKey: session.apiKey,
868
+ signal:
869
+ signal ||
870
+ this._sessionBudgetSignal ||
871
+ this._sessionHostLease?.signal,
872
+ onlyIfNeeded: true,
873
+ preserveCompletedExchange: true,
874
+ llmQuery: this._compactionLlmQuery,
875
+ chatFn: this._compactionChatFn,
876
+ chatOptions: {
877
+ cwd: session.projectRoot,
878
+ sessionId: session.id,
879
+ },
880
+ ...(meterCompaction
881
+ ? {
882
+ onProviderCallStart: () => {
883
+ const call = this._beginCanonicalCompactionUsage();
884
+ compactionUsageCall = call;
885
+ return call.callId;
886
+ },
887
+ }
888
+ : {}),
889
+ maxMessages: session.compactionMaxMessages,
890
+ maxTokens: session.compactionMaxTokens,
891
+ maxOutputTokens: session.compactionMaxOutputTokens,
892
+ summaryInputMaxChars: session.compactionInputMaxChars,
893
+ onContextMemorySummarySettled: (summaryResult) => {
894
+ if (compactionUsageCall && !compactionUsageSettled) {
895
+ this._settleCanonicalCompactionUsage(
896
+ compactionUsageCall,
897
+ summaryResult,
898
+ );
899
+ compactionUsageSettled = true;
846
900
  }
847
- : {}),
848
- maxMessages: session.compactionMaxMessages,
849
- maxTokens: session.compactionMaxTokens,
850
- maxOutputTokens: session.compactionMaxOutputTokens,
851
- summaryInputMaxChars: session.compactionInputMaxChars,
852
- onContextMemorySummarySettled: (summaryResult) => {
853
- if (compactionUsageCall && !compactionUsageSettled) {
854
- this._settleCanonicalCompactionUsage(
855
- compactionUsageCall,
856
- summaryResult,
857
- );
858
- compactionUsageSettled = true;
859
- }
901
+ },
860
902
  },
861
- }, "auto");
903
+ "auto",
904
+ );
862
905
  if (compactionUsageCall && !compactionUsageSettled) {
863
906
  this._settleCanonicalCompactionUsage(compactionUsageCall, result);
864
907
  compactionUsageSettled = true;
@@ -1471,6 +1514,12 @@ export class WSAgentHandler {
1471
1514
  shellPolicyOverrides: session.shellPolicyOverrides || null,
1472
1515
  slotFiller,
1473
1516
  interaction: this.interaction,
1517
+ ...(this._skillOutcomeIndex === null
1518
+ ? {}
1519
+ : { skillOutcomeIndex: this._skillOutcomeIndex }),
1520
+ ...(this._skillVectorAuthority === null
1521
+ ? {}
1522
+ : { skillVectorAuthority: this._skillVectorAuthority }),
1474
1523
  signal: turnSignal,
1475
1524
  sessionBudget: this._sessionBudget,
1476
1525
  // P0 authority: null unless opted in (byte-identical default — agent
@@ -1567,6 +1616,7 @@ export class WSAgentHandler {
1567
1616
  ? event.result?.skill || event.result?.skill_name || undefined
1568
1617
  : undefined),
1569
1618
  durationMs,
1619
+ invocationReceipt: event.result?.invocationReceipt,
1570
1620
  });
1571
1621
  if (record.providerId) activeToolCalls.delete(record.providerId);
1572
1622
  const index = activeToolCallOrder.indexOf(record);
@@ -2183,41 +2233,46 @@ export class WSAgentHandler {
2183
2233
  try {
2184
2234
  this.assertSessionBudgetAdmission("WebSocket compaction");
2185
2235
  this._sessionHostLease?.assert?.();
2186
- result = await this._compactContextMemory(session.messages, {
2187
- provider: session.provider,
2188
- model: session.model,
2189
- baseUrl: session.baseUrl,
2190
- apiKey: session.apiKey,
2191
- signal: this._sessionBudgetSignal || this._sessionHostLease?.signal,
2192
- force: true,
2193
- preserveCompletedExchange: true,
2194
- llmQuery: this._compactionLlmQuery,
2195
- chatFn: this._compactionChatFn,
2196
- chatOptions: {
2197
- cwd: session.projectRoot,
2198
- sessionId: session.id,
2199
- },
2200
- ...(meterCompaction
2201
- ? {
2202
- onProviderCallStart: () => {
2203
- const call = this._beginCanonicalCompactionUsage();
2204
- compactionUsageCall = call;
2205
- return call.callId;
2206
- },
2236
+ result = await this._compactContextMemory(
2237
+ session.messages,
2238
+ {
2239
+ provider: session.provider,
2240
+ model: session.model,
2241
+ baseUrl: session.baseUrl,
2242
+ apiKey: session.apiKey,
2243
+ signal:
2244
+ this._sessionBudgetSignal || this._sessionHostLease?.signal,
2245
+ force: true,
2246
+ preserveCompletedExchange: true,
2247
+ llmQuery: this._compactionLlmQuery,
2248
+ chatFn: this._compactionChatFn,
2249
+ chatOptions: {
2250
+ cwd: session.projectRoot,
2251
+ sessionId: session.id,
2252
+ },
2253
+ ...(meterCompaction
2254
+ ? {
2255
+ onProviderCallStart: () => {
2256
+ const call = this._beginCanonicalCompactionUsage();
2257
+ compactionUsageCall = call;
2258
+ return call.callId;
2259
+ },
2260
+ }
2261
+ : {}),
2262
+ maxOutputTokens: session.compactionMaxOutputTokens,
2263
+ summaryInputMaxChars: session.compactionInputMaxChars,
2264
+ onContextMemorySummarySettled: (summaryResult) => {
2265
+ if (compactionUsageCall && !compactionUsageSettled) {
2266
+ this._settleCanonicalCompactionUsage(
2267
+ compactionUsageCall,
2268
+ summaryResult,
2269
+ );
2270
+ compactionUsageSettled = true;
2207
2271
  }
2208
- : {}),
2209
- maxOutputTokens: session.compactionMaxOutputTokens,
2210
- summaryInputMaxChars: session.compactionInputMaxChars,
2211
- onContextMemorySummarySettled: (summaryResult) => {
2212
- if (compactionUsageCall && !compactionUsageSettled) {
2213
- this._settleCanonicalCompactionUsage(
2214
- compactionUsageCall,
2215
- summaryResult,
2216
- );
2217
- compactionUsageSettled = true;
2218
- }
2272
+ },
2219
2273
  },
2220
- }, "manual");
2274
+ "manual",
2275
+ );
2221
2276
  if (compactionUsageCall && !compactionUsageSettled) {
2222
2277
  this._settleCanonicalCompactionUsage(compactionUsageCall, result);
2223
2278
  compactionUsageSettled = true;
@@ -15,6 +15,8 @@ import { createHash, randomBytes, timingSafeEqual } from "node:crypto";
15
15
  import { fileURLToPath } from "node:url";
16
16
  import { dirname, join } from "node:path";
17
17
  import { WebSocketServer } from "ws";
18
+ import { captureAgentSkillOutcomeIndex } from "../../lib/evolution/agent-evolution-runtime-composition-brand.js";
19
+ import { captureSkillVectorAuthority } from "../../lib/skill-vector-authority.js";
18
20
  import {
19
21
  createEnvelope,
20
22
  envelopeFromStreamEvent,
@@ -330,6 +332,23 @@ export class ChainlessChainWSServer extends EventEmitter {
330
332
  }
331
333
  this.evolutionCompositionFactory =
332
334
  options.evolutionCompositionFactory || null;
335
+ this.skillOutcomeIndex =
336
+ options.skillOutcomeIndex == null
337
+ ? null
338
+ : captureAgentSkillOutcomeIndex(options.skillOutcomeIndex);
339
+ this.skillVectorAuthority =
340
+ options.skillVectorAuthority == null
341
+ ? null
342
+ : captureSkillVectorAuthority(options.skillVectorAuthority);
343
+ if (
344
+ this.skillOutcomeIndex !== null &&
345
+ this.skillVectorAuthority !== null &&
346
+ this.skillOutcomeIndex.tenantId !== this.skillVectorAuthority.tenantId
347
+ ) {
348
+ throw new TypeError(
349
+ "WebSocket retrieval authorities must share one tenant",
350
+ );
351
+ }
333
352
 
334
353
  /** Optional Phase-5 envelope bus for fan-out to hosted HTTP SSE. */
335
354
  this.envelopeBus = options.envelopeBus || null;
@@ -3649,7 +3649,13 @@
3649
3649
  "graph/status",
3650
3650
  "graph/history",
3651
3651
  "graph/cancel",
3652
- "graph/reconcile"
3652
+ "graph/reconcile",
3653
+ "evolution/workbench/list",
3654
+ "evolution/workbench/compare",
3655
+ "evolution/workbench/review",
3656
+ "evolution/workbench/rollback",
3657
+ "evolution/knowledge/conflicts",
3658
+ "evolution/knowledge/merge"
3653
3659
  ]
3654
3660
  }
3655
3661
  }
@@ -90,6 +90,9 @@ import {
90
90
  verifyExecutionLocationResultBundle,
91
91
  } from "../lib/execution-location-result.js";
92
92
  import { normalizeExecutionLocationResultStoreReceipt } from "../lib/execution-location-result-store.js";
93
+ import skillInvocationReceipt from "@chainlesschain/session-core/skill-invocation-receipt";
94
+
95
+ const { verifySkillInvocationReceipt } = skillInvocationReceipt;
93
96
 
94
97
  let securedSessionsDir = null;
95
98
  let securedSessionsDirIdentity = null;
@@ -3189,7 +3192,16 @@ export function appendToolCall(sessionId, toolName, args) {
3189
3192
  */
3190
3193
  export function appendToolCallCompact(
3191
3194
  sessionId,
3192
- { id, tool, isError, skill, plugin, pluginVersion, durationMs } = {},
3195
+ {
3196
+ id,
3197
+ tool,
3198
+ isError,
3199
+ skill,
3200
+ plugin,
3201
+ pluginVersion,
3202
+ durationMs,
3203
+ invocationReceipt,
3204
+ } = {},
3193
3205
  ) {
3194
3206
  const cleanId =
3195
3207
  id === undefined
@@ -3203,6 +3215,15 @@ export function appendToolCallCompact(
3203
3215
  if (id !== undefined && !cleanId) {
3204
3216
  throw new TypeError("compact tool call id must be a bounded string");
3205
3217
  }
3218
+ const verifiedInvocationReceipt =
3219
+ invocationReceipt === undefined || invocationReceipt === null
3220
+ ? null
3221
+ : verifySkillInvocationReceipt(invocationReceipt);
3222
+ if (verifiedInvocationReceipt !== null && tool !== "run_skill") {
3223
+ throw new TypeError(
3224
+ "Skill invocation receipt can only be attached to run_skill",
3225
+ );
3226
+ }
3206
3227
  const duration = normalizeCompactDuration(durationMs);
3207
3228
  appendEvent(sessionId, "tool_call", {
3208
3229
  ...(cleanId ? { id: cleanId } : {}),
@@ -3212,6 +3233,9 @@ export function appendToolCallCompact(
3212
3233
  ...(plugin ? { plugin: String(plugin) } : {}),
3213
3234
  ...(pluginVersion ? { plugin_version: String(pluginVersion) } : {}),
3214
3235
  ...(duration !== null ? { duration_ms: duration } : {}),
3236
+ ...(verifiedInvocationReceipt
3237
+ ? { skill_invocation_receipt: verifiedInvocationReceipt }
3238
+ : {}),
3215
3239
  });
3216
3240
  }
3217
3241
 
package/src/index.js CHANGED
@@ -99,7 +99,7 @@ export function createProgram(options = {}) {
99
99
  `Register function '${entry.register}' not found in ${entry.module}`,
100
100
  );
101
101
  }
102
- registerFn(program);
102
+ registerFn(program, options.commandDependencies?.[entry.name]);
103
103
  } catch (err) {
104
104
  if (process.env.DEBUG) {
105
105
  console.warn(
@@ -200,6 +200,14 @@ export class CliAgentKernelAdapter {
200
200
  turnOptions.evolutionIngress ??
201
201
  this.sessionOptions.evolutionIngress ??
202
202
  null,
203
+ skillOutcomeIndex:
204
+ turnOptions.skillOutcomeIndex ??
205
+ this.sessionOptions.skillOutcomeIndex ??
206
+ null,
207
+ skillVectorAuthority:
208
+ turnOptions.skillVectorAuthority ??
209
+ this.sessionOptions.skillVectorAuthority ??
210
+ null,
203
211
  },
204
212
  {
205
213
  ...this.dependencies,
@@ -6,7 +6,11 @@ import {
6
6
  import { createGraphAuthorityBinding } from "../graph-kernel/authority.js";
7
7
  import { GraphEventStore } from "../graph-kernel/event-store.js";
8
8
  import { GraphKernel } from "../graph-kernel/runtime.js";
9
- import { captureAgentEvolutionRuntimeComposition } from "../evolution/agent-evolution-runtime-composition-brand.js";
9
+ import {
10
+ captureAgentEvolutionRuntimeComposition,
11
+ captureAgentSkillOutcomeIndex,
12
+ } from "../evolution/agent-evolution-runtime-composition-brand.js";
13
+ import { captureSkillVectorAuthority } from "../skill-vector-authority.js";
10
14
  import {
11
15
  diffGraphTrace,
12
16
  locateBlockedRoot,
@@ -145,6 +149,8 @@ export class AppServerGraphRuntime {
145
149
  createId = randomUUID,
146
150
  onEvent = null,
147
151
  evolutionCompositionFactory = null,
152
+ skillOutcomeIndex = null,
153
+ skillVectorAuthority = null,
148
154
  writerLeaseTtlMs = 24 * 60 * 60 * 1000,
149
155
  } = {}) {
150
156
  if (typeof executeNode !== "function") {
@@ -165,6 +171,21 @@ export class AppServerGraphRuntime {
165
171
  this.createId = createId;
166
172
  this.onEvent = typeof onEvent === "function" ? onEvent : null;
167
173
  this.evolutionCompositionFactory = evolutionCompositionFactory;
174
+ this.skillOutcomeIndex =
175
+ skillOutcomeIndex === null
176
+ ? null
177
+ : captureAgentSkillOutcomeIndex(skillOutcomeIndex);
178
+ this.skillVectorAuthority =
179
+ skillVectorAuthority === null
180
+ ? null
181
+ : captureSkillVectorAuthority(skillVectorAuthority);
182
+ if (
183
+ this.skillOutcomeIndex !== null &&
184
+ this.skillVectorAuthority !== null &&
185
+ this.skillOutcomeIndex.tenantId !== this.skillVectorAuthority.tenantId
186
+ ) {
187
+ throw new TypeError("Graph retrieval authorities must share one tenant");
188
+ }
168
189
  this.writerLeaseTtlMs = writerLeaseTtlMs;
169
190
  this.runs = new Map();
170
191
  this.drives = new Map();
@@ -190,6 +211,22 @@ export class AppServerGraphRuntime {
190
211
  "Agent evolution composition belongs to another Graph run",
191
212
  );
192
213
  }
214
+ if (
215
+ this.skillOutcomeIndex !== null &&
216
+ composition.tenantId !== this.skillOutcomeIndex.tenantId
217
+ ) {
218
+ throw new TypeError(
219
+ "Graph evolution composition and Skill outcome index must share one tenant",
220
+ );
221
+ }
222
+ if (
223
+ this.skillVectorAuthority !== null &&
224
+ composition.tenantId !== this.skillVectorAuthority.tenantId
225
+ ) {
226
+ throw new TypeError(
227
+ "Graph evolution composition and Skill vector authority must share one tenant",
228
+ );
229
+ }
193
230
  if (
194
231
  typeof composition.evolutionIngress?.start !== "function" ||
195
232
  typeof composition.evolutionIngress?.complete !== "function"
@@ -693,6 +730,8 @@ export class AppServerGraphRuntime {
693
730
  input: nodeInput(entry.inputs, nodeId),
694
731
  signal: controller.signal,
695
732
  evolutionIngress: evolutionComposition?.evolutionIngress || null,
733
+ skillOutcomeIndex: this.skillOutcomeIndex,
734
+ skillVectorAuthority: this.skillVectorAuthority,
696
735
  });
697
736
  if (!result || !["succeeded", "completed"].includes(result.status)) {
698
737
  const error = runtimeError(