@cleocode/core 2026.6.13 → 2026.6.15
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 +183 -0
- package/dist/check/pr-gate.d.ts.map +1 -0
- package/dist/check/pr-gate.js +348 -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-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/config-repair.d.ts +70 -0
- package/dist/config/config-repair.d.ts.map +1 -0
- package/dist/config/config-repair.js +248 -0
- package/dist/config/config-repair.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 +92 -0
- package/dist/config/registry.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +11 -10
- package/dist/config.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/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/docs/export-document.js +3721 -696
- 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/gc/cleanup.d.ts +23 -8
- package/dist/gc/cleanup.d.ts.map +1 -1
- package/dist/gc/cleanup.js +287 -22
- package/dist/gc/cleanup.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -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 +10 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +18 -1
- package/dist/internal.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 +16 -0
- package/dist/llm/cli-ops.d.ts.map +1 -1
- package/dist/llm/cli-ops.js +37 -10
- 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/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/cross-provider-selector.d.ts +249 -0
- package/dist/llm/cross-provider-selector.d.ts.map +1 -0
- package/dist/llm/cross-provider-selector.js +572 -0
- package/dist/llm/cross-provider-selector.js.map +1 -0
- 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 +17 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +9 -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/local-model-fit.d.ts +260 -0
- package/dist/llm/local-model-fit.d.ts.map +1 -0
- package/dist/llm/local-model-fit.js +563 -0
- package/dist/llm/local-model-fit.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/pi-gondolin-env.d.ts +23 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -1
- package/dist/llm/pi/pi-gondolin-env.js +2 -2
- package/dist/llm/pi/pi-gondolin-env.js.map +1 -1
- package/dist/llm/plugin-facade.js +4612 -1042
- 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/builtin/ollama.d.ts +18 -0
- package/dist/llm/provider-registry/builtin/ollama.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/ollama.js +20 -2
- package/dist/llm/provider-registry/builtin/ollama.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 +36 -0
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +52 -10
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +73 -22
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/llm/transports/codex-responses.d.ts +111 -88
- package/dist/llm/transports/codex-responses.d.ts.map +1 -1
- package/dist/llm/transports/codex-responses.js +456 -258
- package/dist/llm/transports/codex-responses.js.map +1 -1
- package/dist/memory/learnings.d.ts +4 -0
- package/dist/memory/learnings.d.ts.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/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/index.d.ts +2 -2
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js +1 -1
- package/dist/release/index.js.map +1 -1
- package/dist/release/reconcile.d.ts +97 -0
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +412 -5
- package/dist/release/reconcile.js.map +1 -1
- package/dist/resources/backend.d.ts +155 -0
- package/dist/resources/backend.d.ts.map +1 -0
- package/dist/resources/backend.js +23 -0
- package/dist/resources/backend.js.map +1 -0
- package/dist/resources/linux-backend.d.ts +167 -0
- package/dist/resources/linux-backend.d.ts.map +1 -0
- package/dist/resources/linux-backend.js +259 -0
- package/dist/resources/linux-backend.js.map +1 -0
- package/dist/resources/monitor.d.ts +230 -0
- package/dist/resources/monitor.d.ts.map +1 -0
- package/dist/resources/monitor.js +255 -0
- package/dist/resources/monitor.js.map +1 -0
- package/dist/resources/spawn-wrapper.d.ts +265 -0
- package/dist/resources/spawn-wrapper.d.ts.map +1 -0
- package/dist/resources/spawn-wrapper.js +304 -0
- package/dist/resources/spawn-wrapper.js.map +1 -0
- 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 +11 -2
- package/dist/selfimprove/budget.d.ts.map +1 -1
- package/dist/selfimprove/budget.js +11 -2
- package/dist/selfimprove/budget.js.map +1 -1
- package/dist/selfimprove/fix-gen.d.ts +229 -0
- package/dist/selfimprove/fix-gen.d.ts.map +1 -0
- package/dist/selfimprove/fix-gen.js +266 -0
- package/dist/selfimprove/fix-gen.js.map +1 -0
- package/dist/selfimprove/run-loop.d.ts +44 -4
- package/dist/selfimprove/run-loop.d.ts.map +1 -1
- package/dist/selfimprove/run-loop.js +73 -6
- package/dist/selfimprove/run-loop.js.map +1 -1
- 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/cross-project-hygiene.d.ts +11 -2
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +73 -10
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/sentient/daemon.d.ts.map +1 -1
- package/dist/sentient/daemon.js +7 -2
- package/dist/sentient/daemon.js.map +1 -1
- package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
- package/dist/sentient/worktree-dispatch.js +8 -1
- package/dist/sentient/worktree-dispatch.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/spawn/branch-lock.d.ts.map +1 -1
- package/dist/spawn/branch-lock.js +7 -1
- package/dist/spawn/branch-lock.js.map +1 -1
- package/dist/store/attachment-repair.d.ts +110 -0
- package/dist/store/attachment-repair.d.ts.map +1 -0
- package/dist/store/attachment-repair.js +326 -0
- package/dist/store/attachment-repair.js.map +1 -0
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +24 -7
- package/dist/store/attachment-store.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/index.d.ts +3 -0
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +5 -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-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +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/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/validation-schemas.d.ts +4 -4
- 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/complete.d.ts +17 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +53 -10
- 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/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/evidence.d.ts +34 -2
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +293 -35
- package/dist/tasks/evidence.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/tools/builtin-agent-tools.d.ts.map +1 -1
- package/dist/tools/builtin-agent-tools.js +41 -0
- package/dist/tools/builtin-agent-tools.js.map +1 -1
- 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/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -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/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/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/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/verification/verify-tools.d.ts.map +1 -1
- package/dist/verification/verify-tools.js +5 -6
- package/dist/verification/verify-tools.js.map +1 -1
- package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -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/20260610000000_t11962-schedules/migration.sql +48 -0
- package/package.json +33 -13
- package/templates/workflows/release-prepare.yml.tmpl +48 -2
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service-vault accessor — store-level CRUD + policy-before-decrypt egress.
|
|
3
|
+
*
|
|
4
|
+
* EP-UNIVERSAL-SERVICE-VAULT (epic T11765 · saga SG-VAULT-CORE T10409 · M2 W1a ·
|
|
5
|
+
* task T11937 · AC3). The store layer for the universal SERVICE-credential vault
|
|
6
|
+
* (`service_connections` / `service_configs` / `agent_service_grants`).
|
|
7
|
+
*
|
|
8
|
+
* ## DB Open Guard (Gate 3 — strict)
|
|
9
|
+
*
|
|
10
|
+
* EVERY open goes through {@link openDualScopeDb}`('global')` (or its path-aware
|
|
11
|
+
* sibling {@link openDualScopeDbAtPath} for an injected test DB) — there is ZERO
|
|
12
|
+
* raw `new DatabaseSync(`. The typed Drizzle handle drives all CRUD; the accessor
|
|
13
|
+
* never constructs a native handle itself.
|
|
14
|
+
*
|
|
15
|
+
* ## Crypto reuse (DRY — no new crypto · T11710)
|
|
16
|
+
*
|
|
17
|
+
* `credentials_enc` holds the {@link encryptGlobal} ciphertext of the
|
|
18
|
+
* `{access_token, refresh_token}` JSON, keyed `id = service:${provider}:${label}`.
|
|
19
|
+
* The accessor calls {@link encryptGlobal}/{@link decryptGlobal} from
|
|
20
|
+
* `crypto/credentials.ts` — it adds no crypto of its own. The crypto functions are
|
|
21
|
+
* injectable ({@link ServiceVaultDeps}) so a test can spy on `decryptGlobal` and
|
|
22
|
+
* PROVE it is never invoked on a denied access (policy-before-decrypt, AC4).
|
|
23
|
+
*
|
|
24
|
+
* ## Policy-before-decrypt egress (AC4)
|
|
25
|
+
*
|
|
26
|
+
* {@link resolveSealedConnection} evaluates the {@link evaluateServiceAccess}
|
|
27
|
+
* trust gate FIRST (a pure decision from the agent's grant rows). It calls
|
|
28
|
+
* `decryptGlobal` ONLY when the gate returns `allowed: true`. A denied agent
|
|
29
|
+
* returns `null` BEFORE the decrypt call — the decrypt closure never runs. On
|
|
30
|
+
* allow, the plaintext is not surfaced inline: it is wrapped in a
|
|
31
|
+
* {@link makeSealedCredential} handle whose `resolveToken` thunk performs the
|
|
32
|
+
* decrypt at the wire (the same egress the LLM credential pool uses).
|
|
33
|
+
*
|
|
34
|
+
* ## OAuth seam (T11939)
|
|
35
|
+
*
|
|
36
|
+
* The OAuth build/exchange/refresh dance is the FOLLOW-UP (T11939). This accessor
|
|
37
|
+
* leaves the clean seam: {@link connectService} accepts an already-obtained token
|
|
38
|
+
* blob and writes its `encryptGlobal` ciphertext into `credentials_enc`; the OAuth
|
|
39
|
+
* flow simply calls `connectService` (or `updateConnectionCredentials`) with the
|
|
40
|
+
* tokens it negotiates. No OAuth logic lives here.
|
|
41
|
+
*
|
|
42
|
+
* @module store/service-connections-accessor
|
|
43
|
+
* @task T11937
|
|
44
|
+
* @epic T11765
|
|
45
|
+
* @saga T10409
|
|
46
|
+
* @see ./schema/cleo-global/services.ts — the three tables
|
|
47
|
+
* @see ./service-trust-gate.ts — the policy-before-decrypt decision
|
|
48
|
+
* @see ../crypto/credentials.ts — `encryptGlobal` / `decryptGlobal` (reused, not re-implemented)
|
|
49
|
+
* @see ../llm/sealed-credential.ts — `makeSealedCredential` (the shared egress handle)
|
|
50
|
+
*/
|
|
51
|
+
import type { SealedCredential } from '@cleocode/contracts';
|
|
52
|
+
import { type CleoGlobalDb } from './dual-scope-db.js';
|
|
53
|
+
import { type ServiceConnectionStatus } from './schema/cleo-global/services.js';
|
|
54
|
+
import { type SessionPolicy } from './service-trust-gate.js';
|
|
55
|
+
/**
|
|
56
|
+
* The token blob persisted (encrypted) in `service_connections.credentials_enc`.
|
|
57
|
+
*
|
|
58
|
+
* Serialized to JSON, encrypted via {@link encryptGlobal}. The OAuth flow (T11939)
|
|
59
|
+
* produces this; this accessor only stores/loads it.
|
|
60
|
+
*
|
|
61
|
+
* @task T11937
|
|
62
|
+
*/
|
|
63
|
+
export interface ServiceTokenBlob {
|
|
64
|
+
/** The bearer access token. */
|
|
65
|
+
readonly accessToken: string;
|
|
66
|
+
/** The refresh token, when the provider issued one. */
|
|
67
|
+
readonly refreshToken?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Injectable crypto + DB dependencies — defaults bind the real implementations.
|
|
71
|
+
*
|
|
72
|
+
* The crypto functions are injectable so a test can supply a SPY for
|
|
73
|
+
* `decryptGlobal` and assert it is never called on a denied access (AC4
|
|
74
|
+
* policy-before-decrypt proof).
|
|
75
|
+
*
|
|
76
|
+
* @task T11937
|
|
77
|
+
*/
|
|
78
|
+
export interface ServiceVaultDeps {
|
|
79
|
+
/** Encrypt a plaintext with the global KDF keyed by `id`. Defaults to {@link encryptGlobal}. */
|
|
80
|
+
readonly encrypt?: (plaintext: string, id: string) => Promise<string>;
|
|
81
|
+
/** Decrypt ciphertext with the global KDF keyed by `id`. Defaults to {@link decryptGlobal}. */
|
|
82
|
+
readonly decrypt?: (ciphertext: string, id: string) => Promise<string>;
|
|
83
|
+
/**
|
|
84
|
+
* An already-open global Drizzle handle. When omitted the accessor opens via
|
|
85
|
+
* {@link openDualScopeDb}`('global')`. Tests pass a temp-DB handle (opened via
|
|
86
|
+
* {@link openServiceVaultAtPath}) to stay off `.cleo/*.db`.
|
|
87
|
+
*/
|
|
88
|
+
readonly db?: CleoGlobalDb;
|
|
89
|
+
}
|
|
90
|
+
/** Parameters for {@link connectService}. */
|
|
91
|
+
export interface ConnectServiceParams {
|
|
92
|
+
/** Stable provider key (e.g. `github`). */
|
|
93
|
+
readonly provider: string;
|
|
94
|
+
/** Connection label, unique within the provider (e.g. `personal`). */
|
|
95
|
+
readonly label: string;
|
|
96
|
+
/** The token blob to encrypt + store (from the OAuth flow, T11939). */
|
|
97
|
+
readonly tokens: ServiceTokenBlob;
|
|
98
|
+
/** Granted scopes (non-secret) — stored as JSON. */
|
|
99
|
+
readonly scopes?: readonly string[];
|
|
100
|
+
/** ISO-8601 access-token expiry, if known. */
|
|
101
|
+
readonly expiresAt?: string;
|
|
102
|
+
/** Non-secret metadata (e.g. `{ username, email }`) — stored as JSON. */
|
|
103
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
104
|
+
}
|
|
105
|
+
/** A non-secret view of a `service_connections` row (NEVER carries the token). */
|
|
106
|
+
export interface ServiceConnectionView {
|
|
107
|
+
readonly id: number;
|
|
108
|
+
readonly provider: string;
|
|
109
|
+
readonly label: string;
|
|
110
|
+
readonly status: ServiceConnectionStatus;
|
|
111
|
+
readonly scopes: readonly string[];
|
|
112
|
+
readonly expiresAt: string | null;
|
|
113
|
+
readonly metadata: Readonly<Record<string, unknown>>;
|
|
114
|
+
readonly connectedAt: string;
|
|
115
|
+
readonly updatedAt: string;
|
|
116
|
+
/** Whether a credential blob has been written (the OAuth flow ran). */
|
|
117
|
+
readonly hasCredentials: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Open the global service-vault handle at an EXPLICIT path (test seam).
|
|
121
|
+
*
|
|
122
|
+
* Production callers MUST use {@link openDualScopeDb}`('global')` (resolved
|
|
123
|
+
* canonical path). This path-aware variant exists so tests open a temp-dir
|
|
124
|
+
* `cleo.db` — never `.cleo/*.db`. Returns the typed global Drizzle handle.
|
|
125
|
+
*
|
|
126
|
+
* @param dbPath - Absolute path to the temp `cleo.db`.
|
|
127
|
+
* @returns The typed {@link CleoGlobalDb} handle.
|
|
128
|
+
* @task T11937
|
|
129
|
+
*/
|
|
130
|
+
export declare function openServiceVaultAtPath(dbPath: string): Promise<CleoGlobalDb>;
|
|
131
|
+
/**
|
|
132
|
+
* CONNECT a service: encrypt the token blob and upsert the connection row.
|
|
133
|
+
*
|
|
134
|
+
* The token blob is JSON-serialized and {@link encryptGlobal}-encrypted under
|
|
135
|
+
* `id = service:${provider}:${label}` — only the ciphertext is written. On a
|
|
136
|
+
* repeat `connect` for the same `(provider, label)` the row's credentials/scopes/
|
|
137
|
+
* metadata/expiry are REFRESHED in place and `status` is reset to `active` (an
|
|
138
|
+
* expired/revoked connection is re-activated by re-connecting).
|
|
139
|
+
*
|
|
140
|
+
* @returns The connection id.
|
|
141
|
+
* @task T11937
|
|
142
|
+
*/
|
|
143
|
+
export declare function connectService(params: ConnectServiceParams, deps?: ServiceVaultDeps): Promise<number>;
|
|
144
|
+
/**
|
|
145
|
+
* UPDATE a connection's encrypted token blob + expiry in place (OAuth refresh
|
|
146
|
+
* persistence seam — T11939).
|
|
147
|
+
*
|
|
148
|
+
* The self-heal path ({@link import('./service-oauth.js').selfHealConnection})
|
|
149
|
+
* calls this after a refresh: the new `{accessToken, refreshToken}` blob is
|
|
150
|
+
* {@link encryptGlobal}-encrypted under the SAME `id = service:${provider}:${label}`
|
|
151
|
+
* and written back, with `expires_at` bumped and `status` kept `active`. Only the
|
|
152
|
+
* ciphertext is persisted — exactly like {@link connectService}.
|
|
153
|
+
*
|
|
154
|
+
* @returns `true` if a row was updated, `false` when no such `(provider, label)`.
|
|
155
|
+
* @task T11939
|
|
156
|
+
*/
|
|
157
|
+
export declare function updateConnectionTokens(params: {
|
|
158
|
+
readonly provider: string;
|
|
159
|
+
readonly label: string;
|
|
160
|
+
readonly tokens: ServiceTokenBlob;
|
|
161
|
+
readonly expiresAt?: string | null;
|
|
162
|
+
}, deps?: ServiceVaultDeps): Promise<boolean>;
|
|
163
|
+
/** The decrypted token blob + expiry returned by {@link loadDecryptedTokenBlob}. */
|
|
164
|
+
export interface DecryptedConnection {
|
|
165
|
+
/** The connection id. */
|
|
166
|
+
readonly id: number;
|
|
167
|
+
/** The decrypted `{accessToken, refreshToken}` blob (SECRET — never log/serialize). */
|
|
168
|
+
readonly blob: ServiceTokenBlob;
|
|
169
|
+
/** ISO-8601 access-token expiry, or `null` when non-expiring/unknown. */
|
|
170
|
+
readonly expiresAt: string | null;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* RESOLVE a connection's DECRYPTED token blob — **policy-before-decrypt** (T11939).
|
|
174
|
+
*
|
|
175
|
+
* The self-heal seam: the OAuth flow needs the REFRESH token (inside the encrypted
|
|
176
|
+
* blob) plus `expires_at` to decide whether to refresh. Like
|
|
177
|
+
* {@link resolveSealedConnection}, the trust gate runs FIRST and `decryptGlobal`
|
|
178
|
+
* is invoked ONLY on allow — a denied agent gets `null` with NO decrypt. Unlike
|
|
179
|
+
* the sealed resolve, this returns the plaintext blob inline (the caller is the
|
|
180
|
+
* refresh machinery, which re-encrypts immediately) so it MUST NOT cross a
|
|
181
|
+
* logging/serialization boundary.
|
|
182
|
+
*
|
|
183
|
+
* @returns The decrypted blob + expiry on allow; `null` when denied / missing /
|
|
184
|
+
* not `active` / no stored credential.
|
|
185
|
+
* @task T11939
|
|
186
|
+
*/
|
|
187
|
+
export declare function loadDecryptedTokenBlob(params: ResolveServiceParams, deps?: ServiceVaultDeps): Promise<DecryptedConnection | null>;
|
|
188
|
+
/**
|
|
189
|
+
* GET one connection as a non-secret view (NEVER decrypts the token).
|
|
190
|
+
*
|
|
191
|
+
* @returns The view, or `null` when no such `(provider, label)` exists.
|
|
192
|
+
* @task T11937
|
|
193
|
+
*/
|
|
194
|
+
export declare function getConnection(provider: string, label: string, deps?: ServiceVaultDeps): Promise<ServiceConnectionView | null>;
|
|
195
|
+
/**
|
|
196
|
+
* LIST connections as non-secret views (NEVER decrypts), optionally by provider.
|
|
197
|
+
*
|
|
198
|
+
* @param provider - When set, restrict to one provider; otherwise all.
|
|
199
|
+
* @task T11937
|
|
200
|
+
*/
|
|
201
|
+
export declare function listConnections(provider?: string, deps?: ServiceVaultDeps): Promise<ServiceConnectionView[]>;
|
|
202
|
+
/**
|
|
203
|
+
* A NON-SECRET, dashboard-facing view of one `agent_service_grants` row joined
|
|
204
|
+
* to its connection identity. Carries the granted agent, the per-session access
|
|
205
|
+
* policy (`mode` / `manualApproval`), and the connection's `provider`/`label`
|
|
206
|
+
* so a read-only surface (the Studio vault dashboard, T11943) can render "which
|
|
207
|
+
* agent may use which connection" WITHOUT touching the encrypted token blob.
|
|
208
|
+
*
|
|
209
|
+
* @task T11943
|
|
210
|
+
*/
|
|
211
|
+
export interface AgentGrantView {
|
|
212
|
+
/** The granted agent's id. */
|
|
213
|
+
readonly agentId: string;
|
|
214
|
+
/** The connection this grant authorizes (FK to `service_connections.id`). */
|
|
215
|
+
readonly serviceConnectionId: number;
|
|
216
|
+
/** The connection's provider key, when the connection still exists. */
|
|
217
|
+
readonly provider: string | null;
|
|
218
|
+
/** The connection's label, when the connection still exists. */
|
|
219
|
+
readonly label: string | null;
|
|
220
|
+
/** The session policy mode (`allow` | `block`). */
|
|
221
|
+
readonly mode: SessionPolicy['mode'];
|
|
222
|
+
/** Whether the policy requires an out-of-band manual approval per session. */
|
|
223
|
+
readonly manualApproval: boolean;
|
|
224
|
+
/** ISO-8601 grant-creation instant. */
|
|
225
|
+
readonly createdAt: string;
|
|
226
|
+
/** ISO-8601 last-update instant. */
|
|
227
|
+
readonly updatedAt: string;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* LIST every agent grant as a NON-SECRET {@link AgentGrantView}, joined to its
|
|
231
|
+
* connection's `provider`/`label` for display. NEVER decrypts and never carries
|
|
232
|
+
* a token — the dashboard read path (T11943).
|
|
233
|
+
*
|
|
234
|
+
* The join is performed in-memory (one `agent_service_grants` scan + one
|
|
235
|
+
* `service_connections` scan, both already redacted) so the accessor stays a
|
|
236
|
+
* pure read with no second round-trip per grant. A grant whose connection was
|
|
237
|
+
* deleted out-of-band resolves `provider`/`label` to `null` (defensive — the
|
|
238
|
+
* cascade should prevent this, but the view must not throw).
|
|
239
|
+
*
|
|
240
|
+
* @param agentId - When set, restrict to one agent's grants; otherwise all.
|
|
241
|
+
* @task T11943
|
|
242
|
+
*/
|
|
243
|
+
export declare function listAllGrants(agentId?: string, deps?: ServiceVaultDeps): Promise<AgentGrantView[]>;
|
|
244
|
+
/**
|
|
245
|
+
* REVOKE a connection: flip `status` to `revoked` and CLEAR the credential blob.
|
|
246
|
+
*
|
|
247
|
+
* Clearing `credentials_enc` makes the secret unrecoverable (the ciphertext is
|
|
248
|
+
* gone) — a revoke is permanent until a fresh `connect`. The row is kept (not
|
|
249
|
+
* deleted) so grants/audit referencing it remain coherent.
|
|
250
|
+
*
|
|
251
|
+
* @returns `true` if a row was revoked, `false` if no such connection.
|
|
252
|
+
* @task T11937
|
|
253
|
+
*/
|
|
254
|
+
export declare function revokeConnection(provider: string, label: string, deps?: ServiceVaultDeps): Promise<boolean>;
|
|
255
|
+
/** The non-secret result of {@link deleteConnectionCascade}. */
|
|
256
|
+
export interface DeleteConnectionResult {
|
|
257
|
+
/** Whether a `service_connections` row was deleted (`false` ⇒ no such connection). */
|
|
258
|
+
readonly deleted: boolean;
|
|
259
|
+
/** The deleted connection id, or `null` when no row matched. */
|
|
260
|
+
readonly connectionId: number | null;
|
|
261
|
+
/** How many `agent_service_grants` rows were cascaded-deleted alongside it. */
|
|
262
|
+
readonly grantsRemoved: number;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* DELETE a connection and CASCADE its agent grants (the hard `service revoke`).
|
|
266
|
+
*
|
|
267
|
+
* Unlike {@link revokeConnection} (a soft status flip that keeps the row), this
|
|
268
|
+
* REMOVES the `service_connections` row entirely and first deletes every
|
|
269
|
+
* `agent_service_grants` row that references it. The cascade is performed
|
|
270
|
+
* EXPLICITLY in application code — the in-file FK on `service_connection_id` is
|
|
271
|
+
* declared without `ON DELETE CASCADE`, and `foreign_keys` is not assumed ON —
|
|
272
|
+
* so grants are deleted FIRST, then the connection, leaving no dangling grant.
|
|
273
|
+
*
|
|
274
|
+
* @returns A {@link DeleteConnectionResult} reporting the cascade outcome.
|
|
275
|
+
* @task T11941
|
|
276
|
+
*/
|
|
277
|
+
export declare function deleteConnectionCascade(provider: string, label: string, deps?: ServiceVaultDeps): Promise<DeleteConnectionResult>;
|
|
278
|
+
/**
|
|
279
|
+
* GRANT an agent access to a connection with a session policy.
|
|
280
|
+
*
|
|
281
|
+
* @param agentId - The agent to grant.
|
|
282
|
+
* @param serviceConnectionId - The connection id (from {@link connectService}).
|
|
283
|
+
* @param policy - The {@link SessionPolicy}; defaults to a bare allow.
|
|
284
|
+
* @task T11937
|
|
285
|
+
*/
|
|
286
|
+
export declare function grantAgentAccess(agentId: string, serviceConnectionId: number, policy?: SessionPolicy, deps?: ServiceVaultDeps): Promise<void>;
|
|
287
|
+
/** Parameters for {@link resolveSealedConnection}. */
|
|
288
|
+
export interface ResolveServiceParams {
|
|
289
|
+
/** The agent requesting access (trust-gated). */
|
|
290
|
+
readonly agentId: string;
|
|
291
|
+
/** The provider key. */
|
|
292
|
+
readonly provider: string;
|
|
293
|
+
/** The connection label. */
|
|
294
|
+
readonly label: string;
|
|
295
|
+
/** Whether an out-of-band manual approval was granted for this session. */
|
|
296
|
+
readonly approved?: boolean;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* RESOLVE a connection to a sealed credential — **policy-before-decrypt** egress.
|
|
300
|
+
*
|
|
301
|
+
* The trust gate runs FIRST (a pure {@link evaluateServiceAccess} decision over
|
|
302
|
+
* the agent's grants). `decryptGlobal` is invoked ONLY when the gate returns
|
|
303
|
+
* `allowed: true` — and even then NOT inline: the plaintext is materialized lazily
|
|
304
|
+
* inside the {@link makeSealedCredential} `resolveToken` thunk at the wire. A
|
|
305
|
+
* denied agent returns `null` BEFORE the decrypt closure is ever built or run, so
|
|
306
|
+
* a spy on `decryptGlobal` records ZERO calls on a deny (AC4 proof).
|
|
307
|
+
*
|
|
308
|
+
* @returns A {@link SealedCredential} on allow; `null` when denied or when the
|
|
309
|
+
* connection is missing / not `active` / has no stored credential.
|
|
310
|
+
* @task T11937
|
|
311
|
+
*/
|
|
312
|
+
export declare function resolveSealedConnection(params: ResolveServiceParams, deps?: ServiceVaultDeps): Promise<SealedCredential | null>;
|
|
313
|
+
//# sourceMappingURL=service-connections-accessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-connections-accessor.d.ts","sourceRoot":"","sources":["../../src/store/service-connections-accessor.ts"],"names":[],"mappings":"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"}
|