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
@@ -450,8 +450,10 @@ export function registerAuditCommand(program) {
450
450
  .option("-r, --risk-level <rl>", "Risk level")
451
451
  .option("-i, --ip-address <ip>", "IP address")
452
452
  .option("-u, --user-agent <ua>", "User agent")
453
- .action((logId, opts) => {
454
- const db = bootstrap();
453
+ .action(async (logId, opts) => {
454
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
455
+ // unawaited Promise and raced teardown against an unresolved init.
456
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
455
457
  try {
456
458
  const details = parseJsonOption(opts.details, "--details");
457
459
  const entry = logEventV2(db, {
@@ -467,7 +469,7 @@ export function registerAuditCommand(program) {
467
469
  });
468
470
  logger.log(JSON.stringify(entry, null, 2));
469
471
  } finally {
470
- shutdown();
472
+ await shutdown();
471
473
  }
472
474
  });
473
475
 
@@ -487,15 +489,17 @@ export function registerAuditCommand(program) {
487
489
  .command("set-log-status-v2 <log-id> <status>")
488
490
  .description("V2: transition log status (active|archived|purged)")
489
491
  .option("-r, --reason <reason>", "Reason")
490
- .action((logId, status, opts) => {
491
- const db = bootstrap();
492
+ .action(async (logId, status, opts) => {
493
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
494
+ // unawaited Promise and raced teardown against an unresolved init.
495
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
492
496
  try {
493
497
  const entry = setLogStatusV2(db, logId, status, {
494
498
  reason: opts.reason,
495
499
  });
496
500
  logger.log(JSON.stringify(entry, null, 2));
497
501
  } finally {
498
- shutdown();
502
+ await shutdown();
499
503
  }
500
504
  });
501
505
 
@@ -510,26 +514,30 @@ export function registerAuditCommand(program) {
510
514
  audit
511
515
  .command("auto-archive-logs")
512
516
  .description("V2: bulk-flip stale ACTIVE logs → ARCHIVED")
513
- .action(() => {
514
- const db = bootstrap();
517
+ .action(async () => {
518
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
519
+ // unawaited Promise and raced teardown against an unresolved init.
520
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
515
521
  try {
516
522
  const archived = autoArchiveLogs(db);
517
523
  logger.log(`Archived ${archived.length} log(s)`);
518
524
  } finally {
519
- shutdown();
525
+ await shutdown();
520
526
  }
521
527
  });
522
528
 
523
529
  audit
524
530
  .command("auto-purge-logs")
525
531
  .description("V2: bulk-flip stale ARCHIVED logs → PURGED")
526
- .action(() => {
527
- const db = bootstrap();
532
+ .action(async () => {
533
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
534
+ // unawaited Promise and raced teardown against an unresolved init.
535
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
528
536
  try {
529
537
  const purged = autoPurgeLogs(db);
530
538
  logger.log(`Purged ${purged.length} log(s)`);
531
539
  } finally {
532
- shutdown();
540
+ await shutdown();
533
541
  }
534
542
  });
535
543
 
@@ -552,8 +560,10 @@ export function registerAuditCommand(program) {
552
560
  )
553
561
  .option("-r, --reason <reason>", "Reason")
554
562
  .option("-m, --metadata <meta>", "Metadata (JSON)")
555
- .action((alertId, status, opts) => {
556
- const db = bootstrap();
563
+ .action(async (alertId, status, opts) => {
564
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
565
+ // unawaited Promise and raced teardown against an unresolved init.
566
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
557
567
  try {
558
568
  const metadata = parseJsonOption(opts.metadata, "--metadata");
559
569
  const entry = setAlertStatusV2(db, alertId, status, {
@@ -562,7 +572,7 @@ export function registerAuditCommand(program) {
562
572
  });
563
573
  logger.log(JSON.stringify(entry, null, 2));
564
574
  } finally {
565
- shutdown();
575
+ await shutdown();
566
576
  }
567
577
  });
568
578
 
@@ -570,13 +580,15 @@ export function registerAuditCommand(program) {
570
580
  .command("acknowledge-alert <alert-id>")
571
581
  .description("V2: shortcut → acknowledged")
572
582
  .option("-r, --reason <reason>", "Reason")
573
- .action((alertId, opts) => {
574
- const db = bootstrap();
583
+ .action(async (alertId, opts) => {
584
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
585
+ // unawaited Promise and raced teardown against an unresolved init.
586
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
575
587
  try {
576
588
  const entry = acknowledgeAlert(db, alertId, opts.reason);
577
589
  logger.log(JSON.stringify(entry, null, 2));
578
590
  } finally {
579
- shutdown();
591
+ await shutdown();
580
592
  }
581
593
  });
582
594
 
@@ -584,13 +596,15 @@ export function registerAuditCommand(program) {
584
596
  .command("resolve-alert <alert-id>")
585
597
  .description("V2: shortcut → resolved")
586
598
  .option("-r, --reason <reason>", "Reason")
587
- .action((alertId, opts) => {
588
- const db = bootstrap();
599
+ .action(async (alertId, opts) => {
600
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
601
+ // unawaited Promise and raced teardown against an unresolved init.
602
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
589
603
  try {
590
604
  const entry = resolveAlert(db, alertId, opts.reason);
591
605
  logger.log(JSON.stringify(entry, null, 2));
592
606
  } finally {
593
- shutdown();
607
+ await shutdown();
594
608
  }
595
609
  });
596
610
 
@@ -598,13 +612,15 @@ export function registerAuditCommand(program) {
598
612
  .command("dismiss-alert <alert-id>")
599
613
  .description("V2: shortcut → dismissed")
600
614
  .option("-r, --reason <reason>", "Reason")
601
- .action((alertId, opts) => {
602
- const db = bootstrap();
615
+ .action(async (alertId, opts) => {
616
+ // await bootstrap() (it's async): the prior sync `bootstrap()` left an
617
+ // unawaited Promise and raced teardown against an unresolved init.
618
+ const db = (await bootstrap({ verbose: program.opts().verbose })).db;
603
619
  try {
604
620
  const entry = dismissAlert(db, alertId, opts.reason);
605
621
  logger.log(JSON.stringify(entry, null, 2));
606
622
  } finally {
607
- shutdown();
623
+ await shutdown();
608
624
  }
609
625
  });
610
626
 
@@ -62,6 +62,11 @@ function fmtLoc(l) {
62
62
  return l.snippet ? `${pos} ${chalk.gray(l.snippet)}` : pos;
63
63
  }
64
64
 
65
+ /** Right-align a millisecond number in a 6-char column for the bench table. */
66
+ function fmtMs(v) {
67
+ return String(v == null ? "-" : v).padStart(6);
68
+ }
69
+
65
70
  export function registerCodeIntelCommand(program) {
66
71
  const ci = program
67
72
  .command("code-intel")
@@ -248,5 +253,68 @@ export function registerCodeIntelCommand(program) {
248
253
  );
249
254
  });
250
255
 
256
+ ci.command("bench <file>")
257
+ .description(
258
+ "Benchmark startup + per-query latency (and server RSS) against a real file",
259
+ )
260
+ .option("--runs <n>", "Timed iterations per operation", "20")
261
+ .option("--warmup <n>", "Untimed warmup iterations per operation", "2")
262
+ .option("--json", "Output as JSON")
263
+ .action(async (file, options) => {
264
+ const { runLatencyBenchmark } = await import("../lib/lsp/benchmark.js");
265
+ const runs = num(options.runs, "runs");
266
+ const warmup = Number.parseInt(options.warmup, 10);
267
+ const report = await runLatencyBenchmark({
268
+ projectRoot: process.cwd(),
269
+ file,
270
+ runs,
271
+ warmup: Number.isFinite(warmup) && warmup >= 0 ? warmup : 2,
272
+ onProgress: options.json
273
+ ? () => {}
274
+ : (m) => process.stderr.write(chalk.gray(` … ${m}\n`)),
275
+ });
276
+ if (!report.available) {
277
+ return reportUnavailable(report);
278
+ }
279
+ if (options.json) {
280
+ console.log(JSON.stringify(report, null, 2));
281
+ return;
282
+ }
283
+ logger.log(chalk.bold(`\nLSP latency — ${chalk.cyan(file)}`));
284
+ logger.log(
285
+ ` cold start (spawn + index + first query): ${chalk.yellow(report.coldStartMs + " ms")}`,
286
+ );
287
+ if (report.server) {
288
+ const rss =
289
+ report.server.rssMb != null ? `${report.server.rssMb} MB` : "n/a";
290
+ logger.log(
291
+ ` server: ${report.server.serverId} (pid ${report.server.pid ?? "?"}), RSS ${chalk.yellow(rss)}`,
292
+ );
293
+ }
294
+ if (report.probe) {
295
+ logger.log(
296
+ chalk.gray(
297
+ ` probe symbol: ${report.probe.name} (${report.probe.kind}) @ ${report.probe.line}:${report.probe.col}`,
298
+ ),
299
+ );
300
+ }
301
+ logger.log(
302
+ chalk.bold(
303
+ `\n operation n min median p95 max (warm, ms)`,
304
+ ),
305
+ );
306
+ for (const [name, s] of Object.entries(report.ops)) {
307
+ if (s.skipped) {
308
+ logger.log(
309
+ ` ${name.padEnd(18)} ${chalk.gray("skipped: " + s.skipped)}`,
310
+ );
311
+ continue;
312
+ }
313
+ logger.log(
314
+ ` ${name.padEnd(18)} ${String(s.n).padStart(3)} ${fmtMs(s.min)} ${fmtMs(s.median)} ${fmtMs(s.p95)} ${fmtMs(s.max)}`,
315
+ );
316
+ }
317
+ });
318
+
251
319
  return ci;
252
320
  }
@@ -12,6 +12,7 @@ import { logger } from "../lib/logger.js";
12
12
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
13
13
  import {
14
14
  ensureGovernanceTables,
15
+ loadFromDb,
15
16
  listDecisionTypes,
16
17
  listConflictStrategies,
17
18
  listQualityMetrics,
@@ -69,12 +70,24 @@ function _dbFromCtx(ctx) {
69
70
  }
70
71
  const db = ctx.db.getDatabase();
71
72
  ensureGovernanceTables(db);
73
+ loadFromDb(db);
72
74
  return db;
73
75
  }
74
76
 
75
77
  function _readJsonFile(filePath) {
76
- const raw = fs.readFileSync(filePath, "utf-8");
77
- return JSON.parse(raw);
78
+ let raw;
79
+ try {
80
+ raw = fs.readFileSync(filePath, "utf-8");
81
+ } catch (err) {
82
+ // A user-supplied path — surface which file and why instead of the bare
83
+ // global "error: ENOENT ..." with no context.
84
+ throw new Error(`could not read ${filePath}: ${err.message}`);
85
+ }
86
+ try {
87
+ return JSON.parse(raw);
88
+ } catch (err) {
89
+ throw new Error(`${filePath} is not valid JSON: ${err.message}`);
90
+ }
78
91
  }
79
92
 
80
93
  function _printDecision(d) {
@@ -11,6 +11,7 @@ import { numericOption } from "../lib/cli-numeric.js";
11
11
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
12
12
  import {
13
13
  ensureComplianceTables,
14
+ loadFromDb as loadComplianceFromDb,
14
15
  collectEvidence,
15
16
  generateReport,
16
17
  classifyData,
@@ -200,6 +201,7 @@ export function registerComplianceCommand(program) {
200
201
  }
201
202
  const db = ctx.db.getDatabase();
202
203
  ensureComplianceTables(db);
204
+ loadComplianceFromDb(db);
203
205
 
204
206
  const result = collectEvidence(
205
207
  db,
@@ -247,6 +249,7 @@ export function registerComplianceCommand(program) {
247
249
  }
248
250
  const db = ctx.db.getDatabase();
249
251
  ensureComplianceTables(db);
252
+ loadComplianceFromDb(db);
250
253
 
251
254
  const fmt = options.json ? "json" : options.format;
252
255
  const useDetailed =
@@ -376,6 +379,7 @@ export function registerComplianceCommand(program) {
376
379
  }
377
380
  const db = ctx.db.getDatabase();
378
381
  ensureComplianceTables(db);
382
+ loadComplianceFromDb(db);
379
383
 
380
384
  const result = scanCompliance(db, framework);
381
385
  if (options.json) {
@@ -413,6 +417,7 @@ export function registerComplianceCommand(program) {
413
417
  }
414
418
  const db = ctx.db.getDatabase();
415
419
  ensureComplianceTables(db);
420
+ loadComplianceFromDb(db);
416
421
 
417
422
  const policies = listPolicies(db, { framework: options.framework });
418
423
  if (options.json) {
@@ -111,7 +111,10 @@ export function registerConfigCommand(program) {
111
111
  (process.platform === "win32" ? "notepad" : "vi");
112
112
  const { execSync } = await import("node:child_process");
113
113
  try {
114
- execSync(`${editor} "${configPath}"`, { stdio: "inherit" });
114
+ // Escape any `"` in the path so it can't break out of the quoted arg
115
+ // (editor stays unquoted so `$EDITOR` values with args still work).
116
+ const safePath = configPath.replace(/"/g, '\\"');
117
+ execSync(`${editor} "${safePath}"`, { stdio: "inherit" });
115
118
  } catch (err) {
116
119
  logger.error(`Failed to open editor: ${err.message}`);
117
120
  logger.info(`Config file is at: ${configPath}`);
@@ -11,6 +11,7 @@ import { parseNumberOption } from "../lib/parse-number-option.js";
11
11
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
12
12
  import {
13
13
  ensureDAOv2Tables,
14
+ loadFromDb as loadDaoFromDb,
14
15
  propose,
15
16
  vote,
16
17
  delegate,
@@ -67,6 +68,7 @@ export function registerDaoCommand(program) {
67
68
  }
68
69
  const db = ctx.db.getDatabase();
69
70
  ensureDAOv2Tables(db);
71
+ loadDaoFromDb(db);
70
72
 
71
73
  const result = propose(
72
74
  db,
@@ -106,6 +108,7 @@ export function registerDaoCommand(program) {
106
108
  }
107
109
  const db = ctx.db.getDatabase();
108
110
  ensureDAOv2Tables(db);
111
+ loadDaoFromDb(db);
109
112
 
110
113
  const result = vote(
111
114
  db,
@@ -142,6 +145,7 @@ export function registerDaoCommand(program) {
142
145
  }
143
146
  const db = ctx.db.getDatabase();
144
147
  ensureDAOv2Tables(db);
148
+ loadDaoFromDb(db);
145
149
 
146
150
  const result = delegate(
147
151
  db,
@@ -174,6 +178,7 @@ export function registerDaoCommand(program) {
174
178
  }
175
179
  const db = ctx.db.getDatabase();
176
180
  ensureDAOv2Tables(db);
181
+ loadDaoFromDb(db);
177
182
 
178
183
  const result = execute(db, proposalId);
179
184
  logger.success(`Proposal ${chalk.cyan(result.proposalId)} executed`);
@@ -199,6 +204,7 @@ export function registerDaoCommand(program) {
199
204
  }
200
205
  const db = ctx.db.getDatabase();
201
206
  ensureDAOv2Tables(db);
207
+ loadDaoFromDb(db);
202
208
 
203
209
  const result = getTreasury();
204
210
  if (options.json) {
@@ -236,6 +242,7 @@ export function registerDaoCommand(program) {
236
242
  }
237
243
  const db = ctx.db.getDatabase();
238
244
  ensureDAOv2Tables(db);
245
+ loadDaoFromDb(db);
239
246
 
240
247
  const result = allocate(
241
248
  db,
@@ -269,6 +276,7 @@ export function registerDaoCommand(program) {
269
276
  }
270
277
  const db = ctx.db.getDatabase();
271
278
  ensureDAOv2Tables(db);
279
+ loadDaoFromDb(db);
272
280
 
273
281
  const result = getStats();
274
282
  if (options.json) {
@@ -308,13 +316,26 @@ export function registerDaoCommand(program) {
308
316
  }
309
317
  const db = ctx.db.getDatabase();
310
318
  ensureDAOv2Tables(db);
319
+ loadDaoFromDb(db);
311
320
 
312
321
  const cfg = {};
313
322
  if (options.votingPeriod)
314
- cfg.votingPeriod = numericOption(options.votingPeriod, { name: "--voting-period", integer: true, min: 1 });
315
- if (options.quorum) cfg.quorum = numericOption(options.quorum, { name: "--quorum", min: 0 });
323
+ cfg.votingPeriod = numericOption(options.votingPeriod, {
324
+ name: "--voting-period",
325
+ integer: true,
326
+ min: 1,
327
+ });
328
+ if (options.quorum)
329
+ cfg.quorum = numericOption(options.quorum, {
330
+ name: "--quorum",
331
+ min: 0,
332
+ });
316
333
  if (options.executionDelay)
317
- cfg.executionDelay = numericOption(options.executionDelay, { name: "--execution-delay", integer: true, min: 0 });
334
+ cfg.executionDelay = numericOption(options.executionDelay, {
335
+ name: "--execution-delay",
336
+ integer: true,
337
+ min: 0,
338
+ });
318
339
 
319
340
  const result = configure(cfg);
320
341
  logger.success("Configuration updated");
@@ -380,6 +401,7 @@ export function registerDaoCommand(program) {
380
401
  }
381
402
  const db = ctx.db.getDatabase();
382
403
  ensureDAOv2Tables(db);
404
+ loadDaoFromDb(db);
383
405
 
384
406
  const proposal = createProposalV2(db, {
385
407
  title,
@@ -388,7 +410,11 @@ export function registerDaoCommand(program) {
388
410
  type: options.type,
389
411
  actions: parseJsonOption(options.actions, "--actions"),
390
412
  votingDurationMs: options.votingDuration
391
- ? numericOption(options.votingDuration, { name: "--voting-duration", integer: true, min: 0 })
413
+ ? numericOption(options.votingDuration, {
414
+ name: "--voting-duration",
415
+ integer: true,
416
+ min: 0,
417
+ })
392
418
  : undefined,
393
419
  });
394
420
 
@@ -421,6 +447,7 @@ export function registerDaoCommand(program) {
421
447
  }
422
448
  const db = ctx.db.getDatabase();
423
449
  ensureDAOv2Tables(db);
450
+ loadDaoFromDb(db);
424
451
 
425
452
  const p = activateProposal(db, proposalId);
426
453
  logger.success(`Proposal ${chalk.cyan(proposalId)} → ACTIVE`);
@@ -452,13 +479,20 @@ export function registerDaoCommand(program) {
452
479
  }
453
480
  const db = ctx.db.getDatabase();
454
481
  ensureDAOv2Tables(db);
482
+ loadDaoFromDb(db);
455
483
 
456
484
  const record = castVote(db, {
457
485
  proposalId,
458
486
  voterDid: options.voter,
459
487
  voteType: options.type,
460
- voteCount: numericOption(options.count, { name: "--count", integer: true, min: 1 }),
461
- balance: options.balance ? numericOption(options.balance, { name: "--balance", min: 0 }) : undefined,
488
+ voteCount: numericOption(options.count, {
489
+ name: "--count",
490
+ integer: true,
491
+ min: 1,
492
+ }),
493
+ balance: options.balance
494
+ ? numericOption(options.balance, { name: "--balance", min: 0 })
495
+ : undefined,
462
496
  });
463
497
 
464
498
  logger.success("Vote cast");
@@ -488,6 +522,7 @@ export function registerDaoCommand(program) {
488
522
  }
489
523
  const db = ctx.db.getDatabase();
490
524
  ensureDAOv2Tables(db);
525
+ loadDaoFromDb(db);
491
526
 
492
527
  const d = delegateVotingPower(db, {
493
528
  fromDid,
@@ -522,6 +557,7 @@ export function registerDaoCommand(program) {
522
557
  }
523
558
  const db = ctx.db.getDatabase();
524
559
  ensureDAOv2Tables(db);
560
+ loadDaoFromDb(db);
525
561
 
526
562
  const r = revokeDelegation(db, fromDid);
527
563
  logger.success(`Delegation revoked: ${chalk.cyan(r.id)}`);
@@ -547,6 +583,7 @@ export function registerDaoCommand(program) {
547
583
  }
548
584
  const db = ctx.db.getDatabase();
549
585
  ensureDAOv2Tables(db);
586
+ loadDaoFromDb(db);
550
587
 
551
588
  const list = getActiveDelegations();
552
589
  if (options.json) {
@@ -581,6 +618,7 @@ export function registerDaoCommand(program) {
581
618
  }
582
619
  const db = ctx.db.getDatabase();
583
620
  ensureDAOv2Tables(db);
621
+ loadDaoFromDb(db);
584
622
 
585
623
  const p = queueProposal(db, proposalId);
586
624
  logger.success(`Proposal → QUEUE`);
@@ -606,6 +644,7 @@ export function registerDaoCommand(program) {
606
644
  }
607
645
  const db = ctx.db.getDatabase();
608
646
  ensureDAOv2Tables(db);
647
+ loadDaoFromDb(db);
609
648
 
610
649
  const p = executeProposalV2(db, proposalId);
611
650
  logger.success(`Proposal ${chalk.cyan(proposalId)} → EXECUTE`);
@@ -631,6 +670,7 @@ export function registerDaoCommand(program) {
631
670
  }
632
671
  const db = ctx.db.getDatabase();
633
672
  ensureDAOv2Tables(db);
673
+ loadDaoFromDb(db);
634
674
 
635
675
  const p = cancelProposal(db, proposalId);
636
676
  logger.success(`Proposal → ${p.status}`);
@@ -662,6 +702,7 @@ export function registerDaoCommand(program) {
662
702
  }
663
703
  const db = ctx.db.getDatabase();
664
704
  ensureDAOv2Tables(db);
705
+ loadDaoFromDb(db);
665
706
 
666
707
  const tx = allocateFundsV2(db, {
667
708
  proposalId,
@@ -706,6 +747,7 @@ export function registerDaoCommand(program) {
706
747
  }
707
748
  const db = ctx.db.getDatabase();
708
749
  ensureDAOv2Tables(db);
750
+ loadDaoFromDb(db);
709
751
 
710
752
  const tx = depositToTreasuryV2(db, {
711
753
  amount: parseNumberOption(options.amount, "--amount"),
@@ -737,6 +779,7 @@ export function registerDaoCommand(program) {
737
779
  }
738
780
  const db = ctx.db.getDatabase();
739
781
  ensureDAOv2Tables(db);
782
+ loadDaoFromDb(db);
740
783
 
741
784
  const s = getTreasuryState();
742
785
  if (options.json) {
@@ -778,8 +821,16 @@ export function registerDaoCommand(program) {
778
821
  }
779
822
  const db = ctx.db.getDatabase();
780
823
  ensureDAOv2Tables(db);
781
-
782
- const s = getGovernanceStatsV2(numericOption(options.members, { name: "--members", integer: true, min: 0, fallback: 0 }));
824
+ loadDaoFromDb(db);
825
+
826
+ const s = getGovernanceStatsV2(
827
+ numericOption(options.members, {
828
+ name: "--members",
829
+ integer: true,
830
+ min: 0,
831
+ fallback: 0,
832
+ }),
833
+ );
783
834
  if (options.json) {
784
835
  console.log(JSON.stringify(s, null, 2));
785
836
  } else {
@@ -833,19 +884,40 @@ export function registerDaoCommand(program) {
833
884
  try {
834
885
  const updates = {};
835
886
  if (options.votingDuration)
836
- updates.votingDurationMs = numericOption(options.votingDuration, { name: "--voting-duration", integer: true, min: 0 });
887
+ updates.votingDurationMs = numericOption(options.votingDuration, {
888
+ name: "--voting-duration",
889
+ integer: true,
890
+ min: 0,
891
+ });
837
892
  if (options.quorumPercentage)
838
- updates.quorumPercentage = numericOption(options.quorumPercentage, { name: "--quorum-percentage", min: 0, max: 100 });
893
+ updates.quorumPercentage = numericOption(options.quorumPercentage, {
894
+ name: "--quorum-percentage",
895
+ min: 0,
896
+ max: 100,
897
+ });
839
898
  if (options.timelockMs)
840
- updates.timelockMs = numericOption(options.timelockMs, { name: "--timelock-ms", integer: true, min: 0 });
899
+ updates.timelockMs = numericOption(options.timelockMs, {
900
+ name: "--timelock-ms",
901
+ integer: true,
902
+ min: 0,
903
+ });
841
904
  if (options.quadraticEnabled !== undefined)
842
905
  updates.quadraticEnabled = options.quadraticEnabled === "true";
843
906
  if (options.maxDelegationDepth)
844
- updates.maxDelegationDepth = numericOption(options.maxDelegationDepth, { name: "--max-delegation-depth", integer: true, min: 0 });
907
+ updates.maxDelegationDepth = numericOption(
908
+ options.maxDelegationDepth,
909
+ { name: "--max-delegation-depth", integer: true, min: 0 },
910
+ );
845
911
  if (options.proposalThreshold)
846
- updates.proposalThreshold = numericOption(options.proposalThreshold, { name: "--proposal-threshold", min: 0 });
912
+ updates.proposalThreshold = numericOption(options.proposalThreshold, {
913
+ name: "--proposal-threshold",
914
+ min: 0,
915
+ });
847
916
  if (options.maxSingleAllocation)
848
- updates.maxSingleAllocation = numericOption(options.maxSingleAllocation, { name: "--max-single-allocation", min: 0 });
917
+ updates.maxSingleAllocation = numericOption(
918
+ options.maxSingleAllocation,
919
+ { name: "--max-single-allocation", min: 0 },
920
+ );
849
921
 
850
922
  const cfg = configureV2(updates);
851
923
  if (options.json) {
@@ -9,6 +9,7 @@ import { logger } from "../lib/logger.js";
9
9
  import { bootstrap, shutdown } from "../runtime/bootstrap.js";
10
10
  import {
11
11
  ensureAutonomousDevTables,
12
+ loadFromDb,
12
13
  listAutonomyLevels,
13
14
  listPhases,
14
15
  listRefactoringTypes,
@@ -73,6 +74,7 @@ function _dbFromCtx(ctx) {
73
74
  }
74
75
  const db = ctx.db.getDatabase();
75
76
  ensureAutonomousDevTables(db);
77
+ loadFromDb(db);
76
78
  return db;
77
79
  }
78
80
 
@@ -9,6 +9,7 @@ import { bootstrap, shutdown } from "../runtime/bootstrap.js";
9
9
  import {
10
10
  createIdentity,
11
11
  getIdentity,
12
+ getDefaultIdentity,
12
13
  getAllIdentities,
13
14
  setDefaultIdentity,
14
15
  deleteIdentity,
@@ -247,7 +248,12 @@ export function registerDidCommand(program) {
247
248
  const didStr =
248
249
  options.did ||
249
250
  (() => {
250
- const def = getIdentity(db, "did:chainless:");
251
+ // Must be the is_default identity. getIdentity(prefix) does an
252
+ // unordered LIKE 'did:chainless:%' and returns the first row the
253
+ // planner yields (lexicographically-smallest DID), IGNORING the
254
+ // is_default flag — so `did sign` without --did silently signed with
255
+ // the WRONG key. getDefaultIdentity filters WHERE is_default = 1.
256
+ const def = getDefaultIdentity(db);
251
257
  if (!def) throw new Error("No identities found. Create one first.");
252
258
  return def.did;
253
259
  })();