chainlesschain 0.166.22 → 0.166.25

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 (298) hide show
  1. package/README.md +46 -3
  2. package/package.json +4 -3
  3. package/src/assets/web-panel/assets/{AIOps-oJ7USzMC.js → AIOps-RaxL_QQD.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-BlgnZe_C.js → ActionButton-DD3ieFO-.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-D2rRbTLu.js → Analytics-CATDJukS.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-FwS3f0B2.js → AppLayout-BHGsnRDS.js} +5 -5
  7. package/src/assets/web-panel/assets/{Artifacts-iF-_08Hi.js → Artifacts-BL6NunjN.js} +1 -1
  8. package/src/assets/web-panel/assets/{Audit-D24p0zQw.js → Audit-D0nEWfbA.js} +1 -1
  9. package/src/assets/web-panel/assets/{BackgroundAgents-Cg3mRVi9.js → BackgroundAgents-BAP1MUol.js} +1 -1
  10. package/src/assets/web-panel/assets/{Backup-EOqht3H-.js → Backup-R4y2OeSi.js} +1 -1
  11. package/src/assets/web-panel/assets/{BaseInput-9XWYq2hj.js → BaseInput-ByQZ2z6S.js} +1 -1
  12. package/src/assets/web-panel/assets/{Chat-Dq5yardA.js → Chat-32uV--xF.js} +4 -4
  13. package/src/assets/web-panel/assets/ChatBubbleRenderer-t1enanwz.js +1 -0
  14. package/src/assets/web-panel/assets/{Checkbox-CuyCBoBf.js → Checkbox-D1CB-7bq.js} +1 -1
  15. package/src/assets/web-panel/assets/{Codegen-DjWtYHNe.js → Codegen-BPx3dQ2q.js} +1 -1
  16. package/src/assets/web-panel/assets/{Col-CrVr_iuG.js → Col-DkPTQ2Gl.js} +1 -1
  17. package/src/assets/web-panel/assets/{Community-C6QxpfGc.js → Community-ZriaxRlr.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compact-B-v5r6Pa.js → Compact-C_qJ0P7F.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compliance-zNiLiFgD.js → Compliance-Bgoy-saS.js} +1 -1
  20. package/src/assets/web-panel/assets/{Cowork-D9K7lMOu.js → Cowork-B5i9y6XK.js} +2 -2
  21. package/src/assets/web-panel/assets/{Cron-DAjO36z4.js → Cron-D7vBJ5-J.js} +2 -2
  22. package/src/assets/web-panel/assets/{Crosschain-Bxqn0aqB.js → Crosschain-D4kvoGI_.js} +1 -1
  23. package/src/assets/web-panel/assets/{DID-DfRmLUe-.js → DID-BLOeBd-r.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dashboard-Cz8KF3fr.js → Dashboard-mecJaonC.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dropdown-C4oVfkP0.js → Dropdown-GPKwaFer.js} +1 -1
  26. package/src/assets/web-panel/assets/{EmailListRenderer-ivyZKN8k.js → EmailListRenderer-BML9m7Dd.js} +1 -1
  27. package/src/assets/web-panel/assets/{FamilyGuardDashboard-DoxY1CPW.js → FamilyGuardDashboard-DN5bAtJC.js} +1 -1
  28. package/src/assets/web-panel/assets/{Federation-C93gZxnb.js → Federation-DmD6Gecd.js} +1 -1
  29. package/src/assets/web-panel/assets/{FormItemContext-D_lEjYJE.js → FormItemContext-6wwplN_K.js} +1 -1
  30. package/src/assets/web-panel/assets/{GenericCardRenderer-BNFN9YjN.js → GenericCardRenderer-DUhpLkDL.js} +1 -1
  31. package/src/assets/web-panel/assets/{Git-mUu2HcLI.js → Git-eJfyXkwf.js} +2 -2
  32. package/src/assets/web-panel/assets/{Governance-CNuosrge.js → Governance-swAUW59x.js} +1 -1
  33. package/src/assets/web-panel/assets/{Inference-DwY5pbCB.js → Inference-CbdwJPDJ.js} +1 -1
  34. package/src/assets/web-panel/assets/{KnowledgeGraph-aRUxhACD.js → KnowledgeGraph-UuYpg1nm.js} +1 -1
  35. package/src/assets/web-panel/assets/{Logs-DFfsWYy_.js → Logs-CS0G057y.js} +2 -2
  36. package/src/assets/web-panel/assets/MarkdownRenderer-BxIIB4k3.js +1 -0
  37. package/src/assets/web-panel/assets/{Marketplace-COI-ciM-.js → Marketplace-CZRjuvvI.js} +1 -1
  38. package/src/assets/web-panel/assets/{McpTools-BJJwaIpe.js → McpTools-BOJ9A_Rf.js} +3 -3
  39. package/src/assets/web-panel/assets/{Memory-CDO6SGDZ.js → Memory-BnkrR-Ok.js} +2 -2
  40. package/src/assets/web-panel/assets/{MobileBridge-BlZ5tFf4.js → MobileBridge-Do4mPi13.js} +1 -1
  41. package/src/assets/web-panel/assets/{MobileProjects-DuoxbgWz.js → MobileProjects-2JxWa6-p.js} +1 -1
  42. package/src/assets/web-panel/assets/{Mtc-6ec9j70b.js → Mtc-CS_mnpGd.js} +2 -2
  43. package/src/assets/web-panel/assets/{MtcAudit-BuL7HkC7.js → MtcAudit-DZ4J_351.js} +5 -5
  44. package/src/assets/web-panel/assets/{Multisig-CJxR85lk.js → Multisig-Jh74zKXu.js} +3 -3
  45. package/src/assets/web-panel/assets/{NLProgramming-B71O1S4l.js → NLProgramming-_4n2BfnS.js} +1 -1
  46. package/src/assets/web-panel/assets/{Notes-Bsw5zbpV.js → Notes-CtENcKHv.js} +3 -3
  47. package/src/assets/web-panel/assets/{NotificationSettings-BnAhXuK_.js → NotificationSettings-dgDCvpK9.js} +1 -1
  48. package/src/assets/web-panel/assets/{OrderTableRenderer-BJ0R5GGz.js → OrderTableRenderer-D5VxCrmG.js} +1 -1
  49. package/src/assets/web-panel/assets/{Organization-B7wwNxoP.js → Organization-CpIF8Xkd.js} +2 -2
  50. package/src/assets/web-panel/assets/{Overflow-CfAGr0gM.js → Overflow-aHnBZaez.js} +1 -1
  51. package/src/assets/web-panel/assets/{P2P-KhMg22Fz.js → P2P-8ppzog2V.js} +2 -2
  52. package/src/assets/web-panel/assets/{PdhVaultBrowser-NdAXI9ft.js → PdhVaultBrowser-D3p1BXkp.js} +3 -3
  53. package/src/assets/web-panel/assets/{Permissions-CIYjqyT7.js → Permissions-D7vflD5q.js} +4 -4
  54. package/src/assets/web-panel/assets/{PersonalDataHub-D2ht3P_R.js → PersonalDataHub-D2hY-Ek2.js} +4 -4
  55. package/src/assets/web-panel/assets/{Pipeline-i6flZW1m.js → Pipeline-qK2VqhJC.js} +1 -1
  56. package/src/assets/web-panel/assets/{Privacy-DE0lhYVc.js → Privacy-DHJr4uu0.js} +1 -1
  57. package/src/assets/web-panel/assets/{ProjectInit-BL3YbyxS.js → ProjectInit-DMBS6trm.js} +2 -2
  58. package/src/assets/web-panel/assets/{ProjectSettings-CEtdg7ni.js → ProjectSettings-D3Ng74BT.js} +2 -2
  59. package/src/assets/web-panel/assets/{Projects-CvtU5peJ.js → Projects-BfJFZiIW.js} +1 -1
  60. package/src/assets/web-panel/assets/{Providers-DKt_Cg-j.js → Providers-DlNA95G0.js} +1 -1
  61. package/src/assets/web-panel/assets/{QrScannerModal-DA61jNSx.js → QrScannerModal-CMOIYxIm.js} +1 -1
  62. package/src/assets/web-panel/assets/{QuickAsk-fS9ryUmq.js → QuickAsk-D6MyGp5I.js} +1 -1
  63. package/src/assets/web-panel/assets/{Recommend-CR9dZU5Y.js → Recommend-W6WcShtf.js} +1 -1
  64. package/src/assets/web-panel/assets/{RemoteSession-BV0BR2Dz.js → RemoteSession-Dm_MjlV_.js} +2 -2
  65. package/src/assets/web-panel/assets/{Reputation-BIeGUvYD.js → Reputation-Ctvij6eX.js} +1 -1
  66. package/src/assets/web-panel/assets/{Row-DHDT1aro.js → Row-DivbeDE-.js} +1 -1
  67. package/src/assets/web-panel/assets/{RssFeed-Cq6YKb1h.js → RssFeed-D4famoAw.js} +3 -3
  68. package/src/assets/web-panel/assets/{Search-DEF6vsy6.js → Search-6gOAh3zG.js} +1 -1
  69. package/src/assets/web-panel/assets/{Security-CHtYiKY9.js → Security-DApb9kK8.js} +4 -4
  70. package/src/assets/web-panel/assets/{Services-u16lvBJN.js → Services-B8OomyE2.js} +2 -2
  71. package/src/assets/web-panel/assets/{Skeleton-CGbizyDj.js → Skeleton-BTJ2g2E3.js} +1 -1
  72. package/src/assets/web-panel/assets/{Skills-BZMQcAa7.js → Skills-NIRr4DD1.js} +1 -1
  73. package/src/assets/web-panel/assets/{Sla-Bm-CycVi.js → Sla-BQHP_6px.js} +1 -1
  74. package/src/assets/web-panel/assets/{SpeechSettings-BudpA5kr.js → SpeechSettings-BVQTDSVS.js} +1 -1
  75. package/src/assets/web-panel/assets/{SyncSettings-B8q1C1eC.js → SyncSettings-BOD4Mar6.js} +2 -2
  76. package/src/assets/web-panel/assets/{Tasks-SU1pBWc-.js → Tasks-Ciu7H2-y.js} +1 -1
  77. package/src/assets/web-panel/assets/{Templates-CyOfJzmt.js → Templates-CtlwavRU.js} +1 -1
  78. package/src/assets/web-panel/assets/{Tenant-xqWSm2GP.js → Tenant-QLWYJdL6.js} +1 -1
  79. package/src/assets/web-panel/assets/{Terminal-D1Ttgjsi.js → Terminal-B3q10mjm.js} +2 -2
  80. package/src/assets/web-panel/assets/{TimelineRenderer-Da2lYs5D.js → TimelineRenderer-CqltBA_8.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tokens-B34-SduO.js → Tokens-CJOKrj4y.js} +1 -1
  82. package/src/assets/web-panel/assets/{Trigger-C8zyYm4R.js → Trigger-CPMGgfdM.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trust-D1Pvqems.js → Trust-DiJms7Bl.js} +1 -1
  84. package/src/assets/web-panel/assets/{UkeySign-Do3VVnAy.js → UkeySign-rakR8eel.js} +1 -1
  85. package/src/assets/web-panel/assets/{VideoEditing-Dz7egVIA.js → VideoEditing-DAWZUM5o.js} +1 -1
  86. package/src/assets/web-panel/assets/{Wallet-Dcuw-OxR.js → Wallet-DqUPnl7K.js} +3 -3
  87. package/src/assets/web-panel/assets/{WebAuthn-DPlw-QsB.js → WebAuthn-BnVUwvMm.js} +3 -3
  88. package/src/assets/web-panel/assets/{WorkflowEditor-h4OsnU5q.js → WorkflowEditor-B1CAwxgs.js} +1 -1
  89. package/src/assets/web-panel/assets/{chat-eO9wEwrW.js → chat-k2-0Jzfy.js} +1 -1
  90. package/src/assets/web-panel/assets/{colors-34lSmOXw.js → colors-BAu8xBmW.js} +1 -1
  91. package/src/assets/web-panel/assets/{compact-item-CK4kEWJ4.js → compact-item-DMlqcdfI.js} +1 -1
  92. package/src/assets/web-panel/assets/{createContext-E0A57xed.js → createContext-BU9kfiSw.js} +1 -1
  93. package/src/assets/web-panel/assets/devWarning-DuGrUMAS.js +1 -0
  94. package/src/assets/web-panel/assets/{hasIn-BD9ZMGAl.js → hasIn-2vacgdcl.js} +1 -1
  95. package/src/assets/web-panel/assets/{index--N0u6kTG.js → index-B-C-Ruft.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-DzXjP44T.js → index-B7wDjYUd.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-CZBaqe3d.js → index-BMq0frKK.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DrOalGut.js → index-BUX4W-2v.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-CT1_eRL-.js → index-BZz2eB33.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DrsDA_md.js → index-BblNQlaA.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DP-UZAQN.js → index-BdfKoqsK.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-DiT_REby.js → index-Bf8YofPE.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-Cx3Jn1r0.js → index-Bn8tARil.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-B0rkHxKK.js → index-Bpe2CJd-.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-B_G_ElKO.js → index-BxctzdYQ.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-MIg5Z8qe.js → index-C24NoPpy.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-BmNbU2Z6.js → index-C5C4kSi8.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BsGmo6v1.js → index-C6ICn9Y6.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-CsrKJJcX.js → index-C8ldqZi6.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BbX_Dted.js → index-C9WsM29I.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-Ch175NUw.js → index-CONPVaxw.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-DONOUtlz.js → index-CPyYXKFB.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-DFLE2qO9.js → index-CSvSf9px.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-o8pYehRq.js → index-CXmpR6N3.js} +3 -3
  115. package/src/assets/web-panel/assets/{index-Cz3unNfL.js → index-Chybe7Ge.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-yAGBu2E0.js → index-CyXmP3PW.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-CuSau5ya.js → index-DCusBOqR.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-DcE1BspQ.js → index-DH01oIaj.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-DrSAAuJj.js → index-DHg3LMNP.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-CZkFMeWL.js → index-DWLTSIka.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-DvKcroix.js → index-DaUGdvtU.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-Bjs90Eh9.js → index-DcA-tEQd.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-DGRxt5wj.js → index-DfWvcu4p.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-DCn-ECvK.js → index-DmZNnZz7.js} +1 -1
  125. package/src/assets/web-panel/assets/index-DvFfMAux.js +1 -0
  126. package/src/assets/web-panel/assets/{index-8qMA1DWQ.js → index-JsyGqKmD.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-D4bB_x_v.js → index-TtrpHmYx.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-Brqc9Emx.js → index-Ygh0wmKz.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-Da5fmOHB.js → index-dIYqw3f0.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-DpfisY1g.js → index-hDHHJYno.js} +1 -1
  131. package/src/assets/web-panel/assets/index-n6p-1A77.js +1 -0
  132. package/src/assets/web-panel/assets/{index-DeXNCyQJ.js → index-oElehY4F.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-DcbgVLOH.js → index-z4_YwZDW.js} +1 -1
  134. package/src/assets/web-panel/assets/{initDefaultProps-DMTkAomF.js → initDefaultProps-B9OXWu2e.js} +1 -1
  135. package/src/assets/web-panel/assets/{motion-Cnti1F5g.js → motion-IQ47MCDQ.js} +1 -1
  136. package/src/assets/web-panel/assets/{move-CGxmHUga.js → move-CLCU4kjV.js} +1 -1
  137. package/src/assets/web-panel/assets/{mtc-parser-CuwwLoq7.js → mtc-parser-CXnVlSPq.js} +1 -1
  138. package/src/assets/web-panel/assets/{omit-BpdlTkPM.js → omit-BJjLXB0f.js} +1 -1
  139. package/src/assets/web-panel/assets/{pickAttrs-D7nWrThp.js → pickAttrs-BHdtvdy6.js} +1 -1
  140. package/src/assets/web-panel/assets/{placementArrow-Bhx0TV8F.js → placementArrow-oq8X_Bwc.js} +1 -1
  141. package/src/assets/web-panel/assets/{responsiveObserve-CZ1KesZh.js → responsiveObserve-DTD02LAO.js} +1 -1
  142. package/src/assets/web-panel/assets/{slide-CnldF8J6.js → slide-DbEeq8to.js} +1 -1
  143. package/src/assets/web-panel/assets/{statusUtils-CZfo_GOA.js → statusUtils-Do2fy1CJ.js} +1 -1
  144. package/src/assets/web-panel/assets/{styleChecker-B2QCcAv5.js → styleChecker-CFWD63T-.js} +1 -1
  145. package/src/assets/web-panel/assets/{useFlexGapSupport-DzzjIS4J.js → useFlexGapSupport-BeozAWOo.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFs-B_atg9M0.js → useFs-0-rIgnBL.js} +1 -1
  147. package/src/assets/web-panel/assets/{usePersonalDataHub-DhZs3QYN.js → usePersonalDataHub-CeiNoI31.js} +1 -1
  148. package/src/assets/web-panel/assets/{vnode-DcePTYAm.js → vnode-Dj0ReRNg.js} +1 -1
  149. package/src/assets/web-panel/assets/{zoom-BYmlnjRk.js → zoom-DD7MC4Dy.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-knowledge.js +40 -1
  155. package/src/commands/evolution.js +2 -0
  156. package/src/commands/governed-skill-marketplace.js +142 -0
  157. package/src/commands/marketplace.js +4 -1
  158. package/src/commands/serve.js +21 -0
  159. package/src/commands/skill.js +3 -0
  160. package/src/data/changelog.json +39 -0
  161. package/src/gateways/ws/ws-agent-handler.js +59 -2
  162. package/src/gateways/ws/ws-server.js +2 -0
  163. package/src/generated/cc-agent-protocol.schema.json +3 -1
  164. package/src/harness/golden-transcript.js +1 -0
  165. package/src/harness/prompt-compressor.js +51 -5
  166. package/src/harness/provider-backed-compaction.js +28 -1
  167. package/src/harness/remote-session-registry.js +15 -3
  168. package/src/index.js +20 -2
  169. package/src/lazy-dispatch.js +6 -0
  170. package/src/lib/advisor-runtime.js +55 -2
  171. package/src/lib/app-server/cli-agent-kernel-adapter.js +4 -0
  172. package/src/lib/app-server/graph-runtime.js +32 -0
  173. package/src/lib/app-server/server.js +94 -1
  174. package/src/lib/app-server/websocket-transport.js +15 -0
  175. package/src/lib/autonomous-agent.js +63 -13
  176. package/src/lib/cowork/ab-comparator-cli.js +4 -3
  177. package/src/lib/cowork/debate-review-cli.js +4 -3
  178. package/src/lib/cowork/decision-kb-cli.js +5 -0
  179. package/src/lib/cowork-adapter.js +38 -16
  180. package/src/lib/evolution/agent-evolution-ingress.js +95 -15
  181. package/src/lib/evolution/agent-evolution-runtime-composition.js +82 -0
  182. package/src/lib/evolution/agent-evolution-session-lifecycle.js +46 -0
  183. package/src/lib/evolution/agent-model-projection.js +437 -0
  184. package/src/lib/evolution/bounded-descriptor-read.js +29 -0
  185. package/src/lib/evolution/controlled-skill-pilot-ledger-adapter.js +551 -0
  186. package/src/lib/evolution/controlled-skill-production-pilot.js +308 -18
  187. package/src/lib/evolution/evidence-backed-wiki-maintainer.js +32 -10
  188. package/src/lib/evolution/evidence-json-text.js +236 -0
  189. package/src/lib/evolution/evolution-artifact-ports.js +196 -21
  190. package/src/lib/evolution/evolution-deployment-loader.js +240 -2
  191. package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +373 -0
  192. package/src/lib/evolution/evolution-eval-gate.js +14 -1
  193. package/src/lib/evolution/evolution-eval-process-supervisor-worker.mjs +14 -0
  194. package/src/lib/evolution/evolution-eval-process-supervisor.js +607 -0
  195. package/src/lib/evolution/evolution-evidence-artifact-adapter.js +14 -1
  196. package/src/lib/evolution/evolution-evidence-projector.js +271 -37
  197. package/src/lib/evolution/evolution-file-witness.js +153 -30
  198. package/src/lib/evolution/evolution-ledger-ports.js +1219 -66
  199. package/src/lib/evolution/evolution-ledger.js +66 -2
  200. package/src/lib/evolution/evolution-raw-crypto-shred.js +29 -15
  201. package/src/lib/evolution/evolution-raw-deletion-ledger-adapter.js +865 -0
  202. package/src/lib/evolution/evolution-release-train-domain-stages.js +769 -0
  203. package/src/lib/evolution/evolution-release-train-stage-output-ledger-adapter.js +333 -0
  204. package/src/lib/evolution/evolution-release-train.js +54 -6
  205. package/src/lib/evolution/evolution-workbench-batch-executor.js +101 -144
  206. package/src/lib/evolution/evolution-workbench-control-ports.js +203 -0
  207. package/src/lib/evolution/evolution-workbench-file-resources.js +403 -0
  208. package/src/lib/evolution/evolution-workbench-projection.js +134 -26
  209. package/src/lib/evolution/evolution-workbench-registry-source.js +482 -0
  210. package/src/lib/evolution/evolution-workbench-review-ledger-adapter.js +823 -0
  211. package/src/lib/evolution/evolution-workbench-review-protocol.js +157 -0
  212. package/src/lib/evolution/evolution-workbench-rollback-authorization.js +57 -0
  213. package/src/lib/evolution/evolution-workbench-rollback-ledger-adapter.js +1016 -0
  214. package/src/lib/evolution/evolution-workbench-runtime.js +133 -0
  215. package/src/lib/evolution/evolution-workbench-version-control.js +70 -36
  216. package/src/lib/evolution/evolvable-artifact-ledger-adapter.js +48 -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-inventory.js +392 -0
  220. package/src/lib/evolution/governed-knowledge-dependency-ledger-executor.js +217 -82
  221. package/src/lib/evolution/governed-knowledge-quarantine-release.js +1013 -0
  222. package/src/lib/evolution/governed-knowledge-record.js +148 -0
  223. package/src/lib/evolution/governed-knowledge-revocation-host.js +59 -0
  224. package/src/lib/evolution/governed-knowledge-revocation-record.js +135 -0
  225. package/src/lib/evolution/governed-knowledge-skill-rollback.js +510 -0
  226. package/src/lib/evolution/governed-knowledge-sync.js +181 -95
  227. package/src/lib/evolution/governed-knowledge-wiki-tombstone.js +516 -0
  228. package/src/lib/evolution/governed-skill-marketplace-badge.js +208 -0
  229. package/src/lib/evolution/governed-skill-marketplace-candidate.js +330 -0
  230. package/src/lib/evolution/governed-skill-marketplace-cli-host.js +308 -0
  231. package/src/lib/evolution/governed-skill-marketplace-ledger-adapter.js +420 -0
  232. package/src/lib/evolution/governed-skill-marketplace.js +288 -5
  233. package/src/lib/evolution/governed-wiki-pruning-journal.js +302 -0
  234. package/src/lib/evolution/governed-wiki-pruning-ledger-adapter.js +459 -0
  235. package/src/lib/evolution/governed-wiki-pruning-maintenance.js +576 -0
  236. package/src/lib/evolution/governed-wiki-pruning-plan-authority.js +169 -0
  237. package/src/lib/evolution/governed-wiki-pruning-raw-shred.js +207 -0
  238. package/src/lib/evolution/governed-wiki-pruning-retrieval.js +587 -0
  239. package/src/lib/evolution/governed-wiki-pruning-runtime.js +153 -0
  240. package/src/lib/evolution/governed-wiki-pruning-skill-rollback.js +360 -0
  241. package/src/lib/evolution/governed-wiki-pruning.js +322 -143
  242. package/src/lib/evolution/independent-skill-revocation-source.js +231 -0
  243. package/src/lib/evolution/knowledge-wiki-source-admission.js +283 -0
  244. package/src/lib/evolution/knowledge-wiki-source-provenance.js +360 -0
  245. package/src/lib/evolution/progressive-canary-external-watchdog.js +578 -0
  246. package/src/lib/evolution/progressive-canary-traffic-worker.js +628 -0
  247. package/src/lib/evolution/progressive-canary-watchdog-file-store.js +285 -0
  248. package/src/lib/evolution/progressive-canary-watchdog-node-pki.js +265 -0
  249. package/src/lib/evolution/skill-candidate-registry.js +43 -3
  250. package/src/lib/evolution/skill-promotion-controller.js +25 -0
  251. package/src/lib/evolution/skill-promotion-review-ledger-adapter.js +100 -0
  252. package/src/lib/evolution/skill-registry-transition-ledger-adapter.js +131 -2
  253. package/src/lib/evolution/skill-release-registry.js +168 -4
  254. package/src/lib/evolution/skill-retrieval-revocation-authority.js +361 -0
  255. package/src/lib/evolution/skill-retrieval-revocation-ledger-adapter.js +346 -0
  256. package/src/lib/evolution/skill-revocation-propagation.js +467 -0
  257. package/src/lib/evolution/skill-target-matrix-eval.js +162 -11
  258. package/src/lib/evolution/skill-wiki-reconciliation.js +985 -0
  259. package/src/lib/evolution/skill-writer-inventory-manifest.js +8 -6
  260. package/src/lib/evolution/statistical-progressive-canary.js +165 -3
  261. package/src/lib/evolution/structured-memory-agent-control-plane.js +120 -0
  262. package/src/lib/evolution/structured-memory-authority-ledger-adapter.js +5 -1
  263. package/src/lib/evolution/structured-memory-promotion-receipt-writer.js +126 -0
  264. package/src/lib/evolution/wiki-informed-skill-proposer.js +127 -21
  265. package/src/lib/evolution/wiki-maintainer-ledger-adapter.js +822 -101
  266. package/src/lib/evolution/wiki-revision-protocol.js +120 -0
  267. package/src/lib/evolution/wiki-skill-proposal-ledger-adapter.js +307 -0
  268. package/src/lib/evolution/wiki-target-tombstone-revision.js +109 -0
  269. package/src/lib/evolution/wikiskill-benchmark-cli-host.js +178 -0
  270. package/src/lib/evolution/wikiskill-benchmark-execution-host.js +702 -0
  271. package/src/lib/evolution/wikiskill-benchmark-ledger-adapter.js +613 -0
  272. package/src/lib/evolution/wikiskill-benchmark.js +80 -16
  273. package/src/lib/goal-assess.js +17 -10
  274. package/src/lib/interactive-planner.js +9 -1
  275. package/src/lib/iteration-budget.js +16 -2
  276. package/src/lib/micro-compact.js +4 -1
  277. package/src/lib/model-failure-policy.js +21 -0
  278. package/src/lib/process-execution-broker/index.js +1 -0
  279. package/src/lib/process-execution-broker/windows-sandbox-helper.dll +0 -0
  280. package/src/lib/process-execution-broker/windows-sandbox-helper.exe +0 -0
  281. package/src/lib/process-execution-broker/windows-sandbox.cs +33 -15
  282. package/src/lib/read-file-loop-guard.js +113 -0
  283. package/src/lib/read-file-page.js +191 -0
  284. package/src/lib/runnable-provider.js +2 -1
  285. package/src/lib/skill-retrieval-router.js +22 -1
  286. package/src/repl/agent-repl.js +133 -34
  287. package/src/runtime/agent-core.js +196 -74
  288. package/src/runtime/agent-runtime.js +43 -0
  289. package/src/runtime/coding-agent-contract-shared.cjs +7 -1
  290. package/src/runtime/fallback-model.js +143 -62
  291. package/src/runtime/headless-runner.js +54 -10
  292. package/src/runtime/headless-stream.js +50 -6
  293. package/src/runtime/runtime-factory.js +41 -2
  294. package/src/assets/web-panel/assets/ChatBubbleRenderer-Ds3pA-ET.js +0 -1
  295. package/src/assets/web-panel/assets/MarkdownRenderer-DqTx7_u1.js +0 -1
  296. package/src/assets/web-panel/assets/devWarning-CF3xafX2.js +0 -1
  297. package/src/assets/web-panel/assets/index-C907rPwd.js +0 -1
  298. package/src/assets/web-panel/assets/index-wueRSK2d.js +0 -1
@@ -3,22 +3,28 @@ import { types as utilTypes } from "node:util";
3
3
 
4
4
  import { isGovernedKnowledgeDependencyExecutor } from "./governed-knowledge-dependency-ledger-executor.js";
5
5
  import { isGovernedKnowledgeArtifactLifecycle } from "./governed-knowledge-artifact-lifecycle.js";
6
+ import {
7
+ captureGovernedKnowledgeDependencyInventoryPlan,
8
+ isGovernedKnowledgeDependencyInventoryPlanner,
9
+ } from "./governed-knowledge-dependency-inventory.js";
10
+
11
+ import {
12
+ GOVERNED_KNOWLEDGE_SCOPE,
13
+ verifyGovernedKnowledgeRecord,
14
+ normalizeGovernedKnowledgeVectorClock as vectorClock,
15
+ } from "./governed-knowledge-record.js";
16
+ export {
17
+ GOVERNED_KNOWLEDGE_SYNC_SCHEMA,
18
+ GOVERNED_KNOWLEDGE_SCOPE,
19
+ verifyGovernedKnowledgeRecord,
20
+ } from "./governed-knowledge-record.js";
6
21
 
7
- export const GOVERNED_KNOWLEDGE_SYNC_SCHEMA =
8
- "chainlesschain.governed-evolution-knowledge-sync/v1";
9
22
  export const GOVERNED_KNOWLEDGE_ENVELOPE_SCHEMA =
10
23
  "chainlesschain.governed-evolution-knowledge-envelope/v1";
11
24
  export const GOVERNED_KNOWLEDGE_ARTIFACT_BINDING_SCHEMA =
12
25
  "chainlesschain.governed-knowledge-artifact-binding/v2";
13
26
  export const GOVERNED_KNOWLEDGE_ARTIFACT_BINDING_LEGACY_SCHEMA =
14
27
  "chainlesschain.governed-knowledge-artifact-binding/v1";
15
- export const GOVERNED_KNOWLEDGE_SCOPE = Object.freeze({
16
- PERSONAL: "personal",
17
- PROJECT: "project",
18
- TEAM: "team",
19
- ORG: "org",
20
- });
21
-
22
28
  const DIGEST = /^sha256:[a-f0-9]{64}$/u;
23
29
  const ID = /^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u;
24
30
  const SCOPES = new Set(Object.values(GOVERNED_KNOWLEDGE_SCOPE));
@@ -26,6 +32,7 @@ const ACTIONS = new Set(["upsert", "tombstone", "revoke"]);
26
32
  const MAX_CIPHERTEXT_BYTES = 12 * 1024 * 1024;
27
33
  const EXECUTION_RECORDS = new WeakSet();
28
34
  const SYNCHRONIZERS = new WeakSet();
35
+ const PLANNED_REVOCATIONS = new WeakMap();
29
36
  const ENVELOPE_KEYS = new Set([
30
37
  "action",
31
38
  "ciphertext",
@@ -97,6 +104,11 @@ function record(value, label) {
97
104
  ![Object.prototype, null].includes(Object.getPrototypeOf(value))
98
105
  )
99
106
  throw new TypeError(`${label} must be a plain object`);
107
+ for (const key of Reflect.ownKeys(value)) {
108
+ const property = Object.getOwnPropertyDescriptor(value, key);
109
+ if (typeof key !== "string" || !Object.hasOwn(property, "value"))
110
+ throw new TypeError(`${label} must contain only data properties`);
111
+ }
100
112
  return value;
101
113
  }
102
114
 
@@ -106,12 +118,6 @@ function id(value, label) {
106
118
  return value;
107
119
  }
108
120
 
109
- function digest(value, label) {
110
- if (typeof value !== "string" || !DIGEST.test(value))
111
- throw new TypeError(`${label} must be sha256-bound`);
112
- return value;
113
- }
114
-
115
121
  function capture(owner, method) {
116
122
  if (
117
123
  !owner ||
@@ -123,23 +129,6 @@ function capture(owner, method) {
123
129
  return (...args) => Reflect.apply(owner[method], owner, args);
124
130
  }
125
131
 
126
- function vectorClock(value) {
127
- record(value, "vectorClock");
128
- const entries = Object.entries(value);
129
- if (entries.length < 1 || entries.length > 64)
130
- throw new TypeError("vectorClock is empty or unbounded");
131
- const result = {};
132
- for (const [deviceId, revision] of entries.sort(([a], [b]) =>
133
- a.localeCompare(b),
134
- )) {
135
- id(deviceId, "vectorClock device");
136
- if (!Number.isSafeInteger(revision) || revision < 0)
137
- throw new TypeError("vectorClock revision is invalid");
138
- result[deviceId] = revision;
139
- }
140
- return result;
141
- }
142
-
143
132
  function relation(left, right) {
144
133
  const devices = new Set([...Object.keys(left), ...Object.keys(right)]);
145
134
  let before = false;
@@ -156,75 +145,14 @@ function relation(left, right) {
156
145
  return "equal";
157
146
  }
158
147
 
159
- function normalizeDependencies(value, action) {
160
- if (!Array.isArray(value) || value.length > 256)
161
- throw new TypeError("dependency dispositions are unbounded");
162
- const seen = new Set();
163
- return value.map((entry) => {
164
- record(entry, "dependency disposition");
165
- const normalized = {
166
- kind: id(entry.kind, "dependency kind"),
167
- digest: digest(entry.digest, "dependency digest"),
168
- disposition: id(entry.disposition, "dependency disposition"),
169
- };
170
- const key = `${normalized.kind}:${normalized.digest}`;
171
- if (seen.has(key)) throw new TypeError("duplicate dependency disposition");
172
- seen.add(key);
173
- if (
174
- ["tombstone", "revoke"].includes(action) &&
175
- ![
176
- "tombstone",
177
- "quarantine",
178
- "reject-candidate",
179
- "rollback-active",
180
- ].includes(normalized.disposition)
181
- )
182
- throw new TypeError("revocation dependency disposition is unsafe");
183
- return normalized;
184
- });
185
- }
186
-
187
148
  function normalizeRecord(input, descriptor, { executionRecord = false } = {}) {
188
- record(input, "knowledge record");
189
- const action = ACTIONS.has(input.action) ? input.action : null;
190
- const scope = SCOPES.has(input.scope) ? input.scope : null;
191
- if (!action || !scope || input.tenantId !== descriptor.tenantId)
192
- throw new TypeError("knowledge record boundary is invalid");
193
- const dependencies = normalizeDependencies(input.dependencies || [], action);
194
- if (
195
- ["team", "org"].includes(scope) &&
196
- !DIGEST.test(input.approvalReceiptDigest || "")
197
- )
198
- throw new TypeError("shared knowledge requires approval");
199
- if (
200
- ["tombstone", "revoke"].includes(action) &&
201
- (!DIGEST.test(input.revocationReceiptDigest || "") ||
202
- dependencies.length < 1)
203
- )
204
- throw new TypeError(
205
- "revocation must bind its receipt and dependency graph",
206
- );
207
- const normalized = freeze({
208
- schema: GOVERNED_KNOWLEDGE_SYNC_SCHEMA,
149
+ const normalized = verifyGovernedKnowledgeRecord(input, {
209
150
  tenantId: descriptor.tenantId,
210
- knowledgeId: id(input.knowledgeId, "knowledgeId"),
211
- scope,
212
- scopeId: id(input.scopeId, "scopeId"),
213
- action,
214
- contentDigest: digest(input.contentDigest, "contentDigest"),
215
- vectorClock: vectorClock(input.vectorClock),
216
- approvalReceiptDigest: input.approvalReceiptDigest || null,
217
- revocationReceiptDigest: input.revocationReceiptDigest || null,
218
- dependencies,
219
151
  });
220
152
  if (executionRecord) EXECUTION_RECORDS.add(normalized);
221
153
  return normalized;
222
154
  }
223
155
 
224
- export function verifyGovernedKnowledgeRecord(input, { tenantId } = {}) {
225
- return normalizeRecord(input, { tenantId: id(tenantId, "tenantId") });
226
- }
227
-
228
156
  export function verifyGovernedKnowledgeArtifactBinding(
229
157
  input,
230
158
  { tenantId, knowledge, authorizationReceiptDigest } = {},
@@ -321,6 +249,7 @@ export class GovernedKnowledgeSync {
321
249
  deviceId,
322
250
  ports,
323
251
  dependencyExecutor = null,
252
+ dependencyPlanner = null,
324
253
  artifactLifecycle,
325
254
  clock = () => Date.now(),
326
255
  } = {}) {
@@ -359,9 +288,106 @@ export class GovernedKnowledgeSync {
359
288
  this._executeDependencies = dependencyExecutor
360
289
  ? capture(dependencyExecutor, "execute")
361
290
  : null;
291
+ if (
292
+ dependencyPlanner !== null &&
293
+ (!isGovernedKnowledgeDependencyInventoryPlanner(dependencyPlanner) ||
294
+ dependencyExecutor === null)
295
+ ) {
296
+ throw new TypeError(
297
+ "dependencyPlanner requires a branded inventory planner and executor",
298
+ );
299
+ }
300
+ this._dependencyPlanner = dependencyPlanner;
301
+ this._planDependencies = dependencyPlanner
302
+ ? capture(dependencyPlanner, "plan")
303
+ : null;
304
+ this._prepareDependencies = dependencyPlanner
305
+ ? capture(dependencyExecutor, "prepare")
306
+ : null;
307
+ this._readPreparedDependencies = dependencyPlanner
308
+ ? capture(dependencyExecutor, "readPrepared")
309
+ : null;
310
+ this._readPreparedDependenciesForKnowledge = dependencyPlanner
311
+ ? capture(dependencyExecutor, "readPreparedForKnowledge")
312
+ : null;
362
313
  SYNCHRONIZERS.add(this);
363
314
  }
364
315
 
316
+ async planRevocation(input) {
317
+ if (!this._planDependencies) {
318
+ throw new Error("knowledge dependency inventory planner is unavailable");
319
+ }
320
+ const planned = this._planDependencies(input);
321
+ captureGovernedKnowledgeDependencyInventoryPlan(
322
+ this._dependencyPlanner,
323
+ planned,
324
+ );
325
+ const knowledge = normalizeRecord(planned.knowledge, this, {
326
+ executionRecord: true,
327
+ });
328
+ if (knowledge.scope === "personal") {
329
+ throw new Error("personal knowledge cannot enter a shared sync channel");
330
+ }
331
+ await this._admit("publish", knowledge);
332
+ const prepared = await this._prepareDependencies(knowledge);
333
+ if (
334
+ prepared?.authenticated !== true ||
335
+ prepared.durable !== true ||
336
+ !DIGEST.test(prepared.operationDigest ?? "") ||
337
+ canonical(prepared.knowledge) !== canonical(knowledge)
338
+ ) {
339
+ throw new Error("knowledge dependency plan was not durably prepared");
340
+ }
341
+ const result = freeze({
342
+ inventory: planned.inventory,
343
+ knowledge,
344
+ operationDigest: prepared.operationDigest,
345
+ recovered: false,
346
+ });
347
+ PLANNED_REVOCATIONS.set(result, this);
348
+ return result;
349
+ }
350
+
351
+ async recoverPlannedRevocation({ operationDigest } = {}) {
352
+ if (
353
+ !this._readPreparedDependencies ||
354
+ !DIGEST.test(operationDigest ?? "")
355
+ ) {
356
+ throw new TypeError(
357
+ "planned revocation recovery is unavailable or invalid",
358
+ );
359
+ }
360
+ const prepared = this._readPreparedDependencies({ operationDigest });
361
+ if (
362
+ prepared?.authenticated !== true ||
363
+ prepared.durable !== true ||
364
+ prepared.operationDigest !== operationDigest
365
+ ) {
366
+ throw new Error("prepared knowledge revocation was not found");
367
+ }
368
+ const knowledge = normalizeRecord(prepared.knowledge, this, {
369
+ executionRecord: true,
370
+ });
371
+ await this._admit("publish", knowledge);
372
+ const result = freeze({
373
+ inventory: null,
374
+ knowledge,
375
+ operationDigest,
376
+ recovered: true,
377
+ });
378
+ PLANNED_REVOCATIONS.set(result, this);
379
+ return result;
380
+ }
381
+
382
+ async publishPlanned(plan, options = {}) {
383
+ if (PLANNED_REVOCATIONS.get(plan) !== this) {
384
+ throw new TypeError(
385
+ "a revocation plan prepared by this sync is required",
386
+ );
387
+ }
388
+ return this.publishWithArtifactEvidence(plan.knowledge, options);
389
+ }
390
+
365
391
  async publish(input, options = {}) {
366
392
  const result = await this.publishWithArtifactEvidence(input, options);
367
393
  return result.envelope;
@@ -679,7 +705,8 @@ export class GovernedKnowledgeSync {
679
705
  activate: binding.activate,
680
706
  humanReviewed: binding.humanReviewed,
681
707
  });
682
- await this._applyRevocationDependencies(knowledge);
708
+ const dependencyKnowledge = await this._receivedDependencyPlan(knowledge);
709
+ await this._applyRevocationDependencies(dependencyKnowledge);
683
710
  await this._persist(
684
711
  knowledge,
685
712
  envelope,
@@ -788,6 +815,65 @@ export class GovernedKnowledgeSync {
788
815
  throw new Error("revocation dependencies were not durably applied");
789
816
  }
790
817
  }
818
+
819
+ async _receivedDependencyPlan(remoteKnowledge) {
820
+ if (
821
+ !["tombstone", "revoke"].includes(remoteKnowledge.action) ||
822
+ !this._planDependencies
823
+ ) {
824
+ return remoteKnowledge;
825
+ }
826
+ const portable = (value) => {
827
+ const copy = clone(value);
828
+ delete copy.dependencies;
829
+ return copy;
830
+ };
831
+ const recovered =
832
+ this._readPreparedDependenciesForKnowledge(remoteKnowledge);
833
+ let localKnowledge;
834
+ if (recovered) {
835
+ if (
836
+ recovered.authenticated !== true ||
837
+ recovered.durable !== true ||
838
+ !DIGEST.test(recovered.operationDigest ?? "")
839
+ ) {
840
+ throw new Error("received revocation local plan is unauthenticated");
841
+ }
842
+ localKnowledge = normalizeRecord(recovered.knowledge, this, {
843
+ executionRecord: true,
844
+ });
845
+ } else {
846
+ const draft = portable(remoteKnowledge);
847
+ delete draft.schema;
848
+ const planned = this._planDependencies(draft);
849
+ captureGovernedKnowledgeDependencyInventoryPlan(
850
+ this._dependencyPlanner,
851
+ planned,
852
+ );
853
+ localKnowledge = normalizeRecord(planned.knowledge, this, {
854
+ executionRecord: true,
855
+ });
856
+ }
857
+ if (
858
+ canonical(portable(localKnowledge)) !==
859
+ canonical(portable(remoteKnowledge))
860
+ ) {
861
+ throw new Error(
862
+ "received revocation local plan changed signed knowledge",
863
+ );
864
+ }
865
+ const prepared = await this._prepareDependencies(localKnowledge);
866
+ if (
867
+ prepared?.authenticated !== true ||
868
+ prepared.durable !== true ||
869
+ canonical(prepared.knowledge) !== canonical(localKnowledge)
870
+ ) {
871
+ throw new Error(
872
+ "received revocation local plan was not durably prepared",
873
+ );
874
+ }
875
+ return localKnowledge;
876
+ }
791
877
  }
792
878
 
793
879
  export function isGovernedKnowledgeSync(value) {