@cleocode/core 2026.6.12 → 2026.6.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/dist/admin/ops.d.ts +4 -0
- package/dist/admin/ops.d.ts.map +1 -1
- package/dist/check/index.d.ts +12 -0
- package/dist/check/index.d.ts.map +1 -0
- package/dist/check/index.js +12 -0
- package/dist/check/index.js.map +1 -0
- package/dist/check/pr-gate.d.ts +179 -0
- package/dist/check/pr-gate.d.ts.map +1 -0
- package/dist/check/pr-gate.js +366 -0
- package/dist/check/pr-gate.js.map +1 -0
- package/dist/conduit/delivery-router.d.ts +134 -0
- package/dist/conduit/delivery-router.d.ts.map +1 -0
- package/dist/conduit/delivery-router.js +0 -0
- package/dist/conduit/delivery-router.js.map +1 -0
- package/dist/conduit/index.d.ts +5 -2
- package/dist/conduit/index.d.ts.map +1 -1
- package/dist/conduit/index.js +5 -2
- package/dist/conduit/index.js.map +1 -1
- 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/conduit/local-tui-adapter.d.ts +89 -0
- package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
- package/dist/conduit/local-tui-adapter.js +225 -0
- package/dist/conduit/local-tui-adapter.js.map +1 -0
- package/dist/config/registry.d.ts +54 -0
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +94 -2
- package/dist/config/registry.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/deriver/queue-manager.d.ts +30 -2
- package/dist/deriver/queue-manager.d.ts.map +1 -1
- package/dist/deriver/queue-manager.js +54 -9
- package/dist/deriver/queue-manager.js.map +1 -1
- package/dist/dispatch/config-domain-handler.d.ts +125 -0
- package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
- package/dist/dispatch/config-domain-handler.js +160 -0
- package/dist/dispatch/config-domain-handler.js.map +1 -0
- 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/input-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/input-contracts.js +19 -1
- package/dist/dispatch/contracts/input-contracts.js.map +1 -1
- 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 +5413 -1345
- package/dist/docs/export-document.js.map +3 -3
- package/dist/gateway-client/client.d.ts +123 -0
- package/dist/gateway-client/client.d.ts.map +1 -0
- package/dist/gateway-client/client.js +93 -0
- package/dist/gateway-client/client.js.map +1 -0
- package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
- package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/client.gen.js +217 -0
- package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
- package/dist/gateway-client/generated/client/index.d.ts +11 -0
- package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/index.js +7 -0
- package/dist/gateway-client/generated/client/index.js.map +1 -0
- package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
- package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/types.gen.js +3 -0
- package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
- package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
- package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/utils.gen.js +229 -0
- package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
- package/dist/gateway-client/generated/client.gen.d.ts +13 -0
- package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client.gen.js +4 -0
- package/dist/gateway-client/generated/client.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
- package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/auth.gen.js +15 -0
- package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
- package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/params.gen.js +101 -0
- package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
- package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/types.gen.js +3 -0
- package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
- package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/utils.gen.js +88 -0
- package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
- package/dist/gateway-client/generated/index.d.ts +3 -0
- package/dist/gateway-client/generated/index.d.ts.map +1 -0
- package/dist/gateway-client/generated/index.js +3 -0
- package/dist/gateway-client/generated/index.js.map +1 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/namespaces.gen.js +521 -0
- package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
- package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
- package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/sdk.gen.js +3811 -0
- package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
- package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/types.gen.js +3 -0
- package/dist/gateway-client/generated/types.gen.js.map +1 -0
- package/dist/gateway-client/index.d.ts +27 -0
- package/dist/gateway-client/index.d.ts.map +1 -0
- package/dist/gateway-client/index.js +25 -0
- package/dist/gateway-client/index.js.map +1 -0
- 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 +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +28 -0
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +23 -11
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +29 -12
- 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/catalog-model-resolver.d.ts +19 -0
- package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
- package/dist/llm/catalog-model-resolver.js +36 -0
- package/dist/llm/catalog-model-resolver.js.map +1 -1
- package/dist/llm/catalog-resolver.d.ts +112 -0
- package/dist/llm/catalog-resolver.d.ts.map +1 -0
- package/dist/llm/catalog-resolver.js +207 -0
- package/dist/llm/catalog-resolver.js.map +1 -0
- package/dist/llm/catalog-seeder.d.ts +96 -0
- package/dist/llm/catalog-seeder.d.ts.map +1 -0
- package/dist/llm/catalog-seeder.js +189 -0
- package/dist/llm/catalog-seeder.js.map +1 -0
- 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 +46 -17
- package/dist/llm/cli-ops.js.map +1 -1
- package/dist/llm/complexity-classifier.d.ts +208 -0
- package/dist/llm/complexity-classifier.d.ts.map +1 -0
- package/dist/llm/complexity-classifier.js +359 -0
- package/dist/llm/complexity-classifier.js.map +1 -0
- 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/credential-pool.d.ts +2 -0
- package/dist/llm/credential-pool.d.ts.map +1 -1
- package/dist/llm/credential-pool.js +5 -2
- package/dist/llm/credential-pool.js.map +1 -1
- package/dist/llm/credentials-store.d.ts +10 -14
- package/dist/llm/credentials-store.d.ts.map +1 -1
- package/dist/llm/credentials-store.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/entity-ops.d.ts +299 -0
- package/dist/llm/entity-ops.d.ts.map +1 -0
- package/dist/llm/entity-ops.js +441 -0
- package/dist/llm/entity-ops.js.map +1 -0
- package/dist/llm/index.d.ts +19 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm-queue-admit.d.ts +118 -0
- package/dist/llm/llm-queue-admit.d.ts.map +1 -0
- package/dist/llm/llm-queue-admit.js +275 -0
- package/dist/llm/llm-queue-admit.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +2 -8
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
- package/dist/llm/oauth/google-pkce.js +2 -18
- package/dist/llm/oauth/google-pkce.js.map +1 -1
- package/dist/llm/oauth/pkce.d.ts +70 -0
- package/dist/llm/oauth/pkce.d.ts.map +1 -1
- package/dist/llm/oauth/pkce.js +106 -29
- package/dist/llm/oauth/pkce.js.map +1 -1
- package/dist/llm/onboarding/front-door.d.ts +146 -0
- package/dist/llm/onboarding/front-door.d.ts.map +1 -0
- package/dist/llm/onboarding/front-door.js +153 -0
- package/dist/llm/onboarding/front-door.js.map +1 -0
- package/dist/llm/onboarding/login-engine.d.ts +175 -0
- package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
- package/dist/llm/onboarding/login-engine.js +286 -0
- package/dist/llm/onboarding/login-engine.js.map +1 -0
- 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 +250 -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 +5472 -1331
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
- package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
- package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
- package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-alias.js +85 -0
- package/dist/llm/provider-registry/provider-alias.js.map +1 -0
- package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
- package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-defs.js +145 -0
- package/dist/llm/provider-registry/provider-defs.js.map +1 -0
- package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
- package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-seed.js +113 -0
- package/dist/llm/provider-registry/provider-seed.js.map +1 -0
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +44 -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 +185 -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 +138 -35
- 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/learnings.d.ts +4 -0
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/llm-backend-resolver.js +23 -5
- package/dist/memory/llm-backend-resolver.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -0
- package/dist/memory/patterns.d.ts.map +1 -1
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +1 -0
- package/dist/metrics/index.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/orchestration/spawn.d.ts +89 -0
- package/dist/orchestration/spawn.d.ts.map +1 -1
- package/dist/orchestration/spawn.js +68 -0
- package/dist/orchestration/spawn.js.map +1 -1
- package/dist/playbooks/cantbook-profile.d.ts +96 -0
- package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
- package/dist/playbooks/cantbook-profile.js +97 -0
- package/dist/playbooks/cantbook-profile.js.map +1 -0
- package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
- package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
- package/dist/playbooks/guarded-deterministic-runner.js +155 -0
- package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
- package/dist/playbooks/index.d.ts +2 -0
- package/dist/playbooks/index.d.ts.map +1 -1
- package/dist/playbooks/index.js +10 -0
- package/dist/playbooks/index.js.map +1 -1
- package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
- package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
- package/dist/playbooks/pi-runner-wiring.js +82 -0
- package/dist/playbooks/pi-runner-wiring.js.map +1 -0
- 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/runtime/openapi/generate-openapi.d.ts +211 -0
- package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
- package/dist/runtime/openapi/generate-openapi.js +300 -0
- package/dist/runtime/openapi/generate-openapi.js.map +1 -0
- package/dist/runtime/openapi/index.d.ts +16 -0
- package/dist/runtime/openapi/index.d.ts.map +1 -0
- package/dist/runtime/openapi/index.js +16 -0
- package/dist/runtime/openapi/index.js.map +1 -0
- 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/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
- package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -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/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +14 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +23 -11
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +25 -12
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/llm.d.ts +28 -1
- package/dist/setup/sections/llm.d.ts.map +1 -1
- package/dist/setup/sections/llm.js +27 -6
- package/dist/setup/sections/llm.js.map +1 -1
- package/dist/setup/sections/models-roles.d.ts +40 -0
- package/dist/setup/sections/models-roles.d.ts.map +1 -0
- package/dist/setup/sections/models-roles.js +219 -0
- package/dist/setup/sections/models-roles.js.map +1 -0
- package/dist/setup/wizard.d.ts +19 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.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/schedule-schema.d.ts +195 -0
- package/dist/store/schedule-schema.d.ts.map +1 -0
- package/dist/store/schedule-schema.js +84 -0
- package/dist/store/schedule-schema.js.map +1 -0
- package/dist/store/schedule-store.d.ts +144 -0
- package/dist/store/schedule-store.d.ts.map +1 -0
- package/dist/store/schedule-store.js +162 -0
- package/dist/store/schedule-store.js.map +1 -0
- package/dist/store/schema/attachments.d.ts +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 +5 -0
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +7 -0
- package/dist/store/schema/cleo-global/index.js.map +1 -1
- package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
- package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/models-catalog.js +114 -0
- package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
- package/dist/store/schema/cleo-global/providers.d.ts +279 -0
- package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/providers.js +94 -0
- package/dist/store/schema/cleo-global/providers.js.map +1 -0
- package/dist/store/schema/cleo-global/services.d.ts +493 -0
- package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/services.js +200 -0
- package/dist/store/schema/cleo-global/services.js.map +1 -0
- 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/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
- 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/cleo-shared/brain.d.ts +2 -2
- package/dist/store/schema/memory-schema.d.ts +182 -2
- package/dist/store/schema/memory-schema.d.ts.map +1 -1
- package/dist/store/schema/memory-schema.js +111 -2
- package/dist/store/schema/memory-schema.js.map +1 -1
- package/dist/store/schema/provenance/releases.d.ts +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/service-connections-accessor.d.ts +313 -0
- package/dist/store/service-connections-accessor.d.ts.map +1 -0
- package/dist/store/service-connections-accessor.js +464 -0
- package/dist/store/service-connections-accessor.js.map +1 -0
- package/dist/store/service-host-matcher.d.ts +70 -0
- package/dist/store/service-host-matcher.d.ts.map +1 -0
- package/dist/store/service-host-matcher.js +127 -0
- package/dist/store/service-host-matcher.js.map +1 -0
- package/dist/store/service-injection.d.ts +152 -0
- package/dist/store/service-injection.d.ts.map +1 -0
- package/dist/store/service-injection.js +225 -0
- package/dist/store/service-injection.js.map +1 -0
- package/dist/store/service-oauth.d.ts +287 -0
- package/dist/store/service-oauth.d.ts.map +1 -0
- package/dist/store/service-oauth.js +524 -0
- package/dist/store/service-oauth.js.map +1 -0
- package/dist/store/service-trust-gate.d.ts +164 -0
- package/dist/store/service-trust-gate.d.ts.map +1 -0
- package/dist/store/service-trust-gate.js +122 -0
- package/dist/store/service-trust-gate.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 +36 -4
- 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/agent-lifecycle-lane.d.ts +175 -0
- package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
- package/dist/tasks/agent-lifecycle-lane.js +176 -0
- package/dist/tasks/agent-lifecycle-lane.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 +17 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +60 -20
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/depends-waiver-audit.d.ts +52 -0
- package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
- package/dist/tasks/depends-waiver-audit.js +36 -0
- package/dist/tasks/depends-waiver-audit.js.map +1 -0
- 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/tasks/engine-wrap.d.ts +36 -2
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +44 -2
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/index.d.ts +1 -0
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -0
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/ops.d.ts +3 -0
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.d.ts +1 -1
- package/dist/tasks/task-ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.js +3 -1
- package/dist/tasks/task-ops.js.map +1 -1
- package/dist/tasks/task-reparent.d.ts +90 -0
- package/dist/tasks/task-reparent.d.ts.map +1 -1
- package/dist/tasks/task-reparent.js +171 -0
- package/dist/tasks/task-reparent.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 +191 -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/exec-code-agent-tool.d.ts +179 -0
- package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
- package/dist/tools/exec-code-agent-tool.js +239 -0
- package/dist/tools/exec-code-agent-tool.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 +16 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-agent-tool.d.ts +189 -0
- package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
- package/dist/tools/mcp-agent-tool.js +243 -0
- package/dist/tools/mcp-agent-tool.js.map +1 -0
- package/dist/tools/media-agent-tools.d.ts +105 -0
- package/dist/tools/media-agent-tools.d.ts.map +1 -0
- package/dist/tools/media-agent-tools.js +255 -0
- package/dist/tools/media-agent-tools.js.map +1 -0
- package/dist/tools/memory-agent-tools.d.ts +99 -0
- package/dist/tools/memory-agent-tools.d.ts.map +1 -0
- package/dist/tools/memory-agent-tools.js +190 -0
- package/dist/tools/memory-agent-tools.js.map +1 -0
- 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/schedule-agent-tools.d.ts +151 -0
- package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
- package/dist/tools/schedule-agent-tools.js +238 -0
- package/dist/tools/schedule-agent-tools.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/skill-agent-tool.d.ts +108 -0
- package/dist/tools/skill-agent-tool.d.ts.map +1 -0
- package/dist/tools/skill-agent-tool.js +135 -0
- package/dist/tools/skill-agent-tool.js.map +1 -0
- 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/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +17 -1
- package/dist/validation/engine-ops.js.map +1 -1
- 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-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
- 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-global/20260609000000_t11937-service-vault/migration.sql +93 -0
- package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
- package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
- package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -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/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
- package/package.json +26 -14
- 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
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global-scope `cleo.db` — **universal service-credential vault** (3 tables).
|
|
3
|
+
*
|
|
4
|
+
* EP-UNIVERSAL-SERVICE-VAULT (epic T11765 · saga SG-VAULT-CORE T10409 · M2 W1a ·
|
|
5
|
+
* task T11937). The **service** half of the universal vault — machine-wide OAuth /
|
|
6
|
+
* API credentials for third-party SERVICES (github, google, notion, figma, …) —
|
|
7
|
+
* cannibalized from onecli's `app_connections` / `app_configs` /
|
|
8
|
+
* `agent_app_connections`, DROPPING every org / project / billing column (the
|
|
9
|
+
* vault is machine-wide, exactly like the `accounts` LLM-credential pool — T11709,
|
|
10
|
+
* the established precedent this directory mirrors). Three tables:
|
|
11
|
+
*
|
|
12
|
+
* - `service_connections` — one user-connected credential per `(provider, label)`:
|
|
13
|
+
* the encrypted token blob + non-secret metadata (scopes, expiry, username).
|
|
14
|
+
* - `service_configs` — per-provider BYOC (bring-your-own-client) OAuth app:
|
|
15
|
+
* enabled flag + encrypted client secret + non-secret settings (client id,
|
|
16
|
+
* scopes). One row per provider.
|
|
17
|
+
* - `agent_service_grants` — per-agent access to a connection, plus the
|
|
18
|
+
* `session_policy` (block / rate-limit / manual-approval) the trust gate
|
|
19
|
+
* evaluates BEFORE any decrypt (T11937 AC4 — policy-before-decrypt).
|
|
20
|
+
*
|
|
21
|
+
* ## NOT the LLM credential pool (`accounts`) — do not confuse the two
|
|
22
|
+
*
|
|
23
|
+
* `accounts` (T11709) holds MODEL-API credentials (the pool the LLM runner picks
|
|
24
|
+
* from). These `service_*` tables hold SERVICE-API credentials (the things an
|
|
25
|
+
* agent's tools call: github, gmail, …). Different physical names, different
|
|
26
|
+
* consumers, different egress path. The crypto, ISO-timestamp typing, and
|
|
27
|
+
* accessor patterns are shared by design.
|
|
28
|
+
*
|
|
29
|
+
* ## Encrypted at rest (global KDF — reuse, no new crypto · T11710)
|
|
30
|
+
*
|
|
31
|
+
* `credentials_enc` (the `{access_token, refresh_token}` JSON blob) and
|
|
32
|
+
* `client_secret_enc` (the BYOC client secret) are `encryptGlobal()` ciphertext
|
|
33
|
+
* (packages/core/src/crypto/credentials.ts), NEVER plaintext. They keep the
|
|
34
|
+
* versioned `0x01 + 12B IV + 16B authTag` framing and decrypt via the project-
|
|
35
|
+
* INDEPENDENT KDF `HMAC-SHA256(machine-key || globalSalt, id)` with
|
|
36
|
+
* `id = service:${provider}:${label}` — so a service credential decrypts
|
|
37
|
+
* consistently for the machine regardless of the reading project's cwd.
|
|
38
|
+
*
|
|
39
|
+
* ## E10 typing (per docs/migration/sqlite-schema-canonical.md)
|
|
40
|
+
*
|
|
41
|
+
* TEXT ISO-8601 timestamps (`*_at`, GLOB-checked in the migration); named enums
|
|
42
|
+
* ({@link SERVICE_CONNECTION_STATUSES}); typed booleans (`enabled`); JSON-as-TEXT
|
|
43
|
+
* (`scopes`, `metadata`, `settings`, `session_policy`). The consolidated
|
|
44
|
+
* schema-parity gate (T11364) re-derives the CHECK set from THIS metadata, so the
|
|
45
|
+
* forward migration's CHECKs must match it exactly.
|
|
46
|
+
*
|
|
47
|
+
* @task T11937
|
|
48
|
+
* @epic T11765
|
|
49
|
+
* @saga T10409
|
|
50
|
+
* @see ../../../crypto/credentials.ts — `encryptGlobal` / `decryptGlobal` (T11710)
|
|
51
|
+
* @see ./accounts.ts — `accounts` (the SIBLING LLM-credential-pool table, T11709)
|
|
52
|
+
* @see ../../service-connections-accessor.ts — the store CRUD + sealed-handle egress
|
|
53
|
+
* @see ../../service-trust-gate.ts — policy-before-decrypt grant evaluation
|
|
54
|
+
* @see ../../../../migrations/drizzle-cleo-global — the forward migration
|
|
55
|
+
*/
|
|
56
|
+
import { sql } from 'drizzle-orm';
|
|
57
|
+
import { index, integer, primaryKey, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core';
|
|
58
|
+
/**
|
|
59
|
+
* Legal `service_connections.status` values — the lifecycle of a connection.
|
|
60
|
+
*
|
|
61
|
+
* - `active` — usable; the token is (or can be refreshed to) valid.
|
|
62
|
+
* - `expired` — the access token (and refresh, if any) has lapsed; needs re-auth.
|
|
63
|
+
* - `revoked` — the user (or provider) revoked the grant; never usable again.
|
|
64
|
+
*
|
|
65
|
+
* @task T11937
|
|
66
|
+
*/
|
|
67
|
+
export const SERVICE_CONNECTION_STATUSES = ['active', 'expired', 'revoked'];
|
|
68
|
+
/**
|
|
69
|
+
* `service_connections` — one user-connected service credential per `(provider, label)`.
|
|
70
|
+
*
|
|
71
|
+
* `credentials_enc` is the `encryptGlobal()` ciphertext of the
|
|
72
|
+
* `{access_token, refresh_token}` JSON blob (NEVER plaintext). `scopes` is the
|
|
73
|
+
* JSON-serialized granted scope list; `metadata` is non-secret JSON (e.g. the
|
|
74
|
+
* connected `username`/`email`) safe to display. The `(provider, label)` pair is
|
|
75
|
+
* unique. The OAuth build/exchange/refresh that POPULATES `credentials_enc` is
|
|
76
|
+
* T11939 — this table is the clean seam it writes into.
|
|
77
|
+
*
|
|
78
|
+
* @task T11937
|
|
79
|
+
*/
|
|
80
|
+
export const serviceConnections = sqliteTable('service_connections', {
|
|
81
|
+
/** Surrogate primary key (autoincrement via INTEGER PRIMARY KEY rowid alias). */
|
|
82
|
+
id: integer('id').primaryKey(),
|
|
83
|
+
/** Stable service-provider key (e.g. `github` | `google`). Joins SERVICE_PROVIDERS. */
|
|
84
|
+
provider: text('provider').notNull(),
|
|
85
|
+
/**
|
|
86
|
+
* Human-readable connection label, unique WITHIN a provider (e.g. `personal`,
|
|
87
|
+
* `work-org`). The `(provider, label)` pair is the natural unique key and the
|
|
88
|
+
* `${provider}:${label}` half of the `encryptGlobal` id.
|
|
89
|
+
*/
|
|
90
|
+
label: text('label').notNull(),
|
|
91
|
+
/**
|
|
92
|
+
* Connection lifecycle — `active` | `expired` | `revoked`
|
|
93
|
+
* ({@link SERVICE_CONNECTION_STATUSES}). Only `active` connections resolve.
|
|
94
|
+
*/
|
|
95
|
+
status: text('status', { enum: SERVICE_CONNECTION_STATUSES }).notNull().default('active'),
|
|
96
|
+
/**
|
|
97
|
+
* Encrypted credential blob — `encryptGlobal()` ciphertext of the
|
|
98
|
+
* `{access_token, refresh_token}` JSON (`0x01 + 12B IV + 16B authTag` framing,
|
|
99
|
+
* T11710). NEVER plaintext. NULL until the OAuth dance (T11939) writes a token.
|
|
100
|
+
*/
|
|
101
|
+
credentialsEnc: text('credentials_enc'),
|
|
102
|
+
/** JSON-serialized granted scope list (non-secret). Serialized TEXT; defaults to `[]`. */
|
|
103
|
+
scopes: text('scopes').notNull().default('[]'),
|
|
104
|
+
/** ISO-8601 UTC access-token expiry; NULL for a non-expiring token. */
|
|
105
|
+
expiresAt: text('expires_at'),
|
|
106
|
+
/**
|
|
107
|
+
* Free-form NON-SECRET JSON (e.g. connected `username` / `email` / account id)
|
|
108
|
+
* safe to display. NEVER holds token material. Serialized TEXT; defaults `{}`.
|
|
109
|
+
*/
|
|
110
|
+
metadata: text('metadata').notNull().default('{}'),
|
|
111
|
+
/** ISO-8601 UTC instant the connection was first established. Defaults to write time. */
|
|
112
|
+
connectedAt: text('connected_at').notNull().default(sql `(datetime('now'))`),
|
|
113
|
+
/** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
|
|
114
|
+
updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
|
|
115
|
+
}, (table) => [
|
|
116
|
+
// A label is unique within a provider — the natural unique key.
|
|
117
|
+
unique('ux_service_connections_provider_label').on(table.provider, table.label),
|
|
118
|
+
// Lookup index — resolve a provider's active connections.
|
|
119
|
+
index('idx_service_connections_provider_status').on(table.provider, table.status),
|
|
120
|
+
]);
|
|
121
|
+
/**
|
|
122
|
+
* `service_configs` — per-provider BYOC (bring-your-own-client) OAuth app config.
|
|
123
|
+
*
|
|
124
|
+
* When a user brings their own OAuth client (rather than using CLEO's first-party
|
|
125
|
+
* app), the client id + non-secret OAuth settings live in `settings` (JSON) and
|
|
126
|
+
* the client SECRET lives encrypted in `client_secret_enc`. One row per provider
|
|
127
|
+
* (`UNIQUE(provider)`). `enabled` toggles whether the BYOC config is used. This
|
|
128
|
+
* is the clean seam the OAuth flow (T11939) reads to prefer a user client over
|
|
129
|
+
* the registry default.
|
|
130
|
+
*
|
|
131
|
+
* @task T11937
|
|
132
|
+
*/
|
|
133
|
+
export const serviceConfigs = sqliteTable('service_configs', {
|
|
134
|
+
/** Surrogate primary key. */
|
|
135
|
+
id: integer('id').primaryKey(),
|
|
136
|
+
/** Stable service-provider key — unique (one BYOC config per provider). */
|
|
137
|
+
provider: text('provider').notNull(),
|
|
138
|
+
/** Whether this BYOC config is active. Typed boolean (CHECK IN (0,1)). Default false. */
|
|
139
|
+
enabled: integer('enabled', { mode: 'boolean' }).notNull().default(false),
|
|
140
|
+
/**
|
|
141
|
+
* Encrypted BYOC client secret — `encryptGlobal()` ciphertext (id
|
|
142
|
+
* `service-config:${provider}`). NEVER plaintext. NULL for a public-client
|
|
143
|
+
* (PKCE) provider that has no secret.
|
|
144
|
+
*/
|
|
145
|
+
clientSecretEnc: text('client_secret_enc'),
|
|
146
|
+
/**
|
|
147
|
+
* Non-secret BYOC settings JSON — the user's OAuth `client_id`, custom
|
|
148
|
+
* `scopes`, custom endpoints, etc. NEVER holds the client secret. Serialized
|
|
149
|
+
* TEXT; defaults `{}`.
|
|
150
|
+
*/
|
|
151
|
+
settings: text('settings').notNull().default('{}'),
|
|
152
|
+
/** ISO-8601 UTC row-creation instant. Defaults to write time. */
|
|
153
|
+
createdAt: text('created_at').notNull().default(sql `(datetime('now'))`),
|
|
154
|
+
/** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
|
|
155
|
+
updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
|
|
156
|
+
}, (table) => [
|
|
157
|
+
// One BYOC config per provider.
|
|
158
|
+
unique('ux_service_configs_provider').on(table.provider),
|
|
159
|
+
]);
|
|
160
|
+
/**
|
|
161
|
+
* `agent_service_grants` — per-agent access to a service connection + policy.
|
|
162
|
+
*
|
|
163
|
+
* A grant authorizes one `agent_id` to use one `service_connection_id`, carrying
|
|
164
|
+
* the `session_policy` JSON (block / rate-limit / manual-approval) the trust gate
|
|
165
|
+
* (T11937 AC4) evaluates BEFORE any `decryptGlobal`. ABSENCE of a grant denies;
|
|
166
|
+
* a `block` policy denies; only a passing policy lets the store decrypt. The
|
|
167
|
+
* composite `(agent_id, service_connection_id)` is the primary key.
|
|
168
|
+
*
|
|
169
|
+
* `service_connection_id` references `service_connections(id)` — both tables live
|
|
170
|
+
* in the SAME global `cleo.db` file (Pattern A), so the FK is in-file and
|
|
171
|
+
* enforceable. The FK is declared natively (intra-domain, single global file —
|
|
172
|
+
* mirrors the agent-registry FK convention).
|
|
173
|
+
*
|
|
174
|
+
* @task T11937
|
|
175
|
+
*/
|
|
176
|
+
export const agentServiceGrants = sqliteTable('agent_service_grants', {
|
|
177
|
+
/** The granted agent's id (FK-soft to the agent registry; string id). */
|
|
178
|
+
agentId: text('agent_id').notNull(),
|
|
179
|
+
/** The service connection this grant authorizes — references `service_connections(id)`. */
|
|
180
|
+
serviceConnectionId: integer('service_connection_id')
|
|
181
|
+
.notNull()
|
|
182
|
+
.references(() => serviceConnections.id),
|
|
183
|
+
/**
|
|
184
|
+
* Per-session access policy JSON evaluated BEFORE decrypt. Shape (see
|
|
185
|
+
* {@link import('../../service-trust-gate.js').SessionPolicy}):
|
|
186
|
+
* `{ mode: 'allow'|'block', rateLimit?: {...}, manualApproval?: boolean }`.
|
|
187
|
+
* Serialized TEXT; defaults `{"mode":"allow"}` (a bare grant = allow).
|
|
188
|
+
*/
|
|
189
|
+
sessionPolicy: text('session_policy').notNull().default('{"mode":"allow"}'),
|
|
190
|
+
/** ISO-8601 UTC grant-creation instant. Defaults to write time. */
|
|
191
|
+
createdAt: text('created_at').notNull().default(sql `(datetime('now'))`),
|
|
192
|
+
/** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
|
|
193
|
+
updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
|
|
194
|
+
}, (table) => [
|
|
195
|
+
// A grant is uniquely identified by (agent, connection).
|
|
196
|
+
primaryKey({ columns: [table.agentId, table.serviceConnectionId] }),
|
|
197
|
+
// Lookup index — resolve all grants for one agent.
|
|
198
|
+
index('idx_agent_service_grants_agent').on(table.agentId),
|
|
199
|
+
]);
|
|
200
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global-scope `cleo.db` — cross-project **session manifest** mirror (1 table).
|
|
3
|
+
*
|
|
4
|
+
* EP-SESSION-MANIFEST (epic T11638, task T11639). The `session_manifest` table is
|
|
5
|
+
* a CROSS-PROJECT MIRROR of the per-project `tasks_sessions` rows: each project's
|
|
6
|
+
* authoritative session lives in that project's `tasks_sessions` table (PROJECT
|
|
7
|
+
* scope `cleo.db`), and a best-effort writer copies a compact projection into this
|
|
8
|
+
* GLOBAL-scope row so the fleet has a single, machine-wide view of every session
|
|
9
|
+
* across every project — without ATTACHing N per-project DBs.
|
|
10
|
+
*
|
|
11
|
+
* ## NOT named `sessions` (AC1)
|
|
12
|
+
*
|
|
13
|
+
* The table is deliberately `session_manifest`, NOT `sessions`. The authoritative
|
|
14
|
+
* project-tier table is `tasks_sessions`; naming the global mirror `sessions` would
|
|
15
|
+
* invite a future reader to mistake the mirror for the source of truth. The name
|
|
16
|
+
* encodes its role: a manifest (an index/catalog), never the authority.
|
|
17
|
+
*
|
|
18
|
+
* ## MIRROR, never authoritative (AC4)
|
|
19
|
+
*
|
|
20
|
+
* Every column here is derived from the project row. The mirror writer is
|
|
21
|
+
* best-effort (a failure NEVER fails the underlying session op) and reconcile-on-
|
|
22
|
+
* start re-reads the authoritative project row and OVERWRITES the manifest row, so
|
|
23
|
+
* a stale or partially-written manifest entry can never drift into being treated as
|
|
24
|
+
* truth. Consumers needing exact session state MUST read the project's
|
|
25
|
+
* `tasks_sessions`; this table answers "which sessions exist, where, and how are
|
|
26
|
+
* they forked" cheaply across projects.
|
|
27
|
+
*
|
|
28
|
+
* ## Identity (`project_id`)
|
|
29
|
+
*
|
|
30
|
+
* `project_id` is the canonical `nexus_project_registry.project_id` (12-hex) for
|
|
31
|
+
* the project that owns the session — a soft FK into the global registry table in
|
|
32
|
+
* THIS same `cleo.db`. It is reused (never minted here) so the manifest joins
|
|
33
|
+
* cleanly to the registry. Nullable: a session started outside any resolvable
|
|
34
|
+
* registered project still mirrors, with `project_id` NULL.
|
|
35
|
+
*
|
|
36
|
+
* ## Fork tree (`parent_session_id`)
|
|
37
|
+
*
|
|
38
|
+
* `parent_session_id` mirrors the project row's own `parent_session_id`
|
|
39
|
+
* (populated from `CLEO_PARENT_SESSION_ID`, stamped by the supervisor — PR #996 /
|
|
40
|
+
* T11629). It reconstructs the orchestrator→worker fork tree machine-wide without
|
|
41
|
+
* a per-project DB scan. Soft self-reference to `session_manifest.session_id`;
|
|
42
|
+
* NULL for a root session.
|
|
43
|
+
*
|
|
44
|
+
* @task T11639
|
|
45
|
+
* @epic T11638
|
|
46
|
+
* @saga T11242
|
|
47
|
+
* @see ../cleo-project/tasks-core.ts — `tasksSessions` (the authoritative source)
|
|
48
|
+
* @see ./nexus.ts — `nexusProjectRegistry` (the `project_id` SSoT)
|
|
49
|
+
* @see ../../sessions/session-manifest-mirror.ts — the best-effort mirror writers
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* `session_manifest` — cross-project mirror of per-project `tasks_sessions` rows.
|
|
53
|
+
*
|
|
54
|
+
* A best-effort projection: one row per session, keyed on the session id, carrying
|
|
55
|
+
* just enough to answer fleet-wide "what sessions exist, in which project, and how
|
|
56
|
+
* are they forked" without opening every project's `cleo.db`. NOT authoritative —
|
|
57
|
+
* the project's `tasks_sessions` row is the source of truth; this row is overwritten
|
|
58
|
+
* on reconcile-on-start so it can never drift into authority (AC4).
|
|
59
|
+
*
|
|
60
|
+
* @task T11639
|
|
61
|
+
*/
|
|
62
|
+
export declare const sessionManifest: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
63
|
+
name: "session_manifest";
|
|
64
|
+
schema: undefined;
|
|
65
|
+
columns: {
|
|
66
|
+
sessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
67
|
+
name: string;
|
|
68
|
+
tableName: "session_manifest";
|
|
69
|
+
dataType: "string";
|
|
70
|
+
data: string;
|
|
71
|
+
driverParam: string;
|
|
72
|
+
notNull: true;
|
|
73
|
+
hasDefault: false;
|
|
74
|
+
isPrimaryKey: true;
|
|
75
|
+
isAutoincrement: false;
|
|
76
|
+
hasRuntimeDefault: false;
|
|
77
|
+
enumValues: [string, ...string[]];
|
|
78
|
+
baseColumn: never;
|
|
79
|
+
identity: undefined;
|
|
80
|
+
generated: undefined;
|
|
81
|
+
}, {}>;
|
|
82
|
+
projectId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
83
|
+
name: string;
|
|
84
|
+
tableName: "session_manifest";
|
|
85
|
+
dataType: "string";
|
|
86
|
+
data: string;
|
|
87
|
+
driverParam: string;
|
|
88
|
+
notNull: false;
|
|
89
|
+
hasDefault: false;
|
|
90
|
+
isPrimaryKey: false;
|
|
91
|
+
isAutoincrement: false;
|
|
92
|
+
hasRuntimeDefault: false;
|
|
93
|
+
enumValues: [string, ...string[]];
|
|
94
|
+
baseColumn: never;
|
|
95
|
+
identity: undefined;
|
|
96
|
+
generated: undefined;
|
|
97
|
+
}, {}>;
|
|
98
|
+
parentSessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
99
|
+
name: string;
|
|
100
|
+
tableName: "session_manifest";
|
|
101
|
+
dataType: "string";
|
|
102
|
+
data: string;
|
|
103
|
+
driverParam: string;
|
|
104
|
+
notNull: false;
|
|
105
|
+
hasDefault: false;
|
|
106
|
+
isPrimaryKey: false;
|
|
107
|
+
isAutoincrement: false;
|
|
108
|
+
hasRuntimeDefault: false;
|
|
109
|
+
enumValues: [string, ...string[]];
|
|
110
|
+
baseColumn: never;
|
|
111
|
+
identity: undefined;
|
|
112
|
+
generated: undefined;
|
|
113
|
+
}, {}>;
|
|
114
|
+
name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
115
|
+
name: string;
|
|
116
|
+
tableName: "session_manifest";
|
|
117
|
+
dataType: "string";
|
|
118
|
+
data: string;
|
|
119
|
+
driverParam: string;
|
|
120
|
+
notNull: false;
|
|
121
|
+
hasDefault: false;
|
|
122
|
+
isPrimaryKey: false;
|
|
123
|
+
isAutoincrement: false;
|
|
124
|
+
hasRuntimeDefault: false;
|
|
125
|
+
enumValues: [string, ...string[]];
|
|
126
|
+
baseColumn: never;
|
|
127
|
+
identity: undefined;
|
|
128
|
+
generated: undefined;
|
|
129
|
+
}, {}>;
|
|
130
|
+
status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
131
|
+
name: string;
|
|
132
|
+
tableName: "session_manifest";
|
|
133
|
+
dataType: "string";
|
|
134
|
+
data: string;
|
|
135
|
+
driverParam: string;
|
|
136
|
+
notNull: false;
|
|
137
|
+
hasDefault: false;
|
|
138
|
+
isPrimaryKey: false;
|
|
139
|
+
isAutoincrement: false;
|
|
140
|
+
hasRuntimeDefault: false;
|
|
141
|
+
enumValues: [string, ...string[]];
|
|
142
|
+
baseColumn: never;
|
|
143
|
+
identity: undefined;
|
|
144
|
+
generated: undefined;
|
|
145
|
+
}, {}>;
|
|
146
|
+
projectPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
147
|
+
name: string;
|
|
148
|
+
tableName: "session_manifest";
|
|
149
|
+
dataType: "string";
|
|
150
|
+
data: string;
|
|
151
|
+
driverParam: string;
|
|
152
|
+
notNull: false;
|
|
153
|
+
hasDefault: false;
|
|
154
|
+
isPrimaryKey: false;
|
|
155
|
+
isAutoincrement: false;
|
|
156
|
+
hasRuntimeDefault: false;
|
|
157
|
+
enumValues: [string, ...string[]];
|
|
158
|
+
baseColumn: never;
|
|
159
|
+
identity: undefined;
|
|
160
|
+
generated: undefined;
|
|
161
|
+
}, {}>;
|
|
162
|
+
startedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
163
|
+
name: string;
|
|
164
|
+
tableName: "session_manifest";
|
|
165
|
+
dataType: "string";
|
|
166
|
+
data: string;
|
|
167
|
+
driverParam: string;
|
|
168
|
+
notNull: false;
|
|
169
|
+
hasDefault: false;
|
|
170
|
+
isPrimaryKey: false;
|
|
171
|
+
isAutoincrement: false;
|
|
172
|
+
hasRuntimeDefault: false;
|
|
173
|
+
enumValues: [string, ...string[]];
|
|
174
|
+
baseColumn: never;
|
|
175
|
+
identity: undefined;
|
|
176
|
+
generated: undefined;
|
|
177
|
+
}, {}>;
|
|
178
|
+
endedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
179
|
+
name: string;
|
|
180
|
+
tableName: "session_manifest";
|
|
181
|
+
dataType: "string";
|
|
182
|
+
data: string;
|
|
183
|
+
driverParam: string;
|
|
184
|
+
notNull: false;
|
|
185
|
+
hasDefault: false;
|
|
186
|
+
isPrimaryKey: false;
|
|
187
|
+
isAutoincrement: false;
|
|
188
|
+
hasRuntimeDefault: false;
|
|
189
|
+
enumValues: [string, ...string[]];
|
|
190
|
+
baseColumn: never;
|
|
191
|
+
identity: undefined;
|
|
192
|
+
generated: undefined;
|
|
193
|
+
}, {}>;
|
|
194
|
+
mirroredAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
195
|
+
name: string;
|
|
196
|
+
tableName: "session_manifest";
|
|
197
|
+
dataType: "string";
|
|
198
|
+
data: string;
|
|
199
|
+
driverParam: string;
|
|
200
|
+
notNull: true;
|
|
201
|
+
hasDefault: true;
|
|
202
|
+
isPrimaryKey: false;
|
|
203
|
+
isAutoincrement: false;
|
|
204
|
+
hasRuntimeDefault: false;
|
|
205
|
+
enumValues: [string, ...string[]];
|
|
206
|
+
baseColumn: never;
|
|
207
|
+
identity: undefined;
|
|
208
|
+
generated: undefined;
|
|
209
|
+
}, {}>;
|
|
210
|
+
};
|
|
211
|
+
dialect: "sqlite";
|
|
212
|
+
}>;
|
|
213
|
+
/** Row type for `session_manifest` SELECT queries (mirror shape). */
|
|
214
|
+
export type SessionManifestRow = typeof sessionManifest.$inferSelect;
|
|
215
|
+
/** Row type for `session_manifest` INSERT/UPSERT operations (mirror shape). */
|
|
216
|
+
export type NewSessionManifestRow = typeof sessionManifest.$inferInsert;
|
|
217
|
+
//# sourceMappingURL=session-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manifest.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/session-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAKH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC3B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACrE,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global-scope `cleo.db` — cross-project **session manifest** mirror (1 table).
|
|
3
|
+
*
|
|
4
|
+
* EP-SESSION-MANIFEST (epic T11638, task T11639). The `session_manifest` table is
|
|
5
|
+
* a CROSS-PROJECT MIRROR of the per-project `tasks_sessions` rows: each project's
|
|
6
|
+
* authoritative session lives in that project's `tasks_sessions` table (PROJECT
|
|
7
|
+
* scope `cleo.db`), and a best-effort writer copies a compact projection into this
|
|
8
|
+
* GLOBAL-scope row so the fleet has a single, machine-wide view of every session
|
|
9
|
+
* across every project — without ATTACHing N per-project DBs.
|
|
10
|
+
*
|
|
11
|
+
* ## NOT named `sessions` (AC1)
|
|
12
|
+
*
|
|
13
|
+
* The table is deliberately `session_manifest`, NOT `sessions`. The authoritative
|
|
14
|
+
* project-tier table is `tasks_sessions`; naming the global mirror `sessions` would
|
|
15
|
+
* invite a future reader to mistake the mirror for the source of truth. The name
|
|
16
|
+
* encodes its role: a manifest (an index/catalog), never the authority.
|
|
17
|
+
*
|
|
18
|
+
* ## MIRROR, never authoritative (AC4)
|
|
19
|
+
*
|
|
20
|
+
* Every column here is derived from the project row. The mirror writer is
|
|
21
|
+
* best-effort (a failure NEVER fails the underlying session op) and reconcile-on-
|
|
22
|
+
* start re-reads the authoritative project row and OVERWRITES the manifest row, so
|
|
23
|
+
* a stale or partially-written manifest entry can never drift into being treated as
|
|
24
|
+
* truth. Consumers needing exact session state MUST read the project's
|
|
25
|
+
* `tasks_sessions`; this table answers "which sessions exist, where, and how are
|
|
26
|
+
* they forked" cheaply across projects.
|
|
27
|
+
*
|
|
28
|
+
* ## Identity (`project_id`)
|
|
29
|
+
*
|
|
30
|
+
* `project_id` is the canonical `nexus_project_registry.project_id` (12-hex) for
|
|
31
|
+
* the project that owns the session — a soft FK into the global registry table in
|
|
32
|
+
* THIS same `cleo.db`. It is reused (never minted here) so the manifest joins
|
|
33
|
+
* cleanly to the registry. Nullable: a session started outside any resolvable
|
|
34
|
+
* registered project still mirrors, with `project_id` NULL.
|
|
35
|
+
*
|
|
36
|
+
* ## Fork tree (`parent_session_id`)
|
|
37
|
+
*
|
|
38
|
+
* `parent_session_id` mirrors the project row's own `parent_session_id`
|
|
39
|
+
* (populated from `CLEO_PARENT_SESSION_ID`, stamped by the supervisor — PR #996 /
|
|
40
|
+
* T11629). It reconstructs the orchestrator→worker fork tree machine-wide without
|
|
41
|
+
* a per-project DB scan. Soft self-reference to `session_manifest.session_id`;
|
|
42
|
+
* NULL for a root session.
|
|
43
|
+
*
|
|
44
|
+
* @task T11639
|
|
45
|
+
* @epic T11638
|
|
46
|
+
* @saga T11242
|
|
47
|
+
* @see ../cleo-project/tasks-core.ts — `tasksSessions` (the authoritative source)
|
|
48
|
+
* @see ./nexus.ts — `nexusProjectRegistry` (the `project_id` SSoT)
|
|
49
|
+
* @see ../../sessions/session-manifest-mirror.ts — the best-effort mirror writers
|
|
50
|
+
*/
|
|
51
|
+
import { sql } from 'drizzle-orm';
|
|
52
|
+
import { index, sqliteTable, text } from 'drizzle-orm/sqlite-core';
|
|
53
|
+
/**
|
|
54
|
+
* `session_manifest` — cross-project mirror of per-project `tasks_sessions` rows.
|
|
55
|
+
*
|
|
56
|
+
* A best-effort projection: one row per session, keyed on the session id, carrying
|
|
57
|
+
* just enough to answer fleet-wide "what sessions exist, in which project, and how
|
|
58
|
+
* are they forked" without opening every project's `cleo.db`. NOT authoritative —
|
|
59
|
+
* the project's `tasks_sessions` row is the source of truth; this row is overwritten
|
|
60
|
+
* on reconcile-on-start so it can never drift into authority (AC4).
|
|
61
|
+
*
|
|
62
|
+
* @task T11639
|
|
63
|
+
*/
|
|
64
|
+
export const sessionManifest = sqliteTable('session_manifest', {
|
|
65
|
+
/** Session id (canonical `ses_...` form). Primary key — one manifest row per session. */
|
|
66
|
+
sessionId: text('session_id').primaryKey(),
|
|
67
|
+
/**
|
|
68
|
+
* Canonical `nexus_project_registry.project_id` (12-hex) of the owning project.
|
|
69
|
+
* Soft FK into the global registry in THIS `cleo.db`; NULL when the session was
|
|
70
|
+
* started outside any resolvable registered project.
|
|
71
|
+
*/
|
|
72
|
+
projectId: text('project_id'),
|
|
73
|
+
/**
|
|
74
|
+
* Fork-tree parent session id, mirrored from the project row's own
|
|
75
|
+
* `parent_session_id` (sourced from `CLEO_PARENT_SESSION_ID`, T11629). Soft
|
|
76
|
+
* self-reference to `session_manifest.session_id`; NULL for a root session.
|
|
77
|
+
*/
|
|
78
|
+
parentSessionId: text('parent_session_id'),
|
|
79
|
+
/** Mirrored session name. */
|
|
80
|
+
name: text('name'),
|
|
81
|
+
/** Mirrored session status (`active` | `ended` | `orphaned` | …). */
|
|
82
|
+
status: text('status'),
|
|
83
|
+
/** Mirrored absolute project root path (for operator readability / debugging). */
|
|
84
|
+
projectPath: text('project_path'),
|
|
85
|
+
/** Mirrored ISO-8601 UTC session-start instant. */
|
|
86
|
+
startedAt: text('started_at'),
|
|
87
|
+
/** Mirrored ISO-8601 UTC session-end instant; NULL while active. */
|
|
88
|
+
endedAt: text('ended_at'),
|
|
89
|
+
/**
|
|
90
|
+
* ISO-8601 UTC instant this mirror row was last written by a mirror/reconcile
|
|
91
|
+
* writer (NOT the session's own activity). Defaults to write time.
|
|
92
|
+
*/
|
|
93
|
+
mirroredAt: text('mirrored_at').notNull().default(sql `(datetime('now'))`),
|
|
94
|
+
}, (table) => [
|
|
95
|
+
index('idx_session_manifest_project_id').on(table.projectId),
|
|
96
|
+
index('idx_session_manifest_parent').on(table.parentSessionId),
|
|
97
|
+
index('idx_session_manifest_status').on(table.status),
|
|
98
|
+
]);
|
|
99
|
+
//# sourceMappingURL=session-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manifest.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/session-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CACxC,kBAAkB,EAClB;IACE,yFAAyF;IACzF,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE;IAC1C;;;;OAIG;IACH,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B;;;;OAIG;IACH,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC1C,6BAA6B;IAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,qEAAqE;IACrE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IACtB,kFAAkF;IAClF,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;IACjC,mDAAmD;IACnD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,oEAAoE;IACpE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;IACzB;;;OAGG;IACH,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;CAC1E,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5D,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAC9D,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACtD,CACF,CAAC"}
|
|
@@ -351,7 +351,7 @@ export declare const docsAttachmentRefs: import("drizzle-orm/sqlite-core").SQLit
|
|
|
351
351
|
name: string;
|
|
352
352
|
tableName: "docs_attachment_refs";
|
|
353
353
|
dataType: "string enum";
|
|
354
|
-
data: "task" | "
|
|
354
|
+
data: "task" | "observation" | "decision" | "pattern" | "learning" | "session";
|
|
355
355
|
driverParam: string;
|
|
356
356
|
notNull: true;
|
|
357
357
|
hasDefault: false;
|
|
@@ -595,7 +595,7 @@ export declare const tasksReleases: import("drizzle-orm/sqlite-core").SQLiteTabl
|
|
|
595
595
|
name: string;
|
|
596
596
|
tableName: "tasks_releases";
|
|
597
597
|
dataType: "string enum";
|
|
598
|
-
data: "
|
|
598
|
+
data: "beta" | "latest" | "dev" | "hotfix";
|
|
599
599
|
driverParam: string;
|
|
600
600
|
notNull: true;
|
|
601
601
|
hasDefault: true;
|
|
@@ -1490,6 +1490,22 @@ export declare const tasksSessions: import("drizzle-orm/sqlite-core").SQLiteTabl
|
|
|
1490
1490
|
identity: undefined;
|
|
1491
1491
|
generated: undefined;
|
|
1492
1492
|
}, {}>;
|
|
1493
|
+
parentSessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1494
|
+
name: string;
|
|
1495
|
+
tableName: "tasks_sessions";
|
|
1496
|
+
dataType: "string";
|
|
1497
|
+
data: string;
|
|
1498
|
+
driverParam: string;
|
|
1499
|
+
notNull: false;
|
|
1500
|
+
hasDefault: false;
|
|
1501
|
+
isPrimaryKey: false;
|
|
1502
|
+
isAutoincrement: false;
|
|
1503
|
+
hasRuntimeDefault: false;
|
|
1504
|
+
enumValues: [string, ...string[]];
|
|
1505
|
+
baseColumn: never;
|
|
1506
|
+
identity: undefined;
|
|
1507
|
+
generated: undefined;
|
|
1508
|
+
}, {}>;
|
|
1493
1509
|
agentIdentifier: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1494
1510
|
name: string;
|
|
1495
1511
|
tableName: "tasks_sessions";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-core.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-project/tasks-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AA8BH,8EAA8E;AAC9E,eAAO,MAAM,aAAa,mDAAoD,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6GtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"tasks-core.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-project/tasks-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -355,6 +355,19 @@ export const tasksSessions = sqliteTable('tasks_sessions', {
|
|
|
355
355
|
nextSessionId: text('next_session_id').references(() => tasksSessions.id, {
|
|
356
356
|
onDelete: 'set null',
|
|
357
357
|
}),
|
|
358
|
+
/**
|
|
359
|
+
* Fork-tree PARENT session pointer (self-FK). Distinct from
|
|
360
|
+
* `previousSessionId` (the linear resume chain): `parentSessionId` is the
|
|
361
|
+
* orchestrator→worker spawn edge, sourced from `CLEO_PARENT_SESSION_ID`
|
|
362
|
+
* (stamped by the supervisor — T11629 / PR #996) at session start. NULL for a
|
|
363
|
+
* root session with no spawning parent. Nullable, `ON DELETE SET NULL`.
|
|
364
|
+
*
|
|
365
|
+
* @task T11639
|
|
366
|
+
* @epic T11638
|
|
367
|
+
*/
|
|
368
|
+
parentSessionId: text('parent_session_id').references(() => tasksSessions.id, {
|
|
369
|
+
onDelete: 'set null',
|
|
370
|
+
}),
|
|
358
371
|
/** Agent identifier. */
|
|
359
372
|
agentIdentifier: text('agent_identifier'),
|
|
360
373
|
/** ISO-8601 UTC handoff-consumed instant (canonical TEXT, §4). */
|
|
@@ -387,6 +400,7 @@ export const tasksSessions = sqliteTable('tasks_sessions', {
|
|
|
387
400
|
}, (table) => [
|
|
388
401
|
index('idx_tasks_sessions_status').on(table.status),
|
|
389
402
|
index('idx_tasks_sessions_previous').on(table.previousSessionId),
|
|
403
|
+
index('idx_tasks_sessions_parent').on(table.parentSessionId),
|
|
390
404
|
index('idx_tasks_sessions_agent_identifier').on(table.agentIdentifier),
|
|
391
405
|
index('idx_tasks_sessions_started_at').on(table.startedAt),
|
|
392
406
|
index('idx_tasks_sessions_status_started_at').on(table.status, table.startedAt),
|