@cleocode/core 2026.9.23 → 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 +2 -2
- 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/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 +35 -1
- package/dist/decide/client.d.ts.map +1 -1
- package/dist/decide/client.js +124 -30
- package/dist/decide/client.js.map +1 -1
- package/dist/decide/credentials.d.ts +177 -17
- package/dist/decide/credentials.d.ts.map +1 -1
- package/dist/decide/credentials.js +505 -41
- package/dist/decide/credentials.js.map +1 -1
- package/dist/decide/index.d.ts +8 -8
- package/dist/decide/index.d.ts.map +1 -1
- package/dist/decide/index.js +8 -8
- package/dist/decide/index.js.map +1 -1
- package/dist/decide/jev-wire.d.ts +25 -19
- package/dist/decide/jev-wire.d.ts.map +1 -1
- package/dist/decide/jev-wire.js +56 -31
- package/dist/decide/jev-wire.js.map +1 -1
- package/dist/decide/operations.d.ts +63 -12
- package/dist/decide/operations.d.ts.map +1 -1
- package/dist/decide/operations.js +116 -58
- package/dist/decide/operations.js.map +1 -1
- package/dist/decide/provider-state.d.ts +85 -12
- package/dist/decide/provider-state.d.ts.map +1 -1
- package/dist/decide/provider-state.js +154 -21
- package/dist/decide/provider-state.js.map +1 -1
- package/dist/decide/provider.d.ts +5 -0
- package/dist/decide/provider.d.ts.map +1 -1
- package/dist/decide/provider.js.map +1 -1
- package/dist/decide/providers.d.ts +15 -2
- package/dist/decide/providers.d.ts.map +1 -1
- package/dist/decide/providers.js +22 -6
- package/dist/decide/providers.js.map +1 -1
- package/dist/decide/sites/registry.d.ts +22 -0
- package/dist/decide/sites/registry.d.ts.map +1 -1
- package/dist/decide/sites/registry.js +23 -0
- package/dist/decide/sites/registry.js.map +1 -1
- package/dist/decide/wizard.d.ts +12 -4
- package/dist/decide/wizard.d.ts.map +1 -1
- package/dist/decide/wizard.js +79 -26
- package/dist/decide/wizard.js.map +1 -1
- 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-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 +2928 -1053
- 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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.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 +5 -4
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -4
- 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 +3017 -1142
- 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/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/learnings.d.ts +6 -6
- package/dist/memory/patterns.d.ts +4 -4
- 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/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/orchestrate/pivot.d.ts +4 -0
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +75 -12
- package/dist/orchestrate/pivot.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 +6 -3
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/spawn-prompt.js +1 -1
- package/dist/orchestration/spawn-prompt.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 +70 -3
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +154 -15
- package/dist/project-scope.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/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 +3027 -1152
- 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 +10 -10
- 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 +103 -26
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +166 -37
- 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.map +1 -1
- package/dist/setup/config-json-merge.js +1 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +4 -2
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +6 -2
- package/dist/setup/index.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/wizard.d.ts +1 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- 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/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/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-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/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/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 +73 -18
- package/dist/store/credential-transfer.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/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/migration-manager.d.ts +61 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +102 -4
- package/dist/store/migration-manager.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/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 +10 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +1 -0
- 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/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/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +245 -47
- package/dist/store/sqlite-data-accessor.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 +52 -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 +13 -4
- package/dist/store/worktree-build-guard.d.ts.map +1 -1
- package/dist/store/worktree-build-guard.js +21 -10
- package/dist/store/worktree-build-guard.js.map +1 -1
- package/dist/store/worktree-isolation-guard.d.ts +121 -10
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +155 -34
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/system/backup.d.ts +7 -0
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +5 -0
- 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 +1 -1
- package/dist/task-tools/index.d.ts.map +1 -1
- package/dist/task-tools/index.js +1 -1
- package/dist/task-tools/index.js.map +1 -1
- package/dist/task-tools/score-task-priority.d.ts +38 -0
- package/dist/task-tools/score-task-priority.d.ts.map +1 -1
- package/dist/task-tools/score-task-priority.js +51 -0
- 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/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +3 -4
- package/dist/tasks/analyze.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 +59 -3
- package/dist/tasks/change-set.js.map +1 -1
- 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 +560 -59
- package/dist/tasks/component-pr.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 +20 -1
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +10 -2
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap-ops.d.ts +19 -10
- package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
- package/dist/tasks/engine-wrap-ops.js +38 -10
- package/dist/tasks/engine-wrap-ops.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/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +16 -60
- package/dist/tasks/plan.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 +25 -2
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +32 -13
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +7 -5
- package/dist/tasks/update.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 +51 -8
- 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 +23 -13
- package/schemas/project-info.schema.json +10 -4
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +3 -3
- package/templates/cleo-gitignore +11 -0
- package/templates/workflows/release-prepare.yml.tmpl +156 -10
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @task T12491
|
|
9
9
|
* @epic T12486
|
|
10
10
|
*/
|
|
11
|
-
import { type DecisionAnswer, type DecisionProviderCapabilities, type DecisionProviderKind, type DecisionProviderUsage } from '@cleocode/contracts';
|
|
11
|
+
import { type DecideProfileListResult, type DecideProviderState as DecideProviderStateContract, type DecisionAnswer, type DecisionProviderCapabilities, type DecisionProviderKind, type DecisionProviderUsage } from '@cleocode/contracts';
|
|
12
12
|
import { type DecideCredentialsSummary, type SealedDecideConnection } from './credentials.js';
|
|
13
13
|
import { type SpendLedger, type SpendLedgerHealth, type SpendResetOptions, type SpendResetReceipt } from './spend.js';
|
|
14
14
|
/** Default deadline for the `GET /v1/models` probe, ms. */
|
|
@@ -25,7 +25,7 @@ export declare const DEFAULT_DECIDE_ASK_TIMEOUT_MS = 10000;
|
|
|
25
25
|
* - `unconfigured` — no valid base URL + key stored.
|
|
26
26
|
* - `unreachable` — network failure, timeout, or any other HTTP status.
|
|
27
27
|
*/
|
|
28
|
-
export type DecideProviderState =
|
|
28
|
+
export type DecideProviderState = DecideProviderStateContract;
|
|
29
29
|
/** Month-to-date spend against the CLEO cap (D11159). */
|
|
30
30
|
export interface DecideSpendSummary {
|
|
31
31
|
/** UTC month, `YYYY-MM`. */
|
|
@@ -45,6 +45,8 @@ export interface DecideSpendSummary {
|
|
|
45
45
|
export interface DecideProbeResult {
|
|
46
46
|
/** Reachability verdict. */
|
|
47
47
|
readonly state: DecideProviderState;
|
|
48
|
+
/** Profile id probed (`<provider>/<name>`, T12733), when known. */
|
|
49
|
+
readonly profile?: string;
|
|
48
50
|
/** Configured base URL. */
|
|
49
51
|
readonly baseUrl?: string;
|
|
50
52
|
/** Masked key preview. */
|
|
@@ -111,18 +113,31 @@ export declare function probeDecideProvider(opts?: DecideProbeOptions): Promise<
|
|
|
111
113
|
/** Input for {@link configureDecide}. */
|
|
112
114
|
export interface DecideConfigureInput {
|
|
113
115
|
/**
|
|
114
|
-
* Provider kind. Omitted → the
|
|
115
|
-
* else inferred from `baseUrl` (the layahost
|
|
116
|
-
* `jev`), else
|
|
116
|
+
* Provider kind. Omitted → the provider of a `<provider>/<name>` profile,
|
|
117
|
+
* else inferred from an override `baseUrl` (the layahost origin →
|
|
118
|
+
* `layahost`, any other → `jev`), else the active profile's provider, else
|
|
119
|
+
* `layahost`.
|
|
117
120
|
*/
|
|
118
121
|
readonly provider?: DecisionProviderKind;
|
|
119
122
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
123
|
+
* `default` (the provider's preset URL, resolved at call time) or an
|
|
124
|
+
* override URL. Omitted → the profile's stored setting, else `default`.
|
|
122
125
|
*/
|
|
123
126
|
readonly baseUrl?: string;
|
|
124
|
-
/** API key. Omitted → the stored key is kept. */
|
|
127
|
+
/** API key. Omitted → the profile's stored key is kept. */
|
|
125
128
|
readonly apiKey?: string;
|
|
129
|
+
/**
|
|
130
|
+
* Profile to add or update (T12733): `<provider>/<name>` or a bare name;
|
|
131
|
+
* other profiles are kept. Omitted → the active profile when it has the
|
|
132
|
+
* same provider, else `<provider>/default`.
|
|
133
|
+
*/
|
|
134
|
+
readonly profile?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Make the profile active. Omitted → true for the first profile or one that
|
|
137
|
+
* is already active, else false (adding a second key never silently
|
|
138
|
+
* switches everyday decisions).
|
|
139
|
+
*/
|
|
140
|
+
readonly activate?: boolean;
|
|
126
141
|
/**
|
|
127
142
|
* Default model. Omitted → the stored model when the URL is unchanged;
|
|
128
143
|
* otherwise the preset default (`layahost`), else the first model the
|
|
@@ -136,6 +151,8 @@ export interface DecideConfigureInput {
|
|
|
136
151
|
}
|
|
137
152
|
/** Result of {@link configureDecide}. */
|
|
138
153
|
export interface DecideConfigureResult extends DecideCredentialsSummary {
|
|
154
|
+
/** Whether the configured profile is now the active one. */
|
|
155
|
+
readonly active: boolean;
|
|
139
156
|
/** Where the stored model came from. */
|
|
140
157
|
readonly modelSource: 'flag' | 'stored' | 'preset' | 'provider-listing' | 'none';
|
|
141
158
|
/** Reachability verdict of the probe run after saving. */
|
|
@@ -146,7 +163,7 @@ export interface DecideConfigureResult extends DecideCredentialsSummary {
|
|
|
146
163
|
readonly warning?: string;
|
|
147
164
|
}
|
|
148
165
|
/**
|
|
149
|
-
* Store
|
|
166
|
+
* Store a profile's settings, merging omitted values with the stored ones,
|
|
150
167
|
* then probe the provider and re-detect its capabilities so its extensions
|
|
151
168
|
* apply immediately.
|
|
152
169
|
*
|
|
@@ -161,12 +178,38 @@ export interface DecideConfigureResult extends DecideCredentialsSummary {
|
|
|
161
178
|
* A URL whose host differs from the stored one must come with a fresh key:
|
|
162
179
|
* the stored key is never re-used (or sent in the model probe) for a new host.
|
|
163
180
|
*
|
|
164
|
-
*
|
|
181
|
+
* Profiles (T12733): the settings go to one profile, `<provider>/<name>`
|
|
182
|
+
* (see {@link DecideConfigureInput.profile}); every other profile is kept,
|
|
183
|
+
* and a new profile needs its own key. The URL is stored as `default` unless
|
|
184
|
+
* overridden. The post-save probe targets that profile, active or not.
|
|
185
|
+
*
|
|
186
|
+
* @param input - Provider, URL, key, optional model, profile and activation.
|
|
165
187
|
* @returns Secret-free summary plus the model's provenance and the probe verdict.
|
|
166
|
-
* @throws {DecideCredentialsError} On an invalid URL
|
|
167
|
-
*
|
|
188
|
+
* @throws {DecideCredentialsError} On an invalid URL or profile, a provider
|
|
189
|
+
* without a preset URL and no override, a blank key, an invalid model name,
|
|
190
|
+
* a new profile without a key, or a host change without a fresh key.
|
|
168
191
|
*/
|
|
169
192
|
export declare function configureDecide(input: DecideConfigureInput): Promise<DecideConfigureResult>;
|
|
193
|
+
/** Options for {@link listDecideProfilesReport}. */
|
|
194
|
+
export interface DecideProfilesReportOptions {
|
|
195
|
+
/** Probe each profile's `GET /v1/models`. Default false (no network). */
|
|
196
|
+
readonly probe?: boolean;
|
|
197
|
+
/** `fetch` for the probes; tests inject a stub. */
|
|
198
|
+
readonly fetch?: typeof fetch;
|
|
199
|
+
/** Deadline per probe, ms. Default {@link DEFAULT_DECIDE_PROBE_TIMEOUT_MS}. */
|
|
200
|
+
readonly timeoutMs?: number;
|
|
201
|
+
/** Provider-state file for the probes. Default: `<cleoHome>/decide/provider-state.json`. */
|
|
202
|
+
readonly providerStatePath?: string;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* `cleo decide profiles`: every stored profile with the active one marked and
|
|
206
|
+
* keys masked; with `probe`, each profile's reachability (probed in parallel).
|
|
207
|
+
* Never throws.
|
|
208
|
+
*
|
|
209
|
+
* @param opts - Whether to probe, plus the injectable `fetch` and deadline.
|
|
210
|
+
* @returns The secret-free profile list.
|
|
211
|
+
*/
|
|
212
|
+
export declare function listDecideProfilesReport(opts?: DecideProfilesReportOptions): Promise<DecideProfileListResult>;
|
|
170
213
|
/**
|
|
171
214
|
* Remove the stored settings (and rotated backups of them).
|
|
172
215
|
*
|
|
@@ -185,9 +228,17 @@ export interface DecideAskInput {
|
|
|
185
228
|
readonly timeoutMs?: number;
|
|
186
229
|
/** Project root for the audit line. Default: the resolved project root. */
|
|
187
230
|
readonly projectRoot?: string;
|
|
231
|
+
/** Profile to ask through (T12733), `<provider>/<name>`. Default: the active profile. */
|
|
232
|
+
readonly profile?: string;
|
|
188
233
|
}
|
|
189
234
|
/** Result of {@link askDecideDebug}. */
|
|
190
235
|
export interface DecideAskResult {
|
|
236
|
+
/** The yes/no question that was asked (so a human render can show it). */
|
|
237
|
+
readonly question?: string;
|
|
238
|
+
/** The state that was judged (echoed for the human render). */
|
|
239
|
+
readonly state?: string;
|
|
240
|
+
/** Id of the profile asked through, when one was configured (T12733). */
|
|
241
|
+
readonly profile?: string;
|
|
191
242
|
/** The typed answer. */
|
|
192
243
|
readonly answer: DecisionAnswer;
|
|
193
244
|
/** `provider`, `cache` or `fallback`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/decide/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/decide/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
* @task T12491
|
|
9
9
|
* @epic T12486
|
|
10
10
|
*/
|
|
11
|
-
import { JEV_MINIMUM_CAPABILITIES, } from '@cleocode/contracts';
|
|
11
|
+
import { DECIDE_DEFAULT_PROFILE_NAME, DECIDE_PROFILE_DEFAULT_URL, JEV_MINIMUM_CAPABILITIES, } from '@cleocode/contracts';
|
|
12
12
|
import { getProjectRoot } from '../paths.js';
|
|
13
13
|
import { createJsonlDecisionAudit, } from './audit.js';
|
|
14
14
|
import { decide } from './client.js';
|
|
15
|
-
import { clearDecideCredentials, DecideCredentialsError, describeDecideCredentials, loadDecideConnection, sameDecideHost, saveDecideCredentials, } from './credentials.js';
|
|
16
|
-
import {
|
|
15
|
+
import { clearDecideCredentials, DecideCredentialsError, decideProfileId, describeDecideCredentials, describeDecideProfile, isValidDecideProfileName, listDecideProfiles, loadDecideConnection, loadDecideProfile, parseDecideProfileRef, sameDecideHost, saveDecideCredentials, } from './credentials.js';
|
|
16
|
+
import { listJevModels } from './jev-wire.js';
|
|
17
17
|
import { DecisionProviderError } from './provider.js';
|
|
18
|
-
import {
|
|
19
|
-
import { DECISION_PROVIDER_PRESETS, inferDecisionProviderKind } from './providers.js';
|
|
18
|
+
import { refreshProviderState } from './provider-state.js';
|
|
19
|
+
import { DECISION_PROVIDER_PRESETS, inferDecisionProviderKind, presetBaseUrl, } from './providers.js';
|
|
20
20
|
import { DECIDE_ASK_DECISION_SITE, DECISION_SITES } from './sites/registry.js';
|
|
21
21
|
import { createFileSpendLedger, DEFAULT_MONTHLY_SPEND_CAP_MICROS, inspectSpendLedger, MONTHLY_SPEND_CAP_KEY, resetSpendLedger, } from './spend.js';
|
|
22
22
|
/** Default deadline for the `GET /v1/models` probe, ms. */
|
|
@@ -105,6 +105,7 @@ export async function probeDecideProvider(opts = {}) {
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
const base = {
|
|
108
|
+
...(sealed.profile ? { profile: sealed.profile } : {}),
|
|
108
109
|
baseUrl: sealed.baseUrl,
|
|
109
110
|
keyPreview: sealed.keyPreview,
|
|
110
111
|
...(sealed.model ? { model: sealed.model } : {}),
|
|
@@ -116,24 +117,14 @@ export async function probeDecideProvider(opts = {}) {
|
|
|
116
117
|
const started = performance.now();
|
|
117
118
|
const signal = AbortSignal.timeout(opts.timeoutMs ?? DEFAULT_DECIDE_PROBE_TIMEOUT_MS);
|
|
118
119
|
// Capabilities + usage: reuse the cached read unless it is older than 10 minutes.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
128
|
-
state = {
|
|
129
|
-
baseUrl: sealed.baseUrl,
|
|
130
|
-
keyHash: providerKeyHash(identity.apiKey),
|
|
131
|
-
detectedAt: now(),
|
|
132
|
-
capabilities: detected.capabilities,
|
|
133
|
-
...(detected.usage ? { usage: detected.usage } : {}),
|
|
134
|
-
};
|
|
135
|
-
writeProviderState(state, opts.providerStatePath);
|
|
136
|
-
}
|
|
120
|
+
// Shared with decideBatch's lazy detection: at most one detection per
|
|
121
|
+
// identity per USAGE_REFRESH_MS, transient failures keep the old state.
|
|
122
|
+
const state = await refreshProviderState(sealed.connection(), signal, {
|
|
123
|
+
...(opts.fetch ? { fetch: opts.fetch } : {}),
|
|
124
|
+
now,
|
|
125
|
+
...(opts.providerStatePath !== undefined ? { path: opts.providerStatePath } : {}),
|
|
126
|
+
force: opts.refreshCapabilities === true,
|
|
127
|
+
});
|
|
137
128
|
const extras = {
|
|
138
129
|
capabilities: state?.capabilities ?? JEV_MINIMUM_CAPABILITIES,
|
|
139
130
|
...(state?.usage
|
|
@@ -170,31 +161,34 @@ export async function probeDecideProvider(opts = {}) {
|
|
|
170
161
|
};
|
|
171
162
|
}
|
|
172
163
|
}
|
|
173
|
-
/**
|
|
174
|
-
function
|
|
175
|
-
|
|
176
|
-
|
|
164
|
+
/** The profile {@link configureDecide} writes. */
|
|
165
|
+
function configureTarget(input) {
|
|
166
|
+
const raw = input.profile?.trim();
|
|
167
|
+
if (raw?.includes('/')) {
|
|
168
|
+
const ref = parseDecideProfileRef(raw);
|
|
169
|
+
if (!ref) {
|
|
170
|
+
throw new DecideCredentialsError(`invalid profile '${raw}' (use <provider>/<name>, e.g. layahost/work)`);
|
|
171
|
+
}
|
|
172
|
+
if (input.provider && input.provider !== ref.provider) {
|
|
173
|
+
throw new DecideCredentialsError(`profile '${ref.id}' belongs to ${ref.provider}, not ${input.provider}`);
|
|
174
|
+
}
|
|
175
|
+
return ref;
|
|
176
|
+
}
|
|
177
|
+
const active = listDecideProfiles().active;
|
|
178
|
+
const activeRef = active ? parseDecideProfileRef(active) : null;
|
|
177
179
|
const url = input.baseUrl?.trim();
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
if (explicit)
|
|
188
|
-
return explicit;
|
|
189
|
-
if (stored && stored.provider === provider)
|
|
190
|
-
return stored.baseUrl;
|
|
191
|
-
const preset = DECISION_PROVIDER_PRESETS[provider];
|
|
192
|
-
if (preset.defaultBaseUrl)
|
|
193
|
-
return preset.defaultBaseUrl;
|
|
194
|
-
throw new DecideCredentialsError(`the ${provider} provider needs a base URL: pass --url https://your-provider.example (https, or http only for localhost)`);
|
|
180
|
+
const provider = input.provider ??
|
|
181
|
+
(url && url !== DECIDE_PROFILE_DEFAULT_URL
|
|
182
|
+
? inferDecisionProviderKind(url)
|
|
183
|
+
: (activeRef?.provider ?? 'layahost'));
|
|
184
|
+
const name = raw || (activeRef?.provider === provider ? activeRef.name : DECIDE_DEFAULT_PROFILE_NAME);
|
|
185
|
+
if (!isValidDecideProfileName(name)) {
|
|
186
|
+
throw new DecideCredentialsError(`invalid profile name '${name}' (use 1-32 lowercase letters, digits or -, starting and ending with a letter or digit)`);
|
|
187
|
+
}
|
|
188
|
+
return { provider, name, id: decideProfileId(provider, name) };
|
|
195
189
|
}
|
|
196
190
|
/**
|
|
197
|
-
* Store
|
|
191
|
+
* Store a profile's settings, merging omitted values with the stored ones,
|
|
198
192
|
* then probe the provider and re-detect its capabilities so its extensions
|
|
199
193
|
* apply immediately.
|
|
200
194
|
*
|
|
@@ -209,21 +203,37 @@ function resolveBaseUrl(input, provider, stored) {
|
|
|
209
203
|
* A URL whose host differs from the stored one must come with a fresh key:
|
|
210
204
|
* the stored key is never re-used (or sent in the model probe) for a new host.
|
|
211
205
|
*
|
|
212
|
-
*
|
|
206
|
+
* Profiles (T12733): the settings go to one profile, `<provider>/<name>`
|
|
207
|
+
* (see {@link DecideConfigureInput.profile}); every other profile is kept,
|
|
208
|
+
* and a new profile needs its own key. The URL is stored as `default` unless
|
|
209
|
+
* overridden. The post-save probe targets that profile, active or not.
|
|
210
|
+
*
|
|
211
|
+
* @param input - Provider, URL, key, optional model, profile and activation.
|
|
213
212
|
* @returns Secret-free summary plus the model's provenance and the probe verdict.
|
|
214
|
-
* @throws {DecideCredentialsError} On an invalid URL
|
|
215
|
-
*
|
|
213
|
+
* @throws {DecideCredentialsError} On an invalid URL or profile, a provider
|
|
214
|
+
* without a preset URL and no override, a blank key, an invalid model name,
|
|
215
|
+
* a new profile without a key, or a host change without a fresh key.
|
|
216
216
|
*/
|
|
217
217
|
export async function configureDecide(input) {
|
|
218
|
-
const
|
|
219
|
-
const
|
|
220
|
-
const
|
|
218
|
+
const target = configureTarget(input);
|
|
219
|
+
const stored = loadDecideProfile(target.id);
|
|
220
|
+
const storedSetting = stored && describeDecideProfile(target.id).urlSource === 'override'
|
|
221
|
+
? stored.baseUrl
|
|
222
|
+
: DECIDE_PROFILE_DEFAULT_URL;
|
|
223
|
+
const urlSetting = input.baseUrl?.trim() || storedSetting;
|
|
224
|
+
const baseUrl = urlSetting === DECIDE_PROFILE_DEFAULT_URL ? presetBaseUrl(target.provider) : urlSetting;
|
|
225
|
+
if (!baseUrl) {
|
|
226
|
+
throw new DecideCredentialsError(`the ${target.provider} provider has no default URL: pass --url https://your-provider.example (https, or http only for localhost)`);
|
|
227
|
+
}
|
|
221
228
|
const freshKey = input.apiKey?.trim();
|
|
229
|
+
if (!freshKey && !stored) {
|
|
230
|
+
throw new DecideCredentialsError(`profile '${target.id}' has no stored key; pass --key-stdin (keys are never copied between profiles)`);
|
|
231
|
+
}
|
|
222
232
|
if (!freshKey && stored && !sameDecideHost(stored.baseUrl, baseUrl)) {
|
|
223
233
|
throw new DecideCredentialsError('changing the provider host requires a fresh key; pass --key-stdin (the stored key is never sent to a new host)');
|
|
224
234
|
}
|
|
225
235
|
const apiKey = freshKey || stored?.connection().apiKey || '';
|
|
226
|
-
const preset = DECISION_PROVIDER_PRESETS[provider];
|
|
236
|
+
const preset = DECISION_PROVIDER_PRESETS[target.provider];
|
|
227
237
|
const explicit = input.model?.trim();
|
|
228
238
|
let model;
|
|
229
239
|
let modelSource = 'none';
|
|
@@ -239,19 +249,25 @@ export async function configureDecide(input) {
|
|
|
239
249
|
model = preset.defaultModel;
|
|
240
250
|
modelSource = 'preset';
|
|
241
251
|
}
|
|
242
|
-
const
|
|
243
|
-
provider,
|
|
244
|
-
|
|
252
|
+
const settings = {
|
|
253
|
+
provider: target.provider,
|
|
254
|
+
profile: target.id,
|
|
255
|
+
baseUrl: urlSetting,
|
|
245
256
|
apiKey,
|
|
257
|
+
};
|
|
258
|
+
const saved = await saveDecideCredentials({
|
|
259
|
+
...settings,
|
|
246
260
|
...(model ? { model } : {}),
|
|
261
|
+
...(input.activate !== undefined ? { activate: input.activate } : {}),
|
|
247
262
|
});
|
|
248
263
|
const probe = await probeDecideProvider({
|
|
249
|
-
connection:
|
|
264
|
+
connection: loadDecideProfile(target.id),
|
|
250
265
|
fetch: input.fetch,
|
|
251
266
|
timeoutMs: input.timeoutMs,
|
|
252
267
|
refreshCapabilities: true,
|
|
253
268
|
});
|
|
254
269
|
const verdict = {
|
|
270
|
+
active: saved.activeProfile === target.id,
|
|
255
271
|
providerState: probe.state,
|
|
256
272
|
...(probe.capabilities ? { capabilities: probe.capabilities } : {}),
|
|
257
273
|
};
|
|
@@ -267,9 +283,45 @@ export async function configureDecide(input) {
|
|
|
267
283
|
warning: `No model stored (${why}). ${NO_MODEL_WARNING}`,
|
|
268
284
|
};
|
|
269
285
|
}
|
|
270
|
-
const withModel = await saveDecideCredentials({
|
|
286
|
+
const withModel = await saveDecideCredentials({
|
|
287
|
+
...settings,
|
|
288
|
+
model: first,
|
|
289
|
+
activate: verdict.active,
|
|
290
|
+
});
|
|
271
291
|
return { ...withModel, modelSource: 'provider-listing', ...verdict };
|
|
272
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* `cleo decide profiles`: every stored profile with the active one marked and
|
|
295
|
+
* keys masked; with `probe`, each profile's reachability (probed in parallel).
|
|
296
|
+
* Never throws.
|
|
297
|
+
*
|
|
298
|
+
* @param opts - Whether to probe, plus the injectable `fetch` and deadline.
|
|
299
|
+
* @returns The secret-free profile list.
|
|
300
|
+
*/
|
|
301
|
+
export async function listDecideProfilesReport(opts = {}) {
|
|
302
|
+
const list = listDecideProfiles();
|
|
303
|
+
if (opts.probe !== true)
|
|
304
|
+
return list;
|
|
305
|
+
const profiles = await Promise.all(list.profiles.map(async (summary) => {
|
|
306
|
+
const result = await probeDecideProvider({
|
|
307
|
+
connection: loadDecideProfile(summary.id),
|
|
308
|
+
spend: null,
|
|
309
|
+
...(opts.fetch ? { fetch: opts.fetch } : {}),
|
|
310
|
+
...(opts.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {}),
|
|
311
|
+
...(opts.providerStatePath !== undefined
|
|
312
|
+
? { providerStatePath: opts.providerStatePath }
|
|
313
|
+
: {}),
|
|
314
|
+
});
|
|
315
|
+
const probe = {
|
|
316
|
+
state: result.state,
|
|
317
|
+
...(result.httpStatus !== undefined ? { httpStatus: result.httpStatus } : {}),
|
|
318
|
+
...(result.latencyMs !== undefined ? { latencyMs: result.latencyMs } : {}),
|
|
319
|
+
...(result.detail ? { detail: result.detail } : {}),
|
|
320
|
+
};
|
|
321
|
+
return { ...summary, probe };
|
|
322
|
+
}));
|
|
323
|
+
return { ...list, profiles };
|
|
324
|
+
}
|
|
273
325
|
/**
|
|
274
326
|
* Remove the stored settings (and rotated backups of them).
|
|
275
327
|
*
|
|
@@ -313,7 +365,10 @@ function teeAudit(projectRoot) {
|
|
|
313
365
|
* @returns The typed answer with source, fallback reason, latency and cost.
|
|
314
366
|
*/
|
|
315
367
|
export async function askDecideDebug(input) {
|
|
316
|
-
const sealed = loadDecideConnection();
|
|
368
|
+
const sealed = input.profile ? loadDecideProfile(input.profile) : loadDecideConnection();
|
|
369
|
+
const profile = input.profile
|
|
370
|
+
? parseDecideProfileRef(input.profile)?.id
|
|
371
|
+
: (listDecideProfiles().active ?? undefined);
|
|
317
372
|
const audit = teeAudit(input.projectRoot);
|
|
318
373
|
const outcome = await decide(DECIDE_ASK_DECISION_SITE.id, { state: input.state, questions: { answer: { type: 'noul', criteria: input.question } } }, () => ({ answer: NEUTRAL_NOUL }), {
|
|
319
374
|
connection: sealed?.connection() ?? null,
|
|
@@ -323,6 +378,9 @@ export async function askDecideDebug(input) {
|
|
|
323
378
|
});
|
|
324
379
|
const reason = audit.last()?.fallbackReason;
|
|
325
380
|
return {
|
|
381
|
+
question: input.question,
|
|
382
|
+
state: input.state,
|
|
383
|
+
...(sealed && profile ? { profile } : {}),
|
|
326
384
|
answer: outcome.answers['answer'] ?? NEUTRAL_NOUL,
|
|
327
385
|
source: outcome.source,
|
|
328
386
|
...(reason ? { fallbackReason: reason } : {}),
|
|
@@ -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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"}
|
|
@@ -1,21 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Detected provider capabilities and the last usage read, cached
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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.
|
|
7
13
|
*
|
|
8
14
|
* Detection (`detectJevCapabilities`) calls `GET /v1/usage` and
|
|
9
15
|
* `GET /v1/templates`, both of which count toward the provider's rate limit,
|
|
10
|
-
* so
|
|
11
|
-
* {@link USAGE_REFRESH_MS}
|
|
12
|
-
*
|
|
13
|
-
*
|
|
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.
|
|
14
35
|
*
|
|
15
36
|
* @task T12664
|
|
37
|
+
* @task T12733
|
|
16
38
|
* @epic T12486
|
|
17
39
|
*/
|
|
18
40
|
import type { DecisionProviderCapabilities, DecisionProviderUsage } from '@cleocode/contracts';
|
|
41
|
+
import type { DecideFetch } from './transport.js';
|
|
19
42
|
/** Minimum interval between usage/capability refreshes: 10 minutes. */
|
|
20
43
|
export declare const USAGE_REFRESH_MS: number;
|
|
21
44
|
/** The provider identity a cached state belongs to. */
|
|
@@ -24,6 +47,8 @@ export interface ProviderStateIdentity {
|
|
|
24
47
|
readonly baseUrl: string;
|
|
25
48
|
/** API key; only its truncated hash is ever compared or stored. */
|
|
26
49
|
readonly apiKey: string;
|
|
50
|
+
/** Profile id (`<provider>/<name>`, T12733); keys the state when present. */
|
|
51
|
+
readonly profile?: string;
|
|
27
52
|
}
|
|
28
53
|
/**
|
|
29
54
|
* Non-reversible short identifier of an API key: the first
|
|
@@ -53,6 +78,14 @@ export interface ProviderState {
|
|
|
53
78
|
* @returns Absolute path.
|
|
54
79
|
*/
|
|
55
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;
|
|
56
89
|
/**
|
|
57
90
|
* Read the cached state for a provider URL and key.
|
|
58
91
|
*
|
|
@@ -63,12 +96,14 @@ export declare function defaultProviderStatePath(): string;
|
|
|
63
96
|
*/
|
|
64
97
|
export declare function readProviderState(identity: ProviderStateIdentity, path?: string): ProviderState | null;
|
|
65
98
|
/**
|
|
66
|
-
* Write
|
|
99
|
+
* Write one identity's cached state (atomic rename), keeping every other
|
|
100
|
+
* identity's state. Never throws.
|
|
67
101
|
*
|
|
68
102
|
* @param state - State to store.
|
|
69
103
|
* @param path - State file. Default {@link defaultProviderStatePath}.
|
|
104
|
+
* @param key - State key ({@link providerStateKey}). Default: `<baseUrl>#<keyHash>`.
|
|
70
105
|
*/
|
|
71
|
-
export declare function writeProviderState(state: ProviderState, path?: string): void;
|
|
106
|
+
export declare function writeProviderState(state: ProviderState, path?: string, key?: string): void;
|
|
72
107
|
/**
|
|
73
108
|
* Capabilities the client may use for a provider URL and key, memoised per
|
|
74
109
|
* process for a minute so the hot path does not read the file on every
|
|
@@ -81,7 +116,45 @@ export declare function writeProviderState(state: ProviderState, path?: string):
|
|
|
81
116
|
*/
|
|
82
117
|
export declare function cachedCapabilities(identity: ProviderStateIdentity, now?: number, path?: string): DecisionProviderCapabilities | null;
|
|
83
118
|
/**
|
|
84
|
-
*
|
|
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.
|
|
85
158
|
*
|
|
86
159
|
* @internal
|
|
87
160
|
*/
|