chainlesschain 0.166.10 → 0.166.13
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-BN25cNOD.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CpeSttcu.js → ActionButton-Da9IP-m5.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-Ba1TNLG0.js → Analytics-D7hkEvQm.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-xBy8EOeg.js → AppLayout-CCV4Xnbc.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-CJ_3TFb8.js → Artifacts-CVSnVJeA.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DUATFCG3.js → Audit-CuYdw5Ag.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-BRXYPIGp.js → BackgroundAgents-DZCnK-Tf.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-D8auLx7y.js → Backup-cV9FdpTy.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-CBgdslQ3.js → BaseInput-BRnv6YSp.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-B32LvAiE.js → Chat-Bw5w87P4.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-CVfvAy-n.js → ChatBubbleRenderer-C0GjtUAw.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-BwzBxOpC.js → Checkbox-DaoTqcdt.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-0U5vrg1H.js → Codegen-B4dYcEIi.js} +1 -1
- package/src/assets/web-panel/assets/{Col-dZ2i4aAj.js → Col-mAhuOeuD.js} +1 -1
- package/src/assets/web-panel/assets/{Community-UVvpLr8c.js → Community-BK6KEdBk.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BDNEb1Bd.js → Compact-CCglmNu5.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BrzQPxyS.js → Compliance-Cm8S4of7.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BbgGsu-9.js → Cowork-Dhs1QLMe.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-G321XPhp.js → Cron-CLlhmXWk.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CgLNUyMn.js → Crosschain-BnHVbaNs.js} +1 -1
- package/src/assets/web-panel/assets/{DID-BAfRj18q.js → DID-UzQP9-0O.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BNIxA4TK.js → Dashboard-CBdlPClz.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BLAUmCAN.js → Dropdown-axIRPdq1.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CsnhTW22.js → EmailListRenderer-DUalW5rx.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-zcQ7Ip1n.js → FamilyGuardDashboard-Bl4W9luY.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-KFwxodNU.js → Federation-C1yP-uEu.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-3CYRLEHG.js → FormItemContext-Xh6Ig5q8.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-D3d9D8L9.js → GenericCardRenderer-C2cz3bt2.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BJ202nJY.js → Git-C_z63ixg.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-ClnnXVQ-.js → Governance-BYqB33_3.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DNU-PTkc.js → Inference-CEULuArm.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DJuinbuY.js → KnowledgeGraph-fgMsu-0H.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D4No-46s.js → Logs-DO9Hdcec.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-BkrK04xW.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-Ba-KqRN3.js → Marketplace-B8zyLiFe.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DVoxnPgE.js → McpTools-BLAN2mWW.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-D_C8gzAZ.js → Memory-CrQcFM7u.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-DnzTPcDH.js → MobileBridge-DVnyiiU-.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-qjCME5OD.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-CvEHmHId.js → Mtc-4JE3C3It.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-VNJmWqmv.js → MtcAudit-CjBuak9I.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-BO0x_Vsa.js → Multisig-BtPcYQcC.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CM2gI1UY.js → NLProgramming-Cx653_Ba.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-CMc1HsML.js → Notes-CkuD3YzS.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DGNmSKGM.js → NotificationSettings-BgNgU7HH.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Du-Kct3p.js → OrderTableRenderer-BTC8W0a-.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DRtRZjas.js → Organization-Dmd4Hjxz.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-Dp4OeWsn.js → Overflow-C_5DA-G0.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-DXMJVls8.js → P2P-uwslV4XC.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-CuNgwVnX.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-D1Hbb51o.js → Permissions-CJayVX9H.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BridiDhr.js → PersonalDataHub-Cb05H5go.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-B4bUNCm1.js → Pipeline-BZlGKapZ.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-BTu_HEqK.js → Privacy-BIzZWYzd.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-SVtL2hnt.js → ProjectInit-vEYYyQXQ.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-B2Sh7JZ2.js → ProjectSettings-MZqTy5CC.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BwU1xalW.js → Projects-CRARUOl8.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BWdWQSDw.js → Providers-80VAK8PX.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-Brzc-Sxb.js → QrScannerModal-CzRSoIwK.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DIBz7FCe.js → QuickAsk-BpwQ2n4C.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CZ8RriIJ.js → Recommend-BC03TZ79.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-CM0KJQ3t.js → RemoteSession-DE59-jaa.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-D_wo8H0O.js → Reputation-DOHmeWyA.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D1G1fD7N.js → Row-hc5RZl1D.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-dKCVtA0K.js → RssFeed-Cv5uMP7E.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Be1D61xo.js → Search-qohu7Ug0.js} +1 -1
- package/src/assets/web-panel/assets/{Security-IbNiR6OC.js → Security-drCPFWV5.js} +4 -4
- package/src/assets/web-panel/assets/{Services-nuHK8y8p.js → Services-BAEgUeRy.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-DnM5jdnC.js → Skeleton-CkJkKBlo.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DCTdoq_q.js → Skills-bMuKEpez.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DlWun-Ui.js → Sla-DxWQVHRC.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-C19kv2sd.js → SpeechSettings-BpS8idmV.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-CkQIR_Hu.js → SyncSettings-BPBLlW5v.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DdbqOEbs.js → Tasks-C4SLEeUh.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-B7GpIXeo.js → Templates-r-wfU39U.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-ByEstFhY.js → Tenant-C7vjRmLN.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-BKRVID1a.js → Terminal-DdzeFCV2.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-CNS3dHNv.js → TimelineRenderer-CYyWN2KD.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BykqylCL.js → Tokens-D8A9osUg.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-ByNxq51W.js → Trigger-DBvrNlyS.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BlrFsdaS.js → Trust-DBVAGc7o.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Dg26A-sd.js → UkeySign-C1vQUCRJ.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-C1wUxNn0.js → VideoEditing-BKs4dah4.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-OphEUzI4.js → Wallet-ByIuj3lD.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-_8lL08hF.js → WebAuthn-DYlAFCm9.js} +3 -3
- package/src/assets/web-panel/assets/{WorkflowEditor-BnTuIvnP.js → WorkflowEditor-Dwyadd0c.js} +1 -1
- package/src/assets/web-panel/assets/{chat-3N3VLQYr.js → chat-Bm2f3s08.js} +1 -1
- package/src/assets/web-panel/assets/{colors-Bo_G96gg.js → colors-C8ORSh7V.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DjubfjI_.js → compact-item-1iVlnsM-.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-Cx_HSLCk.js → createContext-CmqNyUSL.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-B69RCDDH.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-D5OjAOlA.js → hasIn-rUMaX3Ul.js} +1 -1
- package/src/assets/web-panel/assets/index-9biMQ-tw.js +1 -0
- package/src/assets/web-panel/assets/{index-Bj7S5IJw.js → index-B53c3diB.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-_Cy0k_.js → index-B59OWAs7.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaU60K3A.js → index-B8BrB0Ls.js} +1 -1
- package/src/assets/web-panel/assets/{index-UnpsQ6A0.js → index-BC32_0xT.js} +1 -1
- package/src/assets/web-panel/assets/{index-BScGr1BY.js → index-BC8Wb6cy.js} +1 -1
- package/src/assets/web-panel/assets/{index-CC7RnaPP.js → index-BCOhTILd.js} +1 -1
- package/src/assets/web-panel/assets/{index-DXJqa1-I.js → index-BFniLMn9.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-4sfa0l.js → index-BIvM-uAX.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8dPFFhy.js → index-BK-RY0-7.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVPDhmVH.js → index-BQL9r73Y.js} +1 -1
- package/src/assets/web-panel/assets/{index-CqZq3zWr.js → index-BVtnizyC.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5IwN9q3.js → index-Bf1PlIHp.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cz5tQ5PY.js → index-Bgw4Y2rU.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmLwI-Y8.js → index-BgwLNxmr.js} +1 -1
- package/src/assets/web-panel/assets/{index-Y-H7j25u.js → index-C-J5-pGH.js} +1 -1
- package/src/assets/web-panel/assets/{index-ydnEPOzZ.js → index-C-ZIHi42.js} +1 -1
- package/src/assets/web-panel/assets/{index-HioDjvUF.js → index-C3B1S-mW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRKk1JPX.js → index-C5RfRciU.js} +1 -1
- package/src/assets/web-panel/assets/{index-x7o-2T3S.js → index-CCEyz58d.js} +1 -1
- package/src/assets/web-panel/assets/index-COie87kl.js +1 -0
- package/src/assets/web-panel/assets/{index-BvYo09C0.js → index-CTfEmKK0.js} +1 -1
- package/src/assets/web-panel/assets/{index-CCjq3g32.js → index-CfiHyVyl.js} +1 -1
- package/src/assets/web-panel/assets/{index-3_CEBEEf.js → index-CkFvuAex.js} +3 -3
- package/src/assets/web-panel/assets/{index-EZr3bvz2.js → index-D98FXb0w.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4MAnkl5.js → index-DDHk911Q.js} +1 -1
- package/src/assets/web-panel/assets/{index-BgPb37tI.js → index-DJxtPFOh.js} +1 -1
- package/src/assets/web-panel/assets/{index-CNmsP0Xf.js → index-DVJ1uKf4.js} +1 -1
- package/src/assets/web-panel/assets/{index-DBvZhdCb.js → index-Dcck8QfW.js} +1 -1
- package/src/assets/web-panel/assets/{index-B905-Mcs.js → index-DgUE51Pz.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrVjatPe.js → index-Dsve5Gkv.js} +1 -1
- package/src/assets/web-panel/assets/{index-uAcJUJkx.js → index-DvedhJeM.js} +1 -1
- package/src/assets/web-panel/assets/{index-DD1zSPZH.js → index-DwMdWKiF.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxgIE4PD.js → index-OcbzdRpT.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ce8EWU6r.js → index-fPK6GFEg.js} +1 -1
- package/src/assets/web-panel/assets/{index-DlcbE0sX.js → index-geQinnns.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dbdr8tVi.js → index-pHWA7bmM.js} +1 -1
- package/src/assets/web-panel/assets/{index-DE4XtzMl.js → index-reUHhuz8.js} +1 -1
- package/src/assets/web-panel/assets/{index-Q_vn0t8d.js → index-tqTx5wXo.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DurpENJY.js → initDefaultProps-CuA-cpkL.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CIh-z-gR.js → motion-CimmE_9b.js} +1 -1
- package/src/assets/web-panel/assets/{move-Uc_yI2NA.js → move-DlGlrltz.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-DUevj5wz.js → mtc-parser-CK6BJQ07.js} +1 -1
- package/src/assets/web-panel/assets/{omit-85eMYyur.js → omit-BKjBfZfB.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-AuxDD20F.js → pickAttrs-B2chVYw9.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-DOWn8dd1.js → placementArrow-BW8aLJJ3.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CPxTWodH.js → responsiveObserve-dXlPl66S.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BqvbGPjx.js → slide-hSa89S4G.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BzXKkV8d.js → statusUtils-DM6KLt-s.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-B2O7yRk3.js → styleChecker-C9MQAK15.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DRWp7px1.js → useFlexGapSupport-BpQDpP0z.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-Dp0V7sjM.js → useFs-C7rtRViA.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CyCrG3ql.js → usePersonalDataHub-Dm15xafq.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CXhoFpFo.js → vnode-mEiEytw4.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-0z3mtwEg.js → zoom-DzPxflhY.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 +51 -20
- 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/serve.js +94 -10
- package/src/commands/session.js +2 -3
- package/src/commands/team.js +7 -1
- package/src/data/changelog.json +28 -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 +14 -4
- package/src/lib/agent-team/team-distributed-graph-bridge.js +3 -3
- 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/index.js +208 -16
- 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 +40 -33
- 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
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
import { createHash } from "node:crypto";
|
|
13
13
|
import { feature, featureVariant } from "../lib/feature-flags.js";
|
|
14
14
|
import { isAbortError } from "../lib/abort-utils.js";
|
|
15
|
+
import {
|
|
16
|
+
CONTEXT_WINDOWS,
|
|
17
|
+
getContextWindow,
|
|
18
|
+
} from "../lib/model-context-window.js";
|
|
19
|
+
export { CONTEXT_WINDOWS, getContextWindow } from "../lib/model-context-window.js";
|
|
15
20
|
import {
|
|
16
21
|
DURABLE_SYSTEM_MESSAGE_KINDS,
|
|
17
22
|
getDurableSystemMessageProvenance,
|
|
@@ -184,61 +189,6 @@ function getContent(msg) {
|
|
|
184
189
|
: JSON.stringify(msg.content || "");
|
|
185
190
|
}
|
|
186
191
|
|
|
187
|
-
export const CONTEXT_WINDOWS = {
|
|
188
|
-
"qwen2.5:7b": 32768,
|
|
189
|
-
"qwen2.5:14b": 32768,
|
|
190
|
-
"qwen2.5-coder:14b": 32768,
|
|
191
|
-
"qwen2:7b": 32768,
|
|
192
|
-
"llama3:8b": 8192,
|
|
193
|
-
"mistral:7b": 32768,
|
|
194
|
-
"codellama:7b": 16384,
|
|
195
|
-
"gpt-4o": 128000,
|
|
196
|
-
"gpt-4o-mini": 128000,
|
|
197
|
-
"gpt-4-turbo": 128000,
|
|
198
|
-
"gpt-3.5-turbo": 16385,
|
|
199
|
-
o1: 200000,
|
|
200
|
-
"claude-opus-4-6": 200000,
|
|
201
|
-
"claude-sonnet-4-6": 200000,
|
|
202
|
-
"claude-haiku-4-5-20251001": 200000,
|
|
203
|
-
"deepseek-chat": 64000,
|
|
204
|
-
"deepseek-coder": 64000,
|
|
205
|
-
"deepseek-reasoner": 64000,
|
|
206
|
-
"qwen-turbo": 131072,
|
|
207
|
-
"qwen-plus": 131072,
|
|
208
|
-
"qwen-max": 32768,
|
|
209
|
-
"gemini-2.0-flash": 1048576,
|
|
210
|
-
"gemini-2.0-pro": 1048576,
|
|
211
|
-
"gemini-1.5-flash": 1048576,
|
|
212
|
-
"moonshot-v1-auto": 131072,
|
|
213
|
-
"moonshot-v1-8k": 8192,
|
|
214
|
-
"moonshot-v1-32k": 32768,
|
|
215
|
-
"moonshot-v1-128k": 131072,
|
|
216
|
-
"doubao-seed-1-6-251015": 32768,
|
|
217
|
-
"doubao-seed-2-1-pro-260628": 32768,
|
|
218
|
-
_provider_defaults: {
|
|
219
|
-
ollama: 32768,
|
|
220
|
-
openai: 128000,
|
|
221
|
-
anthropic: 200000,
|
|
222
|
-
deepseek: 64000,
|
|
223
|
-
dashscope: 131072,
|
|
224
|
-
gemini: 1048576,
|
|
225
|
-
kimi: 131072,
|
|
226
|
-
volcengine: 32768,
|
|
227
|
-
minimax: 32768,
|
|
228
|
-
mistral: 32768,
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
export function getContextWindow(model, provider) {
|
|
233
|
-
if (model && CONTEXT_WINDOWS[model]) {
|
|
234
|
-
return CONTEXT_WINDOWS[model];
|
|
235
|
-
}
|
|
236
|
-
if (provider && CONTEXT_WINDOWS._provider_defaults[provider]) {
|
|
237
|
-
return CONTEXT_WINDOWS._provider_defaults[provider];
|
|
238
|
-
}
|
|
239
|
-
return 32768;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
192
|
export const COMPRESSION_VARIANTS = {
|
|
243
193
|
aggressive: { tokenFactor: 0.4, messageFactor: 0.7 },
|
|
244
194
|
balanced: { tokenFactor: 0.6, messageFactor: 1.0 },
|
package/src/lib/agent-sandbox.js
CHANGED
|
@@ -259,10 +259,14 @@ export function normalizeAgentSandbox(value, options = {}) {
|
|
|
259
259
|
*/
|
|
260
260
|
export function normalizeAgentSandboxMode(mode, value, options = {}) {
|
|
261
261
|
if (mode == null || mode === "") {
|
|
262
|
-
//
|
|
263
|
-
//
|
|
264
|
-
//
|
|
265
|
-
|
|
262
|
+
// Public agent execution defaults to a real, fail-closed workspace
|
|
263
|
+
// sandbox with networking disabled. Bare-host execution remains available
|
|
264
|
+
// only through the explicit `off` mode below, where managed policy can
|
|
265
|
+
// prohibit it and the CLI records a high-risk security event.
|
|
266
|
+
return normalizeAgentSandboxMode("workspace-write", value || true, {
|
|
267
|
+
...options,
|
|
268
|
+
network: false,
|
|
269
|
+
});
|
|
266
270
|
}
|
|
267
271
|
if (!AGENT_SANDBOX_MODES.includes(mode)) {
|
|
268
272
|
const error = new Error(
|
|
@@ -392,6 +396,9 @@ export function executeSandboxedShell(command, sandbox, options = {}) {
|
|
|
392
396
|
timeout: options.timeout,
|
|
393
397
|
maxBuffer: options.maxBuffer,
|
|
394
398
|
windowsHide: true,
|
|
399
|
+
requirePersistentAudit: true,
|
|
400
|
+
auditRedactArgIndexes: [args.length - 1],
|
|
401
|
+
auditContext: options.auditContext,
|
|
395
402
|
});
|
|
396
403
|
if (result.error) {
|
|
397
404
|
return {
|
|
@@ -461,6 +468,9 @@ function executeBubblewrapShell(command, sandbox, options, hostCwd, policy) {
|
|
|
461
468
|
timeout: options.timeout,
|
|
462
469
|
maxBuffer: options.maxBuffer,
|
|
463
470
|
windowsHide: true,
|
|
471
|
+
requirePersistentAudit: true,
|
|
472
|
+
auditRedactArgIndexes: [args.length - 1],
|
|
473
|
+
auditContext: options.auditContext,
|
|
464
474
|
});
|
|
465
475
|
if (result.error) {
|
|
466
476
|
return {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
|
-
import {
|
|
3
|
+
import { createRolloutStore } from "../app-server/rollout-store-factory.js";
|
|
4
4
|
|
|
5
5
|
export const TEAM_DISTRIBUTED_GRAPH_BRIDGE_SCHEMA =
|
|
6
6
|
"chainlesschain.team-distributed-graph-bridge/v1";
|
|
7
7
|
|
|
8
|
-
// Keep every derived thread/idempotency key inside
|
|
8
|
+
// Keep every derived thread/idempotency key inside the RolloutStore contract's
|
|
9
9
|
// bounds after this adapter adds its domain prefix.
|
|
10
10
|
const ID = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/u;
|
|
11
11
|
const REQUEST_TYPES = new Set(["dispatch", "settle", "cancel"]);
|
|
@@ -74,7 +74,7 @@ export class TeamDistributedGraphBridge {
|
|
|
74
74
|
this.runId = identifier(runId, "runId");
|
|
75
75
|
this.threadId = identifier(`team-graph-bridge:${this.queueId}`, "threadId");
|
|
76
76
|
this.store =
|
|
77
|
-
store ||
|
|
77
|
+
store || createRolloutStore({ directory: this.directory, now });
|
|
78
78
|
const thread = this.store.start({
|
|
79
79
|
threadId: this.threadId,
|
|
80
80
|
title: `Distributed Team Graph bridge ${this.queueId}`,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const MEMORY_MUTATION_EVENTS = new Set([
|
|
2
|
+
"memory.candidate.created",
|
|
3
|
+
"memory.activated",
|
|
4
|
+
"memory.reinforced",
|
|
5
|
+
"memory.superseded",
|
|
6
|
+
"memory.expired",
|
|
7
|
+
]);
|
|
8
|
+
|
|
9
|
+
export function contextPlanCreatedNotification(plan) {
|
|
10
|
+
return {
|
|
11
|
+
method: "context/event",
|
|
12
|
+
params: { type: "context.plan.created", plan },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function memoryRecalledNotification(result) {
|
|
17
|
+
return {
|
|
18
|
+
method: "memory/event",
|
|
19
|
+
params: { type: "memory.recalled", result },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function memoryMutationNotification(mutation) {
|
|
24
|
+
if (!MEMORY_MUTATION_EVENTS.has(mutation?.event?.type)) return null;
|
|
25
|
+
return {
|
|
26
|
+
method: "memory/event",
|
|
27
|
+
params: {
|
|
28
|
+
type: mutation.event.type,
|
|
29
|
+
memory_id: mutation.record.memoryId,
|
|
30
|
+
revision: mutation.record.revision,
|
|
31
|
+
record_digest: mutation.record.digest,
|
|
32
|
+
record: mutation.record,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function memoryDeletionNotification(receipt, operationId = receipt?.requestId) {
|
|
38
|
+
if (!receipt?.memoryId || !receipt?.recordDigest || !receipt?.revision) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const purged = receipt.status === "purged";
|
|
42
|
+
return {
|
|
43
|
+
method: "memory/event",
|
|
44
|
+
params: {
|
|
45
|
+
type: purged ? "memory.purged" : "memory.deleted",
|
|
46
|
+
operation_id: operationId,
|
|
47
|
+
request_id: receipt.requestId || operationId,
|
|
48
|
+
memory_id: receipt.memoryId,
|
|
49
|
+
revision: receipt.revision,
|
|
50
|
+
record_digest: receipt.recordDigest,
|
|
51
|
+
...(purged ? { receipt } : {}),
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
JsonlRolloutStore,
|
|
5
|
+
assertRolloutStore,
|
|
6
|
+
defaultRolloutStoreDirectory,
|
|
7
|
+
} from "./rollout-store.js";
|
|
8
|
+
import {
|
|
9
|
+
SqliteRolloutStore,
|
|
10
|
+
sqliteRolloutStoreAvailable,
|
|
11
|
+
} from "./sqlite-rollout-store.js";
|
|
12
|
+
|
|
13
|
+
export const ROLLOUT_STORE_BACKENDS = Object.freeze(["jsonl", "sqlite"]);
|
|
14
|
+
export const ROLLOUT_STORE_ENV = "CHAINLESSCHAIN_ROLLOUT_STORE";
|
|
15
|
+
export const ROLLOUT_STORE_PATH_ENV = "CHAINLESSCHAIN_ROLLOUT_STORE_PATH";
|
|
16
|
+
|
|
17
|
+
function factoryError(code, message, details = {}) {
|
|
18
|
+
const error = new Error(message);
|
|
19
|
+
error.name = "RolloutStoreFactoryError";
|
|
20
|
+
error.code = code;
|
|
21
|
+
Object.assign(error, details);
|
|
22
|
+
return error;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function normalizeRolloutStoreBackend(value = null) {
|
|
26
|
+
const backend = String(value || "jsonl")
|
|
27
|
+
.trim()
|
|
28
|
+
.toLowerCase();
|
|
29
|
+
if (!ROLLOUT_STORE_BACKENDS.includes(backend)) {
|
|
30
|
+
throw factoryError(
|
|
31
|
+
"CC_ROLLOUT_BACKEND_UNSUPPORTED",
|
|
32
|
+
`unsupported rollout store backend: ${backend || "empty"}`,
|
|
33
|
+
{ backend, supported: [...ROLLOUT_STORE_BACKENDS] },
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return backend;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function defaultSqliteRolloutStoreFilename() {
|
|
40
|
+
return path.join(
|
|
41
|
+
path.dirname(defaultRolloutStoreDirectory()),
|
|
42
|
+
"rollouts.sqlite",
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function labelStore(store, backend, location) {
|
|
47
|
+
if (!Object.isExtensible(store)) return store;
|
|
48
|
+
for (const [key, value] of Object.entries({ backend, location })) {
|
|
49
|
+
if (!Object.prototype.hasOwnProperty.call(store, key)) {
|
|
50
|
+
Object.defineProperty(store, key, {
|
|
51
|
+
configurable: false,
|
|
52
|
+
enumerable: false,
|
|
53
|
+
writable: false,
|
|
54
|
+
value,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return store;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Resolve one physical adapter behind the canonical RolloutStore contract.
|
|
63
|
+
* A host-provided adapter is the extension seam for remote/synchronized stores;
|
|
64
|
+
* it is accepted only after the complete logical contract is present.
|
|
65
|
+
*/
|
|
66
|
+
export function createRolloutStore({
|
|
67
|
+
backend = process.env[ROLLOUT_STORE_ENV] || "jsonl",
|
|
68
|
+
location = process.env[ROLLOUT_STORE_PATH_ENV] || null,
|
|
69
|
+
directory = null,
|
|
70
|
+
filename = null,
|
|
71
|
+
adapter = null,
|
|
72
|
+
now = Date.now,
|
|
73
|
+
} = {}) {
|
|
74
|
+
if (adapter) {
|
|
75
|
+
return labelStore(assertRolloutStore(adapter), "custom", location || null);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const normalizedBackend = normalizeRolloutStoreBackend(backend);
|
|
79
|
+
if (normalizedBackend === "jsonl") {
|
|
80
|
+
const resolvedDirectory = path.resolve(
|
|
81
|
+
directory || location || defaultRolloutStoreDirectory(),
|
|
82
|
+
);
|
|
83
|
+
return labelStore(
|
|
84
|
+
assertRolloutStore(
|
|
85
|
+
new JsonlRolloutStore({ directory: resolvedDirectory, now }),
|
|
86
|
+
),
|
|
87
|
+
normalizedBackend,
|
|
88
|
+
resolvedDirectory,
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (!sqliteRolloutStoreAvailable()) {
|
|
93
|
+
throw factoryError(
|
|
94
|
+
"CC_ROLLOUT_SQLITE_UNAVAILABLE",
|
|
95
|
+
"SQLite rollout storage is unavailable in this Node runtime",
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
const resolvedFilename = path.resolve(
|
|
99
|
+
filename ||
|
|
100
|
+
(directory ? path.join(directory, "rollouts.sqlite") : null) ||
|
|
101
|
+
location ||
|
|
102
|
+
defaultSqliteRolloutStoreFilename(),
|
|
103
|
+
);
|
|
104
|
+
return labelStore(
|
|
105
|
+
assertRolloutStore(
|
|
106
|
+
new SqliteRolloutStore({ filename: resolvedFilename, now }),
|
|
107
|
+
),
|
|
108
|
+
normalizedBackend,
|
|
109
|
+
resolvedFilename,
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export function closeRolloutStore(store) {
|
|
114
|
+
if (store && typeof store.close === "function") store.close();
|
|
115
|
+
}
|