@cleocode/core 2026.9.15 → 2026.9.17

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.
Files changed (220) hide show
  1. package/dist/changesets/parser.d.ts.map +1 -1
  2. package/dist/changesets/parser.js +67 -0
  3. package/dist/changesets/parser.js.map +1 -1
  4. package/dist/crypto/credentials.d.ts +128 -26
  5. package/dist/crypto/credentials.d.ts.map +1 -1
  6. package/dist/crypto/credentials.js +183 -142
  7. package/dist/crypto/credentials.js.map +1 -1
  8. package/dist/docs/export-document.js +14705 -12949
  9. package/dist/docs/export-document.js.map +3 -3
  10. package/dist/doctor/index.d.ts +1 -1
  11. package/dist/doctor/index.d.ts.map +1 -1
  12. package/dist/doctor/index.js +1 -1
  13. package/dist/doctor/index.js.map +1 -1
  14. package/dist/doctor/nexus-schema-residency.d.ts +1 -1
  15. package/dist/doctor/nexus-schema-residency.d.ts.map +1 -1
  16. package/dist/doctor/nexus-schema-residency.js +1 -0
  17. package/dist/doctor/nexus-schema-residency.js.map +1 -1
  18. package/dist/doctor/project-identity.d.ts +124 -0
  19. package/dist/doctor/project-identity.d.ts.map +1 -0
  20. package/dist/doctor/project-identity.js +307 -0
  21. package/dist/doctor/project-identity.js.map +1 -0
  22. package/dist/doctor/superseded-store.d.ts +8 -0
  23. package/dist/doctor/superseded-store.d.ts.map +1 -1
  24. package/dist/doctor/superseded-store.js +48 -3
  25. package/dist/doctor/superseded-store.js.map +1 -1
  26. package/dist/init.d.ts +7 -0
  27. package/dist/init.d.ts.map +1 -1
  28. package/dist/init.js +17 -2
  29. package/dist/init.js.map +1 -1
  30. package/dist/internal.d.ts +5 -2
  31. package/dist/internal.d.ts.map +1 -1
  32. package/dist/internal.js +4 -2
  33. package/dist/internal.js.map +1 -1
  34. package/dist/llm/credentials-store.d.ts +10 -0
  35. package/dist/llm/credentials-store.d.ts.map +1 -1
  36. package/dist/llm/credentials-store.js +7 -1
  37. package/dist/llm/credentials-store.js.map +1 -1
  38. package/dist/llm/plugin-facade.js +13368 -1550
  39. package/dist/llm/plugin-facade.js.map +3 -3
  40. package/dist/nexus/analyze-orchestrator.d.ts +20 -3
  41. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  42. package/dist/nexus/analyze-orchestrator.js +159 -10
  43. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  44. package/dist/nexus/assessment-store.d.ts +57 -0
  45. package/dist/nexus/assessment-store.d.ts.map +1 -0
  46. package/dist/nexus/assessment-store.js +73 -0
  47. package/dist/nexus/assessment-store.js.map +1 -0
  48. package/dist/nexus/freshness.d.ts +131 -0
  49. package/dist/nexus/freshness.d.ts.map +1 -0
  50. package/dist/nexus/freshness.js +391 -0
  51. package/dist/nexus/freshness.js.map +1 -0
  52. package/dist/nexus/graph-manifest.d.ts +88 -0
  53. package/dist/nexus/graph-manifest.d.ts.map +1 -0
  54. package/dist/nexus/graph-manifest.js +114 -0
  55. package/dist/nexus/graph-manifest.js.map +1 -0
  56. package/dist/nexus/knowledge.d.ts +21 -1
  57. package/dist/nexus/knowledge.d.ts.map +1 -1
  58. package/dist/nexus/knowledge.js +76 -37
  59. package/dist/nexus/knowledge.js.map +1 -1
  60. package/dist/nexus/path-map.d.ts +55 -0
  61. package/dist/nexus/path-map.d.ts.map +1 -0
  62. package/dist/nexus/path-map.js +87 -0
  63. package/dist/nexus/path-map.js.map +1 -0
  64. package/dist/nexus/projects-clean.d.ts +21 -28
  65. package/dist/nexus/projects-clean.d.ts.map +1 -1
  66. package/dist/nexus/projects-clean.js +168 -85
  67. package/dist/nexus/projects-clean.js.map +1 -1
  68. package/dist/nexus/query.d.ts.map +1 -1
  69. package/dist/nexus/query.js +3 -2
  70. package/dist/nexus/query.js.map +1 -1
  71. package/dist/nexus/registry-hygiene.d.ts +70 -0
  72. package/dist/nexus/registry-hygiene.d.ts.map +1 -0
  73. package/dist/nexus/registry-hygiene.js +113 -0
  74. package/dist/nexus/registry-hygiene.js.map +1 -0
  75. package/dist/nexus/registry.d.ts +2 -2
  76. package/dist/nexus/registry.d.ts.map +1 -1
  77. package/dist/nexus/registry.js +48 -12
  78. package/dist/nexus/registry.js.map +1 -1
  79. package/dist/paths.d.ts +26 -0
  80. package/dist/paths.d.ts.map +1 -1
  81. package/dist/paths.js +99 -6
  82. package/dist/paths.js.map +1 -1
  83. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  84. package/dist/render/nexus/graph/index.js +8 -0
  85. package/dist/render/nexus/graph/index.js.map +1 -1
  86. package/dist/resources/spawn-wrapper.d.ts +0 -11
  87. package/dist/resources/spawn-wrapper.d.ts.map +1 -1
  88. package/dist/resources/spawn-wrapper.js +62 -6
  89. package/dist/resources/spawn-wrapper.js.map +1 -1
  90. package/dist/scaffold/ensure-config.d.ts +12 -3
  91. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  92. package/dist/scaffold/ensure-config.js +61 -38
  93. package/dist/scaffold/ensure-config.js.map +1 -1
  94. package/dist/scaffold/project-identity.d.ts +136 -0
  95. package/dist/scaffold/project-identity.d.ts.map +1 -0
  96. package/dist/scaffold/project-identity.js +225 -0
  97. package/dist/scaffold/project-identity.js.map +1 -0
  98. package/dist/selfimprove/fix-gen.js +13319 -1556
  99. package/dist/selfimprove/fix-gen.js.map +3 -3
  100. package/dist/store/agent-api-key.d.ts +114 -0
  101. package/dist/store/agent-api-key.d.ts.map +1 -0
  102. package/dist/store/agent-api-key.js +136 -0
  103. package/dist/store/agent-api-key.js.map +1 -0
  104. package/dist/store/agent-registry-accessor.d.ts +4 -2
  105. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  106. package/dist/store/agent-registry-accessor.js +39 -89
  107. package/dist/store/agent-registry-accessor.js.map +1 -1
  108. package/dist/store/api-key-kdf.d.ts +7 -0
  109. package/dist/store/api-key-kdf.d.ts.map +1 -1
  110. package/dist/store/api-key-kdf.js +7 -0
  111. package/dist/store/api-key-kdf.js.map +1 -1
  112. package/dist/store/backup-crypto.d.ts +49 -0
  113. package/dist/store/backup-crypto.d.ts.map +1 -1
  114. package/dist/store/backup-crypto.js +154 -0
  115. package/dist/store/backup-crypto.js.map +1 -1
  116. package/dist/store/credential-transfer.d.ts +303 -0
  117. package/dist/store/credential-transfer.d.ts.map +1 -0
  118. package/dist/store/credential-transfer.js +774 -0
  119. package/dist/store/credential-transfer.js.map +1 -0
  120. package/dist/store/exodus/column-transforms.d.ts +79 -4
  121. package/dist/store/exodus/column-transforms.d.ts.map +1 -1
  122. package/dist/store/exodus/column-transforms.js +121 -4
  123. package/dist/store/exodus/column-transforms.js.map +1 -1
  124. package/dist/store/exodus/index.d.ts +1 -0
  125. package/dist/store/exodus/index.d.ts.map +1 -1
  126. package/dist/store/exodus/index.js +1 -0
  127. package/dist/store/exodus/index.js.map +1 -1
  128. package/dist/store/exodus/migrate.d.ts +17 -1
  129. package/dist/store/exodus/migrate.d.ts.map +1 -1
  130. package/dist/store/exodus/migrate.js +155 -33
  131. package/dist/store/exodus/migrate.js.map +1 -1
  132. package/dist/store/exodus/on-open.d.ts +14 -0
  133. package/dist/store/exodus/on-open.d.ts.map +1 -1
  134. package/dist/store/exodus/on-open.js +115 -6
  135. package/dist/store/exodus/on-open.js.map +1 -1
  136. package/dist/store/exodus/reconcile.d.ts +103 -0
  137. package/dist/store/exodus/reconcile.d.ts.map +1 -0
  138. package/dist/store/exodus/reconcile.js +728 -0
  139. package/dist/store/exodus/reconcile.js.map +1 -0
  140. package/dist/store/exodus/recovery.d.ts.map +1 -1
  141. package/dist/store/exodus/recovery.js +14 -2
  142. package/dist/store/exodus/recovery.js.map +1 -1
  143. package/dist/store/exodus/runtime-targets.d.ts +39 -0
  144. package/dist/store/exodus/runtime-targets.d.ts.map +1 -0
  145. package/dist/store/exodus/runtime-targets.js +63 -0
  146. package/dist/store/exodus/runtime-targets.js.map +1 -0
  147. package/dist/store/exodus/table-name-map.d.ts.map +1 -1
  148. package/dist/store/exodus/table-name-map.js +5 -0
  149. package/dist/store/exodus/table-name-map.js.map +1 -1
  150. package/dist/store/exodus/table-order.d.ts +35 -0
  151. package/dist/store/exodus/table-order.d.ts.map +1 -0
  152. package/dist/store/exodus/table-order.js +62 -0
  153. package/dist/store/exodus/table-order.js.map +1 -0
  154. package/dist/store/exodus/verify-migration.d.ts +4 -1
  155. package/dist/store/exodus/verify-migration.d.ts.map +1 -1
  156. package/dist/store/exodus/verify-migration.js +142 -10
  157. package/dist/store/exodus/verify-migration.js.map +1 -1
  158. package/dist/store/global-salt.d.ts +16 -0
  159. package/dist/store/global-salt.d.ts.map +1 -1
  160. package/dist/store/global-salt.js +22 -7
  161. package/dist/store/global-salt.js.map +1 -1
  162. package/dist/store/legacy-tasks-lineage.d.ts +86 -0
  163. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -0
  164. package/dist/store/legacy-tasks-lineage.js +285 -0
  165. package/dist/store/legacy-tasks-lineage.js.map +1 -0
  166. package/dist/store/migration-manager.d.ts +27 -0
  167. package/dist/store/migration-manager.d.ts.map +1 -1
  168. package/dist/store/migration-manager.js +63 -0
  169. package/dist/store/migration-manager.js.map +1 -1
  170. package/dist/store/portable-bundle-import.d.ts +117 -0
  171. package/dist/store/portable-bundle-import.d.ts.map +1 -0
  172. package/dist/store/portable-bundle-import.js +589 -0
  173. package/dist/store/portable-bundle-import.js.map +1 -0
  174. package/dist/store/portable-bundle-relocate.d.ts +66 -0
  175. package/dist/store/portable-bundle-relocate.d.ts.map +1 -0
  176. package/dist/store/portable-bundle-relocate.js +304 -0
  177. package/dist/store/portable-bundle-relocate.js.map +1 -0
  178. package/dist/store/portable-bundle-scan.d.ts +167 -0
  179. package/dist/store/portable-bundle-scan.d.ts.map +1 -0
  180. package/dist/store/portable-bundle-scan.js +569 -0
  181. package/dist/store/portable-bundle-scan.js.map +1 -0
  182. package/dist/store/portable-bundle.d.ts +146 -0
  183. package/dist/store/portable-bundle.d.ts.map +1 -0
  184. package/dist/store/portable-bundle.js +674 -0
  185. package/dist/store/portable-bundle.js.map +1 -0
  186. package/dist/store/regenerators.d.ts +3 -1
  187. package/dist/store/regenerators.d.ts.map +1 -1
  188. package/dist/store/regenerators.js +6 -2
  189. package/dist/store/regenerators.js.map +1 -1
  190. package/dist/store/schema/cleo-global/nexus.d.ts +98 -0
  191. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  192. package/dist/store/schema/cleo-global/nexus.js +19 -0
  193. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  194. package/dist/store/schema/nexus-schema.d.ts +102 -0
  195. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  196. package/dist/store/schema/nexus-schema.js +24 -0
  197. package/dist/store/schema/nexus-schema.js.map +1 -1
  198. package/dist/store/split-brain-import.d.ts +176 -0
  199. package/dist/store/split-brain-import.d.ts.map +1 -0
  200. package/dist/store/split-brain-import.js +680 -0
  201. package/dist/store/split-brain-import.js.map +1 -0
  202. package/dist/store/sqlite.d.ts +29 -0
  203. package/dist/store/sqlite.d.ts.map +1 -1
  204. package/dist/store/sqlite.js +57 -5
  205. package/dist/store/sqlite.js.map +1 -1
  206. package/dist/system/health.d.ts.map +1 -1
  207. package/dist/system/health.js +30 -5
  208. package/dist/system/health.js.map +1 -1
  209. package/dist/upgrade.d.ts.map +1 -1
  210. package/dist/upgrade.js +60 -0
  211. package/dist/upgrade.js.map +1 -1
  212. package/dist/validation/doctor/checks.d.ts +14 -0
  213. package/dist/validation/doctor/checks.d.ts.map +1 -1
  214. package/dist/validation/doctor/checks.js +33 -0
  215. package/dist/validation/doctor/checks.js.map +1 -1
  216. package/migrations/drizzle-cleo-global/20260924000000_t12354-project-paths/migration.sql +40 -0
  217. package/migrations/drizzle-nexus/20260924000000_t12315-nexus-parse-cache/migration.sql +21 -0
  218. package/package.json +13 -13
  219. package/templates/CLEO-INJECTION.md +3 -3
  220. package/templates/cleo-gitignore +7 -0
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Compact per-generation bookkeeping for cheap freshness checks (T12316).
3
+ *
4
+ * The published `graph_assessment` carries every retained reference with its
5
+ * full evidence — 472 MB of JSON on this repository — so it cannot be read on
6
+ * the query path. The file manifest records only what a freshness check needs
7
+ * (path, size, mtime, content hash per indexed file), and the run summary
8
+ * records what the last analysis cost, so a refresh can be estimated before it
9
+ * is started. Both live in `_nexus_meta` next to the generation they describe.
10
+ *
11
+ * Code placed in `packages/core/` per Package-Boundary Check — verified against AGENTS.md.
12
+ *
13
+ * @task T12316
14
+ * @module nexus/graph-manifest
15
+ */
16
+ import { sql } from 'drizzle-orm';
17
+ import { z } from 'zod';
18
+ /** `_nexus_meta` key of the compact file manifest. */
19
+ const MANIFEST_KEY = 'graph_file_manifest';
20
+ /** `_nexus_meta` key of the last analysis run summary. */
21
+ const RUN_SUMMARY_KEY = 'graph_run_summary';
22
+ const manifestSchema = z.object({
23
+ generation: z.string().nullable(),
24
+ sourceRoot: z.string(),
25
+ includedRepositories: z.array(z.string()),
26
+ assessedAt: z.string(),
27
+ files: z.array(z.tuple([z.string(), z.number(), z.number(), z.string()])),
28
+ });
29
+ const runCostSchema = z.object({
30
+ summary: z.object({
31
+ mode: z.enum(['incremental', 'full', 'unchanged']),
32
+ reason: z.string(),
33
+ changedFiles: z.number(),
34
+ addedFiles: z.number(),
35
+ deletedFiles: z.number(),
36
+ parsedFiles: z.number(),
37
+ reusedFiles: z.number(),
38
+ resolvedFiles: z.number(),
39
+ phaseMs: z.record(z.string(), z.number()),
40
+ }),
41
+ durationMs: z.number(),
42
+ recordedAt: z.string(),
43
+ });
44
+ /**
45
+ * Build the manifest for a generation from its observed files.
46
+ * @param assessment - Assessment of the generation (source root, scope, timestamp).
47
+ * @param files - Files whose size, mtime and hash were observed; others are omitted.
48
+ * @returns The compact manifest.
49
+ */
50
+ export function buildFileManifest(assessment, files) {
51
+ const entries = [];
52
+ for (const file of files) {
53
+ if (file.contentHash && file.size !== undefined && file.mtimeMs !== undefined)
54
+ entries.push([file.path, file.size, file.mtimeMs, file.contentHash]);
55
+ }
56
+ return {
57
+ generation: assessment.generation ?? null,
58
+ sourceRoot: assessment.sourceRoot,
59
+ includedRepositories: [...(assessment.includedRepositories ?? [])],
60
+ assessedAt: assessment.assessedAt,
61
+ files: entries,
62
+ };
63
+ }
64
+ /**
65
+ * Write the manifest; call inside the transaction that publishes its generation.
66
+ * @param tx - Open transaction on the project graph database.
67
+ * @param manifest - Manifest of the generation being committed.
68
+ */
69
+ export function writeFileManifest(tx, manifest) {
70
+ tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES (${MANIFEST_KEY}, ${JSON.stringify(manifest)})
71
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
72
+ }
73
+ /**
74
+ * Remove the manifest; call when a generation is published without one, so a
75
+ * stale manifest can never describe a different generation.
76
+ * @param tx - Open transaction on the project graph database.
77
+ */
78
+ export function clearFileManifest(tx) {
79
+ tx.run(sql `DELETE FROM main._nexus_meta WHERE key = ${MANIFEST_KEY}`);
80
+ }
81
+ /**
82
+ * Read the manifest of the committed generation.
83
+ * @param db - Project graph database.
84
+ * @returns The manifest, or `null` when the generation predates manifests.
85
+ * @throws When a stored manifest is malformed.
86
+ */
87
+ export function readFileManifest(db) {
88
+ const value = db.values(sql `SELECT value FROM main._nexus_meta WHERE key = ${MANIFEST_KEY}`)[0]?.[0];
89
+ if (typeof value !== 'string')
90
+ return null;
91
+ return manifestSchema.parse(JSON.parse(value));
92
+ }
93
+ /**
94
+ * Record what the last publishing analysis cost; advisory, used for estimates.
95
+ * @param db - Project graph database.
96
+ * @param cost - Summary and duration of the run.
97
+ */
98
+ export function writeRunCost(db, cost) {
99
+ db.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES (${RUN_SUMMARY_KEY}, ${JSON.stringify(cost)})
100
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
101
+ }
102
+ /**
103
+ * Read the last recorded run cost.
104
+ * @param db - Project graph database.
105
+ * @returns The cost, or `null` when none (or an unreadable one) is recorded.
106
+ */
107
+ export function readRunCost(db) {
108
+ const value = db.values(sql `SELECT value FROM main._nexus_meta WHERE key = ${RUN_SUMMARY_KEY}`)[0]?.[0];
109
+ if (typeof value !== 'string')
110
+ return null;
111
+ const parsed = runCostSchema.safeParse(JSON.parse(value));
112
+ return parsed.success ? parsed.data : null;
113
+ }
114
+ //# sourceMappingURL=graph-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-manifest.js","sourceRoot":"","sources":["../../src/nexus/graph-manifest.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,14 @@
4
4
  * Code placed in `packages/core/` per Package-Boundary Check — verified
5
5
  * against AGENTS.md. These services do not invoke a language model.
6
6
  */
7
- import type { GraphIndexAssessment, KnowledgeCoverage, KnowledgeCoverageStatus, KnowledgeSymbolCandidate } from '@cleocode/contracts';
7
+ import type { GraphIndexAssessment, GraphIndexReferenceReport, KnowledgeCoverage, KnowledgeCoverageStatus, KnowledgeSymbolCandidate } from '@cleocode/contracts';
8
8
  /**
9
9
  * Read validated generation provenance without treating malformed metadata as healthy.
10
+ *
11
+ * T12348: this is the SUMMARY — the retained reference list is stored
12
+ * separately and reported as `referenceCount`; read it with
13
+ * {@link readKnowledgeIndexReferences}. A historical value with inline
14
+ * `references` is returned as stored.
10
15
  * @param projectRoot - Explicit project root, or the ambient canonical project when omitted.
11
16
  * @returns The published assessment, or null for a legacy generation.
12
17
  * @remarks Reads only through the canonical project store. Malformed metadata throws.
@@ -16,6 +21,21 @@ import type { GraphIndexAssessment, KnowledgeCoverage, KnowledgeCoverageStatus,
16
21
  * ```
17
22
  */
18
23
  export declare function readKnowledgeIndexAssessment(projectRoot?: string): Promise<GraphIndexAssessment | null>;
24
+ /**
25
+ * Read the published generation's retained reference list — the detail behind
26
+ * `referenceCount` (T12348).
27
+ *
28
+ * This is the expensive read (hundreds of MB on a large repository), so only
29
+ * explicit detail requests make it. A historical assessment with inline
30
+ * `references` is honoured; a published graph with neither yields an empty list.
31
+ * @param projectRoot - Explicit project root, or the ambient canonical project when omitted.
32
+ * @returns Every retained reference, validated; `null` when no graph is published.
33
+ * @example
34
+ * ```ts
35
+ * const references = await readKnowledgeIndexReferences(projectRoot);
36
+ * ```
37
+ */
38
+ export declare function readKnowledgeIndexReferences(projectRoot?: string): Promise<GraphIndexReferenceReport[] | null>;
19
39
  /**
20
40
  * An unresolved short name with exact identifiers the caller can choose from.
21
41
  * @remarks Consumers preserve the candidate list in their error envelope.
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/nexus/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EACV,oBAAoB,EAEpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAwM7B;;;;;;;;;GASG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAsBtC;AAED;;;;;;;GAOG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,wBAAwB;IAErC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAC;IAEhD;;;;OAIG;gBACS,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE;CAKlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,wBAAwB,EAAE,GACzC,wBAAwB,GAAG,IAAI,CAWjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,CAUN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,SAAO,GACd,OAAO,CAAC,iBAAiB,CAAC,CAS5B"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/nexus/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EACV,oBAAoB,EAEpB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAkM7B;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAsBtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,CAmB7C;AAED;;;;;;;GAOG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,wBAAwB;IAErC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAC;IAEhD;;;;OAIG;gBACS,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE;CAKlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,wBAAwB,EAAE,GACzC,wBAAwB,GAAG,IAAI,CAWjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,CAUN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,SAAO,GACd,OAAO,CAAC,iBAAiB,CAAC,CAS5B"}
@@ -16,6 +16,7 @@ import { z } from 'zod';
16
16
  import { worktreeScope } from '../paths.js';
17
17
  import { getProjectInfoSync } from '../project-info.js';
18
18
  import { getNexusDb, getNexusNativeDb, nexusSchema } from '../store/nexus-sqlite.js';
19
+ import { ASSESSMENT_KEY, ASSESSMENT_REFERENCES_KEY } from './assessment-store.js';
19
20
  import { generateProjectHash } from './hash.js';
20
21
  import { resolveSourceRoots } from './source-roots.js';
21
22
  const execFileAsync = promisify(execFile);
@@ -135,6 +136,31 @@ const fileCapabilitiesSchema = z
135
136
  message: 'A known role requires positive classification evidence',
136
137
  });
137
138
  });
139
+ /** One retained unresolved or unmodeled static reference (T12348: stored separately). */
140
+ const referenceSchema = z.object({
141
+ kind: z.enum(['unmodeled-source', 'ambiguous', 'external', 'dynamic', 'shadowed', 'unresolved']),
142
+ filePath: z.string(),
143
+ sourceId: z.string(),
144
+ targetId: z.string().optional(),
145
+ targetName: z.string(),
146
+ relationship: z.enum(['calls', 'accesses']),
147
+ reason: z.string(),
148
+ candidateIds: z.array(z.string()).optional(),
149
+ generation: z.string().optional(),
150
+ publicationGeneration: z.uuid().optional(),
151
+ span: z
152
+ .object({
153
+ startIndex: z.number().int().nonnegative(),
154
+ endIndex: z.number().int().nonnegative(),
155
+ startLine: z.number().int().positive(),
156
+ endLine: z.number().int().positive(),
157
+ startColumn: z.number().int().nonnegative(),
158
+ endColumn: z.number().int().nonnegative(),
159
+ offsetEncoding: z.literal('utf16'),
160
+ })
161
+ .refine((span) => span.endIndex >= span.startIndex && span.endLine >= span.startLine, 'Reference span must be an ordered original source range')
162
+ .optional(),
163
+ });
138
164
  const assessmentSchema = z.object({
139
165
  generation: z.uuid().optional(),
140
166
  sourceRoots: sourceRootsSchema.optional(),
@@ -142,39 +168,8 @@ const assessmentSchema = z.object({
142
168
  assessedRevision: z.string().nullable(),
143
169
  assessedAt: z.string(),
144
170
  includedRepositories: z.array(z.string()).optional(),
145
- references: z
146
- .array(z.object({
147
- kind: z.enum([
148
- 'unmodeled-source',
149
- 'ambiguous',
150
- 'external',
151
- 'dynamic',
152
- 'shadowed',
153
- 'unresolved',
154
- ]),
155
- filePath: z.string(),
156
- sourceId: z.string(),
157
- targetId: z.string().optional(),
158
- targetName: z.string(),
159
- relationship: z.enum(['calls', 'accesses']),
160
- reason: z.string(),
161
- candidateIds: z.array(z.string()).optional(),
162
- generation: z.string().optional(),
163
- publicationGeneration: z.uuid().optional(),
164
- span: z
165
- .object({
166
- startIndex: z.number().int().nonnegative(),
167
- endIndex: z.number().int().nonnegative(),
168
- startLine: z.number().int().positive(),
169
- endLine: z.number().int().positive(),
170
- startColumn: z.number().int().nonnegative(),
171
- endColumn: z.number().int().nonnegative(),
172
- offsetEncoding: z.literal('utf16'),
173
- })
174
- .refine((span) => span.endIndex >= span.startIndex && span.endLine >= span.startLine, 'Reference span must be an ordered original source range')
175
- .optional(),
176
- }))
177
- .optional(),
171
+ references: z.array(referenceSchema).optional(),
172
+ referenceCount: z.number().int().nonnegative().optional(),
178
173
  files: z.array(z.object({
179
174
  path: z.string(),
180
175
  status: z.enum(['analyzed', 'excluded', 'unsupported', 'oversized', 'failed']),
@@ -187,6 +182,11 @@ const assessmentSchema = z.object({
187
182
  });
188
183
  /**
189
184
  * Read validated generation provenance without treating malformed metadata as healthy.
185
+ *
186
+ * T12348: this is the SUMMARY — the retained reference list is stored
187
+ * separately and reported as `referenceCount`; read it with
188
+ * {@link readKnowledgeIndexReferences}. A historical value with inline
189
+ * `references` is returned as stored.
190
190
  * @param projectRoot - Explicit project root, or the ambient canonical project when omitted.
191
191
  * @returns The published assessment, or null for a legacy generation.
192
192
  * @remarks Reads only through the canonical project store. Malformed metadata throws.
@@ -201,8 +201,8 @@ export async function readKnowledgeIndexAssessment(projectRoot) {
201
201
  if (!native)
202
202
  throw new Error('The graph database is unavailable.');
203
203
  const row = native
204
- .prepare(`SELECT value FROM main._nexus_meta WHERE key = 'graph_assessment'`)
205
- .get();
204
+ .prepare('SELECT value FROM main._nexus_meta WHERE key = ?')
205
+ .get(ASSESSMENT_KEY);
206
206
  if (!row)
207
207
  return null;
208
208
  if (typeof row.value !== 'string')
@@ -219,6 +219,44 @@ export async function readKnowledgeIndexAssessment(projectRoot) {
219
219
  }
220
220
  return assessment;
221
221
  }
222
+ /**
223
+ * Read the published generation's retained reference list — the detail behind
224
+ * `referenceCount` (T12348).
225
+ *
226
+ * This is the expensive read (hundreds of MB on a large repository), so only
227
+ * explicit detail requests make it. A historical assessment with inline
228
+ * `references` is honoured; a published graph with neither yields an empty list.
229
+ * @param projectRoot - Explicit project root, or the ambient canonical project when omitted.
230
+ * @returns Every retained reference, validated; `null` when no graph is published.
231
+ * @example
232
+ * ```ts
233
+ * const references = await readKnowledgeIndexReferences(projectRoot);
234
+ * ```
235
+ */
236
+ export async function readKnowledgeIndexReferences(projectRoot) {
237
+ const assessment = await readKnowledgeIndexAssessment(projectRoot);
238
+ if (!assessment)
239
+ return null;
240
+ if (assessment.references)
241
+ return assessment.references;
242
+ const native = getNexusNativeDb(projectRoot);
243
+ if (!native)
244
+ throw new Error('The graph database is unavailable.');
245
+ const row = native
246
+ .prepare('SELECT value FROM main._nexus_meta WHERE key = ?')
247
+ .get(ASSESSMENT_REFERENCES_KEY);
248
+ if (!row) {
249
+ if ((assessment.referenceCount ?? 0) > 0)
250
+ throw new Error('Graph assessment reports references, but none are stored.');
251
+ return [];
252
+ }
253
+ if (typeof row.value !== 'string')
254
+ throw new Error('Graph reference metadata is not text.');
255
+ const references = z.array(referenceSchema).parse(JSON.parse(row.value));
256
+ if (assessment.referenceCount !== undefined && references.length !== assessment.referenceCount)
257
+ throw new Error('Stored graph references disagree with the assessment reference count.');
258
+ return references;
259
+ }
222
260
  /**
223
261
  * An unresolved short name with exact identifiers the caller can choose from.
224
262
  * @remarks Consumers preserve the candidate list in their error envelope.
@@ -589,8 +627,9 @@ async function assessCoverage(projectRoot, projectId, deadline, coverage, invent
589
627
  }
590
628
  if (files.length === 0)
591
629
  recordKnowledgeGap(coverage, 'missing', 'The published graph has no indexed nodes.');
592
- if (assessment.references?.length) {
593
- recordKnowledgeGap(coverage, 'partial', `${assessment.references.length} unresolved or unmodeled static references remain; known callers are incomplete. Inspect assessment.references in cleo nexus status.`);
630
+ const referenceCount = assessment.referenceCount ?? assessment.references?.length ?? 0;
631
+ if (referenceCount > 0) {
632
+ recordKnowledgeGap(coverage, 'partial', `${referenceCount} unresolved or unmodeled static references remain; known callers are incomplete. Inspect them with cleo nexus status --references.`);
594
633
  coverage.nextAction = 'cleo nexus status';
595
634
  }
596
635
  for (const file of assessment.files) {
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/nexus/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/nexus/knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Device-local project path map (`nexus_project_paths`).
3
+ *
4
+ * The registry row is keyed by the immutable `project_id` (ADR-094), so its
5
+ * `project_path` names one checkout — the one encountered most recently. The
6
+ * path map records EVERY checkout of a project on this device, keyed by path,
7
+ * so two checkouts of one project coexist instead of fighting over one row.
8
+ *
9
+ * Every writer that records a checkout in the registry records it here in the
10
+ * same transaction: encounter registration, `nexusRegister`, `nexusReconcile`
11
+ * and `nexusMoveProject`. Rows whose directory is gone are pruned when their
12
+ * project is next recorded, so a move leaves one checkout, not two.
13
+ *
14
+ * @task T12354
15
+ */
16
+ import type { NexusProjectCheckout } from '@cleocode/contracts';
17
+ import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
18
+ /** A registry handle or an open transaction on one. */
19
+ export type PathMapWriter = Pick<NodeSQLiteDatabase, 'select' | 'insert' | 'delete'>;
20
+ /** One checkout to record. */
21
+ export interface ProjectCheckoutRecord {
22
+ /** Immutable project id. */
23
+ projectId: string;
24
+ /** Absolute checkout root. */
25
+ projectPath: string;
26
+ /** Path fingerprint of the checkout. */
27
+ projectHash: string;
28
+ /** ISO 8601 timestamp of the encounter. */
29
+ now: string;
30
+ }
31
+ /**
32
+ * Record a checkout in the path map and prune this project's vanished paths.
33
+ *
34
+ * A path belongs to exactly one project, so recording it re-points a row that
35
+ * previously named another project. Runs synchronously so it composes with the
36
+ * registry writers' immediate transactions.
37
+ *
38
+ * @param db - Registry handle or transaction.
39
+ * @param record - The checkout encountered.
40
+ * @returns Number of vanished checkouts pruned for this project.
41
+ */
42
+ export declare function recordProjectCheckout(db: PathMapWriter, record: ProjectCheckoutRecord): number;
43
+ /**
44
+ * List every recorded checkout of a project on this device, newest first.
45
+ *
46
+ * @param projectId - Immutable project id.
47
+ * @returns Checkouts with an `exists` flag; a vanished one stays listed until
48
+ * the project is next recorded.
49
+ * @example
50
+ * ```ts
51
+ * const checkouts = await listProjectCheckouts(projectId);
52
+ * ```
53
+ */
54
+ export declare function listProjectCheckouts(projectId: string): Promise<NexusProjectCheckout[]>;
55
+ //# sourceMappingURL=path-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-map.d.ts","sourceRoot":"","sources":["../../src/nexus/path-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAErF,8BAA8B;AAC9B,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAgC9F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAiB7F"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Device-local project path map (`nexus_project_paths`).
3
+ *
4
+ * The registry row is keyed by the immutable `project_id` (ADR-094), so its
5
+ * `project_path` names one checkout — the one encountered most recently. The
6
+ * path map records EVERY checkout of a project on this device, keyed by path,
7
+ * so two checkouts of one project coexist instead of fighting over one row.
8
+ *
9
+ * Every writer that records a checkout in the registry records it here in the
10
+ * same transaction: encounter registration, `nexusRegister`, `nexusReconcile`
11
+ * and `nexusMoveProject`. Rows whose directory is gone are pruned when their
12
+ * project is next recorded, so a move leaves one checkout, not two.
13
+ *
14
+ * @task T12354
15
+ */
16
+ import { existsSync } from 'node:fs';
17
+ import { and, desc, eq, ne } from 'drizzle-orm';
18
+ import { projectPaths } from '../store/schema/nexus-schema.js';
19
+ /**
20
+ * Record a checkout in the path map and prune this project's vanished paths.
21
+ *
22
+ * A path belongs to exactly one project, so recording it re-points a row that
23
+ * previously named another project. Runs synchronously so it composes with the
24
+ * registry writers' immediate transactions.
25
+ *
26
+ * @param db - Registry handle or transaction.
27
+ * @param record - The checkout encountered.
28
+ * @returns Number of vanished checkouts pruned for this project.
29
+ */
30
+ export function recordProjectCheckout(db, record) {
31
+ db.insert(projectPaths)
32
+ .values({
33
+ projectPath: record.projectPath,
34
+ projectId: record.projectId,
35
+ projectHash: record.projectHash,
36
+ firstSeen: record.now,
37
+ lastSeen: record.now,
38
+ })
39
+ .onConflictDoUpdate({
40
+ target: projectPaths.projectPath,
41
+ set: { projectId: record.projectId, projectHash: record.projectHash, lastSeen: record.now },
42
+ })
43
+ .run();
44
+ const siblings = db
45
+ .select({ projectPath: projectPaths.projectPath })
46
+ .from(projectPaths)
47
+ .where(and(eq(projectPaths.projectId, record.projectId), ne(projectPaths.projectPath, record.projectPath)))
48
+ .all();
49
+ let pruned = 0;
50
+ for (const sibling of siblings) {
51
+ if (existsSync(sibling.projectPath))
52
+ continue;
53
+ db.delete(projectPaths).where(eq(projectPaths.projectPath, sibling.projectPath)).run();
54
+ pruned++;
55
+ }
56
+ return pruned;
57
+ }
58
+ /**
59
+ * List every recorded checkout of a project on this device, newest first.
60
+ *
61
+ * @param projectId - Immutable project id.
62
+ * @returns Checkouts with an `exists` flag; a vanished one stays listed until
63
+ * the project is next recorded.
64
+ * @example
65
+ * ```ts
66
+ * const checkouts = await listProjectCheckouts(projectId);
67
+ * ```
68
+ */
69
+ export async function listProjectCheckouts(projectId) {
70
+ const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
71
+ const { getCleoHome } = await import('../paths.js');
72
+ const db = await getNexusRegistryDb(getCleoHome());
73
+ return db
74
+ .select()
75
+ .from(projectPaths)
76
+ .where(eq(projectPaths.projectId, projectId))
77
+ .orderBy(desc(projectPaths.lastSeen))
78
+ .all()
79
+ .map((row) => ({
80
+ projectPath: row.projectPath,
81
+ projectHash: row.projectHash,
82
+ firstSeen: row.firstSeen,
83
+ lastSeen: row.lastSeen,
84
+ exists: existsSync(row.projectPath),
85
+ }));
86
+ }
87
+ //# sourceMappingURL=path-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-map.js","sourceRoot":"","sources":["../../src/nexus/path-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAiB/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAiB,EAAE,MAA6B;IACpF,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC;QACN,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,GAAG;QACrB,QAAQ,EAAE,MAAM,CAAC,GAAG;KACrB,CAAC;SACD,kBAAkB,CAAC;QAClB,MAAM,EAAE,YAAY,CAAC,WAAW;QAChC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE;KAC5F,CAAC;SACD,GAAG,EAAE,CAAC;IAET,MAAM,QAAQ,GAAG,EAAE;SAChB,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;SACjD,IAAI,CAAC,YAAY,CAAC;SAClB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAC5C,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CACjD,CACF;SACA,GAAG,EAAE,CAAC;IACT,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;YAAE,SAAS;QAC9C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACvF,MAAM,EAAE,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IAC1D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACxE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,YAAY,CAAC;SAClB,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SAC5C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACpC,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;KACpC,CAAC,CAAC,CAAC;AACR,CAAC"}