@cleocode/core 2026.9.16 → 2026.9.18
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/changesets/parser.d.ts.map +1 -1
- package/dist/changesets/parser.js +67 -0
- package/dist/changesets/parser.js.map +1 -1
- package/dist/crypto/credentials.d.ts +128 -26
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +183 -142
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/docs/export-document.js +14705 -12949
- package/dist/docs/export-document.js.map +3 -3
- package/dist/doctor/index.d.ts +1 -1
- package/dist/doctor/index.d.ts.map +1 -1
- package/dist/doctor/index.js +1 -1
- package/dist/doctor/index.js.map +1 -1
- package/dist/doctor/nexus-schema-residency.d.ts +1 -1
- package/dist/doctor/nexus-schema-residency.d.ts.map +1 -1
- package/dist/doctor/nexus-schema-residency.js +1 -0
- package/dist/doctor/nexus-schema-residency.js.map +1 -1
- package/dist/doctor/project-identity.d.ts +124 -0
- package/dist/doctor/project-identity.d.ts.map +1 -0
- package/dist/doctor/project-identity.js +307 -0
- package/dist/doctor/project-identity.js.map +1 -0
- package/dist/doctor/superseded-store.d.ts +8 -0
- package/dist/doctor/superseded-store.d.ts.map +1 -1
- package/dist/doctor/superseded-store.js +48 -3
- package/dist/doctor/superseded-store.js.map +1 -1
- package/dist/init.d.ts +7 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +17 -2
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +6 -3
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +4 -2
- package/dist/internal.js.map +1 -1
- package/dist/llm/credentials-store.d.ts +10 -0
- package/dist/llm/credentials-store.d.ts.map +1 -1
- package/dist/llm/credentials-store.js +7 -1
- package/dist/llm/credentials-store.js.map +1 -1
- package/dist/llm/plugin-facade.js +13368 -1550
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/nexus/analyze-orchestrator.d.ts +20 -3
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +210 -16
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/assessment-store.d.ts +86 -0
- package/dist/nexus/assessment-store.d.ts.map +1 -0
- package/dist/nexus/assessment-store.js +113 -0
- package/dist/nexus/assessment-store.js.map +1 -0
- package/dist/nexus/freshness.d.ts +131 -0
- package/dist/nexus/freshness.d.ts.map +1 -0
- package/dist/nexus/freshness.js +391 -0
- package/dist/nexus/freshness.js.map +1 -0
- package/dist/nexus/graph-manifest.d.ts +88 -0
- package/dist/nexus/graph-manifest.d.ts.map +1 -0
- package/dist/nexus/graph-manifest.js +114 -0
- package/dist/nexus/graph-manifest.js.map +1 -0
- package/dist/nexus/knowledge.d.ts +21 -1
- package/dist/nexus/knowledge.d.ts.map +1 -1
- package/dist/nexus/knowledge.js +74 -37
- package/dist/nexus/knowledge.js.map +1 -1
- package/dist/nexus/path-map.d.ts +55 -0
- package/dist/nexus/path-map.d.ts.map +1 -0
- package/dist/nexus/path-map.js +87 -0
- package/dist/nexus/path-map.js.map +1 -0
- package/dist/nexus/projects-clean.d.ts +21 -28
- package/dist/nexus/projects-clean.d.ts.map +1 -1
- package/dist/nexus/projects-clean.js +168 -85
- package/dist/nexus/projects-clean.js.map +1 -1
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +3 -2
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-hygiene.d.ts +70 -0
- package/dist/nexus/registry-hygiene.d.ts.map +1 -0
- package/dist/nexus/registry-hygiene.js +113 -0
- package/dist/nexus/registry-hygiene.js.map +1 -0
- package/dist/nexus/registry.d.ts +2 -2
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +48 -12
- package/dist/nexus/registry.js.map +1 -1
- package/dist/paths.d.ts +26 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +99 -6
- package/dist/paths.js.map +1 -1
- package/dist/release/index.d.ts +1 -1
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js.map +1 -1
- package/dist/release/plan.d.ts +84 -2
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +61 -14
- package/dist/release/plan.js.map +1 -1
- package/dist/release/pr-evidence.d.ts +81 -1
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +149 -9
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +8 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +12 -3
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +61 -38
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +136 -0
- package/dist/scaffold/project-identity.d.ts.map +1 -0
- package/dist/scaffold/project-identity.js +225 -0
- package/dist/scaffold/project-identity.js.map +1 -0
- package/dist/selfimprove/fix-gen.js +13319 -1556
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/store/agent-api-key.d.ts +114 -0
- package/dist/store/agent-api-key.d.ts.map +1 -0
- package/dist/store/agent-api-key.js +136 -0
- package/dist/store/agent-api-key.js.map +1 -0
- package/dist/store/agent-registry-accessor.d.ts +4 -2
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.js +39 -89
- package/dist/store/agent-registry-accessor.js.map +1 -1
- package/dist/store/api-key-kdf.d.ts +7 -0
- package/dist/store/api-key-kdf.d.ts.map +1 -1
- package/dist/store/api-key-kdf.js +7 -0
- package/dist/store/api-key-kdf.js.map +1 -1
- package/dist/store/backup-crypto.d.ts +49 -0
- package/dist/store/backup-crypto.d.ts.map +1 -1
- package/dist/store/backup-crypto.js +154 -0
- package/dist/store/backup-crypto.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +303 -0
- package/dist/store/credential-transfer.d.ts.map +1 -0
- package/dist/store/credential-transfer.js +774 -0
- package/dist/store/credential-transfer.js.map +1 -0
- package/dist/store/exodus/column-transforms.d.ts +79 -4
- package/dist/store/exodus/column-transforms.d.ts.map +1 -1
- package/dist/store/exodus/column-transforms.js +121 -4
- package/dist/store/exodus/column-transforms.js.map +1 -1
- package/dist/store/exodus/index.d.ts +1 -0
- package/dist/store/exodus/index.d.ts.map +1 -1
- package/dist/store/exodus/index.js +1 -0
- package/dist/store/exodus/index.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts +17 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +155 -33
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts +14 -0
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +115 -6
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/reconcile.d.ts +103 -0
- package/dist/store/exodus/reconcile.d.ts.map +1 -0
- package/dist/store/exodus/reconcile.js +728 -0
- package/dist/store/exodus/reconcile.js.map +1 -0
- package/dist/store/exodus/recovery.d.ts.map +1 -1
- package/dist/store/exodus/recovery.js +14 -2
- package/dist/store/exodus/recovery.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +39 -0
- package/dist/store/exodus/runtime-targets.d.ts.map +1 -0
- package/dist/store/exodus/runtime-targets.js +63 -0
- package/dist/store/exodus/runtime-targets.js.map +1 -0
- package/dist/store/exodus/table-name-map.d.ts.map +1 -1
- package/dist/store/exodus/table-name-map.js +5 -0
- package/dist/store/exodus/table-name-map.js.map +1 -1
- package/dist/store/exodus/table-order.d.ts +35 -0
- package/dist/store/exodus/table-order.d.ts.map +1 -0
- package/dist/store/exodus/table-order.js +62 -0
- package/dist/store/exodus/table-order.js.map +1 -0
- package/dist/store/exodus/verify-migration.d.ts +4 -1
- package/dist/store/exodus/verify-migration.d.ts.map +1 -1
- package/dist/store/exodus/verify-migration.js +142 -10
- package/dist/store/exodus/verify-migration.js.map +1 -1
- package/dist/store/global-salt.d.ts +16 -0
- package/dist/store/global-salt.d.ts.map +1 -1
- package/dist/store/global-salt.js +22 -7
- package/dist/store/global-salt.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +86 -0
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -0
- package/dist/store/legacy-tasks-lineage.js +285 -0
- package/dist/store/legacy-tasks-lineage.js.map +1 -0
- package/dist/store/migration-manager.d.ts +27 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +63 -0
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +117 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -0
- package/dist/store/portable-bundle-import.js +589 -0
- package/dist/store/portable-bundle-import.js.map +1 -0
- package/dist/store/portable-bundle-relocate.d.ts +66 -0
- package/dist/store/portable-bundle-relocate.d.ts.map +1 -0
- package/dist/store/portable-bundle-relocate.js +304 -0
- package/dist/store/portable-bundle-relocate.js.map +1 -0
- package/dist/store/portable-bundle-scan.d.ts +167 -0
- package/dist/store/portable-bundle-scan.d.ts.map +1 -0
- package/dist/store/portable-bundle-scan.js +569 -0
- package/dist/store/portable-bundle-scan.js.map +1 -0
- package/dist/store/portable-bundle.d.ts +146 -0
- package/dist/store/portable-bundle.d.ts.map +1 -0
- package/dist/store/portable-bundle.js +674 -0
- package/dist/store/portable-bundle.js.map +1 -0
- package/dist/store/regenerators.d.ts +3 -1
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +6 -2
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +98 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +19 -0
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/nexus-schema.d.ts +102 -0
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +24 -0
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/split-brain-import.d.ts +176 -0
- package/dist/store/split-brain-import.d.ts.map +1 -0
- package/dist/store/split-brain-import.js +680 -0
- package/dist/store/split-brain-import.js.map +1 -0
- package/dist/store/sqlite.d.ts +29 -0
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +57 -5
- package/dist/store/sqlite.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +30 -5
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +5 -27
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/evidence.js +1 -1
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/verification-policy.d.ts +55 -0
- package/dist/tasks/verification-policy.d.ts.map +1 -0
- package/dist/tasks/verification-policy.js +75 -0
- package/dist/tasks/verification-policy.js.map +1 -0
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +60 -0
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +14 -0
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +33 -0
- package/dist/validation/doctor/checks.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260924000000_t12354-project-paths/migration.sql +40 -0
- package/migrations/drizzle-nexus/20260924000000_t12315-nexus-parse-cache/migration.sql +21 -0
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +3 -3
- package/templates/cleo-gitignore +7 -0
package/dist/doctor/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export type { PragmaSsot, PragmaSsotEntry } from './pragma-ssot.js';
|
|
|
30
30
|
export { loadPragmaSsot, normalisePragmaValue, PRAGMA_VALUE_NORMALISERS, } from './pragma-ssot.js';
|
|
31
31
|
export { auditSagaHierarchy } from './saga-audit.js';
|
|
32
32
|
export type { SupersededStoreEntry, SupersededStoreScanResult } from './superseded-store.js';
|
|
33
|
-
export { LIVE_STORE_FILENAME, scanSupersededStores } from './superseded-store.js';
|
|
33
|
+
export { LIVE_STORE_FILENAME, SUPERSEDED_STORE_RECONCILE_COMMAND, scanSupersededStores, } from './superseded-store.js';
|
|
34
34
|
export type { PruneOptions, ScanOptions } from './worktree-orphans.js';
|
|
35
35
|
export { auditWorktreeOrphansComprehensive, pruneWorktreeOrphans, scanWorktreeOrphans, } from './worktree-orphans.js';
|
|
36
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EACL,mBAAmB,EACnB,kCAAkC,EAClC,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EACL,iCAAiC,EACjC,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC"}
|
package/dist/doctor/index.js
CHANGED
|
@@ -30,6 +30,6 @@ export { buildRecommendation, isUnitDangerous, scanLegacyReaper } from './legacy
|
|
|
30
30
|
export { scanMalformedTaskIds } from './malformed-task-ids.js';
|
|
31
31
|
export { loadPragmaSsot, normalisePragmaValue, PRAGMA_VALUE_NORMALISERS, } from './pragma-ssot.js';
|
|
32
32
|
export { auditSagaHierarchy } from './saga-audit.js';
|
|
33
|
-
export { LIVE_STORE_FILENAME, scanSupersededStores } from './superseded-store.js';
|
|
33
|
+
export { LIVE_STORE_FILENAME, SUPERSEDED_STORE_RECONCILE_COMMAND, scanSupersededStores, } from './superseded-store.js';
|
|
34
34
|
export { auditWorktreeOrphansComprehensive, pruneWorktreeOrphans, scanWorktreeOrphans, } from './worktree-orphans.js';
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
package/dist/doctor/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,kFAAkF;AAClF,kFAAkF;AAClF,kEAAkE;AAClE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,+EAA+E;AAC/E,8CAA8C;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,kFAAkF;AAClF,kFAAkF;AAClF,kEAAkE;AAClE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,+EAA+E;AAC/E,8CAA8C;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,mBAAmB,EACnB,kCAAkC,EAClC,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iCAAiC,EACjC,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC"}
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* Each MUST exist in exactly one of the two schemas. Sourced from
|
|
58
58
|
* `schema/cleo-global/nexus.ts`, which is their only declaration.
|
|
59
59
|
*/
|
|
60
|
-
export declare const NEXUS_FALLTHROUGH_TABLES: readonly ["nexus_audit_log", "nexus_project_id_aliases", "nexus_project_registry", "nexus_sigils", "nexus_user_profile"];
|
|
60
|
+
export declare const NEXUS_FALLTHROUGH_TABLES: readonly ["nexus_audit_log", "nexus_project_id_aliases", "nexus_project_paths", "nexus_project_registry", "nexus_sigils", "nexus_user_profile"];
|
|
61
61
|
/**
|
|
62
62
|
* Code-graph tables that moved to the project scope under ADR-090 / T11538.
|
|
63
63
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus-schema-residency.d.ts","sourceRoot":"","sources":["../../src/doctor/nexus-schema-residency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAMH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"nexus-schema-residency.d.ts","sourceRoot":"","sources":["../../src/doctor/nexus-schema-residency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAMH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,iJAO3B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,oFAK7B,CAAC;AAEX,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,uBAAuB,CAAC;IAC9D,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,uCAAuC;AACvC,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,yCAAyC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,mDAAmD;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,wBAAwB,CA+D1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus-schema-residency.js","sourceRoot":"","sources":["../../src/doctor/nexus-schema-residency.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nexus-schema-residency.js","sourceRoot":"","sources":["../../src/doctor/nexus-schema-residency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inspect and resolve the portable project identity (T12353 · ADR-094).
|
|
3
|
+
*
|
|
4
|
+
* `.cleo/project-id` is tracked and write-once. `project-info.json` holds the
|
|
5
|
+
* id that local state is keyed by, and it is not tracked. T12325 made
|
|
6
|
+
* `cleo init` report a disagreement between the two and keep the local id,
|
|
7
|
+
* but left the operator without a way to see or fix it. This module is that
|
|
8
|
+
* way:
|
|
9
|
+
*
|
|
10
|
+
* - {@link inspectProjectIdentity} is read-only. It classifies the pair, checks
|
|
11
|
+
* whether git actually tracks the file, and returns the exact remedy command.
|
|
12
|
+
* - {@link resolveProjectIdentity} applies the remedy. For a conflict it
|
|
13
|
+
* re-keys the LOCAL side to the tracked id. The registry row's primary key
|
|
14
|
+
* and every alias pointing at the old id are updated in one registry
|
|
15
|
+
* transaction, and the old id is itself recorded as an alias. Nothing is
|
|
16
|
+
* deleted: rows elsewhere that still carry the old id (audit log, session
|
|
17
|
+
* manifest, background jobs) keep resolving through the alias table.
|
|
18
|
+
*
|
|
19
|
+
* The tracked file is never modified here. It is write-once, and a malformed
|
|
20
|
+
* one is restored from version control, never regenerated.
|
|
21
|
+
*
|
|
22
|
+
* @task T12353
|
|
23
|
+
* @see ADR-094 — write-once portable project identity (amends ADR-013 §9)
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Classification of a project's identity pair.
|
|
27
|
+
*
|
|
28
|
+
* - `ok` — both files agree, and git tracks `.cleo/project-id`.
|
|
29
|
+
* - `uninitialized` — neither file exists.
|
|
30
|
+
* - `not-adopted` — only the tracked file exists (a fresh clone before `cleo init`).
|
|
31
|
+
* - `missing` — `project-info.json` has an id, but `.cleo/project-id` is absent.
|
|
32
|
+
* - `conflict` — both exist and disagree.
|
|
33
|
+
* - `invalid` — `.cleo/project-id` exists but cannot be parsed.
|
|
34
|
+
* - `info-invalid` — `project-info.json` exists but has no usable id.
|
|
35
|
+
* - `untracked` — the pair agrees, but git does not track the file yet.
|
|
36
|
+
* - `ignored` — the pair agrees, but a gitignore rule excludes the file.
|
|
37
|
+
*/
|
|
38
|
+
export type ProjectIdentityState = 'ok' | 'uninitialized' | 'not-adopted' | 'missing' | 'conflict' | 'invalid' | 'info-invalid' | 'untracked' | 'ignored';
|
|
39
|
+
/** Read-only report produced by {@link inspectProjectIdentity}. */
|
|
40
|
+
export interface ProjectIdentityInspection {
|
|
41
|
+
/** Absolute project root that was inspected. */
|
|
42
|
+
readonly projectRoot: string;
|
|
43
|
+
/** Classification of the pair. */
|
|
44
|
+
readonly state: ProjectIdentityState;
|
|
45
|
+
/** Id in `.cleo/project-id`, when valid. */
|
|
46
|
+
readonly trackedId: string | null;
|
|
47
|
+
/** Id in `project-info.json`, when present. */
|
|
48
|
+
readonly localId: string | null;
|
|
49
|
+
/** One-line explanation. */
|
|
50
|
+
readonly message: string;
|
|
51
|
+
/** Exact command(s) that fix it, or `null` when nothing needs fixing. */
|
|
52
|
+
readonly remedy: string | null;
|
|
53
|
+
}
|
|
54
|
+
/** One step {@link resolveProjectIdentity} took or would take. */
|
|
55
|
+
export interface IdentityResolutionStep {
|
|
56
|
+
/** What the step does. */
|
|
57
|
+
readonly action: 'write-tracked-id' | 'rekey-registry-row' | 'repoint-aliases' | 'alias-old-id' | 'drop-inverted-alias' | 'rewrite-project-info';
|
|
58
|
+
/** Human-readable detail with the ids and counts involved. */
|
|
59
|
+
readonly detail: string;
|
|
60
|
+
}
|
|
61
|
+
/** Result of {@link resolveProjectIdentity}. */
|
|
62
|
+
export interface IdentityResolution {
|
|
63
|
+
/** `true` when nothing was written. */
|
|
64
|
+
readonly dryRun: boolean;
|
|
65
|
+
/** State before resolving. */
|
|
66
|
+
readonly before: ProjectIdentityInspection;
|
|
67
|
+
/** Steps, in order. When `dryRun` is `true`, none of them were applied. */
|
|
68
|
+
readonly steps: readonly IdentityResolutionStep[];
|
|
69
|
+
/** Registry row count before and after; equal counts show no row was lost. */
|
|
70
|
+
readonly registryRows: {
|
|
71
|
+
readonly before: number;
|
|
72
|
+
readonly after: number;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Why no steps were planned. Set when the state needs no resolution, or
|
|
76
|
+
* when resolving is refused (the message then carries the remedy).
|
|
77
|
+
*/
|
|
78
|
+
readonly refused: string | null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Classify the identity pair of a project, read-only.
|
|
82
|
+
*
|
|
83
|
+
* @param projectRoot - Absolute project root.
|
|
84
|
+
* @returns The inspection with the exact remedy command.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* const report = inspectProjectIdentity('/repo');
|
|
89
|
+
* if (report.remedy) console.log(report.remedy);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function inspectProjectIdentity(projectRoot: string): ProjectIdentityInspection;
|
|
93
|
+
/** Options for {@link resolveProjectIdentity}. */
|
|
94
|
+
export interface ResolveProjectIdentityOptions {
|
|
95
|
+
/** Plan only; write nothing. */
|
|
96
|
+
dryRun?: boolean;
|
|
97
|
+
/** Global CLEO home whose registry is re-keyed (defaults to the current one). */
|
|
98
|
+
cleoHome?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Resolve the identity state that {@link inspectProjectIdentity} reported.
|
|
102
|
+
*
|
|
103
|
+
* - `missing` writes `.cleo/project-id` from the local id (create-only).
|
|
104
|
+
* - `info-invalid` re-runs the scaffold decision (tracked id or registry re-link).
|
|
105
|
+
* - `conflict` re-keys local state to the tracked id. One registry transaction
|
|
106
|
+
* renames the row's primary key, re-points aliases and records the old id as
|
|
107
|
+
* an alias. Then `project-info.json` is rewritten, keeping the old id under
|
|
108
|
+
* `previousProjectIds`.
|
|
109
|
+
*
|
|
110
|
+
* Every other state is refused with its remedy. The operation is idempotent:
|
|
111
|
+
* re-running after a partial apply completes the remaining steps.
|
|
112
|
+
*
|
|
113
|
+
* @param projectRoot - Absolute project root.
|
|
114
|
+
* @param options - `dryRun` and registry home.
|
|
115
|
+
* @returns The plan (dry run) or the applied steps, with registry row counts.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* const plan = await resolveProjectIdentity(root, { dryRun: true });
|
|
120
|
+
* if (!plan.refused) await resolveProjectIdentity(root);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function resolveProjectIdentity(projectRoot: string, options?: ResolveProjectIdentityOptions): Promise<IdentityResolution>;
|
|
124
|
+
//# sourceMappingURL=project-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-identity.d.ts","sourceRoot":"","sources":["../../src/doctor/project-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAgBH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAC5B,IAAI,GACJ,eAAe,GACf,aAAa,GACb,SAAS,GACT,UAAU,GACV,SAAS,GACT,cAAc,GACd,WAAW,GACX,SAAS,CAAC;AAEd,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EACX,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,cAAc,GACd,qBAAqB,GACrB,sBAAsB,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAClD,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAkCD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAiFrF;AASD,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,kBAAkB,CAAC,CA4I7B"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inspect and resolve the portable project identity (T12353 · ADR-094).
|
|
3
|
+
*
|
|
4
|
+
* `.cleo/project-id` is tracked and write-once. `project-info.json` holds the
|
|
5
|
+
* id that local state is keyed by, and it is not tracked. T12325 made
|
|
6
|
+
* `cleo init` report a disagreement between the two and keep the local id,
|
|
7
|
+
* but left the operator without a way to see or fix it. This module is that
|
|
8
|
+
* way:
|
|
9
|
+
*
|
|
10
|
+
* - {@link inspectProjectIdentity} is read-only. It classifies the pair, checks
|
|
11
|
+
* whether git actually tracks the file, and returns the exact remedy command.
|
|
12
|
+
* - {@link resolveProjectIdentity} applies the remedy. For a conflict it
|
|
13
|
+
* re-keys the LOCAL side to the tracked id. The registry row's primary key
|
|
14
|
+
* and every alias pointing at the old id are updated in one registry
|
|
15
|
+
* transaction, and the old id is itself recorded as an alias. Nothing is
|
|
16
|
+
* deleted: rows elsewhere that still carry the old id (audit log, session
|
|
17
|
+
* manifest, background jobs) keep resolving through the alias table.
|
|
18
|
+
*
|
|
19
|
+
* The tracked file is never modified here. It is write-once, and a malformed
|
|
20
|
+
* one is restored from version control, never regenerated.
|
|
21
|
+
*
|
|
22
|
+
* @task T12353
|
|
23
|
+
* @see ADR-094 — write-once portable project identity (amends ADR-013 §9)
|
|
24
|
+
*/
|
|
25
|
+
import { execFileSync } from 'node:child_process';
|
|
26
|
+
import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
27
|
+
import { join } from 'node:path';
|
|
28
|
+
import { getCleoHome, isValidPortableProjectId, PORTABLE_PROJECT_ID_FILE, readPortableProjectId, } from '@cleocode/paths';
|
|
29
|
+
import { ensurePortableProjectId } from '../scaffold/project-identity.js';
|
|
30
|
+
/** Command that reports identity state; the prefix of every remedy below. */
|
|
31
|
+
const IDENTITY_COMMAND = 'cleo doctor project-identity';
|
|
32
|
+
/** Read the id and the whole object from `project-info.json`; `undefined` when absent. */
|
|
33
|
+
function readInfo(projectRoot) {
|
|
34
|
+
const path = join(projectRoot, '.cleo', 'project-info.json');
|
|
35
|
+
if (!existsSync(path))
|
|
36
|
+
return undefined;
|
|
37
|
+
try {
|
|
38
|
+
const data = JSON.parse(readFileSync(path, 'utf-8'));
|
|
39
|
+
const id = data['projectId'];
|
|
40
|
+
return { data, id: typeof id === 'string' && isValidPortableProjectId(id) ? id : null };
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return 'unparseable';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Git's view of the tracked file: `null` when this is not a git work tree. */
|
|
47
|
+
function gitFileState(projectRoot) {
|
|
48
|
+
const rel = `.cleo/${PORTABLE_PROJECT_ID_FILE}`;
|
|
49
|
+
const run = (args) => {
|
|
50
|
+
try {
|
|
51
|
+
execFileSync('git', args, { cwd: projectRoot, stdio: 'pipe' });
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
if (!run(['rev-parse', '--is-inside-work-tree']))
|
|
59
|
+
return null;
|
|
60
|
+
if (run(['ls-files', '--error-unmatch', rel]))
|
|
61
|
+
return 'tracked';
|
|
62
|
+
if (run(['check-ignore', '-q', rel]))
|
|
63
|
+
return 'ignored';
|
|
64
|
+
return 'untracked';
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Classify the identity pair of a project, read-only.
|
|
68
|
+
*
|
|
69
|
+
* @param projectRoot - Absolute project root.
|
|
70
|
+
* @returns The inspection with the exact remedy command.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* const report = inspectProjectIdentity('/repo');
|
|
75
|
+
* if (report.remedy) console.log(report.remedy);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export function inspectProjectIdentity(projectRoot) {
|
|
79
|
+
const tracked = readPortableProjectId(projectRoot);
|
|
80
|
+
const info = readInfo(projectRoot);
|
|
81
|
+
const trackedId = tracked.status === 'valid' ? tracked.projectId : null;
|
|
82
|
+
const localId = info && info !== 'unparseable' ? info.id : null;
|
|
83
|
+
const base = { projectRoot, trackedId, localId };
|
|
84
|
+
if (tracked.status === 'invalid') {
|
|
85
|
+
return {
|
|
86
|
+
...base,
|
|
87
|
+
state: 'invalid',
|
|
88
|
+
message: `.cleo/project-id is unusable (${tracked.reason}). CLEO never regenerates it.`,
|
|
89
|
+
remedy: 'git checkout -- .cleo/project-id (restore the committed id; inspect with `git log -p -- .cleo/project-id`)',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
if (info === undefined) {
|
|
93
|
+
return trackedId
|
|
94
|
+
? {
|
|
95
|
+
...base,
|
|
96
|
+
state: 'not-adopted',
|
|
97
|
+
message: `.cleo/project-id declares ${trackedId}, but this checkout has not been initialized.`,
|
|
98
|
+
remedy: 'cleo init (adopts the tracked id; it never mints a new one)',
|
|
99
|
+
}
|
|
100
|
+
: {
|
|
101
|
+
...base,
|
|
102
|
+
state: 'uninitialized',
|
|
103
|
+
message: 'No project identity: neither .cleo/project-info.json nor .cleo/project-id exists.',
|
|
104
|
+
remedy: 'cleo init',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (!localId) {
|
|
108
|
+
return {
|
|
109
|
+
...base,
|
|
110
|
+
state: 'info-invalid',
|
|
111
|
+
message: '.cleo/project-info.json has no usable projectId.',
|
|
112
|
+
remedy: `${IDENTITY_COMMAND} --resolve (takes the tracked id, or re-links from the registry)`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (!trackedId) {
|
|
116
|
+
return {
|
|
117
|
+
...base,
|
|
118
|
+
state: 'missing',
|
|
119
|
+
message: `.cleo/project-id is missing. The local id is ${localId}.`,
|
|
120
|
+
remedy: `${IDENTITY_COMMAND} --resolve && git add .cleo/project-id && git commit -m "chore: track CLEO project id"`,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
if (trackedId !== localId) {
|
|
124
|
+
return {
|
|
125
|
+
...base,
|
|
126
|
+
state: 'conflict',
|
|
127
|
+
message: `Identity conflict: .cleo/project-id is ${trackedId}, but project-info.json is ${localId}. Two lineages; local state is still keyed by ${localId}.`,
|
|
128
|
+
remedy: `${IDENTITY_COMMAND} --resolve --dry-run then ${IDENTITY_COMMAND} --resolve (re-keys local state to ${trackedId}; ${localId} stays resolvable as an alias)`,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const git = gitFileState(projectRoot);
|
|
132
|
+
if (git === 'ignored') {
|
|
133
|
+
return {
|
|
134
|
+
...base,
|
|
135
|
+
state: 'ignored',
|
|
136
|
+
message: '.cleo/project-id is gitignored, so clones cannot inherit it. The .cleo/.gitignore predates ADR-094.',
|
|
137
|
+
remedy: 'cleo upgrade (refreshes .cleo/.gitignore with `!project-id`), then git add .cleo/project-id',
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
if (git === 'untracked') {
|
|
141
|
+
return {
|
|
142
|
+
...base,
|
|
143
|
+
state: 'untracked',
|
|
144
|
+
message: '.cleo/project-id is not committed yet, so clones cannot inherit it.',
|
|
145
|
+
remedy: 'git add .cleo/project-id && git commit -m "chore: track CLEO project id"',
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
...base,
|
|
150
|
+
state: 'ok',
|
|
151
|
+
message: `Project identity ${trackedId} is tracked and consistent.`,
|
|
152
|
+
remedy: null,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/** Write JSON atomically (tmp + rename) so a crash never leaves a half file. */
|
|
156
|
+
function writeJsonAtomic(path, data) {
|
|
157
|
+
const tmp = `${path}.tmp-${process.pid}`;
|
|
158
|
+
writeFileSync(tmp, `${JSON.stringify(data, null, 2)}\n`);
|
|
159
|
+
renameSync(tmp, path);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Resolve the identity state that {@link inspectProjectIdentity} reported.
|
|
163
|
+
*
|
|
164
|
+
* - `missing` writes `.cleo/project-id` from the local id (create-only).
|
|
165
|
+
* - `info-invalid` re-runs the scaffold decision (tracked id or registry re-link).
|
|
166
|
+
* - `conflict` re-keys local state to the tracked id. One registry transaction
|
|
167
|
+
* renames the row's primary key, re-points aliases and records the old id as
|
|
168
|
+
* an alias. Then `project-info.json` is rewritten, keeping the old id under
|
|
169
|
+
* `previousProjectIds`.
|
|
170
|
+
*
|
|
171
|
+
* Every other state is refused with its remedy. The operation is idempotent:
|
|
172
|
+
* re-running after a partial apply completes the remaining steps.
|
|
173
|
+
*
|
|
174
|
+
* @param projectRoot - Absolute project root.
|
|
175
|
+
* @param options - `dryRun` and registry home.
|
|
176
|
+
* @returns The plan (dry run) or the applied steps, with registry row counts.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* const plan = await resolveProjectIdentity(root, { dryRun: true });
|
|
181
|
+
* if (!plan.refused) await resolveProjectIdentity(root);
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export async function resolveProjectIdentity(projectRoot, options = {}) {
|
|
185
|
+
const dryRun = options.dryRun === true;
|
|
186
|
+
const before = inspectProjectIdentity(projectRoot);
|
|
187
|
+
const steps = [];
|
|
188
|
+
const result = (refused, rows = { before: 0, after: 0 }) => ({ dryRun, before, steps, registryRows: rows, refused });
|
|
189
|
+
if (before.state === 'missing' && before.localId) {
|
|
190
|
+
steps.push({
|
|
191
|
+
action: 'write-tracked-id',
|
|
192
|
+
detail: `create .cleo/project-id = ${before.localId}`,
|
|
193
|
+
});
|
|
194
|
+
if (!dryRun)
|
|
195
|
+
await ensurePortableProjectId(projectRoot, before.localId);
|
|
196
|
+
return result(null);
|
|
197
|
+
}
|
|
198
|
+
if (before.state === 'info-invalid') {
|
|
199
|
+
steps.push({
|
|
200
|
+
action: 'rewrite-project-info',
|
|
201
|
+
detail: 'regenerate the project-info.json id from .cleo/project-id or the registry',
|
|
202
|
+
});
|
|
203
|
+
if (!dryRun) {
|
|
204
|
+
const { ensureProjectInfo } = await import('../scaffold/ensure-config.js');
|
|
205
|
+
await ensureProjectInfo(projectRoot, { force: true });
|
|
206
|
+
}
|
|
207
|
+
return result(null);
|
|
208
|
+
}
|
|
209
|
+
if (before.state !== 'conflict' || !before.trackedId || !before.localId) {
|
|
210
|
+
return result(before.remedy ? `${before.message} Remedy: ${before.remedy}` : 'Nothing to resolve.');
|
|
211
|
+
}
|
|
212
|
+
const oldId = before.localId;
|
|
213
|
+
const newId = before.trackedId;
|
|
214
|
+
const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
|
|
215
|
+
const { projectIdAliases, projectRegistry } = await import('../store/schema/nexus-schema.js');
|
|
216
|
+
const { eq } = await import('drizzle-orm');
|
|
217
|
+
const db = await getNexusRegistryDb(options.cleoHome ?? getCleoHome());
|
|
218
|
+
const countRows = () => db.select().from(projectRegistry).all().length;
|
|
219
|
+
const rowsBefore = countRows();
|
|
220
|
+
const oldRow = db
|
|
221
|
+
.select()
|
|
222
|
+
.from(projectRegistry)
|
|
223
|
+
.where(eq(projectRegistry.projectId, oldId))
|
|
224
|
+
.get();
|
|
225
|
+
const newRow = db
|
|
226
|
+
.select()
|
|
227
|
+
.from(projectRegistry)
|
|
228
|
+
.where(eq(projectRegistry.projectId, newId))
|
|
229
|
+
.get();
|
|
230
|
+
if (oldRow && newRow) {
|
|
231
|
+
return result(`Both ids are registered on this device: ${oldId} at ${oldRow.projectPath} and ${newId} at ${newRow.projectPath}. ` +
|
|
232
|
+
'One registry row cannot hold two paths. ' +
|
|
233
|
+
`Remedy: if ${newRow.projectPath} is gone or is a stale checkout, run \`cleo nexus unregister ${newId}\` and then re-run \`${IDENTITY_COMMAND} --resolve\`.`, { before: rowsBefore, after: rowsBefore });
|
|
234
|
+
}
|
|
235
|
+
const newIdAlias = db
|
|
236
|
+
.select()
|
|
237
|
+
.from(projectIdAliases)
|
|
238
|
+
.where(eq(projectIdAliases.legacyId, newId))
|
|
239
|
+
.get();
|
|
240
|
+
if (newIdAlias && newIdAlias.canonicalId !== oldId && newIdAlias.canonicalId !== newId) {
|
|
241
|
+
return result(`${newId} is already an alias of a third identity (${newIdAlias.canonicalId}). Refusing to re-key. ` +
|
|
242
|
+
`Remedy: inspect with \`cleo nexus show ${newIdAlias.canonicalId}\` before retrying.`, { before: rowsBefore, after: rowsBefore });
|
|
243
|
+
}
|
|
244
|
+
const repointed = db
|
|
245
|
+
.select()
|
|
246
|
+
.from(projectIdAliases)
|
|
247
|
+
.where(eq(projectIdAliases.canonicalId, oldId))
|
|
248
|
+
.all();
|
|
249
|
+
if (oldRow)
|
|
250
|
+
steps.push({
|
|
251
|
+
action: 'rekey-registry-row',
|
|
252
|
+
detail: `registry row ${oldId} -> ${newId} (path ${oldRow.projectPath} kept)`,
|
|
253
|
+
});
|
|
254
|
+
if (newIdAlias?.canonicalId === oldId)
|
|
255
|
+
steps.push({
|
|
256
|
+
action: 'drop-inverted-alias',
|
|
257
|
+
detail: `alias ${newId} -> ${oldId} (it would point the new id at the old one)`,
|
|
258
|
+
});
|
|
259
|
+
steps.push({
|
|
260
|
+
action: 'repoint-aliases',
|
|
261
|
+
detail: `${repointed.length} alias row(s) canonical ${oldId} -> ${newId}`,
|
|
262
|
+
});
|
|
263
|
+
steps.push({ action: 'alias-old-id', detail: `alias ${oldId} -> ${newId}` });
|
|
264
|
+
steps.push({
|
|
265
|
+
action: 'rewrite-project-info',
|
|
266
|
+
detail: `project-info.json projectId ${oldId} -> ${newId} (previousProjectIds keeps ${oldId})`,
|
|
267
|
+
});
|
|
268
|
+
if (dryRun)
|
|
269
|
+
return result(null, { before: rowsBefore, after: rowsBefore });
|
|
270
|
+
const now = new Date().toISOString();
|
|
271
|
+
db.transaction((tx) => {
|
|
272
|
+
if (oldRow)
|
|
273
|
+
tx.update(projectRegistry)
|
|
274
|
+
.set({ projectId: newId })
|
|
275
|
+
.where(eq(projectRegistry.projectId, oldId))
|
|
276
|
+
.run();
|
|
277
|
+
if (newIdAlias?.canonicalId === oldId)
|
|
278
|
+
tx.delete(projectIdAliases).where(eq(projectIdAliases.legacyId, newId)).run();
|
|
279
|
+
tx.update(projectIdAliases)
|
|
280
|
+
.set({ canonicalId: newId })
|
|
281
|
+
.where(eq(projectIdAliases.canonicalId, oldId))
|
|
282
|
+
.run();
|
|
283
|
+
const oldAlias = tx
|
|
284
|
+
.select()
|
|
285
|
+
.from(projectIdAliases)
|
|
286
|
+
.where(eq(projectIdAliases.legacyId, oldId))
|
|
287
|
+
.get();
|
|
288
|
+
if (!oldAlias)
|
|
289
|
+
tx.insert(projectIdAliases)
|
|
290
|
+
.values({ legacyId: oldId, canonicalId: newId, createdAt: now })
|
|
291
|
+
.run();
|
|
292
|
+
}, { behavior: 'immediate' });
|
|
293
|
+
const info = readInfo(projectRoot);
|
|
294
|
+
if (info && info !== 'unparseable') {
|
|
295
|
+
const previous = Array.isArray(info.data['previousProjectIds'])
|
|
296
|
+
? info.data['previousProjectIds'].filter((id) => typeof id === 'string')
|
|
297
|
+
: [];
|
|
298
|
+
writeJsonAtomic(join(projectRoot, '.cleo', 'project-info.json'), {
|
|
299
|
+
...info.data,
|
|
300
|
+
projectId: newId,
|
|
301
|
+
previousProjectIds: [...new Set([...previous, oldId])],
|
|
302
|
+
lastUpdated: now,
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
return result(null, { before: rowsBefore, after: countRows() });
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=project-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-identity.js","sourceRoot":"","sources":["../../src/doctor/project-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,12 @@ export interface SupersededStoreEntry {
|
|
|
57
57
|
readonly rowsInSuperseded: number | null;
|
|
58
58
|
/** Rows found in the LIVE store's prefixed table. */
|
|
59
59
|
readonly rowsInLive: number | null;
|
|
60
|
+
/**
|
|
61
|
+
* Rows of the superseded table whose `id` is ABSENT from the live table —
|
|
62
|
+
* what `--reconcile` would still copy. `0` means every row is already in
|
|
63
|
+
* `cleo.db`; `null` means the comparison could not be made (T12319).
|
|
64
|
+
*/
|
|
65
|
+
readonly missingInLive: number | null;
|
|
60
66
|
/**
|
|
61
67
|
* True when the live store demonstrably holds the data and this file does
|
|
62
68
|
* not — i.e. it is safe to archive. False keeps the entry but withholds the
|
|
@@ -80,6 +86,8 @@ export interface SupersededStoreScanResult {
|
|
|
80
86
|
}
|
|
81
87
|
/** The dual-scope store filename (ADR-068). */
|
|
82
88
|
export declare const LIVE_STORE_FILENAME = "cleo.db";
|
|
89
|
+
/** The supported command that copies stranded rows into `cleo.db` (T12319). */
|
|
90
|
+
export declare const SUPERSEDED_STORE_RECONCILE_COMMAND = "cleo doctor superseded-store --reconcile";
|
|
83
91
|
/**
|
|
84
92
|
* Scan a project for store files superseded by `cleo.db`.
|
|
85
93
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"superseded-store.d.ts","sourceRoot":"","sources":["../../src/doctor/superseded-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACnD;AAgBD,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"superseded-store.d.ts","sourceRoot":"","sources":["../../src/doctor/superseded-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACnD;AAgBD,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAqE7C,+EAA+E;AAC/E,eAAO,MAAM,kCAAkC,6CAA6C,CAAC;AAE7F;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAmFnF"}
|