@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,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **LLM-queue admit gate** — the Node-side gate for the supervisor's LLM-queue
|
|
3
|
+
* priority scheduler + per-provider rate governor (T11630 · AC1-AC4).
|
|
4
|
+
*
|
|
5
|
+
* The contended priority + rate state lives in the Rust arbiter
|
|
6
|
+
* (`crates/cleo-supervisor/src/llm_queue.rs`), exposed over `lease-ipc` v1.1 as
|
|
7
|
+
* the `queue_admit` → `queue_admit_result` verb. THIS module is the thin Node
|
|
8
|
+
* gate every outbound LLM call passes through immediately before it hits the
|
|
9
|
+
* wire: it asks the supervisor "may I admit this call?" and, on a `deferred`
|
|
10
|
+
* answer, backs off `retry_after_ms` and re-asks — a structured deferral, never
|
|
11
|
+
* a silent drop (AC4).
|
|
12
|
+
*
|
|
13
|
+
* ## Modes ({@link resolveLlmQueueMode})
|
|
14
|
+
*
|
|
15
|
+
* `CLEO_LLM_QUEUE_MODE` ∈ `{ supervisor | off }`, **default `off`** — mirrors
|
|
16
|
+
* {@link ../store/writer-lease.ts}'s `resolveLeaseMode()` shape:
|
|
17
|
+
*
|
|
18
|
+
* - `off` — pure pass-through: {@link llmQueueAdmit} returns `{ admitted: true }`
|
|
19
|
+
* without touching the supervisor. The daemon is OFF by default in production,
|
|
20
|
+
* so this is the shipping config: EVERY LLM call works with no supervisor.
|
|
21
|
+
* - `supervisor` — prefer the supervisor arbiter over the IPC socket; a
|
|
22
|
+
* `deferred` result is honoured with a back-off + re-request. When the socket
|
|
23
|
+
* is absent / refused / errors, the gate logs the demotion ONCE and degrades
|
|
24
|
+
* to direct execution (`{ admitted: true }`) — a dead/absent arbiter must
|
|
25
|
+
* NEVER block an LLM call.
|
|
26
|
+
*
|
|
27
|
+
* ## CRITICAL degrade-to-direct (headline correctness — AC4 inverse)
|
|
28
|
+
*
|
|
29
|
+
* Because the daemon stays OFF by default, the load-bearing path is the degrade:
|
|
30
|
+
* mode `off`, no socket, `E_LEASE_UNAVAILABLE`, or a connect-refused all resolve
|
|
31
|
+
* to `{ admitted: true }` and the caller executes the LLM call DIRECTLY. The
|
|
32
|
+
* supervisor is a pure OPTIMISATION; its absence is never an error.
|
|
33
|
+
*
|
|
34
|
+
* @module llm/llm-queue-admit
|
|
35
|
+
* @task T11630
|
|
36
|
+
* @epic T11625
|
|
37
|
+
* @see ../store/writer-lease.ts — the `resolveLeaseMode()` + log-once demotion this mirrors
|
|
38
|
+
* @see ../../../runtime/src/daemon/lease-ipc-client.ts — the v1.1 codec this mirrors (boundary: core cannot import runtime)
|
|
39
|
+
*/
|
|
40
|
+
import { type QueuePriorityClass } from '@cleocode/contracts';
|
|
41
|
+
/** The LLM-queue admit gate mode. Resolved once per process; default `off`. */
|
|
42
|
+
export type LlmQueueMode = 'supervisor' | 'off';
|
|
43
|
+
/**
|
|
44
|
+
* The structured result of an admit gate decision. `admitted: true` means
|
|
45
|
+
* execute the LLM call now; the gate NEVER returns a "dropped" — an over-budget
|
|
46
|
+
* request is internally retried (with back-off) until admitted or the supervisor
|
|
47
|
+
* is found unavailable (then degrades to admitted-direct). AC4.
|
|
48
|
+
*/
|
|
49
|
+
export interface LlmAdmitResult {
|
|
50
|
+
/** Whether the LLM call may proceed (always `true` once this resolves). */
|
|
51
|
+
readonly admitted: true;
|
|
52
|
+
/**
|
|
53
|
+
* How the admission was decided — `direct` when no supervisor arbitrated
|
|
54
|
+
* (off-mode / degrade), `supervisor` when the arbiter granted it. Diagnostic
|
|
55
|
+
* only; both mean "go".
|
|
56
|
+
*/
|
|
57
|
+
readonly via: 'direct' | 'supervisor';
|
|
58
|
+
}
|
|
59
|
+
/** Options for {@link llmQueueAdmit}. */
|
|
60
|
+
export interface LlmQueueAdmitOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Override the supervisor socket path. Defaults to
|
|
63
|
+
* `<cleoHome>/cleo-supervisor.sock` (or `$CLEO_SUPERVISOR_SOCKET`).
|
|
64
|
+
*/
|
|
65
|
+
socketPath?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Max wall-clock (ms) the gate will spend re-requesting a deferred admit
|
|
68
|
+
* before degrading to direct. Bounds the worst-case latency a starved call
|
|
69
|
+
* adds; on timeout the call proceeds (the supervisor budget is advisory, never
|
|
70
|
+
* a hard block on a real call). Default {@link DEFAULT_ADMIT_DEADLINE_MS}.
|
|
71
|
+
*/
|
|
72
|
+
deadlineMs?: number;
|
|
73
|
+
}
|
|
74
|
+
/** Max wall-clock a deferred admit will be re-requested before degrading. */
|
|
75
|
+
export declare const DEFAULT_ADMIT_DEADLINE_MS = 30000;
|
|
76
|
+
/**
|
|
77
|
+
* Resolve the LLM-queue mode from `CLEO_LLM_QUEUE_MODE`, once per process.
|
|
78
|
+
*
|
|
79
|
+
* Unknown / unset values resolve to `'off'` — the production-safe default while
|
|
80
|
+
* the supervisor daemon is disabled. Mirrors `resolveLeaseMode()`.
|
|
81
|
+
*
|
|
82
|
+
* @returns The resolved {@link LlmQueueMode}.
|
|
83
|
+
* @task T11630
|
|
84
|
+
*/
|
|
85
|
+
export declare function resolveLlmQueueMode(): LlmQueueMode;
|
|
86
|
+
/**
|
|
87
|
+
* Reset cached process-global state (mode + demotion flag). Tests only.
|
|
88
|
+
*
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
export declare function _resetLlmQueueStateForTest(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Gate an outbound LLM call through the supervisor's priority scheduler +
|
|
94
|
+
* per-provider rate governor (T11630). Call this immediately BEFORE executing
|
|
95
|
+
* the LLM request.
|
|
96
|
+
*
|
|
97
|
+
* - mode `off` (default) → returns `{ admitted: true, via: 'direct' }` with no
|
|
98
|
+
* IPC. The shipping config.
|
|
99
|
+
* - mode `supervisor`, arbiter reachable → sends `queue_admit`; on `admitted`
|
|
100
|
+
* returns immediately; on `deferred` awaits `retry_after_ms` and re-requests
|
|
101
|
+
* until admitted or the deadline elapses (then degrades to direct — the budget
|
|
102
|
+
* is advisory). AC4: a deferral is a structured wait, never a dropped call.
|
|
103
|
+
* - mode `supervisor`, arbiter UNreachable (no socket / connect-refused /
|
|
104
|
+
* `E_LEASE_UNAVAILABLE` / any transport error) → logs the demotion once and
|
|
105
|
+
* returns `{ admitted: true, via: 'direct' }`. A dead/absent supervisor MUST
|
|
106
|
+
* NEVER block an LLM call.
|
|
107
|
+
*
|
|
108
|
+
* @param provider - The provider id the call targets (rate budget is per-provider).
|
|
109
|
+
* @param priorityClass - The caller's priority class (lead > worker > background).
|
|
110
|
+
* @param estTokens - The caller's estimate of the request's token cost.
|
|
111
|
+
* @param childId - The child the call belongs to (in-flight tracking seam).
|
|
112
|
+
* @param opts - Socket path + deadline overrides.
|
|
113
|
+
* @returns Always resolves to an `{ admitted: true }` result — never throws, never drops.
|
|
114
|
+
*
|
|
115
|
+
* @task T11630
|
|
116
|
+
*/
|
|
117
|
+
export declare function llmQueueAdmit(provider: string, priorityClass: QueuePriorityClass, estTokens: number, childId: string, opts?: LlmQueueAdmitOptions): Promise<LlmAdmitResult>;
|
|
118
|
+
//# sourceMappingURL=llm-queue-admit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-queue-admit.d.ts","sourceRoot":"","sources":["../../src/llm/llm-queue-admit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAO7B,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC;CACvC;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAwBhD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CAKlD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,kBAAkB,EACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAiDzB"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **LLM-queue admit gate** — the Node-side gate for the supervisor's LLM-queue
|
|
3
|
+
* priority scheduler + per-provider rate governor (T11630 · AC1-AC4).
|
|
4
|
+
*
|
|
5
|
+
* The contended priority + rate state lives in the Rust arbiter
|
|
6
|
+
* (`crates/cleo-supervisor/src/llm_queue.rs`), exposed over `lease-ipc` v1.1 as
|
|
7
|
+
* the `queue_admit` → `queue_admit_result` verb. THIS module is the thin Node
|
|
8
|
+
* gate every outbound LLM call passes through immediately before it hits the
|
|
9
|
+
* wire: it asks the supervisor "may I admit this call?" and, on a `deferred`
|
|
10
|
+
* answer, backs off `retry_after_ms` and re-asks — a structured deferral, never
|
|
11
|
+
* a silent drop (AC4).
|
|
12
|
+
*
|
|
13
|
+
* ## Modes ({@link resolveLlmQueueMode})
|
|
14
|
+
*
|
|
15
|
+
* `CLEO_LLM_QUEUE_MODE` ∈ `{ supervisor | off }`, **default `off`** — mirrors
|
|
16
|
+
* {@link ../store/writer-lease.ts}'s `resolveLeaseMode()` shape:
|
|
17
|
+
*
|
|
18
|
+
* - `off` — pure pass-through: {@link llmQueueAdmit} returns `{ admitted: true }`
|
|
19
|
+
* without touching the supervisor. The daemon is OFF by default in production,
|
|
20
|
+
* so this is the shipping config: EVERY LLM call works with no supervisor.
|
|
21
|
+
* - `supervisor` — prefer the supervisor arbiter over the IPC socket; a
|
|
22
|
+
* `deferred` result is honoured with a back-off + re-request. When the socket
|
|
23
|
+
* is absent / refused / errors, the gate logs the demotion ONCE and degrades
|
|
24
|
+
* to direct execution (`{ admitted: true }`) — a dead/absent arbiter must
|
|
25
|
+
* NEVER block an LLM call.
|
|
26
|
+
*
|
|
27
|
+
* ## CRITICAL degrade-to-direct (headline correctness — AC4 inverse)
|
|
28
|
+
*
|
|
29
|
+
* Because the daemon stays OFF by default, the load-bearing path is the degrade:
|
|
30
|
+
* mode `off`, no socket, `E_LEASE_UNAVAILABLE`, or a connect-refused all resolve
|
|
31
|
+
* to `{ admitted: true }` and the caller executes the LLM call DIRECTLY. The
|
|
32
|
+
* supervisor is a pure OPTIMISATION; its absence is never an error.
|
|
33
|
+
*
|
|
34
|
+
* @module llm/llm-queue-admit
|
|
35
|
+
* @task T11630
|
|
36
|
+
* @epic T11625
|
|
37
|
+
* @see ../store/writer-lease.ts — the `resolveLeaseMode()` + log-once demotion this mirrors
|
|
38
|
+
* @see ../../../runtime/src/daemon/lease-ipc-client.ts — the v1.1 codec this mirrors (boundary: core cannot import runtime)
|
|
39
|
+
*/
|
|
40
|
+
import { connect } from 'node:net';
|
|
41
|
+
import { join } from 'node:path';
|
|
42
|
+
import { LEASE_IPC_PROTOCOL_VERSION, LeaseIpcRequestEnvelopeSchema, LeaseIpcResponseEnvelopeSchema, } from '@cleocode/contracts';
|
|
43
|
+
import { getCleoHome } from '@cleocode/paths';
|
|
44
|
+
import { getLogger } from '../logger.js';
|
|
45
|
+
/** The supervisor IPC socket filename — MUST equal `SOCKET_NAME` in the Rust `crates/cleo-supervisor/src/paths.rs`. */
|
|
46
|
+
const SUPERVISOR_SOCKET_NAME = 'cleo-supervisor.sock';
|
|
47
|
+
/** Max wall-clock a deferred admit will be re-requested before degrading. */
|
|
48
|
+
export const DEFAULT_ADMIT_DEADLINE_MS = 30_000;
|
|
49
|
+
/** Connect timeout for the supervisor socket (ms). A slow/absent socket degrades fast. */
|
|
50
|
+
const CONNECT_TIMEOUT_MS = 250;
|
|
51
|
+
/** Per-request read timeout for a `queue_admit_result` (ms). */
|
|
52
|
+
const REQUEST_TIMEOUT_MS = 2_000;
|
|
53
|
+
/** Cap on a single deferral back-off so a misconfigured window cannot wedge a call. */
|
|
54
|
+
const MAX_RETRY_BACKOFF_MS = 5_000;
|
|
55
|
+
/**
|
|
56
|
+
* Lazily-memoized module logger (import-time-side-effect-free — matches the
|
|
57
|
+
* `writer-lease.ts` deferral pattern so a mocked import graph never hits a TDZ).
|
|
58
|
+
*/
|
|
59
|
+
let _log = null;
|
|
60
|
+
function log() {
|
|
61
|
+
if (_log === null)
|
|
62
|
+
_log = getLogger('llm-queue-admit');
|
|
63
|
+
return _log;
|
|
64
|
+
}
|
|
65
|
+
let _cachedMode = null;
|
|
66
|
+
let _supervisorDemotionLogged = false;
|
|
67
|
+
/**
|
|
68
|
+
* Resolve the LLM-queue mode from `CLEO_LLM_QUEUE_MODE`, once per process.
|
|
69
|
+
*
|
|
70
|
+
* Unknown / unset values resolve to `'off'` — the production-safe default while
|
|
71
|
+
* the supervisor daemon is disabled. Mirrors `resolveLeaseMode()`.
|
|
72
|
+
*
|
|
73
|
+
* @returns The resolved {@link LlmQueueMode}.
|
|
74
|
+
* @task T11630
|
|
75
|
+
*/
|
|
76
|
+
export function resolveLlmQueueMode() {
|
|
77
|
+
if (_cachedMode !== null)
|
|
78
|
+
return _cachedMode;
|
|
79
|
+
const raw = process.env.CLEO_LLM_QUEUE_MODE;
|
|
80
|
+
_cachedMode = raw === 'supervisor' ? 'supervisor' : 'off';
|
|
81
|
+
return _cachedMode;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Reset cached process-global state (mode + demotion flag). Tests only.
|
|
85
|
+
*
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
export function _resetLlmQueueStateForTest() {
|
|
89
|
+
_cachedMode = null;
|
|
90
|
+
_supervisorDemotionLogged = false;
|
|
91
|
+
}
|
|
92
|
+
/** Log the supervisor→direct demotion AT MOST once per process. */
|
|
93
|
+
function logDemotionOnce(reason) {
|
|
94
|
+
if (_supervisorDemotionLogged)
|
|
95
|
+
return;
|
|
96
|
+
_supervisorDemotionLogged = true;
|
|
97
|
+
log().info(`CLEO_LLM_QUEUE_MODE=supervisor but the LLM-queue arbiter is unavailable ` +
|
|
98
|
+
`(${reason}); degrading to direct LLM execution for the process lifetime.`);
|
|
99
|
+
}
|
|
100
|
+
/** The default supervisor socket path: `$CLEO_SUPERVISOR_SOCKET` or `<cleoHome>/cleo-supervisor.sock`. */
|
|
101
|
+
function defaultSocketPath() {
|
|
102
|
+
const override = process.env.CLEO_SUPERVISOR_SOCKET;
|
|
103
|
+
if (override !== undefined && override.length > 0)
|
|
104
|
+
return override;
|
|
105
|
+
return join(getCleoHome(), SUPERVISOR_SOCKET_NAME);
|
|
106
|
+
}
|
|
107
|
+
/** The "execute directly" result — the load-bearing degrade path. */
|
|
108
|
+
const ADMITTED_DIRECT = { admitted: true, via: 'direct' };
|
|
109
|
+
/** Async sleep that yields the event loop. */
|
|
110
|
+
function sleep(ms) {
|
|
111
|
+
return new Promise((resolve) => setTimeout(resolve, Math.max(0, Math.round(ms))));
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Gate an outbound LLM call through the supervisor's priority scheduler +
|
|
115
|
+
* per-provider rate governor (T11630). Call this immediately BEFORE executing
|
|
116
|
+
* the LLM request.
|
|
117
|
+
*
|
|
118
|
+
* - mode `off` (default) → returns `{ admitted: true, via: 'direct' }` with no
|
|
119
|
+
* IPC. The shipping config.
|
|
120
|
+
* - mode `supervisor`, arbiter reachable → sends `queue_admit`; on `admitted`
|
|
121
|
+
* returns immediately; on `deferred` awaits `retry_after_ms` and re-requests
|
|
122
|
+
* until admitted or the deadline elapses (then degrades to direct — the budget
|
|
123
|
+
* is advisory). AC4: a deferral is a structured wait, never a dropped call.
|
|
124
|
+
* - mode `supervisor`, arbiter UNreachable (no socket / connect-refused /
|
|
125
|
+
* `E_LEASE_UNAVAILABLE` / any transport error) → logs the demotion once and
|
|
126
|
+
* returns `{ admitted: true, via: 'direct' }`. A dead/absent supervisor MUST
|
|
127
|
+
* NEVER block an LLM call.
|
|
128
|
+
*
|
|
129
|
+
* @param provider - The provider id the call targets (rate budget is per-provider).
|
|
130
|
+
* @param priorityClass - The caller's priority class (lead > worker > background).
|
|
131
|
+
* @param estTokens - The caller's estimate of the request's token cost.
|
|
132
|
+
* @param childId - The child the call belongs to (in-flight tracking seam).
|
|
133
|
+
* @param opts - Socket path + deadline overrides.
|
|
134
|
+
* @returns Always resolves to an `{ admitted: true }` result — never throws, never drops.
|
|
135
|
+
*
|
|
136
|
+
* @task T11630
|
|
137
|
+
*/
|
|
138
|
+
export async function llmQueueAdmit(provider, priorityClass, estTokens, childId, opts = {}) {
|
|
139
|
+
if (resolveLlmQueueMode() === 'off') {
|
|
140
|
+
return ADMITTED_DIRECT;
|
|
141
|
+
}
|
|
142
|
+
const socketPath = opts.socketPath ?? defaultSocketPath();
|
|
143
|
+
const deadline = Date.now() + (opts.deadlineMs ?? DEFAULT_ADMIT_DEADLINE_MS);
|
|
144
|
+
for (;;) {
|
|
145
|
+
let result;
|
|
146
|
+
try {
|
|
147
|
+
result = await sendQueueAdmit(socketPath, {
|
|
148
|
+
kind: 'queue_admit',
|
|
149
|
+
provider,
|
|
150
|
+
priority_class: priorityClass,
|
|
151
|
+
est_tokens: Math.max(0, Math.trunc(estTokens)),
|
|
152
|
+
child_id: childId,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
// Any transport failure (ENOENT, ECONNREFUSED, timeout, malformed frame)
|
|
157
|
+
// → the arbiter is unavailable; degrade to direct (AC4 inverse).
|
|
158
|
+
logDemotionOnce(err instanceof Error ? err.message : String(err));
|
|
159
|
+
return ADMITTED_DIRECT;
|
|
160
|
+
}
|
|
161
|
+
if ('unavailable' in result) {
|
|
162
|
+
// The supervisor answered E_LEASE_UNAVAILABLE (arbiter not wired) →
|
|
163
|
+
// degrade to direct.
|
|
164
|
+
logDemotionOnce(result.reason);
|
|
165
|
+
return ADMITTED_DIRECT;
|
|
166
|
+
}
|
|
167
|
+
if (result.disposition === 'admitted') {
|
|
168
|
+
return { admitted: true, via: 'supervisor' };
|
|
169
|
+
}
|
|
170
|
+
// Deferred — structured back-off then re-request (AC4: never a silent drop).
|
|
171
|
+
if (Date.now() >= deadline) {
|
|
172
|
+
// The budget is advisory; a real call must not be blocked indefinitely.
|
|
173
|
+
// Past the deadline, proceed (degrade to direct) rather than starve.
|
|
174
|
+
log().debug({ provider, priorityClass, queuePosition: result.queue_position }, 'llm-queue admit deadline exceeded while deferred; proceeding directly');
|
|
175
|
+
return ADMITTED_DIRECT;
|
|
176
|
+
}
|
|
177
|
+
const backoff = Math.min(MAX_RETRY_BACKOFF_MS, Math.max(1, result.retry_after_ms));
|
|
178
|
+
await sleep(backoff);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Send ONE `queue_admit` over a fresh supervisor socket connection and resolve
|
|
183
|
+
* the typed `queue_admit_result` (or a sentinel when the arbiter answered
|
|
184
|
+
* `E_LEASE_UNAVAILABLE`). Connection-per-request keeps the gate stateless and
|
|
185
|
+
* transport failures isolated; the socket is closed before resolution.
|
|
186
|
+
*
|
|
187
|
+
* Encodes the request envelope + decodes the response line through the SAME
|
|
188
|
+
* `@cleocode/contracts` v1.1 Zod schemas the runtime `lease-ipc-client` uses —
|
|
189
|
+
* core cannot import `@cleocode/runtime` (cycle), so it mirrors the codec here.
|
|
190
|
+
*
|
|
191
|
+
* @throws On any transport error (connect refused, ENOENT, timeout, malformed frame).
|
|
192
|
+
*/
|
|
193
|
+
function sendQueueAdmit(socketPath, request) {
|
|
194
|
+
return new Promise((resolve, reject) => {
|
|
195
|
+
const id = `qa-${process.pid}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
196
|
+
const envelope = LeaseIpcRequestEnvelopeSchema.parse({
|
|
197
|
+
protocol_version: LEASE_IPC_PROTOCOL_VERSION,
|
|
198
|
+
id,
|
|
199
|
+
direction: 'request',
|
|
200
|
+
request,
|
|
201
|
+
});
|
|
202
|
+
const line = `${JSON.stringify(envelope)}\n`;
|
|
203
|
+
let settled = false;
|
|
204
|
+
let buffer = '';
|
|
205
|
+
const socket = connect(socketPath);
|
|
206
|
+
const cleanup = () => {
|
|
207
|
+
socket.removeAllListeners();
|
|
208
|
+
socket.destroy();
|
|
209
|
+
};
|
|
210
|
+
const fail = (err) => {
|
|
211
|
+
if (settled)
|
|
212
|
+
return;
|
|
213
|
+
settled = true;
|
|
214
|
+
cleanup();
|
|
215
|
+
reject(err);
|
|
216
|
+
};
|
|
217
|
+
const succeed = (value) => {
|
|
218
|
+
if (settled)
|
|
219
|
+
return;
|
|
220
|
+
settled = true;
|
|
221
|
+
cleanup();
|
|
222
|
+
resolve(value);
|
|
223
|
+
};
|
|
224
|
+
socket.setTimeout(REQUEST_TIMEOUT_MS);
|
|
225
|
+
// A connect that does not complete within the bound is a degrade signal.
|
|
226
|
+
const connectTimer = setTimeout(() => fail(new Error('supervisor connect timeout')), CONNECT_TIMEOUT_MS);
|
|
227
|
+
socket.on('connect', () => {
|
|
228
|
+
clearTimeout(connectTimer);
|
|
229
|
+
socket.write(line);
|
|
230
|
+
});
|
|
231
|
+
socket.on('timeout', () => fail(new Error('supervisor request timeout')));
|
|
232
|
+
socket.on('error', (err) => {
|
|
233
|
+
clearTimeout(connectTimer);
|
|
234
|
+
fail(err);
|
|
235
|
+
});
|
|
236
|
+
socket.on('close', () => {
|
|
237
|
+
if (!settled)
|
|
238
|
+
fail(new Error('supervisor closed the connection before responding'));
|
|
239
|
+
});
|
|
240
|
+
socket.on('data', (chunk) => {
|
|
241
|
+
buffer += chunk.toString('utf8');
|
|
242
|
+
const nl = buffer.indexOf('\n');
|
|
243
|
+
if (nl < 0)
|
|
244
|
+
return; // wait for a full NDJSON line
|
|
245
|
+
const raw = buffer.slice(0, nl);
|
|
246
|
+
let json;
|
|
247
|
+
try {
|
|
248
|
+
json = JSON.parse(raw);
|
|
249
|
+
}
|
|
250
|
+
catch (cause) {
|
|
251
|
+
fail(new Error(`malformed lease-ipc frame: ${cause instanceof Error ? cause.message : cause}`));
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const parsed = LeaseIpcResponseEnvelopeSchema.safeParse(json);
|
|
255
|
+
if (!parsed.success) {
|
|
256
|
+
fail(new Error(`off-contract lease-ipc response: ${parsed.error.message}`));
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const { response } = parsed.data;
|
|
260
|
+
if (response.kind === 'queue_admit_result') {
|
|
261
|
+
succeed(response);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
if (response.kind === 'error') {
|
|
265
|
+
// E_LEASE_UNAVAILABLE (arbiter not wired) or any arbiter error →
|
|
266
|
+
// treat as "supervisor cannot arbitrate"; the caller degrades to direct.
|
|
267
|
+
succeed({ unavailable: true, reason: `${response.code}: ${response.message}` });
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// Any other kind on a queue_admit correlation is a protocol violation.
|
|
271
|
+
fail(new Error(`unexpected lease-ipc response kind for queue_admit: ${response.kind}`));
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=llm-queue-admit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-queue-admit.js","sourceRoot":"","sources":["../../src/llm/llm-queue-admit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-code.d.ts","sourceRoot":"","sources":["../../../src/llm/oauth/device-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"device-code.d.ts","sourceRoot":"","sources":["../../../src/llm/oauth/device-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAQ9C;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAQrE;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAQpF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,IAAI,gBAAgB,CAc9D;AAoCD;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmDjG;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,uBAAuB,EAClC,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GACA,OAAO,CAAC,uBAAuB,CAAC,CA0FlC"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* @task T9321
|
|
18
18
|
* @epic T9261 T-LLM-CRED-CENTRALIZATION
|
|
19
19
|
*/
|
|
20
|
+
import { extractOAuthErrorDetail } from './pkce.js';
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
21
22
|
// Internal error types
|
|
22
23
|
// ---------------------------------------------------------------------------
|
|
@@ -153,14 +154,7 @@ export async function startDeviceCodeFlow(cfg) {
|
|
|
153
154
|
body: encodeForm(body),
|
|
154
155
|
});
|
|
155
156
|
if (!resp.ok) {
|
|
156
|
-
|
|
157
|
-
try {
|
|
158
|
-
const errBody = (await resp.json());
|
|
159
|
-
detail = ` — ${String(errBody['error_description'] ?? errBody['error'] ?? '')}`;
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
/* ignore — non-JSON body */
|
|
163
|
-
}
|
|
157
|
+
const detail = await extractOAuthErrorDetail(resp);
|
|
164
158
|
throw new Error(`Device code request failed for provider '${cfg.provider}': HTTP ${resp.status}${detail}`);
|
|
165
159
|
}
|
|
166
160
|
const data = (await resp.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-code.js","sourceRoot":"","sources":["../../../src/llm/oauth/device-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"device-code.js","sourceRoot":"","sources":["../../../src/llm/oauth/device-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-pkce.d.ts","sourceRoot":"","sources":["../../../src/llm/oauth/google-pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;
|
|
1
|
+
{"version":3,"file":"google-pkce.d.ts","sourceRoot":"","sources":["../../../src/llm/oauth/google-pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAQH;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,wCAAwC,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AASpE;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,6EAA0F,CAAC;AAEhI;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,wCAA2C,CAAC;AAerF;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAqD/B"}
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
* @task T9418
|
|
39
39
|
* @epic E-CONFIG-AUTH-UNIFY (E2a)
|
|
40
40
|
*/
|
|
41
|
+
import { extractOAuthErrorDetail } from './pkce.js';
|
|
41
42
|
// ---------------------------------------------------------------------------
|
|
42
43
|
// Constants
|
|
43
44
|
// ---------------------------------------------------------------------------
|
|
@@ -140,7 +141,7 @@ export async function refreshGoogleAccessToken(refreshToken) {
|
|
|
140
141
|
body: body.toString(),
|
|
141
142
|
});
|
|
142
143
|
if (!resp.ok) {
|
|
143
|
-
const detail = await
|
|
144
|
+
const detail = await extractOAuthErrorDetail(resp);
|
|
144
145
|
throw new Error(`Google OAuth refresh failed: HTTP ${resp.status}${detail}`);
|
|
145
146
|
}
|
|
146
147
|
const parsed = (await resp.json());
|
|
@@ -164,21 +165,4 @@ export async function refreshGoogleAccessToken(refreshToken) {
|
|
|
164
165
|
// ---------------------------------------------------------------------------
|
|
165
166
|
// Internal helpers
|
|
166
167
|
// ---------------------------------------------------------------------------
|
|
167
|
-
/**
|
|
168
|
-
* Best-effort extraction of a human-readable error detail from a non-OK
|
|
169
|
-
* token-endpoint response. Mirrors the helper in `oauth/pkce.ts` so the
|
|
170
|
-
* error-message shape stays consistent across the LLM layer.
|
|
171
|
-
*
|
|
172
|
-
* @internal
|
|
173
|
-
*/
|
|
174
|
-
async function extractErrorDetail(resp) {
|
|
175
|
-
try {
|
|
176
|
-
const body = (await resp.json());
|
|
177
|
-
const desc = body['error_description'] ?? body['error'];
|
|
178
|
-
return desc ? ` — ${String(desc)}` : '';
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
return '';
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
168
|
//# sourceMappingURL=google-pkce.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-pkce.js","sourceRoot":"","sources":["../../../src/llm/oauth/google-pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,qCAAqC,CAAC;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,6BAA6B,GAAG,cAAc,CAAC;AACrD,MAAM,sBAAsB,GAAG,kCAAkC,CAAC;AAClE,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,6BAA6B,IAAI,sBAAsB,6BAA6B,CAAC;AAEhI;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,4BAA4B,EAAE,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,IAAI,CAAC;AA8BxC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,YAAoB;IAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAC9F,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,4BAA4B,CAAC;IAEvF,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,YAAY;KAC5B,CAAC,CAAC;IACH,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,2BAA2B,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,mCAAmC;YACnD,MAAM,EAAE,kBAAkB;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"google-pkce.js","sourceRoot":"","sources":["../../../src/llm/oauth/google-pkce.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/oauth/pkce.d.ts
CHANGED
|
@@ -99,6 +99,27 @@ export interface BuildAuthorizationUrlParams {
|
|
|
99
99
|
* @task T9302
|
|
100
100
|
*/
|
|
101
101
|
export declare function buildAuthorizationUrl(params: BuildAuthorizationUrlParams): string;
|
|
102
|
+
/**
|
|
103
|
+
* Parse a user-pasted authorization response into `{ code, state }`.
|
|
104
|
+
*
|
|
105
|
+
* Accepts every form a provider's callback page can hand the user
|
|
106
|
+
* (mirrors pi-ai's `parseAuthorizationInput`):
|
|
107
|
+
* - a full redirect URL — `https://…/callback?code=…&state=…`
|
|
108
|
+
* - the `code#state` pair Anthropic's hosted callback page displays
|
|
109
|
+
* - a bare query string — `code=…&state=…`
|
|
110
|
+
* - a bare authorization code
|
|
111
|
+
*
|
|
112
|
+
* Callers MUST validate a returned `state` against the authorize-time state
|
|
113
|
+
* (CSRF check, RFC 6749 §10.12) before exchanging the code.
|
|
114
|
+
*
|
|
115
|
+
* @param input - Raw pasted text from the user.
|
|
116
|
+
* @returns Extracted `code` and `state` (either may be `undefined`).
|
|
117
|
+
* @task T11958
|
|
118
|
+
*/
|
|
119
|
+
export declare function parseAuthorizationInput(input: string): {
|
|
120
|
+
code?: string;
|
|
121
|
+
state?: string;
|
|
122
|
+
};
|
|
102
123
|
/**
|
|
103
124
|
* Parameters for the PKCE authorization code exchange.
|
|
104
125
|
*
|
|
@@ -119,6 +140,22 @@ export interface ExchangePkceCodeParams {
|
|
|
119
140
|
tokenEndpoint: string;
|
|
120
141
|
/** Extra headers (e.g. provider-specific beta flags). */
|
|
121
142
|
extraHeaders?: Readonly<Record<string, string>>;
|
|
143
|
+
/**
|
|
144
|
+
* The `state` value from the original authorization request.
|
|
145
|
+
*
|
|
146
|
+
* Only sent when `bodyFormat` is `'json'` — Anthropic's token endpoint
|
|
147
|
+
* validates the (code, state) pair bound at authorize time and rejects the
|
|
148
|
+
* exchange without it. RFC-compliant form-encoded endpoints do not define
|
|
149
|
+
* `state` on the token request, so it is omitted there.
|
|
150
|
+
*/
|
|
151
|
+
state?: string;
|
|
152
|
+
/**
|
|
153
|
+
* Token request body encoding. `'form'` (RFC 6749 default) or `'json'`
|
|
154
|
+
* (Anthropic). See `ProviderOAuthConfig.tokenBodyFormat`.
|
|
155
|
+
*
|
|
156
|
+
* @default 'form'
|
|
157
|
+
*/
|
|
158
|
+
bodyFormat?: 'form' | 'json';
|
|
122
159
|
}
|
|
123
160
|
/**
|
|
124
161
|
* Exchange an authorization code + PKCE verifier for access and refresh tokens.
|
|
@@ -148,6 +185,13 @@ export interface RefreshPkceTokenParams {
|
|
|
148
185
|
tokenEndpoint: string;
|
|
149
186
|
/** Extra headers (e.g. provider-specific beta flags). */
|
|
150
187
|
extraHeaders?: Readonly<Record<string, string>>;
|
|
188
|
+
/**
|
|
189
|
+
* Token request body encoding. `'form'` (RFC 6749 default) or `'json'`
|
|
190
|
+
* (Anthropic). See `ProviderOAuthConfig.tokenBodyFormat`.
|
|
191
|
+
*
|
|
192
|
+
* @default 'form'
|
|
193
|
+
*/
|
|
194
|
+
bodyFormat?: 'form' | 'json';
|
|
151
195
|
}
|
|
152
196
|
/**
|
|
153
197
|
* Refresh an access token using the `refresh_token` grant (RFC 6749 §6).
|
|
@@ -162,4 +206,30 @@ export interface RefreshPkceTokenParams {
|
|
|
162
206
|
* @task T9302
|
|
163
207
|
*/
|
|
164
208
|
export declare function refreshPkceToken(params: RefreshPkceTokenParams): Promise<OAuthTokens>;
|
|
209
|
+
/**
|
|
210
|
+
* Extract a human-readable error detail string from a non-OK OAuth HTTP
|
|
211
|
+
* response.
|
|
212
|
+
*
|
|
213
|
+
* The single shared extractor for every OAuth surface in the LLM layer
|
|
214
|
+
* (`pkce.ts`, `google-pkce.ts`, `device-code.ts`) — local copies drifted and
|
|
215
|
+
* re-introduced the `[object Object]` masking of DHQ-075 (T11958).
|
|
216
|
+
*
|
|
217
|
+
* Strategy:
|
|
218
|
+
* 1. Clone the response so the body stream is not consumed by the primary
|
|
219
|
+
* error path (callers may need the body for further inspection).
|
|
220
|
+
* 2. Parse as JSON; use `error_description` or `error` fields (RFC 6749 §5.2).
|
|
221
|
+
* When the field is an object (Anthropic nests
|
|
222
|
+
* `{"error": {"type", "message"}}`), extract `message`/`type` — never
|
|
223
|
+
* `String(object)`.
|
|
224
|
+
* 3. Fall back to the raw text body when JSON parsing fails (e.g. HTML pages
|
|
225
|
+
* returned by a WAF or a misconfigured reverse proxy). Truncate at 512 chars
|
|
226
|
+
* so a multi-kilobyte HTML page does not flood the error message.
|
|
227
|
+
* 4. Return `''` only when all fallbacks are exhausted.
|
|
228
|
+
*
|
|
229
|
+
* This ensures the caller never sees `[object Object]` in the thrown message
|
|
230
|
+
* and always surfaces the actual HTTP response body for debugging.
|
|
231
|
+
*
|
|
232
|
+
* @task T11958
|
|
233
|
+
*/
|
|
234
|
+
export declare function extractOAuthErrorDetail(resp: Response): Promise<string>;
|
|
165
235
|
//# sourceMappingURL=pkce.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../src/llm/oauth/pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAS1D;AAMD;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,oCAAoC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAkBjF;AAMD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../src/llm/oauth/pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAS1D;AAMD;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,oCAAoC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAkBjF;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBxF;AAMD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwB3F;AAMD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAiB3F;AAyED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B7E"}
|