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.
- package/README.md +1 -1
- package/package.json +3 -2
- package/src/assets/web-panel/assets/{AIOps-BJif14yR.js → AIOps-DuEOzebi.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CXek6gJY.js → ActionButton-C6GiJa5H.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BgQhdAJi.js → Analytics-BBIiL_pO.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-DTYl5NtR.js → AppLayout-CuI2gZRy.js} +3 -3
- package/src/assets/web-panel/assets/{Audit-BzATQAeR.js → Audit-CbUjfr-K.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-BzdPEQhL.js → Backup-CsSW9ljf.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BM0KVh8E.js → BaseInput-kM3rLe7F.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D7fHXHkz.js → Chat-kfE51YN3.js} +4 -4
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-Wm34RR-b.js → ChatBubbleRenderer-Bg2FTW6A.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-CAiSQ9vO.js → Checkbox-jYb1uj-M.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-Df40CrEe.js → Codegen-X9XiD5Lj.js} +1 -1
- package/src/assets/web-panel/assets/{Col-DIT2fNFU.js → Col-BfbHu1xI.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CSTIbW2k.js → Community-c4oJMFS-.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DtqXZZUi.js → Compact-BFmnZpH7.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-CUtzw6o7.js → Compliance-s9shVHBS.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CezmlnmU.js → Cowork-C5da--TC.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-P4BITarg.js → Cron-9kNbyNE4.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BRRiYwvq.js → Crosschain-C1k3NJD4.js} +1 -1
- package/src/assets/web-panel/assets/{DID-L5ijB9i4.js → DID-DkheEvNK.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CFxro4ob.js → Dashboard-C3FuSGmJ.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BmAFCQ71.js → Dropdown-CAV6FMFD.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DJBCEuon.js → EmailListRenderer-Cc-Ulc4l.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-z4oLq6eT.js → FamilyGuardDashboard-8CitHEtv.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DsVCpHMF.js → Federation-DFSZ5KDt.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DP3bP5th.js → FormItemContext-CEWCtnG2.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-BAXP2Gc6.js → GenericCardRenderer-CwRzNzmX.js} +1 -1
- package/src/assets/web-panel/assets/{Git-I3g_bAw9.js → Git-0rgDM7cJ.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-jHS5-ioS.js → Governance-CfBKtK9F.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-CPL7sfx9.js → Inference-CzcUVvud.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-Jf236h4C.js → KnowledgeGraph-Dwc4YL4A.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-Cm2tcSKg.js → Logs-DgFPwR2F.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-CZK82rhi.js → Marketplace-DnpPTbGU.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-CZCeji7a.js → McpTools-DRxxINyW.js} +4 -4
- package/src/assets/web-panel/assets/{Memory-3l2KVS9k.js → Memory-OhmW_6Z3.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-VYdpoLh6.js → MobileBridge-DkTW-RK5.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-CiB9cmm1.js → MobileProjects-DpCGV_lI.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-wCFZbBuL.js → Mtc--vmkL0AS.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-1a3THIyG.js → MtcAudit-DGoFWjD4.js} +4 -4
- package/src/assets/web-panel/assets/{Multisig-DMzLB2hG.js → Multisig-B4kWgq95.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-D9wZbf6l.js → NLProgramming-YQwvommE.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-hrFe2ZM-.js → Notes-CgjtUADJ.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-CHGX5Jwm.js → NotificationSettings-6JDrpBG5.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-PM6IlxjO.js +1 -0
- package/src/assets/web-panel/assets/{Organization-By7FkhtY.js → Organization-8McOT_OF.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow--khGSzJn.js → Overflow-DAZpSCGc.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CAG9dH35.js → P2P-B7l2ZWLy.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-B3SQZmK9.js → PdhVaultBrowser-W1Ud-NAL.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-D35ec6JA.js → Permissions-Czm_w9u_.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-CxBF7hW_.js → PersonalDataHub-B4F0_ZVM.js} +2 -2
- package/src/assets/web-panel/assets/{Pipeline-s6EtOO1s.js → Pipeline-B37aFiWv.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-BbJYmWmO.js → Privacy-94KBnRrD.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-VGQq1jMT.js → ProjectInit-B5h8_dlh.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-B1ew3Teh.js → ProjectSettings-lmeI3Lpm.js} +2 -2
- package/src/assets/web-panel/assets/Projects-D5AYOasl.js +1 -0
- package/src/assets/web-panel/assets/{Providers-mrO47FIK.js → Providers-B3cNWwJg.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-IJF2mHyw.js → QrScannerModal-CHRvOw1R.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CU0wN_Z0.js → QuickAsk-D1JMgFEd.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-DhN37R6G.js → Recommend-EYWGR79p.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-D_xOX_hu.js → RemoteSession-BAMC2pJt.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-D_Ssv7uH.js → Reputation-X2Hk1XG_.js} +1 -1
- package/src/assets/web-panel/assets/{Row-Kx5dKxX7.js → Row-Eq98LRtU.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-BlGwqZkY.js → RssFeed-i76s6z_o.js} +2 -2
- package/src/assets/web-panel/assets/{Search-hLFQzxpb.js → Search-D_Es7CAI.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DMlvsVt4.js → Security-kayD2e94.js} +3 -3
- package/src/assets/web-panel/assets/{Services-Bd0Qsj2m.js → Services-Ctsm6ul8.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-DFclq9X3.js → Skeleton-CRNYlfdf.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BNtln2qY.js → Skills-DkZYpF4-.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-Dch5H19G.js → Sla-DXkoBcOP.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-2UfQcU1g.js → SpeechSettings-DXi_GI1d.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-CD9YQr4i.js → SyncSettings-rNKpfomn.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-BNu-7MzI.js → Tasks-XF4uPtG-.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-D1n9CaIR.js → Templates-i0Hzfeyu.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DenL3iBW.js → Tenant-sMpHAi27.js} +1 -1
- package/src/assets/web-panel/assets/Terminal-BoZvaYAl.js +3 -0
- package/src/assets/web-panel/assets/{TimelineRenderer-D87IfukO.js → TimelineRenderer-yuC6K7Rf.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BkiZc8E3.js → Tokens-B8O8i0s6.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-BNRSytGN.js → Trigger-Bv6yrlCr.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Bwbd4X2m.js → Trust-C4mW95Ev.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-B8O2bs0o.js → UkeySign-DV6yKaHn.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-C2fL8zmH.js → VideoEditing-UI479-sD.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-BORYDdE1.js → Wallet-M5oV9EVP.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-C0V5S2FM.js → WebAuthn-DDyDHPDR.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-2dR0fcHL.js → WorkflowEditor-RoBv4rqk.js} +1 -1
- package/src/assets/web-panel/assets/{chat-BmuAFAn8.js → chat-Cw1mE5LS.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CN3smMcK.js → colors-BFP62Gwf.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DCnxb4kW.js → compact-item-17HL6pyC.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-vlR43pHn.js → createContext-D55X4fZX.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-CqbHYuRc.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-D04tHYFd.js → hasIn-D3E5mNsP.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbVsQBOH.js → index--44J50mc.js} +1 -1
- package/src/assets/web-panel/assets/{index-TslMTwNy.js → index-ASPYTzMK.js} +1 -1
- package/src/assets/web-panel/assets/{index-CTOCnIQ7.js → index-BC6zxOlU.js} +1 -1
- package/src/assets/web-panel/assets/{index-ljuBiQW9.js → index-BEa1RW4c.js} +1 -1
- package/src/assets/web-panel/assets/{index-jzR7Ujuw.js → index-BQmZg5si.js} +1 -1
- package/src/assets/web-panel/assets/{index-BudvKQfG.js → index-BY_xZ2jy.js} +1 -1
- package/src/assets/web-panel/assets/{index-CP9m9Ggr.js → index-BgN5G5vF.js} +3 -3
- package/src/assets/web-panel/assets/{index-Cr-A0FYJ.js → index-BnGpft-Z.js} +1 -1
- package/src/assets/web-panel/assets/{index-D5LZVZ0L.js → index-Bq83UBDr.js} +1 -1
- package/src/assets/web-panel/assets/{index-ToUh2b1-.js → index-Bzpp2z2S.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbADHwhr.js → index-CFYGn88j.js} +1 -1
- package/src/assets/web-panel/assets/{index-ClhAHDK3.js → index-CGyTos4p.js} +1 -1
- package/src/assets/web-panel/assets/index-CKBI1U5K.js +1 -0
- package/src/assets/web-panel/assets/{index-C-6NO5il.js → index-CLEzsZ8A.js} +1 -1
- package/src/assets/web-panel/assets/{index-D8vwp4qp.js → index-CR9rNUvi.js} +1 -1
- package/src/assets/web-panel/assets/{index-_FIkN3jd.js → index-CW6LLoJO.js} +1 -1
- package/src/assets/web-panel/assets/{index-D65_XseV.js → index-C_MfcrLf.js} +1 -1
- package/src/assets/web-panel/assets/{index-CnXebZLL.js → index-Cdvk2_2q.js} +1 -1
- package/src/assets/web-panel/assets/{index-D_n8_vfI.js → index-CjCwi7we.js} +1 -1
- package/src/assets/web-panel/assets/index-CkLp6DTO.js +1 -0
- package/src/assets/web-panel/assets/{index-DDwLgQY9.js → index-CvCFKojj.js} +1 -1
- package/src/assets/web-panel/assets/{index-430S68MN.js → index-D4LHSde4.js} +1 -1
- package/src/assets/web-panel/assets/{index-BXRg8GFQ.js → index-DCLu84x-.js} +1 -1
- package/src/assets/web-panel/assets/{index-DTtRscUa.js → index-DD_qGBrt.js} +1 -1
- package/src/assets/web-panel/assets/{index-BasvsWDM.js → index-DIRvdwBX.js} +1 -1
- package/src/assets/web-panel/assets/{index-BeGDEXFs.js → index-DOjA8bvj.js} +1 -1
- package/src/assets/web-panel/assets/{index-CsAsCPJ6.js → index-Da27u6j0.js} +1 -1
- package/src/assets/web-panel/assets/{index-D28DeAAB.js → index-DkBVYlE4.js} +1 -1
- package/src/assets/web-panel/assets/{index-CngCC8hC.js → index-DtAnPBWP.js} +1 -1
- package/src/assets/web-panel/assets/{index-B78xL3s2.js → index-DzG7mkgW.js} +1 -1
- package/src/assets/web-panel/assets/{index-DIpY0qM5.js → index-H9_X1Cg_.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5Sxb1sE.js → index-ITeEHb8L.js} +1 -1
- package/src/assets/web-panel/assets/{index-BTPEZTk1.js → index-KtLJXn4s.js} +1 -1
- package/src/assets/web-panel/assets/{index-hpvvtAZ3.js → index-RYZgFIwo.js} +1 -1
- package/src/assets/web-panel/assets/{index-HhNjnCfe.js → index-gAVxDiTZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DTWg-18U.js → index-paVubXzn.js} +1 -1
- package/src/assets/web-panel/assets/{index-BqhASEL4.js → index-tUH_6bdJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DYAtmqiv.js → index-tVRPgYGr.js} +1 -1
- package/src/assets/web-panel/assets/{index-0DnaZGkC.js → index-uSsiwgZ2.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-C3wUb4je.js → initDefaultProps-Ckp7xVZS.js} +1 -1
- package/src/assets/web-panel/assets/{motion-D-jYFUNA.js → motion-DUZgCpn6.js} +1 -1
- package/src/assets/web-panel/assets/{move-tqb8nwJ2.js → move-B2rttglH.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-DSOjMJMz.js → mtc-parser-BYWcLTuN.js} +1 -1
- package/src/assets/web-panel/assets/{omit-CJ7VimIW.js → omit-DhHqKeFx.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-qXiG1iT3.js → pickAttrs-ANpJaWMO.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CkGBcy1Z.js → placementArrow-CfZWe7CA.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-D3WvTlLO.js → responsiveObserve-D7Xz2y-R.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BEE2ftge.js → slide-DekqCBY9.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CsfBpxiG.js → statusUtils-BET6XU7h.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-xPrIiJPI.js → styleChecker-qHmJjV62.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-C5Yd-SCR.js → useFlexGapSupport-BoMCTNyu.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-D_MDS8HI.js → useFs-TdW-NgFC.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-BqJh-usA.js → usePersonalDataHub-Dyox7wCu.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-chm_p-gz.js → vnode-XUn5S8CP.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-3-YDNz0Z.js → zoom-Ls77i8hn.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-manifest.json +8 -1
- package/src/commands/a2a.js +19 -4
- package/src/commands/activitypub.js +20 -3
- package/src/commands/agent.js +27 -5
- package/src/commands/audit.js +40 -24
- package/src/commands/changelog.js +148 -0
- package/src/commands/codeintel.js +68 -0
- package/src/commands/collab.js +15 -2
- package/src/commands/compliance.js +5 -0
- package/src/commands/config.js +4 -1
- package/src/commands/dao.js +86 -14
- package/src/commands/dev.js +2 -0
- package/src/commands/did.js +7 -1
- package/src/commands/dlp.js +23 -1
- package/src/commands/economy.js +29 -3
- package/src/commands/eval.js +7 -0
- package/src/commands/evomap.js +26 -0
- package/src/commands/governance.js +17 -3
- package/src/commands/hardening.js +18 -0
- package/src/commands/incentive.js +5 -0
- package/src/commands/init.js +46 -2
- package/src/commands/kg.js +4 -0
- package/src/commands/loop.js +6 -1
- package/src/commands/lowcode.js +15 -2
- package/src/commands/marketplace.js +40 -6
- package/src/commands/matrix.js +20 -1
- package/src/commands/memory.js +4 -1
- package/src/commands/mtc.js +7 -1
- package/src/commands/nostr.js +31 -4
- package/src/commands/note.js +7 -4
- package/src/commands/plugin.js +125 -5
- package/src/commands/pqc.js +5 -0
- package/src/commands/reputation.js +10 -1
- package/src/commands/scim.js +6 -0
- package/src/commands/session.js +32 -10
- package/src/commands/siem.js +11 -0
- package/src/commands/sla.js +18 -3
- package/src/commands/social.js +38 -5
- package/src/commands/sso.js +10 -2
- package/src/commands/stress.js +23 -4
- package/src/commands/team.js +9 -2
- package/src/commands/tech.js +2 -0
- package/src/commands/tenant.js +10 -1
- package/src/commands/terraform.js +6 -0
- package/src/commands/update.js +1 -1
- package/src/commands/zkp.js +20 -0
- package/src/data/changelog.json +189 -0
- package/src/gateways/ws/message-dispatcher.js +5 -2
- package/src/gateways/ws/remote-session-protocol.js +110 -42
- package/src/harness/jsonl-session-store.js +12 -5
- package/src/harness/plugin-manager.js +16 -4
- package/src/harness/remote-command-ledger.js +46 -15
- package/src/harness/worktree-isolator.js +16 -6
- package/src/index.js +2 -0
- package/src/lib/__tests__/logger.test.js +5 -2
- package/src/lib/a2a-protocol.js +25 -1
- package/src/lib/activitypub-bridge.js +61 -0
- package/src/lib/agent-core.js +2 -0
- package/src/lib/agent-economy.js +262 -29
- package/src/lib/agent-network.js +7 -1
- package/src/lib/agent-team/team-runner.js +25 -9
- package/src/lib/agent-team/team-worktree.js +36 -4
- package/src/lib/async-hook-supervisor.cjs +102 -16
- package/src/lib/audit-logger.js +7 -6
- package/src/lib/autonomous-developer.js +60 -0
- package/src/lib/changelog.js +252 -0
- package/src/lib/chat-core.js +17 -4
- package/src/lib/collaboration-governance.js +56 -0
- package/src/lib/community-governance.js +68 -0
- package/src/lib/compliance-manager.js +63 -0
- package/src/lib/cross-chain.js +5 -0
- package/src/lib/dao-governance.js +151 -2
- package/src/lib/did-manager.js +23 -10
- package/src/lib/dlp-engine.js +70 -0
- package/src/lib/eval/runner.js +89 -1
- package/src/lib/eval/tasks.js +170 -0
- package/src/lib/eval/trend.js +16 -1
- package/src/lib/evolution-system.js +92 -0
- package/src/lib/evomap-federation.js +55 -0
- package/src/lib/evomap-governance.js +94 -0
- package/src/lib/fatal-handler.js +17 -1
- package/src/lib/hardening-manager.js +73 -0
- package/src/lib/hierarchical-memory.js +14 -8
- package/src/lib/knowledge-exporter.js +8 -2
- package/src/lib/knowledge-graph.js +79 -0
- package/src/lib/llm-providers.js +23 -14
- package/src/lib/logger.js +4 -1
- package/src/lib/lsp/__tests__/benchmark.test.js +88 -0
- package/src/lib/lsp/__tests__/lsp-client.test.js +11 -0
- package/src/lib/lsp/__tests__/lsp-manager.test.js +69 -0
- package/src/lib/lsp/benchmark.js +257 -0
- package/src/lib/lsp/lsp-client.js +30 -9
- package/src/lib/lsp/lsp-manager.js +54 -2
- package/src/lib/lsp/lsp-server-registry.js +15 -4
- package/src/lib/matrix-bridge.js +84 -0
- package/src/lib/memory-manager.js +5 -3
- package/src/lib/nostr-bridge.js +53 -0
- package/src/lib/permission-engine.js +22 -4
- package/src/lib/plugin-runtime/__tests__/remote-source.test.js +256 -0
- package/src/lib/plugin-runtime/hooks.js +20 -4
- package/src/lib/plugin-runtime/install.js +9 -1
- package/src/lib/plugin-runtime/monitors.js +20 -4
- package/src/lib/plugin-runtime/policy.js +9 -1
- package/src/lib/plugin-runtime/remote-source.js +240 -0
- package/src/lib/plugin-runtime/signature.js +16 -0
- package/src/lib/pqc-manager.js +64 -0
- package/src/lib/reputation-optimizer.js +101 -0
- package/src/lib/sandbox-egress-proxy.js +195 -59
- package/src/lib/sandbox-fs-policy.js +112 -0
- package/src/lib/sandbox-network-policy.js +44 -5
- package/src/lib/sandbox-v2.js +14 -14
- package/src/lib/scim-manager.js +36 -0
- package/src/lib/session-manager.js +5 -2
- package/src/lib/settings-hooks.cjs +1 -0
- package/src/lib/siem-exporter.js +45 -0
- package/src/lib/skill-loader.js +20 -2
- package/src/lib/skill-marketplace.js +83 -0
- package/src/lib/sla-manager.js +88 -0
- package/src/lib/social-manager.js +74 -0
- package/src/lib/stress-tester.js +65 -0
- package/src/lib/tech-learning-engine.js +75 -0
- package/src/lib/telemetry/span-recorder.js +12 -1
- package/src/lib/tenant-saas.js +107 -0
- package/src/lib/terraform-manager.js +67 -0
- package/src/lib/token-incentive.js +180 -29
- package/src/lib/wallet-manager.js +81 -35
- package/src/lib/zkp-engine.js +87 -0
- package/src/repl/agent-repl.js +17 -2
- package/src/runtime/__tests__/auto-pin.test.js +104 -0
- package/src/runtime/agent-core.js +241 -68
- package/src/runtime/auto-pin.js +117 -0
- package/src/runtime/headless-runner.js +35 -0
- package/src/assets/web-panel/assets/OrderTableRenderer-CRIFE2Tj.js +0 -1
- package/src/assets/web-panel/assets/Projects-CGcNIs_g.js +0 -1
- package/src/assets/web-panel/assets/Terminal-ZzU0Io1Y.js +0 -3
- package/src/assets/web-panel/assets/devWarning-DxwmsL4j.js +0 -1
- package/src/assets/web-panel/assets/index-Cg2ldRfU.js +0 -1
- 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
|
}
|
package/src/commands/collab.js
CHANGED
|
@@ -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
|
-
|
|
77
|
-
|
|
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) {
|
package/src/commands/config.js
CHANGED
|
@@ -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
|
-
|
|
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}`);
|
package/src/commands/dao.js
CHANGED
|
@@ -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, {
|
|
315
|
-
|
|
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, {
|
|
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, {
|
|
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, {
|
|
461
|
-
|
|
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
|
-
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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(
|
|
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, {
|
|
912
|
+
updates.proposalThreshold = numericOption(options.proposalThreshold, {
|
|
913
|
+
name: "--proposal-threshold",
|
|
914
|
+
min: 0,
|
|
915
|
+
});
|
|
847
916
|
if (options.maxSingleAllocation)
|
|
848
|
-
updates.maxSingleAllocation = numericOption(
|
|
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) {
|
package/src/commands/dev.js
CHANGED
|
@@ -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
|
|
package/src/commands/did.js
CHANGED
|
@@ -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
|
-
|
|
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
|
})();
|