chainlesschain 0.162.149 → 0.162.150

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 (273) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/assets/{AIOps-BJif14yR.js → AIOps-CBLvrjeG.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-CXek6gJY.js → ActionButton-DYv2GtE0.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-BgQhdAJi.js → Analytics-CL6PZ-Ww.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-DTYl5NtR.js → AppLayout-xuyHt4uA.js} +3 -3
  6. package/src/assets/web-panel/assets/{Audit-BzATQAeR.js → Audit-DOvSVycq.js} +1 -1
  7. package/src/assets/web-panel/assets/{Backup-BzdPEQhL.js → Backup-DMhfTswr.js} +1 -1
  8. package/src/assets/web-panel/assets/{BaseInput-BM0KVh8E.js → BaseInput-CQxDdm63.js} +1 -1
  9. package/src/assets/web-panel/assets/{Chat-D7fHXHkz.js → Chat-BEeNhK2a.js} +5 -5
  10. package/src/assets/web-panel/assets/{ChatBubbleRenderer-Wm34RR-b.js → ChatBubbleRenderer-8nul8eTq.js} +1 -1
  11. package/src/assets/web-panel/assets/{Checkbox-CAiSQ9vO.js → Checkbox-CL04O-ER.js} +1 -1
  12. package/src/assets/web-panel/assets/{Codegen-Df40CrEe.js → Codegen-C50o-n7x.js} +1 -1
  13. package/src/assets/web-panel/assets/{Col-DIT2fNFU.js → Col-CH-bDkzs.js} +1 -1
  14. package/src/assets/web-panel/assets/{Community-CSTIbW2k.js → Community-DqAIMvSe.js} +1 -1
  15. package/src/assets/web-panel/assets/{Compact-DtqXZZUi.js → Compact-C43fo_my.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compliance-CUtzw6o7.js → Compliance-BERnMrdP.js} +1 -1
  17. package/src/assets/web-panel/assets/{Cowork-CezmlnmU.js → Cowork-Baw3w1gp.js} +4 -4
  18. package/src/assets/web-panel/assets/{Cron-P4BITarg.js → Cron-BEqAHF1-.js} +2 -2
  19. package/src/assets/web-panel/assets/{Crosschain-BRRiYwvq.js → Crosschain-CvnmKwK4.js} +1 -1
  20. package/src/assets/web-panel/assets/{DID-L5ijB9i4.js → DID-iMPxgVdt.js} +2 -2
  21. package/src/assets/web-panel/assets/{Dashboard-CFxro4ob.js → Dashboard--4SJX3YR.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dropdown-BmAFCQ71.js → Dropdown-BgLV6xgz.js} +1 -1
  23. package/src/assets/web-panel/assets/{EmailListRenderer-DJBCEuon.js → EmailListRenderer-Bvb8oUD8.js} +1 -1
  24. package/src/assets/web-panel/assets/{FamilyGuardDashboard-z4oLq6eT.js → FamilyGuardDashboard-DpXPjJB5.js} +1 -1
  25. package/src/assets/web-panel/assets/{Federation-DsVCpHMF.js → Federation-BbFfJ1Xi.js} +1 -1
  26. package/src/assets/web-panel/assets/{FormItemContext-DP3bP5th.js → FormItemContext-DeGq1B-q.js} +1 -1
  27. package/src/assets/web-panel/assets/{GenericCardRenderer-BAXP2Gc6.js → GenericCardRenderer-CNW7s9zM.js} +1 -1
  28. package/src/assets/web-panel/assets/{Git-I3g_bAw9.js → Git-L1PjW-lT.js} +2 -2
  29. package/src/assets/web-panel/assets/{Governance-jHS5-ioS.js → Governance-PK-X58to.js} +1 -1
  30. package/src/assets/web-panel/assets/{Inference-CPL7sfx9.js → Inference-BePWEH-d.js} +1 -1
  31. package/src/assets/web-panel/assets/{KnowledgeGraph-Jf236h4C.js → KnowledgeGraph-LF_sBvdL.js} +1 -1
  32. package/src/assets/web-panel/assets/{Logs-Cm2tcSKg.js → Logs-BKkfk9hy.js} +2 -2
  33. package/src/assets/web-panel/assets/{Marketplace-CZK82rhi.js → Marketplace-BNMqUDla.js} +1 -1
  34. package/src/assets/web-panel/assets/{McpTools-CZCeji7a.js → McpTools-w4WPiyz2.js} +5 -5
  35. package/src/assets/web-panel/assets/{Memory-3l2KVS9k.js → Memory-DUKMVGNi.js} +2 -2
  36. package/src/assets/web-panel/assets/{MobileBridge-VYdpoLh6.js → MobileBridge-BWhiEyTJ.js} +1 -1
  37. package/src/assets/web-panel/assets/{MobileProjects-CiB9cmm1.js → MobileProjects-Ocf5JEkX.js} +1 -1
  38. package/src/assets/web-panel/assets/{Mtc-wCFZbBuL.js → Mtc-D2B6MMhU.js} +4 -4
  39. package/src/assets/web-panel/assets/{MtcAudit-1a3THIyG.js → MtcAudit-DdYjCq1O.js} +2 -2
  40. package/src/assets/web-panel/assets/{Multisig-DMzLB2hG.js → Multisig-Cb1hfuUZ.js} +3 -3
  41. package/src/assets/web-panel/assets/{NLProgramming-D9wZbf6l.js → NLProgramming-CTeImGp7.js} +1 -1
  42. package/src/assets/web-panel/assets/{Notes-hrFe2ZM-.js → Notes-BjYNc7eQ.js} +4 -4
  43. package/src/assets/web-panel/assets/{NotificationSettings-CHGX5Jwm.js → NotificationSettings-Dn_NtRXQ.js} +1 -1
  44. package/src/assets/web-panel/assets/OrderTableRenderer-DVYYIizh.js +1 -0
  45. package/src/assets/web-panel/assets/{Organization-By7FkhtY.js → Organization-Be2Kmr5j.js} +4 -4
  46. package/src/assets/web-panel/assets/{Overflow--khGSzJn.js → Overflow-Cu_-qRlR.js} +1 -1
  47. package/src/assets/web-panel/assets/{P2P-CAG9dH35.js → P2P-DD2HoGzE.js} +2 -2
  48. package/src/assets/web-panel/assets/{PdhVaultBrowser-B3SQZmK9.js → PdhVaultBrowser-BRI7DVth.js} +3 -3
  49. package/src/assets/web-panel/assets/{Permissions-D35ec6JA.js → Permissions-C9Srcs2M.js} +3 -3
  50. package/src/assets/web-panel/assets/{PersonalDataHub-CxBF7hW_.js → PersonalDataHub-CUqcMgo1.js} +3 -3
  51. package/src/assets/web-panel/assets/{Pipeline-s6EtOO1s.js → Pipeline-HBrQGLXt.js} +1 -1
  52. package/src/assets/web-panel/assets/{Privacy-BbJYmWmO.js → Privacy-D-B0vjwh.js} +1 -1
  53. package/src/assets/web-panel/assets/{ProjectInit-VGQq1jMT.js → ProjectInit-eTeLIu9e.js} +2 -2
  54. package/src/assets/web-panel/assets/{ProjectSettings-B1ew3Teh.js → ProjectSettings-DrRqCsC6.js} +2 -2
  55. package/src/assets/web-panel/assets/Projects-1G9DNOhI.js +1 -0
  56. package/src/assets/web-panel/assets/{Providers-mrO47FIK.js → Providers-RkTZzpxP.js} +1 -1
  57. package/src/assets/web-panel/assets/{QrScannerModal-IJF2mHyw.js → QrScannerModal-BSCUgsgC.js} +1 -1
  58. package/src/assets/web-panel/assets/{QuickAsk-CU0wN_Z0.js → QuickAsk-CHgyM3Bz.js} +1 -1
  59. package/src/assets/web-panel/assets/{Recommend-DhN37R6G.js → Recommend-0lry4OZq.js} +1 -1
  60. package/src/assets/web-panel/assets/{RemoteSession-D_xOX_hu.js → RemoteSession-Cn45UroZ.js} +2 -2
  61. package/src/assets/web-panel/assets/{Reputation-D_Ssv7uH.js → Reputation-Q-Zjb707.js} +1 -1
  62. package/src/assets/web-panel/assets/{Row-Kx5dKxX7.js → Row-BdM70oda.js} +1 -1
  63. package/src/assets/web-panel/assets/{RssFeed-BlGwqZkY.js → RssFeed-DmOAKKap.js} +2 -2
  64. package/src/assets/web-panel/assets/{Search-hLFQzxpb.js → Search-Dwavbm07.js} +1 -1
  65. package/src/assets/web-panel/assets/{Security-DMlvsVt4.js → Security-DukXFCnk.js} +3 -3
  66. package/src/assets/web-panel/assets/{Services-Bd0Qsj2m.js → Services-BIlRnITu.js} +2 -2
  67. package/src/assets/web-panel/assets/{Skeleton-DFclq9X3.js → Skeleton-YYVQdhhQ.js} +1 -1
  68. package/src/assets/web-panel/assets/{Skills-BNtln2qY.js → Skills-B8_iYHz2.js} +1 -1
  69. package/src/assets/web-panel/assets/{Sla-Dch5H19G.js → Sla-BdVrhT31.js} +1 -1
  70. package/src/assets/web-panel/assets/{SpeechSettings-2UfQcU1g.js → SpeechSettings-CD3ggRx7.js} +1 -1
  71. package/src/assets/web-panel/assets/{SyncSettings-CD9YQr4i.js → SyncSettings-Bp02VZFH.js} +2 -2
  72. package/src/assets/web-panel/assets/{Tasks-BNu-7MzI.js → Tasks-DEVmCEsr.js} +1 -1
  73. package/src/assets/web-panel/assets/{Templates-D1n9CaIR.js → Templates-B6czWc4N.js} +1 -1
  74. package/src/assets/web-panel/assets/{Tenant-DenL3iBW.js → Tenant-BCJLv17r.js} +1 -1
  75. package/src/assets/web-panel/assets/{Terminal-ZzU0Io1Y.js → Terminal-CD132d2Y.js} +2 -2
  76. package/src/assets/web-panel/assets/{TimelineRenderer-D87IfukO.js → TimelineRenderer-ZB-CvkZl.js} +1 -1
  77. package/src/assets/web-panel/assets/{Tokens-BkiZc8E3.js → Tokens-BnSY0S-s.js} +1 -1
  78. package/src/assets/web-panel/assets/{Trigger-BNRSytGN.js → Trigger-VZw9Oy2w.js} +1 -1
  79. package/src/assets/web-panel/assets/{Trust-Bwbd4X2m.js → Trust-pZq7Hjd2.js} +1 -1
  80. package/src/assets/web-panel/assets/{UkeySign-B8O2bs0o.js → UkeySign-DnQaqk4q.js} +1 -1
  81. package/src/assets/web-panel/assets/{VideoEditing-C2fL8zmH.js → VideoEditing-BEUfmvJV.js} +1 -1
  82. package/src/assets/web-panel/assets/{Wallet-BORYDdE1.js → Wallet-CoZKMXJ2.js} +4 -4
  83. package/src/assets/web-panel/assets/{WebAuthn-C0V5S2FM.js → WebAuthn-CBOGVx1I.js} +5 -5
  84. package/src/assets/web-panel/assets/{WorkflowEditor-2dR0fcHL.js → WorkflowEditor-huSKn7TT.js} +1 -1
  85. package/src/assets/web-panel/assets/{chat-BmuAFAn8.js → chat-A_3w6FBO.js} +1 -1
  86. package/src/assets/web-panel/assets/{colors-CN3smMcK.js → colors-D1Bem9Oy.js} +1 -1
  87. package/src/assets/web-panel/assets/{compact-item-DCnxb4kW.js → compact-item-CJYJj0oO.js} +1 -1
  88. package/src/assets/web-panel/assets/{createContext-vlR43pHn.js → createContext-BkbFiKT4.js} +1 -1
  89. package/src/assets/web-panel/assets/devWarning-WDr3_M_N.js +1 -0
  90. package/src/assets/web-panel/assets/{hasIn-D04tHYFd.js → hasIn-CKvUafVY.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-0DnaZGkC.js → index-AjrSPnvv.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-BudvKQfG.js → index-B8i0lViZ.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-BeGDEXFs.js → index-B9Svn0zc.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-D5LZVZ0L.js → index-BHdHSX06.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-BTPEZTk1.js → index-BHdailyo.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-DIpY0qM5.js → index-BJwlEnYo.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-CsAsCPJ6.js → index-BOoAQjJz.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-ljuBiQW9.js → index-BSgWxAOG.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-hpvvtAZ3.js → index-BdutMsne.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-_FIkN3jd.js → index-BiDWxzbn.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-C-6NO5il.js → index-By5a0T_W.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-B78xL3s2.js → index-C-WIY-FQ.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-ClhAHDK3.js → index-C37f6iey.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-ToUh2b1-.js → index-C9bWmTcO.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-D28DeAAB.js → index-CBaosWRO.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-D8vwp4qp.js → index-CBlBVJ_m.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-BqhASEL4.js → index-CD62EEGo.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-DDwLgQY9.js → index-CUj-l7GM.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-DbVsQBOH.js → index-CVS8Ymuq.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-Cr-A0FYJ.js → index-ChkXUj3f.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-D65_XseV.js → index-Cj0OZ-37.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BXRg8GFQ.js → index-Co3OFL0t.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-430S68MN.js → index-Crp8CbRg.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-CngCC8hC.js → index-D22zNXiS.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-HhNjnCfe.js → index-DTs_D1OL.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CP9m9Ggr.js → index-DfgCdFrN.js} +3 -3
  117. package/src/assets/web-panel/assets/{index-jzR7Ujuw.js → index-DjYrecNb.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-CTOCnIQ7.js → index-DpW9cf3e.js} +1 -1
  119. package/src/assets/web-panel/assets/index-Dwix3p4g.js +1 -0
  120. package/src/assets/web-panel/assets/{index-D_n8_vfI.js → index-F--HuPG1.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-BasvsWDM.js → index-Fuk6t_3K.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-CnXebZLL.js → index-JEAGMii9.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-DYAtmqiv.js → index-PF-mpv8K.js} +1 -1
  124. package/src/assets/web-panel/assets/index-SHaoZ0CA.js +1 -0
  125. package/src/assets/web-panel/assets/{index-DTWg-18U.js → index-b-sbVdjQ.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-C5Sxb1sE.js → index-pyvMVX8r.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-TslMTwNy.js → index-qNTtOVi_.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DTtRscUa.js → index-tgO8iza6.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-DbADHwhr.js → index-ttDQVhZy.js} +1 -1
  130. package/src/assets/web-panel/assets/{initDefaultProps-C3wUb4je.js → initDefaultProps-DtrnfsZH.js} +1 -1
  131. package/src/assets/web-panel/assets/{motion-D-jYFUNA.js → motion-D4zqSaX3.js} +1 -1
  132. package/src/assets/web-panel/assets/{move-tqb8nwJ2.js → move-CGFGOUQj.js} +1 -1
  133. package/src/assets/web-panel/assets/{mtc-parser-DSOjMJMz.js → mtc-parser-DH2HvkJl.js} +1 -1
  134. package/src/assets/web-panel/assets/{omit-CJ7VimIW.js → omit-jJ2at5HX.js} +1 -1
  135. package/src/assets/web-panel/assets/{pickAttrs-qXiG1iT3.js → pickAttrs-CRyMT1Fv.js} +1 -1
  136. package/src/assets/web-panel/assets/{placementArrow-CkGBcy1Z.js → placementArrow-DZ_CX0Pt.js} +1 -1
  137. package/src/assets/web-panel/assets/{responsiveObserve-D3WvTlLO.js → responsiveObserve-wruHk-h5.js} +1 -1
  138. package/src/assets/web-panel/assets/{slide-BEE2ftge.js → slide-BGgx8q67.js} +1 -1
  139. package/src/assets/web-panel/assets/{statusUtils-CsfBpxiG.js → statusUtils-Do5M7gKm.js} +1 -1
  140. package/src/assets/web-panel/assets/{styleChecker-xPrIiJPI.js → styleChecker-CRa-GZpX.js} +1 -1
  141. package/src/assets/web-panel/assets/{useFlexGapSupport-C5Yd-SCR.js → useFlexGapSupport-BxPcq6pj.js} +1 -1
  142. package/src/assets/web-panel/assets/{useFs-D_MDS8HI.js → useFs-v5O2ZcJm.js} +1 -1
  143. package/src/assets/web-panel/assets/{usePersonalDataHub-BqJh-usA.js → usePersonalDataHub--z2FU0Px.js} +1 -1
  144. package/src/assets/web-panel/assets/{vnode-chm_p-gz.js → vnode-1emidVKd.js} +1 -1
  145. package/src/assets/web-panel/assets/{zoom-3-YDNz0Z.js → zoom-CcJaRyHs.js} +1 -1
  146. package/src/assets/web-panel/index.html +1 -1
  147. package/src/commands/a2a.js +19 -4
  148. package/src/commands/activitypub.js +20 -3
  149. package/src/commands/agent.js +27 -5
  150. package/src/commands/audit.js +40 -24
  151. package/src/commands/codeintel.js +68 -0
  152. package/src/commands/collab.js +15 -2
  153. package/src/commands/compliance.js +5 -0
  154. package/src/commands/config.js +4 -1
  155. package/src/commands/dao.js +86 -14
  156. package/src/commands/dev.js +2 -0
  157. package/src/commands/did.js +7 -1
  158. package/src/commands/dlp.js +23 -1
  159. package/src/commands/economy.js +29 -3
  160. package/src/commands/eval.js +7 -0
  161. package/src/commands/evomap.js +26 -0
  162. package/src/commands/governance.js +17 -3
  163. package/src/commands/hardening.js +18 -0
  164. package/src/commands/incentive.js +5 -0
  165. package/src/commands/init.js +46 -2
  166. package/src/commands/kg.js +4 -0
  167. package/src/commands/loop.js +6 -1
  168. package/src/commands/lowcode.js +15 -2
  169. package/src/commands/marketplace.js +40 -6
  170. package/src/commands/matrix.js +20 -1
  171. package/src/commands/memory.js +4 -1
  172. package/src/commands/mtc.js +7 -1
  173. package/src/commands/nostr.js +31 -4
  174. package/src/commands/note.js +7 -4
  175. package/src/commands/plugin.js +125 -5
  176. package/src/commands/pqc.js +5 -0
  177. package/src/commands/reputation.js +10 -1
  178. package/src/commands/scim.js +6 -0
  179. package/src/commands/session.js +32 -10
  180. package/src/commands/siem.js +11 -0
  181. package/src/commands/sla.js +18 -3
  182. package/src/commands/social.js +38 -5
  183. package/src/commands/sso.js +10 -2
  184. package/src/commands/stress.js +23 -4
  185. package/src/commands/team.js +9 -2
  186. package/src/commands/tech.js +2 -0
  187. package/src/commands/tenant.js +10 -1
  188. package/src/commands/terraform.js +6 -0
  189. package/src/commands/update.js +1 -1
  190. package/src/commands/zkp.js +20 -0
  191. package/src/gateways/ws/message-dispatcher.js +5 -2
  192. package/src/gateways/ws/remote-session-protocol.js +103 -42
  193. package/src/harness/jsonl-session-store.js +12 -5
  194. package/src/harness/plugin-manager.js +16 -4
  195. package/src/harness/remote-command-ledger.js +46 -15
  196. package/src/harness/worktree-isolator.js +16 -6
  197. package/src/lib/__tests__/logger.test.js +5 -2
  198. package/src/lib/a2a-protocol.js +25 -1
  199. package/src/lib/activitypub-bridge.js +61 -0
  200. package/src/lib/agent-core.js +2 -0
  201. package/src/lib/agent-economy.js +262 -29
  202. package/src/lib/agent-network.js +7 -1
  203. package/src/lib/agent-team/team-runner.js +25 -9
  204. package/src/lib/agent-team/team-worktree.js +36 -4
  205. package/src/lib/async-hook-supervisor.cjs +102 -16
  206. package/src/lib/audit-logger.js +7 -6
  207. package/src/lib/autonomous-developer.js +60 -0
  208. package/src/lib/chat-core.js +17 -4
  209. package/src/lib/collaboration-governance.js +56 -0
  210. package/src/lib/community-governance.js +68 -0
  211. package/src/lib/compliance-manager.js +63 -0
  212. package/src/lib/cross-chain.js +5 -0
  213. package/src/lib/dao-governance.js +151 -2
  214. package/src/lib/did-manager.js +23 -10
  215. package/src/lib/dlp-engine.js +70 -0
  216. package/src/lib/eval/runner.js +89 -1
  217. package/src/lib/eval/tasks.js +170 -0
  218. package/src/lib/eval/trend.js +16 -1
  219. package/src/lib/evolution-system.js +92 -0
  220. package/src/lib/evomap-federation.js +55 -0
  221. package/src/lib/evomap-governance.js +94 -0
  222. package/src/lib/fatal-handler.js +17 -1
  223. package/src/lib/hardening-manager.js +73 -0
  224. package/src/lib/hierarchical-memory.js +14 -8
  225. package/src/lib/knowledge-exporter.js +8 -2
  226. package/src/lib/knowledge-graph.js +79 -0
  227. package/src/lib/llm-providers.js +23 -14
  228. package/src/lib/logger.js +4 -1
  229. package/src/lib/lsp/__tests__/benchmark.test.js +88 -0
  230. package/src/lib/lsp/__tests__/lsp-client.test.js +11 -0
  231. package/src/lib/lsp/__tests__/lsp-manager.test.js +69 -0
  232. package/src/lib/lsp/benchmark.js +257 -0
  233. package/src/lib/lsp/lsp-client.js +30 -9
  234. package/src/lib/lsp/lsp-manager.js +54 -2
  235. package/src/lib/matrix-bridge.js +84 -0
  236. package/src/lib/memory-manager.js +5 -3
  237. package/src/lib/nostr-bridge.js +53 -0
  238. package/src/lib/permission-engine.js +22 -4
  239. package/src/lib/plugin-runtime/__tests__/remote-source.test.js +256 -0
  240. package/src/lib/plugin-runtime/install.js +9 -1
  241. package/src/lib/plugin-runtime/policy.js +9 -1
  242. package/src/lib/plugin-runtime/remote-source.js +240 -0
  243. package/src/lib/pqc-manager.js +64 -0
  244. package/src/lib/reputation-optimizer.js +101 -0
  245. package/src/lib/sandbox-egress-proxy.js +159 -59
  246. package/src/lib/sandbox-fs-policy.js +112 -0
  247. package/src/lib/sandbox-network-policy.js +18 -1
  248. package/src/lib/sandbox-v2.js +14 -14
  249. package/src/lib/scim-manager.js +36 -0
  250. package/src/lib/session-manager.js +5 -2
  251. package/src/lib/settings-hooks.cjs +1 -0
  252. package/src/lib/siem-exporter.js +45 -0
  253. package/src/lib/skill-loader.js +20 -2
  254. package/src/lib/skill-marketplace.js +83 -0
  255. package/src/lib/sla-manager.js +88 -0
  256. package/src/lib/social-manager.js +74 -0
  257. package/src/lib/stress-tester.js +65 -0
  258. package/src/lib/tech-learning-engine.js +75 -0
  259. package/src/lib/tenant-saas.js +107 -0
  260. package/src/lib/terraform-manager.js +67 -0
  261. package/src/lib/token-incentive.js +180 -29
  262. package/src/lib/wallet-manager.js +81 -35
  263. package/src/lib/zkp-engine.js +87 -0
  264. package/src/repl/agent-repl.js +17 -2
  265. package/src/runtime/__tests__/auto-pin.test.js +104 -0
  266. package/src/runtime/agent-core.js +241 -68
  267. package/src/runtime/auto-pin.js +117 -0
  268. package/src/runtime/headless-runner.js +35 -0
  269. package/src/assets/web-panel/assets/OrderTableRenderer-CRIFE2Tj.js +0 -1
  270. package/src/assets/web-panel/assets/Projects-CGcNIs_g.js +0 -1
  271. package/src/assets/web-panel/assets/devWarning-DxwmsL4j.js +0 -1
  272. package/src/assets/web-panel/assets/index-Cg2ldRfU.js +0 -1
  273. package/src/assets/web-panel/assets/index-Dwzo-dtJ.js +0 -1
@@ -9,6 +9,7 @@ import { logger } from "../lib/logger.js";
9
9
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
10
10
  import {
11
11
  ensureDLPTables,
12
+ loadFromDb as loadDlpFromDb,
12
13
  scanContent,
13
14
  listIncidents,
14
15
  resolveIncident,
@@ -54,6 +55,7 @@ export function registerDlpCommand(program) {
54
55
  }
55
56
  const db = ctx.db.getDatabase();
56
57
  ensureDLPTables(db);
58
+ loadDlpFromDb(db);
57
59
 
58
60
  const result = scanContent(db, content, options.channel, options.user);
59
61
  if (options.json) {
@@ -94,6 +96,7 @@ export function registerDlpCommand(program) {
94
96
  }
95
97
  const db = ctx.db.getDatabase();
96
98
  ensureDLPTables(db);
99
+ loadDlpFromDb(db);
97
100
 
98
101
  const incidents = listIncidents({
99
102
  channel: options.channel,
@@ -135,6 +138,7 @@ export function registerDlpCommand(program) {
135
138
  }
136
139
  const db = ctx.db.getDatabase();
137
140
  ensureDLPTables(db);
141
+ loadDlpFromDb(db);
138
142
 
139
143
  const result = resolveIncident(db, incidentId, options.resolution);
140
144
  logger.success(
@@ -162,6 +166,7 @@ export function registerDlpCommand(program) {
162
166
  }
163
167
  const db = ctx.db.getDatabase();
164
168
  ensureDLPTables(db);
169
+ loadDlpFromDb(db);
165
170
 
166
171
  const stats = getDLPStats();
167
172
  if (options.json) {
@@ -206,6 +211,7 @@ export function registerDlpCommand(program) {
206
211
  }
207
212
  const db = ctx.db.getDatabase();
208
213
  ensureDLPTables(db);
214
+ loadDlpFromDb(db);
209
215
 
210
216
  const patterns = options.patterns
211
217
  ? options.patterns.split(",").map((s) => s.trim())
@@ -247,6 +253,7 @@ export function registerDlpCommand(program) {
247
253
  }
248
254
  const db = ctx.db.getDatabase();
249
255
  ensureDLPTables(db);
256
+ loadDlpFromDb(db);
250
257
 
251
258
  const policies = listDLPPolicies();
252
259
  if (options.json) {
@@ -280,6 +287,7 @@ export function registerDlpCommand(program) {
280
287
  }
281
288
  const db = ctx.db.getDatabase();
282
289
  ensureDLPTables(db);
290
+ loadDlpFromDb(db);
283
291
 
284
292
  deletePolicy(db, policyId);
285
293
  logger.success(`Policy ${chalk.cyan(policyId.slice(0, 8))} deleted`);
@@ -346,6 +354,7 @@ export function registerDlpCommand(program) {
346
354
  }
347
355
  const db = ctx.db.getDatabase();
348
356
  ensureDLPTables(db);
357
+ loadDlpFromDb(db);
349
358
 
350
359
  const result = createPolicyV2(db, {
351
360
  name,
@@ -392,6 +401,7 @@ export function registerDlpCommand(program) {
392
401
  }
393
402
  const db = ctx.db.getDatabase();
394
403
  ensureDLPTables(db);
404
+ loadDlpFromDb(db);
395
405
 
396
406
  console.log(JSON.stringify(getPolicyV2(policyId), null, 2));
397
407
 
@@ -414,6 +424,7 @@ export function registerDlpCommand(program) {
414
424
  }
415
425
  const db = ctx.db.getDatabase();
416
426
  ensureDLPTables(db);
427
+ loadDlpFromDb(db);
417
428
 
418
429
  console.log(
419
430
  JSON.stringify(listActivePoliciesForChannel(channel), null, 2),
@@ -450,6 +461,7 @@ export function registerDlpCommand(program) {
450
461
  }
451
462
  const db = ctx.db.getDatabase();
452
463
  ensureDLPTables(db);
464
+ loadDlpFromDb(db);
453
465
 
454
466
  const installed = installBuiltinPolicies(
455
467
  db,
@@ -481,6 +493,7 @@ export function registerDlpCommand(program) {
481
493
  }
482
494
  const db = ctx.db.getDatabase();
483
495
  ensureDLPTables(db);
496
+ loadDlpFromDb(db);
484
497
 
485
498
  let metadata = {};
486
499
  try {
@@ -528,6 +541,7 @@ export function registerDlpCommand(program) {
528
541
  }
529
542
  const db = ctx.db.getDatabase();
530
543
  ensureDLPTables(db);
544
+ loadDlpFromDb(db);
531
545
 
532
546
  const filter = {};
533
547
  if (options.channel) filter.channel = options.channel;
@@ -538,7 +552,12 @@ export function registerDlpCommand(program) {
538
552
  if (options.policy) filter.policyId = options.policy;
539
553
  if (options.from) filter.fromDate = options.from;
540
554
  if (options.to) filter.toDate = options.to;
541
- filter.limit = numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 });
555
+ filter.limit = numericOption(options.limit, {
556
+ name: "--limit",
557
+ integer: true,
558
+ min: 1,
559
+ fallback: 50,
560
+ });
542
561
  console.log(JSON.stringify(listIncidentsV2(filter), null, 2));
543
562
 
544
563
  await shutdown();
@@ -560,6 +579,7 @@ export function registerDlpCommand(program) {
560
579
  }
561
580
  const db = ctx.db.getDatabase();
562
581
  ensureDLPTables(db);
582
+ loadDlpFromDb(db);
563
583
 
564
584
  console.log(JSON.stringify(getIncidentV2(incidentId), null, 2));
565
585
 
@@ -584,6 +604,7 @@ export function registerDlpCommand(program) {
584
604
  }
585
605
  const db = ctx.db.getDatabase();
586
606
  ensureDLPTables(db);
607
+ loadDlpFromDb(db);
587
608
 
588
609
  console.log(JSON.stringify(getDLPStatsV2(), null, 2));
589
610
 
@@ -606,6 +627,7 @@ export function registerDlpCommand(program) {
606
627
  }
607
628
  const db = ctx.db.getDatabase();
608
629
  ensureDLPTables(db);
630
+ loadDlpFromDb(db);
609
631
 
610
632
  console.log(
611
633
  JSON.stringify({ highestSeverity: getHighestUnresolvedSeverity() }),
@@ -11,6 +11,7 @@ import { parseJsonOption } from "../lib/parse-json-option.js";
11
11
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
12
12
  import {
13
13
  ensureEconomyTables,
14
+ loadFromDb as loadEconomyFromDb,
14
15
  priceService,
15
16
  getServicePrice,
16
17
  pay,
@@ -69,6 +70,7 @@ export function registerEconomyCommand(program) {
69
70
  }
70
71
  const db = ctx.db.getDatabase();
71
72
  ensureEconomyTables(db);
73
+ loadEconomyFromDb(db);
72
74
 
73
75
  const result = priceService(db, serviceId, parseFloat(price), {});
74
76
  logger.success(
@@ -96,6 +98,7 @@ export function registerEconomyCommand(program) {
96
98
  }
97
99
  const db = ctx.db.getDatabase();
98
100
  ensureEconomyTables(db);
101
+ loadEconomyFromDb(db);
99
102
 
100
103
  const result = pay(
101
104
  db,
@@ -132,6 +135,7 @@ export function registerEconomyCommand(program) {
132
135
  }
133
136
  const db = ctx.db.getDatabase();
134
137
  ensureEconomyTables(db);
138
+ loadEconomyFromDb(db);
135
139
 
136
140
  const bal = getBalance(agentId);
137
141
  if (options.json) {
@@ -167,8 +171,14 @@ export function registerEconomyCommand(program) {
167
171
  }
168
172
  const db = ctx.db.getDatabase();
169
173
  ensureEconomyTables(db);
174
+ loadEconomyFromDb(db);
170
175
 
171
- const ch = openChannel(db, partyA, partyB, numericOption(options.deposit, { name: "--deposit", min: 0 }));
176
+ const ch = openChannel(
177
+ db,
178
+ partyA,
179
+ partyB,
180
+ numericOption(options.deposit, { name: "--deposit", min: 0 }),
181
+ );
172
182
  logger.success("Channel opened");
173
183
  logger.log(` ${chalk.bold("ID:")} ${chalk.cyan(ch.id)}`);
174
184
  logger.log(` ${chalk.bold("Party A:")} ${ch.partyA} (${ch.balanceA})`);
@@ -193,6 +203,7 @@ export function registerEconomyCommand(program) {
193
203
  }
194
204
  const db = ctx.db.getDatabase();
195
205
  ensureEconomyTables(db);
206
+ loadEconomyFromDb(db);
196
207
 
197
208
  const ch = closeChannel(db, channelId);
198
209
  logger.success("Channel closed and settled");
@@ -221,6 +232,7 @@ export function registerEconomyCommand(program) {
221
232
  }
222
233
  const db = ctx.db.getDatabase();
223
234
  ensureEconomyTables(db);
235
+ loadEconomyFromDb(db);
224
236
 
225
237
  const listing = listResource(
226
238
  db,
@@ -258,6 +270,7 @@ export function registerEconomyCommand(program) {
258
270
  }
259
271
  const db = ctx.db.getDatabase();
260
272
  ensureEconomyTables(db);
273
+ loadEconomyFromDb(db);
261
274
 
262
275
  const filter = options.type ? { type: options.type } : undefined;
263
276
  const listings = getMarketListings(filter);
@@ -296,8 +309,14 @@ export function registerEconomyCommand(program) {
296
309
  }
297
310
  const db = ctx.db.getDatabase();
298
311
  ensureEconomyTables(db);
312
+ loadEconomyFromDb(db);
299
313
 
300
- const result = tradeResource(listingId, buyer, parseFloat(quantity));
314
+ const result = tradeResource(
315
+ db,
316
+ listingId,
317
+ buyer,
318
+ parseFloat(quantity),
319
+ );
301
320
  logger.success("Trade complete");
302
321
  logger.log(` ${chalk.bold("Cost:")} ${result.cost}`);
303
322
  logger.log(` ${chalk.bold("Quantity:")} ${result.quantity}`);
@@ -326,6 +345,7 @@ export function registerEconomyCommand(program) {
326
345
  }
327
346
  const db = ctx.db.getDatabase();
328
347
  ensureEconomyTables(db);
348
+ loadEconomyFromDb(db);
329
349
 
330
350
  const metadata = parseJsonOption(options.metadata, "--metadata", {});
331
351
  const nftObj = mintNFT(db, owner, type, metadata);
@@ -354,6 +374,7 @@ export function registerEconomyCommand(program) {
354
374
  }
355
375
  const db = ctx.db.getDatabase();
356
376
  ensureEconomyTables(db);
377
+ loadEconomyFromDb(db);
357
378
 
358
379
  const ids = agentIds.split(",").map((s) => s.trim());
359
380
  const results = distributeRevenue(db, parseFloat(pool), ids);
@@ -386,6 +407,7 @@ export function registerEconomyCommand(program) {
386
407
  }
387
408
  const db = ctx.db.getDatabase();
388
409
  ensureEconomyTables(db);
410
+ loadEconomyFromDb(db);
389
411
 
390
412
  const c = recordContribution(db, agentId, type, parseFloat(value), "");
391
413
  logger.success("Contribution recorded");
@@ -504,7 +526,11 @@ export function registerEconomyCommand(program) {
504
526
  .argument("<to>", "To agent ID")
505
527
  .argument("<service-id>", "Service ID")
506
528
  .option("--tokens <n>", "Token count (for per_token)", intArg("--tokens"))
507
- .option("--minutes <n>", "Minute count (for per_minute)", floatArg("--minutes"))
529
+ .option(
530
+ "--minutes <n>",
531
+ "Minute count (for per_minute)",
532
+ floatArg("--minutes"),
533
+ )
508
534
  .option("--calls <n>", "Call count (for per_call)", intArg("--calls"))
509
535
  .option("--json", "Output as JSON")
510
536
  .action(async (from, to, serviceId, options) => {
@@ -218,6 +218,7 @@ export function registerEvalCommand(program, { logger } = {}) {
218
218
  passed: summary.passed,
219
219
  total: summary.total,
220
220
  passRate: summary.passRate,
221
+ unrelatedChangeRate: summary.unrelatedChangeRate,
221
222
  results: (summary.results || []).map((r) => ({
222
223
  id: r.id,
223
224
  pass: r.pass,
@@ -237,6 +238,12 @@ export function registerEvalCommand(program, { logger } = {}) {
237
238
  (log.log || console.log)(
238
239
  `\nEval: ${summary.passed}/${summary.total} passed (${pct}%) in ${summary.ms}ms`,
239
240
  );
241
+ if (typeof summary.unrelatedChangeRate === "number") {
242
+ const upct = (summary.unrelatedChangeRate * 100).toFixed(1);
243
+ (log.log || console.log)(
244
+ `Unrelated-change rate: ${upct}% (${summary.tasksWithUnrelatedChanges} task(s) edited files outside their expected surface)`,
245
+ );
246
+ }
240
247
  if (summary.telemetry) {
241
248
  (log.log || console.log)("\n" + formatTelemetry(summary.telemetry));
242
249
  }
@@ -11,6 +11,7 @@ import { EvoMapClient } from "../lib/evomap-client.js";
11
11
  import { EvoMapManager } from "../lib/evomap-manager.js";
12
12
  import {
13
13
  ensureEvoMapFederationTables,
14
+ loadFromDb as loadFedFromDb,
14
15
  listFederatedHubs,
15
16
  addFederatedHub,
16
17
  syncGenes,
@@ -28,6 +29,7 @@ import {
28
29
  } from "../lib/evomap-federation.js";
29
30
  import {
30
31
  ensureEvoMapGovernanceTables,
32
+ loadFromDb as loadGovFromDb,
31
33
  registerOwnership,
32
34
  traceOwnership,
33
35
  createGovernanceProposal,
@@ -221,6 +223,7 @@ export function registerEvoMapCommand(program) {
221
223
  }
222
224
  const db = ctx.db.getDatabase();
223
225
  ensureEvoMapFederationTables(db);
226
+ loadFedFromDb(db);
224
227
 
225
228
  const hubs = listFederatedHubs(db, {
226
229
  status: options.status,
@@ -261,6 +264,7 @@ export function registerEvoMapCommand(program) {
261
264
  }
262
265
  const db = ctx.db.getDatabase();
263
266
  ensureEvoMapFederationTables(db);
267
+ loadFedFromDb(db);
264
268
 
265
269
  const hub = addFederatedHub(db, url, options.name, options.region);
266
270
  logger.success("Hub added");
@@ -288,6 +292,7 @@ export function registerEvoMapCommand(program) {
288
292
  }
289
293
  const db = ctx.db.getDatabase();
290
294
  ensureEvoMapFederationTables(db);
295
+ loadFedFromDb(db);
291
296
 
292
297
  const geneIds = options.geneIds
293
298
  ? options.geneIds.split(",").map((s) => s.trim())
@@ -317,6 +322,7 @@ export function registerEvoMapCommand(program) {
317
322
  }
318
323
  const db = ctx.db.getDatabase();
319
324
  ensureEvoMapFederationTables(db);
325
+ loadFedFromDb(db);
320
326
 
321
327
  const report = getPressureReport();
322
328
  if (options.json) {
@@ -354,6 +360,7 @@ export function registerEvoMapCommand(program) {
354
360
  }
355
361
  const db = ctx.db.getDatabase();
356
362
  ensureEvoMapFederationTables(db);
363
+ loadFedFromDb(db);
357
364
 
358
365
  const entry = recombineGenes(db, geneId1, geneId2);
359
366
  logger.success("Genes recombined");
@@ -389,6 +396,7 @@ export function registerEvoMapCommand(program) {
389
396
  }
390
397
  const db = ctx.db.getDatabase();
391
398
  ensureEvoMapFederationTables(db);
399
+ loadFedFromDb(db);
392
400
 
393
401
  const entries = getLineage(geneId);
394
402
  if (options.json) {
@@ -428,6 +436,7 @@ export function registerEvoMapCommand(program) {
428
436
  }
429
437
  const db = ctx.db.getDatabase();
430
438
  ensureEvoMapGovernanceTables(db);
439
+ loadGovFromDb(db);
431
440
 
432
441
  const result = registerOwnership(db, geneId, ownerDid);
433
442
  logger.success("Ownership registered");
@@ -455,6 +464,7 @@ export function registerEvoMapCommand(program) {
455
464
  }
456
465
  const db = ctx.db.getDatabase();
457
466
  ensureEvoMapGovernanceTables(db);
467
+ loadGovFromDb(db);
458
468
 
459
469
  const result = traceOwnership(geneId);
460
470
  if (options.json) {
@@ -490,6 +500,7 @@ export function registerEvoMapCommand(program) {
490
500
  }
491
501
  const db = ctx.db.getDatabase();
492
502
  ensureEvoMapGovernanceTables(db);
503
+ loadGovFromDb(db);
493
504
 
494
505
  const result = createGovernanceProposal(
495
506
  db,
@@ -522,6 +533,7 @@ export function registerEvoMapCommand(program) {
522
533
  }
523
534
  const db = ctx.db.getDatabase();
524
535
  ensureEvoMapGovernanceTables(db);
536
+ loadGovFromDb(db);
525
537
 
526
538
  const result = voteOnGovernanceProposal(
527
539
  db,
@@ -555,6 +567,7 @@ export function registerEvoMapCommand(program) {
555
567
  }
556
568
  const db = ctx.db.getDatabase();
557
569
  ensureEvoMapGovernanceTables(db);
570
+ loadGovFromDb(db);
558
571
 
559
572
  const result = getGovernanceDashboard();
560
573
  if (options.json) {
@@ -626,6 +639,7 @@ export function registerEvoMapCommand(program) {
626
639
  }
627
640
  const db = ctx.db.getDatabase();
628
641
  ensureEvoMapFederationTables(db);
642
+ loadFedFromDb(db);
629
643
  console.log(JSON.stringify(setHubStatus(db, hubId, status), null, 2));
630
644
  await shutdown();
631
645
  } catch (err) {
@@ -650,6 +664,7 @@ export function registerEvoMapCommand(program) {
650
664
  }
651
665
  const db = ctx.db.getDatabase();
652
666
  ensureEvoMapFederationTables(db);
667
+ loadFedFromDb(db);
653
668
  const hubs = listHubsV2(db, {
654
669
  status: options.status,
655
670
  region: options.region,
@@ -676,6 +691,7 @@ export function registerEvoMapCommand(program) {
676
691
  }
677
692
  const db = ctx.db.getDatabase();
678
693
  ensureEvoMapFederationTables(db);
694
+ loadFedFromDb(db);
679
695
  console.log(JSON.stringify(buildFederationContext(), null, 2));
680
696
  await shutdown();
681
697
  } catch (err) {
@@ -696,6 +712,7 @@ export function registerEvoMapCommand(program) {
696
712
  }
697
713
  const db = ctx.db.getDatabase();
698
714
  ensureEvoMapFederationTables(db);
715
+ loadFedFromDb(db);
699
716
  console.log(JSON.stringify(getFederationStatsV2(), null, 2));
700
717
  await shutdown();
701
718
  } catch (err) {
@@ -748,6 +765,7 @@ export function registerEvoMapCommand(program) {
748
765
  }
749
766
  const db = ctx.db.getDatabase();
750
767
  ensureEvoMapGovernanceTables(db);
768
+ loadGovFromDb(db);
751
769
  const p = createGovernanceProposalV2(db, {
752
770
  title: options.title,
753
771
  description: options.description,
@@ -781,6 +799,7 @@ export function registerEvoMapCommand(program) {
781
799
  }
782
800
  const db = ctx.db.getDatabase();
783
801
  ensureEvoMapGovernanceTables(db);
802
+ loadGovFromDb(db);
784
803
  const r = castVoteV2(db, {
785
804
  proposalId,
786
805
  voterDid: options.voter,
@@ -807,6 +826,7 @@ export function registerEvoMapCommand(program) {
807
826
  }
808
827
  const db = ctx.db.getDatabase();
809
828
  ensureEvoMapGovernanceTables(db);
829
+ loadGovFromDb(db);
810
830
  console.log(
811
831
  JSON.stringify(setProposalStatus(db, proposalId, status), null, 2),
812
832
  );
@@ -829,6 +849,7 @@ export function registerEvoMapCommand(program) {
829
849
  }
830
850
  const db = ctx.db.getDatabase();
831
851
  ensureEvoMapGovernanceTables(db);
852
+ loadGovFromDb(db);
832
853
  console.log(JSON.stringify(executeProposal(db, proposalId), null, 2));
833
854
  await shutdown();
834
855
  } catch (err) {
@@ -849,6 +870,7 @@ export function registerEvoMapCommand(program) {
849
870
  }
850
871
  const db = ctx.db.getDatabase();
851
872
  ensureEvoMapGovernanceTables(db);
873
+ loadGovFromDb(db);
852
874
  console.log(JSON.stringify(cancelProposal(db, proposalId), null, 2));
853
875
  await shutdown();
854
876
  } catch (err) {
@@ -869,6 +891,7 @@ export function registerEvoMapCommand(program) {
869
891
  }
870
892
  const db = ctx.db.getDatabase();
871
893
  ensureEvoMapGovernanceTables(db);
894
+ loadGovFromDb(db);
872
895
  console.log(JSON.stringify(expireProposalsV2(db), null, 2));
873
896
  await shutdown();
874
897
  } catch (err) {
@@ -892,6 +915,7 @@ export function registerEvoMapCommand(program) {
892
915
  }
893
916
  const db = ctx.db.getDatabase();
894
917
  ensureEvoMapGovernanceTables(db);
918
+ loadGovFromDb(db);
895
919
  console.log(
896
920
  JSON.stringify(
897
921
  listProposalsV2(db, {
@@ -922,6 +946,7 @@ export function registerEvoMapCommand(program) {
922
946
  }
923
947
  const db = ctx.db.getDatabase();
924
948
  ensureEvoMapGovernanceTables(db);
949
+ loadGovFromDb(db);
925
950
  console.log(JSON.stringify(traceContributions(geneId), null, 2));
926
951
  await shutdown();
927
952
  } catch (err) {
@@ -942,6 +967,7 @@ export function registerEvoMapCommand(program) {
942
967
  }
943
968
  const db = ctx.db.getDatabase();
944
969
  ensureEvoMapGovernanceTables(db);
970
+ loadGovFromDb(db);
945
971
  console.log(JSON.stringify(getGovernanceStatsV2(), null, 2));
946
972
  await shutdown();
947
973
  } catch (err) {
@@ -12,6 +12,7 @@ import { parseJsonOption } from "../lib/parse-json-option.js";
12
12
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
13
13
  import {
14
14
  ensureGovernanceTables,
15
+ loadFromDb,
15
16
  listProposalTypes,
16
17
  listProposalStatuses,
17
18
  listImpactLevels,
@@ -68,6 +69,7 @@ function _dbFromCtx(ctx) {
68
69
  }
69
70
  const db = ctx.db.getDatabase();
70
71
  ensureGovernanceTables(db);
72
+ loadFromDb(db);
71
73
  return db;
72
74
  }
73
75
 
@@ -292,7 +294,11 @@ export function registerGovernanceCommand(program) {
292
294
  .command("close <proposal-id>")
293
295
  .description("Close voting — auto-resolves to passed/rejected")
294
296
  .option("-q, --quorum <n>", "Quorum threshold (0-1)", floatArg("--quorum"))
295
- .option("-t, --threshold <n>", "Pass threshold (0-1)", floatArg("--threshold"))
297
+ .option(
298
+ "-t, --threshold <n>",
299
+ "Pass threshold (0-1)",
300
+ floatArg("--threshold"),
301
+ )
296
302
  .option(
297
303
  "-n, --total-voters <n>",
298
304
  "Total eligible voters (for quorum)",
@@ -404,8 +410,16 @@ export function registerGovernanceCommand(program) {
404
410
  .command("tally <proposal-id>")
405
411
  .description("Show vote tally with quorum/threshold check")
406
412
  .option("-q, --quorum <n>", "Quorum threshold (0-1)", floatArg("--quorum"))
407
- .option("-t, --threshold <n>", "Pass threshold (0-1)", floatArg("--threshold"))
408
- .option("-n, --total-voters <n>", "Total eligible voters", intArg("--total-voters"))
413
+ .option(
414
+ "-t, --threshold <n>",
415
+ "Pass threshold (0-1)",
416
+ floatArg("--threshold"),
417
+ )
418
+ .option(
419
+ "-n, --total-voters <n>",
420
+ "Total eligible voters",
421
+ intArg("--total-voters"),
422
+ )
409
423
  .option("--json", "Output as JSON")
410
424
  .action(async (proposalId, options) => {
411
425
  try {
@@ -10,6 +10,7 @@ import { parseJsonOption } from "../lib/parse-json-option.js";
10
10
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
11
11
  import {
12
12
  ensureHardeningTables,
13
+ loadFromDb,
13
14
  collectBaseline,
14
15
  compareBaseline,
15
16
  listBaselines,
@@ -71,6 +72,7 @@ export function registerHardeningCommand(program) {
71
72
  }
72
73
  const db = ctx.db.getDatabase();
73
74
  ensureHardeningTables(db);
75
+ loadFromDb(db);
74
76
 
75
77
  const result = collectBaseline(db, name, options.version);
76
78
  logger.success("Baseline collected");
@@ -99,6 +101,7 @@ export function registerHardeningCommand(program) {
99
101
  }
100
102
  const db = ctx.db.getDatabase();
101
103
  ensureHardeningTables(db);
104
+ loadFromDb(db);
102
105
 
103
106
  const result = compareBaseline(baselineId, options.current);
104
107
  if (options.json) {
@@ -134,6 +137,7 @@ export function registerHardeningCommand(program) {
134
137
  }
135
138
  const db = ctx.db.getDatabase();
136
139
  ensureHardeningTables(db);
140
+ loadFromDb(db);
137
141
 
138
142
  const baselines = listBaselines();
139
143
  if (options.json) {
@@ -171,6 +175,7 @@ export function registerHardeningCommand(program) {
171
175
  }
172
176
  const db = ctx.db.getDatabase();
173
177
  ensureHardeningTables(db);
178
+ loadFromDb(db);
174
179
 
175
180
  const result = runAudit(db, name);
176
181
  logger.success(`Audit complete: score ${result.score}%`);
@@ -204,6 +209,7 @@ export function registerHardeningCommand(program) {
204
209
  }
205
210
  const db = ctx.db.getDatabase();
206
211
  ensureHardeningTables(db);
212
+ loadFromDb(db);
207
213
 
208
214
  const reports = getAuditReports();
209
215
  if (options.json) {
@@ -247,6 +253,7 @@ export function registerHardeningCommand(program) {
247
253
  }
248
254
  const db = ctx.db.getDatabase();
249
255
  ensureHardeningTables(db);
256
+ loadFromDb(db);
250
257
 
251
258
  const requiredKeys = options.required
252
259
  ? options.required
@@ -305,6 +312,7 @@ export function registerHardeningCommand(program) {
305
312
  }
306
313
  const db = ctx.db.getDatabase();
307
314
  ensureHardeningTables(db);
315
+ loadFromDb(db);
308
316
 
309
317
  const result = deployCheck();
310
318
  if (options.json) {
@@ -345,6 +353,7 @@ export function registerHardeningCommand(program) {
345
353
  }
346
354
  const db = ctx.db.getDatabase();
347
355
  ensureHardeningTables(db);
356
+ loadFromDb(db);
348
357
 
349
358
  const report = getAuditReport(auditId);
350
359
  if (options.json) {
@@ -520,6 +529,7 @@ export function registerHardeningCommand(program) {
520
529
  try {
521
530
  const { db } = await bootstrap();
522
531
  ensureHardeningTables(db);
532
+ loadFromDb(db);
523
533
  const metadata = parseJsonOption(opts.metadata, "--metadata");
524
534
  const r = registerAuditV2(db, {
525
535
  name,
@@ -544,6 +554,7 @@ export function registerHardeningCommand(program) {
544
554
  try {
545
555
  const { db } = await bootstrap();
546
556
  ensureHardeningTables(db);
557
+ loadFromDb(db);
547
558
  const r = startAudit(db, auditId);
548
559
  if (opts.json) console.log(JSON.stringify(r, null, 2));
549
560
  else console.log(`${auditId} → ${r.status}`);
@@ -565,6 +576,7 @@ export function registerHardeningCommand(program) {
565
576
  try {
566
577
  const { db } = await bootstrap();
567
578
  ensureHardeningTables(db);
579
+ loadFromDb(db);
568
580
  const warningThreshold = opts.warningThreshold
569
581
  ? Number(opts.warningThreshold)
570
582
  : undefined;
@@ -592,6 +604,7 @@ export function registerHardeningCommand(program) {
592
604
  try {
593
605
  const { db } = await bootstrap();
594
606
  ensureHardeningTables(db);
607
+ loadFromDb(db);
595
608
  const patch = {};
596
609
  if (opts.errorMessage !== undefined)
597
610
  patch.errorMessage = opts.errorMessage;
@@ -626,6 +639,7 @@ export function registerHardeningCommand(program) {
626
639
  try {
627
640
  const { db } = await bootstrap();
628
641
  ensureHardeningTables(db);
642
+ loadFromDb(db);
629
643
  const r = autoTimeoutAudits(db);
630
644
  if (opts.json) console.log(JSON.stringify(r, null, 2));
631
645
  else console.log(`Timed out ${r.length} audit(s)`);
@@ -646,6 +660,7 @@ export function registerHardeningCommand(program) {
646
660
  try {
647
661
  const { db } = await bootstrap();
648
662
  ensureHardeningTables(db);
663
+ loadFromDb(db);
649
664
  const metadata = parseJsonOption(opts.metadata, "--metadata");
650
665
  const r = createBaselineV2(db, {
651
666
  name,
@@ -669,6 +684,7 @@ export function registerHardeningCommand(program) {
669
684
  try {
670
685
  const { db } = await bootstrap();
671
686
  ensureHardeningTables(db);
687
+ loadFromDb(db);
672
688
  const r = activateBaseline(db, baselineId);
673
689
  if (opts.json) console.log(JSON.stringify(r, null, 2));
674
690
  else console.log(`${baselineId} → ${r.status}`);
@@ -689,6 +705,7 @@ export function registerHardeningCommand(program) {
689
705
  try {
690
706
  const { db } = await bootstrap();
691
707
  ensureHardeningTables(db);
708
+ loadFromDb(db);
692
709
  const patch = {};
693
710
  if (opts.reason !== undefined) patch.reason = opts.reason;
694
711
  if (opts.metadata !== undefined)
@@ -722,6 +739,7 @@ export function registerHardeningCommand(program) {
722
739
  try {
723
740
  const { db } = await bootstrap();
724
741
  ensureHardeningTables(db);
742
+ loadFromDb(db);
725
743
  const r = autoArchiveStaleBaselines(db);
726
744
  if (opts.json) console.log(JSON.stringify(r, null, 2));
727
745
  else console.log(`Archived ${r.length} baseline(s)`);
@@ -10,6 +10,7 @@ import { parseJsonOption } from "../lib/parse-json-option.js";
10
10
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
11
11
  import {
12
12
  ensureTokenTables,
13
+ loadFromDb as loadIncentiveFromDb,
13
14
  listContributionTypes,
14
15
  listTxTypes,
15
16
  getBalance,
@@ -57,6 +58,10 @@ function _dbFromCtx(ctx) {
57
58
  }
58
59
  const db = ctx.db.getDatabase();
59
60
  ensureTokenTables(db);
61
+ // Rehydrate the ledger Maps from the token_* tables — without this every read
62
+ // is Map-only-empty in the fresh CLI process, and worse, _ensureAccount would
63
+ // clobber the persisted balance back to 0 via INSERT OR REPLACE.
64
+ loadIncentiveFromDb(db);
60
65
  return db;
61
66
  }
62
67