@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,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service-vault OAuth flow — build / exchange / refresh / self-heal (T11939).
|
|
3
|
+
*
|
|
4
|
+
* EP-UNIVERSAL-SERVICE-VAULT (epic T11765 · saga SG-VAULT-CORE T10409 · M2 W2 ·
|
|
5
|
+
* task T11939). The OAuth dance the foundation (T11937) left a clean seam for.
|
|
6
|
+
* Every function is DRIVEN BY the declarative {@link ServiceProviderDef} from the
|
|
7
|
+
* `SERVICE_PROVIDERS` registry (contracts, T11937 + T11938 breadth) — there is no
|
|
8
|
+
* per-provider code, only data-shaped branches on the provider's `oauth` config
|
|
9
|
+
* and `refresh.kind` discriminant.
|
|
10
|
+
*
|
|
11
|
+
* ## What this module owns (the four entry points)
|
|
12
|
+
*
|
|
13
|
+
* 1. {@link buildAuthUrl} — compose the authorization URL (PKCE S256 + state +
|
|
14
|
+
* provider `extraAuthParams`) for an `oauth2`/`oauth2-pkce` provider, or the
|
|
15
|
+
* device-authorization start for a `device-code` provider.
|
|
16
|
+
* 2. {@link exchangeCode} — POST `grant_type=authorization_code` (+ PKCE
|
|
17
|
+
* verifier) to the token endpoint and PERSIST the resulting
|
|
18
|
+
* `{accessToken, refreshToken}` blob `encryptGlobal`-encrypted via
|
|
19
|
+
* {@link connectService} (the foundation accessor — reused, not reinvented).
|
|
20
|
+
* 3. {@link refreshAccessToken} — refresh an access token honoring the
|
|
21
|
+
* provider's `refresh` config: the `refresh-token` grant (Form/Json body ×
|
|
22
|
+
* Body/BasicAuth client auth) plus the three special variants (`github-app`
|
|
23
|
+
* JWT, `service-account-jwt` bearer, `client-credentials`).
|
|
24
|
+
* 4. {@link selfHealConnection} — the resolve-path self-heal: when a connection's
|
|
25
|
+
* `expires_at` is past, transparently refresh → re-`encryptGlobal` → persist
|
|
26
|
+
* back via the accessor, returning a FRESH {@link SealedCredential} so agents
|
|
27
|
+
* NEVER see a stale token. Cannibalizes onecli `connect.rs::resolve_access_token`.
|
|
28
|
+
*
|
|
29
|
+
* ## Crypto + persistence reuse (DRY — no new crypto, no new store)
|
|
30
|
+
*
|
|
31
|
+
* Encryption is ALWAYS `encryptGlobal` keyed `id = service:${provider}:${label}`
|
|
32
|
+
* (via {@link connectService} / {@link updateConnectionTokens}). The egress handle
|
|
33
|
+
* is the shared {@link makeSealedCredential} — the plaintext materializes ONLY at
|
|
34
|
+
* the wire inside the handle's `fetch()`, never inline on a resolve. HTTP uses the
|
|
35
|
+
* platform `globalThis.fetch` (no new dep) so tests inject a stub.
|
|
36
|
+
*
|
|
37
|
+
* @module store/service-oauth
|
|
38
|
+
* @task T11939
|
|
39
|
+
* @epic T11765
|
|
40
|
+
* @saga T10409
|
|
41
|
+
* @see ../../../contracts/src/vault/service-provider.ts — the DATA that drives this flow
|
|
42
|
+
* @see ./service-connections-accessor.ts — connect/resolve/persist (reused)
|
|
43
|
+
* @see ../llm/oauth/pkce.ts — generatePkcePair / buildAuthorizationUrl (reused)
|
|
44
|
+
* @see ../crypto/credentials.ts — encryptGlobal / decryptGlobal (reused)
|
|
45
|
+
* @see ../../../onecli — apps/gateway/src/{apps.rs,connect.rs} (the ported design)
|
|
46
|
+
*/
|
|
47
|
+
import type { SealedCredential, ServiceProviderDef } from '@cleocode/contracts';
|
|
48
|
+
import { type OAuthTokens } from '../llm/oauth/pkce.js';
|
|
49
|
+
import { type ServiceVaultDeps } from './service-connections-accessor.js';
|
|
50
|
+
/**
|
|
51
|
+
* The minimal `fetch` surface this module uses — `globalThis.fetch`-compatible.
|
|
52
|
+
*
|
|
53
|
+
* Injectable so tests pass a stub WITHOUT monkey-patching the global. Defaults to
|
|
54
|
+
* `globalThis.fetch`.
|
|
55
|
+
*/
|
|
56
|
+
export type FetchLike = (input: string, init?: {
|
|
57
|
+
method?: string;
|
|
58
|
+
headers?: Record<string, string>;
|
|
59
|
+
body?: string;
|
|
60
|
+
}) => Promise<{
|
|
61
|
+
ok: boolean;
|
|
62
|
+
status: number;
|
|
63
|
+
json: () => Promise<unknown>;
|
|
64
|
+
text: () => Promise<string>;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Injectable dependencies for the OAuth flow — HTTP, clock, and the vault deps.
|
|
68
|
+
*
|
|
69
|
+
* Every field is optional; defaults bind the real implementations. Tests inject a
|
|
70
|
+
* `fetch` stub (to mock the token endpoint), a frozen `now` (fake clock for the
|
|
71
|
+
* self-heal expiry test), and a temp-DB `vault` handle (off `.cleo/*.db`).
|
|
72
|
+
*
|
|
73
|
+
* @task T11939
|
|
74
|
+
*/
|
|
75
|
+
export interface ServiceOAuthDeps {
|
|
76
|
+
/** HTTP transport. Defaults to {@link globalFetch}. */
|
|
77
|
+
readonly fetch?: FetchLike;
|
|
78
|
+
/** Current epoch milliseconds. Defaults to {@link Date.now}. Fake-clock seam for self-heal. */
|
|
79
|
+
readonly now?: () => number;
|
|
80
|
+
/** Vault accessor deps (db handle + crypto spies) forwarded to the foundation accessor. */
|
|
81
|
+
readonly vault?: ServiceVaultDeps;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolve the {@link ServiceProviderDef} for a provider key, throwing a typed
|
|
85
|
+
* error when unknown.
|
|
86
|
+
*
|
|
87
|
+
* @param provider - The stable provider key (e.g. `'github'`).
|
|
88
|
+
* @returns The declarative provider definition.
|
|
89
|
+
* @throws {Error} `E_SERVICE_PROVIDER_UNKNOWN` when the key is not in the registry.
|
|
90
|
+
* @task T11939
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolveProviderDef(provider: string): ServiceProviderDef;
|
|
93
|
+
/** Options for {@link buildAuthUrl}. */
|
|
94
|
+
export interface BuildAuthUrlOptions {
|
|
95
|
+
/** Opaque CSRF `state`. A random value is generated when omitted. */
|
|
96
|
+
readonly state?: string;
|
|
97
|
+
/** Scope override (e.g. a BYOC custom scope). Defaults to the provider's declared scope. */
|
|
98
|
+
readonly scope?: string;
|
|
99
|
+
/** Client id override (e.g. a BYOC `service_configs` client id). Defaults to the registry value. */
|
|
100
|
+
readonly clientId?: string;
|
|
101
|
+
/** Redirect URI override. Defaults to the provider's declared loopback redirect. */
|
|
102
|
+
readonly redirectUri?: string;
|
|
103
|
+
}
|
|
104
|
+
/** The authorization-URL result, carrying the secrets the caller must round-trip. */
|
|
105
|
+
export interface BuildAuthUrlResult {
|
|
106
|
+
/** The fully-formed authorization URL the user opens to grant consent. */
|
|
107
|
+
readonly authUrl: string;
|
|
108
|
+
/**
|
|
109
|
+
* The PKCE code verifier — the SECRET counterpart sent to the token endpoint in
|
|
110
|
+
* {@link exchangeCode}. The caller MUST retain it across the redirect.
|
|
111
|
+
*/
|
|
112
|
+
readonly codeVerifier: string;
|
|
113
|
+
/** The CSRF `state` echoed in the redirect; the caller MUST verify it matches. */
|
|
114
|
+
readonly state: string;
|
|
115
|
+
/** The redirect URI used — the caller MUST pass the SAME value to {@link exchangeCode}. */
|
|
116
|
+
readonly redirectUri: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* AC1 — build the authorization URL (+ PKCE pair) for an OAuth provider.
|
|
120
|
+
*
|
|
121
|
+
* Generates a fresh PKCE verifier/challenge (RFC 7636 S256) and composes the
|
|
122
|
+
* authorization URL via the reused {@link buildAuthorizationUrl}, appending the
|
|
123
|
+
* provider's declared `extraAuthParams` (e.g. google `access_type=offline`).
|
|
124
|
+
* Returns the verifier + state the caller round-trips through the redirect into
|
|
125
|
+
* {@link exchangeCode}.
|
|
126
|
+
*
|
|
127
|
+
* @param provider - The provider key (must have an `oauth` config).
|
|
128
|
+
* @param opts - Optional state / scope / client-id / redirect overrides (BYOC).
|
|
129
|
+
* @returns The auth URL plus the PKCE verifier and state to round-trip.
|
|
130
|
+
* @throws {Error} When the provider is unknown or api-key-only.
|
|
131
|
+
* @task T11939
|
|
132
|
+
*/
|
|
133
|
+
export declare function buildAuthUrl(provider: string, opts?: BuildAuthUrlOptions): Promise<BuildAuthUrlResult>;
|
|
134
|
+
/** Options for {@link exchangeCode}. */
|
|
135
|
+
export interface ExchangeCodeOptions {
|
|
136
|
+
/** The authorization code from the redirect callback. */
|
|
137
|
+
readonly code: string;
|
|
138
|
+
/** The PKCE verifier from {@link buildAuthUrl} (round-tripped). */
|
|
139
|
+
readonly codeVerifier: string;
|
|
140
|
+
/** The redirect URI used in {@link buildAuthUrl} (must match). */
|
|
141
|
+
readonly redirectUri: string;
|
|
142
|
+
/** Connection label, unique within the provider (e.g. `'personal'`). Defaults to `'default'`. */
|
|
143
|
+
readonly label?: string;
|
|
144
|
+
/** Client id override (BYOC). Defaults to the registry value. */
|
|
145
|
+
readonly clientId?: string;
|
|
146
|
+
/** Non-secret metadata to store on the connection (e.g. `{ username }`). */
|
|
147
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
148
|
+
}
|
|
149
|
+
/** The result of {@link exchangeCode} — the persisted connection's identity (non-secret). */
|
|
150
|
+
export interface ExchangeCodeResult {
|
|
151
|
+
/** The `service_connections.id` of the connect/refresh upsert. */
|
|
152
|
+
readonly connectionId: number;
|
|
153
|
+
/** The provider key. */
|
|
154
|
+
readonly provider: string;
|
|
155
|
+
/** The connection label. */
|
|
156
|
+
readonly label: string;
|
|
157
|
+
/** ISO-8601 access-token expiry, when the provider returned `expires_in`. */
|
|
158
|
+
readonly expiresAt: string | null;
|
|
159
|
+
/** Whether the provider issued a refresh token (gates future self-heal). */
|
|
160
|
+
readonly hasRefreshToken: boolean;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* AC1 — exchange an authorization code for tokens and PERSIST them encrypted.
|
|
164
|
+
*
|
|
165
|
+
* POSTs `grant_type=authorization_code` (+ PKCE verifier) to the provider's token
|
|
166
|
+
* endpoint via the reused {@link exchangePkceCode}, then writes the resulting
|
|
167
|
+
* `{accessToken, refreshToken}` blob `encryptGlobal`-encrypted through
|
|
168
|
+
* {@link connectService}. The plaintext token is NEVER returned — only the
|
|
169
|
+
* non-secret connection identity. The expiry is computed from `expires_in`.
|
|
170
|
+
*
|
|
171
|
+
* @param provider - The provider key.
|
|
172
|
+
* @param opts - The code, PKCE verifier, redirect, and connection label.
|
|
173
|
+
* @param deps - Injectable HTTP / clock / vault (test seam).
|
|
174
|
+
* @returns The persisted connection's non-secret identity.
|
|
175
|
+
* @throws {Error} On HTTP failure or a token response missing `access_token`.
|
|
176
|
+
* @task T11939
|
|
177
|
+
*/
|
|
178
|
+
export declare function exchangeCode(provider: string, opts: ExchangeCodeOptions, deps?: ServiceOAuthDeps): Promise<ExchangeCodeResult>;
|
|
179
|
+
/** Client credentials for a refresh exchange (BYOC or CLEO first-party). */
|
|
180
|
+
export interface RefreshClientCredentials {
|
|
181
|
+
/** OAuth client id. */
|
|
182
|
+
readonly clientId: string;
|
|
183
|
+
/** OAuth client secret (NULL for a public PKCE client with none). */
|
|
184
|
+
readonly clientSecret?: string;
|
|
185
|
+
}
|
|
186
|
+
/** Input to the JWT-bearer / github-app / client-credentials refresh variants. */
|
|
187
|
+
export interface RefreshVariantSecrets {
|
|
188
|
+
/** RSA private key PEM (github-app + service-account-jwt). */
|
|
189
|
+
readonly privateKeyPem?: string;
|
|
190
|
+
/** GitHub App id (github-app). */
|
|
191
|
+
readonly appId?: string;
|
|
192
|
+
/** GitHub App installation id (github-app). */
|
|
193
|
+
readonly installationId?: string;
|
|
194
|
+
/** Service-account client email (service-account-jwt). */
|
|
195
|
+
readonly clientEmail?: string;
|
|
196
|
+
}
|
|
197
|
+
/** Options for {@link refreshAccessToken}. */
|
|
198
|
+
export interface RefreshAccessTokenOptions {
|
|
199
|
+
/** The current refresh token (for the `refresh-token` grant). */
|
|
200
|
+
readonly refreshToken?: string;
|
|
201
|
+
/** Client credentials (for `refresh-token` Body/BasicAuth + `client-credentials`). */
|
|
202
|
+
readonly client?: RefreshClientCredentials;
|
|
203
|
+
/** Secrets for the JWT-bearer / github-app variants. */
|
|
204
|
+
readonly variant?: RefreshVariantSecrets;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* AC2 — refresh an access token honoring the provider's declared refresh config.
|
|
208
|
+
*
|
|
209
|
+
* Branches on {@link RefreshConfig.kind}:
|
|
210
|
+
*
|
|
211
|
+
* - `refresh-token` — `grant_type=refresh_token` shaped by `bodyFormat`
|
|
212
|
+
* (Form/Json) × `clientAuth` (Body/BasicAuth). The common OAuth case.
|
|
213
|
+
* - `github-app` — sign an RS256 JWT with the app key, POST
|
|
214
|
+
* `/app/installations/{id}/access_tokens`.
|
|
215
|
+
* - `service-account-jwt` — sign an RS256 JWT, exchange via
|
|
216
|
+
* `grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer`.
|
|
217
|
+
* - `client-credentials` — `grant_type=client_credentials`, Basic-auth client.
|
|
218
|
+
*
|
|
219
|
+
* Returns normalized {@link OAuthTokens} (a fresh access token + optional rotated
|
|
220
|
+
* refresh token). PERSISTENCE is the caller's job ({@link selfHealConnection}
|
|
221
|
+
* does it); this function is pure HTTP + crypto so it is independently testable.
|
|
222
|
+
*
|
|
223
|
+
* @param provider - The provider key.
|
|
224
|
+
* @param opts - The refresh token / client credentials / variant secrets.
|
|
225
|
+
* @param deps - Injectable HTTP / clock (test seam).
|
|
226
|
+
* @returns The refreshed tokens.
|
|
227
|
+
* @throws {Error} When the provider declares no refresh, or the exchange fails.
|
|
228
|
+
* @task T11939
|
|
229
|
+
*/
|
|
230
|
+
export declare function refreshAccessToken(provider: string, opts: RefreshAccessTokenOptions, deps?: ServiceOAuthDeps): Promise<OAuthTokens>;
|
|
231
|
+
/** Options for {@link selfHealConnection}. */
|
|
232
|
+
export interface SelfHealOptions {
|
|
233
|
+
/** The agent requesting the connection (trust-gated by the accessor). */
|
|
234
|
+
readonly agentId: string;
|
|
235
|
+
/** The provider key. */
|
|
236
|
+
readonly provider: string;
|
|
237
|
+
/** The connection label. */
|
|
238
|
+
readonly label: string;
|
|
239
|
+
/** Out-of-band manual-approval flag forwarded to the trust gate. */
|
|
240
|
+
readonly approved?: boolean;
|
|
241
|
+
/** Client credentials for the refresh exchange (BYOC or first-party). */
|
|
242
|
+
readonly client?: RefreshClientCredentials;
|
|
243
|
+
/** Variant secrets for the JWT/github-app refresh kinds. */
|
|
244
|
+
readonly variant?: RefreshVariantSecrets;
|
|
245
|
+
/**
|
|
246
|
+
* Seconds of headroom before `expires_at` at which to PRE-emptively refresh —
|
|
247
|
+
* a request landing in this window is refreshed too (avoids handing out a token
|
|
248
|
+
* about to expire mid-flight). Defaults to 0 (refresh only once past).
|
|
249
|
+
*/
|
|
250
|
+
readonly skewSeconds?: number;
|
|
251
|
+
}
|
|
252
|
+
/** The result of {@link selfHealConnection}. */
|
|
253
|
+
export interface SelfHealResult {
|
|
254
|
+
/** A FRESH sealed credential (or `null` when denied / missing / no credential). */
|
|
255
|
+
readonly sealed: SealedCredential | null;
|
|
256
|
+
/** Whether a transparent refresh actually fired (the token was past expiry). */
|
|
257
|
+
readonly refreshed: boolean;
|
|
258
|
+
/** The (possibly newly-computed) ISO-8601 expiry, or `null` when unknown. */
|
|
259
|
+
readonly expiresAt: string | null;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* AC3 — resolve a connection, transparently refreshing a PAST-EXPIRY token.
|
|
263
|
+
*
|
|
264
|
+
* The self-heal resolve path (cannibalized from onecli
|
|
265
|
+
* `connect.rs::resolve_access_token`):
|
|
266
|
+
*
|
|
267
|
+
* 1. Read the connection's non-secret view (`expiresAt`).
|
|
268
|
+
* 2. If `expiresAt` is past (within `skewSeconds`) AND a refresh token exists:
|
|
269
|
+
* refresh via {@link refreshAccessToken}, re-`encryptGlobal` the new blob, and
|
|
270
|
+
* persist it back via {@link updateConnectionTokens} — so the NEXT resolve and
|
|
271
|
+
* every other agent see the fresh token.
|
|
272
|
+
* 3. Return a FRESH {@link SealedCredential} resolving against the (now-current)
|
|
273
|
+
* stored blob. A stale token is NEVER handed out: the heal runs BEFORE the
|
|
274
|
+
* sealed handle is built, and the handle decrypts the persisted (fresh) blob.
|
|
275
|
+
*
|
|
276
|
+
* The trust gate runs inside the accessor's resolve — a denied agent gets `null`
|
|
277
|
+
* with NO refresh and NO decrypt.
|
|
278
|
+
*
|
|
279
|
+
* @param connectionRef - The agent + provider + label, plus refresh credentials.
|
|
280
|
+
* @param deps - Injectable HTTP / clock / vault (test seam — the fake clock proves
|
|
281
|
+
* the past-expiry branch fires).
|
|
282
|
+
* @returns The fresh sealed credential + whether a refresh fired.
|
|
283
|
+
* @task T11939
|
|
284
|
+
*/
|
|
285
|
+
export declare function selfHealConnection(connectionRef: SelfHealOptions, deps?: ServiceOAuthDeps): Promise<SelfHealResult>;
|
|
286
|
+
export type { OAuthTokens } from '../llm/oauth/pkce.js';
|
|
287
|
+
//# sourceMappingURL=service-oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-oauth.d.ts","sourceRoot":"","sources":["../../src/store/service-oauth.ts"],"names":[],"mappings":"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"}
|