@cleocode/core 2026.9.22 → 2026.9.24
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/import-tasks.d.ts.map +1 -1
- package/dist/admin/import-tasks.js +35 -6
- package/dist/admin/import-tasks.js.map +1 -1
- package/dist/admin/import.d.ts.map +1 -1
- package/dist/admin/import.js +25 -6
- package/dist/admin/import.js.map +1 -1
- package/dist/build-provenance.json +6 -0
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +8 -1
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/index.d.ts +6 -1
- package/dist/cloud/index.d.ts.map +1 -1
- package/dist/cloud/index.js +6 -1
- package/dist/cloud/index.js.map +1 -1
- package/dist/cloud/nexus-auth.d.ts +169 -0
- package/dist/cloud/nexus-auth.d.ts.map +1 -0
- package/dist/cloud/nexus-auth.js +372 -0
- package/dist/cloud/nexus-auth.js.map +1 -0
- package/dist/cloud/nexus-credentials.d.ts +188 -0
- package/dist/cloud/nexus-credentials.d.ts.map +1 -0
- package/dist/cloud/nexus-credentials.js +323 -0
- package/dist/cloud/nexus-credentials.js.map +1 -0
- package/dist/cloud/nexus-link.d.ts +85 -0
- package/dist/cloud/nexus-link.d.ts.map +1 -0
- package/dist/cloud/nexus-link.js +226 -0
- package/dist/cloud/nexus-link.js.map +1 -0
- package/dist/cloud/presence.d.ts +88 -0
- package/dist/cloud/presence.d.ts.map +1 -0
- package/dist/cloud/presence.js +137 -0
- package/dist/cloud/presence.js.map +1 -0
- package/dist/cloud/projects.d.ts +3 -1
- package/dist/cloud/projects.d.ts.map +1 -1
- package/dist/cloud/projects.js +4 -2
- package/dist/cloud/projects.js.map +1 -1
- package/dist/crypto/credentials.d.ts +14 -4
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +15 -1
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/decide/audit.d.ts +7 -1
- package/dist/decide/audit.d.ts.map +1 -1
- package/dist/decide/audit.js.map +1 -1
- package/dist/decide/bench/dataset.d.ts +125 -0
- package/dist/decide/bench/dataset.d.ts.map +1 -0
- package/dist/decide/bench/dataset.js +457 -0
- package/dist/decide/bench/dataset.js.map +1 -0
- package/dist/decide/bench/index.d.ts +23 -0
- package/dist/decide/bench/index.d.ts.map +1 -0
- package/dist/decide/bench/index.js +23 -0
- package/dist/decide/bench/index.js.map +1 -0
- package/dist/decide/bench/metrics.d.ts +55 -0
- package/dist/decide/bench/metrics.d.ts.map +1 -0
- package/dist/decide/bench/metrics.js +100 -0
- package/dist/decide/bench/metrics.js.map +1 -0
- package/dist/decide/bench/operation.d.ts +119 -0
- package/dist/decide/bench/operation.d.ts.map +1 -0
- package/dist/decide/bench/operation.js +171 -0
- package/dist/decide/bench/operation.js.map +1 -0
- package/dist/decide/bench/profiles.d.ts +74 -0
- package/dist/decide/bench/profiles.d.ts.map +1 -0
- package/dist/decide/bench/profiles.js +131 -0
- package/dist/decide/bench/profiles.js.map +1 -0
- package/dist/decide/bench/questions.d.ts +40 -0
- package/dist/decide/bench/questions.d.ts.map +1 -0
- package/dist/decide/bench/questions.js +107 -0
- package/dist/decide/bench/questions.js.map +1 -0
- package/dist/decide/bench/report.d.ts +21 -0
- package/dist/decide/bench/report.d.ts.map +1 -0
- package/dist/decide/bench/report.js +120 -0
- package/dist/decide/bench/report.js.map +1 -0
- package/dist/decide/bench/runner.d.ts +203 -0
- package/dist/decide/bench/runner.d.ts.map +1 -0
- package/dist/decide/bench/runner.js +335 -0
- package/dist/decide/bench/runner.js.map +1 -0
- package/dist/decide/bench/source.d.ts +21 -0
- package/dist/decide/bench/source.d.ts.map +1 -0
- package/dist/decide/bench/source.js +67 -0
- package/dist/decide/bench/source.js.map +1 -0
- package/dist/decide/bench/spot-check.d.ts +117 -0
- package/dist/decide/bench/spot-check.d.ts.map +1 -0
- package/dist/decide/bench/spot-check.js +221 -0
- package/dist/decide/bench/spot-check.js.map +1 -0
- package/dist/decide/bench/stats.d.ts +57 -0
- package/dist/decide/bench/stats.d.ts.map +1 -0
- package/dist/decide/bench/stats.js +82 -0
- package/dist/decide/bench/stats.js.map +1 -0
- package/dist/decide/bench/types.d.ts +216 -0
- package/dist/decide/bench/types.d.ts.map +1 -0
- package/dist/decide/bench/types.js +104 -0
- package/dist/decide/bench/types.js.map +1 -0
- package/dist/decide/client.d.ts +80 -4
- package/dist/decide/client.d.ts.map +1 -1
- package/dist/decide/client.js +428 -39
- package/dist/decide/client.js.map +1 -1
- package/dist/decide/credentials.d.ts +200 -16
- package/dist/decide/credentials.d.ts.map +1 -1
- package/dist/decide/credentials.js +547 -45
- package/dist/decide/credentials.js.map +1 -1
- package/dist/decide/index.d.ts +10 -4
- package/dist/decide/index.d.ts.map +1 -1
- package/dist/decide/index.js +10 -4
- package/dist/decide/index.js.map +1 -1
- package/dist/decide/jev-wire.d.ts +105 -7
- package/dist/decide/jev-wire.d.ts.map +1 -1
- package/dist/decide/jev-wire.js +426 -54
- package/dist/decide/jev-wire.js.map +1 -1
- package/dist/decide/operations.d.ts +149 -21
- package/dist/decide/operations.d.ts.map +1 -1
- package/dist/decide/operations.js +241 -31
- package/dist/decide/operations.js.map +1 -1
- package/dist/decide/provider-state.d.ts +162 -0
- package/dist/decide/provider-state.d.ts.map +1 -0
- package/dist/decide/provider-state.js +267 -0
- package/dist/decide/provider-state.js.map +1 -0
- package/dist/decide/provider.d.ts +31 -5
- package/dist/decide/provider.d.ts.map +1 -1
- package/dist/decide/provider.js.map +1 -1
- package/dist/decide/providers.d.ts +71 -0
- package/dist/decide/providers.d.ts.map +1 -0
- package/dist/decide/providers.js +85 -0
- package/dist/decide/providers.js.map +1 -0
- package/dist/decide/site.d.ts +2 -2
- package/dist/decide/site.d.ts.map +1 -1
- package/dist/decide/site.js +2 -0
- package/dist/decide/site.js.map +1 -1
- package/dist/decide/sites/list.d.ts +46 -0
- package/dist/decide/sites/list.d.ts.map +1 -0
- package/dist/decide/sites/list.js +206 -0
- package/dist/decide/sites/list.js.map +1 -0
- package/dist/decide/sites/registry.d.ts +152 -0
- package/dist/decide/sites/registry.d.ts.map +1 -0
- package/dist/decide/sites/registry.js +398 -0
- package/dist/decide/sites/registry.js.map +1 -0
- package/dist/decide/spend.d.ts +196 -0
- package/dist/decide/spend.d.ts.map +1 -0
- package/dist/decide/spend.js +387 -0
- package/dist/decide/spend.js.map +1 -0
- package/dist/decide/wizard.d.ts +61 -0
- package/dist/decide/wizard.d.ts.map +1 -0
- package/dist/decide/wizard.js +197 -0
- package/dist/decide/wizard.js.map +1 -0
- package/dist/dispatch/mvi-projection.d.ts +15 -2
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +73 -12
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/adr-allocator.d.ts +2 -2
- package/dist/docs/adr-allocator.d.ts.map +1 -1
- package/dist/docs/adr-allocator.js +17 -4
- package/dist/docs/adr-allocator.js.map +1 -1
- package/dist/docs/blob-consolidation.js +1 -1
- package/dist/docs/blob-consolidation.js.map +1 -1
- package/dist/docs/display-alias.d.ts +1 -1
- package/dist/docs/display-alias.d.ts.map +1 -1
- package/dist/docs/display-alias.js +7 -4
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/docs-audit.d.ts.map +1 -1
- package/dist/docs/docs-audit.js +1 -2
- package/dist/docs/docs-audit.js.map +1 -1
- package/dist/docs/docs-inconsistency-detector.js +1 -1
- package/dist/docs/docs-inconsistency-detector.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +6 -1
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/export-document.js +3462 -1227
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +6 -3
- package/dist/docs/supersede.js.map +1 -1
- package/dist/docs/version-ssot.js +1 -1
- package/dist/docs/version-ssot.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +39 -24
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +10 -3
- package/dist/doctor/knowledge-summary.d.ts.map +1 -1
- package/dist/doctor/knowledge-summary.js +10 -3
- package/dist/doctor/knowledge-summary.js.map +1 -1
- package/dist/doctor/project-identity.d.ts +128 -37
- package/dist/doctor/project-identity.d.ts.map +1 -1
- package/dist/doctor/project-identity.js +476 -63
- package/dist/doctor/project-identity.js.map +1 -1
- package/dist/doctor/twin-collapse.d.ts +52 -2
- package/dist/doctor/twin-collapse.d.ts.map +1 -1
- package/dist/doctor/twin-collapse.js +108 -4
- package/dist/doctor/twin-collapse.js.map +1 -1
- package/dist/error-catalog.js +2 -2
- package/dist/error-catalog.js.map +1 -1
- package/dist/error-registry.js +1 -1
- package/dist/error-registry.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +22 -2
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/init/scaffold-workflows.d.ts.map +1 -1
- package/dist/init/scaffold-workflows.js +6 -3
- package/dist/init/scaffold-workflows.js.map +1 -1
- package/dist/init/upgrade-workflows.d.ts.map +1 -1
- package/dist/init/upgrade-workflows.js +6 -3
- package/dist/init/upgrade-workflows.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +20 -11
- package/dist/init.js.map +1 -1
- package/dist/inject/index.d.ts.map +1 -1
- package/dist/inject/index.js +2 -3
- package/dist/inject/index.js.map +1 -1
- package/dist/internal.d.ts +6 -5
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +7 -5
- package/dist/internal.js.map +1 -1
- package/dist/llm/credential-remove-entry.d.ts +59 -0
- package/dist/llm/credential-remove-entry.d.ts.map +1 -0
- package/dist/llm/credential-remove-entry.js +101 -0
- package/dist/llm/credential-remove-entry.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts +26 -6
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +44 -12
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/plugin-facade.js +3556 -1321
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/attention.d.ts.map +1 -1
- package/dist/memory/attention.js +5 -3
- package/dist/memory/attention.js.map +1 -1
- package/dist/memory/decision-contradiction.d.ts +3 -3
- package/dist/memory/decision-contradiction.d.ts.map +1 -1
- package/dist/memory/decision-contradiction.js +4 -3
- package/dist/memory/decision-contradiction.js.map +1 -1
- package/dist/memory/decisions.d.ts +48 -3
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +98 -14
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +2 -0
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/learnings.d.ts +6 -6
- package/dist/memory/observation-type-decision.d.ts +2 -2
- package/dist/memory/observation-type-decision.d.ts.map +1 -1
- package/dist/memory/observation-type-decision.js +3 -2
- package/dist/memory/observation-type-decision.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -4
- package/dist/memory/pipeline-manifest-sqlite.d.ts +111 -0
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +230 -2
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
- package/dist/nexus/fleet-status.d.ts +83 -0
- package/dist/nexus/fleet-status.d.ts.map +1 -0
- package/dist/nexus/fleet-status.js +414 -0
- package/dist/nexus/fleet-status.js.map +1 -0
- package/dist/nexus/git-state.d.ts +15 -0
- package/dist/nexus/git-state.d.ts.map +1 -1
- package/dist/nexus/git-state.js +67 -2
- package/dist/nexus/git-state.js.map +1 -1
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +4 -0
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +4 -1
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +7 -1
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
- package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.js +9 -17
- package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +4 -0
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/nexus/ops.d.ts +1 -0
- package/dist/nexus/ops.d.ts.map +1 -1
- package/dist/nexus/project-activity.d.ts +104 -0
- package/dist/nexus/project-activity.d.ts.map +1 -0
- package/dist/nexus/project-activity.js +150 -0
- package/dist/nexus/project-activity.js.map +1 -0
- package/dist/nexus/query.d.ts +2 -2
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +4 -19
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-errors.d.ts +61 -0
- package/dist/nexus/registry-errors.d.ts.map +1 -0
- package/dist/nexus/registry-errors.js +85 -0
- package/dist/nexus/registry-errors.js.map +1 -0
- package/dist/nexus/registry.d.ts +30 -5
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +115 -70
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/store.d.ts.map +1 -1
- package/dist/nexus/store.js +2 -0
- package/dist/nexus/store.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts +4 -0
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +82 -14
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestrate/plan.d.ts.map +1 -1
- package/dist/orchestrate/plan.js +3 -0
- package/dist/orchestrate/plan.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +29 -27
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +29 -3
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +20 -14
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +15 -1
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +25 -6
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +7 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +20 -5
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/owner-decision-readiness.d.ts +2 -2
- package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -1
- package/dist/orchestration/owner-decision-readiness.js +3 -2
- package/dist/orchestration/owner-decision-readiness.js.map +1 -1
- package/dist/orchestration/spawn-prompt.js +1 -1
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/validate-spawn.d.ts.map +1 -1
- package/dist/orchestration/validate-spawn.js +2 -0
- package/dist/orchestration/validate-spawn.js.map +1 -1
- package/dist/orchestration/waves.d.ts +21 -10
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +38 -35
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +9 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +30 -13
- package/dist/paths.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +3 -4
- package/dist/phases/index.js.map +1 -1
- package/dist/project-info.d.ts +40 -3
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +74 -6
- package/dist/project-info.js.map +1 -1
- package/dist/project-lifecycle.d.ts +28 -7
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +114 -47
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/project-scope.d.ts +86 -3
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +192 -17
- package/dist/project-scope.js.map +1 -1
- package/dist/release/github-pr.d.ts.map +1 -1
- package/dist/release/github-pr.js +2 -1
- package/dist/release/github-pr.js.map +1 -1
- package/dist/release/open.d.ts +12 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +32 -3
- package/dist/release/open.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +73 -0
- package/dist/release/preflight-skip.d.ts.map +1 -0
- package/dist/release/preflight-skip.js +254 -0
- package/dist/release/preflight-skip.js.map +1 -0
- package/dist/render/decide/index.d.ts +51 -0
- package/dist/render/decide/index.d.ts.map +1 -0
- package/dist/render/decide/index.js +289 -0
- package/dist/render/decide/index.js.map +1 -0
- package/dist/render/index.d.ts +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +1 -0
- package/dist/render/index.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts +5 -0
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +53 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/routing/capability-matrix.d.ts.map +1 -1
- package/dist/routing/capability-matrix.js +7 -0
- package/dist/routing/capability-matrix.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +14 -6
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +39 -17
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +115 -23
- package/dist/scaffold/project-identity.d.ts.map +1 -1
- package/dist/scaffold/project-identity.js +196 -44
- package/dist/scaffold/project-identity.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +3569 -1334
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/cross-project-hygiene.d.ts +12 -6
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +15 -10
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/session/engine-ops.d.ts +13 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +38 -45
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +7 -3
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +32 -71
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/drift-watchdog.d.ts.map +1 -1
- package/dist/sessions/drift-watchdog.js +11 -19
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/focus-state-store.d.ts +109 -27
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +171 -39
- package/dist/sessions/focus-state-store.js.map +1 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -18
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +35 -6
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-drift.d.ts.map +1 -1
- package/dist/sessions/session-drift.js +4 -2
- package/dist/sessions/session-drift.js.map +1 -1
- package/dist/sessions/session-view.d.ts +8 -1
- package/dist/sessions/session-view.d.ts.map +1 -1
- package/dist/sessions/session-view.js +9 -2
- package/dist/sessions/session-view.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts +28 -0
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +52 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +15 -10
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +19 -10
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/llm.js +1 -1
- package/dist/setup/sections/llm.js.map +1 -1
- package/dist/setup/sections/nexus-account.d.ts +32 -0
- package/dist/setup/sections/nexus-account.d.ts.map +1 -0
- package/dist/setup/sections/nexus-account.js +64 -0
- package/dist/setup/sections/nexus-account.js.map +1 -0
- package/dist/setup/sections/system-one.d.ts +28 -0
- package/dist/setup/sections/system-one.d.ts.map +1 -0
- package/dist/setup/sections/system-one.js +53 -0
- package/dist/setup/sections/system-one.js.map +1 -0
- package/dist/setup/wizard.d.ts +15 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js +15 -0
- package/dist/setup/wizard.js.map +1 -1
- package/dist/skills/orchestrator/startup.d.ts.map +1 -1
- package/dist/skills/orchestrator/startup.js +18 -31
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/skills/prune-bundled.d.ts +40 -1
- package/dist/skills/prune-bundled.d.ts.map +1 -1
- package/dist/skills/prune-bundled.js +117 -1
- package/dist/skills/prune-bundled.js.map +1 -1
- package/dist/snapshot/index.d.ts.map +1 -1
- package/dist/snapshot/index.js +60 -53
- package/dist/snapshot/index.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts +33 -1
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +53 -1
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/index.d.ts +1 -1
- package/dist/spawn/index.d.ts.map +1 -1
- package/dist/spawn/index.js +1 -1
- package/dist/spawn/index.js.map +1 -1
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +3 -4
- package/dist/stats/index.js.map +1 -1
- package/dist/status/index.d.ts +12 -3
- package/dist/status/index.d.ts.map +1 -1
- package/dist/status/index.js +47 -5
- package/dist/status/index.js.map +1 -1
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.js +2 -0
- package/dist/store/agent-registry-accessor.js.map +1 -1
- package/dist/store/attachment-repair.d.ts.map +1 -1
- package/dist/store/attachment-repair.js +42 -3
- package/dist/store/attachment-repair.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +30 -46
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-pack.js +1 -1
- package/dist/store/backup-pack.js.map +1 -1
- package/dist/store/backup-recover-brain.d.ts +4 -0
- package/dist/store/backup-recover-brain.d.ts.map +1 -1
- package/dist/store/backup-recover-brain.js +2 -0
- package/dist/store/backup-recover-brain.js.map +1 -1
- package/dist/store/backup-recover.d.ts +9 -0
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +28 -1
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +30 -0
- package/dist/store/backup-sidecar.d.ts.map +1 -1
- package/dist/store/backup-sidecar.js +90 -2
- package/dist/store/backup-sidecar.js.map +1 -1
- package/dist/store/backup.d.ts +15 -1
- package/dist/store/backup.d.ts.map +1 -1
- package/dist/store/backup.js +18 -2
- package/dist/store/backup.js.map +1 -1
- package/dist/store/blob-keep.d.ts +135 -0
- package/dist/store/blob-keep.d.ts.map +1 -0
- package/dist/store/blob-keep.js +283 -0
- package/dist/store/blob-keep.js.map +1 -0
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +3 -0
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +11 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +37 -5
- package/dist/store/credential-transfer.d.ts.map +1 -1
- package/dist/store/credential-transfer.js +75 -18
- package/dist/store/credential-transfer.js.map +1 -1
- package/dist/store/cross-db-cleanup.d.ts.map +1 -1
- package/dist/store/cross-db-cleanup.js +2 -0
- package/dist/store/cross-db-cleanup.js.map +1 -1
- package/dist/store/data-accessor.d.ts +1 -1
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/db-helpers.d.ts +18 -0
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +46 -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 +13 -2
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +35 -0
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +3 -3
- package/dist/store/exodus/runtime-targets.js +3 -3
- package/dist/store/import-remap.d.ts +12 -1
- package/dist/store/import-remap.d.ts.map +1 -1
- package/dist/store/import-remap.js +14 -0
- package/dist/store/import-remap.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +3 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +3 -1
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/memory-accessor.js +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
- package/dist/store/migrate-signaldock-to-conduit.js +3 -0
- package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
- package/dist/store/migration-manager.d.ts +61 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +138 -6
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/migration-sqlite.d.ts.map +1 -1
- package/dist/store/migration-sqlite.js +2 -0
- package/dist/store/migration-sqlite.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +3 -0
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/nexus-validation-schemas.d.ts +64 -0
- package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
- package/dist/store/open-cleo-db.d.ts.map +1 -1
- package/dist/store/open-cleo-db.js +3 -0
- package/dist/store/open-cleo-db.js.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +8 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +12 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
- package/dist/store/portable-bundle-relocate.js +2 -0
- package/dist/store/portable-bundle-relocate.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +2 -1
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +15 -14
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/ports/domain-binding.d.ts.map +1 -1
- package/dist/store/ports/domain-binding.js +5 -0
- package/dist/store/ports/domain-binding.js.map +1 -1
- package/dist/store/pre-repair-snapshot.d.ts +4 -1
- package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
- package/dist/store/pre-repair-snapshot.js +5 -1
- package/dist/store/pre-repair-snapshot.js.map +1 -1
- package/dist/store/regenerators.d.ts +4 -2
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +7 -3
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts +4 -0
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
- package/dist/store/repair-malformed-dbs.js +3 -0
- package/dist/store/repair-malformed-dbs.js.map +1 -1
- package/dist/store/safety-data-accessor.d.ts +8 -3
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +11 -4
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +48 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +17 -0
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/cleo-project/docs.d.ts +16 -0
- package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/docs.js +10 -0
- package/dist/store/schema/cleo-project/docs.js.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +80 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +25 -1
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
- package/dist/store/schema/memory-schema.d.ts +1 -1
- package/dist/store/schema/nexus-schema.d.ts +48 -0
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +28 -7
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/session-store.d.ts +65 -0
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +108 -7
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/split-brain-import.d.ts.map +1 -1
- package/dist/store/split-brain-import.js +2 -0
- package/dist/store/split-brain-import.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +252 -47
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite-native.d.ts.map +1 -1
- package/dist/store/sqlite-native.js +1 -0
- package/dist/store/sqlite-native.js.map +1 -1
- package/dist/store/sqlite.d.ts +15 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +57 -20
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/store-write-guard.d.ts +9 -3
- package/dist/store/store-write-guard.d.ts.map +1 -1
- package/dist/store/store-write-guard.js +25 -4
- package/dist/store/store-write-guard.js.map +1 -1
- package/dist/store/table-classification.d.ts +1 -1
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +34 -8
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/task-claim.d.ts +144 -0
- package/dist/store/task-claim.d.ts.map +1 -0
- package/dist/store/task-claim.js +195 -0
- package/dist/store/task-claim.js.map +1 -0
- package/dist/store/task-version.d.ts +43 -5
- package/dist/store/task-version.d.ts.map +1 -1
- package/dist/store/task-version.js +113 -17
- package/dist/store/task-version.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +2 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.js +1 -1
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +339 -22
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +1323 -48
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +8 -3
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +10 -4
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +161 -1
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/with-retry.d.ts +36 -0
- package/dist/store/with-retry.d.ts.map +1 -1
- package/dist/store/with-retry.js +51 -0
- package/dist/store/with-retry.js.map +1 -1
- package/dist/store/worktree-build-guard.d.ts +200 -0
- package/dist/store/worktree-build-guard.d.ts.map +1 -0
- package/dist/store/worktree-build-guard.js +497 -0
- package/dist/store/worktree-build-guard.js.map +1 -0
- package/dist/store/worktree-isolation-guard.d.ts +138 -0
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +189 -2
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +2 -0
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/backup.d.ts +13 -2
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +11 -3
- package/dist/system/backup.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +3 -1
- package/dist/system/health.js.map +1 -1
- package/dist/system/inject-generate.d.ts.map +1 -1
- package/dist/system/inject-generate.js +23 -10
- package/dist/system/inject-generate.js.map +1 -1
- package/dist/system/project-health.d.ts +8 -0
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +13 -5
- package/dist/system/project-health.js.map +1 -1
- package/dist/task-tools/index.d.ts +4 -2
- package/dist/task-tools/index.d.ts.map +1 -1
- package/dist/task-tools/index.js +3 -2
- package/dist/task-tools/index.js.map +1 -1
- package/dist/task-tools/score-task-priority.d.ts +131 -18
- package/dist/task-tools/score-task-priority.d.ts.map +1 -1
- package/dist/task-tools/score-task-priority.js +243 -80
- package/dist/task-tools/score-task-priority.js.map +1 -1
- package/dist/task-work/claims.d.ts +215 -0
- package/dist/task-work/claims.d.ts.map +1 -0
- package/dist/task-work/claims.js +272 -0
- package/dist/task-work/claims.js.map +1 -0
- package/dist/task-work/index.d.ts +47 -3
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +74 -41
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +3 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +5 -1
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +21 -3
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/analyze.d.ts +29 -1
- package/dist/tasks/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +47 -37
- package/dist/tasks/analyze.js.map +1 -1
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +4 -1
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/change-set.d.ts +5 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +75 -6
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/command-line.d.ts +54 -0
- package/dist/tasks/command-line.d.ts.map +1 -0
- package/dist/tasks/command-line.js +151 -0
- package/dist/tasks/command-line.js.map +1 -0
- package/dist/tasks/complete.d.ts +16 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +27 -7
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +162 -1
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +639 -53
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/delete.d.ts.map +1 -1
- package/dist/tasks/delete.js +20 -0
- package/dist/tasks/delete.js.map +1 -1
- package/dist/tasks/done-record.d.ts +14 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +37 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts +23 -4
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +14 -5
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap-ops.d.ts +48 -10
- package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
- package/dist/tasks/engine-wrap-ops.js +78 -10
- package/dist/tasks/engine-wrap-ops.js.map +1 -1
- package/dist/tasks/engine-wrap.d.ts +1 -1
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +1 -1
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/evidence.d.ts +2 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +30 -4
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +48 -12
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/graph-ops.d.ts +9 -2
- package/dist/tasks/graph-ops.d.ts.map +1 -1
- package/dist/tasks/graph-ops.js +24 -32
- package/dist/tasks/graph-ops.js.map +1 -1
- package/dist/tasks/index.d.ts +1 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -1
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/ops.d.ts +1 -0
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +16 -60
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/ranking-audit.d.ts +122 -0
- package/dist/tasks/ranking-audit.d.ts.map +1 -0
- package/dist/tasks/ranking-audit.js +193 -0
- package/dist/tasks/ranking-audit.js.map +1 -0
- package/dist/tasks/task-analyze.d.ts.map +1 -1
- package/dist/tasks/task-analyze.js +19 -32
- package/dist/tasks/task-analyze.js.map +1 -1
- package/dist/tasks/task-context.d.ts.map +1 -1
- package/dist/tasks/task-context.js +13 -0
- package/dist/tasks/task-context.js.map +1 -1
- package/dist/tasks/task-import.d.ts.map +1 -1
- package/dist/tasks/task-import.js +21 -12
- package/dist/tasks/task-import.js.map +1 -1
- package/dist/tasks/task-next.d.ts +67 -2
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +99 -102
- package/dist/tasks/task-next.js.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 +1 -1
- package/dist/tasks/task-ops.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +7 -1
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +24 -10
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/update.d.ts +8 -2
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +35 -6
- package/dist/tasks/update.js.map +1 -1
- package/dist/telemetry/sqlite.d.ts.map +1 -1
- package/dist/telemetry/sqlite.js +2 -0
- package/dist/telemetry/sqlite.js.map +1 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +48 -9
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -6
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +53 -10
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +2 -3
- package/dist/validation/validate-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
- package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
- package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
- package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
- package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
- package/package.json +24 -14
- package/schemas/config.schema.json +13 -0
- package/schemas/project-info.schema.json +10 -4
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +7 -3
- package/templates/cleo-gitignore +11 -0
- package/templates/workflows/release-prepare.yml.tmpl +156 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/decide/operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/decide/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detected provider capabilities and the last usage read, cached PER PROFILE
|
|
3
|
+
* in `<cleoHome>/decide/provider-state.json` (T12664, T12733). The file maps
|
|
4
|
+
* a state key (the profile id `<provider>/<name>`, or `<baseUrl>#<keyHash>`
|
|
5
|
+
* for a connection without a profile) to that identity's state, so two
|
|
6
|
+
* profiles on the same URL (two layahost accounts) or a benchmark alternating
|
|
7
|
+
* profiles never overwrite each other's detection. The key is never stored:
|
|
8
|
+
* each state carries a truncated sha256 of it ({@link providerKeyHash}) as a
|
|
9
|
+
* guard, so a different key on the same profile or URL (another account or
|
|
10
|
+
* plan, with other capabilities) never reuses the cached state. A file in the
|
|
11
|
+
* pre-T12733 single-state shape is still read (guarded the same way) and is
|
|
12
|
+
* replaced by the map on the next write.
|
|
13
|
+
*
|
|
14
|
+
* Detection (`detectJevCapabilities`) calls `GET /v1/usage` and
|
|
15
|
+
* `GET /v1/templates`, both of which count toward the provider's rate limit,
|
|
16
|
+
* so {@link refreshProviderState} re-detects at most once every
|
|
17
|
+
* {@link USAGE_REFRESH_MS} per provider identity: a failed detection is
|
|
18
|
+
* written too (keeping the previous capabilities on a transient failure; with
|
|
19
|
+
* nothing cached, a transient failure is not written and is retried after
|
|
20
|
+
* {@link TRANSIENT_DETECTION_RETRY_MS}), and an in-process attempt memo covers
|
|
21
|
+
* an unwritable state file. The client
|
|
22
|
+
* reads the file (memoised per process) to know which extensions the
|
|
23
|
+
* configured provider supports; with no file, or a file for another base URL
|
|
24
|
+
* or key, the provider is treated as the Jev minimum.
|
|
25
|
+
*
|
|
26
|
+
* Who detects (T12715): `cleo decide config` (forced), `cleo decide status`,
|
|
27
|
+
* and — lazily, on first use — `decideBatch`, whose 30 s deadline is not
|
|
28
|
+
* latency-critical. A single 300 ms `decide()` NEVER detects: it neither
|
|
29
|
+
* waits for detection nor starts one in the background, because a pending
|
|
30
|
+
* detection request would keep a one-shot CLI process alive past its work
|
|
31
|
+
* (the CLI's success path relies on the event loop draining, T12492). A single
|
|
32
|
+
* decision therefore uses the Jev minimum until one of the paths above has
|
|
33
|
+
* written the state; the minimum only omits the optional `lang`/`cache` body
|
|
34
|
+
* fields, so the answer itself is unaffected.
|
|
35
|
+
*
|
|
36
|
+
* @task T12664
|
|
37
|
+
* @task T12733
|
|
38
|
+
* @epic T12486
|
|
39
|
+
*/
|
|
40
|
+
import type { DecisionProviderCapabilities, DecisionProviderUsage } from '@cleocode/contracts';
|
|
41
|
+
import type { DecideFetch } from './transport.js';
|
|
42
|
+
/** Minimum interval between usage/capability refreshes: 10 minutes. */
|
|
43
|
+
export declare const USAGE_REFRESH_MS: number;
|
|
44
|
+
/** The provider identity a cached state belongs to. */
|
|
45
|
+
export interface ProviderStateIdentity {
|
|
46
|
+
/** Provider base URL. */
|
|
47
|
+
readonly baseUrl: string;
|
|
48
|
+
/** API key; only its truncated hash is ever compared or stored. */
|
|
49
|
+
readonly apiKey: string;
|
|
50
|
+
/** Profile id (`<provider>/<name>`, T12733); keys the state when present. */
|
|
51
|
+
readonly profile?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Non-reversible short identifier of an API key: the first
|
|
55
|
+
* {@link KEY_HASH_CHARS} hex characters of its sha256. Enough to tell keys
|
|
56
|
+
* apart in the state file; useless for recovering the key.
|
|
57
|
+
*
|
|
58
|
+
* @param apiKey - The API key.
|
|
59
|
+
* @returns Truncated hex sha256.
|
|
60
|
+
*/
|
|
61
|
+
export declare function providerKeyHash(apiKey: string): string;
|
|
62
|
+
/** One cached provider state. */
|
|
63
|
+
export interface ProviderState {
|
|
64
|
+
/** Base URL the state was detected for. */
|
|
65
|
+
readonly baseUrl: string;
|
|
66
|
+
/** {@link providerKeyHash} of the API key the state was detected with. */
|
|
67
|
+
readonly keyHash: string;
|
|
68
|
+
/** Epoch ms of the detection. */
|
|
69
|
+
readonly detectedAt: number;
|
|
70
|
+
/** Detected capabilities. */
|
|
71
|
+
readonly capabilities: DecisionProviderCapabilities;
|
|
72
|
+
/** Usage read at detection time, when the provider has a usage endpoint. */
|
|
73
|
+
readonly usage?: DecisionProviderUsage;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Default location: `<cleoHome>/decide/provider-state.json`.
|
|
77
|
+
*
|
|
78
|
+
* @returns Absolute path.
|
|
79
|
+
*/
|
|
80
|
+
export declare function defaultProviderStatePath(): string;
|
|
81
|
+
/**
|
|
82
|
+
* The key a state is filed under: the profile id, or `<baseUrl>#<keyHash>`
|
|
83
|
+
* for a connection without one.
|
|
84
|
+
*
|
|
85
|
+
* @param identity - Base URL, key and optional profile.
|
|
86
|
+
* @returns The state key.
|
|
87
|
+
*/
|
|
88
|
+
export declare function providerStateKey(identity: ProviderStateIdentity): string;
|
|
89
|
+
/**
|
|
90
|
+
* Read the cached state for a provider URL and key.
|
|
91
|
+
*
|
|
92
|
+
* @param identity - The configured base URL and API key.
|
|
93
|
+
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
94
|
+
* @returns The state, or `null` when absent, unreadable, or for another URL
|
|
95
|
+
* or key (a state written before keys were recorded counts as another key).
|
|
96
|
+
*/
|
|
97
|
+
export declare function readProviderState(identity: ProviderStateIdentity, path?: string): ProviderState | null;
|
|
98
|
+
/**
|
|
99
|
+
* Write one identity's cached state (atomic rename), keeping every other
|
|
100
|
+
* identity's state. Never throws.
|
|
101
|
+
*
|
|
102
|
+
* @param state - State to store.
|
|
103
|
+
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
104
|
+
* @param key - State key ({@link providerStateKey}). Default: `<baseUrl>#<keyHash>`.
|
|
105
|
+
*/
|
|
106
|
+
export declare function writeProviderState(state: ProviderState, path?: string, key?: string): void;
|
|
107
|
+
/**
|
|
108
|
+
* Capabilities the client may use for a provider URL and key, memoised per
|
|
109
|
+
* process for a minute so the hot path does not read the file on every
|
|
110
|
+
* decision.
|
|
111
|
+
*
|
|
112
|
+
* @param identity - The configured base URL and API key.
|
|
113
|
+
* @param now - Clock, epoch ms.
|
|
114
|
+
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
115
|
+
* @returns Detected capabilities, or `null` (→ the Jev minimum).
|
|
116
|
+
*/
|
|
117
|
+
export declare function cachedCapabilities(identity: ProviderStateIdentity, now?: number, path?: string): DecisionProviderCapabilities | null;
|
|
118
|
+
/**
|
|
119
|
+
* Retry interval after a transient detection failure with nothing cached
|
|
120
|
+
* (T12715): the result is not written (it would pin a partial or failed
|
|
121
|
+
* detection for {@link USAGE_REFRESH_MS}), so only this in-process wait
|
|
122
|
+
* spaces out the retries.
|
|
123
|
+
*/
|
|
124
|
+
export declare const TRANSIENT_DETECTION_RETRY_MS = 30000;
|
|
125
|
+
/** Options for {@link refreshProviderState}. */
|
|
126
|
+
export interface RefreshProviderStateOptions {
|
|
127
|
+
/** Transport for the detection probes; tests inject a stub. */
|
|
128
|
+
readonly fetch?: DecideFetch;
|
|
129
|
+
/** Wall clock, epoch ms. Default `Date.now`. */
|
|
130
|
+
readonly now?: () => number;
|
|
131
|
+
/** State file. Default {@link defaultProviderStatePath}. */
|
|
132
|
+
readonly path?: string;
|
|
133
|
+
/** Detect even when the cached state is fresh (after a settings change). */
|
|
134
|
+
readonly force?: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Return the cached provider state, re-detecting it first when it is absent
|
|
138
|
+
* or older than {@link USAGE_REFRESH_MS} (or when `force` is set).
|
|
139
|
+
*
|
|
140
|
+
* At most one detection runs per identity per {@link USAGE_REFRESH_MS}: the
|
|
141
|
+
* result is written even when detection failed, and a per-process attempt
|
|
142
|
+
* memo stops a retry loop when the file cannot be written. A transient
|
|
143
|
+
* failure (network, timeout, 5xx, 429 — of either probe) keeps the previous
|
|
144
|
+
* capabilities and usage instead of downgrading them. With nothing cached, a
|
|
145
|
+
* transient failure is NOT written: its result serves this process (via the
|
|
146
|
+
* in-process memo) and detection is retried after
|
|
147
|
+
* {@link TRANSIENT_DETECTION_RETRY_MS}. Never throws.
|
|
148
|
+
*
|
|
149
|
+
* @param connection - Base URL and API key of the configured provider.
|
|
150
|
+
* @param signal - Aborts the detection probes.
|
|
151
|
+
* @param opts - Transport, clock, state path, force.
|
|
152
|
+
* @returns The fresh or cached state, or `null` when detection was skipped
|
|
153
|
+
* (attempted recently in this process) and nothing is cached.
|
|
154
|
+
*/
|
|
155
|
+
export declare function refreshProviderState(connection: ProviderStateIdentity, signal: AbortSignal, opts?: RefreshProviderStateOptions): Promise<ProviderState | null>;
|
|
156
|
+
/**
|
|
157
|
+
* Clear the in-process memo and detection-attempt memo. Tests only.
|
|
158
|
+
*
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
export declare function _resetProviderStateMemoForTest(): void;
|
|
162
|
+
//# sourceMappingURL=provider-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-state.d.ts","sourceRoot":"","sources":["../../src/decide/provider-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAKH,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAQ/C,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IACpD,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAExE;AAqBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,SAA6B,GAChC,aAAa,GAAG,IAAI,CAQtB;AA4BD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,IAAI,SAA6B,EACjC,GAAG,SAAsC,GACxC,IAAI,CAWN;AAUD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,GAAE,MAAmB,EACxB,IAAI,SAA6B,GAChC,4BAA4B,GAAG,IAAI,CAerC;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAKnD,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,2BAAgC,GACrC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiD/B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detected provider capabilities and the last usage read, cached PER PROFILE
|
|
3
|
+
* in `<cleoHome>/decide/provider-state.json` (T12664, T12733). The file maps
|
|
4
|
+
* a state key (the profile id `<provider>/<name>`, or `<baseUrl>#<keyHash>`
|
|
5
|
+
* for a connection without a profile) to that identity's state, so two
|
|
6
|
+
* profiles on the same URL (two layahost accounts) or a benchmark alternating
|
|
7
|
+
* profiles never overwrite each other's detection. The key is never stored:
|
|
8
|
+
* each state carries a truncated sha256 of it ({@link providerKeyHash}) as a
|
|
9
|
+
* guard, so a different key on the same profile or URL (another account or
|
|
10
|
+
* plan, with other capabilities) never reuses the cached state. A file in the
|
|
11
|
+
* pre-T12733 single-state shape is still read (guarded the same way) and is
|
|
12
|
+
* replaced by the map on the next write.
|
|
13
|
+
*
|
|
14
|
+
* Detection (`detectJevCapabilities`) calls `GET /v1/usage` and
|
|
15
|
+
* `GET /v1/templates`, both of which count toward the provider's rate limit,
|
|
16
|
+
* so {@link refreshProviderState} re-detects at most once every
|
|
17
|
+
* {@link USAGE_REFRESH_MS} per provider identity: a failed detection is
|
|
18
|
+
* written too (keeping the previous capabilities on a transient failure; with
|
|
19
|
+
* nothing cached, a transient failure is not written and is retried after
|
|
20
|
+
* {@link TRANSIENT_DETECTION_RETRY_MS}), and an in-process attempt memo covers
|
|
21
|
+
* an unwritable state file. The client
|
|
22
|
+
* reads the file (memoised per process) to know which extensions the
|
|
23
|
+
* configured provider supports; with no file, or a file for another base URL
|
|
24
|
+
* or key, the provider is treated as the Jev minimum.
|
|
25
|
+
*
|
|
26
|
+
* Who detects (T12715): `cleo decide config` (forced), `cleo decide status`,
|
|
27
|
+
* and — lazily, on first use — `decideBatch`, whose 30 s deadline is not
|
|
28
|
+
* latency-critical. A single 300 ms `decide()` NEVER detects: it neither
|
|
29
|
+
* waits for detection nor starts one in the background, because a pending
|
|
30
|
+
* detection request would keep a one-shot CLI process alive past its work
|
|
31
|
+
* (the CLI's success path relies on the event loop draining, T12492). A single
|
|
32
|
+
* decision therefore uses the Jev minimum until one of the paths above has
|
|
33
|
+
* written the state; the minimum only omits the optional `lang`/`cache` body
|
|
34
|
+
* fields, so the answer itself is unaffected.
|
|
35
|
+
*
|
|
36
|
+
* @task T12664
|
|
37
|
+
* @task T12733
|
|
38
|
+
* @epic T12486
|
|
39
|
+
*/
|
|
40
|
+
import { createHash } from 'node:crypto';
|
|
41
|
+
import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
42
|
+
import { dirname, join } from 'node:path';
|
|
43
|
+
import { getCleoHome } from '@cleocode/paths';
|
|
44
|
+
import { detectJevCapabilities, TRANSIENT_DETECTION_ERRORS } from './jev-wire.js';
|
|
45
|
+
/** Minimum interval between usage/capability refreshes: 10 minutes. */
|
|
46
|
+
export const USAGE_REFRESH_MS = 10 * 60 * 1000;
|
|
47
|
+
/** How long the client trusts its in-process copy of the file. */
|
|
48
|
+
const MEMO_MS = 60_000;
|
|
49
|
+
/** Hex characters of the key's sha256 kept in the state (64 bits). */
|
|
50
|
+
const KEY_HASH_CHARS = 16;
|
|
51
|
+
/**
|
|
52
|
+
* Non-reversible short identifier of an API key: the first
|
|
53
|
+
* {@link KEY_HASH_CHARS} hex characters of its sha256. Enough to tell keys
|
|
54
|
+
* apart in the state file; useless for recovering the key.
|
|
55
|
+
*
|
|
56
|
+
* @param apiKey - The API key.
|
|
57
|
+
* @returns Truncated hex sha256.
|
|
58
|
+
*/
|
|
59
|
+
export function providerKeyHash(apiKey) {
|
|
60
|
+
return createHash('sha256').update(apiKey, 'utf8').digest('hex').slice(0, KEY_HASH_CHARS);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Default location: `<cleoHome>/decide/provider-state.json`.
|
|
64
|
+
*
|
|
65
|
+
* @returns Absolute path.
|
|
66
|
+
*/
|
|
67
|
+
export function defaultProviderStatePath() {
|
|
68
|
+
return join(getCleoHome(), 'decide', 'provider-state.json');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The key a state is filed under: the profile id, or `<baseUrl>#<keyHash>`
|
|
72
|
+
* for a connection without one.
|
|
73
|
+
*
|
|
74
|
+
* @param identity - Base URL, key and optional profile.
|
|
75
|
+
* @returns The state key.
|
|
76
|
+
*/
|
|
77
|
+
export function providerStateKey(identity) {
|
|
78
|
+
return identity.profile ?? `${identity.baseUrl}#${providerKeyHash(identity.apiKey)}`;
|
|
79
|
+
}
|
|
80
|
+
/** Structural check of a parsed state; anything else is ignored. */
|
|
81
|
+
function isProviderState(value) {
|
|
82
|
+
if (value === null || typeof value !== 'object')
|
|
83
|
+
return false;
|
|
84
|
+
const baseUrl = Reflect.get(value, 'baseUrl');
|
|
85
|
+
const keyHash = Reflect.get(value, 'keyHash');
|
|
86
|
+
const detectedAt = Reflect.get(value, 'detectedAt');
|
|
87
|
+
const capabilities = Reflect.get(value, 'capabilities');
|
|
88
|
+
return (typeof baseUrl === 'string' &&
|
|
89
|
+
typeof keyHash === 'string' &&
|
|
90
|
+
typeof detectedAt === 'number' &&
|
|
91
|
+
capabilities !== null &&
|
|
92
|
+
typeof capabilities === 'object' &&
|
|
93
|
+
typeof Reflect.get(capabilities, 'wire') === 'string' &&
|
|
94
|
+
typeof Reflect.get(capabilities, 'maxQuestionsPerRequest') === 'number' &&
|
|
95
|
+
typeof Reflect.get(capabilities, 'maxStateChars') === 'number');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Read the cached state for a provider URL and key.
|
|
99
|
+
*
|
|
100
|
+
* @param identity - The configured base URL and API key.
|
|
101
|
+
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
102
|
+
* @returns The state, or `null` when absent, unreadable, or for another URL
|
|
103
|
+
* or key (a state written before keys were recorded counts as another key).
|
|
104
|
+
*/
|
|
105
|
+
export function readProviderState(identity, path = defaultProviderStatePath()) {
|
|
106
|
+
const file = readStateFile(path);
|
|
107
|
+
const candidate = file.states[providerStateKey(identity)] ?? file.legacy;
|
|
108
|
+
return candidate &&
|
|
109
|
+
candidate.baseUrl === identity.baseUrl &&
|
|
110
|
+
candidate.keyHash === providerKeyHash(identity.apiKey)
|
|
111
|
+
? candidate
|
|
112
|
+
: null;
|
|
113
|
+
}
|
|
114
|
+
/** Read the state file. Never throws; anything unreadable is empty. */
|
|
115
|
+
function readStateFile(path) {
|
|
116
|
+
let parsed;
|
|
117
|
+
try {
|
|
118
|
+
parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return { states: {} };
|
|
122
|
+
}
|
|
123
|
+
if (isProviderState(parsed))
|
|
124
|
+
return { states: {}, legacy: parsed };
|
|
125
|
+
const raw = parsed !== null && typeof parsed === 'object' ? Reflect.get(parsed, 'states') : undefined;
|
|
126
|
+
const states = {};
|
|
127
|
+
if (raw !== null && typeof raw === 'object') {
|
|
128
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
129
|
+
if (isProviderState(value))
|
|
130
|
+
states[key] = value;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { states };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Write one identity's cached state (atomic rename), keeping every other
|
|
137
|
+
* identity's state. Never throws.
|
|
138
|
+
*
|
|
139
|
+
* @param state - State to store.
|
|
140
|
+
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
141
|
+
* @param key - State key ({@link providerStateKey}). Default: `<baseUrl>#<keyHash>`.
|
|
142
|
+
*/
|
|
143
|
+
export function writeProviderState(state, path = defaultProviderStatePath(), key = `${state.baseUrl}#${state.keyHash}`) {
|
|
144
|
+
try {
|
|
145
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
146
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
147
|
+
const states = { ...readStateFile(path).states, [key]: state };
|
|
148
|
+
writeFileSync(tmp, JSON.stringify({ states }), 'utf-8');
|
|
149
|
+
renameSync(tmp, path);
|
|
150
|
+
memo = null;
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
/* best effort: the next status run detects again */
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
let memo = null;
|
|
157
|
+
/**
|
|
158
|
+
* Capabilities the client may use for a provider URL and key, memoised per
|
|
159
|
+
* process for a minute so the hot path does not read the file on every
|
|
160
|
+
* decision.
|
|
161
|
+
*
|
|
162
|
+
* @param identity - The configured base URL and API key.
|
|
163
|
+
* @param now - Clock, epoch ms.
|
|
164
|
+
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
165
|
+
* @returns Detected capabilities, or `null` (→ the Jev minimum).
|
|
166
|
+
*/
|
|
167
|
+
export function cachedCapabilities(identity, now = Date.now(), path = defaultProviderStatePath()) {
|
|
168
|
+
const keyHash = providerKeyHash(identity.apiKey);
|
|
169
|
+
const stateKey = providerStateKey(identity);
|
|
170
|
+
if (memo &&
|
|
171
|
+
memo.stateKey === stateKey &&
|
|
172
|
+
memo.baseUrl === identity.baseUrl &&
|
|
173
|
+
memo.keyHash === keyHash &&
|
|
174
|
+
now - memo.at < MEMO_MS) {
|
|
175
|
+
return memo.caps;
|
|
176
|
+
}
|
|
177
|
+
const caps = readProviderState(identity, path)?.capabilities ?? null;
|
|
178
|
+
memo = { stateKey, baseUrl: identity.baseUrl, keyHash, at: now, caps };
|
|
179
|
+
return caps;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Retry interval after a transient detection failure with nothing cached
|
|
183
|
+
* (T12715): the result is not written (it would pin a partial or failed
|
|
184
|
+
* detection for {@link USAGE_REFRESH_MS}), so only this in-process wait
|
|
185
|
+
* spaces out the retries.
|
|
186
|
+
*/
|
|
187
|
+
export const TRANSIENT_DETECTION_RETRY_MS = 30_000;
|
|
188
|
+
/** Epoch ms before which this process does not re-detect, per identity. */
|
|
189
|
+
const retryAt = new Map();
|
|
190
|
+
/**
|
|
191
|
+
* Return the cached provider state, re-detecting it first when it is absent
|
|
192
|
+
* or older than {@link USAGE_REFRESH_MS} (or when `force` is set).
|
|
193
|
+
*
|
|
194
|
+
* At most one detection runs per identity per {@link USAGE_REFRESH_MS}: the
|
|
195
|
+
* result is written even when detection failed, and a per-process attempt
|
|
196
|
+
* memo stops a retry loop when the file cannot be written. A transient
|
|
197
|
+
* failure (network, timeout, 5xx, 429 — of either probe) keeps the previous
|
|
198
|
+
* capabilities and usage instead of downgrading them. With nothing cached, a
|
|
199
|
+
* transient failure is NOT written: its result serves this process (via the
|
|
200
|
+
* in-process memo) and detection is retried after
|
|
201
|
+
* {@link TRANSIENT_DETECTION_RETRY_MS}. Never throws.
|
|
202
|
+
*
|
|
203
|
+
* @param connection - Base URL and API key of the configured provider.
|
|
204
|
+
* @param signal - Aborts the detection probes.
|
|
205
|
+
* @param opts - Transport, clock, state path, force.
|
|
206
|
+
* @returns The fresh or cached state, or `null` when detection was skipped
|
|
207
|
+
* (attempted recently in this process) and nothing is cached.
|
|
208
|
+
*/
|
|
209
|
+
export async function refreshProviderState(connection, signal, opts = {}) {
|
|
210
|
+
const now = opts.now ?? Date.now;
|
|
211
|
+
const cached = readProviderState(connection, opts.path);
|
|
212
|
+
if (opts.force !== true && cached && now() - cached.detectedAt < USAGE_REFRESH_MS) {
|
|
213
|
+
return cached;
|
|
214
|
+
}
|
|
215
|
+
const keyHash = providerKeyHash(connection.apiKey);
|
|
216
|
+
const stateKey = providerStateKey(connection);
|
|
217
|
+
const attemptKey = `${stateKey}\u0000${connection.baseUrl}\u0000${keyHash}`;
|
|
218
|
+
const notBefore = retryAt.get(attemptKey);
|
|
219
|
+
if (opts.force !== true && notBefore !== undefined && now() < notBefore) {
|
|
220
|
+
return cached;
|
|
221
|
+
}
|
|
222
|
+
retryAt.set(attemptKey, now() + USAGE_REFRESH_MS);
|
|
223
|
+
const detected = await detectJevCapabilities(connection, signal, {
|
|
224
|
+
...(opts.fetch ? { fetch: opts.fetch } : {}),
|
|
225
|
+
});
|
|
226
|
+
const transient = detected.error !== undefined && TRANSIENT_DETECTION_ERRORS.has(detected.error.kind);
|
|
227
|
+
if (transient && !cached) {
|
|
228
|
+
// Nothing to keep, and a failed or partial detection (e.g. /v1/usage
|
|
229
|
+
// answered but /v1/templates timed out) is not "capability absent": do not
|
|
230
|
+
// write it for 10 minutes. Use it in this process only, and retry soon.
|
|
231
|
+
retryAt.set(attemptKey, now() + TRANSIENT_DETECTION_RETRY_MS);
|
|
232
|
+
memo = {
|
|
233
|
+
stateKey,
|
|
234
|
+
baseUrl: connection.baseUrl,
|
|
235
|
+
keyHash,
|
|
236
|
+
at: now(),
|
|
237
|
+
caps: detected.capabilities,
|
|
238
|
+
};
|
|
239
|
+
return {
|
|
240
|
+
baseUrl: connection.baseUrl,
|
|
241
|
+
keyHash,
|
|
242
|
+
detectedAt: now(),
|
|
243
|
+
capabilities: detected.capabilities,
|
|
244
|
+
...(detected.usage ? { usage: detected.usage } : {}),
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
const kept = transient ? cached : undefined;
|
|
248
|
+
const state = {
|
|
249
|
+
baseUrl: connection.baseUrl,
|
|
250
|
+
keyHash,
|
|
251
|
+
detectedAt: now(),
|
|
252
|
+
capabilities: kept?.capabilities ?? detected.capabilities,
|
|
253
|
+
...(detected.usage ? { usage: detected.usage } : kept?.usage ? { usage: kept.usage } : {}),
|
|
254
|
+
};
|
|
255
|
+
writeProviderState(state, opts.path, stateKey);
|
|
256
|
+
return state;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Clear the in-process memo and detection-attempt memo. Tests only.
|
|
260
|
+
*
|
|
261
|
+
* @internal
|
|
262
|
+
*/
|
|
263
|
+
export function _resetProviderStateMemoForTest() {
|
|
264
|
+
memo = null;
|
|
265
|
+
retryAt.clear();
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=provider-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-state.js","sourceRoot":"","sources":["../../src/decide/provider-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @task T12490
|
|
15
15
|
* @epic T12486
|
|
16
16
|
*/
|
|
17
|
-
import type { DecisionOutcome, DecisionProviderConfig, DecisionRequest } from '@cleocode/contracts';
|
|
17
|
+
import type { DecisionBatchItem, DecisionOutcome, DecisionProviderCapabilities, DecisionProviderConfig, DecisionProviderUsage, DecisionRequest } from '@cleocode/contracts';
|
|
18
18
|
/**
|
|
19
19
|
* Connection settings for a key-authenticated decision provider: the base URL
|
|
20
20
|
* from the contract plus the API key. The key is sent as a bearer token and is
|
|
@@ -28,6 +28,11 @@ export interface DecisionProviderConnection extends DecisionProviderConfig {
|
|
|
28
28
|
* sent without a model and the provider's own default (if any) applies.
|
|
29
29
|
*/
|
|
30
30
|
readonly model?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Profile id (`<provider>/<name>`, T12733) the connection was resolved
|
|
33
|
+
* from, when known. Keys the cached provider state per profile; never sent.
|
|
34
|
+
*/
|
|
35
|
+
readonly profile?: string;
|
|
31
36
|
}
|
|
32
37
|
/**
|
|
33
38
|
* A typed-decision backend.
|
|
@@ -45,26 +50,47 @@ export interface DecisionProvider {
|
|
|
45
50
|
* @returns An outcome whose `answers` cover every question in `req`.
|
|
46
51
|
*/
|
|
47
52
|
decide(req: DecisionRequest, signal: AbortSignal): Promise<DecisionOutcome>;
|
|
53
|
+
/**
|
|
54
|
+
* What the provider supports beyond the Jev minimum. Absent → the Jev
|
|
55
|
+
* minimum (`JEV_MINIMUM_CAPABILITIES`). The client calls an optional method
|
|
56
|
+
* below only when both the method and its capability exist (T12664).
|
|
57
|
+
*/
|
|
58
|
+
capabilities?(): DecisionProviderCapabilities;
|
|
59
|
+
/**
|
|
60
|
+
* Execute several requests as one provider call (`capabilities().batch`).
|
|
61
|
+
* Resolves with one item per request, in order; a failed item carries its
|
|
62
|
+
* error kind instead of throwing. Throws a {@link DecisionProviderError}
|
|
63
|
+
* only when the call as a whole failed.
|
|
64
|
+
*/
|
|
65
|
+
decideBatch?(reqs: readonly DecisionRequest[], signal: AbortSignal): Promise<readonly DecisionBatchItem[]>;
|
|
66
|
+
/** Account usage and balance (`capabilities().usage`). */
|
|
67
|
+
usage?(signal: AbortSignal): Promise<DecisionProviderUsage>;
|
|
68
|
+
/** A built-in template decision (`capabilities().templates`). Reserved; no site uses it yet. */
|
|
69
|
+
decideTemplate?(template: string, text: string, signal: AbortSignal): Promise<DecisionOutcome>;
|
|
48
70
|
}
|
|
49
71
|
/**
|
|
50
72
|
* Why a provider call failed. Drives the client's fallback reason and, for
|
|
51
73
|
* `rate_limited`, the shared budget cool-down.
|
|
52
74
|
*
|
|
53
|
-
* - `unauthorized` — 401: bad or missing key.
|
|
75
|
+
* - `unauthorized` — 401, or a 403 that is not a key limit: bad or missing key.
|
|
54
76
|
* - `insufficient_credits` — 402: the account is out of credit.
|
|
77
|
+
* - `key_limit_exceeded` — 403 `key_limit_exceeded`: the key's monthly decision
|
|
78
|
+
* limit is reached. The key is fine; decisions stop until the UTC month ends.
|
|
55
79
|
* - `rate_limited` — 429: slow down; see `retryAfterMs`.
|
|
80
|
+
* - `overloaded` — 529 or 503: the provider is overloaded or unavailable;
|
|
81
|
+
* a short circuit-breaker trip honouring `retryAfterMs`.
|
|
56
82
|
* - `invalid_request` — 422 or another 4xx: the provider rejected the request.
|
|
57
|
-
* - `server_error` — 5xx.
|
|
83
|
+
* - `server_error` — any other 5xx.
|
|
58
84
|
* - `network` — the request never produced an HTTP response.
|
|
59
85
|
* - `aborted` — the caller's signal fired (timeout).
|
|
60
86
|
* - `invalid_response` — a 2xx whose body did not match the expected shape.
|
|
61
87
|
*/
|
|
62
|
-
export type DecisionProviderErrorKind = 'unauthorized' | 'insufficient_credits' | 'rate_limited' | 'invalid_request' | 'server_error' | 'network' | 'aborted' | 'invalid_response';
|
|
88
|
+
export type DecisionProviderErrorKind = 'unauthorized' | 'insufficient_credits' | 'key_limit_exceeded' | 'rate_limited' | 'overloaded' | 'invalid_request' | 'server_error' | 'network' | 'aborted' | 'invalid_response';
|
|
63
89
|
/** Construction options for {@link DecisionProviderError}. */
|
|
64
90
|
export interface DecisionProviderErrorOptions {
|
|
65
91
|
/** HTTP status, when the failure came from an HTTP response. */
|
|
66
92
|
readonly status?: number;
|
|
67
|
-
/** Server-requested back-off in milliseconds (
|
|
93
|
+
/** Server-requested back-off in milliseconds (`retry-after` on 429/503/529). */
|
|
68
94
|
readonly retryAfterMs?: number;
|
|
69
95
|
/** Underlying cause, for diagnostics. */
|
|
70
96
|
readonly cause?: Error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/decide/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/decide/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5E;;;;OAIG;IACH,YAAY,CAAC,IAAI,4BAA4B,CAAC;IAC9C;;;;;OAKG;IACH,WAAW,CAAC,CACV,IAAI,EAAE,SAAS,eAAe,EAAE,EAChC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IACzC,0DAA0D;IAC1D,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5D,gGAAgG;IAChG,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAChG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,yBAAyB,GACjC,cAAc,GACd,sBAAsB,GACtB,oBAAoB,GACpB,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,SAAS,GACT,SAAS,GACT,kBAAkB,CAAC;AAEvB,8DAA8D;AAC9D,MAAM,WAAW,4BAA4B;IAC3C,gEAAgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;gBAED,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,4BAAiC;CAQ1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/decide/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/decide/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA4GH;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,8BAA8B;IACrB,IAAI,CAA4B;IACzC,+BAA+B;IACtB,MAAM,CAAU;IACzB,6DAA6D;IACpD,YAAY,CAAU;IAE/B;;;;OAIG;IACH,YACE,IAA+B,EAC/B,OAAe,EACf,OAAqC,EAAE;QAEvC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC7E,CAAC;CACF"}
|