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
package/src/lib/llm-pricing.js
CHANGED
|
@@ -65,11 +65,21 @@ export const PRICE_TABLE = Object.freeze({
|
|
|
65
65
|
{ match: "o1", in: 15, out: 60 },
|
|
66
66
|
],
|
|
67
67
|
deepseek: [
|
|
68
|
+
// DeepSeek V4 launch-list rates for the versioned 2026-04 model ids.
|
|
69
|
+
// Keep these ahead of the legacy aliases so formal budget gates never
|
|
70
|
+
// treat the current V4 models as unpriced remote usage.
|
|
71
|
+
{ match: "deepseek-v4-pro", in: 0.435, out: 0.87 },
|
|
72
|
+
{ match: "deepseek-v4-flash", in: 0.14, out: 0.28 },
|
|
68
73
|
{ match: "reasoner", in: 0.55, out: 2.19 },
|
|
69
74
|
{ match: "chat", in: 0.27, out: 1.1 },
|
|
70
75
|
],
|
|
71
76
|
// Volcengine Doubao — rough USD conversion of public RMB list pricing.
|
|
72
77
|
volcengine: [
|
|
78
|
+
// Third-party DeepSeek V4 ids exposed by Ark use the same token-accounting
|
|
79
|
+
// shape. Pricing them explicitly is required by USD-capped Agent/Team runs;
|
|
80
|
+
// falling through to the Doubao patterns would fail closed as unpriced.
|
|
81
|
+
{ match: "deepseek-v4-pro", in: 0.435, out: 0.87 },
|
|
82
|
+
{ match: "deepseek-v4-flash", in: 0.14, out: 0.28 },
|
|
73
83
|
// Doubao Seed 2.0 family (2026, e.g. doubao-seed-2-0-lite-260215) is
|
|
74
84
|
// natively multimodal. Rates ≈ official CNY ÷ ~7.2 (lite ≤32k is 0.6/3.6
|
|
75
85
|
// CNY → $0.08/$0.50); the generic "seed" rate below underprices 2.0 output.
|
|
@@ -8,6 +8,18 @@
|
|
|
8
8
|
import fs from "fs";
|
|
9
9
|
import path from "path";
|
|
10
10
|
import { likePrefix, escapeLike } from "./sql-like.js";
|
|
11
|
+
import {
|
|
12
|
+
assertLegacyMutationAllowed,
|
|
13
|
+
resolveCliContextMemoryCutover,
|
|
14
|
+
} from "./context-memory-kernel/authority.js";
|
|
15
|
+
|
|
16
|
+
function assertLegacyMemoryManagerMutationAllowed(operation) {
|
|
17
|
+
assertLegacyMutationAllowed(
|
|
18
|
+
resolveCliContextMemoryCutover({
|
|
19
|
+
scopeKey: `cli:legacy-memory-manager:${operation}`,
|
|
20
|
+
}),
|
|
21
|
+
);
|
|
22
|
+
}
|
|
11
23
|
|
|
12
24
|
/**
|
|
13
25
|
* Atomically write a UTF-8 file: a crash mid-write must not truncate MEMORY.md
|
|
@@ -57,6 +69,15 @@ function ensureMemoryTable(db) {
|
|
|
57
69
|
`);
|
|
58
70
|
}
|
|
59
71
|
|
|
72
|
+
function memoryTableExists(db) {
|
|
73
|
+
const row = db
|
|
74
|
+
.prepare(
|
|
75
|
+
"SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'memory_entries'",
|
|
76
|
+
)
|
|
77
|
+
.get();
|
|
78
|
+
return Boolean(row);
|
|
79
|
+
}
|
|
80
|
+
|
|
60
81
|
/**
|
|
61
82
|
* Get the memory directory path
|
|
62
83
|
*/
|
|
@@ -68,6 +89,7 @@ export function getMemoryDir(dataDir) {
|
|
|
68
89
|
* Add an entry to memory (stored in DB)
|
|
69
90
|
*/
|
|
70
91
|
export function addMemory(db, content, options = {}) {
|
|
92
|
+
assertLegacyMemoryManagerMutationAllowed("add");
|
|
71
93
|
ensureMemoryTable(db);
|
|
72
94
|
|
|
73
95
|
if (!content || !content.trim()) {
|
|
@@ -142,7 +164,9 @@ export function listMemory(db, options = {}) {
|
|
|
142
164
|
* ordered deterministically so the same DB exports identically.
|
|
143
165
|
*/
|
|
144
166
|
export function exportMemory(db) {
|
|
145
|
-
|
|
167
|
+
// Canonical cutover calls this as a one-time read-only importer. Do not
|
|
168
|
+
// create a legacy table merely because no legacy data exists.
|
|
169
|
+
if (!memoryTableExists(db)) return [];
|
|
146
170
|
return db
|
|
147
171
|
.prepare(
|
|
148
172
|
`SELECT id, content, category, importance, source, created_at, updated_at
|
|
@@ -162,6 +186,7 @@ function _nowSqlite() {
|
|
|
162
186
|
* updated_at. Never aborts mid-batch; returns {ok, imported, failed, errors}.
|
|
163
187
|
*/
|
|
164
188
|
export function importMemory(db, entries) {
|
|
189
|
+
assertLegacyMemoryManagerMutationAllowed("import");
|
|
165
190
|
ensureMemoryTable(db);
|
|
166
191
|
if (!Array.isArray(entries)) {
|
|
167
192
|
throw new Error("importMemory: entries must be a JSON array");
|
|
@@ -208,6 +233,7 @@ export function importMemory(db, entries) {
|
|
|
208
233
|
* Delete a memory entry
|
|
209
234
|
*/
|
|
210
235
|
export function deleteMemory(db, id) {
|
|
236
|
+
assertLegacyMemoryManagerMutationAllowed("delete");
|
|
211
237
|
ensureMemoryTable(db);
|
|
212
238
|
|
|
213
239
|
// Try exact match first, then prefix match
|
|
@@ -228,6 +254,7 @@ export function deleteMemory(db, id) {
|
|
|
228
254
|
* Append to today's daily note
|
|
229
255
|
*/
|
|
230
256
|
export function appendDailyNote(memoryDir, content) {
|
|
257
|
+
assertLegacyMemoryManagerMutationAllowed("append-daily-note");
|
|
231
258
|
ensureMemoryDirs(memoryDir);
|
|
232
259
|
|
|
233
260
|
const today = new Date().toISOString().slice(0, 10); // YYYY-MM-DD
|
|
@@ -260,8 +287,6 @@ export function getDailyNote(memoryDir, date) {
|
|
|
260
287
|
* List available daily notes
|
|
261
288
|
*/
|
|
262
289
|
export function listDailyNotes(memoryDir, options = {}) {
|
|
263
|
-
ensureMemoryDirs(memoryDir);
|
|
264
|
-
|
|
265
290
|
const dailyDir = path.join(memoryDir, "daily");
|
|
266
291
|
const limit = Math.max(1, parseInt(options.limit) || 30);
|
|
267
292
|
|
|
@@ -291,13 +316,13 @@ export function listDailyNotes(memoryDir, options = {}) {
|
|
|
291
316
|
* Read or update the MEMORY.md file (long-term knowledge)
|
|
292
317
|
*/
|
|
293
318
|
export function getMemoryFile(memoryDir) {
|
|
294
|
-
ensureMemoryDirs(memoryDir);
|
|
295
319
|
const filePath = path.join(memoryDir, "MEMORY.md");
|
|
296
320
|
if (!fs.existsSync(filePath)) return "";
|
|
297
321
|
return fs.readFileSync(filePath, "utf8");
|
|
298
322
|
}
|
|
299
323
|
|
|
300
324
|
export function updateMemoryFile(memoryDir, content) {
|
|
325
|
+
assertLegacyMemoryManagerMutationAllowed("update-memory-file");
|
|
301
326
|
ensureMemoryDirs(memoryDir);
|
|
302
327
|
const filePath = path.join(memoryDir, "MEMORY.md");
|
|
303
328
|
atomicWriteFileSync(filePath, content);
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export const CONTEXT_WINDOWS = Object.freeze({
|
|
2
|
+
"qwen2.5:7b": 32768,
|
|
3
|
+
"qwen2.5:14b": 32768,
|
|
4
|
+
"qwen2.5-coder:14b": 32768,
|
|
5
|
+
"qwen2:7b": 32768,
|
|
6
|
+
"llama3:8b": 8192,
|
|
7
|
+
"mistral:7b": 32768,
|
|
8
|
+
"codellama:7b": 16384,
|
|
9
|
+
"gpt-4o": 128000,
|
|
10
|
+
"gpt-4o-mini": 128000,
|
|
11
|
+
"gpt-4-turbo": 128000,
|
|
12
|
+
"gpt-3.5-turbo": 16385,
|
|
13
|
+
o1: 200000,
|
|
14
|
+
"claude-opus-4-6": 200000,
|
|
15
|
+
"claude-sonnet-4-6": 200000,
|
|
16
|
+
"claude-haiku-4-5-20251001": 200000,
|
|
17
|
+
"deepseek-chat": 64000,
|
|
18
|
+
"deepseek-coder": 64000,
|
|
19
|
+
"deepseek-reasoner": 64000,
|
|
20
|
+
"qwen-turbo": 131072,
|
|
21
|
+
"qwen-plus": 131072,
|
|
22
|
+
"qwen-max": 32768,
|
|
23
|
+
"gemini-2.0-flash": 1048576,
|
|
24
|
+
"gemini-2.0-pro": 1048576,
|
|
25
|
+
"gemini-1.5-flash": 1048576,
|
|
26
|
+
"moonshot-v1-auto": 131072,
|
|
27
|
+
"moonshot-v1-8k": 8192,
|
|
28
|
+
"moonshot-v1-32k": 32768,
|
|
29
|
+
"moonshot-v1-128k": 131072,
|
|
30
|
+
"doubao-seed-1-6-251015": 32768,
|
|
31
|
+
"doubao-seed-2-1-pro-260628": 32768,
|
|
32
|
+
_provider_defaults: Object.freeze({
|
|
33
|
+
ollama: 32768,
|
|
34
|
+
openai: 128000,
|
|
35
|
+
anthropic: 200000,
|
|
36
|
+
deepseek: 64000,
|
|
37
|
+
dashscope: 131072,
|
|
38
|
+
gemini: 1048576,
|
|
39
|
+
kimi: 131072,
|
|
40
|
+
volcengine: 32768,
|
|
41
|
+
minimax: 32768,
|
|
42
|
+
mistral: 32768,
|
|
43
|
+
}),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export function getContextWindow(model, provider) {
|
|
47
|
+
if (model && CONTEXT_WINDOWS[model]) return CONTEXT_WINDOWS[model];
|
|
48
|
+
if (provider && CONTEXT_WINDOWS._provider_defaults[provider]) {
|
|
49
|
+
return CONTEXT_WINDOWS._provider_defaults[provider];
|
|
50
|
+
}
|
|
51
|
+
return 32768;
|
|
52
|
+
}
|
|
@@ -9,6 +9,18 @@
|
|
|
9
9
|
import fs from "fs";
|
|
10
10
|
import path from "path";
|
|
11
11
|
import { BM25Search } from "./bm25-search.js";
|
|
12
|
+
import {
|
|
13
|
+
assertLegacyMutationAllowed,
|
|
14
|
+
resolveCliContextMemoryCutover,
|
|
15
|
+
} from "./context-memory-kernel/authority.js";
|
|
16
|
+
|
|
17
|
+
function assertLegacyPermanentMemoryMutationAllowed(operation) {
|
|
18
|
+
assertLegacyMutationAllowed(
|
|
19
|
+
resolveCliContextMemoryCutover({
|
|
20
|
+
scopeKey: `cli:legacy-permanent-memory:${operation}`,
|
|
21
|
+
}),
|
|
22
|
+
);
|
|
23
|
+
}
|
|
12
24
|
|
|
13
25
|
// Exported for test injection
|
|
14
26
|
export const _deps = {
|
|
@@ -66,6 +78,7 @@ export class CLIPermanentMemory {
|
|
|
66
78
|
*/
|
|
67
79
|
initialize() {
|
|
68
80
|
if (this._initialized) return;
|
|
81
|
+
assertLegacyPermanentMemoryMutationAllowed("initialize");
|
|
69
82
|
this._initialized = true;
|
|
70
83
|
|
|
71
84
|
// Ensure directories
|
|
@@ -120,6 +133,7 @@ export class CLIPermanentMemory {
|
|
|
120
133
|
*/
|
|
121
134
|
appendDailyNote(content) {
|
|
122
135
|
if (!this.memoryDir || !content) return null;
|
|
136
|
+
assertLegacyPermanentMemoryMutationAllowed("append-daily-note");
|
|
123
137
|
|
|
124
138
|
try {
|
|
125
139
|
const today = new Date().toISOString().slice(0, 10);
|
|
@@ -154,6 +168,7 @@ export class CLIPermanentMemory {
|
|
|
154
168
|
*/
|
|
155
169
|
updateMemoryFile(section, content) {
|
|
156
170
|
if (!this.memoryDir) return null;
|
|
171
|
+
assertLegacyPermanentMemoryMutationAllowed("update-memory-file");
|
|
157
172
|
|
|
158
173
|
try {
|
|
159
174
|
const filePath = _deps.path.join(this.memoryDir, "MEMORY.md");
|
|
@@ -228,6 +243,7 @@ export class CLIPermanentMemory {
|
|
|
228
243
|
*/
|
|
229
244
|
autoSummarize(sessionMessages) {
|
|
230
245
|
if (!sessionMessages || sessionMessages.length < 4) return [];
|
|
246
|
+
assertLegacyPermanentMemoryMutationAllowed("auto-summarize");
|
|
231
247
|
|
|
232
248
|
const facts = [];
|
|
233
249
|
|
|
@@ -281,6 +297,7 @@ export class CLIPermanentMemory {
|
|
|
281
297
|
*/
|
|
282
298
|
_storeEntry(content, source = "auto", importance = 0.5) {
|
|
283
299
|
if (!this.db) return null;
|
|
300
|
+
assertLegacyPermanentMemoryMutationAllowed("store-entry");
|
|
284
301
|
try {
|
|
285
302
|
const id = `pm-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
286
303
|
this.db
|
package/src/lib/plan-mode.js
CHANGED
|
@@ -1530,10 +1530,14 @@ export class PlanModeManager extends EventEmitter {
|
|
|
1530
1530
|
*/
|
|
1531
1531
|
_fireHook(eventName, context) {
|
|
1532
1532
|
if (!this._hookDb) return;
|
|
1533
|
-
// Dynamic import
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1533
|
+
// Dynamic import avoids a constructor-time dependency while keeping the
|
|
1534
|
+
// legacy SQLite registry behind the canonical Hooks v2 adapter.
|
|
1535
|
+
import("./hooks-v2-producers.js")
|
|
1536
|
+
.then(({ executeHooksV2Event }) => {
|
|
1537
|
+
executeHooksV2Event(eventName, context, {
|
|
1538
|
+
hookDb: this._hookDb,
|
|
1539
|
+
matchTarget: context?.target || eventName,
|
|
1540
|
+
}).catch(() => {});
|
|
1537
1541
|
})
|
|
1538
1542
|
.catch(() => {});
|
|
1539
1543
|
}
|
|
@@ -375,4 +375,35 @@ export async function resolveCredentialRefOverTransport(refId, options = {}) {
|
|
|
375
375
|
});
|
|
376
376
|
}
|
|
377
377
|
|
|
378
|
+
/**
|
|
379
|
+
* Resolve one named environment credential without copying plaintext back into
|
|
380
|
+
* process.env. Direct launches keep accepting the original environment value;
|
|
381
|
+
* brokered launches exchange the short-lived, target-bound reference that the
|
|
382
|
+
* ProcessExecutionBroker placed in CC_CRED_REF_<NAME>.
|
|
383
|
+
*/
|
|
384
|
+
export async function resolveCredentialEnvironmentValue(key, options = {}) {
|
|
385
|
+
if (!/^[A-Z][A-Z0-9_]*$/u.test(String(key || ""))) {
|
|
386
|
+
throw transportError(
|
|
387
|
+
"CC_CREDENTIAL_INVALID_REQUEST",
|
|
388
|
+
"Credential environment key is invalid",
|
|
389
|
+
);
|
|
390
|
+
}
|
|
391
|
+
const env = options.env || process.env;
|
|
392
|
+
const value = env[key];
|
|
393
|
+
const refId = env[`CC_CRED_REF_${key}`];
|
|
394
|
+
const hasValue = typeof value === "string" && value.length > 0;
|
|
395
|
+
const hasReference = typeof refId === "string" && refId.length > 0;
|
|
396
|
+
if (hasValue && hasReference) {
|
|
397
|
+
throw transportError(
|
|
398
|
+
"CC_CREDENTIAL_INVALID_REQUEST",
|
|
399
|
+
"Credential environment contains both plaintext and a broker reference",
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
if (hasValue) return value;
|
|
403
|
+
if (!hasReference) return null;
|
|
404
|
+
const resolveReference =
|
|
405
|
+
options.resolveReference || resolveCredentialRefOverTransport;
|
|
406
|
+
return await resolveReference(refId, { env });
|
|
407
|
+
}
|
|
408
|
+
|
|
378
409
|
export { TRANSPORT_VERSION };
|