chainlesschain 0.166.21 → 0.166.24

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 (301) hide show
  1. package/README.md +67 -9
  2. package/package.json +4 -3
  3. package/src/assets/web-panel/assets/{AIOps-BjMnsUci.js → AIOps-DR-MWcZc.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-DdYFP03A.js → ActionButton-DT8B7sEb.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-Bb8TuuK_.js → Analytics-asjh3dQJ.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-Kn3TIOtk.js → AppLayout-DivQ491i.js} +5 -5
  7. package/src/assets/web-panel/assets/{Artifacts-4IxpqI_b.js → Artifacts-DPH2uUmy.js} +1 -1
  8. package/src/assets/web-panel/assets/{Audit-BOV2caqU.js → Audit-Bp2nLyc-.js} +1 -1
  9. package/src/assets/web-panel/assets/{BackgroundAgents-B86k-ay4.js → BackgroundAgents-CHS28khl.js} +1 -1
  10. package/src/assets/web-panel/assets/{Backup-C5_ie1e3.js → Backup-CKeaFSfz.js} +1 -1
  11. package/src/assets/web-panel/assets/{BaseInput-xpwg6QCW.js → BaseInput-CxwM9BAH.js} +1 -1
  12. package/src/assets/web-panel/assets/{Chat-CVZOcZau.js → Chat-DYLDwaCv.js} +4 -4
  13. package/src/assets/web-panel/assets/{ChatBubbleRenderer-D8fPYhUu.js → ChatBubbleRenderer-DdBJDBP0.js} +1 -1
  14. package/src/assets/web-panel/assets/{Checkbox-MKTq3zdP.js → Checkbox-uYTWOB8j.js} +1 -1
  15. package/src/assets/web-panel/assets/{Codegen-JUk3wzep.js → Codegen-CvYa_dwT.js} +1 -1
  16. package/src/assets/web-panel/assets/{Col-JPvTA0kC.js → Col-CanMAX4m.js} +1 -1
  17. package/src/assets/web-panel/assets/{Community-Tqgl87NQ.js → Community-B4WaDtHw.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compact-BuAFYBmN.js → Compact-K93Uof_3.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compliance-CXS9WIPZ.js → Compliance-CKeDLgUW.js} +1 -1
  20. package/src/assets/web-panel/assets/{Cowork-Ds2bFHrr.js → Cowork-P93grAeB.js} +3 -3
  21. package/src/assets/web-panel/assets/{Cron-C_dV_OeW.js → Cron-BSHnMtDn.js} +2 -2
  22. package/src/assets/web-panel/assets/{Crosschain-BsO6tIRo.js → Crosschain-epAOpUVJ.js} +1 -1
  23. package/src/assets/web-panel/assets/{DID-rNOFqBac.js → DID-ByjXfP7t.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dashboard-C2fcKKVY.js → Dashboard-QztTU8tb.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dropdown-Y7Ndr0X_.js → Dropdown-DhUc9yhN.js} +1 -1
  26. package/src/assets/web-panel/assets/{EmailListRenderer-DcP_uPmL.js → EmailListRenderer-C2sLhJJN.js} +1 -1
  27. package/src/assets/web-panel/assets/{FamilyGuardDashboard-Cwn3gDzk.js → FamilyGuardDashboard-CdfbWNDn.js} +1 -1
  28. package/src/assets/web-panel/assets/{Federation-ClQuOsqb.js → Federation-CcF_R7NW.js} +1 -1
  29. package/src/assets/web-panel/assets/{FormItemContext-DfwtmlcK.js → FormItemContext-Cm_X2IBk.js} +1 -1
  30. package/src/assets/web-panel/assets/{GenericCardRenderer-zNZhtbC5.js → GenericCardRenderer-DUi4NWlb.js} +1 -1
  31. package/src/assets/web-panel/assets/{Git-BZmdW-G5.js → Git-4Sq5FjBt.js} +2 -2
  32. package/src/assets/web-panel/assets/{Governance-CqBk4lEn.js → Governance-Dx2_v4V6.js} +1 -1
  33. package/src/assets/web-panel/assets/{Inference-Dbmt3ZXk.js → Inference-7Vr1xekR.js} +1 -1
  34. package/src/assets/web-panel/assets/{KnowledgeGraph-hMTH6qf3.js → KnowledgeGraph-Cnd2XOzf.js} +1 -1
  35. package/src/assets/web-panel/assets/{Logs-CkiYgiW2.js → Logs-B66QPVf-.js} +2 -2
  36. package/src/assets/web-panel/assets/{MarkdownRenderer-BL1FElXg.js → MarkdownRenderer-PLsEvhly.js} +1 -1
  37. package/src/assets/web-panel/assets/{Marketplace-CbB6wfin.js → Marketplace-BMIK9BmC.js} +1 -1
  38. package/src/assets/web-panel/assets/{McpTools-BSwiFtte.js → McpTools-BDbyp3J_.js} +3 -3
  39. package/src/assets/web-panel/assets/{Memory-B03PeHrz.js → Memory-CJdzfZGi.js} +2 -2
  40. package/src/assets/web-panel/assets/{MobileBridge-CRGrnd-X.js → MobileBridge-C2TH5Y3-.js} +1 -1
  41. package/src/assets/web-panel/assets/{MobileProjects-CE_5v2kO.js → MobileProjects-D1dYXkvV.js} +1 -1
  42. package/src/assets/web-panel/assets/{Mtc-Dp11QVx1.js → Mtc-B-4A1I1j.js} +4 -4
  43. package/src/assets/web-panel/assets/{MtcAudit-CYu-3JBu.js → MtcAudit-Bgcc9UOl.js} +5 -5
  44. package/src/assets/web-panel/assets/{Multisig-CGyJ0Xl3.js → Multisig-DqOe-etP.js} +3 -3
  45. package/src/assets/web-panel/assets/{NLProgramming-CoWi_ov1.js → NLProgramming-7VnhzE_6.js} +1 -1
  46. package/src/assets/web-panel/assets/Notes-BxawpeUQ.js +7 -0
  47. package/src/assets/web-panel/assets/{NotificationSettings-DX4I2b4W.js → NotificationSettings-Cr08G2aE.js} +1 -1
  48. package/src/assets/web-panel/assets/OrderTableRenderer-Ce8bEGlK.js +1 -0
  49. package/src/assets/web-panel/assets/{Organization-oopLO_tk.js → Organization-BC7lveGv.js} +4 -4
  50. package/src/assets/web-panel/assets/{Overflow-BFVvjMyf.js → Overflow-CakOW-G0.js} +1 -1
  51. package/src/assets/web-panel/assets/{P2P-CBy5t-Tk.js → P2P-Cf8CaOBZ.js} +2 -2
  52. package/src/assets/web-panel/assets/{PdhVaultBrowser--YWJNsu6.js → PdhVaultBrowser-Dc7b98W9.js} +3 -3
  53. package/src/assets/web-panel/assets/{Permissions-C2dZ8scb.js → Permissions-DGJyMEfS.js} +4 -4
  54. package/src/assets/web-panel/assets/{PersonalDataHub-Bs3l7Hlx.js → PersonalDataHub-DNIwSdwu.js} +6 -6
  55. package/src/assets/web-panel/assets/{Pipeline-DEBWbZuD.js → Pipeline-5B1S12wa.js} +1 -1
  56. package/src/assets/web-panel/assets/{Privacy-CjHBb6NU.js → Privacy-CMB6Ke5t.js} +1 -1
  57. package/src/assets/web-panel/assets/{ProjectInit-D2WipUz5.js → ProjectInit-D5PqTFiT.js} +2 -2
  58. package/src/assets/web-panel/assets/{ProjectSettings-B6WfnrGB.js → ProjectSettings-CbKNdSjV.js} +2 -2
  59. package/src/assets/web-panel/assets/Projects-ccXaHzYL.js +1 -0
  60. package/src/assets/web-panel/assets/{Providers-CCv5M_Dv.js → Providers-CJF5_-Gs.js} +1 -1
  61. package/src/assets/web-panel/assets/{QrScannerModal-CGthxU54.js → QrScannerModal-CT6iEAdi.js} +1 -1
  62. package/src/assets/web-panel/assets/{QuickAsk-CnPmXPFb.js → QuickAsk-Ci0h9mJ_.js} +1 -1
  63. package/src/assets/web-panel/assets/{Recommend-Df_tGEa9.js → Recommend-Da5mobZu.js} +1 -1
  64. package/src/assets/web-panel/assets/{RemoteSession-Z58N0Loe.js → RemoteSession-BaCY8eey.js} +2 -2
  65. package/src/assets/web-panel/assets/{Reputation-CZTBQ2Vt.js → Reputation-CaITfTsI.js} +1 -1
  66. package/src/assets/web-panel/assets/{Row-CdK3YpCQ.js → Row-DtUDamyP.js} +1 -1
  67. package/src/assets/web-panel/assets/{RssFeed-CFMVT5sb.js → RssFeed-DX27gFpg.js} +3 -3
  68. package/src/assets/web-panel/assets/{Search-DrF8RIvD.js → Search-DFL69osN.js} +1 -1
  69. package/src/assets/web-panel/assets/{Security-Ddk2f2DM.js → Security-BqGeoWv-.js} +3 -3
  70. package/src/assets/web-panel/assets/{Services-CCuK-VOo.js → Services-3z1WnEAc.js} +2 -2
  71. package/src/assets/web-panel/assets/{Skeleton-DxCpHzeM.js → Skeleton-C_OJQQ9Z.js} +1 -1
  72. package/src/assets/web-panel/assets/{Skills-t2oTDgcv.js → Skills-BY7aT6Mo.js} +1 -1
  73. package/src/assets/web-panel/assets/{Sla-Df63M9_R.js → Sla-BZv7DSaD.js} +1 -1
  74. package/src/assets/web-panel/assets/SpeechSettings-6lJKLhCn.js +1 -0
  75. package/src/assets/web-panel/assets/{SyncSettings-COd_tgPp.js → SyncSettings-B6D7STlI.js} +2 -2
  76. package/src/assets/web-panel/assets/{Tasks-CzDCcrik.js → Tasks-Co_FCZAO.js} +1 -1
  77. package/src/assets/web-panel/assets/{Templates-D-vfxTGA.js → Templates-CnY-9fgz.js} +1 -1
  78. package/src/assets/web-panel/assets/{Tenant-BlpT_Gxc.js → Tenant-B71yXfZ8.js} +1 -1
  79. package/src/assets/web-panel/assets/{Terminal-D5rq52Hg.js → Terminal-Dd_P7awo.js} +2 -2
  80. package/src/assets/web-panel/assets/{TimelineRenderer-DdoMndkK.js → TimelineRenderer-CvIEMyli.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tokens-BhgBsI6g.js → Tokens-DknFBGOi.js} +1 -1
  82. package/src/assets/web-panel/assets/{Trigger-DwwzoikZ.js → Trigger-D_4nJONB.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trust-HkTpzXFb.js → Trust-BNl21fa7.js} +1 -1
  84. package/src/assets/web-panel/assets/{UkeySign-D9nk6Ehe.js → UkeySign-CFrCI7uK.js} +1 -1
  85. package/src/assets/web-panel/assets/{VideoEditing-BKk0rfoy.js → VideoEditing-BVfY6JLg.js} +1 -1
  86. package/src/assets/web-panel/assets/{Wallet-IVWIU_Lq.js → Wallet-Cj9CAK0J.js} +4 -4
  87. package/src/assets/web-panel/assets/{WebAuthn-CFTCpfsG.js → WebAuthn-DcqZlzA3.js} +4 -4
  88. package/src/assets/web-panel/assets/{WorkflowEditor-Dnf4Obif.js → WorkflowEditor-Dfr_dMld.js} +1 -1
  89. package/src/assets/web-panel/assets/{chat-D2snERdj.js → chat-Yv6UF0AD.js} +1 -1
  90. package/src/assets/web-panel/assets/{colors-DKEjK1N1.js → colors-CDW_-1fs.js} +1 -1
  91. package/src/assets/web-panel/assets/{compact-item-BEDLwQdt.js → compact-item-BYOQvd-6.js} +1 -1
  92. package/src/assets/web-panel/assets/{createContext-DA9iW1a0.js → createContext-BCGO0BiP.js} +1 -1
  93. package/src/assets/web-panel/assets/devWarning-H-kXSuf-.js +1 -0
  94. package/src/assets/web-panel/assets/{hasIn-5l2xEcY9.js → hasIn-DY-70cfQ.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-B7_W_rYd.js → index-366wfQBU.js} +1 -1
  96. package/src/assets/web-panel/assets/index-B0o4MeNK.js +1 -0
  97. package/src/assets/web-panel/assets/{index-CxEtQYdi.js → index-B9ZogJJM.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-B00GeekA.js → index-B9m5QAMg.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-C7sKbM5s.js → index-BBs2mv5M.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CX1x4AFn.js → index-BFv1hzF6.js} +1 -1
  101. package/src/assets/web-panel/assets/index-BVafOL_I.js +1 -0
  102. package/src/assets/web-panel/assets/{index-DU2TXJu-.js → index-BXlEx4UH.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-e-e40id6.js → index-BayRTE5w.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-DXet1xol.js → index-Bb9nyts1.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-D7z4zB_a.js → index-Bf_Va0S-.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-fccZmC_h.js → index-Br3wQLVY.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-Bqc8tdIF.js → index-BvK4fjkk.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BO9dQjpt.js → index-C40UdtlS.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-Csfb-7hw.js → index-C4UJA2ju.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-Td8ZwyoC.js → index-CB_Iw73G.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-BZ5lY2zx.js → index-CCwWp3mT.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-DpqtbXdE.js → index-CFa2fPCk.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-NJieh3T1.js → index-CIyHxV4u.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-Dbkghqn_.js → index-CUP-A2_h.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DqwPFbOb.js → index-CUo27q9J.js} +3 -3
  116. package/src/assets/web-panel/assets/{index-B4QYBliR.js → index-CaT8trvf.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-BgfImyZI.js → index-CnZNbcux.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-Dbd7eEex.js → index-Cy2NE6AO.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-CbTPvp2_.js → index-CzeEEazr.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-5pW4t1iD.js → index-D--TEyDj.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-Dg2a9owQ.js → index-DCtsjhhT.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-B_eCoZgW.js → index-DLOf7BSz.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-7P1b8HZo.js → index-DM5c4pc-.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-CRPrHE7h.js → index-DRFC2Qt0.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-Bq5P3piS.js → index-DT_qVaaV.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-CjWltbi_.js → index-DUDoRk9r.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-CkMKuqUs.js → index-Dg-AQYDf.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DLoalqRX.js → index-DuIPq5MX.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-CGlotREA.js → index-NYVBUAVN.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-yYEQXYaU.js → index-NaCESahy.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-CmruhzFi.js → index-RjIMPG0u.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-fgYk0QXO.js → index-Y9akzgFO.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-DvV03Ayk.js → index-hZ0Eyrrw.js} +1 -1
  134. package/src/assets/web-panel/assets/{initDefaultProps-CPrcB1TC.js → initDefaultProps-CG99CcR4.js} +1 -1
  135. package/src/assets/web-panel/assets/{motion-BQ7mWRh_.js → motion-Z7MH0_0G.js} +1 -1
  136. package/src/assets/web-panel/assets/{move-CzOEq99p.js → move-BX67lOdq.js} +1 -1
  137. package/src/assets/web-panel/assets/{mtc-parser-BlQI5jrw.js → mtc-parser-CmAbG1fE.js} +1 -1
  138. package/src/assets/web-panel/assets/{omit-DlW4gxmv.js → omit-DiU5tI1_.js} +1 -1
  139. package/src/assets/web-panel/assets/{pickAttrs-BBYms5nP.js → pickAttrs-BGfvLrYL.js} +1 -1
  140. package/src/assets/web-panel/assets/{placementArrow-az2MPJ_7.js → placementArrow-CggLEgaJ.js} +1 -1
  141. package/src/assets/web-panel/assets/{responsiveObserve-D1-ibEol.js → responsiveObserve-t3nlghPZ.js} +1 -1
  142. package/src/assets/web-panel/assets/{slide-DHGqa4GA.js → slide-BkV4dL9s.js} +1 -1
  143. package/src/assets/web-panel/assets/{statusUtils-CYGDo6lD.js → statusUtils-qec1PUoC.js} +1 -1
  144. package/src/assets/web-panel/assets/{styleChecker-Cl2EM9K6.js → styleChecker-ChjX6T8D.js} +1 -1
  145. package/src/assets/web-panel/assets/{useFlexGapSupport-DdYhzuv1.js → useFlexGapSupport-B1jLoZcM.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFs-DWumPuBW.js → useFs-C3X53s4E.js} +1 -1
  147. package/src/assets/web-panel/assets/{usePersonalDataHub-DxAO-Aqi.js → usePersonalDataHub-DOvbbnkZ.js} +1 -1
  148. package/src/assets/web-panel/assets/{vnode-CplsQf_N.js → vnode-Ie0TEVFT.js} +1 -1
  149. package/src/assets/web-panel/assets/{zoom-Cw5HXNSG.js → zoom-CRUMVS8l.js} +1 -1
  150. package/src/assets/web-panel/index.html +1 -1
  151. package/src/command-help-index.json +3 -3
  152. package/src/commands/agent.js +18 -1
  153. package/src/commands/evolution-benchmark.js +72 -0
  154. package/src/commands/evolution.js +2 -0
  155. package/src/commands/governed-skill-marketplace.js +142 -0
  156. package/src/commands/marketplace.js +4 -1
  157. package/src/commands/serve.js +41 -0
  158. package/src/commands/skill.js +3 -0
  159. package/src/data/changelog.json +39 -0
  160. package/src/gateways/ws/ws-agent-handler.js +59 -2
  161. package/src/gateways/ws/ws-server.js +2 -0
  162. package/src/harness/golden-transcript.js +1 -0
  163. package/src/harness/prompt-compressor.js +51 -5
  164. package/src/harness/provider-backed-compaction.js +28 -1
  165. package/src/harness/remote-session-registry.js +15 -3
  166. package/src/index.js +30 -4
  167. package/src/lazy-dispatch.js +15 -1
  168. package/src/lib/advisor-runtime.js +55 -2
  169. package/src/lib/app-server/cli-agent-kernel-adapter.js +4 -0
  170. package/src/lib/app-server/graph-runtime.js +32 -0
  171. package/src/lib/app-server/server.js +45 -1
  172. package/src/lib/app-server/websocket-transport.js +23 -0
  173. package/src/lib/autonomous-agent.js +63 -13
  174. package/src/lib/cowork/ab-comparator-cli.js +4 -3
  175. package/src/lib/cowork/debate-review-cli.js +4 -3
  176. package/src/lib/cowork/decision-kb-cli.js +5 -0
  177. package/src/lib/cowork-adapter.js +38 -16
  178. package/src/lib/evolution/agent-evolution-ingress.js +95 -15
  179. package/src/lib/evolution/agent-evolution-runtime-composition.js +82 -0
  180. package/src/lib/evolution/agent-evolution-session-lifecycle.js +46 -0
  181. package/src/lib/evolution/agent-model-projection.js +217 -0
  182. package/src/lib/evolution/bounded-descriptor-read.js +29 -0
  183. package/src/lib/evolution/controlled-skill-pilot-ledger-adapter.js +551 -0
  184. package/src/lib/evolution/controlled-skill-production-pilot.js +308 -18
  185. package/src/lib/evolution/evidence-backed-wiki-maintainer.js +10 -1
  186. package/src/lib/evolution/evidence-json-text.js +236 -0
  187. package/src/lib/evolution/evolution-artifact-ports.js +202 -21
  188. package/src/lib/evolution/evolution-deployment-loader.js +369 -0
  189. package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +373 -0
  190. package/src/lib/evolution/evolution-eval-gate.js +14 -1
  191. package/src/lib/evolution/evolution-eval-process-supervisor-worker.mjs +14 -0
  192. package/src/lib/evolution/evolution-eval-process-supervisor.js +607 -0
  193. package/src/lib/evolution/evolution-evidence-artifact-adapter.js +14 -1
  194. package/src/lib/evolution/evolution-evidence-projector.js +240 -37
  195. package/src/lib/evolution/evolution-file-witness.js +153 -30
  196. package/src/lib/evolution/evolution-ledger-ports.js +1027 -66
  197. package/src/lib/evolution/evolution-ledger.js +66 -2
  198. package/src/lib/evolution/evolution-raw-crypto-shred.js +29 -15
  199. package/src/lib/evolution/evolution-raw-deletion-ledger-adapter.js +865 -0
  200. package/src/lib/evolution/evolution-release-train-domain-stages.js +769 -0
  201. package/src/lib/evolution/evolution-release-train-ledger-adapter.js +335 -0
  202. package/src/lib/evolution/evolution-release-train-stage-output-ledger-adapter.js +333 -0
  203. package/src/lib/evolution/evolution-release-train.js +586 -0
  204. package/src/lib/evolution/evolution-workbench-batch-executor.js +101 -144
  205. package/src/lib/evolution/evolution-workbench-control-ports.js +203 -0
  206. package/src/lib/evolution/evolution-workbench-file-resources.js +403 -0
  207. package/src/lib/evolution/evolution-workbench-projection.js +152 -25
  208. package/src/lib/evolution/evolution-workbench-registry-source.js +482 -0
  209. package/src/lib/evolution/evolution-workbench-review-ledger-adapter.js +823 -0
  210. package/src/lib/evolution/evolution-workbench-review-protocol.js +157 -0
  211. package/src/lib/evolution/evolution-workbench-rollback-authorization.js +57 -0
  212. package/src/lib/evolution/evolution-workbench-rollback-ledger-adapter.js +1016 -0
  213. package/src/lib/evolution/evolution-workbench-runtime.js +133 -0
  214. package/src/lib/evolution/evolution-workbench-version-control.js +70 -36
  215. package/src/lib/evolution/evolvable-artifact-ledger-adapter.js +736 -0
  216. package/src/lib/evolution/governed-knowledge-artifact-lifecycle.js +364 -0
  217. package/src/lib/evolution/governed-knowledge-candidate-rejection.js +343 -0
  218. package/src/lib/evolution/governed-knowledge-dependency-authority.js +227 -44
  219. package/src/lib/evolution/governed-knowledge-dependency-ledger-executor.js +95 -83
  220. package/src/lib/evolution/governed-knowledge-merge-ledger-executor.js +29 -2
  221. package/src/lib/evolution/governed-knowledge-merge-publisher-authority.js +31 -3
  222. package/src/lib/evolution/governed-knowledge-record.js +148 -0
  223. package/src/lib/evolution/governed-knowledge-revocation-record.js +135 -0
  224. package/src/lib/evolution/governed-knowledge-skill-rollback.js +475 -0
  225. package/src/lib/evolution/governed-knowledge-sync-ledger-adapter.js +92 -6
  226. package/src/lib/evolution/governed-knowledge-sync-merge-publisher.js +57 -4
  227. package/src/lib/evolution/governed-knowledge-sync.js +332 -99
  228. package/src/lib/evolution/governed-knowledge-wiki-tombstone.js +462 -0
  229. package/src/lib/evolution/governed-skill-marketplace-badge.js +208 -0
  230. package/src/lib/evolution/governed-skill-marketplace-candidate.js +330 -0
  231. package/src/lib/evolution/governed-skill-marketplace-cli-host.js +308 -0
  232. package/src/lib/evolution/governed-skill-marketplace-ledger-adapter.js +420 -0
  233. package/src/lib/evolution/governed-skill-marketplace.js +288 -5
  234. package/src/lib/evolution/governed-wiki-pruning-journal.js +302 -0
  235. package/src/lib/evolution/governed-wiki-pruning-ledger-adapter.js +459 -0
  236. package/src/lib/evolution/governed-wiki-pruning-maintenance.js +576 -0
  237. package/src/lib/evolution/governed-wiki-pruning-plan-authority.js +169 -0
  238. package/src/lib/evolution/governed-wiki-pruning-raw-shred.js +207 -0
  239. package/src/lib/evolution/governed-wiki-pruning-retrieval.js +587 -0
  240. package/src/lib/evolution/governed-wiki-pruning-runtime.js +153 -0
  241. package/src/lib/evolution/governed-wiki-pruning-skill-rollback.js +360 -0
  242. package/src/lib/evolution/governed-wiki-pruning.js +322 -143
  243. package/src/lib/evolution/independent-skill-revocation-source.js +231 -0
  244. package/src/lib/evolution/knowledge-wiki-source-admission.js +124 -0
  245. package/src/lib/evolution/knowledge-wiki-source-provenance.js +359 -0
  246. package/src/lib/evolution/progressive-canary-external-watchdog.js +578 -0
  247. package/src/lib/evolution/progressive-canary-traffic-worker.js +628 -0
  248. package/src/lib/evolution/progressive-canary-watchdog-file-store.js +285 -0
  249. package/src/lib/evolution/progressive-canary-watchdog-node-pki.js +265 -0
  250. package/src/lib/evolution/skill-candidate-registry.js +22 -0
  251. package/src/lib/evolution/skill-promotion-controller.js +25 -0
  252. package/src/lib/evolution/skill-promotion-review-ledger-adapter.js +100 -0
  253. package/src/lib/evolution/skill-registry-transition-ledger-adapter.js +131 -2
  254. package/src/lib/evolution/skill-release-registry.js +25 -4
  255. package/src/lib/evolution/skill-retrieval-revocation-authority.js +361 -0
  256. package/src/lib/evolution/skill-retrieval-revocation-ledger-adapter.js +346 -0
  257. package/src/lib/evolution/skill-revocation-propagation.js +467 -0
  258. package/src/lib/evolution/skill-target-matrix-eval.js +162 -11
  259. package/src/lib/evolution/skill-wiki-reconciliation.js +985 -0
  260. package/src/lib/evolution/skill-writer-inventory-manifest.js +15 -12
  261. package/src/lib/evolution/statistical-progressive-canary.js +845 -0
  262. package/src/lib/evolution/structured-memory-agent-control-plane.js +120 -0
  263. package/src/lib/evolution/structured-memory-authority-ledger-adapter.js +5 -1
  264. package/src/lib/evolution/structured-memory-promotion-receipt-writer.js +126 -0
  265. package/src/lib/evolution/wiki-informed-skill-proposer.js +127 -21
  266. package/src/lib/evolution/wiki-maintainer-ledger-adapter.js +760 -100
  267. package/src/lib/evolution/wiki-revision-protocol.js +120 -0
  268. package/src/lib/evolution/wiki-skill-proposal-ledger-adapter.js +307 -0
  269. package/src/lib/evolution/wiki-target-tombstone-revision.js +101 -0
  270. package/src/lib/evolution/wikiskill-benchmark-cli-host.js +178 -0
  271. package/src/lib/evolution/wikiskill-benchmark-execution-host.js +702 -0
  272. package/src/lib/evolution/wikiskill-benchmark-ledger-adapter.js +613 -0
  273. package/src/lib/evolution/wikiskill-benchmark.js +574 -0
  274. package/src/lib/goal-assess.js +17 -10
  275. package/src/lib/interactive-planner.js +9 -1
  276. package/src/lib/iteration-budget.js +16 -2
  277. package/src/lib/micro-compact.js +4 -1
  278. package/src/lib/model-failure-policy.js +21 -0
  279. package/src/lib/process-execution-broker/index.js +1 -0
  280. package/src/lib/process-execution-broker/windows-sandbox-helper.dll +0 -0
  281. package/src/lib/process-execution-broker/windows-sandbox-helper.exe +0 -0
  282. package/src/lib/process-execution-broker/windows-sandbox.cs +33 -15
  283. package/src/lib/read-file-page.js +191 -0
  284. package/src/lib/runnable-provider.js +2 -1
  285. package/src/lib/session-host-lease.js +11 -16
  286. package/src/lib/skill-retrieval-router.js +22 -1
  287. package/src/repl/agent-repl.js +127 -33
  288. package/src/runtime/agent-core.js +224 -80
  289. package/src/runtime/agent-runtime.js +43 -0
  290. package/src/runtime/coding-agent-contract-shared.cjs +7 -1
  291. package/src/runtime/fallback-model.js +143 -62
  292. package/src/runtime/headless-runner.js +54 -10
  293. package/src/runtime/headless-stream.js +53 -6
  294. package/src/runtime/runtime-factory.js +41 -2
  295. package/src/assets/web-panel/assets/Notes-CgU9DDo9.js +0 -7
  296. package/src/assets/web-panel/assets/OrderTableRenderer-CwHc15Zs.js +0 -1
  297. package/src/assets/web-panel/assets/Projects-FF_thRi6.js +0 -1
  298. package/src/assets/web-panel/assets/SpeechSettings-l7ox6KuX.js +0 -1
  299. package/src/assets/web-panel/assets/devWarning-DyhgpXPf.js +0 -1
  300. package/src/assets/web-panel/assets/index-Ck1jhFE0.js +0 -1
  301. package/src/assets/web-panel/assets/index-c8jJEHVs.js +0 -1
@@ -5,8 +5,10 @@ import { verifyGovernedKnowledgeMergePlan } from "./governed-knowledge-conflict-
5
5
 
6
6
  export const GOVERNED_KNOWLEDGE_MERGE_PUBLISH_REQUEST_SCHEMA =
7
7
  "chainlesschain.governed-knowledge-merge-publish-request/v1";
8
- export const GOVERNED_KNOWLEDGE_MERGE_PUBLISH_RESULT_SCHEMA =
8
+ export const GOVERNED_KNOWLEDGE_MERGE_PUBLISH_RESULT_LEGACY_SCHEMA =
9
9
  "chainlesschain.governed-knowledge-merge-publish-result/v1";
10
+ export const GOVERNED_KNOWLEDGE_MERGE_PUBLISH_RESULT_SCHEMA =
11
+ "chainlesschain.governed-knowledge-merge-publish-result/v2";
10
12
 
11
13
  const AUTHORITIES = new WeakSet();
12
14
  const DIGEST = /^sha256:[a-f0-9]{64}$/u;
@@ -20,6 +22,11 @@ const DESCRIPTOR_KEYS = new Set([
20
22
  ]);
21
23
  const RESULT_KEYS = new Set([
22
24
  "attestation",
25
+ "artifactCandidateDigest",
26
+ "artifactDigest",
27
+ "artifactReleaseId",
28
+ "artifactTransitionOperationId",
29
+ "artifactTransitionReceiptDigest",
23
30
  "deviceId",
24
31
  "durable",
25
32
  "envelopeDigest",
@@ -166,6 +173,12 @@ function validateResult(input, request, providerDescriptor, now) {
166
173
  providerDescriptor.handlerArtifactDigest ||
167
174
  result.durable !== true ||
168
175
  result.idempotent !== true ||
176
+ !DIGEST.test(result.artifactCandidateDigest ?? "") ||
177
+ !DIGEST.test(result.artifactDigest ?? "") ||
178
+ !ID.test(result.artifactReleaseId ?? "") ||
179
+ !ID.test(result.artifactTransitionOperationId ?? "") ||
180
+ !result.artifactTransitionOperationId.startsWith("artifact-transition:") ||
181
+ !DIGEST.test(result.artifactTransitionReceiptDigest ?? "") ||
169
182
  !DIGEST.test(result.envelopeDigest ?? "") ||
170
183
  !DIGEST.test(result.resultDigest ?? "") ||
171
184
  result.resultDigest !==
@@ -194,7 +207,15 @@ export function digestGovernedKnowledgeMergePublishResult(value) {
194
207
  delete core.resultDigest;
195
208
  delete core.attestation;
196
209
  delete core.verificationReceiptDigest;
197
- return hash(GOVERNED_KNOWLEDGE_MERGE_PUBLISH_RESULT_SCHEMA, core);
210
+ if (
211
+ ![
212
+ GOVERNED_KNOWLEDGE_MERGE_PUBLISH_RESULT_SCHEMA,
213
+ GOVERNED_KNOWLEDGE_MERGE_PUBLISH_RESULT_LEGACY_SCHEMA,
214
+ ].includes(value.schema)
215
+ ) {
216
+ throw new TypeError("merge publish result schema is invalid");
217
+ }
218
+ return hash(value.schema, core);
198
219
  }
199
220
 
200
221
  export function createGovernedKnowledgeMergePublisherAuthority({
@@ -236,7 +257,7 @@ export function createGovernedKnowledgeMergePublisherAuthority({
236
257
  throw new TypeError("merge publisher authority clock is invalid");
237
258
  }
238
259
  const result = validateResult(
239
- await publish(request),
260
+ await publish(request, plan),
240
261
  request,
241
262
  providerDescriptor,
242
263
  currentTime,
@@ -257,6 +278,13 @@ export function createGovernedKnowledgeMergePublisherAuthority({
257
278
  verified.planDigest !== plan.planDigest ||
258
279
  verified.resultDigest !== result.resultDigest ||
259
280
  verified.envelopeDigest !== result.envelopeDigest ||
281
+ verified.artifactCandidateDigest !== result.artifactCandidateDigest ||
282
+ verified.artifactDigest !== result.artifactDigest ||
283
+ verified.artifactReleaseId !== result.artifactReleaseId ||
284
+ verified.artifactTransitionOperationId !==
285
+ result.artifactTransitionOperationId ||
286
+ verified.artifactTransitionReceiptDigest !==
287
+ result.artifactTransitionReceiptDigest ||
260
288
  verified.providerAuthorityId !== providerDescriptor.authorityId ||
261
289
  verified.providerRevision !== providerDescriptor.revision ||
262
290
  verified.verifierAuthorityId !== verifierDescriptor.authorityId ||
@@ -0,0 +1,148 @@
1
+ import { types as utilTypes } from "node:util";
2
+
3
+ // Pure wire-record validation shared by synchronization and mandatory Ledger
4
+ // admission. This module cannot mint execution brands or access persistence.
5
+ export const GOVERNED_KNOWLEDGE_SYNC_SCHEMA =
6
+ "chainlesschain.governed-evolution-knowledge-sync/v1";
7
+ export const GOVERNED_KNOWLEDGE_SCOPE = Object.freeze({
8
+ PERSONAL: "personal",
9
+ PROJECT: "project",
10
+ TEAM: "team",
11
+ ORG: "org",
12
+ });
13
+
14
+ const DIGEST = /^sha256:[a-f0-9]{64}$/u;
15
+ const ID = /^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u;
16
+ const SCOPES = new Set(Object.values(GOVERNED_KNOWLEDGE_SCOPE));
17
+ const ACTIONS = new Set(["upsert", "tombstone", "revoke"]);
18
+ // A durable receipt for a different kind of effect is not a revocation.
19
+ // In particular, tombstoning metadata must never count as stopping an active Skill.
20
+ const REVOCATION_DISPOSITIONS = new Map([
21
+ ["wiki", new Set(["tombstone", "quarantine"])],
22
+ ["candidate", new Set(["reject-candidate", "quarantine"])],
23
+ ["active-skill", new Set(["rollback-active", "quarantine"])],
24
+ ]);
25
+ function freeze(value) {
26
+ if (value && typeof value === "object" && !Object.isFrozen(value)) {
27
+ Object.freeze(value);
28
+ for (const child of Object.values(value)) freeze(child);
29
+ }
30
+ return value;
31
+ }
32
+
33
+ function record(value, label) {
34
+ if (
35
+ !value ||
36
+ typeof value !== "object" ||
37
+ Array.isArray(value) ||
38
+ utilTypes.isProxy(value) ||
39
+ ![Object.prototype, null].includes(Object.getPrototypeOf(value))
40
+ )
41
+ throw new TypeError(`${label} must be a plain object`);
42
+ for (const key of Reflect.ownKeys(value)) {
43
+ const property = Object.getOwnPropertyDescriptor(value, key);
44
+ if (typeof key !== "string" || !Object.hasOwn(property, "value"))
45
+ throw new TypeError(`${label} must contain only data properties`);
46
+ }
47
+ return value;
48
+ }
49
+
50
+ function id(value, label) {
51
+ if (typeof value !== "string" || !ID.test(value))
52
+ throw new TypeError(`${label} is invalid`);
53
+ return value;
54
+ }
55
+
56
+ function digest(value, label) {
57
+ if (typeof value !== "string" || !DIGEST.test(value))
58
+ throw new TypeError(`${label} must be sha256-bound`);
59
+ return value;
60
+ }
61
+
62
+ function vectorClock(value) {
63
+ record(value, "vectorClock");
64
+ const entries = Object.entries(value);
65
+ if (entries.length < 1 || entries.length > 64)
66
+ throw new TypeError("vectorClock is empty or unbounded");
67
+ const result = {};
68
+ for (const [deviceId, revision] of entries.sort(([a], [b]) =>
69
+ a.localeCompare(b),
70
+ )) {
71
+ id(deviceId, "vectorClock device");
72
+ if (!Number.isSafeInteger(revision) || revision < 0)
73
+ throw new TypeError("vectorClock revision is invalid");
74
+ result[deviceId] = revision;
75
+ }
76
+ return result;
77
+ }
78
+
79
+ function normalizeDependencies(value, action) {
80
+ if (!Array.isArray(value) || utilTypes.isProxy(value) || value.length > 256)
81
+ throw new TypeError("dependency dispositions are unbounded");
82
+ const seen = new Set();
83
+ const result = [];
84
+ for (let index = 0; index < value.length; index += 1) {
85
+ const property = Object.getOwnPropertyDescriptor(value, String(index));
86
+ if (!property || !Object.hasOwn(property, "value"))
87
+ throw new TypeError("dependency dispositions must be dense data");
88
+ const entry = property.value;
89
+ record(entry, "dependency disposition");
90
+ const normalized = {
91
+ kind: id(entry.kind, "dependency kind"),
92
+ digest: digest(entry.digest, "dependency digest"),
93
+ disposition: id(entry.disposition, "dependency disposition"),
94
+ };
95
+ const key = `${normalized.kind}:${normalized.digest}`;
96
+ if (seen.has(key)) throw new TypeError("duplicate dependency disposition");
97
+ seen.add(key);
98
+ if (
99
+ ["tombstone", "revoke"].includes(action) &&
100
+ !REVOCATION_DISPOSITIONS.get(normalized.kind)?.has(normalized.disposition)
101
+ )
102
+ throw new TypeError("revocation dependency disposition is unsafe");
103
+ result.push(normalized);
104
+ }
105
+ return result;
106
+ }
107
+
108
+ function normalizeRecord(input, descriptor) {
109
+ record(input, "knowledge record");
110
+ const action = ACTIONS.has(input.action) ? input.action : null;
111
+ const scope = SCOPES.has(input.scope) ? input.scope : null;
112
+ if (!action || !scope || input.tenantId !== descriptor.tenantId)
113
+ throw new TypeError("knowledge record boundary is invalid");
114
+ const dependencies = normalizeDependencies(input.dependencies || [], action);
115
+ if (
116
+ ["team", "org"].includes(scope) &&
117
+ !DIGEST.test(input.approvalReceiptDigest || "")
118
+ )
119
+ throw new TypeError("shared knowledge requires approval");
120
+ if (
121
+ ["tombstone", "revoke"].includes(action) &&
122
+ (!DIGEST.test(input.revocationReceiptDigest || "") ||
123
+ dependencies.length < 1)
124
+ )
125
+ throw new TypeError(
126
+ "revocation must bind its receipt and dependency graph",
127
+ );
128
+ const normalized = freeze({
129
+ schema: GOVERNED_KNOWLEDGE_SYNC_SCHEMA,
130
+ tenantId: descriptor.tenantId,
131
+ knowledgeId: id(input.knowledgeId, "knowledgeId"),
132
+ scope,
133
+ scopeId: id(input.scopeId, "scopeId"),
134
+ action,
135
+ contentDigest: digest(input.contentDigest, "contentDigest"),
136
+ vectorClock: vectorClock(input.vectorClock),
137
+ approvalReceiptDigest: input.approvalReceiptDigest || null,
138
+ revocationReceiptDigest: input.revocationReceiptDigest || null,
139
+ dependencies,
140
+ });
141
+ return normalized;
142
+ }
143
+
144
+ export function verifyGovernedKnowledgeRecord(input, { tenantId } = {}) {
145
+ return normalizeRecord(input, { tenantId: id(tenantId, "tenantId") });
146
+ }
147
+
148
+ export { vectorClock as normalizeGovernedKnowledgeVectorClock };
@@ -0,0 +1,135 @@
1
+ import { createHash } from "node:crypto";
2
+ import { types as utilTypes } from "node:util";
3
+ import { verifyGovernedKnowledgeRecord } from "./governed-knowledge-record.js";
4
+
5
+ // Immutable prepared-record protocol only; no executor, writer, or authority brand.
6
+ export const GOVERNED_KNOWLEDGE_DEPENDENCY_PREPARED_SCHEMA =
7
+ "chainlesschain.governed-knowledge-dependencies-prepared/v1";
8
+ export const GOVERNED_KNOWLEDGE_DEPENDENCY_PREPARED_EVENT_TYPE =
9
+ "knowledge.revocation-dependencies.prepared";
10
+ export const GOVERNED_KNOWLEDGE_DEPENDENCY_LEDGER_CORRUPT_CODE =
11
+ "CC_GOVERNED_KNOWLEDGE_DEPENDENCY_LEDGER_CORRUPT";
12
+
13
+ const ID = /^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u;
14
+ const PREPARED_KEYS = new Set([
15
+ "deviceId",
16
+ "knowledge",
17
+ "operationDigest",
18
+ "preparedAt",
19
+ "recordDigest",
20
+ "schema",
21
+ "tenantId",
22
+ ]);
23
+ function canonical(value) {
24
+ if (value === null || typeof value !== "object") return JSON.stringify(value);
25
+ if (Array.isArray(value)) return `[${value.map(canonical).join(",")}]`;
26
+ return `{${Object.keys(value)
27
+ .sort()
28
+ .map((key) => `${JSON.stringify(key)}:${canonical(value[key])}`)
29
+ .join(",")}}`;
30
+ }
31
+
32
+ function hash(domain, value) {
33
+ return `sha256:${createHash("sha256")
34
+ .update(domain)
35
+ .update("\0")
36
+ .update(canonical(value))
37
+ .digest("hex")}`;
38
+ }
39
+
40
+ function clone(value) {
41
+ return structuredClone(value);
42
+ }
43
+
44
+ function freeze(value) {
45
+ if (value && typeof value === "object" && !Object.isFrozen(value)) {
46
+ Object.freeze(value);
47
+ for (const child of Object.values(value)) freeze(child);
48
+ }
49
+ return value;
50
+ }
51
+
52
+ function corrupt(message) {
53
+ const error = new Error(message);
54
+ error.code = GOVERNED_KNOWLEDGE_DEPENDENCY_LEDGER_CORRUPT_CODE;
55
+ throw error;
56
+ }
57
+
58
+ function exact(value, keys, label) {
59
+ if (
60
+ !value ||
61
+ typeof value !== "object" ||
62
+ Array.isArray(value) ||
63
+ utilTypes.isProxy(value) ||
64
+ ![Object.prototype, null].includes(Object.getPrototypeOf(value))
65
+ ) {
66
+ corrupt(`${label} is not a plain object`);
67
+ }
68
+ const actual = Reflect.ownKeys(value);
69
+ if (
70
+ actual.length !== keys.size ||
71
+ actual.some((key) => typeof key !== "string" || !keys.has(key))
72
+ ) {
73
+ corrupt(`${label} has an invalid shape`);
74
+ }
75
+ return value;
76
+ }
77
+
78
+ function identifier(value, label) {
79
+ if (typeof value !== "string" || !ID.test(value)) {
80
+ throw new TypeError(`${label} is invalid`);
81
+ }
82
+ return value;
83
+ }
84
+
85
+ export function digestGovernedKnowledgeDependencyOperation({
86
+ tenantId,
87
+ deviceId,
88
+ knowledge,
89
+ }) {
90
+ return hash(GOVERNED_KNOWLEDGE_DEPENDENCY_PREPARED_SCHEMA, {
91
+ tenantId,
92
+ deviceId,
93
+ knowledge,
94
+ });
95
+ }
96
+
97
+ function preparedCore(value) {
98
+ return {
99
+ schema: value.schema,
100
+ tenantId: value.tenantId,
101
+ deviceId: value.deviceId,
102
+ operationDigest: value.operationDigest,
103
+ knowledge: value.knowledge,
104
+ preparedAt: value.preparedAt,
105
+ };
106
+ }
107
+
108
+ export function verifyGovernedKnowledgeDependencyPrepared(
109
+ value,
110
+ descriptorValue,
111
+ ) {
112
+ exact(value, PREPARED_KEYS, "dependency prepared record");
113
+ identifier(value.deviceId, "dependency prepared deviceId");
114
+ const knowledge = verifyGovernedKnowledgeRecord(value.knowledge, {
115
+ tenantId: descriptorValue.tenantId,
116
+ });
117
+ const operationDigest = digestGovernedKnowledgeDependencyOperation({
118
+ tenantId: descriptorValue.tenantId,
119
+ deviceId: descriptorValue.deviceId,
120
+ knowledge,
121
+ });
122
+ if (
123
+ value.schema !== GOVERNED_KNOWLEDGE_DEPENDENCY_PREPARED_SCHEMA ||
124
+ value.tenantId !== descriptorValue.tenantId ||
125
+ value.deviceId !== descriptorValue.deviceId ||
126
+ !["tombstone", "revoke"].includes(knowledge.action) ||
127
+ value.operationDigest !== operationDigest ||
128
+ !Number.isFinite(Date.parse(value.preparedAt)) ||
129
+ value.recordDigest !==
130
+ hash(GOVERNED_KNOWLEDGE_DEPENDENCY_PREPARED_SCHEMA, preparedCore(value))
131
+ ) {
132
+ corrupt("dependency prepared record is invalid");
133
+ }
134
+ return freeze(clone(value));
135
+ }