@cleocode/core 2026.6.12 → 2026.6.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/dist/conduit/local-transport.d.ts +12 -0
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +53 -23
- package/dist/conduit/local-transport.js.map +1 -1
- package/dist/crypto/credentials.d.ts +37 -0
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +110 -0
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/dispatch/contracts/derive-output-contract.d.ts +86 -0
- package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -0
- package/dist/dispatch/contracts/derive-output-contract.js +347 -0
- package/dist/dispatch/contracts/derive-output-contract.js.map +1 -0
- package/dist/dispatch/contracts/ensures-schema.d.ts +77 -0
- package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -0
- package/dist/dispatch/contracts/ensures-schema.js +91 -0
- package/dist/dispatch/contracts/ensures-schema.js.map +1 -0
- package/dist/dispatch/contracts/output-contracts.d.ts +27 -5
- package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/output-contracts.js +29 -6
- package/dist/dispatch/contracts/output-contracts.js.map +1 -1
- package/dist/docs/export-document.js +2294 -1250
- package/dist/docs/export-document.js.map +3 -3
- package/dist/go/driver.d.ts +132 -7
- package/dist/go/driver.d.ts.map +1 -1
- package/dist/go/driver.js +135 -10
- package/dist/go/driver.js.map +1 -1
- package/dist/go/index.d.ts +1 -1
- package/dist/go/index.d.ts.map +1 -1
- package/dist/go/index.js +1 -1
- package/dist/go/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +13 -10
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +11 -11
- package/dist/internal.js.map +1 -1
- package/dist/lifecycle/engine-ops.d.ts.map +1 -1
- package/dist/lifecycle/engine-ops.js +7 -4
- package/dist/lifecycle/engine-ops.js.map +1 -1
- package/dist/lifecycle/ivtr-loop.d.ts +108 -183
- package/dist/lifecycle/ivtr-loop.d.ts.map +1 -1
- package/dist/lifecycle/ivtr-loop.js +207 -522
- package/dist/lifecycle/ivtr-loop.js.map +1 -1
- package/dist/llm/auxiliary-fallback.js +1 -1
- package/dist/llm/auxiliary-fallback.js.map +1 -1
- package/dist/llm/cli-ops.d.ts +14 -1
- package/dist/llm/cli-ops.d.ts.map +1 -1
- package/dist/llm/cli-ops.js +41 -12
- package/dist/llm/cli-ops.js.map +1 -1
- package/dist/llm/concrete-session.d.ts.map +1 -1
- package/dist/llm/concrete-session.js +4 -0
- package/dist/llm/concrete-session.js.map +1 -1
- package/dist/llm/credentials.d.ts +35 -0
- package/dist/llm/credentials.d.ts.map +1 -1
- package/dist/llm/credentials.js +49 -0
- package/dist/llm/credentials.js.map +1 -1
- package/dist/llm/index.d.ts +4 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +4 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/pi/gondolin-loader.d.ts +241 -0
- package/dist/llm/pi/gondolin-loader.d.ts.map +1 -0
- package/dist/llm/pi/gondolin-loader.js +195 -0
- package/dist/llm/pi/gondolin-loader.js.map +1 -0
- package/dist/llm/pi/index.d.ts +28 -0
- package/dist/llm/pi/index.d.ts.map +1 -0
- package/dist/llm/pi/index.js +27 -0
- package/dist/llm/pi/index.js.map +1 -0
- package/dist/llm/pi/pi-agent-adapter.d.ts +135 -0
- package/dist/llm/pi/pi-agent-adapter.d.ts.map +1 -0
- package/dist/llm/pi/pi-agent-adapter.js +329 -0
- package/dist/llm/pi/pi-agent-adapter.js.map +1 -0
- package/dist/llm/pi/pi-errors.d.ts +161 -0
- package/dist/llm/pi/pi-errors.d.ts.map +1 -0
- package/dist/llm/pi/pi-errors.js +296 -0
- package/dist/llm/pi/pi-errors.js.map +1 -0
- package/dist/llm/pi/pi-execution-env.d.ts +286 -0
- package/dist/llm/pi/pi-execution-env.d.ts.map +1 -0
- package/dist/llm/pi/pi-execution-env.js +406 -0
- package/dist/llm/pi/pi-execution-env.js.map +1 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts +227 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -0
- package/dist/llm/pi/pi-gondolin-env.js +541 -0
- package/dist/llm/pi/pi-gondolin-env.js.map +1 -0
- package/dist/llm/pi/pi-session-storage.d.ts +154 -0
- package/dist/llm/pi/pi-session-storage.d.ts.map +1 -0
- package/dist/llm/pi/pi-session-storage.js +314 -0
- package/dist/llm/pi/pi-session-storage.js.map +1 -0
- package/dist/llm/pi/pi-stream-fn.d.ts +124 -0
- package/dist/llm/pi/pi-stream-fn.d.ts.map +1 -0
- package/dist/llm/pi/pi-stream-fn.js +504 -0
- package/dist/llm/pi/pi-stream-fn.js.map +1 -0
- package/dist/llm/pi/pi-tool-bridge.d.ts +99 -0
- package/dist/llm/pi/pi-tool-bridge.d.ts.map +1 -0
- package/dist/llm/pi/pi-tool-bridge.js +117 -0
- package/dist/llm/pi/pi-tool-bridge.js.map +1 -0
- package/dist/llm/pi/pi-types.d.ts +56 -0
- package/dist/llm/pi/pi-types.d.ts.map +1 -0
- package/dist/llm/pi/pi-types.js +16 -0
- package/dist/llm/pi/pi-types.js.map +1 -0
- package/dist/llm/pi/resolve-execution-env.d.ts +194 -0
- package/dist/llm/pi/resolve-execution-env.d.ts.map +1 -0
- package/dist/llm/pi/resolve-execution-env.js +132 -0
- package/dist/llm/pi/resolve-execution-env.js.map +1 -0
- package/dist/llm/plugin-facade.js +2253 -1151
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +8 -5
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts +46 -14
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +178 -20
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/sealed-credential.d.ts +125 -0
- package/dist/llm/sealed-credential.d.ts.map +1 -0
- package/dist/llm/sealed-credential.js +133 -0
- package/dist/llm/sealed-credential.js.map +1 -0
- package/dist/llm/session-factory.d.ts.map +1 -1
- package/dist/llm/session-factory.js +6 -2
- package/dist/llm/session-factory.js.map +1 -1
- package/dist/llm/system-key.d.ts +67 -0
- package/dist/llm/system-key.d.ts.map +1 -0
- package/dist/llm/system-key.js +87 -0
- package/dist/llm/system-key.js.map +1 -0
- package/dist/llm/system-of-use-registry.d.ts +119 -0
- package/dist/llm/system-of-use-registry.d.ts.map +1 -0
- package/dist/llm/system-of-use-registry.js +200 -0
- package/dist/llm/system-of-use-registry.js.map +1 -0
- package/dist/llm/system-resolver.d.ts +32 -10
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +70 -18
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +116 -11
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/claude-mem-migration.d.ts.map +1 -1
- package/dist/memory/claude-mem-migration.js +21 -0
- package/dist/memory/claude-mem-migration.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +32 -25
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/llm-backend-resolver.js +23 -5
- package/dist/memory/llm-backend-resolver.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +60 -53
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +20 -2
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/release/engine-ops.js +2 -2
- package/dist/release/engine-ops.js.map +1 -1
- package/dist/routing/capability-matrix.d.ts.map +1 -1
- package/dist/routing/capability-matrix.js +0 -57
- package/dist/routing/capability-matrix.js.map +1 -1
- package/dist/selfimprove/budget.d.ts +206 -0
- package/dist/selfimprove/budget.d.ts.map +1 -0
- package/dist/selfimprove/budget.js +203 -0
- package/dist/selfimprove/budget.js.map +1 -0
- package/dist/selfimprove/dhq-adapter.d.ts +105 -0
- package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
- package/dist/selfimprove/dhq-adapter.js +95 -0
- package/dist/selfimprove/dhq-adapter.js.map +1 -0
- package/dist/selfimprove/draft-pr.d.ts +129 -0
- package/dist/selfimprove/draft-pr.d.ts.map +1 -0
- package/dist/selfimprove/draft-pr.js +158 -0
- package/dist/selfimprove/draft-pr.js.map +1 -0
- package/dist/selfimprove/envelope-diff.d.ts +162 -0
- package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
- package/dist/selfimprove/envelope-diff.js +321 -0
- package/dist/selfimprove/envelope-diff.js.map +1 -0
- package/dist/selfimprove/replay.d.ts +121 -0
- package/dist/selfimprove/replay.d.ts.map +1 -0
- package/dist/selfimprove/replay.js +109 -0
- package/dist/selfimprove/replay.js.map +1 -0
- package/dist/selfimprove/run-loop.d.ts +148 -0
- package/dist/selfimprove/run-loop.d.ts.map +1 -0
- package/dist/selfimprove/run-loop.js +240 -0
- package/dist/selfimprove/run-loop.js.map +1 -0
- package/dist/selfimprove/scenario.d.ts +145 -0
- package/dist/selfimprove/scenario.d.ts.map +1 -0
- package/dist/selfimprove/scenario.js +243 -0
- package/dist/selfimprove/scenario.js.map +1 -0
- package/dist/sentient/daemon-entry.js +5 -0
- package/dist/sentient/daemon-entry.js.map +1 -1
- package/dist/sentient/daemon.d.ts.map +1 -1
- package/dist/sentient/daemon.js +19 -0
- package/dist/sentient/daemon.js.map +1 -1
- package/dist/sentient/hygiene-scan.d.ts.map +1 -1
- package/dist/sentient/hygiene-scan.js +14 -6
- package/dist/sentient/hygiene-scan.js.map +1 -1
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +13 -9
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/connection-session-handle.d.ts +161 -0
- package/dist/sessions/connection-session-handle.d.ts.map +1 -0
- package/dist/sessions/connection-session-handle.js +168 -0
- package/dist/sessions/connection-session-handle.js.map +1 -0
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -0
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +31 -1
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-id.d.ts +34 -0
- package/dist/sessions/session-id.d.ts.map +1 -1
- package/dist/sessions/session-id.js +37 -0
- package/dist/sessions/session-id.js.map +1 -1
- package/dist/sessions/session-manifest-mirror.d.ts +115 -0
- package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
- package/dist/sessions/session-manifest-mirror.js +250 -0
- package/dist/sessions/session-manifest-mirror.js.map +1 -0
- package/dist/sessions/session-switch.d.ts.map +1 -1
- package/dist/sessions/session-switch.js +5 -2
- package/dist/sessions/session-switch.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +2 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +2 -0
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +87 -47
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/pi-session-store.d.ts +151 -0
- package/dist/store/pi-session-store.d.ts.map +1 -0
- package/dist/store/pi-session-store.js +166 -0
- package/dist/store/pi-session-store.js.map +1 -0
- package/dist/store/safety-data-accessor.d.ts +1 -0
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +5 -0
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
- package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/accounts.js +136 -0
- package/dist/store/schema/cleo-global/accounts.js.map +1 -0
- package/dist/store/schema/cleo-global/index.d.ts +2 -0
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +2 -0
- package/dist/store/schema/cleo-global/index.js.map +1 -1
- package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
- package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/session-manifest.js +99 -0
- package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +14 -0
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/tasks.d.ts +16 -0
- package/dist/store/schema/tasks.d.ts.map +1 -1
- package/dist/store/schema/tasks.js +10 -0
- package/dist/store/schema/tasks.js.map +1 -1
- package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
- package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
- package/dist/store/selfimprove-dhq-schema.js +128 -0
- package/dist/store/selfimprove-dhq-schema.js.map +1 -0
- package/dist/store/selfimprove-dhq-store.d.ts +175 -0
- package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
- package/dist/store/selfimprove-dhq-store.js +182 -0
- package/dist/store/selfimprove-dhq-store.js.map +1 -0
- package/dist/store/session-store.d.ts +52 -13
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +71 -13
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +7 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +1 -0
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +5 -0
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +32 -0
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/writer-lease-schema.d.ts +392 -0
- package/dist/store/writer-lease-schema.d.ts.map +1 -0
- package/dist/store/writer-lease-schema.js +142 -0
- package/dist/store/writer-lease-schema.js.map +1 -0
- package/dist/store/writer-lease.d.ts +368 -0
- package/dist/store/writer-lease.d.ts.map +1 -0
- package/dist/store/writer-lease.js +1002 -0
- package/dist/store/writer-lease.js.map +1 -0
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +14 -9
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +7 -10
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +14 -7
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +10 -4
- package/dist/telemetry/index.js.map +1 -1
- package/dist/tools/agent-registry.d.ts +250 -0
- package/dist/tools/agent-registry.d.ts.map +1 -0
- package/dist/tools/agent-registry.js +292 -0
- package/dist/tools/agent-registry.js.map +1 -0
- package/dist/tools/agent-tool-families.d.ts +107 -0
- package/dist/tools/agent-tool-families.d.ts.map +1 -0
- package/dist/tools/agent-tool-families.js +527 -0
- package/dist/tools/agent-tool-families.js.map +1 -0
- package/dist/tools/browser-driver.d.ts +183 -0
- package/dist/tools/browser-driver.d.ts.map +1 -0
- package/dist/tools/browser-driver.js +242 -0
- package/dist/tools/browser-driver.js.map +1 -0
- package/dist/tools/builtin-agent-tools.d.ts +36 -0
- package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
- package/dist/tools/builtin-agent-tools.js +150 -0
- package/dist/tools/builtin-agent-tools.js.map +1 -0
- package/dist/tools/dispatch.d.ts +370 -0
- package/dist/tools/dispatch.d.ts.map +1 -0
- package/dist/tools/dispatch.js +505 -0
- package/dist/tools/dispatch.js.map +1 -0
- package/dist/tools/env-scrub.d.ts +93 -0
- package/dist/tools/env-scrub.d.ts.map +1 -0
- package/dist/tools/env-scrub.js +176 -0
- package/dist/tools/env-scrub.js.map +1 -0
- package/dist/tools/fs.d.ts +30 -0
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/fs.js +55 -2
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/guard.d.ts +15 -0
- package/dist/tools/guard.d.ts.map +1 -1
- package/dist/tools/guard.js +49 -12
- package/dist/tools/guard.js.map +1 -1
- package/dist/tools/index.d.ts +10 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +37 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/pty.d.ts +45 -0
- package/dist/tools/pty.d.ts.map +1 -0
- package/dist/tools/pty.js +166 -0
- package/dist/tools/pty.js.map +1 -0
- package/dist/tools/schema-gen.d.ts +57 -0
- package/dist/tools/schema-gen.d.ts.map +1 -0
- package/dist/tools/schema-gen.js +52 -0
- package/dist/tools/schema-gen.js.map +1 -0
- package/dist/tools/shell.d.ts +12 -0
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +14 -1
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/web-agent-tools.d.ts +72 -0
- package/dist/tools/web-agent-tools.d.ts.map +1 -0
- package/dist/tools/web-agent-tools.js +393 -0
- package/dist/tools/web-agent-tools.js.map +1 -0
- package/dist/tools/web-search-backends.d.ts +156 -0
- package/dist/tools/web-search-backends.d.ts.map +1 -0
- package/dist/tools/web-search-backends.js +290 -0
- package/dist/tools/web-search-backends.js.map +1 -0
- package/dist/validation/ops.d.ts +1 -15
- package/dist/validation/ops.d.ts.map +1 -1
- package/dist/validation/ops.js +0 -20
- package/dist/validation/ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
- package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
- package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
- package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
- package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
- package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
- package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
- package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
- package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
- package/package.json +15 -13
- package/dist/lifecycle/chain-composition.d.ts +0 -30
- package/dist/lifecycle/chain-composition.d.ts.map +0 -1
- package/dist/lifecycle/chain-composition.js +0 -152
- package/dist/lifecycle/chain-composition.js.map +0 -1
- package/dist/lifecycle/chain-store.d.ts +0 -70
- package/dist/lifecycle/chain-store.d.ts.map +0 -1
- package/dist/lifecycle/chain-store.js +0 -246
- package/dist/lifecycle/chain-store.js.map +0 -1
- package/dist/lifecycle/default-chain.d.ts +0 -39
- package/dist/lifecycle/default-chain.d.ts.map +0 -1
- package/dist/lifecycle/default-chain.js +0 -176
- package/dist/lifecycle/default-chain.js.map +0 -1
- package/dist/lifecycle/tessera-engine.d.ts +0 -48
- package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
- package/dist/lifecycle/tessera-engine.js +0 -249
- package/dist/lifecycle/tessera-engine.js.map +0 -1
- package/dist/validation/chain-validation.d.ts +0 -43
- package/dist/validation/chain-validation.d.ts.map +0 -1
- package/dist/validation/chain-validation.js +0 -146
- package/dist/validation/chain-validation.js.map +0 -1
|
@@ -171,5 +171,17 @@ export declare class LocalTransport implements Transport {
|
|
|
171
171
|
private ensureDmConversation;
|
|
172
172
|
/** Throw if not connected. */
|
|
173
173
|
private ensureConnected;
|
|
174
|
+
/**
|
|
175
|
+
* Seam 3 (T11627): conduit.db is a raw bypass writer (project-tier, sidesteps
|
|
176
|
+
* the tasks chokepoint via its own `openFreshConduitDb` handle). Hold the
|
|
177
|
+
* project `bulk` lease around a synchronous write block so conduit writes
|
|
178
|
+
* serialize against other writers on the same scope. `off` mode → pass-through
|
|
179
|
+
* (busy_timeout serializes as before). The wrapped `fn` is synchronous because
|
|
180
|
+
* every conduit write is a synchronous `db.prepare(...).run(...)`.
|
|
181
|
+
*
|
|
182
|
+
* @param fn - The synchronous write block to run under the lease.
|
|
183
|
+
* @returns The value returned by `fn`.
|
|
184
|
+
*/
|
|
185
|
+
private runWrite;
|
|
174
186
|
}
|
|
175
187
|
//# sourceMappingURL=local-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-transport.d.ts","sourceRoot":"","sources":["../../src/conduit/local-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,SAAS,EACT,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-transport.d.ts","sourceRoot":"","sources":["../../src/conduit/local-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,SAAS,EACT,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAqD7B,qEAAqE;AACrE,qBAAa,cAAe,YAAW,SAAS;IAC9C,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,KAAK,CAAoC;IAEjD;;;;;;;;;OASG;IACG,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC5D,qEAAqE;IAC/D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;;;;;OAMG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACtD,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAqCjC;;;;;OAKG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA6CnF;;;;OAIG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9C;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAsBjE;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/F;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA0DjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,kBAAkB;IAiC1F;;;;;;;;;OASG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD;;;;;;;;OAQG;IACG,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,cAAc,EAAE,CAAC;IA2C5B;;;;;;;;;OASG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAczC,yEAAyE;YAC3D,aAAa;IAY3B,+EAA+E;YACjE,mBAAmB;IAoBjC,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB;IAa3B,sDAAsD;IACtD,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA8B5B,8BAA8B;IAC9B,OAAO,CAAC,eAAe;IAMvB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -18,6 +18,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
18
18
|
import { existsSync } from 'node:fs';
|
|
19
19
|
import { resolveOrCwd } from '../paths.js';
|
|
20
20
|
import { getConduitDbPath, openFreshConduitDb } from '../store/conduit-sqlite.js';
|
|
21
|
+
import { withWriterLease } from '../store/writer-lease.js';
|
|
21
22
|
/**
|
|
22
23
|
* Parse an A2A topic name into its epic_id and optional wave_id components.
|
|
23
24
|
*
|
|
@@ -120,16 +121,19 @@ export class LocalTransport {
|
|
|
120
121
|
// T11578 (AC4): the consolidated `conduit_messages.created_at` is canonical
|
|
121
122
|
// TEXT ISO-8601 (CHECK enforces the ISO GLOB) — write ISO, not epoch.
|
|
122
123
|
const nowIso = new Date().toISOString();
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
// Seam 3 (T11627): hold the project `bulk` lease for the conduit write.
|
|
125
|
+
await this.runWrite(() => {
|
|
126
|
+
if (options?.conversationId) {
|
|
127
|
+
db.prepare(`INSERT INTO conduit_messages (id, conversation_id, from_agent_id, to_agent_id, content, content_type, status, created_at)
|
|
125
128
|
VALUES (?, ?, ?, ?, ?, 'text', 'pending', ?)`).run(messageId, options.conversationId, agentId, to, content, nowIso);
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// Direct message — create or reuse a DM conversation
|
|
132
|
+
const convId = this.ensureDmConversation(agentId, to);
|
|
133
|
+
db.prepare(`INSERT INTO conduit_messages (id, conversation_id, from_agent_id, to_agent_id, content, content_type, status, created_at)
|
|
131
134
|
VALUES (?, ?, ?, ?, ?, 'text', 'pending', ?)`).run(messageId, convId, agentId, to, content, nowIso);
|
|
132
|
-
|
|
135
|
+
}
|
|
136
|
+
});
|
|
133
137
|
// Notify local subscribers
|
|
134
138
|
this.notifySubscribers({
|
|
135
139
|
id: messageId,
|
|
@@ -195,7 +199,10 @@ export class LocalTransport {
|
|
|
195
199
|
// (CHECK enforces the ISO GLOB) — write ISO, not epoch.
|
|
196
200
|
const nowIso = new Date().toISOString();
|
|
197
201
|
const placeholders = messageIds.map(() => '?').join(', ');
|
|
198
|
-
|
|
202
|
+
// Seam 3 (T11627): hold the project `bulk` lease for the conduit write.
|
|
203
|
+
await this.runWrite(() => {
|
|
204
|
+
db.prepare(`UPDATE conduit_messages SET status = 'delivered', delivered_at = ? WHERE id IN (${placeholders})`).run(nowIso, ...messageIds);
|
|
205
|
+
});
|
|
199
206
|
}
|
|
200
207
|
/**
|
|
201
208
|
* Subscribe to real-time local messages.
|
|
@@ -245,17 +252,20 @@ export class LocalTransport {
|
|
|
245
252
|
// Derive epic_id / wave_id from the topic name (e.g. "epic-T1149.wave-2" or "epic-T1149.coordination")
|
|
246
253
|
const { epicId, waveId } = parseTopicName(topicName);
|
|
247
254
|
const topicId = randomUUID();
|
|
248
|
-
//
|
|
249
|
-
|
|
255
|
+
// Seam 3 (T11627): hold the project `bulk` lease for the conduit writes.
|
|
256
|
+
await this.runWrite(() => {
|
|
257
|
+
// Create topic if absent
|
|
258
|
+
db.prepare(`INSERT INTO conduit_topics (id, name, epic_id, wave_id, created_by, created_at)
|
|
250
259
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
251
260
|
ON CONFLICT(name) DO NOTHING`).run(topicId, topicName, epicId, waveId ?? null, agentId, nowIso);
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
// Resolve the actual topic id (might have been inserted above or pre-existing)
|
|
262
|
+
const topic = db.prepare('SELECT id FROM conduit_topics WHERE name = ?').get(topicName);
|
|
263
|
+
if (!topic)
|
|
264
|
+
return; // Should not happen; inserted above
|
|
265
|
+
db.prepare(`INSERT INTO conduit_topic_subscriptions (topic_id, agent_id, subscribed_at)
|
|
257
266
|
VALUES (?, ?, ?)
|
|
258
267
|
ON CONFLICT(topic_id, agent_id) DO NOTHING`).run(topic.id, agentId, nowIso);
|
|
268
|
+
});
|
|
259
269
|
}
|
|
260
270
|
/**
|
|
261
271
|
* Publish a message to a named topic in conduit.db.
|
|
@@ -284,15 +294,18 @@ export class LocalTransport {
|
|
|
284
294
|
// Ensure topic exists (auto-create if publisher subscribes lazily)
|
|
285
295
|
const { epicId, waveId } = parseTopicName(topicName);
|
|
286
296
|
const topicInsertId = randomUUID();
|
|
287
|
-
|
|
297
|
+
// Seam 3 (T11627): hold the project `bulk` lease for the conduit writes.
|
|
298
|
+
await this.runWrite(() => {
|
|
299
|
+
db.prepare(`INSERT INTO conduit_topics (id, name, epic_id, wave_id, created_by, created_at)
|
|
288
300
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
289
301
|
ON CONFLICT(name) DO NOTHING`).run(topicInsertId, topicName, epicId, waveId ?? null, agentId, nowIso);
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
302
|
+
const topic = db.prepare('SELECT id FROM conduit_topics WHERE name = ?').get(topicName);
|
|
303
|
+
if (!topic) {
|
|
304
|
+
throw new Error(`LocalTransport.publishToTopic: could not resolve topic "${topicName}"`);
|
|
305
|
+
}
|
|
306
|
+
db.prepare(`INSERT INTO conduit_topic_messages (id, topic_id, from_agent_id, kind, content, payload, created_at)
|
|
295
307
|
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(messageId, topic.id, agentId, kind, content, options?.payload != null ? JSON.stringify(options.payload) : null, nowIso);
|
|
308
|
+
});
|
|
296
309
|
// Notify in-process topic handlers immediately
|
|
297
310
|
this.notifyTopicHandlers(topicName, {
|
|
298
311
|
id: messageId,
|
|
@@ -365,7 +378,10 @@ export class LocalTransport {
|
|
|
365
378
|
const topic = db.prepare('SELECT id FROM conduit_topics WHERE name = ?').get(topicName);
|
|
366
379
|
if (!topic)
|
|
367
380
|
return; // Topic doesn't exist — nothing to do
|
|
368
|
-
|
|
381
|
+
// Seam 3 (T11627): hold the project `bulk` lease for the conduit write.
|
|
382
|
+
await this.runWrite(() => {
|
|
383
|
+
db.prepare('DELETE FROM conduit_topic_subscriptions WHERE topic_id = ? AND agent_id = ?').run(topic.id, agentId);
|
|
384
|
+
});
|
|
369
385
|
}
|
|
370
386
|
/**
|
|
371
387
|
* Poll for new topic messages and deliver to registered handlers.
|
|
@@ -524,5 +540,19 @@ export class LocalTransport {
|
|
|
524
540
|
throw new Error('LocalTransport not connected. Call connect() first.');
|
|
525
541
|
}
|
|
526
542
|
}
|
|
543
|
+
/**
|
|
544
|
+
* Seam 3 (T11627): conduit.db is a raw bypass writer (project-tier, sidesteps
|
|
545
|
+
* the tasks chokepoint via its own `openFreshConduitDb` handle). Hold the
|
|
546
|
+
* project `bulk` lease around a synchronous write block so conduit writes
|
|
547
|
+
* serialize against other writers on the same scope. `off` mode → pass-through
|
|
548
|
+
* (busy_timeout serializes as before). The wrapped `fn` is synchronous because
|
|
549
|
+
* every conduit write is a synchronous `db.prepare(...).run(...)`.
|
|
550
|
+
*
|
|
551
|
+
* @param fn - The synchronous write block to run under the lease.
|
|
552
|
+
* @returns The value returned by `fn`.
|
|
553
|
+
*/
|
|
554
|
+
runWrite(fn) {
|
|
555
|
+
return withWriterLease('project', 'bulk', async () => fn());
|
|
556
|
+
}
|
|
527
557
|
}
|
|
528
558
|
//# sourceMappingURL=local-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-transport.js","sourceRoot":"","sources":["../../src/conduit/local-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-transport.js","sourceRoot":"","sources":["../../src/conduit/local-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,4 +37,41 @@ export declare function encrypt(plaintext: string, projectPath: string): Promise
|
|
|
37
37
|
* @throws If decryption fails (wrong key, corrupted data, or machine key mismatch).
|
|
38
38
|
*/
|
|
39
39
|
export declare function decrypt(ciphertext: string, projectPath: string): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Encrypt a plaintext string using AES-256-GCM with a global, machine-bound key.
|
|
42
|
+
*
|
|
43
|
+
* Output format is byte-identical to {@link encrypt}:
|
|
44
|
+
* base64(version + iv + ciphertext + authTag)
|
|
45
|
+
* - version: 1 byte (0x01 = AES-256-GCM)
|
|
46
|
+
* - iv: 12 bytes
|
|
47
|
+
* - ciphertext: variable length
|
|
48
|
+
* - authTag: 16 bytes
|
|
49
|
+
*
|
|
50
|
+
* The encryption key is derived via {@link deriveGlobalKey} (machine-key +
|
|
51
|
+
* global-salt + `id`), so the resulting ciphertext decrypts from any project
|
|
52
|
+
* on the same machine — unlike the project-bound {@link encrypt}.
|
|
53
|
+
*
|
|
54
|
+
* @param plaintext - The string to encrypt (e.g. an LLM API key).
|
|
55
|
+
* @param id - The stable identity used for key derivation (e.g. an agentId).
|
|
56
|
+
* @returns Base64-encoded ciphertext.
|
|
57
|
+
*
|
|
58
|
+
* @see decryptGlobal — the inverse operation.
|
|
59
|
+
* @task T11710
|
|
60
|
+
*/
|
|
61
|
+
export declare function encryptGlobal(plaintext: string, id: string): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Decrypt a base64-encoded ciphertext produced by {@link encryptGlobal} using
|
|
64
|
+
* the global, machine-bound key derived from `id`.
|
|
65
|
+
*
|
|
66
|
+
* @param ciphertext - Base64-encoded string from {@link encryptGlobal}.
|
|
67
|
+
* @param id - The identity used at encryption time. A mismatched `id` derives a
|
|
68
|
+
* different key and fails the GCM auth tag (throws).
|
|
69
|
+
* @returns The original plaintext string.
|
|
70
|
+
* @throws If decryption fails (wrong id, corrupted data, or machine-key/
|
|
71
|
+
* global-salt mismatch).
|
|
72
|
+
*
|
|
73
|
+
* @see encryptGlobal — the inverse operation.
|
|
74
|
+
* @task T11710
|
|
75
|
+
*/
|
|
76
|
+
export declare function decryptGlobal(ciphertext: string, id: string): Promise<string>;
|
|
40
77
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/crypto/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/crypto/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA4JH;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYrF;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCtF;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCnF"}
|
|
@@ -18,6 +18,7 @@ import { execFileSync } from 'node:child_process';
|
|
|
18
18
|
import { createCipheriv, createDecipheriv, createHmac, randomBytes } from 'node:crypto';
|
|
19
19
|
import { chmod, mkdir, readFile, stat, writeFile } from 'node:fs/promises';
|
|
20
20
|
import { dirname, join } from 'node:path';
|
|
21
|
+
import { getGlobalSalt } from '../store/global-salt.js';
|
|
21
22
|
/** AES-256-GCM constants. */
|
|
22
23
|
const ALGORITHM = 'aes-256-gcm';
|
|
23
24
|
const IV_LENGTH = 12;
|
|
@@ -216,4 +217,113 @@ export async function decrypt(ciphertext, projectPath) {
|
|
|
216
217
|
'cleo agent register --id <id> --api-key <key>');
|
|
217
218
|
}
|
|
218
219
|
}
|
|
220
|
+
// ============================================================================
|
|
221
|
+
// Global (project-independent) KDF — ADR-037 §5
|
|
222
|
+
// ============================================================================
|
|
223
|
+
/**
|
|
224
|
+
* Derive a per-identity, machine-bound encryption key that is independent of
|
|
225
|
+
* any project path.
|
|
226
|
+
*
|
|
227
|
+
* Implements the ADR-037 §5 KDF:
|
|
228
|
+
* ```
|
|
229
|
+
* key = HMAC-SHA256(machine-key || globalSalt, id)
|
|
230
|
+
* ```
|
|
231
|
+
*
|
|
232
|
+
* Unlike {@link deriveProjectKey}, the derived key is bound to the machine
|
|
233
|
+
* (via the 32-byte machine-key) AND a machine-local 32-byte global salt, but
|
|
234
|
+
* NOT to a project directory. This lets globally-scoped credentials (e.g. LLM
|
|
235
|
+
* API keys stored in the global signaldock) decrypt consistently from any
|
|
236
|
+
* project on the same machine.
|
|
237
|
+
*
|
|
238
|
+
* The global salt is sourced from the existing {@link getGlobalSalt}
|
|
239
|
+
* subsystem (`store/global-salt.ts`) — it is never re-implemented here.
|
|
240
|
+
*
|
|
241
|
+
* @param id - The stable identity binding the ciphertext (e.g. an agentId or
|
|
242
|
+
* credential id). The same `id` MUST be supplied to {@link decryptGlobal};
|
|
243
|
+
* a different `id` yields a different key and fails the GCM auth tag.
|
|
244
|
+
* @returns A 32-byte AES-256 key derived from machine-key + global-salt + id.
|
|
245
|
+
*
|
|
246
|
+
* @see ADR-037 §5 — KDF design (`HMAC-SHA256(machine-key || globalSalt, id)`)
|
|
247
|
+
* @see getGlobalSalt — global-salt source of truth (store/global-salt.ts)
|
|
248
|
+
* @task T11710
|
|
249
|
+
*/
|
|
250
|
+
async function deriveGlobalKey(id) {
|
|
251
|
+
const machineKey = await getMachineKey();
|
|
252
|
+
const globalSalt = getGlobalSalt();
|
|
253
|
+
// HMAC key = machine-key || globalSalt (concatenation); message = id.
|
|
254
|
+
const hmacKey = Buffer.concat([machineKey, globalSalt]);
|
|
255
|
+
return createHmac('sha256', hmacKey).update(id).digest();
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Encrypt a plaintext string using AES-256-GCM with a global, machine-bound key.
|
|
259
|
+
*
|
|
260
|
+
* Output format is byte-identical to {@link encrypt}:
|
|
261
|
+
* base64(version + iv + ciphertext + authTag)
|
|
262
|
+
* - version: 1 byte (0x01 = AES-256-GCM)
|
|
263
|
+
* - iv: 12 bytes
|
|
264
|
+
* - ciphertext: variable length
|
|
265
|
+
* - authTag: 16 bytes
|
|
266
|
+
*
|
|
267
|
+
* The encryption key is derived via {@link deriveGlobalKey} (machine-key +
|
|
268
|
+
* global-salt + `id`), so the resulting ciphertext decrypts from any project
|
|
269
|
+
* on the same machine — unlike the project-bound {@link encrypt}.
|
|
270
|
+
*
|
|
271
|
+
* @param plaintext - The string to encrypt (e.g. an LLM API key).
|
|
272
|
+
* @param id - The stable identity used for key derivation (e.g. an agentId).
|
|
273
|
+
* @returns Base64-encoded ciphertext.
|
|
274
|
+
*
|
|
275
|
+
* @see decryptGlobal — the inverse operation.
|
|
276
|
+
* @task T11710
|
|
277
|
+
*/
|
|
278
|
+
export async function encryptGlobal(plaintext, id) {
|
|
279
|
+
const key = await deriveGlobalKey(id);
|
|
280
|
+
const iv = randomBytes(IV_LENGTH);
|
|
281
|
+
const cipher = createCipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
|
|
282
|
+
const encrypted = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
|
|
283
|
+
const authTag = cipher.getAuthTag();
|
|
284
|
+
// Pack: version + iv + ciphertext + authTag (matches encrypt() format exactly).
|
|
285
|
+
const version = Buffer.from([CIPHERTEXT_VERSION]);
|
|
286
|
+
const packed = Buffer.concat([version, iv, encrypted, authTag]);
|
|
287
|
+
return packed.toString('base64');
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Decrypt a base64-encoded ciphertext produced by {@link encryptGlobal} using
|
|
291
|
+
* the global, machine-bound key derived from `id`.
|
|
292
|
+
*
|
|
293
|
+
* @param ciphertext - Base64-encoded string from {@link encryptGlobal}.
|
|
294
|
+
* @param id - The identity used at encryption time. A mismatched `id` derives a
|
|
295
|
+
* different key and fails the GCM auth tag (throws).
|
|
296
|
+
* @returns The original plaintext string.
|
|
297
|
+
* @throws If decryption fails (wrong id, corrupted data, or machine-key/
|
|
298
|
+
* global-salt mismatch).
|
|
299
|
+
*
|
|
300
|
+
* @see encryptGlobal — the inverse operation.
|
|
301
|
+
* @task T11710
|
|
302
|
+
*/
|
|
303
|
+
export async function decryptGlobal(ciphertext, id) {
|
|
304
|
+
const key = await deriveGlobalKey(id);
|
|
305
|
+
const packed = Buffer.from(ciphertext, 'base64');
|
|
306
|
+
if (packed.length < 1 + IV_LENGTH + AUTH_TAG_LENGTH) {
|
|
307
|
+
throw new Error('Cannot decrypt credentials: ciphertext too short');
|
|
308
|
+
}
|
|
309
|
+
const version = packed[0];
|
|
310
|
+
if (version !== CIPHERTEXT_VERSION) {
|
|
311
|
+
throw new Error(`Unknown ciphertext version (${version}). Expected ${CIPHERTEXT_VERSION}. ` +
|
|
312
|
+
'Re-register agents to re-encrypt with the current format.');
|
|
313
|
+
}
|
|
314
|
+
const iv = packed.subarray(1, 1 + IV_LENGTH);
|
|
315
|
+
const authTag = packed.subarray(packed.length - AUTH_TAG_LENGTH);
|
|
316
|
+
const encrypted = packed.subarray(1 + IV_LENGTH, packed.length - AUTH_TAG_LENGTH);
|
|
317
|
+
const decipher = createDecipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
|
|
318
|
+
decipher.setAuthTag(authTag);
|
|
319
|
+
try {
|
|
320
|
+
const decrypted = Buffer.concat([decipher.update(encrypted), decipher.final()]);
|
|
321
|
+
return decrypted.toString('utf8');
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
throw new Error('Cannot decrypt global credentials. Machine key / global-salt mismatch, ' +
|
|
325
|
+
'wrong id, or corrupted data. If this database was moved from another ' +
|
|
326
|
+
'machine, re-register the credential under its original id.');
|
|
327
|
+
}
|
|
328
|
+
}
|
|
219
329
|
//# sourceMappingURL=credentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/crypto/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/crypto/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* deriveOutputContract — generic per-operation OUTPUT contract producer.
|
|
3
|
+
*
|
|
4
|
+
* Closes the COVERAGE half of DHQ-057 / T11692 (the symptom-fix half — the
|
|
5
|
+
* `--field` remediation loop — is ST-4). The hand-authored {@link OUTPUT_CONTRACTS}
|
|
6
|
+
* registry covers only the 7 highest-traffic `tasks.*` operations. Every other
|
|
7
|
+
* operation in the 411-row {@link OPERATIONS} registry has NO machine-readable
|
|
8
|
+
* description of its result `data` shape, so an agent asking `cleo <op>
|
|
9
|
+
* --describe` (or hitting `E_FIELD_NOT_FOUND` on a bad `--field` pointer) gets
|
|
10
|
+
* nothing back for ~404 ops.
|
|
11
|
+
*
|
|
12
|
+
* Rather than hand-write 404 more contracts (unmaintainable, drifts instantly),
|
|
13
|
+
* this module DERIVES an {@link OperationOutputContract} for an operation from
|
|
14
|
+
* three shape registries that ALREADY exist:
|
|
15
|
+
*
|
|
16
|
+
* | Source registry | Home | Derives |
|
|
17
|
+
* |------------------------|--------------------------|----------------------------------------------------------|
|
|
18
|
+
* | {@link OPERATION_RESULT_SCHEMAS} | `@cleocode/contracts` | precise top-level data keys for the 5 workgraph reads |
|
|
19
|
+
* | {@link PROJECTION_PLANS} | `./mvi-projection.js` | the data PATH (`tasks.show→task`, `docs.list→attachments`) for projected reads |
|
|
20
|
+
* | {@link MUTATE_PROJECTION_PLANS} | `./mutate-projection.js` | the shared `{count, created, updated, deleted}` shape — but ONLY for the 6 ops that actually project it |
|
|
21
|
+
*
|
|
22
|
+
* Resolution precedence inside {@link deriveOutputContract} (most-precise first):
|
|
23
|
+
*
|
|
24
|
+
* 1. workgraph result schema → precise key-derived contract
|
|
25
|
+
* 2. read op with projection plan → path-rooted contract
|
|
26
|
+
* 3. mutate op WITH a {@link MUTATE_PROJECTION_PLANS} entry → shared
|
|
27
|
+
* minimal-mutate contract. An unplanned `gateway==='mutate'` op is NOT
|
|
28
|
+
* rewritten by the dispatch middleware (it returns its raw domain payload),
|
|
29
|
+
* so it must NOT advertise `/data/created/0` — it falls through to (4).
|
|
30
|
+
* 4. any other registered op (unplanned mutate or plain query) → a GENERIC
|
|
31
|
+
* object contract (data is an object; no specific `--field` pointers, but a
|
|
32
|
+
* `shapeNote` telling the agent to `--full`/`--describe`).
|
|
33
|
+
*
|
|
34
|
+
* A `null` return means the operation is NOT in {@link OPERATIONS} at all
|
|
35
|
+
* (genuinely unknown). Per T10400 §6.3 R6.7 a `null` output contract is
|
|
36
|
+
* "unverified shape", NEVER an error — callers MUST treat it as absent, not
|
|
37
|
+
* throw.
|
|
38
|
+
*
|
|
39
|
+
* ## Boundary
|
|
40
|
+
*
|
|
41
|
+
* This producer lives in `core/src/dispatch` (NOT `contracts`) because it reads
|
|
42
|
+
* `PROJECTION_PLANS` / `MUTATE_PROJECTION_PLANS`, which are core-resident, and
|
|
43
|
+
* because it is a bodied runtime helper (the contracts-purity Gate 10 forbids
|
|
44
|
+
* net-new bodied functions in `contracts`). It is import-time side-effect-free:
|
|
45
|
+
* it builds nothing at module load, only on call.
|
|
46
|
+
*
|
|
47
|
+
* @packageDocumentation
|
|
48
|
+
* @module @cleocode/core/dispatch/contracts/derive-output-contract
|
|
49
|
+
*
|
|
50
|
+
* @epic T11679
|
|
51
|
+
* @task T11762 ST-3 — DHQ-057: generic per-op output schema coverage backfill
|
|
52
|
+
*/
|
|
53
|
+
import { type OperationOutputContract } from '@cleocode/contracts';
|
|
54
|
+
/**
|
|
55
|
+
* Derive an {@link OperationOutputContract} for an operation from the existing
|
|
56
|
+
* shape registries, or `null` when the operation is genuinely unknown.
|
|
57
|
+
*
|
|
58
|
+
* Used as the SECOND tier of {@link getOutputContract}'s resolution order
|
|
59
|
+
* (hand-authored {@link OUTPUT_CONTRACTS} → `deriveOutputContract` → `null`).
|
|
60
|
+
* The hand-authored 7 stay authoritative; this lifts coverage to near-100% for
|
|
61
|
+
* the remaining ~404 ops without hand-authoring sprawl.
|
|
62
|
+
*
|
|
63
|
+
* Resolution precedence (most-precise first): workgraph result schema →
|
|
64
|
+
* projection-plan read → planned mutate op → generic registered op (unplanned
|
|
65
|
+
* mutate or plain query) → `null`.
|
|
66
|
+
*
|
|
67
|
+
* A `null` return MUST be treated as "no contract / unverified shape", NOT an
|
|
68
|
+
* error (T10400 §6.3 R6.7).
|
|
69
|
+
*
|
|
70
|
+
* @param operation - Canonical `<domain>.<verb>` operation identifier.
|
|
71
|
+
* @returns A derived contract, or `null` when the operation is not registered.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* deriveOutputContract('tasks.tree'); // precise workgraph keys
|
|
76
|
+
* deriveOutputContract('tasks.show'); // projection-plan path (`task`)
|
|
77
|
+
* deriveOutputContract('tasks.add'); // shared minimal-mutate envelope (planned)
|
|
78
|
+
* deriveOutputContract('memory.observe'); // generic object (UNPLANNED mutate)
|
|
79
|
+
* deriveOutputContract('session.start'); // generic object contract
|
|
80
|
+
* deriveOutputContract('does.not-exist'); // null
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @task T11762 ST-3
|
|
84
|
+
*/
|
|
85
|
+
export declare function deriveOutputContract(operation: string): OperationOutputContract | null;
|
|
86
|
+
//# sourceMappingURL=derive-output-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive-output-contract.d.ts","sourceRoot":"","sources":["../../../src/dispatch/contracts/derive-output-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AA+P7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CA8BtF"}
|