@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
package/dist/decide/wizard.js
CHANGED
|
@@ -2,32 +2,60 @@
|
|
|
2
2
|
* Interactive System One setup: `cleo decide config` on a TTY, and the
|
|
3
3
|
* `system-one` section of `cleo setup`.
|
|
4
4
|
*
|
|
5
|
-
* Steps: pick the provider (layahost first, recommended) →
|
|
6
|
-
*
|
|
5
|
+
* Steps: pick the provider (layahost first, recommended) → name the profile
|
|
6
|
+
* (Enter keeps `default`; the profile is `<provider>/<name>`, T12733) → use
|
|
7
|
+
* the provider's default URL (stored as `default`) or enter an override →
|
|
8
|
+
* the API key through {@link WizardIO.secret} (masked) → probe
|
|
7
9
|
* `GET /v1/models` → pick the model (layahost defaults to its routing model)
|
|
8
|
-
* →
|
|
9
|
-
*
|
|
10
|
+
* → save (probes again and re-detects capabilities; other profiles are kept)
|
|
11
|
+
* → when another profile is active, whether to make this one active →
|
|
12
|
+
* optionally one smoke-test question through the saved profile.
|
|
10
13
|
*
|
|
11
14
|
* All logic lives here; the IO is injected, so tests drive it with a stub and
|
|
12
15
|
* the CLI with readline. Nothing this module returns or prints carries the
|
|
13
16
|
* key: only the masked last-4 preview from the saved summary.
|
|
14
17
|
*
|
|
15
18
|
* @task T12713
|
|
19
|
+
* @task T12733
|
|
16
20
|
* @epic T12486
|
|
17
21
|
*/
|
|
18
|
-
import {
|
|
22
|
+
import { DECIDE_DEFAULT_PROFILE_NAME, DECIDE_PROFILE_DEFAULT_URL } from '@cleocode/contracts';
|
|
23
|
+
import { decideProfileId, isAllowedDecideBaseUrl, isValidDecideProfileName, listDecideProfiles, useDecideProfile, } from './credentials.js';
|
|
19
24
|
import { isValidDecisionModelName, listJevModels } from './jev-wire.js';
|
|
20
25
|
import { askDecideDebug, configureDecide, DEFAULT_DECIDE_PROBE_TIMEOUT_MS, } from './operations.js';
|
|
21
26
|
import { listDecisionProviderPresets } from './providers.js';
|
|
22
27
|
/** How many times the wizard re-asks for a URL or model name before giving up. */
|
|
23
28
|
export const DECIDE_WIZARD_MAX_ATTEMPTS = 3;
|
|
24
|
-
/** State the smoke test judges
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
/** State the setup smoke test judges. */
|
|
30
|
+
export const DECIDE_SMOKE_STATE = 'CLEO setup check: the System One provider was just configured.';
|
|
31
|
+
/** The setup smoke test's yes/no question; the answer should be "yes". */
|
|
32
|
+
export const DECIDE_SMOKE_QUESTION = 'The text says a provider was configured.';
|
|
33
|
+
/** Ask for a profile name (Enter → `default`) until it is valid, or give up. */
|
|
34
|
+
async function askProfileName(io, provider) {
|
|
35
|
+
const fallback = DECIDE_DEFAULT_PROFILE_NAME;
|
|
29
36
|
for (let attempt = 0; attempt < DECIDE_WIZARD_MAX_ATTEMPTS; attempt++) {
|
|
30
|
-
const
|
|
37
|
+
const name = (await io.prompt(`Profile name, saved as ${provider}/<name> (Enter for "${fallback}"):`)).trim();
|
|
38
|
+
if (!name)
|
|
39
|
+
return fallback;
|
|
40
|
+
if (isValidDecideProfileName(name))
|
|
41
|
+
return name;
|
|
42
|
+
io.warn('Profile names use 1-32 lowercase letters, digits or -, starting and ending with a letter or digit.');
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* After saving a profile that is not active (another one is): ask whether to
|
|
48
|
+
* make it active (default no, so adding a second key never silently switches
|
|
49
|
+
* everyday decisions).
|
|
50
|
+
*/
|
|
51
|
+
async function confirmActivation(io, profile) {
|
|
52
|
+
const { active } = listDecideProfiles();
|
|
53
|
+
return io.confirm(`Make "${profile}" the active profile for everyday decisions? ("${active ?? 'none'}" is active now)`, false);
|
|
54
|
+
}
|
|
55
|
+
/** Ask for an override base URL until it is acceptable, or give up. */
|
|
56
|
+
async function askBaseUrl(io, preset) {
|
|
57
|
+
for (let attempt = 0; attempt < DECIDE_WIZARD_MAX_ATTEMPTS; attempt++) {
|
|
58
|
+
const url = (await io.prompt(`${preset.kind} base URL (e.g. https://provider.example):`)).trim();
|
|
31
59
|
if (!url)
|
|
32
60
|
return undefined;
|
|
33
61
|
if (isAllowedDecideBaseUrl(url))
|
|
@@ -66,6 +94,20 @@ async function chooseModel(io, preset, listed) {
|
|
|
66
94
|
: 'Which model?';
|
|
67
95
|
return io.select(question, candidates);
|
|
68
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Choose the URL: the provider's preset (stored as `default`, so a changed
|
|
99
|
+
* preset flows through) unless the user declines and enters an override. A
|
|
100
|
+
* provider without a preset asks for the URL directly.
|
|
101
|
+
*
|
|
102
|
+
* @returns `default`, an override URL, or `undefined` when none was entered.
|
|
103
|
+
*/
|
|
104
|
+
async function chooseUrl(io, preset) {
|
|
105
|
+
const presetUrl = preset.defaultBaseUrl;
|
|
106
|
+
if (presetUrl && (await io.confirm(`Use the default URL (${presetUrl})?`, true))) {
|
|
107
|
+
return DECIDE_PROFILE_DEFAULT_URL;
|
|
108
|
+
}
|
|
109
|
+
return askBaseUrl(io, preset);
|
|
110
|
+
}
|
|
69
111
|
/**
|
|
70
112
|
* Run the interactive System One setup.
|
|
71
113
|
*
|
|
@@ -80,15 +122,19 @@ export async function runDecideWizard(io, opts = {}) {
|
|
|
80
122
|
const preset = presets.find((p) => p.label === picked) ?? presets[0];
|
|
81
123
|
if (!preset)
|
|
82
124
|
return { configured: false, summary: 'skipped (no provider presets)' };
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
125
|
+
const name = await askProfileName(io, preset.kind);
|
|
126
|
+
if (!name) {
|
|
127
|
+
io.warn('No valid profile name entered; System One left unchanged.');
|
|
128
|
+
return { configured: false, summary: 'skipped (no valid profile name)' };
|
|
129
|
+
}
|
|
130
|
+
const profile = decideProfileId(preset.kind, name);
|
|
131
|
+
const urlSetting = await chooseUrl(io, preset);
|
|
132
|
+
const baseUrl = urlSetting === DECIDE_PROFILE_DEFAULT_URL ? preset.defaultBaseUrl : urlSetting;
|
|
133
|
+
if (!urlSetting || !baseUrl) {
|
|
134
|
+
io.warn('No valid URL entered; System One left unchanged.');
|
|
135
|
+
return { configured: false, summary: 'skipped (no valid URL)' };
|
|
90
136
|
}
|
|
91
|
-
const apiKey = (await io.secret(`${
|
|
137
|
+
const apiKey = (await io.secret(`${profile} API key:`)).trim();
|
|
92
138
|
if (!apiKey) {
|
|
93
139
|
io.warn('No API key entered; System One left unchanged.');
|
|
94
140
|
return { configured: false, summary: 'skipped (empty api key)' };
|
|
@@ -112,25 +158,32 @@ export async function runDecideWizard(io, opts = {}) {
|
|
|
112
158
|
io.warn('No model chosen; System One left unchanged (the provider rejects requests without one).');
|
|
113
159
|
return { configured: false, summary: 'skipped (no model)' };
|
|
114
160
|
}
|
|
115
|
-
|
|
116
|
-
const config = await configureDecide({
|
|
161
|
+
let config = await configureDecide({
|
|
117
162
|
provider: preset.kind,
|
|
118
|
-
|
|
163
|
+
profile,
|
|
164
|
+
baseUrl: urlSetting,
|
|
119
165
|
apiKey,
|
|
120
166
|
model,
|
|
121
167
|
fetch: opts.fetch,
|
|
122
168
|
timeoutMs,
|
|
123
169
|
});
|
|
124
|
-
|
|
170
|
+
if (!config.active && (await confirmActivation(io, profile))) {
|
|
171
|
+
await useDecideProfile(profile);
|
|
172
|
+
config = { ...config, active: true, activeProfile: profile };
|
|
173
|
+
}
|
|
174
|
+
const role = config.active ? 'active' : `inactive; switch with: cleo decide use ${profile}`;
|
|
175
|
+
io.info(`Saved ${profile} (${config.baseUrl ?? baseUrl}, ${role}): model ${config.model ?? 'none'}, key ${config.keyPreview ?? '…'} (${config.providerState}).`);
|
|
125
176
|
if (config.warning)
|
|
126
177
|
io.warn(config.warning);
|
|
127
|
-
const summary = `${
|
|
178
|
+
const summary = `${profile} configured${config.active ? ' and active' : ''} (model ${config.model ?? 'none'}, ${config.providerState})`;
|
|
179
|
+
const wantsSmoke = await io.confirm('Ask one test question to confirm it works? (one billed decision)', true);
|
|
128
180
|
if (!wantsSmoke)
|
|
129
181
|
return { configured: true, summary, config };
|
|
130
182
|
const smoke = await (opts.smoke ??
|
|
131
183
|
(() => askDecideDebug({
|
|
132
|
-
state:
|
|
133
|
-
question:
|
|
184
|
+
state: DECIDE_SMOKE_STATE,
|
|
185
|
+
question: DECIDE_SMOKE_QUESTION,
|
|
186
|
+
profile,
|
|
134
187
|
...(opts.projectRoot ? { projectRoot: opts.projectRoot } : {}),
|
|
135
188
|
})))();
|
|
136
189
|
if (smoke.source === 'provider') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/decide/wizard.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/decide/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ export type ProjectionMode = 'mvi' | 'full';
|
|
|
36
36
|
* `'unknown'` is the safe fallback — when the dispatcher cannot identify the
|
|
37
37
|
* record shape, the record is passed through untouched (no field stripping).
|
|
38
38
|
*/
|
|
39
|
-
export type ProjectionKind = 'task' | 'epic' | 'saga' | 'doc' | 'unknown';
|
|
39
|
+
export type ProjectionKind = 'task' | 'epic' | 'saga' | 'doc' | 'acRow' | 'unknown';
|
|
40
40
|
/**
|
|
41
41
|
* Envelope key naming every field the projection withheld.
|
|
42
42
|
*
|
|
@@ -126,7 +126,7 @@ export declare function projectMvi<T extends Record<string, unknown>>(record: T,
|
|
|
126
126
|
*/
|
|
127
127
|
export interface ProjectMVIOptions {
|
|
128
128
|
/**
|
|
129
|
-
* Record kind. Known kinds (`task`/`epic`/`saga`/`doc`) use their
|
|
129
|
+
* Record kind. Known kinds (`task`/`epic`/`saga`/`doc`/`acRow`) use their
|
|
130
130
|
* {@link MVI_FIELDS} allow-list; `'unknown'` (or any unrecognized value)
|
|
131
131
|
* degrades to the {@link GENERIC_MVI_FIELDS} identity/routing set rather than
|
|
132
132
|
* leaking the full record.
|
|
@@ -222,6 +222,19 @@ export interface ProjectionPlan {
|
|
|
222
222
|
* element. When `false`, treat it as a single record.
|
|
223
223
|
*/
|
|
224
224
|
list: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Further sibling paths of the same response projected alongside `path`
|
|
227
|
+
* (T12523 — `tasks.show` also projects its `acRows`). Each entry follows
|
|
228
|
+
* the same rules as a top-level plan; nested `also` lists are not followed.
|
|
229
|
+
*/
|
|
230
|
+
also?: readonly ProjectionPlan[];
|
|
231
|
+
/**
|
|
232
|
+
* List plans only: move each element's `_withheld` marker onto the
|
|
233
|
+
* containing object as one `<path>/*\/<field>` entry per field, whose size
|
|
234
|
+
* is the total across elements (T12523). Use it when every element withholds
|
|
235
|
+
* the same fields, so one statement replaces a marker per row.
|
|
236
|
+
*/
|
|
237
|
+
hoistWithheld?: boolean;
|
|
225
238
|
}
|
|
226
239
|
/** SSoT for which ops get MVI-projected by default. */
|
|
227
240
|
export declare const PROJECTION_PLANS: Readonly<Record<string, ProjectionPlan>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mvi-projection.d.ts","sourceRoot":"","sources":["../../src/dispatch/mvi-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAY,KAAK,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAIhF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"mvi-projection.d.ts","sourceRoot":"","sources":["../../src/dispatch/mvi-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAY,KAAK,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAIhF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAiC7C,CAAC;AA6FF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,0BAA0B,CAG9E;AAsGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,CAAC,CAAC,CAKZ;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,CAAC,CAAC,EAAE,CAEd;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACjC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAWrE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,cAAc,GACnB,OAAO,CAOT;AAmED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,cAAc,CAEjF"}
|
|
@@ -147,6 +147,25 @@ const MVI_FIELDS = {
|
|
|
147
147
|
'refCount',
|
|
148
148
|
'description',
|
|
149
149
|
]),
|
|
150
|
+
// T12523: an acceptance-criterion row keeps what an agent acts on — the
|
|
151
|
+
// `AC<n>` alias it cites in `satisfies:` evidence, the ordinal and the text.
|
|
152
|
+
// Its UUID is withheld: see MVI_DENIED_FIELDS.
|
|
153
|
+
acRow: new Set(['alias', 'ordinal', 'text']),
|
|
154
|
+
};
|
|
155
|
+
/** Empty deny-set: the default, under which every truth field is kept. */
|
|
156
|
+
const NO_DENIED_FIELDS = new Set();
|
|
157
|
+
/**
|
|
158
|
+
* Truth fields a kind withholds anyway, because a cheaper field already
|
|
159
|
+
* identifies the record inside its envelope.
|
|
160
|
+
*
|
|
161
|
+
* `acRow` (T12523): an acceptance-criterion row is identified by its task and
|
|
162
|
+
* its `AC<n>` alias (`satisfies:T1234#AC1`), so its UUID `id` — about a third
|
|
163
|
+
* of every row's tokens — is withheld by default. The row still names `id` in
|
|
164
|
+
* its `_withheld` marker, and `--full` or a `--field /data/acRows/<i>/id`
|
|
165
|
+
* pointer returns it.
|
|
166
|
+
*/
|
|
167
|
+
const MVI_DENIED_FIELDS = {
|
|
168
|
+
acRow: new Set(['id']),
|
|
150
169
|
};
|
|
151
170
|
/**
|
|
152
171
|
* Generic identity/routing field allow-list applied to UNKNOWN kinds.
|
|
@@ -198,11 +217,11 @@ export function discloseProjection(source, projected) {
|
|
|
198
217
|
*
|
|
199
218
|
* @internal
|
|
200
219
|
*/
|
|
201
|
-
function pickFields(record, allow) {
|
|
220
|
+
function pickFields(record, allow, deny = NO_DENIED_FIELDS) {
|
|
202
221
|
const picked = {};
|
|
203
222
|
const withheld = previousWithheld(record);
|
|
204
223
|
for (const key of Object.keys(record)) {
|
|
205
|
-
if (allow.has(key) || mandatoryFields.has(key)) {
|
|
224
|
+
if (!deny.has(key) && (allow.has(key) || mandatoryFields.has(key))) {
|
|
206
225
|
// Index assertion is safe: `key` came from Object.keys(record).
|
|
207
226
|
picked[key] = record[key];
|
|
208
227
|
delete withheld[key];
|
|
@@ -300,7 +319,7 @@ export function projectMvi(record, kind) {
|
|
|
300
319
|
if (kind === 'unknown')
|
|
301
320
|
return record;
|
|
302
321
|
const allow = MVI_FIELDS[kind];
|
|
303
|
-
const { picked, withheld } = pickFields(record, allow);
|
|
322
|
+
const { picked, withheld } = pickFields(record, allow, MVI_DENIED_FIELDS[kind]);
|
|
304
323
|
return withWithheldMarker(picked, withheld);
|
|
305
324
|
}
|
|
306
325
|
/**
|
|
@@ -345,10 +364,10 @@ export function projectMVI(record, options) {
|
|
|
345
364
|
if (mode === 'full')
|
|
346
365
|
return record;
|
|
347
366
|
// Step 1+2+3: field selection (known allow-list or generic fallback).
|
|
348
|
-
const
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
const { picked, withheld } = pickFields(record, allow);
|
|
367
|
+
const known = options.kind !== 'unknown' && options.kind in MVI_FIELDS;
|
|
368
|
+
const kind = options.kind;
|
|
369
|
+
const allow = known ? MVI_FIELDS[kind] : GENERIC_MVI_FIELDS;
|
|
370
|
+
const { picked, withheld } = pickFields(record, allow, known ? MVI_DENIED_FIELDS[kind] : undefined);
|
|
352
371
|
// Budgeting must retain the same omission provenance as field selection.
|
|
353
372
|
if (options.budget !== undefined) {
|
|
354
373
|
if (!Number.isFinite(options.budget) || options.budget < 0) {
|
|
@@ -376,7 +395,12 @@ export function projectMviList(records, kind) {
|
|
|
376
395
|
}
|
|
377
396
|
/** SSoT for which ops get MVI-projected by default. */
|
|
378
397
|
export const PROJECTION_PLANS = {
|
|
379
|
-
'tasks.show': {
|
|
398
|
+
'tasks.show': {
|
|
399
|
+
path: 'task',
|
|
400
|
+
kind: 'task',
|
|
401
|
+
list: false,
|
|
402
|
+
also: [{ path: 'acRows', kind: 'acRow', list: true, hoistWithheld: true }],
|
|
403
|
+
},
|
|
380
404
|
'tasks.list': { path: 'tasks', kind: 'task', list: true },
|
|
381
405
|
'tasks.find': { path: 'results', kind: 'task', list: true },
|
|
382
406
|
'docs.list': { path: 'attachments', kind: 'doc', list: true },
|
|
@@ -405,6 +429,18 @@ export function applyProjectionPlan(data, operation, mode) {
|
|
|
405
429
|
const plan = PROJECTION_PLANS[operation];
|
|
406
430
|
if (!plan)
|
|
407
431
|
return data;
|
|
432
|
+
let projected = applySinglePlan(data, plan);
|
|
433
|
+
for (const sibling of plan.also ?? [])
|
|
434
|
+
projected = applySinglePlan(projected, sibling);
|
|
435
|
+
return projected;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Apply one {@link ProjectionPlan} (ignoring its `also` siblings) to a data
|
|
439
|
+
* payload. Missing or mistyped targets are no-ops.
|
|
440
|
+
*
|
|
441
|
+
* @internal
|
|
442
|
+
*/
|
|
443
|
+
function applySinglePlan(data, plan) {
|
|
408
444
|
if (data === null || data === undefined)
|
|
409
445
|
return data;
|
|
410
446
|
// `$` targets the data root directly.
|
|
@@ -426,10 +462,10 @@ export function applyProjectionPlan(data, operation, mode) {
|
|
|
426
462
|
if (plan.list) {
|
|
427
463
|
if (!Array.isArray(target))
|
|
428
464
|
return data;
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
};
|
|
465
|
+
const rows = projectMviList(target, plan.kind);
|
|
466
|
+
if (plan.hoistWithheld === true)
|
|
467
|
+
return hoistListWithheld(container, plan.path, rows);
|
|
468
|
+
return { ...container, [plan.path]: rows };
|
|
433
469
|
}
|
|
434
470
|
if (typeof target !== 'object')
|
|
435
471
|
return data;
|
|
@@ -438,6 +474,31 @@ export function applyProjectionPlan(data, operation, mode) {
|
|
|
438
474
|
[plan.path]: projectMvi(target, plan.kind),
|
|
439
475
|
};
|
|
440
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Replace the per-element `_withheld` markers of a projected list with one
|
|
479
|
+
* marker on its container (T12523).
|
|
480
|
+
*
|
|
481
|
+
* Each withheld element field becomes a `<path>/*\/<field>` key — "this field
|
|
482
|
+
* was withheld from the elements of `<path>`" — whose size is the UTF-8 byte
|
|
483
|
+
* total across those elements. The disclosure is the same as a marker per
|
|
484
|
+
* element; only its location changes. The container keeps any marker it
|
|
485
|
+
* already carried.
|
|
486
|
+
*
|
|
487
|
+
* @internal
|
|
488
|
+
*/
|
|
489
|
+
function hoistListWithheld(container, path, rows) {
|
|
490
|
+
const withheld = previousWithheld(container);
|
|
491
|
+
const stripped = rows.map((row) => {
|
|
492
|
+
const marker = previousWithheld(row);
|
|
493
|
+
for (const [field, bytes] of Object.entries(marker)) {
|
|
494
|
+
const key = `${path}/*/${field}`;
|
|
495
|
+
withheld[key] = (withheld[key] ?? 0) + bytes;
|
|
496
|
+
}
|
|
497
|
+
const { [WITHHELD_KEY]: _marker, ...rest } = row;
|
|
498
|
+
return rest;
|
|
499
|
+
});
|
|
500
|
+
return withWithheldMarker({ ...container, [path]: stripped }, withheld);
|
|
501
|
+
}
|
|
441
502
|
/**
|
|
442
503
|
* Resolve the projection mode for a request based on the opt-out signal.
|
|
443
504
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mvi-projection.js","sourceRoot":"","sources":["../../src/dispatch/mvi-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,QAAQ,EAAmC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,IAAI;IACJ,UAAU;IACV,OAAO;IACP,WAAW;IACX,YAAY;IACZ,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,QAAQ;IACR,mBAAmB;IACnB,WAAW;IACX,aAAa;IACb,UAAU;IACV,UAAU;IACV,aAAa;IACb,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,0EAA0E;IAC1E,OAAO;IACP,SAAS;CACV,CAAC;AACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAElD,iFAAiF;AACjF,SAAS,gBAAgB,CAAC,MAA+B;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAoE;IAClF,IAAI,EAAE,IAAI,GAAG,CAAC;QACZ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,gBAAgB;KACjB,CAAC;IACF,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/F,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACpF,GAAG,EAAE,IAAI,GAAG,CAAC;QACX,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;
|
|
1
|
+
{"version":3,"file":"mvi-projection.js","sourceRoot":"","sources":["../../src/dispatch/mvi-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,QAAQ,EAAmC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,IAAI;IACJ,UAAU;IACV,OAAO;IACP,WAAW;IACX,YAAY;IACZ,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,QAAQ;IACR,mBAAmB;IACnB,WAAW;IACX,aAAa;IACb,UAAU;IACV,UAAU;IACV,aAAa;IACb,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,0EAA0E;IAC1E,OAAO;IACP,SAAS;CACV,CAAC;AACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAElD,iFAAiF;AACjF,SAAS,gBAAgB,CAAC,MAA+B;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAoE;IAClF,IAAI,EAAE,IAAI,GAAG,CAAC;QACZ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,gBAAgB;KACjB,CAAC;IACF,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/F,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACpF,GAAG,EAAE,IAAI,GAAG,CAAC;QACX,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;IACF,wEAAwE;IACxE,6EAA6E;IAC7E,+CAA+C;IAC/C,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;CAC7C,CAAC;AAEF,0EAA0E;AAC1E,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GACrB;IACE,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAEJ;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IACtD,IAAI;IACJ,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,UAAU;IACV,MAAM;IACN,MAAM;IACN,UAAU;CACX,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAGhC,MAAc,EAAE,SAAoB;IACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,kBAAkB,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;AACxF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CACjB,MAAS,EACT,KAA0B,EAC1B,OAA4B,gBAAgB;IAE5C,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnE,gEAAgE;YAC/D,MAAkC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,YAAY;YAAE,SAAS;QACnC,QAAQ,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,SAAqB,EACrB,QAAgC;IAEhC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,SAAoC,CAAC;IACpD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,IAAI,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,YAAY;YAAE,SAAS;QACnD,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAiB,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,QAAW,EACX,MAAkB,EAClB,MAAc,EACd,SAAyB;IAEzB,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,KAAK,YAAY;YAAE,SAAS;QACnC,IAAI,GAAG,IAAI,SAAS;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;;YACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAC3D,CAAC;IACF,SAAS,CAAC;QACR,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QACxD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CACjB,QAAQ,CAAC,gBAAgB,EACzB,4EAA4E,EAC5E;gBACE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAClF,GAAG,EAAE,6EAA6E;aACnF,CACF,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CACxB,MAAS,EACT,IAAoB;IAEpB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,OAAO,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,UAAU,CACxB,MAAS,EACT,OAA0B;IAE1B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IACnC,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAEnC,sEAAsE;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAA0C,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC5D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CACrC,MAAM,EACN,KAAK,EACL,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAC5C,CAAC;IAEF,yEAAyE;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,SAAS,CACjB,QAAQ,CAAC,gBAAgB,EACzB,iDAAiD,CAClD,CAAC;QACJ,CAAC;QACD,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB,EACrB,IAAoB;IAEpB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AA6CD,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KAC3E;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IACzD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3D,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7D,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;CAC7D,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAa,EACb,SAAiB,EACjB,IAAoB;IAEpB,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;QAAE,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAa,EAAE,IAAoB;IAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrD,sCAAsC;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,cAAc,CAAC,IAA0C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,UAAU,CAAC,IAA+B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,IAA+B,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,IAAI,GAAG,cAAc,CAAC,MAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtF,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO;QACL,GAAG,SAAS;QACZ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,MAAiC,EAAE,IAAI,CAAC,IAAI,CAAC;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CACxB,SAAkC,EAClC,IAAY,EACZ,IAAwC;IAExC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,KAAK,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA2B;IAC/D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,CAAC"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* `docs/adr/` publish dir).
|
|
21
21
|
* 3. Calls {@link reserveSlug} (the T10392 central allocator
|
|
22
22
|
* chokepoint) so the slug is reserved in the in-process Mutex
|
|
23
|
-
* map AND probed against the `
|
|
23
|
+
* map AND probed against the `uniq_docs_attachments_slug` partial
|
|
24
24
|
* UNIQUE INDEX in a single chokepoint.
|
|
25
25
|
* 4. On `E_SLUG_RESERVED` (rare — two agents racing for the same
|
|
26
26
|
* number despite the per-slug Mutex), retries with `N+1`,
|
|
@@ -151,7 +151,7 @@ export declare function findHighestAdrNumber(cwd?: string): Promise<number>;
|
|
|
151
151
|
*
|
|
152
152
|
* `title` is slugified via the shared {@link slugify} helper so the
|
|
153
153
|
* shape matches existing T9636 conventions and the
|
|
154
|
-
* `
|
|
154
|
+
* `uniq_docs_attachments_slug` regex constraints.
|
|
155
155
|
*
|
|
156
156
|
* @param number - The ADR number (>= 1).
|
|
157
157
|
* @param title - Raw human-readable title (e.g. "Adopt Drizzle v1 beta").
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-allocator.d.ts","sourceRoot":"","sources":["../../src/docs/adr-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAKH,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAA0B,MAAM,qBAAqB,CAAC;AAInG;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,cAAc,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAEtC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,WAAW,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,WAAW,CAAC;CAC/C;AAcD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"adr-allocator.d.ts","sourceRoot":"","sources":["../../src/docs/adr-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAKH,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAA0B,MAAM,qBAAqB,CAAC;AAInG;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,cAAc,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAEtC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,WAAW,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,WAAW,CAAC;CAC/C;AAcD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCxE;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAqC5B"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* `docs/adr/` publish dir).
|
|
21
21
|
* 3. Calls {@link reserveSlug} (the T10392 central allocator
|
|
22
22
|
* chokepoint) so the slug is reserved in the in-process Mutex
|
|
23
|
-
* map AND probed against the `
|
|
23
|
+
* map AND probed against the `uniq_docs_attachments_slug` partial
|
|
24
24
|
* UNIQUE INDEX in a single chokepoint.
|
|
25
25
|
* 4. On `E_SLUG_RESERVED` (rare — two agents racing for the same
|
|
26
26
|
* number despite the per-slug Mutex), retries with `N+1`,
|
|
@@ -93,12 +93,25 @@ const ADR_SLUG_PATTERN = /^adr-(\d+)-/;
|
|
|
93
93
|
export async function findHighestAdrNumber(cwd) {
|
|
94
94
|
const db = await getDb(cwd);
|
|
95
95
|
// Raw SELECT keeps the query independent of the Drizzle schema barrel —
|
|
96
|
-
// we only need the slug strings, not full row objects.
|
|
96
|
+
// we only need the slug strings, not full row objects. The live docs table
|
|
97
|
+
// is the prefixed twin since the T12535 collapse; the bare `attachments`
|
|
98
|
+
// table is read too, because an older CLEO build may still write ADRs there
|
|
99
|
+
// that the next open has not merged yet (never reuse their numbers).
|
|
97
100
|
const rows = await db
|
|
98
101
|
.select({ slug: sql `slug` })
|
|
99
|
-
.from(sql `
|
|
102
|
+
.from(sql `docs_attachments`)
|
|
100
103
|
.where(sql `slug LIKE 'adr-%-%'`)
|
|
101
104
|
.all();
|
|
105
|
+
try {
|
|
106
|
+
rows.push(...(await db
|
|
107
|
+
.select({ slug: sql `slug` })
|
|
108
|
+
.from(sql `attachments`)
|
|
109
|
+
.where(sql `slug LIKE 'adr-%-%'`)
|
|
110
|
+
.all()));
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// No bare table (a store created after it was dropped): nothing to add.
|
|
114
|
+
}
|
|
102
115
|
let highest = 0;
|
|
103
116
|
for (const row of rows) {
|
|
104
117
|
const slug = row.slug;
|
|
@@ -125,7 +138,7 @@ export async function findHighestAdrNumber(cwd) {
|
|
|
125
138
|
*
|
|
126
139
|
* `title` is slugified via the shared {@link slugify} helper so the
|
|
127
140
|
* shape matches existing T9636 conventions and the
|
|
128
|
-
* `
|
|
141
|
+
* `uniq_docs_attachments_slug` regex constraints.
|
|
129
142
|
*
|
|
130
143
|
* @param number - The ADR number (>= 1).
|
|
131
144
|
* @param title - Raw human-readable title (e.g. "Adopt Drizzle v1 beta").
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-allocator.js","sourceRoot":"","sources":["../../src/docs/adr-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAA2B,WAAW,EAA0B,MAAM,qBAAqB,CAAC;AAEnG,iFAAiF;AAEjF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AA0E7C,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAY;IACrD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,wEAAwE;IACxE,
|
|
1
|
+
{"version":3,"file":"adr-allocator.js","sourceRoot":"","sources":["../../src/docs/adr-allocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,8 @@ import { join } from 'node:path';
|
|
|
20
20
|
import { eq, sql } from 'drizzle-orm';
|
|
21
21
|
import { getProjectRoot } from '../paths.js';
|
|
22
22
|
import { CleoBlobStore } from '../store/llmtxt-blob-adapter.js';
|
|
23
|
-
import { attachmentRefs, attachments as attachmentsTable } from '../store/schema/attachments.js';
|
|
24
23
|
import { getDb } from '../store/sqlite.js';
|
|
24
|
+
import { attachmentRefs, attachments as attachmentsTable } from '../store/tasks-schema.js';
|
|
25
25
|
function findLegacyBlobPath(projectRoot, sha256) {
|
|
26
26
|
const prefix = sha256.slice(0, 2);
|
|
27
27
|
const rest = sha256.slice(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-consolidation.js","sourceRoot":"","sources":["../../src/docs/blob-consolidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAe,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"blob-consolidation.js","sourceRoot":"","sources":["../../src/docs/blob-consolidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ export interface SetDisplayAliasResult {
|
|
|
73
73
|
* OTHER `type='adr'` row for the same `display_alias`. Any conflict throws
|
|
74
74
|
* `E_ALIAS_TAKEN` and the transaction rolls back — numbers are unique among
|
|
75
75
|
* ADRs. Non-adr kinds skip the uniqueness check (they may reuse numbers).
|
|
76
|
-
* 3. `UPDATE
|
|
76
|
+
* 3. `UPDATE docs_attachments SET display_alias = ? WHERE id = ?`.
|
|
77
77
|
*
|
|
78
78
|
* Uniqueness is enforced HERE (dispatch/SDK layer) rather than via a SQL UNIQUE
|
|
79
79
|
* constraint because the constraint is scoped to a single `type` value — the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-alias.d.ts","sourceRoot":"","sources":["../../src/docs/display-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"display-alias.d.ts","sourceRoot":"","sources":["../../src/docs/display-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAmBH,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AACpD,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA2FhC"}
|