chainlesschain 0.166.10 → 0.166.14
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 +33 -0
- package/bin/chainlesschain.js +5 -0
- package/package.json +4 -2
- package/src/assets/web-panel/assets/{AIOps-CLYBDAGv.js → AIOps-C8SyFhOo.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CpeSttcu.js → ActionButton-Dup5gFK0.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-Ba1TNLG0.js → Analytics-8FyOWA7V.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-xBy8EOeg.js → AppLayout-DBzdU9dg.js} +3 -3
- package/src/assets/web-panel/assets/{Artifacts-CJ_3TFb8.js → Artifacts-C_0Z8gNy.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DUATFCG3.js → Audit-Cf2a-58m.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-BRXYPIGp.js → BackgroundAgents-M7w-2zgB.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-D8auLx7y.js → Backup-CCTHQXoL.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-CBgdslQ3.js → BaseInput-DjXpeFwJ.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-B32LvAiE.js → Chat-cAvchsJU.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-CVfvAy-n.js → ChatBubbleRenderer-DvEvxlZv.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-BwzBxOpC.js → Checkbox-DKs6qvOn.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-0U5vrg1H.js → Codegen-DlkA7b9X.js} +1 -1
- package/src/assets/web-panel/assets/{Col-dZ2i4aAj.js → Col-CkfdKhyJ.js} +1 -1
- package/src/assets/web-panel/assets/{Community-UVvpLr8c.js → Community-iNXMHzj6.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BDNEb1Bd.js → Compact-DQxPEd09.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BrzQPxyS.js → Compliance-CSKvMCjs.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BbgGsu-9.js → Cowork-CkWqazpD.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-G321XPhp.js → Cron-k6W8IzhB.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CgLNUyMn.js → Crosschain-C8MS1OuY.js} +1 -1
- package/src/assets/web-panel/assets/{DID-BAfRj18q.js → DID-DJuCcgiQ.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BNIxA4TK.js → Dashboard-LeThKzp3.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BLAUmCAN.js → Dropdown-BvxwgpE4.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CsnhTW22.js → EmailListRenderer-n3e_a1M3.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-zcQ7Ip1n.js → FamilyGuardDashboard-509W6W6v.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-KFwxodNU.js → Federation-xgZReQm0.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-3CYRLEHG.js → FormItemContext-jZOhKcQx.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-D3d9D8L9.js → GenericCardRenderer-Jo0ULzHv.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BJ202nJY.js → Git-BsRcyWQP.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-ClnnXVQ-.js → Governance-JlpMYTAk.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DNU-PTkc.js → Inference-CUEz872-.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DJuinbuY.js → KnowledgeGraph-DgrvvEDU.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D4No-46s.js → Logs-Df-KY4U3.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-BEPDcSwz.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-Ba-KqRN3.js → Marketplace-kPZDTOeI.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DVoxnPgE.js → McpTools-CRRzPqNX.js} +2 -2
- package/src/assets/web-panel/assets/{Memory-D_C8gzAZ.js → Memory-D6pNSkg9.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-DnzTPcDH.js → MobileBridge-g-pvtwRC.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-Bzayfrfe.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-CvEHmHId.js → Mtc-B7S3W-XL.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-VNJmWqmv.js → MtcAudit-B8OMEWVb.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-BO0x_Vsa.js → Multisig-CowRp7GH.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CM2gI1UY.js → NLProgramming-BkQNyi4c.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-CMc1HsML.js → Notes-Cm7gtkKz.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DGNmSKGM.js → NotificationSettings-CbPTVh9m.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Du-Kct3p.js → OrderTableRenderer-Dswi26mJ.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DRtRZjas.js → Organization-BkjQ9yy7.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-Dp4OeWsn.js → Overflow-DmRFXP7Y.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-DXMJVls8.js → P2P-DQE1toAu.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-BujyoDRG.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-D1Hbb51o.js → Permissions-xSjfOaiU.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BridiDhr.js → PersonalDataHub-B9ICLqVP.js} +3 -3
- package/src/assets/web-panel/assets/{Pipeline-B4bUNCm1.js → Pipeline-CUNwyN9E.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-BTu_HEqK.js → Privacy-SOoCricX.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-SVtL2hnt.js → ProjectInit-CSaFul0F.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-B2Sh7JZ2.js → ProjectSettings-CueiB_oe.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BwU1xalW.js → Projects-BOeXvU7y.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BWdWQSDw.js → Providers-CTqf_31h.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-Brzc-Sxb.js → QrScannerModal-C8ZP31E9.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DIBz7FCe.js → QuickAsk-CPgn4713.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CZ8RriIJ.js → Recommend-8_e0zw0i.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-CM0KJQ3t.js → RemoteSession-iT7lbGqw.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-D_wo8H0O.js → Reputation-B4q9SUOz.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D1G1fD7N.js → Row-CA_nASyL.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-dKCVtA0K.js → RssFeed-Cwb0E3yv.js} +2 -2
- package/src/assets/web-panel/assets/{Search-Be1D61xo.js → Search-D9iVsOxJ.js} +1 -1
- package/src/assets/web-panel/assets/{Security-IbNiR6OC.js → Security-DPLbYchG.js} +3 -3
- package/src/assets/web-panel/assets/{Services-nuHK8y8p.js → Services-DGMVL_LF.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-DnM5jdnC.js → Skeleton-B_6kym0D.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DCTdoq_q.js → Skills-Ds6r0dXB.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DlWun-Ui.js → Sla-BLHAbBhb.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-C19kv2sd.js → SpeechSettings-CZuddd14.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-CkQIR_Hu.js → SyncSettings-CdBq7oSl.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DdbqOEbs.js → Tasks-DfT60Nyl.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-B7GpIXeo.js → Templates-RLfsKy2V.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-ByEstFhY.js → Tenant-Cw8xCNLE.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-BKRVID1a.js → Terminal-BOUkNu4f.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-CNS3dHNv.js → TimelineRenderer-CgGZWaRm.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BykqylCL.js → Tokens-CpwjVyir.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-ByNxq51W.js → Trigger-DL21H-eb.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BlrFsdaS.js → Trust-B3ffFclW.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Dg26A-sd.js → UkeySign-CkBeb5aI.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-C1wUxNn0.js → VideoEditing-U2iVaE3r.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-OphEUzI4.js → Wallet-CQk2wzYd.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-_8lL08hF.js → WebAuthn-DYIuIYzT.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-BnTuIvnP.js → WorkflowEditor-tg1c2mZQ.js} +1 -1
- package/src/assets/web-panel/assets/{chat-3N3VLQYr.js → chat-CtL61spq.js} +1 -1
- package/src/assets/web-panel/assets/{colors-Bo_G96gg.js → colors-DKpbeo8s.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DjubfjI_.js → compact-item-gPZsrswt.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-Cx_HSLCk.js → createContext-CfHlwzVr.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-DdqnMhzi.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-D5OjAOlA.js → hasIn-MV47g_6X.js} +1 -1
- package/src/assets/web-panel/assets/{index-x7o-2T3S.js → index-6G0ETFTW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CqZq3zWr.js → index-BBw52sEl.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-4sfa0l.js → index-BN-wxSQ8.js} +1 -1
- package/src/assets/web-panel/assets/{index-uAcJUJkx.js → index-BOyGUuBE.js} +1 -1
- package/src/assets/web-panel/assets/{index-CC7RnaPP.js → index-BQp5M0s1.js} +1 -1
- package/src/assets/web-panel/assets/index-BcK8o4ke.js +1 -0
- package/src/assets/web-panel/assets/{index-CNmsP0Xf.js → index-BjlPD7GO.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVPDhmVH.js → index-C4lF-f_z.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRKk1JPX.js → index-C6nC_DyY.js} +1 -1
- package/src/assets/web-panel/assets/{index-B905-Mcs.js → index-C9RF4ieu.js} +1 -1
- package/src/assets/web-panel/assets/{index-3_CEBEEf.js → index-C9gtY4nG.js} +3 -3
- package/src/assets/web-panel/assets/{index-Y-H7j25u.js → index-CB1HnbNK.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5IwN9q3.js → index-CRv_uMLV.js} +1 -1
- package/src/assets/web-panel/assets/{index-Q_vn0t8d.js → index-C_B9LiKs.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cz5tQ5PY.js → index-Cjv0kKCU.js} +1 -1
- package/src/assets/web-panel/assets/{index-BgPb37tI.js → index-CmM9jqwe.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dbdr8tVi.js → index-CmPJpLoD.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrVjatPe.js → index-CzfxTSPW.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-_Cy0k_.js → index-D1XB5-t5.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8dPFFhy.js → index-DGtEBodr.js} +1 -1
- package/src/assets/web-panel/assets/{index-UnpsQ6A0.js → index-DIeJmlAA.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxgIE4PD.js → index-DMMvlLp9.js} +1 -1
- package/src/assets/web-panel/assets/{index-DlcbE0sX.js → index-DU4rZpiK.js} +1 -1
- package/src/assets/web-panel/assets/{index-EZr3bvz2.js → index-D_Pl1GnW.js} +1 -1
- package/src/assets/web-panel/assets/{index-BScGr1BY.js → index-Dd19vRwy.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ce8EWU6r.js → index-Ddcpj1El.js} +1 -1
- package/src/assets/web-panel/assets/{index-CCjq3g32.js → index-Df9sWKpl.js} +1 -1
- package/src/assets/web-panel/assets/{index-ydnEPOzZ.js → index-DfLyHCWi.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4MAnkl5.js → index-DnZ_zS1M.js} +1 -1
- package/src/assets/web-panel/assets/{index-DXJqa1-I.js → index-DsH-i_3d.js} +1 -1
- package/src/assets/web-panel/assets/index-DvbAjyYI.js +1 -0
- package/src/assets/web-panel/assets/{index-DBvZhdCb.js → index-ExAGPAnX.js} +1 -1
- package/src/assets/web-panel/assets/{index-DD1zSPZH.js → index-Rb7CRMw9.js} +1 -1
- package/src/assets/web-panel/assets/{index-DE4XtzMl.js → index-Zvkt9xqi.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmLwI-Y8.js → index-bSFrAszw.js} +1 -1
- package/src/assets/web-panel/assets/{index-HioDjvUF.js → index-fYcS7NS0.js} +1 -1
- package/src/assets/web-panel/assets/{index-BvYo09C0.js → index-srBc9U_s.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bj7S5IJw.js → index-xUlgG0Xe.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaU60K3A.js → index-yxxXlqBA.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DurpENJY.js → initDefaultProps-BeOZoSZ4.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CIh-z-gR.js → motion-BXE8VMKx.js} +1 -1
- package/src/assets/web-panel/assets/{move-Uc_yI2NA.js → move-I9sdvPGX.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-DUevj5wz.js → mtc-parser-d25zrJd0.js} +1 -1
- package/src/assets/web-panel/assets/{omit-85eMYyur.js → omit-D71V_T4e.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-AuxDD20F.js → pickAttrs-BNZKpIAR.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-DOWn8dd1.js → placementArrow-jOcgxTTz.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CPxTWodH.js → responsiveObserve-pta_O8AU.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BqvbGPjx.js → slide-Dlq6om7z.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BzXKkV8d.js → statusUtils-BnkO_yRv.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-B2O7yRk3.js → styleChecker-p8NfWmcG.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DRWp7px1.js → useFlexGapSupport-KcjZZ5U7.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-Dp0V7sjM.js → useFs-gqonDMWB.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CyCrG3ql.js → usePersonalDataHub-jIIfE4go.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CXhoFpFo.js → vnode-Dyo7fBrM.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-0z3mtwEg.js → zoom-6l8BMg9W.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-help-index.json +5 -5
- package/src/commands/agent.js +76 -23
- package/src/commands/compact.js +349 -3
- package/src/commands/context.js +72 -1
- package/src/commands/graph.js +26 -15
- package/src/commands/hmemory.js +21 -0
- package/src/commands/hook.js +256 -28
- package/src/commands/memory.js +209 -42
- package/src/commands/promcomp.js +17 -0
- package/src/commands/record-replay.js +772 -0
- package/src/commands/serve.js +94 -10
- package/src/commands/session.js +2 -3
- package/src/commands/skill.js +3 -0
- package/src/commands/team.js +7 -1
- package/src/data/changelog.json +41 -2
- package/src/gateways/ws/session-core-protocol.js +62 -3
- package/src/gateways/ws/session-protocol.js +123 -15
- package/src/gateways/ws/ws-agent-handler.js +157 -9
- package/src/gateways/ws/ws-session-gateway.js +204 -30
- package/src/generated/cc-agent-protocol.schema.json +2094 -4
- package/src/harness/prompt-compressor.js +5 -55
- package/src/lib/agent-sandbox.js +8 -2
- package/src/lib/agent-team/team-distributed-graph-bridge.js +3 -3
- package/src/lib/agent-team/team-message-tools.js +23 -5
- package/src/lib/app-server/context-memory-notifications.js +54 -0
- package/src/lib/app-server/rollout-store-factory.js +115 -0
- package/src/lib/app-server/rollout-store.js +310 -23
- package/src/lib/app-server/server.js +184 -7
- package/src/lib/app-server/sqlite-rollout-store.js +59 -16
- package/src/lib/auto-mode-config.js +26 -0
- package/src/lib/causal-observability.js +13 -1
- package/src/lib/context-memory-kernel/authority.js +95 -0
- package/src/lib/context-memory-kernel/durable-memory-port.js +296 -0
- package/src/lib/context-memory-kernel/index.js +8 -0
- package/src/lib/context-memory-kernel/jsonl-session-context-port.js +232 -0
- package/src/lib/context-memory-kernel/live-compaction.js +375 -0
- package/src/lib/context-memory-kernel/memory-service.js +667 -0
- package/src/lib/context-memory-kernel/message-adapter.js +451 -0
- package/src/lib/context-memory-kernel/privacy-purge-port.js +244 -0
- package/src/lib/context-memory-kernel/provider-context.js +192 -0
- package/src/lib/context-memory-kernel/runtime.js +61 -0
- package/src/lib/direct-model-usage.js +22 -18
- package/src/lib/graph-kernel/cutover-authority-resolver.js +4 -5
- package/src/lib/graph-kernel/cutover-ledger.js +2 -2
- package/src/lib/graph-kernel/event-store.js +3 -5
- package/src/lib/graph-kernel/migration-saga.js +2 -2
- package/src/lib/graph-kernel/production-cutover-evidence.js +8 -1
- package/src/lib/hierarchical-memory.js +22 -0
- package/src/lib/hook-audit-store.js +170 -0
- package/src/lib/hook-event-bus.cjs +0 -0
- package/src/lib/hook-manager.js +25 -83
- package/src/lib/hook-runtime-adapters.js +233 -0
- package/src/lib/hook-runtime-contract.cjs +291 -0
- package/src/lib/hook-runtime-contract.js +21 -0
- package/src/lib/hook-trust.js +210 -0
- package/src/lib/hooks-v2-producers.js +52 -6
- package/src/lib/hooks-v2-runtime.js +443 -178
- package/src/lib/llm-pricing.js +10 -0
- package/src/lib/memory-manager.js +29 -4
- package/src/lib/model-context-window.js +52 -0
- package/src/lib/permanent-memory.js +17 -0
- package/src/lib/plan-mode.js +8 -4
- package/src/lib/process-execution-broker/credential-transport.js +31 -0
- package/src/lib/process-execution-broker/index.js +282 -16
- package/src/lib/process-execution-broker/windows-sandbox-helper.dll +0 -0
- package/src/lib/process-execution-broker/windows-sandbox-helper.exe +0 -0
- package/src/lib/process-execution-broker/windows-sandbox.cs +7 -3
- package/src/lib/record-replay/browser-target-policy.js +406 -0
- package/src/lib/record-replay/index.js +4 -0
- package/src/lib/record-replay/playwright-ui-driver.js +83 -20
- package/src/lib/record-replay/playwright-ui-recorder.js +611 -0
- package/src/lib/record-replay/recorded-skill-package.js +486 -0
- package/src/lib/record-replay/recorded-skill-store.js +1166 -0
- package/src/lib/record-replay/skill-recorder.js +634 -64
- package/src/lib/runtime-usage-ledger.js +20 -0
- package/src/lib/session-consolidator.js +59 -0
- package/src/lib/session-core-singletons.js +17 -4
- package/src/lib/session-hooks.js +29 -2
- package/src/lib/session-transcript-migration.js +188 -0
- package/src/lib/settings-hook-events.cjs +37 -401
- package/src/lib/settings-hook-events.js +210 -8
- package/src/lib/settings-hooks.cjs +42 -83
- package/src/lib/ws-session-manager.js +4 -1
- package/src/repl/agent-repl.js +186 -53
- package/src/runtime/agent-core.js +376 -350
- package/src/runtime/headless-runner.js +112 -84
- package/src/runtime/headless-stream.js +131 -30
- package/src/assets/web-panel/assets/MarkdownRenderer-Dt8hH_qA.js +0 -1
- package/src/assets/web-panel/assets/MobileProjects-Jg2dVUc-.js +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-0jYeVmyY.js +0 -7
- package/src/assets/web-panel/assets/devWarning-BX944k9E.js +0 -1
- package/src/assets/web-panel/assets/index-C_9Jt_SR.js +0 -1
- package/src/assets/web-panel/assets/index-DL2EFx7m.js +0 -1
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"codegen": "Usage: chainlesschain codegen [options] [command]\n\nCode generation agent (Phase 86)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n templates [options] List scaffold templates\n severities [options] List review severity levels\n rules [options] List security rules\n platforms [options] List CI/CD platforms\n generate [options] Record a code generation session\n show [options] <id> Show generation details\n list [options] List code generations\n review [options] Run heuristic code review\n review-show [options] <id> Show review details\n reviews [options] List code reviews\n scaffold [options] Record a scaffold generation\n scaffold-show [options] <id> Show scaffold details\n scaffolds [options] List scaffolds\n stats [options] Code agent statistics\n agent-maturities-v2 [options] List V2 agent maturity states\n gen-jobs-v2 [options] List V2 generation-job states\n default-max-active-agents-per-owner\n max-active-agents-per-owner\n set-max-active-agents-per-owner <n>\n default-max-running-jobs-per-owner\n max-running-jobs-per-owner\n set-max-running-jobs-per-owner <n>\n default-agent-idle-ms\n agent-idle-ms\n set-agent-idle-ms <ms>\n default-job-stuck-ms\n job-stuck-ms\n set-job-stuck-ms <ms>\n active-agent-count [options]\n running-job-count [options]\n register-agent-v2 [options] <agent-id>\n agent-v2 <agent-id>\n set-agent-maturity-v2 [options] <agent-id> <status>\n activate-agent [options] <agent-id>\n deprecate-agent [options] <agent-id>\n retire-agent [options] <agent-id>\n touch-agent-invocation <agent-id>\n enqueue-gen-job-v2 [options] <job-id>\n gen-job-v2 <job-id>\n set-gen-job-status-v2 [options] <job-id> <status>\n start-gen-job [options] <job-id>\n succeed-gen-job [options] <job-id>\n fail-gen-job [options] <job-id>\n cancel-gen-job [options] <job-id>\n auto-retire-idle-agents\n auto-fail-stuck-gen-jobs\n stats-v2\n help [command] display help for command\n",
|
|
33
33
|
"collab": "Usage: chainlesschain collab [options] [command]\n\nCollaboration governance — decisions, voting, autonomy levels, task assignment\n\nOptions:\n -h, --help display help for command\n\nCommands:\n decision-types [options] List known decision types\n strategies [options] List conflict resolution strategies\n metrics [options] List quality metrics\n priorities [options] List priority levels\n permissions [options] List permission tiers (L0..L4)\n propose [options] <type> <proposal> Propose a governance decision (type: task_assignment|resource_allocation|conflict_resolution|policy_update|autonomy_level)\n decisions [options] List governance decisions\n show [options] <decision-id> Show full details of a decision\n vote [options] <decision-id> <agent-id> <vote> Cast a vote (vote: approve|reject|abstain)\n tally [options] <decision-id> Tally votes and transition decision status\n execute <decision-id> Mark an approved decision as executed\n set-level [options] <agent-id> <level> Set an agent's autonomy level (0..4)\n agent [options] <agent-id> Show agent autonomy level\n agents [options] List agents with autonomy levels\n match [options] <required-skills-json> <agent-skills-json> Compute skill match score (inputs are JSON file paths; required: [{name,requiredLevel,weight}], agent: {skillName: level})\n optimize [options] <tasks-json> <agents-json> Optimize task assignment (tasks: [{id,urgency,importance,complexity,dependencies,requiredSkills}], agents: [{id,skills,currentLoad,maxCapacity}])\n agent-maturities-cg-v2 List agent maturity states (V2)\n proposal-lifecycles-v2 List proposal lifecycle states (V2)\n stats-v2 Collaboration Governance V2 stats\n max-active-agents-per-realm [options] Get/set max active agents per realm (V2)\n max-voting-proposals-per-proposer [options] Get/set max voting proposals per proposer (V2)\n agent-idle-ms-cg [options] Get/set agent idle threshold ms (V2)\n proposal-stuck-ms [options] Get/set proposal stuck threshold ms (V2)\n active-agent-count-cg [options] Count active agents for realm (V2)\n voting-proposal-count [options] Count voting proposals for proposer (V2)\n register-agent-cg-v2 [options] <id> Register a CG agent V2 (provisional)\n agent-cg-v2 <id> Show CG agent V2\n list-agents-cg-v2 [options] List CG agents V2\n set-agent-maturity-cg-v2 [options] <id> <status> Transition CG agent V2 to status\n activate-agent-cg [options] <id> CG agent → active (V2)\n suspend-agent-cg [options] <id> CG agent → suspended (V2)\n retire-agent-cg [options] <id> CG agent → retired (V2)\n touch-agent-cg <id> Update lastSeenAt (V2)\n create-proposal-v2 [options] <id> Create a proposal V2 (draft)\n proposal-v2 <id> Show proposal V2\n list-proposals-v2 [options] List proposals V2\n set-proposal-status-v2 [options] <id> <status> Transition proposal V2 to status\n start-voting-v2 [options] <id> Proposal → voting (V2)\n approve-proposal-v2 [options] <id> Proposal → approved (V2)\n reject-proposal-v2 [options] <id> Proposal → rejected (V2)\n withdraw-proposal-v2 [options] <id> Proposal → withdrawn (V2)\n auto-retire-idle-agents-cg Bulk auto-retire idle agents past threshold (V2)\n auto-withdraw-stuck-proposals Bulk auto-withdraw voting proposals past threshold (V2)\n help [command] display help for command\n",
|
|
34
34
|
"command": "Usage: chainlesschain command|cmd [options] [command]\n\nUser-defined slash-command macros (.claude/commands/*.md)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n list|ls [options] List discovered command macros (project +\n personal)\n show [options] <name> Show a command's metadata and template body\n run [options] <name> [args...] Expand a command template and run it\n headlessly\n new [options] <name> Scaffold a new command file (project-native\n .chainlesschain/commands/)\n help [command] display help for command\n",
|
|
35
|
-
"compact": "Usage: chainlesschain compact [options] <session-id>\n\nCompact a stored session into a structured handoff (persists for --resume)\n\nOptions:\n -m, --model <model> Model for adaptive context-window sizing (default:\n session's recorded model)\n -p, --provider <provider> Provider for adaptive sizing (default: session's\n recorded provider)\n --max-tokens <n> Override the token threshold (skips adaptive)\n --max-messages <n> Override the message-count threshold (skips\n adaptive)\n --dry-run Preview the reduction without writing\n --offline Disable provider summarization and stay\n deterministic\n --base-url <url> Provider base URL for semantic compaction\n --json Output as JSON\n -h, --help display help for command\n",
|
|
35
|
+
"compact": "Usage: chainlesschain compact [options] <session-id>\n\nCompact a stored session into a structured handoff (persists for --resume)\n\nOptions:\n -m, --model <model> Model for adaptive context-window sizing (default:\n session's recorded model)\n -p, --provider <provider> Provider for adaptive sizing (default: session's\n recorded provider)\n --max-tokens <n> Override the token threshold (skips adaptive)\n --max-messages <n> Override the message-count threshold (skips\n adaptive)\n --dry-run Preview the reduction without writing\n --offline Disable provider summarization and stay\n deterministic\n --base-url <url> Provider base URL for semantic compaction\n --operation-id <id> Stable idempotency key (default: derived from\n session head)\n --json Output as JSON\n -h, --help display help for command\n",
|
|
36
36
|
"complete": "Usage: chainlesschain complete [options]\n\nInline code completion (FIM) for IDE ghost-text: reads {prefix,suffix,language}\nJSON on stdin, prints the code to insert.\n\nOptions:\n --provider <provider> override the LLM provider\n --model <model> override the model\n --base-url <url> override the provider base URL\n --api-key <key> override the API key\n --json output {completion,model,provider} as JSON\n -h, --help display help for command\n",
|
|
37
37
|
"compliance": "Usage: chainlesschain compliance [options] [command]\n\nCompliance management — evidence, reports, scanning, policies\n\nOptions:\n -h, --help display help for command\n\nCommands:\n evidence [options] <framework> Collect compliance evidence (gdpr, soc2, hipaa, iso27001)\n report [options] <framework> Generate compliance report (frameworks: soc2, iso27001, gdpr, hipaa)\n frameworks [options] List supported report frameworks\n classify [options] <content> Classify data sensitivity\n scan [options] <framework> Scan compliance posture against policies\n policies [options] List compliance policies\n check-access [options] <resource> <action> <role> Check RBAC access permission\n threat-intel Threat-intelligence IoC store — STIX 2.1 import, list, match\n ueba User and Entity Behavior Analytics over audit_log events\n evidence-statuses-v2 List evidence V2 lifecycle states\n policy-statuses-v2 List policy V2 lifecycle states\n report-statuses-v2 List report V2 lifecycle states\n severities-v2 List V2 severity buckets\n frameworks-v2 List V2 supported frameworks\n policy-types-v2 List V2 supported policy types\n default-max-active-policies Show default max-active-policies cap\n max-active-policies Show current max-active-policies cap\n set-max-active-policies <n> Set max-active-policies cap\n default-evidence-retention-ms Show default evidence retention (ms)\n evidence-retention-ms Show current evidence retention (ms)\n set-evidence-retention-ms <ms> Set evidence retention (ms)\n default-report-retention-ms Show default report retention (ms)\n report-retention-ms Show current report retention (ms)\n set-report-retention-ms <ms> Set report retention (ms)\n active-policy-count [options] Show current active-policy count\n register-evidence-v2 [options] <evidence-id> Register a new V2 evidence entry (tagged COLLECTED)\n evidence-status-v2 <evidence-id> Show V2 evidence lifecycle entry\n set-evidence-status-v2 [options] <evidence-id> <status> Transition V2 evidence lifecycle (collected/verified/rejected/expired)\n auto-expire-evidence Bulk-flip stale evidence to EXPIRED\n register-policy-v2 [options] <policy-id> Register a new V2 policy entry (tagged DRAFT)\n policy-status-v2 <policy-id> Show V2 policy lifecycle entry\n set-policy-status-v2 [options] <policy-id> <status> Transition V2 policy lifecycle (draft/active/suspended/deprecated)\n activate-policy <policy-id> Activate a V2 policy (DRAFT→ACTIVE, enforces max-active cap)\n register-report-v2 [options] <report-id> Register a new V2 report entry (tagged PENDING)\n report-status-v2 <report-id> Show V2 report lifecycle entry\n set-report-status-v2 [options] <report-id> <status> Transition V2 report lifecycle (pending/generating/published/archived)\n publish-report [options] <report-id> Publish a V2 report (pending→generating→published)\n auto-archive-stale-reports Bulk-flip stale published reports to ARCHIVED\n stats-v2 V2 compliance stats (all-enum-key zero-initialized)\n fwrep-enums-v2 Show V2 enums (fw maturity + report lifecycle)\n fwrep-config-v2 Show V2 config thresholds\n fwrep-set-max-active-v2 <n> Set max active fws per owner\n fwrep-set-max-pending-v2 <n> Set max pending reports per fw\n fwrep-set-fw-idle-ms-v2 <n> Set fw idle threshold (ms)\n fwrep-set-report-stuck-ms-v2 <n> Set report stuck threshold (ms)\n fwrep-register-v2 [options] <id> <owner> Register V2 compliance framework\n fwrep-activate-v2 <id> Activate framework\n fwrep-deprecate-v2 <id> Deprecate framework\n fwrep-archive-v2 <id> Archive framework (terminal)\n fwrep-touch-v2 <id> Touch framework\n fwrep-get-v2 <id> Get V2 framework\n fwrep-list-v2 List V2 frameworks\n fwrep-create-report-v2 [options] <id> <frameworkId> Create V2 report (queued)\n fwrep-start-report-v2 <id> Start report\n fwrep-complete-report-v2 <id> Complete report\n fwrep-fail-report-v2 <id> [reason] Fail report\n fwrep-cancel-report-v2 <id> [reason] Cancel report\n fwrep-get-report-v2 <id> Get V2 report\n fwrep-list-reports-v2 List V2 reports\n fwrep-auto-deprecate-idle-v2 Auto-deprecate idle fws\n fwrep-auto-fail-stuck-v2 Auto-fail stuck generating reports\n fwrep-gov-stats-v2 V2 gov aggregate stats (fw reporter)\n help [command] display help for command\n",
|
|
38
38
|
"compt": "Usage: chainlesschain compt [options] [command]\n\nCompression Telemetry V2 governance (in-memory, CLI v0.143.0)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n register-profile-v2 [options]\n activate-profile-v2 <id>\n stale-profile-v2 <id>\n archive-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-sample-v2 [options]\n recording-sample-v2 <id>\n record-sample-v2 <id>\n fail-sample-v2 [options] <id>\n cancel-sample-v2 [options] <id>\n get-sample-v2 <id>\n list-samples-v2\n config-v2\n set-max-active-profiles-v2 <n>\n set-max-pending-samples-v2 <n>\n set-profile-idle-ms-v2 <ms>\n set-sample-stuck-ms-v2 <ms>\n auto-stale-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n help [command] display help for command\n",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"governance": "Usage: chainlesschain governance [options] [command]\n\nCommunity governance — proposals, voting, impact analysis, prediction\n\nOptions:\n -h, --help display help for command\n\nCommands:\n types [options] List proposal types\n statuses [options] List proposal statuses\n impact-levels [options] List impact levels\n create [options] <title> Create a governance proposal (starts as draft)\n list [options] List proposals\n show [options] <proposal-id> Show proposal details\n activate [options] <proposal-id> Activate a draft proposal for voting\n close [options] <proposal-id> Close voting — auto-resolves to passed/rejected\n expire <proposal-id> Mark a draft/active proposal as expired\n vote [options] <proposal-id> <voter-did> <yes|no|abstain> Cast a vote (replaces any prior vote by same voter)\n votes [options] <proposal-id> List votes for a proposal\n tally [options] <proposal-id> Show vote tally with quorum/threshold check\n analyze [options] <proposal-id> Run heuristic impact analysis on a proposal\n predict [options] <proposal-id> Predict voting outcome (heuristic or vote-based)\n stats [options] Governance statistics\n proposer-maturities-v2 [options] List proposer V2 maturity states\n delegation-lifecycles-v2 [options] List delegation V2 lifecycle states\n default-max-active-proposers-per-realm Default per-realm active proposer cap\n max-active-proposers-per-realm Current per-realm active proposer cap\n set-max-active-proposers-per-realm <n> Set per-realm active proposer cap\n default-max-active-delegations-per-delegator Default per-delegator active delegation cap\n max-active-delegations-per-delegator Current per-delegator active delegation cap\n set-max-active-delegations-per-delegator <n> Set per-delegator active delegation cap\n default-proposer-idle-ms Default proposer idle window (ms)\n proposer-idle-ms Current proposer idle window (ms)\n set-proposer-idle-ms <ms> Set proposer idle window (ms)\n default-pending-delegation-ms Default pending delegation window (ms)\n pending-delegation-ms Current pending delegation window (ms)\n set-pending-delegation-ms <ms> Set pending delegation window (ms)\n active-proposer-count [options] Count active V2 proposers (scope by realm)\n active-delegation-count [options] Count active V2 delegations (scope by delegator)\n register-proposer-v2 [options] <proposer-id> Register a V2 proposer\n proposer-v2 <proposer-id> Get V2 proposer record\n set-proposer-maturity-v2 [options] <proposer-id> <status> Set proposer V2 maturity status\n activate-proposer [options] <proposer-id> Activate V2 proposer\n suspend-proposer [options] <proposer-id> Suspend V2 proposer\n retire-proposer [options] <proposer-id> Retire V2 proposer (terminal)\n touch-proposer-activity <proposer-id> Touch V2 proposer lastActivityAt\n create-delegation-v2 [options] <delegation-id> Create V2 vote delegation\n delegation-v2 <delegation-id> Get V2 delegation record\n set-delegation-status-v2 [options] <delegation-id> <status> Set delegation V2 status\n activate-delegation [options] <delegation-id> Activate V2 delegation\n revoke-delegation [options] <delegation-id> Revoke V2 delegation (terminal)\n expire-delegation [options] <delegation-id> Expire V2 delegation (terminal)\n auto-retire-idle-proposers Auto-retire active/suspended proposers past idle window\n auto-expire-stale-pending-delegations Auto-expire pending delegations past window\n stats-v2 V2 governance statistics\n help [command] display help for command\n",
|
|
69
69
|
"hardening": "Usage: chainlesschain hardening [options] [command]\n\nSecurity hardening — baselines, audits, regression detection\n\nOptions:\n -h, --help display help for command\n\nCommands:\n baseline Performance baseline management\n audit Security audit management\n config-check [options] <config-path> Audit a config file (presence, required keys, placeholders)\n deploy-check [options] Evaluate the 6-item production-deployment checklist\n audit-statuses-v2 [options] List V2 audit lifecycle statuses\n baseline-statuses-v2 [options] List V2 baseline lifecycle statuses\n severities-v2 [options] List V2 severity buckets\n default-max-concurrent-audits [options] Default concurrent audit cap\n max-concurrent-audits [options] Current concurrent audit cap\n set-max-concurrent-audits [options] <n> Set concurrent audit cap\n default-baseline-retention-ms [options] Default baseline retention in ms\n baseline-retention-ms [options] Current baseline retention in ms\n set-baseline-retention-ms [options] <ms> Set baseline retention in ms\n default-audit-timeout-ms [options] Default audit timeout in ms\n audit-timeout-ms [options] Current audit timeout in ms\n set-audit-timeout-ms [options] <ms> Set audit timeout in ms\n running-audit-count [options] Number of currently RUNNING audits\n register-audit-v2 [options] <name> Register a V2 audit entry (PENDING)\n start-audit [options] <audit-id> Start a PENDING audit (enforces concurrency cap)\n complete-audit [options] <audit-id> Complete a RUNNING audit\n set-audit-status-v2 [options] <audit-id> <status> Transition audit to a new status\n audit-status-v2 [options] <audit-id> Get V2 audit status\n auto-timeout-audits [options] Bulk-fail RUNNING audits past auditTimeoutMs\n create-baseline-v2 [options] <name> Create a V2 baseline (DRAFT)\n activate-baseline [options] <baseline-id> Activate a DRAFT baseline (supersedes previous ACTIVE)\n set-baseline-status-v2 [options] <baseline-id> <status> Transition baseline to a new status\n baseline-status-v2 [options] <baseline-id> Get V2 baseline status\n auto-archive-stale-baselines [options] Bulk-archive SUPERSEDED baselines past retention\n stats-v2 [options] V2 hardening statistics\n help [command] display help for command\n",
|
|
70
70
|
"hmemory": "Usage: chainlesschain hmemory [options] [command]\n\nHierarchical Memory 2.0 — four-layer memory system\n\nOptions:\n -h, --help display help for command\n\nCommands:\n store [options] <content> Store a memory at the appropriate layer\n recall [options] <query> Recall memories with forgetting curve\n consolidate Promote and forget memories across layers\n search [options] <query> Search memories by type\n stats [options] Show memory statistics\n share [options] <id> <agent-id> Share a memory with another agent\n prune [options] Remove weak old memories\n layers [options] List MEMORY_LAYER enum values\n types [options] List MEMORY_TYPE enum values\n statuses [options] List CONSOLIDATION_STATUS enum values\n permissions [options] List SHARE_PERMISSION enum values\n attach-metadata [options] <id> Attach V2 metadata (scene/context/concepts) to a memory\n promote-v2 [options] <id> Promote memory one layer up (working→short-term→long-term)\n demote-v2 [options] <id> Demote memory one layer down (short-term → working)\n share-v2 [options] <id> <target> Share a memory with permissions (read,copy,modify)\n revoke-share [options] <shareId> Revoke a sharing record\n shares [options] List V2 sharing records\n search-episodic-v2 [options] [query] Search episodic memories with time/scene/context filters\n search-semantic-v2 [options] [query] Search semantic memories with concept similarity\n consolidate-v2 [options] Run V2 consolidation with status tracking\n consolidations [options] List V2 consolidation run history\n prune-v2 [options] Layer-scoped prune with custom threshold\n stats-v2 [options] Extended V2 stats with per-layer + consolidation + shares\n enums-v2 Show V2 enums (tier maturity + promotion lifecycle)\n config-v2 Show V2 config thresholds\n set-max-active-tiers-v2 <n> Set max active tiers per owner\n set-max-pending-promotions-v2 <n> Set max pending promotions per tier\n set-tier-idle-ms-v2 <n> Set tier idle threshold (ms)\n set-promotion-stuck-ms-v2 <n> Set promotion stuck threshold (ms)\n register-tier-v2 [options] <id> <owner> Register V2 memory tier\n activate-tier-v2 <id> Activate tier\n dormant-tier-v2 <id> Mark tier dormant\n retire-tier-v2 <id> Retire tier (terminal)\n touch-tier-v2 <id> Touch tier lastTouchedAt\n get-tier-v2 <id> Get V2 tier\n list-tiers-v2 List all V2 tiers\n create-promotion-v2 [options] <id> <tierId> Create V2 promotion (queued)\n start-promotion-v2 <id> Start promotion (queued→promoting)\n complete-promotion-v2 <id> Complete promotion (promoting→promoted)\n fail-promotion-v2 <id> [reason] Fail promotion\n cancel-promotion-v2 <id> [reason] Cancel promotion\n get-promotion-v2 <id> Get V2 promotion\n list-promotions-v2 List all V2 promotions\n auto-dormant-idle-v2 Auto-dormant idle active tiers\n auto-fail-stuck-v2 Auto-fail stuck promoting promotions\n gov-stats-v2 V2 governance aggregate stats\n help [command] display help for command\n",
|
|
71
|
-
"hook": "Usage: chainlesschain hook [options] [command]\n\nLifecycle hook management\n\nOptions:\n -h, --help display help for command\n\nCommands:\n list [options] List registered hooks (DB) + .claude/settings.json hooks\n test [options] <event> <tool> [args...] Show which settings.json hooks fire for an event+tool (e.g. hook test PreToolUse run_shell \"git push\"); --run executes them\n replay [options] <event-id> Replay a recorded hook delivery (needs CC_HOOK_EVENT_LOG); dry-run by default, --run executes observe-only hooks\n events-log [options] List or verify the recorded hook delivery log (CC_HOOK_EVENT_LOG)\n add [options] <event> <name> Register a new hook\n remove <id> Remove a hook by ID\n run [options] <event> Manually trigger hooks for an event\n fire [options] <event> Fire a session-level hook (SessionStart/UserPromptSubmit/AssistantResponse/SessionEnd) and honor stdout JSON directives\n stats [options] Show hook execution statistics\n events List all valid hook event types\n maturities-v2 List hook profile maturity states (V2)\n exec-lifecycle-v2 List hook exec lifecycle states (V2)\n stats-v2 Show hook-manager V2 stats\n config-v2 Show hook-manager V2 config\n register-profile-v2 <id> <owner> [event]\n activate-profile-v2 <id>\n disable-profile-v2 <id>\n retire-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-exec-v2 <id> <hookId>\n start-exec-v2 <id>\n complete-exec-v2 <id>\n fail-exec-v2 <id> [reason]\n cancel-exec-v2 <id> [reason]\n get-exec-v2 <id>\n list-execs-v2\n auto-disable-idle-v2\n auto-fail-stuck-v2\n set-max-active-hooks-v2 <n>\n set-max-pending-execs-v2 <n>\n set-hook-idle-ms-v2 <n>\n set-hook-exec-stuck-ms-v2 <n>\n reset-state-v2\n help [command] display help for command\n",
|
|
71
|
+
"hook": "Usage: chainlesschain hook [options] [command]\n\nLifecycle hook management\n\nOptions:\n -h, --help display help for command\n\nCommands:\n list [options] List registered hooks (DB) + .claude/settings.json hooks\n trust [options] [file] Explicitly trust project Hook definitions; changed content requires reapproval\n trust-status [options] [file] Show content-bound project Hook trust status\n untrust [options] [file] Revoke project Hook trust\n audit [options] List or verify the canonical tamper-evident Hook audit\n test [options] <event> <tool> [args...] Show which settings.json hooks fire for an event+tool (e.g. hook test PreToolUse run_shell \"git push\"); --run executes them\n replay [options] <event-id> Replay a recorded hook delivery (needs CC_HOOK_EVENT_LOG); dry-run by default, --run executes observe-only hooks\n events-log [options] List or verify the recorded hook delivery log (CC_HOOK_EVENT_LOG)\n add [options] <event> <name> Register a new hook\n remove <id> Remove a hook by ID\n run [options] <event> Manually trigger hooks for an event\n fire [options] <event> Fire a session-level hook (SessionStart/UserPromptSubmit/AssistantResponse/SessionEnd) and honor stdout JSON directives\n stats [options] Show hook execution statistics\n events List all valid hook event types\n maturities-v2 List hook profile maturity states (V2)\n exec-lifecycle-v2 List hook exec lifecycle states (V2)\n stats-v2 Show hook-manager V2 stats\n config-v2 Show hook-manager V2 config\n register-profile-v2 <id> <owner> [event]\n activate-profile-v2 <id>\n disable-profile-v2 <id>\n retire-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-exec-v2 <id> <hookId>\n start-exec-v2 <id>\n complete-exec-v2 <id>\n fail-exec-v2 <id> [reason]\n cancel-exec-v2 <id> [reason]\n get-exec-v2 <id>\n list-execs-v2\n auto-disable-idle-v2\n auto-fail-stuck-v2\n set-max-active-hooks-v2 <n>\n set-max-pending-execs-v2 <n>\n set-hook-idle-ms-v2 <n>\n set-hook-exec-stuck-ms-v2 <n>\n reset-state-v2\n help [command] display help for command\n",
|
|
72
72
|
"hub": "Usage: chainlesschain hub [options] [command]\n\nPersonal Data Hub — local vault + adapters + AnalysisEngine on this machine\n\nOptions:\n -h, --help display help for command\n\nCommands:\n ask [options] <question> Natural-language question over your local vault\n repl [options] Persistent ask loop — opens the vault once, then answers follow-up questions fast (amortizes the ~8s per-call CLI cold-start)\n retrieve-context [options] <question> RAG preflight — gather facts + build LLM prompt WITHOUT calling LLM (for cloud-LLM callers that need RAG context)\n stats [options] Vault row counts + hub paths (use --full to also list adapters + LLM)\n health [options] Component health: vault / llm / kgSink / ragSink\n list-adapters [options] List registered adapters\n readiness [options] Per-adapter 就绪检查:能否采集 + 不能的原因(未配置/需采集/不支持)\n sync-adapter [options] <name> Run one adapter's ingest pipeline\n sync-all [options] Run all registered adapters in series\n bilibili-adb-sync [options] Bilibili C 路径: pull cookies via ADB from the user's Android Bilibili App, fetch 4 endpoints, ingest as snapshot. Needs rooted Android + Bilibili App logged in + `adb` on PATH.\n bilibili-adb-doctor [options] Bilibili C 路径 dry-run: probe adb + root + Bilibili App + cookies completeness without triggering a sync. Use this BEFORE `cc hub bilibili-adb-sync` to debug env issues.\n weibo-adb-sync [options] Weibo C 路径: pull m.weibo.cn cookies via ADB from the user's Android Weibo App, fetch UID + 3 endpoints (posts/favourites/follows), ingest as snapshot. Needs rooted Android + Weibo App logged in + `adb` on PATH. No X-Bogus / WBI signing required.\n kuaishou-adb-sync [options] Kuaishou C 路径: pull www.kuaishou.com cookies via ADB from the user's Android Kuaishou App (com.smile.gifmaker, NOT 极速版 com.kuaishou.nebula), parse profile from kuaishou.web.cp.api_ph cookie payload (no HTTP) + 3 GraphQL endpoints (watch/collect/search, __NS_sig3 + kpf/kpn — CLI short-circuits, desktop uses KuaishouSignBridge). Needs rooted Android + Kuaishou App logged in once + opened a video once + `adb` on PATH.\n toutiao-adb-sync [options] Toutiao C 路径: pull www.toutiao.com cookies via ADB from the user's Android Toutiao App (com.ss.android.article.news, NOT 极速版), fetch profile (no _sig) + 3 endpoints (feed/collection/search, _signature required — CLI short-circuits, desktop uses ToutiaoSignBridge). Needs rooted Android + Toutiao App logged in once + `adb` on PATH.\n xhs-adb-sync [options] Xhs C 路径: pull xiaohongshu.com cookies via ADB from the user's Android Xhs App, fetch userId + 3 endpoints (notes/liked/follows). Best-effort X-S signing (~60% GET hit rate). Needs rooted Android + Xhs App logged in + `adb` on PATH.\n douyin-adb-sync [options] Douyin C 路径: pull <uid>_im.db cohort via ADB from the user's Android Douyin App, parse msg + SIMPLE_USER (abrignoni DFIR), ingest as snapshot. Needs rooted Android + Douyin App logged in + `adb` on PATH.\n douyin-watch-sync [options] Douyin 观看历史 C 路径: pull video_record.db via ADB from the user's Android Douyin App (com.ss.android.ugc.aweme), read record_<uid> (aid + view_time_timestamp + enter_from), ingest as `history` (BROWSE) events. Plaintext — no X-Bogus signing, no SQLCipher. Needs rooted Android + Douyin App with watch history. Add --resolve-titles to enrich each event with the video's desc/author/duration via the web detail endpoint (also no signing).\n rederive [options] Re-derive canonical events from raw_events without re-fetching from source (recovers orphan raws from a past sync where putBatch silently failed, e.g. trap #25 partial-index drift).\n query-events [options] Query vault events with filters\n search [options] Vault Browser search — events_fts (FTS5) + faceted filters\n facet-counts [options] Sidebar / chip counts — events grouped by category / adapter / subtype\n export-events [options] Export all vault events as JSON (module 101 §8.3 cross-device backup)\n import-events [options] Import vault events from a JSON array file (idempotent upsert by id; §8.3)\n recent-audit [options] Recent audit log entries\n register-mock [options] Register MockAdapter (dev/smoke only)\n run-skill [options] <name> Run a built-in analysis skill: overview (跨 app 汇聚, 决策依据) / spending / relations / footprint / interests / timeline. 'analysis.overview' aggregates all apps' data into one cross-app snapshot.\n salvage [options] <dumpfile> Method B (免密钥): salvage SQLite leaf-page records from a /proc/mem dump → ingest into the vault with the correct per-app source (--app). Used by the Android root 一键采集 button after a memory scan.\n collect-qq [options] QQNT (modern QQ): decrypt a root-staged encrypted nt_msg.db via the DERIVED key (no frida), protobuf-parse messages, and ingest into the vault. Used by the Android CollectQqNativeTool (su-reads DB + uids); also runnable on PC.\n collect-db [options] Ingest an app's PLAINTEXT SQLite dbs (browse/read/history/content/config) into the vault — generic readable-record extraction with noise filtering. Pair with the Magisk daemon which stages the dbs (root, MIUI cross-app). Encrypted IM has its own collectors (collect-qq/collect-wechat).\n collect-wechat [options] WeChat: decrypt a root-staged EnMicroMsg.db via the DERIVED key MD5(IMEI+uin)[:7] (no frida; saved/raw keys as fallback), parse message/rcontact/chatroom, and ingest. Pairs with the Magisk daemon (stages DB + uin/IMEI candidates).\n collect-qzone [options] QQ空间 (Qzone): collect 说说/留言板/相册 via the Qzone CGI API. No local DB — needs the qzone-domain p_skey cookie (from the in-app WebView or a browser login to user.qzone.qq.com; base .qq.com skey is rejected). Derives g_tk from p_skey and ingests as post/message/media events.\n event-detail [options] <eventId> 推文 §AI 给出处: fetch full event row from local vault by id (used by citation chip deeplink).\n export [options] 推文 §一键带走: copy SQLCipher vault.db (+ WAL/SHM) to <path>. Encrypted at rest; reimport via cc hub import-vault on desktop.\n destroy [options] DESTRUCTIVE: wipe vault.db + WAL. Requires --confirm. Adapters / accounts files preserved.\n aichat AIChat WebView 鉴权向导 — list / login / probe / register / health / unregister 9 家国产 AI\n wechat WeChat adapter — env-probe / register / list / unregister (rooted Android required for 8.0+)\n help [command] display help for command\n",
|
|
73
73
|
"ide": "Usage: chainlesschain ide [options] [command]\n\nInspect IDE bridge discovery (editor MCP server auto-connect)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n list [options] List live IDE lockfiles (editor MCP servers advertised)\n status [options] Show the IDE server `cc agent` would connect to right\n now\n doctor [options] Explain why IDE discovery did / didn't pick a server\n jetbrains [options] Show whether IntelliJ IDEA's built-in MCP (server\n `idea`) would auto-connect\n help [command] display help for command\n",
|
|
74
74
|
"import": "Usage: chainlesschain import [options] [command]\n\nImport knowledge from external sources\n\nOptions:\n -h, --help display help for command\n\nCommands:\n markdown [options] <dir> Import markdown files from a directory\n evernote [options] <file> Import from Evernote ENEX export file\n notion [options] <dir> Import from Notion export directory\n pdf [options] <file> Import text from a PDF file\n source-maturities-v2 List V2 source maturity states\n import-job-lifecycles-v2 List V2 import-job lifecycle states\n stats-v2 V2 knowledge-importer stats\n get-max-active-sources-v2 Get max active sources per owner (V2)\n set-max-active-sources-v2 <n> Set max active sources per owner (V2)\n get-max-pending-jobs-v2 Get max pending jobs per source (V2)\n set-max-pending-jobs-v2 <n> Set max pending jobs per source (V2)\n get-source-idle-ms-v2 Get source idle threshold (V2)\n set-source-idle-ms-v2 <ms> Set source idle threshold (V2)\n get-job-stuck-ms-v2 Get import-job stuck threshold (V2)\n set-job-stuck-ms-v2 <ms> Set import-job stuck threshold (V2)\n active-source-count-v2 <ownerId> Active source count for owner (V2)\n pending-job-count-v2 <sourceId> Pending import-job count for source\n (V2)\n register-source-v2 [options] <id> Register a V2 source manifest\n get-source-v2 <id> Get a V2 source\n list-sources-v2 [options] List V2 sources\n set-source-status-v2 <id> <next> Set V2 source status\n activate-source-v2 <id> Activate a V2 source\n pause-source-v2 <id> Pause a V2 source\n archive-source-v2 <id> Archive a V2 source\n touch-source-v2 <id> Touch a V2 source\n create-import-job-v2 [options] <id> Create a V2 import job\n get-import-job-v2 <id> Get a V2 import job\n list-import-jobs-v2 [options] List V2 import jobs\n set-import-job-status-v2 <id> <next> Set V2 import-job status\n start-import-job-v2 <id> Start a V2 import job\n complete-import-job-v2 <id> Complete a V2 import job\n fail-import-job-v2 <id> Fail a V2 import job\n cancel-import-job-v2 <id> Cancel a V2 import job\n auto-pause-idle-sources-v2 Auto-pause idle V2 sources\n auto-fail-stuck-import-jobs-v2 Auto-fail stuck V2 import jobs\n help [command] display help for command\n",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"mcp": "Usage: chainlesschain mcp [options] [command]\n\nMCP server management and tool execution\n\nOptions:\n -h, --help display help for command\n\nCommands:\n login [options] <target> Authorize a remote MCP server via OAuth (opens a browser, or prints the URL in headless/SSH environments); stores the token. <target> is a URL or a configured server name.\n logout <target> Delete the stored OAuth token for a remote MCP server (<target> is a URL or a configured server name)\n auth [options] List stored MCP OAuth tokens\n serve [options] Expose local file tools (read/list/search/write, root-confined) as a Streamable-HTTP MCP server for other clients\n computer-use [options] Expose GUI control (screenshot/window-list/click/type/scroll/clipboard/app-launch) as a Streamable-HTTP MCP server. OFF by default; input verbs need confirm:true; high-risk apps (terminals/IDEs/settings/password managers) always confirm\n servers|list [options] List configured MCP servers\n materialize-package [options] <name> Replace one exact JavaScript package launcher with a content-addressed, guarded dependency capsule\n trust-executable [options] <name> Review and trust the current executable and interpreter-entrypoint bytes for one stdio MCP server\n add [options] <name> Add or update an MCP server configuration\n remove [options] <name> Remove an MCP server configuration\n get [options] <name> Show one MCP server configuration and its source\n doctor [options] [name] Validate MCP configuration and test transport handshakes\n connect [options] <name> Connect to an MCP server and verify its capabilities\n disconnect <name> Disconnect from an MCP server\n tools [options] List available MCP tools\n call [options] <tool> Call an MCP tool\n resources [options] List resources exposed by MCP servers\n read-resource [options] <uri> Read an MCP resource by URI\n prompts [options] List prompts exposed by MCP servers\n get-prompt [options] <name> Fetch a rendered MCP prompt by name\n trust-helper [options] <name> Trust the exact headers helper command for a workspace-local MCP server\n trust-project [options] Re-trust the project .mcp.json after reviewing a content change (records its fingerprint for --project-mcp runs)\n scaffold [options] <name> Scaffold a new MCP server project (stdio or http+sse)\n registry Browse the curated catalog of community MCP servers\n server-maturities-v2 List MCP server maturity states (V2)\n invocation-lifecycle-v2 List MCP invocation lifecycle states (V2)\n stats-v2 Show MCP registry V2 stats\n config-v2 Show MCP registry V2 config\n register-server-v2 <id> <owner> <endpoint> Register an MCP server (V2)\n activate-server-v2 <id> Activate an MCP server (V2)\n degrade-server-v2 <id> Degrade an MCP server (V2)\n retire-server-v2 <id> Retire an MCP server (V2)\n touch-server-v2 <id> Touch an MCP server (V2)\n get-server-v2 <id> Get an MCP server (V2)\n list-servers-v2 List MCP servers (V2)\n create-invocation-v2 <id> <serverId> <tool> Create an MCP invocation (V2)\n dispatch-invocation-v2 <id> Dispatch an MCP invocation (V2)\n complete-invocation-v2 <id> Complete an MCP invocation (V2)\n fail-invocation-v2 <id> [reason] Fail an MCP invocation (V2)\n cancel-invocation-v2 <id> [reason] Cancel an MCP invocation (V2)\n get-invocation-v2 <id> Get an MCP invocation (V2)\n list-invocations-v2 List MCP invocations (V2)\n auto-degrade-idle-servers-v2 Auto-degrade idle MCP servers (V2)\n auto-fail-stuck-invocations-v2 Auto-fail stuck MCP invocations (V2)\n set-max-active-servers-v2 <n> Set max active servers per owner (V2)\n set-max-pending-invocations-v2 <n> Set max pending invocations per server (V2)\n set-server-idle-ms-v2 <n> Set MCP server idle timeout in ms (V2)\n set-invocation-stuck-ms-v2 <n> Set MCP invocation stuck timeout in ms (V2)\n reset-state-v2 Reset MCP registry V2 in-memory state\n help [command] display help for command\n",
|
|
92
92
|
"mcpscaf": "Usage: chainlesschain mcpscaf [options] [command]\n\nMCP Scaffold V2 governance\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n config-v2\n set-max-active-v2 <n>\n set-max-pending-v2 <n>\n set-idle-ms-v2 <n>\n set-stuck-ms-v2 <n>\n register-profile-v2 [options] <id> <owner>\n activate-profile-v2 <id>\n stale-profile-v2 <id>\n archive-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-generation-v2 [options] <id> <profileId>\n generating-generation-v2 <id>\n generate-generation-v2 <id>\n fail-generation-v2 <id> [reason]\n cancel-generation-v2 <id> [reason]\n get-generation-v2 <id>\n list-generations-v2\n auto-stale-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n reset-state-v2\n help [command] display help for command\n",
|
|
93
93
|
"meminj": "Usage: chainlesschain meminj [options] [command]\n\nMemory Injection V2 governance\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n config-v2\n set-max-active-v2 <n>\n set-max-pending-v2 <n>\n set-idle-ms-v2 <n>\n set-stuck-ms-v2 <n>\n register-rule-v2 [options] <id> <owner>\n activate-rule-v2 <id>\n pause-rule-v2 <id>\n archive-rule-v2 <id>\n touch-rule-v2 <id>\n get-rule-v2 <id>\n list-rules-v2\n create-injection-v2 [options] <id> <ruleId>\n injecting-injection-v2 <id>\n apply-injection-v2 <id>\n fail-injection-v2 <id> [reason]\n cancel-injection-v2 <id> [reason]\n get-injection-v2 <id>\n list-injections-v2\n auto-pause-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n reset-state-v2\n help [command] display help for command\n",
|
|
94
|
-
"memory": "Usage: chainlesschain memory [options] [command]\n\nPersistent memory and daily notes\n\nOptions:\n -h, --help
|
|
94
|
+
"memory": "Usage: chainlesschain memory [options] [command]\n\nPersistent memory and daily notes\n\nOptions:\n -h, --help display help for command\n\nCommands:\n files [options] List the project-memory files cc agent\n auto-loads here (cc.md hierarchy +\n imports + path-scoped rules)\n show [options] Show memory entries\n export [options] Export all memory entries as JSON (module\n 101 §8.3 backup)\n import [options] Import memory entries from a JSON array\n file (idempotent upsert by id; §8.3)\n add [options] <text> Add a memory entry\n search [options] <query> Search memory entries\n delete <id> Delete a memory entry\n reconcile [options] <operation-id> Resume a pending canonical memory\n deletion\n daily [options] [date] View or append to daily notes\n recall [options] [query] Recall scoped memory (session-core\n MemoryStore)\n store [options] <content> Write a scoped memory (session-core\n MemoryStore)\n consolidate [options] Consolidate a session's trace into scoped\n memory\n file [options] View or edit the long-term MEMORY.md file\n entry-maturities-v2 List V2 entry maturity states\n consolidation-lifecycles-v2 List V2 consolidation job lifecycle\n states\n stats-v2 Show V2 governance stats\n get-max-active-entries-v2 Get max active entries per category\n set-max-active-entries-v2 <n> Set max active entries per category\n get-max-running-jobs-v2 Get max running jobs per source\n set-max-running-jobs-v2 <n> Set max running jobs per source\n get-entry-idle-ms-v2 Get entry idle threshold (ms)\n set-entry-idle-ms-v2 <n> Set entry idle threshold (ms)\n get-job-stuck-ms-v2 Get job stuck threshold (ms)\n set-job-stuck-ms-v2 <n> Set job stuck threshold (ms)\n active-entry-count-v2 <category> Count active entries for a category\n running-job-count-v2 <source> Count running jobs for a source\n register-entry-v2 [options] <id> Register a V2 entry\n get-entry-v2 <id> Get a V2 entry\n list-entries-v2 [options] List V2 entries\n activate-entry-v2 <id> pending|parked → active\n park-entry-v2 <id> active → parked\n archive-entry-v2 <id> → archived (terminal)\n touch-entry-v2 <id> Update lastSeenAt\n create-job-v2 [options] <id> Create a V2 consolidation job\n get-job-v2 <id> Get a V2 consolidation job\n list-jobs-v2 [options] List V2 consolidation jobs\n start-job-v2 <id> queued → running\n succeed-job-v2 <id> running → succeeded (terminal)\n fail-job-v2 <id> running → failed (terminal)\n cancel-job-v2 <id> queued|running → cancelled (terminal)\n auto-park-idle-entries-v2 Flip idle active entries → parked\n auto-fail-stuck-jobs-v2 Flip stuck running jobs → failed\n help [command] display help for command\n",
|
|
95
95
|
"mtc": "Usage: chainlesschain mtc [options] [command]\n\nMerkle Tree Certificates — batch issuance & verification\n\nOptions:\n -h, --help display help for command\n\nCommands:\n batch [options] <input> Build a tree + landmark + envelopes from a list of leaves\n verify [options] <envelope> Verify an MTC envelope against a landmark\n landmark Landmark utilities\n batch-dids [options] Build a batch from DIDs in the local DB (all by default)\n batch-skills [options] Build a batch from local CLI skills (all by default)\n publish-skills [options] Marketplace publisher daemon: detect skill deltas + auto-close batches\n publish-status [options] <state-file> Read a publish-skills state file and print its current state + recent history\n serve [options] Run a verifier daemon: subscribe to landmarks, persist to disk, ingest\n federation Phase 3 federation MTCA — manage M-of-N member registry\n help [command] display help for command\n",
|
|
96
96
|
"multimodal": "Usage: chainlesschain multimodal|mm [options] [command]\n\nMultimodal collaboration (Phase 27)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n modalities [options] List 5 input modalities with weights\n input-formats [options] List 7 supported document formats (4 native)\n output-formats [options] List 6 output formats\n statuses [options] List session statuses\n session-create [options] Create a multimodal session\n session-show [options] <sessionId> Show session details\n sessions [options] List sessions\n session-complete [options] <sessionId> Mark session as completed\n session-delete [options] <sessionId> Delete session and all artifacts\n add [options] <sessionId> Add a modality input to a session\n modalities-of [options] <sessionId> List modalities added to a session\n fuse [options] <sessionId> Weighted fusion of all input artifacts\n parse [options] <filePath> Parse a document (txt/md/csv/json native)\n build-context [options] <sessionId> Build context from session artifacts\n get-context [options] <sessionId> Get cached/stored context\n clear-context [options] <sessionId> Clear the session's context\n trim-context [options] <sessionId> Trim current context to max tokens\n generate [options] Generate output in one of 6 formats\n artifacts [options] <sessionId> List artifacts for a session\n stats [options] Multimodal system statistics\n session-maturities-v2 [options] List V2 session maturity states\n artifact-lifecycles-v2 [options] List V2 artifact lifecycle states\n default-max-active-sessions-per-owner Show V2 default per-owner active-session cap\n max-active-sessions-per-owner Show current V2 per-owner active-session cap\n set-max-active-sessions-per-owner <n> Set V2 per-owner active-session cap\n default-max-artifacts-per-session Show V2 default per-session artifact cap\n max-artifacts-per-session Show current V2 per-session artifact cap\n set-max-artifacts-per-session <n> Set V2 per-session artifact cap\n default-session-idle-ms Show V2 default session-idle window (ms)\n session-idle-ms Show current V2 session-idle window (ms)\n set-session-idle-ms <ms> Set V2 session-idle window (ms)\n default-artifact-stale-ms Show V2 default artifact-stale window (ms)\n artifact-stale-ms Show current V2 artifact-stale window (ms)\n set-artifact-stale-ms <ms> Set V2 artifact-stale window (ms)\n active-session-count [options] Count active V2 sessions (optionally scoped by owner)\n artifact-count [options] Count open V2 artifacts (optionally scoped by session)\n register-session-v2 [options] <session-id> Register a V2 session\n session-v2 <session-id> Show a V2 session\n set-session-maturity-v2 [options] <session-id> <status> Set V2 session maturity status\n activate-session [options] <session-id> Activate a V2 session\n pause-session [options] <session-id> Pause a V2 session\n complete-session-v2 [options] <session-id> Complete a V2 session\n archive-session [options] <session-id> Archive a V2 session\n touch-session-activity <session-id> Bump lastActivityAt on a V2 session\n register-artifact-v2 [options] <artifact-id> Register a V2 artifact\n artifact-v2 <artifact-id> Show a V2 artifact\n set-artifact-status-v2 [options] <artifact-id> <status> Set V2 artifact lifecycle status\n mark-artifact-ready [options] <artifact-id> Mark V2 artifact ready\n purge-artifact [options] <artifact-id> Purge a V2 artifact\n touch-artifact-access <artifact-id> Bump lastAccessAt on a V2 artifact\n auto-archive-idle-sessions Auto-flip idle V2 sessions to ARCHIVED\n auto-purge-stale-artifacts Auto-flip stale READY V2 artifacts to PURGED\n stats-v2 V2 multimodal stats (counts by state + config)\n help [command] display help for command\n",
|
|
97
97
|
"multisig": "Usage: chainlesschain multisig [options] [command]\n\nM-of-N multi-signature proposals beyond MTC publisher_signature\n\nOptions:\n -h, --help display help for command\n\nCommands:\n propose [options] <domain> Create a new M-of-N proposal and sign as\n initiator\n sign [options] <proposalId> Add a signature to an existing pending\n proposal\n cancel [options] <proposalId> Cancel a pending or reached proposal\n finalize [options] <proposalId> Mark a reached proposal as consumed\n (business operation complete)\n list [options] List proposals\n show [options] <proposalId> Show detailed proposal with all signatures\n sweep [options] Expire all pending proposals past their\n deadline\n policy Manage per-domain multisig policies\n help [command] display help for command\n",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"sandbox": "Usage: chainlesschain sandbox [options] [command]\n\nSecurity sandbox v2 — isolated agent execution environments\n\nOptions:\n -h, --help display help for command\n\nCommands:\n create [options] <agent-id> Create a new sandbox for an agent\n exec [options] <sandbox-id> <code> Execute code within a sandbox\n destroy [options] <sandbox-id> Destroy a sandbox\n list [options] List active sandboxes\n audit [options] [sandbox-id] Show audit log for sandboxes\n quota [options] <sandbox-id> Show or set sandbox quota\n monitor [options] <sandbox-id> Monitor sandbox behavior and detect suspicious patterns\n prune [options] Destroy sandboxes whose ttl or idle-ttl has expired (Phase 4)\n statuses [options] List sandbox lifecycle status enum values (Phase 87)\n permission-types [options] List permission type enum values (Phase 87)\n risk-levels [options] List risk level enum values (Phase 87)\n quota-types [options] List quota type enum values (Phase 87)\n pause [options] <id> Pause a running sandbox (Phase 87)\n resume [options] <id> Resume a paused sandbox (Phase 87)\n terminate [options] <id> Terminate a sandbox (Phase 87 canonical; more explicit than destroy)\n set-quota-typed [options] <id> <type> <limit> Set a single quota by type (Phase 87)\n check-permission [options] <id> <type> <target> Check whether a sandbox may perform a permission op (Phase 87)\n check-quota [options] <id> <type> [amount] Check quota availability for a type (Phase 87)\n risk-score [options] <id> Compute risk score + risk level for a sandbox (Phase 87)\n risk-level [options] <score> Map a risk score to a RISK_LEVEL bucket (Phase 87)\n auto-isolate [options] <id> Auto-isolate a sandbox: record + terminate (Phase 87)\n isolations [options] List isolation records (Phase 87)\n audit-filter [options] [id] Filter audit log by event types / time range (Phase 87)\n stats-v2 [options] Extended V2 stats (byStatus / auditByAction / isolations) (Phase 87)\n help [command] display help for command\n",
|
|
135
135
|
"scim": "Usage: chainlesschain scim [options] [command]\n\nSCIM provisioning — user management, connectors, sync\n\nOptions:\n -h, --help display help for command\n\nCommands:\n users SCIM user management\n connectors [options] List SCIM connectors\n sync <connector-id> Trigger SCIM provisioning sync\n status [options] Show SCIM provisioning status\n identity-lifecycles-v2 [options] List V2 identity lifecycle states\n sync-lifecycles-v2 [options] List V2 sync-job lifecycle states\n stats-v2 [options] Show V2 SCIM stats\n get-max-provisioned-v2 Get max provisioned identities per\n connector\n set-max-provisioned-v2 <n> Set max provisioned identities per\n connector\n get-max-running-sync-v2 Get max running sync jobs per connector\n set-max-running-sync-v2 <n> Set max running sync jobs per connector\n get-identity-idle-ms-v2 Get identity idle ms\n set-identity-idle-ms-v2 <ms> Set identity idle ms\n get-sync-stuck-ms-v2 Get sync-job stuck ms\n set-sync-stuck-ms-v2 <ms> Set sync-job stuck ms\n provisioned-count-v2 <connectorId> Count provisioned identities for\n connector\n running-sync-count-v2 <connectorId> Count running sync jobs for connector\n register-identity-v2 [options] <id> Register V2 identity (initial=pending)\n get-identity-v2 <id> Get V2 identity by id\n list-identities-v2 [options] List V2 identities\n provision-identity-v2 <id> Transition identity → provisioned\n suspend-identity-v2 <id> Transition identity → suspended\n deprovision-identity-v2 <id> Transition identity → deprovisioned\n (terminal)\n touch-identity-v2 <id> Update identity lastSeenAt\n create-sync-job-v2 [options] <id> Create V2 sync job (initial=queued)\n get-sync-job-v2 <id> Get V2 sync job by id\n list-sync-jobs-v2 [options] List V2 sync jobs\n start-sync-job-v2 <id> Transition sync job → running\n succeed-sync-job-v2 <id> Transition sync job → succeeded\n (terminal)\n fail-sync-job-v2 <id> Transition sync job → failed (terminal)\n cancel-sync-job-v2 <id> Transition sync job → cancelled\n (terminal)\n auto-deprovision-idle-v2 Auto-deprovision idle identities; output\n flipped\n auto-fail-stuck-sync-v2 Auto-fail stuck running syncs; output\n flipped\n help [command] display help for command\n",
|
|
136
136
|
"search": "Usage: chainlesschain search [options] <query>\n\nSearch knowledge base (BM25 + vector hybrid)\n\nArguments:\n query Search query\n\nOptions:\n --mode <mode> Search mode: bm25, vector, hybrid (default: \"hybrid\")\n --top-k <n> Number of results (default: \"10\")\n --threshold <n> Minimum score threshold (default: \"0\")\n --json Output as JSON\n -h, --help display help for command\n",
|
|
137
|
-
"serve": "Usage: chainlesschain serve [options]\n\nStart WebSocket server for remote CLI access\n\nOptions:\n --app-server Run the canonical CC App Server over stdio\n instead of the legacy WebSocket server\n --app-server-websocket Use the experimental canonical App Server\n WebSocket transport (requires --app-server)\n --app-server-state-dir <path> Owner-controlled rollout directory
|
|
137
|
+
"serve": "Usage: chainlesschain serve [options] [command]\n\nStart WebSocket server for remote CLI access\n\nOptions:\n --app-server Run the canonical CC App Server over stdio\n instead of the legacy WebSocket server\n --app-server-websocket Use the experimental canonical App Server\n WebSocket transport (requires --app-server)\n --app-server-state-dir <path> Owner-controlled rollout directory (JSONL\n directory or SQLite parent)\n --app-server-state-path <path> Exact JSONL directory or SQLite database\n path for --app-server\n --app-server-store <backend> Physical rollout adapter: jsonl or sqlite\n (default: jsonl)\n --app-server-queue-cap <n> Maximum queued App Server requests\n (default: \"256\")\n --app-server-tls-cert <path> TLS certificate for non-loopback App Server\n WebSocket binding\n --app-server-tls-key <path> TLS private key for non-loopback App Server\n WebSocket binding\n -p, --port <port> Port number (default: \"18800\")\n -H, --host <host> Bind host (default: \"127.0.0.1\")\n --token <token> Authentication token (required for remote\n access and App Server WebSocket)\n --max-connections <n> Maximum concurrent connections (default:\n \"10\")\n --timeout <ms> Command execution timeout in milliseconds\n (default: \"30000\")\n --allow-remote Allow non-localhost connections (requires\n --token)\n --project <path> Default project root for sessions\n --remote-session-relay-url <url> Signaling relay URL for Remote Session\n pairing\n --remote-session-peer-id <id> Stable relay peer ID for this local runtime\n --http-port <port> Hosted HTTP port for Phase 5 envelope SSE\n (disabled if unset)\n --bundle <path> Agent bundle directory; may execute local\n MCP commands from mcp.json\n -h, --help display help for command\n\nCommands:\n migrate-rollouts [options] Verify or copy canonical rollouts between\n physical storage adapters\n",
|
|
138
138
|
"services": "Usage: chainlesschain services [options] [command]\n\nManage Docker backend services\n\nOptions:\n -h, --help display help for command\n\nCommands:\n up [services...] Start Docker services\n down Stop Docker services\n logs [options] [services...] View service logs\n pull Pull latest service images\n help [command] display help for command\n",
|
|
139
139
|
"seshhook": "Usage: chainlesschain seshhook [options] [command]\n\nSession Hooks V2 governance\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n config-v2\n set-max-active-v2 <n>\n set-max-pending-v2 <n>\n set-idle-ms-v2 <n>\n set-stuck-ms-v2 <n>\n register-profile-v2 [options] <id> <owner>\n activate-profile-v2 <id>\n disable-profile-v2 <id>\n retire-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-invocation-v2 [options] <id> <profileId>\n running-invocation-v2 <id>\n complete-invocation-v2 <id>\n fail-invocation-v2 <id> [reason]\n cancel-invocation-v2 <id> [reason]\n get-invocation-v2 <id>\n list-invocations-v2\n auto-disable-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n reset-state-v2\n help [command] display help for command\n",
|
|
140
140
|
"seshsearch": "Usage: chainlesschain seshsearch [options] [command]\n\nSession Search V2 governance\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n config-v2\n set-max-active-v2 <n>\n set-max-pending-v2 <n>\n set-idle-ms-v2 <n>\n set-stuck-ms-v2 <n>\n register-profile-v2 [options] <id> <owner>\n activate-profile-v2 <id>\n stale-profile-v2 <id>\n archive-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-query-v2 [options] <id> <profileId>\n searching-query-v2 <id>\n complete-query-v2 <id>\n fail-query-v2 <id> [reason]\n cancel-query-v2 <id> [reason]\n get-query-v2 <id>\n list-queries-v2\n auto-stale-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n reset-state-v2\n help [command] display help for command\n",
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"setup": "Usage: chainlesschain setup [options]\n\nInteractive setup wizard for ChainlessChain\n\nOptions:\n --skip-download Skip binary download\n --skip-services Skip Docker service setup\n -h, --help display help for command\n",
|
|
145
145
|
"sganal": "Usage: chainlesschain sganal [options] [command]\n\nSocial Graph Analytics V2 governance (in-memory, CLI v0.143.0)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n register-profile-v2 [options]\n activate-profile-v2 <id>\n stale-profile-v2 <id>\n archive-profile-v2 <id>\n touch-profile-v2 <id>\n get-profile-v2 <id>\n list-profiles-v2\n create-run-v2 [options]\n running-run-v2 <id>\n complete-run-v2 <id>\n fail-run-v2 [options] <id>\n cancel-run-v2 [options] <id>\n get-run-v2 <id>\n list-runs-v2\n config-v2\n set-max-active-profiles-v2 <n>\n set-max-pending-runs-v2 <n>\n set-profile-idle-ms-v2 <ms>\n set-run-stuck-ms-v2 <ms>\n auto-stale-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n help [command] display help for command\n",
|
|
146
146
|
"siem": "Usage: chainlesschain siem [options] [command]\n\nSIEM integration — log export to external targets\n\nOptions:\n -h, --help display help for command\n\nCommands:\n targets [options] List SIEM export targets\n add-target [options] <type> <url> Add a SIEM target (splunk_hec, elasticsearch, azure_sentinel)\n export <target-id> Export logs to a SIEM target\n stats [options] Show SIEM export statistics\n formats List SIEM export formats (V2)\n target-types List SIEM target types (V2)\n severities List SIEM severity levels (V2)\n statuses List SIEM target statuses (V2)\n default-batch-size Show default SIEM batch size (V2)\n severity-cef <severity> Map a SIEM severity to its CEF integer (0-10)\n format-log [options] <format> Format a JSON log payload as cef|leef|json\n add-target-v2 [options] Add a SIEM target via canonical options (V2)\n remove-target <target-id> Remove a SIEM target (V2)\n set-status <target-id> <status> Transition a SIEM target's status (V2)\n export-v2 [options] <target-id> Batch-export logs to a target (V2)\n stats-v2 Show extended SIEM stats (byFormat/byType/byStatus, V2)\n by-status <status> List SIEM targets filtered by status (V2)\n enums-v2 Show V2 enums (target maturity + export lifecycle)\n config-v2 Show V2 config thresholds\n set-max-active-targets-v2 <n> Set max active targets per operator\n set-max-pending-exports-v2 <n> Set max pending exports per target\n set-target-idle-ms-v2 <n> Set target idle threshold (ms)\n set-export-stuck-ms-v2 <n> Set export stuck threshold (ms)\n register-target-v2 [options] <id> <operator> Register V2 SIEM target\n activate-target-v2 <id> Activate target\n degrade-target-v2 <id> Degrade target\n retire-target-v2 <id> Retire target (terminal)\n touch-target-v2 <id> Touch target lastTouchedAt\n get-target-v2 <id> Get V2 target\n list-targets-v2 List V2 targets\n create-export-v2 [options] <id> <targetId> Create V2 export (queued)\n start-export-v2 <id> Start export\n deliver-export-v2 <id> Deliver export\n fail-export-v2 <id> [reason] Fail export\n cancel-export-v2 <id> [reason] Cancel export\n get-export-v2 <id> Get V2 export\n list-exports-v2 List V2 exports\n auto-degrade-idle-v2 Auto-degrade idle targets\n auto-fail-stuck-v2 Auto-fail stuck sending exports\n gov-stats-v2 V2 governance aggregate stats\n help [command] display help for command\n",
|
|
147
|
-
"skill": "Usage: chainlesschain skill [options] [command]\n\nManage and run AI skills (multi-layer: bundled + global + project)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n list [options] List all available skills\n categories List skill categories\n info [options] <name> Show detailed info about a skill\n search <query> Search skills by keyword\n run [options] <name> [input...] Execute a skill through a controlled\n agent/tool route\n add [options] <name> Create a custom skill\n remove [options] <name> Remove a custom skill (project or\n global)\n sync-cli [options] Generate or update CLI command skill\n packs (9 domain packs wrapping all 62\n CLI commands)\n sources [options] Show skill source layers, paths, and\n counts\n skill-maturities-v2 List V2 skill maturity states\n execution-lifecycles-v2 List V2 execution lifecycle states\n stats-v2 V2 skill-loader stats\n get-max-active-skills-v2 Get max active skills per owner (V2)\n set-max-active-skills-v2 <n> Set max active skills per owner (V2)\n get-max-pending-executions-v2 Get max pending executions per skill\n (V2)\n set-max-pending-executions-v2 <n> Set max pending executions per skill\n (V2)\n get-skill-idle-ms-v2 Get skill idle threshold (V2)\n set-skill-idle-ms-v2 <ms> Set skill idle threshold (V2)\n get-exec-stuck-ms-v2 Get execution stuck threshold (V2)\n set-exec-stuck-ms-v2 <ms> Set execution stuck threshold (V2)\n active-skill-count-v2 <ownerId> Active skill count for owner (V2)\n pending-execution-count-v2 <skillId> Pending execution count for skill (V2)\n register-skill-v2 [options] <id> Register a V2 skill\n get-skill-v2 <id> Get a V2 skill\n list-skills-v2 [options] List V2 skills\n set-skill-status-v2 <id> <next> Set V2 skill status\n activate-skill-v2 <id> Activate a V2 skill\n deprecate-skill-v2 <id> Deprecate a V2 skill\n archive-skill-v2 <id> Archive a V2 skill\n touch-skill-v2 <id> Touch a V2 skill\n create-execution-v2 [options] <id> Create a V2 execution\n get-execution-v2 <id> Get a V2 execution\n list-executions-v2 [options] List V2 executions\n set-execution-status-v2 <id> <next> Set V2 execution status\n start-execution-v2 <id> Start a V2 execution\n succeed-execution-v2 <id> Succeed a V2 execution\n fail-execution-v2 <id> Fail a V2 execution\n cancel-execution-v2 <id> Cancel a V2 execution\n auto-deprecate-idle-skills-v2 Auto-deprecate idle V2 skills\n auto-fail-stuck-executions-v2 Auto-fail stuck V2 executions\n help [command] display help for command\n",
|
|
147
|
+
"skill": "Usage: chainlesschain skill [options] [command]\n\nManage and run AI skills (multi-layer: bundled + global + project)\n\nOptions:\n -h, --help display help for command\n\nCommands:\n recording|record-replay Record, review, replay, enable, and\n govern deterministic UI skills\n list [options] List all available skills\n categories List skill categories\n info [options] <name> Show detailed info about a skill\n search <query> Search skills by keyword\n run [options] <name> [input...] Execute a skill through a controlled\n agent/tool route\n add [options] <name> Create a custom skill\n remove [options] <name> Remove a custom skill (project or\n global)\n sync-cli [options] Generate or update CLI command skill\n packs (9 domain packs wrapping all 62\n CLI commands)\n sources [options] Show skill source layers, paths, and\n counts\n skill-maturities-v2 List V2 skill maturity states\n execution-lifecycles-v2 List V2 execution lifecycle states\n stats-v2 V2 skill-loader stats\n get-max-active-skills-v2 Get max active skills per owner (V2)\n set-max-active-skills-v2 <n> Set max active skills per owner (V2)\n get-max-pending-executions-v2 Get max pending executions per skill\n (V2)\n set-max-pending-executions-v2 <n> Set max pending executions per skill\n (V2)\n get-skill-idle-ms-v2 Get skill idle threshold (V2)\n set-skill-idle-ms-v2 <ms> Set skill idle threshold (V2)\n get-exec-stuck-ms-v2 Get execution stuck threshold (V2)\n set-exec-stuck-ms-v2 <ms> Set execution stuck threshold (V2)\n active-skill-count-v2 <ownerId> Active skill count for owner (V2)\n pending-execution-count-v2 <skillId> Pending execution count for skill (V2)\n register-skill-v2 [options] <id> Register a V2 skill\n get-skill-v2 <id> Get a V2 skill\n list-skills-v2 [options] List V2 skills\n set-skill-status-v2 <id> <next> Set V2 skill status\n activate-skill-v2 <id> Activate a V2 skill\n deprecate-skill-v2 <id> Deprecate a V2 skill\n archive-skill-v2 <id> Archive a V2 skill\n touch-skill-v2 <id> Touch a V2 skill\n create-execution-v2 [options] <id> Create a V2 execution\n get-execution-v2 <id> Get a V2 execution\n list-executions-v2 [options] List V2 executions\n set-execution-status-v2 <id> <next> Set V2 execution status\n start-execution-v2 <id> Start a V2 execution\n succeed-execution-v2 <id> Succeed a V2 execution\n fail-execution-v2 <id> Fail a V2 execution\n cancel-execution-v2 <id> Cancel a V2 execution\n auto-deprecate-idle-skills-v2 Auto-deprecate idle V2 skills\n auto-fail-stuck-executions-v2 Auto-fail stuck V2 executions\n help [command] display help for command\n",
|
|
148
148
|
"sla": "Usage: chainlesschain sla [options] [command]\n\nCross-org SLA management — contracts, metrics, violations, compensation\n\nOptions:\n -h, --help display help for command\n\nCommands:\n tiers [options] List built-in SLA tiers\n create [options] <org-id> Create a new SLA contract\n list [options] List SLA contracts\n show [options] <sla-id> Show a single SLA contract\n terminate <sla-id> Terminate an SLA contract\n record [options] <sla-id> <term> <value> Record a metric (term: availability|response_time|throughput|error_rate)\n metrics [options] <sla-id> Show aggregated metrics for an SLA\n check [options] <sla-id> Detect violations against the contract's terms\n violations [options] List recorded violations\n compensate [options] <violation-id> Calculate compensation for a violation\n report [options] <sla-id> Generate an SLA compliance report\n statuses List SLA_STATUS_V2 values\n tier-names List SLA_TIER_V2 values\n term-names List SLA_TERM_V2 values\n severities List VIOLATION_SEVERITY_V2 values\n violation-statuses List VIOLATION_STATUS_V2 values\n default-max-active Show SLA_DEFAULT_MAX_ACTIVE_PER_ORG\n max-active Show current max active SLAs per org\n set-max-active <n> Set per-org active-contract admission cap\n active-count <org-id> Show active SLA count for an org\n create-v2 [options] <org-id> Create a V2 SLA contract (enforces per-org active cap)\n set-status <sla-id> <status> Transition SLA to a given status (state-machine guarded)\n expire <sla-id> Expire an SLA (shortcut for set-status ... expired)\n auto-expire [options] Bulk-flip ACTIVE contracts past endDate to EXPIRED\n set-violation-status [options] <violation-id> <status> Transition a violation (open→{acknowledged,resolved,waived})\n acknowledge-violation [options] <violation-id> Acknowledge a violation\n resolve-violation [options] <violation-id> Resolve a violation\n waive-violation [options] <violation-id> Waive a violation\n stats-v2 Show aggregate V2 SLA stats (byStatus/byTier/violations)\n help [command] display help for command\n",
|
|
149
149
|
"slotfill": "Usage: chainlesschain slotfill [options] [command]\n\nSlot Filler V2 governance\n\nOptions:\n -h, --help display help for command\n\nCommands:\n enums-v2\n config-v2\n set-max-active-v2 <n>\n set-max-pending-v2 <n>\n set-idle-ms-v2 <n>\n set-stuck-ms-v2 <n>\n register-template-v2 [options] <id> <owner>\n activate-template-v2 <id>\n stale-template-v2 <id>\n archive-template-v2 <id>\n touch-template-v2 <id>\n get-template-v2 <id>\n list-templates-v2\n create-fill-v2 [options] <id> <templateId>\n filling-fill-v2 <id>\n fill-fill-v2 <id>\n fail-fill-v2 <id> [reason]\n cancel-fill-v2 <id> [reason]\n get-fill-v2 <id>\n list-fills-v2\n auto-stale-idle-v2\n auto-fail-stuck-v2\n gov-stats-v2\n reset-state-v2\n help [command] display help for command\n",
|
|
150
150
|
"social": "Usage: chainlesschain social [options] [command]\n\nSocial platform — contacts, friends, posts, chat\n\nOptions:\n -h, --help display help for command\n\nCommands:\n contact Contact management\n friend Friend management\n post Social posts\n chat Direct messaging\n stats [options] Show social statistics\n analyze [options] <text> Classify text into topics (language-aware, multilingual)\n detect-lang [options] <text> Detect dominant language of text (zh|ja|en|other)\n graph Social graph — typed edges, neighbors, live event stream\n relationship-maturities-v2 [options] List V2 relationship maturity states\n thread-lifecycles-v2 [options] List V2 thread lifecycle states\n stats-v2 [options] Show V2 social stats\n get-max-connected-v2 Get max connected per user\n set-max-connected-v2 <n> Set max connected per user\n get-max-open-threads-v2 Get max open threads per user\n set-max-open-threads-v2 <n> Set max open threads per user\n get-relationship-idle-ms-v2 Get relationship idle ms\n set-relationship-idle-ms-v2 <ms> Set relationship idle ms\n get-thread-stuck-ms-v2 Get thread stuck ms\n set-thread-stuck-ms-v2 <ms> Set thread stuck ms\n connected-count-v2 <userId> Count connected relationships for user\n open-thread-count-v2 <userId> Count open+engaged threads for user\n register-relationship-v2 [options] <id> Register V2 relationship (initial=pending)\n get-relationship-v2 <id> Get V2 relationship by id\n list-relationships-v2 [options] List V2 relationships\n connect-relationship-v2 <id> Transition relationship → connected\n mute-relationship-v2 <id> Transition relationship → muted\n block-relationship-v2 <id> Transition relationship → blocked (terminal)\n touch-relationship-v2 <id> Update relationship lastSeenAt\n create-thread-v2 [options] <id> Create V2 thread (initial=open)\n get-thread-v2 <id> Get V2 thread by id\n list-threads-v2 [options] List V2 threads\n engage-thread-v2 <id> Transition thread → engaged\n resolve-thread-v2 <id> Transition thread → resolved (terminal)\n abandon-thread-v2 <id> Transition thread → abandoned (terminal)\n report-thread-v2 <id> Transition thread → reported (terminal)\n auto-mute-idle-rel-v2 Auto-mute idle connected relationships; output flipped\n auto-abandon-stuck-threads-v2 Auto-abandon stuck threads; output flipped\n sg-enums-v2\n sg-config-v2\n sg-set-max-active-v2 <n>\n sg-set-max-pending-v2 <n>\n sg-set-idle-ms-v2 <n>\n sg-set-stuck-ms-v2 <n>\n sg-register-node-v2 [options] <id> <owner>\n sg-activate-node-v2 <id>\n sg-deactivate-node-v2 <id>\n sg-remove-node-v2 <id>\n sg-touch-node-v2 <id>\n sg-get-node-v2 <id>\n sg-list-nodes-v2\n sg-create-edge-v2 [options] <id> <nodeId>\n sg-establish-edge-v2 <id>\n sg-sever-edge-v2 <id> [reason]\n sg-expire-edge-v2 <id>\n sg-cancel-edge-v2 <id> [reason]\n sg-get-edge-v2 <id>\n sg-list-edges-v2\n sg-auto-deactivate-idle-v2\n sg-auto-expire-stale-v2\n sg-gov-stats-v2\n sg-reset-state-v2\n help [command] display help for command\n",
|
package/src/commands/agent.js
CHANGED
|
@@ -30,6 +30,8 @@ import {
|
|
|
30
30
|
transformBackgroundLaunchArgv,
|
|
31
31
|
} from "../lib/background-command-argv.js";
|
|
32
32
|
import { resolveSessionBudgetRootOptions } from "../lib/session-budget-production-root.js";
|
|
33
|
+
import { withQuietStdout } from "../runtime/quiet-stdout.js";
|
|
34
|
+
import { resolveCredentialEnvironmentValue } from "../lib/process-execution-broker/credential-transport.js";
|
|
33
35
|
import {
|
|
34
36
|
captureClaudeStorageLaunchEnvironment,
|
|
35
37
|
restoreClaudeStorageLaunchEnvironment,
|
|
@@ -683,8 +685,19 @@ export function registerAgentCommand(program) {
|
|
|
683
685
|
// scripts) pass the key via the environment instead of argv, where it
|
|
684
686
|
// is visible to every local process (/proc/<pid>/cmdline, Win32_Process).
|
|
685
687
|
// An explicit --api-key still wins.
|
|
686
|
-
if (!options.apiKey
|
|
687
|
-
|
|
688
|
+
if (!options.apiKey) {
|
|
689
|
+
try {
|
|
690
|
+
options.apiKey =
|
|
691
|
+
(await resolveCredentialEnvironmentValue("CC_API_KEY", {
|
|
692
|
+
env: process.env,
|
|
693
|
+
})) || undefined;
|
|
694
|
+
} catch (error) {
|
|
695
|
+
process.stderr.write(
|
|
696
|
+
`Error: brokered API credential is unavailable (${error.code || "CC_CREDENTIAL_TRANSPORT_UNAVAILABLE"})\n`,
|
|
697
|
+
);
|
|
698
|
+
process.exitCode = 1;
|
|
699
|
+
return;
|
|
700
|
+
}
|
|
688
701
|
} else if (
|
|
689
702
|
options.apiKey &&
|
|
690
703
|
containsApiKeyArgument(process.argv) &&
|
|
@@ -863,7 +876,7 @@ export function registerAgentCommand(program) {
|
|
|
863
876
|
loadHooks({ cwd: _worktree.repoRoot }).hooks || null;
|
|
864
877
|
const { runWorktreeCreateHooks, dispatchAsyncHooks } =
|
|
865
878
|
await import("../lib/settings-hook-events.js");
|
|
866
|
-
runWorktreeCreateHooks(_worktreeSettingsHooks, {
|
|
879
|
+
await runWorktreeCreateHooks(_worktreeSettingsHooks, {
|
|
867
880
|
worktreePath: _worktree.path,
|
|
868
881
|
branch: _worktree.branch,
|
|
869
882
|
baseSha: _worktree.baseSha,
|
|
@@ -924,7 +937,7 @@ export function registerAgentCommand(program) {
|
|
|
924
937
|
try {
|
|
925
938
|
const { runWorktreeRemoveHooks, dispatchAsyncHooks } =
|
|
926
939
|
await import("../lib/settings-hook-events.js");
|
|
927
|
-
runWorktreeRemoveHooks(_worktreeSettingsHooks, {
|
|
940
|
+
await runWorktreeRemoveHooks(_worktreeSettingsHooks, {
|
|
928
941
|
worktreePath: _worktree.path,
|
|
929
942
|
branch: _worktree.branch,
|
|
930
943
|
removed: fin.removed === true,
|
|
@@ -971,9 +984,12 @@ export function registerAgentCommand(program) {
|
|
|
971
984
|
if (typeof options.resume === "string" && !options.session) {
|
|
972
985
|
options.session = options.resume;
|
|
973
986
|
}
|
|
987
|
+
let sessionBootstrapContext = null;
|
|
974
988
|
if ((options.continue || options.resume === true) && !options.session) {
|
|
975
989
|
const { bootstrap } = await import("../runtime/bootstrap.js");
|
|
976
|
-
|
|
990
|
+
sessionBootstrapContext = await bootstrap({
|
|
991
|
+
verbose: program.opts().verbose,
|
|
992
|
+
});
|
|
977
993
|
// Headless intent also means "no interactive picker is possible": -p,
|
|
978
994
|
// a positional task, an explicit --output-format, or a non-TTY stdin.
|
|
979
995
|
const headlessIntent =
|
|
@@ -982,16 +998,18 @@ export function registerAgentCommand(program) {
|
|
|
982
998
|
options.outputFormat !== "text" ||
|
|
983
999
|
!process.stdin.isTTY;
|
|
984
1000
|
if (headlessIntent) {
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
const
|
|
988
|
-
|
|
989
|
-
|
|
1001
|
+
const { getLastLogicalSessionId } =
|
|
1002
|
+
await import("../lib/session-transcript-migration.js");
|
|
1003
|
+
const database =
|
|
1004
|
+
sessionBootstrapContext.db?.getDatabase?.() ||
|
|
1005
|
+
sessionBootstrapContext.db?.getDb?.() ||
|
|
1006
|
+
null;
|
|
1007
|
+
options.session = getLastLogicalSessionId(database);
|
|
990
1008
|
} else {
|
|
991
1009
|
// Interactive: picker across both stores (agent REPL rebuilds either).
|
|
992
1010
|
const { pickRecentSession } =
|
|
993
1011
|
await import("../lib/session-picker.js");
|
|
994
|
-
const picked = await pickRecentSession(
|
|
1012
|
+
const picked = await pickRecentSession(sessionBootstrapContext, {
|
|
995
1013
|
message: "Resume which agent session?",
|
|
996
1014
|
});
|
|
997
1015
|
options.session = picked.id;
|
|
@@ -1005,6 +1023,40 @@ export function registerAgentCommand(program) {
|
|
|
1005
1023
|
}
|
|
1006
1024
|
}
|
|
1007
1025
|
|
|
1026
|
+
// A legacy SQLite-only session is imported once into the verified
|
|
1027
|
+
// canonical transcript before fork or replay. This keeps DB as a valid
|
|
1028
|
+
// physical source without allowing headless clients to resume an empty
|
|
1029
|
+
// conversation merely because their reader is JSONL-backed.
|
|
1030
|
+
const resumeRequested = Boolean(options.session);
|
|
1031
|
+
if (resumeRequested && options.session) {
|
|
1032
|
+
// Importing the persistent store and falling back to SQLite can lazily
|
|
1033
|
+
// initialize AppConfig/DatabaseManager. Their legacy console.info
|
|
1034
|
+
// diagnostics belong on stderr; stdout may already be reserved for a
|
|
1035
|
+
// JSON/NDJSON protocol selected by this command.
|
|
1036
|
+
await withQuietStdout(async () => {
|
|
1037
|
+
const { sessionHasPersistedEvidence } =
|
|
1038
|
+
await import("../harness/jsonl-session-store.js");
|
|
1039
|
+
if (!sessionHasPersistedEvidence(options.session)) {
|
|
1040
|
+
const [{ bootstrap }, { ensureCanonicalSessionFromDatabase }] =
|
|
1041
|
+
await Promise.all([
|
|
1042
|
+
import("../runtime/bootstrap.js"),
|
|
1043
|
+
import("../lib/session-transcript-migration.js"),
|
|
1044
|
+
]);
|
|
1045
|
+
const context =
|
|
1046
|
+
sessionBootstrapContext ||
|
|
1047
|
+
(await bootstrap({ verbose: program.opts().verbose }));
|
|
1048
|
+
sessionBootstrapContext = context;
|
|
1049
|
+
const database =
|
|
1050
|
+
context.db?.getDatabase?.() || context.db?.getDb?.() || null;
|
|
1051
|
+
const migrated = ensureCanonicalSessionFromDatabase(
|
|
1052
|
+
database,
|
|
1053
|
+
options.session,
|
|
1054
|
+
);
|
|
1055
|
+
if (migrated?.sessionId) options.session = migrated.sessionId;
|
|
1056
|
+
}
|
|
1057
|
+
});
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1008
1060
|
// --fork-session: branch the resolved session into a NEW id so the
|
|
1009
1061
|
// ORIGINAL transcript is preserved (Claude-Code parity). One chokepoint
|
|
1010
1062
|
// before headless / stream / interactive dispatch 鈥?all read
|
|
@@ -1025,8 +1077,8 @@ export function registerAgentCommand(program) {
|
|
|
1025
1077
|
);
|
|
1026
1078
|
if (fork.missing) {
|
|
1027
1079
|
process.stderr.write(
|
|
1028
|
-
`--fork-session: no
|
|
1029
|
-
"nothing to fork
|
|
1080
|
+
`--fork-session: no persisted transcript for "${options.session}"; ` +
|
|
1081
|
+
"nothing to fork, continuing on it.\n",
|
|
1030
1082
|
);
|
|
1031
1083
|
} else if (fork.forkedFrom) {
|
|
1032
1084
|
process.stderr.write(
|
|
@@ -1593,18 +1645,19 @@ export function registerAgentCommand(program) {
|
|
|
1593
1645
|
}
|
|
1594
1646
|
return;
|
|
1595
1647
|
}
|
|
1596
|
-
//
|
|
1597
|
-
//
|
|
1598
|
-
//
|
|
1599
|
-
const resumeRequested =
|
|
1600
|
-
Boolean(options.continue) || options.resume !== undefined;
|
|
1648
|
+
// If neither the canonical transcript nor a legacy physical adapter
|
|
1649
|
+
// contained the requested logical session, warn instead of silently
|
|
1650
|
+
// presenting a fresh conversation as a successful resume.
|
|
1601
1651
|
if (resumeRequested && options.session) {
|
|
1602
|
-
const
|
|
1603
|
-
|
|
1604
|
-
|
|
1652
|
+
const hasPersistedEvidence = await withQuietStdout(async () => {
|
|
1653
|
+
const { sessionHasPersistedEvidence } =
|
|
1654
|
+
await import("../harness/jsonl-session-store.js");
|
|
1655
|
+
return sessionHasPersistedEvidence(options.session);
|
|
1656
|
+
});
|
|
1657
|
+
if (!hasPersistedEvidence) {
|
|
1605
1658
|
process.stderr.write(
|
|
1606
|
-
`Note: no
|
|
1607
|
-
"starting fresh
|
|
1659
|
+
`Note: no persisted transcript for session "${options.session}"; ` +
|
|
1660
|
+
"starting fresh because no readable physical adapter contains it.\n",
|
|
1608
1661
|
);
|
|
1609
1662
|
}
|
|
1610
1663
|
}
|