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
@@ -13,6 +13,10 @@ import {
13
13
  verifySkillPromotionReviewDecision,
14
14
  verifySkillPromotionReviewPacketArtifact,
15
15
  } from "./skill-promotion-review.js";
16
+ import {
17
+ SKILL_WIKI_REVIEW_DECISION_SCHEMA,
18
+ createSkillWikiReviewReconciliationSource,
19
+ } from "./skill-wiki-reconciliation.js";
16
20
 
17
21
  export const SKILL_PROMOTION_REVIEW_REQUEST_EVENT_TYPE =
18
22
  "skill.promotion-review.requested";
@@ -298,6 +302,9 @@ export class SkillPromotionReviewLedgerAdapter {
298
302
  ) {
299
303
  throw new Error("review decision signature verification failed");
300
304
  }
305
+ // The verifier may perform I/O. Do not commit an approval whose lease
306
+ // expired while that verification was in flight.
307
+ verifySkillPromotionReviewDecision(decision, packet, Number(this._now()));
301
308
  const decisionsForPacket = this._decisionEntries().filter(
302
309
  ({ decision: stored }) => stored.packetDigest === packet.packetDigest,
303
310
  );
@@ -400,6 +407,67 @@ export class SkillPromotionReviewLedgerAdapter {
400
407
  return Object.freeze(output);
401
408
  }
402
409
 
410
+ // Historical evidence is not a fresh approval. Workbench recovery may use
411
+ // this only to reconcile an effect already committed to this exact Ledger.
412
+ async readReview(packetDigest) {
413
+ if (!DIGEST.test(packetDigest ?? ""))
414
+ throw new TypeError("packetDigest is required");
415
+ const head = this._verifyLedger();
416
+ const { packet, event: packetEvent } = this._packetByDigest(packetDigest);
417
+ const matches = this._decisionEntries().filter(
418
+ ({ decision }) => decision.packetDigest === packetDigest,
419
+ );
420
+ if (matches.length > 1) corrupt("review packet has conflicting decisions");
421
+ const entry = matches[0] ?? null;
422
+ for (const event of [packetEvent, entry?.event].filter(Boolean)) {
423
+ if (
424
+ event.artifactTenantId !== this.descriptor.artifactTenantId ||
425
+ event.skillName !== packet.skillName ||
426
+ packet.tenantId !== this.descriptor.tenantId
427
+ )
428
+ corrupt("review evidence crossed its durable scope");
429
+ }
430
+ if (
431
+ packetEvent.decision !== "proposed" ||
432
+ packetEvent.sourceRefs.length !== 0
433
+ )
434
+ corrupt("review packet lineage is invalid");
435
+ if (entry) {
436
+ verifySkillPromotionReviewDecision(
437
+ entry.decision,
438
+ packet,
439
+ Date.parse(entry.decision.decidedAt),
440
+ );
441
+ if (
442
+ entry.event.sequence <= packetEvent.sequence ||
443
+ entry.event.timestamp !== entry.decision.decidedAt ||
444
+ entry.event.reason !== entry.decision.reason ||
445
+ entry.event.decision !==
446
+ (entry.decision.decision === "approved" ? "accepted" : "rejected")
447
+ )
448
+ corrupt("review decision event binding is invalid");
449
+ if (
450
+ (await this._verifyDecisionSignature({
451
+ decision: entry.decision,
452
+ packet,
453
+ source: "workbench-recovery",
454
+ ledgerEventDigest: entry.event.eventDigest,
455
+ })) !== true
456
+ )
457
+ throw new Error("review decision signature verification failed");
458
+ }
459
+ if (this._verifyLedger().headDigest !== head.headDigest)
460
+ corrupt("review Ledger changed during evidence authentication");
461
+ return Object.freeze({
462
+ packet,
463
+ packetRef: packetEvent.subjectRef,
464
+ packetSequence: packetEvent.sequence,
465
+ decision: entry?.decision ?? null,
466
+ decisionRef: entry?.event.subjectRef ?? null,
467
+ decisionSequence: entry?.event.sequence ?? null,
468
+ });
469
+ }
470
+
403
471
  createDecisionResolver() {
404
472
  return Object.freeze({
405
473
  resolve: async (request) => {
@@ -444,6 +512,38 @@ export class SkillPromotionReviewLedgerAdapter {
444
512
  },
445
513
  });
446
514
  }
515
+
516
+ createWikiRejectionReconciliationSource() {
517
+ return createSkillWikiReviewReconciliationSource({
518
+ tenantId: this.descriptor.tenantId,
519
+ streamId: `${this.descriptor.streamId}:wiki-rejections`,
520
+ readReviewDecisions: async () => {
521
+ await this.listReviews();
522
+ return this._decisionEntries()
523
+ .filter(({ decision }) => decision.decision === "rejected")
524
+ .map(({ decision, event }) => {
525
+ const { packet } = this._packetByDigest(decision.packetDigest);
526
+ return {
527
+ schema: SKILL_WIKI_REVIEW_DECISION_SCHEMA,
528
+ authenticated: true,
529
+ durable: true,
530
+ tenantId: this.descriptor.tenantId,
531
+ streamId: `${this.descriptor.streamId}:wiki-rejections`,
532
+ sequence: event.sequence,
533
+ candidateId: packet.candidateId,
534
+ skillName: packet.skillName,
535
+ decision: decision.decision,
536
+ reason: decision.reason,
537
+ occurredAt: decision.decidedAt,
538
+ packetDigest: decision.packetDigest,
539
+ decisionReceiptDigest: decision.receiptDigest,
540
+ sourceEvidenceRefs: packet.evidenceSummary,
541
+ sourceReceiptDigest: event.eventDigest,
542
+ };
543
+ });
544
+ },
545
+ });
546
+ }
447
547
  }
448
548
 
449
549
  export function createSkillPromotionReviewLedgerAdapter(options) {
@@ -8,7 +8,10 @@ import {
8
8
  import {
9
9
  EVOLUTION_ARTIFACT_RESOLUTION_SCHEMA,
10
10
  EVOLUTION_LEDGER_DOMAIN_EVENT_SCHEMA,
11
+ EVOLUTION_LEDGER_MAX_EVENTS,
12
+ EvolutionLedger,
11
13
  } from "./evolution-ledger.js";
14
+ import { captureSkillReleaseRegistryReader } from "./skill-release-registry.js";
12
15
  import {
13
16
  EMPTY_SKILL_ACTIVE_DIGEST,
14
17
  captureSkillEvaluatedPromotionControlPlane,
@@ -22,6 +25,10 @@ import {
22
25
  digestSkillMutationTransitionSubject,
23
26
  verifySkillMutationRequest,
24
27
  } from "./skill-mutation-authority.js";
28
+ import {
29
+ SKILL_WIKI_TRANSITION_SCHEMA,
30
+ createSkillWikiReconciliationSource,
31
+ } from "./skill-wiki-reconciliation.js";
25
32
 
26
33
  export const SKILL_REGISTRY_TRANSITION_REQUEST_SCHEMA =
27
34
  "chainlesschain.skill-registry-transition-request/v1";
@@ -125,6 +132,85 @@ const SETTLEMENT_KEYS = new Set([
125
132
  "settlementDigest",
126
133
  ]);
127
134
  const AUTHORIZATION_TTL_MS = 4 * 60_000;
135
+ const sortedRefs = (refs) =>
136
+ [...refs].sort((left, right) =>
137
+ left.ref < right.ref
138
+ ? -1
139
+ : left.ref > right.ref
140
+ ? 1
141
+ : left.digest < right.digest
142
+ ? -1
143
+ : left.digest > right.digest
144
+ ? 1
145
+ : 0,
146
+ );
147
+
148
+ // Read-only assembly over the same canonical parsing/effect checks as the
149
+ // transition writer. No source verifier, mutation authority or writer is
150
+ // invented merely to inspect existing workflow records.
151
+ export function createSkillRegistryTransitionLedgerReader({
152
+ descriptor,
153
+ ledger,
154
+ ledgerArtifactResolver,
155
+ releaseRegistry,
156
+ } = {}) {
157
+ if (
158
+ !(ledger instanceof EvolutionLedger) ||
159
+ utilTypes.isProxy(ledger) ||
160
+ !isEvolutionLedgerArtifactResolver(ledgerArtifactResolver)
161
+ )
162
+ throw new TypeError(
163
+ "transition reader requires actual Ledger and artifact resolver",
164
+ );
165
+ const registry = captureSkillReleaseRegistryReader(releaseRegistry);
166
+ const scope = normalizeDescriptor(descriptor);
167
+ if (registry.tenantId !== scope.tenantId)
168
+ throw new TypeError("transition reader Registry tenant differs");
169
+ const view = {
170
+ descriptor: scope,
171
+ _readLedger: () =>
172
+ EvolutionLedger.prototype.read.call(ledger, {
173
+ limit: EVOLUTION_LEDGER_MAX_EVENTS,
174
+ }),
175
+ _verifyLedger: EvolutionLedger.prototype.verify.bind(ledger),
176
+ _resolveArtifact: ledgerArtifactResolver,
177
+ _readState: registry.readState,
178
+ _readRelease: registry.readRelease,
179
+ };
180
+ for (const name of [
181
+ "_events",
182
+ "_resolveEvent",
183
+ "_requests",
184
+ "_attempts",
185
+ "_settlements",
186
+ "_verifyCommittedSettlement",
187
+ "list",
188
+ ])
189
+ view[name] =
190
+ SkillRegistryTransitionLedgerAdapter.prototype[name].bind(view);
191
+ Object.freeze(view);
192
+ return Object.freeze({
193
+ list() {
194
+ const before = view._verifyLedger();
195
+ const rows = view.list();
196
+ const settlements = rows.some((row) => row.status === "committed")
197
+ ? view._settlements()
198
+ : [];
199
+ const values = rows.map((row) => ({
200
+ ...row,
201
+ settlementEventSequence:
202
+ settlements.find(
203
+ (entry) => entry.settlement.requestId === row.request.requestId,
204
+ )?.event.sequence ?? null,
205
+ }));
206
+ if (values.length > 10_000 || !same(before, view._verifyLedger()))
207
+ throw new Error(
208
+ "transition history is over budget or changed during authentication",
209
+ );
210
+ return deepFreeze(values);
211
+ },
212
+ });
213
+ }
128
214
 
129
215
  function canonical(value) {
130
216
  if (value === null || typeof value !== "object") return JSON.stringify(value);
@@ -703,8 +789,13 @@ export class SkillRegistryTransitionLedgerAdapter {
703
789
  event.skillName !== settlement.skillName ||
704
790
  !Array.isArray(event.sourceRefs) ||
705
791
  event.sourceRefs.length !== 2 ||
706
- !same(event.sourceRefs[0], attempt.request.event.subjectRef) ||
707
- !same(event.sourceRefs[1], attempt.event.subjectRef)
792
+ !same(
793
+ event.sourceRefs,
794
+ sortedRefs([
795
+ attempt.request.event.subjectRef,
796
+ attempt.event.subjectRef,
797
+ ]),
798
+ )
708
799
  ) {
709
800
  fail(
710
801
  SKILL_REGISTRY_TRANSITION_CORRUPT_CODE,
@@ -1174,6 +1265,44 @@ export class SkillRegistryTransitionLedgerAdapter {
1174
1265
  );
1175
1266
  }
1176
1267
 
1268
+ createWikiReconciliationSource() {
1269
+ return createSkillWikiReconciliationSource({
1270
+ tenantId: this.descriptor.tenantId,
1271
+ streamId: this.descriptor.streamId,
1272
+ readTransitions: () =>
1273
+ this._settlements().map(({ event, settlement }) => {
1274
+ const candidate = this._readCandidate(settlement.candidateId);
1275
+ if (
1276
+ candidate?.tenantId !== this.descriptor.tenantId ||
1277
+ candidate.candidateId !== settlement.candidateId ||
1278
+ candidate.skillName !== settlement.skillName
1279
+ ) {
1280
+ fail(
1281
+ SKILL_REGISTRY_TRANSITION_CORRUPT_CODE,
1282
+ "transition candidate lineage is invalid for Wiki reconciliation",
1283
+ );
1284
+ }
1285
+ return {
1286
+ schema: SKILL_WIKI_TRANSITION_SCHEMA,
1287
+ authenticated: true,
1288
+ durable: true,
1289
+ tenantId: this.descriptor.tenantId,
1290
+ streamId: this.descriptor.streamId,
1291
+ sequence: event.sequence,
1292
+ candidateId: settlement.candidateId,
1293
+ skillName: settlement.skillName,
1294
+ activeReleaseDigest: settlement.activeReleaseDigest,
1295
+ stateDigest: settlement.stateDigest,
1296
+ settlementDigest: settlement.settlementDigest,
1297
+ occurredAt: settlement.settledAt,
1298
+ wikiRevision: candidate.wikiRevision,
1299
+ sourceEvidenceRefs: candidate.sourceEvidenceRefs,
1300
+ sourceReceiptDigest: event.eventDigest,
1301
+ };
1302
+ }),
1303
+ });
1304
+ }
1305
+
1177
1306
  async processNext() {
1178
1307
  const pending = this.list().find((entry) => entry.status === "pending");
1179
1308
  if (!pending) return deepFreeze({ processed: false });
@@ -60,6 +60,17 @@ export const SKILL_RELEASE_JOURNAL_ARCHIVE_SCHEMA =
60
60
  "chainlesschain.skill-release-journal-archive/v1";
61
61
 
62
62
  const JOURNAL_SCHEMA = "chainlesschain.skill-release-journal/v4";
63
+ const REGISTRY_READERS = new WeakMap();
64
+
65
+ export function captureSkillReleaseRegistryReader(value) {
66
+ const reader = REGISTRY_READERS.get(value);
67
+ if (
68
+ !reader ||
69
+ Object.getPrototypeOf(value) !== SkillReleaseRegistry.prototype
70
+ )
71
+ throw new TypeError("a genuine SkillReleaseRegistry reader is required");
72
+ return reader;
73
+ }
63
74
  const INTENT_SCHEMA = "chainlesschain.skill-release-transition-intent/v2";
64
75
  const RELEASE_DOMAIN = `${SKILL_RELEASE_SCHEMA}\0`;
65
76
  const STATE_DOMAIN = `${SKILL_RELEASE_STATE_SCHEMA}\0`;
@@ -2765,6 +2776,16 @@ export class SkillReleaseRegistry {
2765
2776
  { cause },
2766
2777
  );
2767
2778
  }
2779
+ REGISTRY_READERS.set(
2780
+ this,
2781
+ Object.freeze({
2782
+ tenantId: ownerTenantId,
2783
+ readActive: SkillReleaseRegistry.prototype.readActive.bind(this),
2784
+ readState: SkillReleaseRegistry.prototype.readState.bind(this),
2785
+ readRelease: SkillReleaseRegistry.prototype.readRelease.bind(this),
2786
+ matchesTransactionLedger: (value) => value === transactionLedger,
2787
+ }),
2788
+ );
2768
2789
  Object.freeze(this);
2769
2790
  }
2770
2791
 
@@ -3677,7 +3698,7 @@ export class SkillReleaseRegistry {
3677
3698
  });
3678
3699
  let projection;
3679
3700
  try {
3680
- projection = this.#ledgerMigrate(request);
3701
+ projection = this.#ledgerMigrate(request, { active, lastKnownGood });
3681
3702
  } catch (cause) {
3682
3703
  throw failure(
3683
3704
  "SKILL_RELEASE_STATE_MIGRATION_LEDGER_FAILED",
@@ -4606,10 +4627,10 @@ export class SkillReleaseRegistry {
4606
4627
  );
4607
4628
  }
4608
4629
 
4609
- #prepare(intent) {
4630
+ #prepare(intent, targetRelease) {
4610
4631
  let projection;
4611
4632
  try {
4612
- projection = this.#ledgerPrepare(intent);
4633
+ projection = this.#ledgerPrepare(intent, targetRelease);
4613
4634
  } catch (cause) {
4614
4635
  throw failure(
4615
4636
  "SKILL_RELEASE_LEDGER_PREPARE_FAILED",
@@ -5374,7 +5395,7 @@ export class SkillReleaseRegistry {
5374
5395
  await this.#crash("after-journal", journal);
5375
5396
 
5376
5397
  this.#renewLease(lease);
5377
- prepareReceipt = this.#prepare(intent);
5398
+ prepareReceipt = this.#prepare(intent, target);
5378
5399
  journal = this.#persistJournal({
5379
5400
  ...journal,
5380
5401
  phase: "prepared",