chainlesschain 0.162.149 → 0.162.151

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 (285) hide show
  1. package/README.md +1 -1
  2. package/package.json +3 -2
  3. package/src/assets/web-panel/assets/{AIOps-BJif14yR.js → AIOps-DuEOzebi.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-CXek6gJY.js → ActionButton-C6GiJa5H.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-BgQhdAJi.js → Analytics-BBIiL_pO.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-DTYl5NtR.js → AppLayout-CuI2gZRy.js} +3 -3
  7. package/src/assets/web-panel/assets/{Audit-BzATQAeR.js → Audit-CbUjfr-K.js} +1 -1
  8. package/src/assets/web-panel/assets/{Backup-BzdPEQhL.js → Backup-CsSW9ljf.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-BM0KVh8E.js → BaseInput-kM3rLe7F.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-D7fHXHkz.js → Chat-kfE51YN3.js} +4 -4
  11. package/src/assets/web-panel/assets/{ChatBubbleRenderer-Wm34RR-b.js → ChatBubbleRenderer-Bg2FTW6A.js} +1 -1
  12. package/src/assets/web-panel/assets/{Checkbox-CAiSQ9vO.js → Checkbox-jYb1uj-M.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-Df40CrEe.js → Codegen-X9XiD5Lj.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-DIT2fNFU.js → Col-BfbHu1xI.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-CSTIbW2k.js → Community-c4oJMFS-.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-DtqXZZUi.js → Compact-BFmnZpH7.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compliance-CUtzw6o7.js → Compliance-s9shVHBS.js} +1 -1
  18. package/src/assets/web-panel/assets/{Cowork-CezmlnmU.js → Cowork-C5da--TC.js} +2 -2
  19. package/src/assets/web-panel/assets/{Cron-P4BITarg.js → Cron-9kNbyNE4.js} +2 -2
  20. package/src/assets/web-panel/assets/{Crosschain-BRRiYwvq.js → Crosschain-C1k3NJD4.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID-L5ijB9i4.js → DID-DkheEvNK.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-CFxro4ob.js → Dashboard-C3FuSGmJ.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-BmAFCQ71.js → Dropdown-CAV6FMFD.js} +1 -1
  24. package/src/assets/web-panel/assets/{EmailListRenderer-DJBCEuon.js → EmailListRenderer-Cc-Ulc4l.js} +1 -1
  25. package/src/assets/web-panel/assets/{FamilyGuardDashboard-z4oLq6eT.js → FamilyGuardDashboard-8CitHEtv.js} +1 -1
  26. package/src/assets/web-panel/assets/{Federation-DsVCpHMF.js → Federation-DFSZ5KDt.js} +1 -1
  27. package/src/assets/web-panel/assets/{FormItemContext-DP3bP5th.js → FormItemContext-CEWCtnG2.js} +1 -1
  28. package/src/assets/web-panel/assets/{GenericCardRenderer-BAXP2Gc6.js → GenericCardRenderer-CwRzNzmX.js} +1 -1
  29. package/src/assets/web-panel/assets/{Git-I3g_bAw9.js → Git-0rgDM7cJ.js} +2 -2
  30. package/src/assets/web-panel/assets/{Governance-jHS5-ioS.js → Governance-CfBKtK9F.js} +1 -1
  31. package/src/assets/web-panel/assets/{Inference-CPL7sfx9.js → Inference-CzcUVvud.js} +1 -1
  32. package/src/assets/web-panel/assets/{KnowledgeGraph-Jf236h4C.js → KnowledgeGraph-Dwc4YL4A.js} +1 -1
  33. package/src/assets/web-panel/assets/{Logs-Cm2tcSKg.js → Logs-DgFPwR2F.js} +2 -2
  34. package/src/assets/web-panel/assets/{Marketplace-CZK82rhi.js → Marketplace-DnpPTbGU.js} +1 -1
  35. package/src/assets/web-panel/assets/{McpTools-CZCeji7a.js → McpTools-DRxxINyW.js} +4 -4
  36. package/src/assets/web-panel/assets/{Memory-3l2KVS9k.js → Memory-OhmW_6Z3.js} +2 -2
  37. package/src/assets/web-panel/assets/{MobileBridge-VYdpoLh6.js → MobileBridge-DkTW-RK5.js} +1 -1
  38. package/src/assets/web-panel/assets/{MobileProjects-CiB9cmm1.js → MobileProjects-DpCGV_lI.js} +1 -1
  39. package/src/assets/web-panel/assets/{Mtc-wCFZbBuL.js → Mtc--vmkL0AS.js} +2 -2
  40. package/src/assets/web-panel/assets/{MtcAudit-1a3THIyG.js → MtcAudit-DGoFWjD4.js} +4 -4
  41. package/src/assets/web-panel/assets/{Multisig-DMzLB2hG.js → Multisig-B4kWgq95.js} +3 -3
  42. package/src/assets/web-panel/assets/{NLProgramming-D9wZbf6l.js → NLProgramming-YQwvommE.js} +1 -1
  43. package/src/assets/web-panel/assets/{Notes-hrFe2ZM-.js → Notes-CgjtUADJ.js} +3 -3
  44. package/src/assets/web-panel/assets/{NotificationSettings-CHGX5Jwm.js → NotificationSettings-6JDrpBG5.js} +1 -1
  45. package/src/assets/web-panel/assets/OrderTableRenderer-PM6IlxjO.js +1 -0
  46. package/src/assets/web-panel/assets/{Organization-By7FkhtY.js → Organization-8McOT_OF.js} +4 -4
  47. package/src/assets/web-panel/assets/{Overflow--khGSzJn.js → Overflow-DAZpSCGc.js} +1 -1
  48. package/src/assets/web-panel/assets/{P2P-CAG9dH35.js → P2P-B7l2ZWLy.js} +2 -2
  49. package/src/assets/web-panel/assets/{PdhVaultBrowser-B3SQZmK9.js → PdhVaultBrowser-W1Ud-NAL.js} +3 -3
  50. package/src/assets/web-panel/assets/{Permissions-D35ec6JA.js → Permissions-Czm_w9u_.js} +4 -4
  51. package/src/assets/web-panel/assets/{PersonalDataHub-CxBF7hW_.js → PersonalDataHub-B4F0_ZVM.js} +2 -2
  52. package/src/assets/web-panel/assets/{Pipeline-s6EtOO1s.js → Pipeline-B37aFiWv.js} +1 -1
  53. package/src/assets/web-panel/assets/{Privacy-BbJYmWmO.js → Privacy-94KBnRrD.js} +1 -1
  54. package/src/assets/web-panel/assets/{ProjectInit-VGQq1jMT.js → ProjectInit-B5h8_dlh.js} +2 -2
  55. package/src/assets/web-panel/assets/{ProjectSettings-B1ew3Teh.js → ProjectSettings-lmeI3Lpm.js} +2 -2
  56. package/src/assets/web-panel/assets/Projects-D5AYOasl.js +1 -0
  57. package/src/assets/web-panel/assets/{Providers-mrO47FIK.js → Providers-B3cNWwJg.js} +1 -1
  58. package/src/assets/web-panel/assets/{QrScannerModal-IJF2mHyw.js → QrScannerModal-CHRvOw1R.js} +1 -1
  59. package/src/assets/web-panel/assets/{QuickAsk-CU0wN_Z0.js → QuickAsk-D1JMgFEd.js} +1 -1
  60. package/src/assets/web-panel/assets/{Recommend-DhN37R6G.js → Recommend-EYWGR79p.js} +1 -1
  61. package/src/assets/web-panel/assets/{RemoteSession-D_xOX_hu.js → RemoteSession-BAMC2pJt.js} +2 -2
  62. package/src/assets/web-panel/assets/{Reputation-D_Ssv7uH.js → Reputation-X2Hk1XG_.js} +1 -1
  63. package/src/assets/web-panel/assets/{Row-Kx5dKxX7.js → Row-Eq98LRtU.js} +1 -1
  64. package/src/assets/web-panel/assets/{RssFeed-BlGwqZkY.js → RssFeed-i76s6z_o.js} +2 -2
  65. package/src/assets/web-panel/assets/{Search-hLFQzxpb.js → Search-D_Es7CAI.js} +1 -1
  66. package/src/assets/web-panel/assets/{Security-DMlvsVt4.js → Security-kayD2e94.js} +3 -3
  67. package/src/assets/web-panel/assets/{Services-Bd0Qsj2m.js → Services-Ctsm6ul8.js} +2 -2
  68. package/src/assets/web-panel/assets/{Skeleton-DFclq9X3.js → Skeleton-CRNYlfdf.js} +1 -1
  69. package/src/assets/web-panel/assets/{Skills-BNtln2qY.js → Skills-DkZYpF4-.js} +1 -1
  70. package/src/assets/web-panel/assets/{Sla-Dch5H19G.js → Sla-DXkoBcOP.js} +1 -1
  71. package/src/assets/web-panel/assets/{SpeechSettings-2UfQcU1g.js → SpeechSettings-DXi_GI1d.js} +1 -1
  72. package/src/assets/web-panel/assets/{SyncSettings-CD9YQr4i.js → SyncSettings-rNKpfomn.js} +2 -2
  73. package/src/assets/web-panel/assets/{Tasks-BNu-7MzI.js → Tasks-XF4uPtG-.js} +1 -1
  74. package/src/assets/web-panel/assets/{Templates-D1n9CaIR.js → Templates-i0Hzfeyu.js} +1 -1
  75. package/src/assets/web-panel/assets/{Tenant-DenL3iBW.js → Tenant-sMpHAi27.js} +1 -1
  76. package/src/assets/web-panel/assets/Terminal-BoZvaYAl.js +3 -0
  77. package/src/assets/web-panel/assets/{TimelineRenderer-D87IfukO.js → TimelineRenderer-yuC6K7Rf.js} +1 -1
  78. package/src/assets/web-panel/assets/{Tokens-BkiZc8E3.js → Tokens-B8O8i0s6.js} +1 -1
  79. package/src/assets/web-panel/assets/{Trigger-BNRSytGN.js → Trigger-Bv6yrlCr.js} +1 -1
  80. package/src/assets/web-panel/assets/{Trust-Bwbd4X2m.js → Trust-C4mW95Ev.js} +1 -1
  81. package/src/assets/web-panel/assets/{UkeySign-B8O2bs0o.js → UkeySign-DV6yKaHn.js} +1 -1
  82. package/src/assets/web-panel/assets/{VideoEditing-C2fL8zmH.js → VideoEditing-UI479-sD.js} +1 -1
  83. package/src/assets/web-panel/assets/{Wallet-BORYDdE1.js → Wallet-M5oV9EVP.js} +4 -4
  84. package/src/assets/web-panel/assets/{WebAuthn-C0V5S2FM.js → WebAuthn-DDyDHPDR.js} +4 -4
  85. package/src/assets/web-panel/assets/{WorkflowEditor-2dR0fcHL.js → WorkflowEditor-RoBv4rqk.js} +1 -1
  86. package/src/assets/web-panel/assets/{chat-BmuAFAn8.js → chat-Cw1mE5LS.js} +1 -1
  87. package/src/assets/web-panel/assets/{colors-CN3smMcK.js → colors-BFP62Gwf.js} +1 -1
  88. package/src/assets/web-panel/assets/{compact-item-DCnxb4kW.js → compact-item-17HL6pyC.js} +1 -1
  89. package/src/assets/web-panel/assets/{createContext-vlR43pHn.js → createContext-D55X4fZX.js} +1 -1
  90. package/src/assets/web-panel/assets/devWarning-CqbHYuRc.js +1 -0
  91. package/src/assets/web-panel/assets/{hasIn-D04tHYFd.js → hasIn-D3E5mNsP.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-DbVsQBOH.js → index--44J50mc.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-TslMTwNy.js → index-ASPYTzMK.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-CTOCnIQ7.js → index-BC6zxOlU.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-ljuBiQW9.js → index-BEa1RW4c.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-jzR7Ujuw.js → index-BQmZg5si.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-BudvKQfG.js → index-BY_xZ2jy.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-CP9m9Ggr.js → index-BgN5G5vF.js} +3 -3
  99. package/src/assets/web-panel/assets/{index-Cr-A0FYJ.js → index-BnGpft-Z.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-D5LZVZ0L.js → index-Bq83UBDr.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-ToUh2b1-.js → index-Bzpp2z2S.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-DbADHwhr.js → index-CFYGn88j.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-ClhAHDK3.js → index-CGyTos4p.js} +1 -1
  104. package/src/assets/web-panel/assets/index-CKBI1U5K.js +1 -0
  105. package/src/assets/web-panel/assets/{index-C-6NO5il.js → index-CLEzsZ8A.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-D8vwp4qp.js → index-CR9rNUvi.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-_FIkN3jd.js → index-CW6LLoJO.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-D65_XseV.js → index-C_MfcrLf.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-CnXebZLL.js → index-Cdvk2_2q.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-D_n8_vfI.js → index-CjCwi7we.js} +1 -1
  111. package/src/assets/web-panel/assets/index-CkLp6DTO.js +1 -0
  112. package/src/assets/web-panel/assets/{index-DDwLgQY9.js → index-CvCFKojj.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-430S68MN.js → index-D4LHSde4.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-BXRg8GFQ.js → index-DCLu84x-.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DTtRscUa.js → index-DD_qGBrt.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-BasvsWDM.js → index-DIRvdwBX.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-BeGDEXFs.js → index-DOjA8bvj.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-CsAsCPJ6.js → index-Da27u6j0.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-D28DeAAB.js → index-DkBVYlE4.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-CngCC8hC.js → index-DtAnPBWP.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-B78xL3s2.js → index-DzG7mkgW.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-DIpY0qM5.js → index-H9_X1Cg_.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-C5Sxb1sE.js → index-ITeEHb8L.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-BTPEZTk1.js → index-KtLJXn4s.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-hpvvtAZ3.js → index-RYZgFIwo.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-HhNjnCfe.js → index-gAVxDiTZ.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-DTWg-18U.js → index-paVubXzn.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-BqhASEL4.js → index-tUH_6bdJ.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-DYAtmqiv.js → index-tVRPgYGr.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-0DnaZGkC.js → index-uSsiwgZ2.js} +1 -1
  131. package/src/assets/web-panel/assets/{initDefaultProps-C3wUb4je.js → initDefaultProps-Ckp7xVZS.js} +1 -1
  132. package/src/assets/web-panel/assets/{motion-D-jYFUNA.js → motion-DUZgCpn6.js} +1 -1
  133. package/src/assets/web-panel/assets/{move-tqb8nwJ2.js → move-B2rttglH.js} +1 -1
  134. package/src/assets/web-panel/assets/{mtc-parser-DSOjMJMz.js → mtc-parser-BYWcLTuN.js} +1 -1
  135. package/src/assets/web-panel/assets/{omit-CJ7VimIW.js → omit-DhHqKeFx.js} +1 -1
  136. package/src/assets/web-panel/assets/{pickAttrs-qXiG1iT3.js → pickAttrs-ANpJaWMO.js} +1 -1
  137. package/src/assets/web-panel/assets/{placementArrow-CkGBcy1Z.js → placementArrow-CfZWe7CA.js} +1 -1
  138. package/src/assets/web-panel/assets/{responsiveObserve-D3WvTlLO.js → responsiveObserve-D7Xz2y-R.js} +1 -1
  139. package/src/assets/web-panel/assets/{slide-BEE2ftge.js → slide-DekqCBY9.js} +1 -1
  140. package/src/assets/web-panel/assets/{statusUtils-CsfBpxiG.js → statusUtils-BET6XU7h.js} +1 -1
  141. package/src/assets/web-panel/assets/{styleChecker-xPrIiJPI.js → styleChecker-qHmJjV62.js} +1 -1
  142. package/src/assets/web-panel/assets/{useFlexGapSupport-C5Yd-SCR.js → useFlexGapSupport-BoMCTNyu.js} +1 -1
  143. package/src/assets/web-panel/assets/{useFs-D_MDS8HI.js → useFs-TdW-NgFC.js} +1 -1
  144. package/src/assets/web-panel/assets/{usePersonalDataHub-BqJh-usA.js → usePersonalDataHub-Dyox7wCu.js} +1 -1
  145. package/src/assets/web-panel/assets/{vnode-chm_p-gz.js → vnode-XUn5S8CP.js} +1 -1
  146. package/src/assets/web-panel/assets/{zoom-3-YDNz0Z.js → zoom-Ls77i8hn.js} +1 -1
  147. package/src/assets/web-panel/index.html +1 -1
  148. package/src/command-manifest.json +8 -1
  149. package/src/commands/a2a.js +19 -4
  150. package/src/commands/activitypub.js +20 -3
  151. package/src/commands/agent.js +27 -5
  152. package/src/commands/audit.js +40 -24
  153. package/src/commands/changelog.js +148 -0
  154. package/src/commands/codeintel.js +68 -0
  155. package/src/commands/collab.js +15 -2
  156. package/src/commands/compliance.js +5 -0
  157. package/src/commands/config.js +4 -1
  158. package/src/commands/dao.js +86 -14
  159. package/src/commands/dev.js +2 -0
  160. package/src/commands/did.js +7 -1
  161. package/src/commands/dlp.js +23 -1
  162. package/src/commands/economy.js +29 -3
  163. package/src/commands/eval.js +7 -0
  164. package/src/commands/evomap.js +26 -0
  165. package/src/commands/governance.js +17 -3
  166. package/src/commands/hardening.js +18 -0
  167. package/src/commands/incentive.js +5 -0
  168. package/src/commands/init.js +46 -2
  169. package/src/commands/kg.js +4 -0
  170. package/src/commands/loop.js +6 -1
  171. package/src/commands/lowcode.js +15 -2
  172. package/src/commands/marketplace.js +40 -6
  173. package/src/commands/matrix.js +20 -1
  174. package/src/commands/memory.js +4 -1
  175. package/src/commands/mtc.js +7 -1
  176. package/src/commands/nostr.js +31 -4
  177. package/src/commands/note.js +7 -4
  178. package/src/commands/plugin.js +125 -5
  179. package/src/commands/pqc.js +5 -0
  180. package/src/commands/reputation.js +10 -1
  181. package/src/commands/scim.js +6 -0
  182. package/src/commands/session.js +32 -10
  183. package/src/commands/siem.js +11 -0
  184. package/src/commands/sla.js +18 -3
  185. package/src/commands/social.js +38 -5
  186. package/src/commands/sso.js +10 -2
  187. package/src/commands/stress.js +23 -4
  188. package/src/commands/team.js +9 -2
  189. package/src/commands/tech.js +2 -0
  190. package/src/commands/tenant.js +10 -1
  191. package/src/commands/terraform.js +6 -0
  192. package/src/commands/update.js +1 -1
  193. package/src/commands/zkp.js +20 -0
  194. package/src/data/changelog.json +189 -0
  195. package/src/gateways/ws/message-dispatcher.js +5 -2
  196. package/src/gateways/ws/remote-session-protocol.js +110 -42
  197. package/src/harness/jsonl-session-store.js +12 -5
  198. package/src/harness/plugin-manager.js +16 -4
  199. package/src/harness/remote-command-ledger.js +46 -15
  200. package/src/harness/worktree-isolator.js +16 -6
  201. package/src/index.js +2 -0
  202. package/src/lib/__tests__/logger.test.js +5 -2
  203. package/src/lib/a2a-protocol.js +25 -1
  204. package/src/lib/activitypub-bridge.js +61 -0
  205. package/src/lib/agent-core.js +2 -0
  206. package/src/lib/agent-economy.js +262 -29
  207. package/src/lib/agent-network.js +7 -1
  208. package/src/lib/agent-team/team-runner.js +25 -9
  209. package/src/lib/agent-team/team-worktree.js +36 -4
  210. package/src/lib/async-hook-supervisor.cjs +102 -16
  211. package/src/lib/audit-logger.js +7 -6
  212. package/src/lib/autonomous-developer.js +60 -0
  213. package/src/lib/changelog.js +252 -0
  214. package/src/lib/chat-core.js +17 -4
  215. package/src/lib/collaboration-governance.js +56 -0
  216. package/src/lib/community-governance.js +68 -0
  217. package/src/lib/compliance-manager.js +63 -0
  218. package/src/lib/cross-chain.js +5 -0
  219. package/src/lib/dao-governance.js +151 -2
  220. package/src/lib/did-manager.js +23 -10
  221. package/src/lib/dlp-engine.js +70 -0
  222. package/src/lib/eval/runner.js +89 -1
  223. package/src/lib/eval/tasks.js +170 -0
  224. package/src/lib/eval/trend.js +16 -1
  225. package/src/lib/evolution-system.js +92 -0
  226. package/src/lib/evomap-federation.js +55 -0
  227. package/src/lib/evomap-governance.js +94 -0
  228. package/src/lib/fatal-handler.js +17 -1
  229. package/src/lib/hardening-manager.js +73 -0
  230. package/src/lib/hierarchical-memory.js +14 -8
  231. package/src/lib/knowledge-exporter.js +8 -2
  232. package/src/lib/knowledge-graph.js +79 -0
  233. package/src/lib/llm-providers.js +23 -14
  234. package/src/lib/logger.js +4 -1
  235. package/src/lib/lsp/__tests__/benchmark.test.js +88 -0
  236. package/src/lib/lsp/__tests__/lsp-client.test.js +11 -0
  237. package/src/lib/lsp/__tests__/lsp-manager.test.js +69 -0
  238. package/src/lib/lsp/benchmark.js +257 -0
  239. package/src/lib/lsp/lsp-client.js +30 -9
  240. package/src/lib/lsp/lsp-manager.js +54 -2
  241. package/src/lib/lsp/lsp-server-registry.js +15 -4
  242. package/src/lib/matrix-bridge.js +84 -0
  243. package/src/lib/memory-manager.js +5 -3
  244. package/src/lib/nostr-bridge.js +53 -0
  245. package/src/lib/permission-engine.js +22 -4
  246. package/src/lib/plugin-runtime/__tests__/remote-source.test.js +256 -0
  247. package/src/lib/plugin-runtime/hooks.js +20 -4
  248. package/src/lib/plugin-runtime/install.js +9 -1
  249. package/src/lib/plugin-runtime/monitors.js +20 -4
  250. package/src/lib/plugin-runtime/policy.js +9 -1
  251. package/src/lib/plugin-runtime/remote-source.js +240 -0
  252. package/src/lib/plugin-runtime/signature.js +16 -0
  253. package/src/lib/pqc-manager.js +64 -0
  254. package/src/lib/reputation-optimizer.js +101 -0
  255. package/src/lib/sandbox-egress-proxy.js +195 -59
  256. package/src/lib/sandbox-fs-policy.js +112 -0
  257. package/src/lib/sandbox-network-policy.js +44 -5
  258. package/src/lib/sandbox-v2.js +14 -14
  259. package/src/lib/scim-manager.js +36 -0
  260. package/src/lib/session-manager.js +5 -2
  261. package/src/lib/settings-hooks.cjs +1 -0
  262. package/src/lib/siem-exporter.js +45 -0
  263. package/src/lib/skill-loader.js +20 -2
  264. package/src/lib/skill-marketplace.js +83 -0
  265. package/src/lib/sla-manager.js +88 -0
  266. package/src/lib/social-manager.js +74 -0
  267. package/src/lib/stress-tester.js +65 -0
  268. package/src/lib/tech-learning-engine.js +75 -0
  269. package/src/lib/telemetry/span-recorder.js +12 -1
  270. package/src/lib/tenant-saas.js +107 -0
  271. package/src/lib/terraform-manager.js +67 -0
  272. package/src/lib/token-incentive.js +180 -29
  273. package/src/lib/wallet-manager.js +81 -35
  274. package/src/lib/zkp-engine.js +87 -0
  275. package/src/repl/agent-repl.js +17 -2
  276. package/src/runtime/__tests__/auto-pin.test.js +104 -0
  277. package/src/runtime/agent-core.js +241 -68
  278. package/src/runtime/auto-pin.js +117 -0
  279. package/src/runtime/headless-runner.js +35 -0
  280. package/src/assets/web-panel/assets/OrderTableRenderer-CRIFE2Tj.js +0 -1
  281. package/src/assets/web-panel/assets/Projects-CGcNIs_g.js +0 -1
  282. package/src/assets/web-panel/assets/Terminal-ZzU0Io1Y.js +0 -3
  283. package/src/assets/web-panel/assets/devWarning-DxwmsL4j.js +0 -1
  284. package/src/assets/web-panel/assets/index-Cg2ldRfU.js +0 -1
  285. package/src/assets/web-panel/assets/index-Dwzo-dtJ.js +0 -1
@@ -0,0 +1,148 @@
1
+ import chalk from "chalk";
2
+ import { VERSION } from "../constants.js";
3
+ import { loadChangelog } from "../lib/changelog.js";
4
+ import logger from "../lib/logger.js";
5
+
6
+ /**
7
+ * Render a release's markdown-ish body into readable terminal text.
8
+ * Light-touch: **bold** → bold, `code` → cyan, keep bullets, drop blockquote
9
+ * markers, collapse blank runs.
10
+ */
11
+ function renderBody(body, indent = " ") {
12
+ const out = [];
13
+ let blank = 0;
14
+ for (const raw of body.split("\n")) {
15
+ let line = raw.replace(/^>\s?/, ""); // blockquote marker
16
+ line = line.replace(/\*\*(.+?)\*\*/g, (_, t) => chalk.bold(t));
17
+ line = line.replace(/`([^`]+)`/g, (_, t) => chalk.cyan(t));
18
+ if (line.trim() === "") {
19
+ blank++;
20
+ if (blank > 1) continue;
21
+ out.push("");
22
+ continue;
23
+ }
24
+ blank = 0;
25
+ out.push(indent + line);
26
+ }
27
+ return out.join("\n").replace(/\n+$/, "");
28
+ }
29
+
30
+ function renderRelease(rel, { isCurrent }) {
31
+ const lines = [];
32
+ const ver = chalk.bold.green(rel.cliVersion);
33
+ const meta = [
34
+ rel.productVersion ? `product ${rel.productVersion}` : null,
35
+ rel.date || null,
36
+ ]
37
+ .filter(Boolean)
38
+ .join(", ");
39
+ const current = isCurrent ? chalk.yellow(" ← installed") : "";
40
+ lines.push(`${ver} ${chalk.dim("(" + meta + ")")}${current}`);
41
+ if (rel.title) lines.push(" " + chalk.white(rel.title));
42
+ lines.push("");
43
+ for (const s of rel.sections) {
44
+ if (s.heading) lines.push(" " + chalk.bold.cyan("▸ " + s.heading));
45
+ if (s.body) lines.push(renderBody(s.body, s.heading ? " " : " "));
46
+ lines.push("");
47
+ }
48
+ return lines.join("\n").replace(/\n+$/, "");
49
+ }
50
+
51
+ /**
52
+ * Find releases matching a user-supplied version query. Matches the CLI npm
53
+ * version (0.162.150 / v0.162.150) or the product version (v5.0.3.134 / 134).
54
+ */
55
+ function matchVersion(releases, query) {
56
+ const q = query.replace(/^v/i, "").trim();
57
+ return releases.filter((r) => {
58
+ const cli = r.cliVersion || "";
59
+ const prod = (r.productVersion || "").replace(/^v/i, "");
60
+ return (
61
+ cli === q ||
62
+ cli.endsWith("." + q) ||
63
+ prod === q ||
64
+ prod.endsWith("." + q) ||
65
+ (r.cliVersions || []).includes(q)
66
+ );
67
+ });
68
+ }
69
+
70
+ export function registerChangelogCommand(program) {
71
+ program
72
+ .command("changelog")
73
+ .alias("whatsnew")
74
+ .description("Show cc CLI version update notes (npm package changelog)")
75
+ .argument(
76
+ "[version]",
77
+ "Show notes for a specific version (e.g. 0.162.150 or v5.0.3.134)",
78
+ )
79
+ .option("--all", "Show the full CLI release history")
80
+ .option("-n, --limit <n>", "Show the N most recent releases", "5")
81
+ .option("--json", "Output as JSON")
82
+ .action((version, options) => {
83
+ const data = loadChangelog();
84
+ const releases = data.releases || [];
85
+
86
+ if (releases.length === 0) {
87
+ if (options.json) {
88
+ logger.log(JSON.stringify({ releases: [] }, null, 2));
89
+ } else {
90
+ logger.warn("No changelog data is bundled with this build.");
91
+ }
92
+ return;
93
+ }
94
+
95
+ let selected = releases;
96
+ if (version) {
97
+ selected = matchVersion(releases, version);
98
+ if (selected.length === 0) {
99
+ if (options.json) {
100
+ logger.log(JSON.stringify({ releases: [] }, null, 2));
101
+ } else {
102
+ logger.warn(`No CLI release notes found for "${version}".`);
103
+ logger.info(
104
+ `Available CLI versions: ${releases
105
+ .map((r) => r.cliVersion)
106
+ .join(", ")}`,
107
+ );
108
+ }
109
+ return;
110
+ }
111
+ } else if (!options.all) {
112
+ const limit = Math.max(1, parseInt(options.limit, 10) || 5);
113
+ selected = releases.slice(0, limit);
114
+ }
115
+
116
+ if (options.json) {
117
+ logger.log(JSON.stringify({ ...data, releases: selected }, null, 2));
118
+ return;
119
+ }
120
+
121
+ logger.newline();
122
+ logger.log(
123
+ chalk.bold(
124
+ ` ChainlessChain CLI — update notes ${chalk.dim(`(installed: ${VERSION})`)}`,
125
+ ),
126
+ );
127
+ logger.log(
128
+ chalk.dim(
129
+ ` Showing ${selected.length} of ${releases.length} documented CLI releases.`,
130
+ ),
131
+ );
132
+ logger.newline();
133
+
134
+ for (const rel of selected) {
135
+ logger.log(
136
+ renderRelease(rel, { isCurrent: rel.cliVersion === VERSION }),
137
+ );
138
+ logger.log(chalk.dim(" " + "─".repeat(58)));
139
+ }
140
+
141
+ if (!version && !options.all && releases.length > selected.length) {
142
+ logger.newline();
143
+ logger.info(
144
+ `Run ${chalk.cyan("cc changelog --all")} for the full history, or ${chalk.cyan("cc changelog <version>")} for one release.`,
145
+ );
146
+ }
147
+ });
148
+ }
@@ -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
  })();