@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
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* @epic T9833
|
|
10
10
|
* @task T10062
|
|
11
11
|
*/
|
|
12
|
-
import type { GraphIndexAssessment, GraphPublicationRows, ParserExecutionLimits } from '@cleocode/contracts';
|
|
12
|
+
import type { GraphIndexAssessment, GraphIndexRunSummary, GraphParseCacheEntry, GraphPublicationRows, ParserExecutionLimits } from '@cleocode/contracts';
|
|
13
13
|
import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
|
|
14
|
+
/** Read the parse cache committed with the current generation (T12315). */
|
|
15
|
+
export declare function readNexusParseCache(db: NodeSQLiteDatabase): GraphParseCacheEntry[];
|
|
14
16
|
/**
|
|
15
17
|
* Atomically publish staged rows if the graph has not changed since assessment.
|
|
16
18
|
* Failed inserts, FTS repair, or stale generations roll back the entire replacement.
|
|
@@ -37,7 +39,16 @@ export interface NexusAnalysisParams {
|
|
|
37
39
|
projectRoot?: string;
|
|
38
40
|
/** Explicit existing identity override; otherwise require persisted parent identity. */
|
|
39
41
|
projectIdOverride?: string;
|
|
40
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Parse every file instead of reusing the previous generation's extractions.
|
|
44
|
+
* When omitted, an analysis reuses what is provably current (T12315) and
|
|
45
|
+
* falls back to a full parse — reporting why — when it cannot.
|
|
46
|
+
*/
|
|
47
|
+
full?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Incremental reuse is the default since T12315; this flag is
|
|
50
|
+
* accepted for compatibility and has no effect. Use `full` to force a rebuild.
|
|
51
|
+
*/
|
|
41
52
|
incremental?: boolean;
|
|
42
53
|
/** Explicit relative paths of nested repositories authorized for source inclusion. */
|
|
43
54
|
includedRepositories?: readonly string[];
|
|
@@ -51,12 +62,18 @@ export interface NexusAnalysisParams {
|
|
|
51
62
|
export interface NexusAnalysisResult {
|
|
52
63
|
projectId: string;
|
|
53
64
|
repoPath: string;
|
|
65
|
+
/** Whether this run reused previous extractions (mode `incremental` or `unchanged`). */
|
|
54
66
|
incremental: boolean;
|
|
67
|
+
/** Mode, reason, per-file counts and phase costs of this run. */
|
|
68
|
+
summary: GraphIndexRunSummary;
|
|
55
69
|
nodeCount: number;
|
|
56
70
|
relationCount: number;
|
|
57
71
|
fileCount: number;
|
|
58
72
|
durationMs: number;
|
|
59
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Committed per-file outcomes and source provenance, as a summary: the
|
|
75
|
+
* reference list is reported as `referenceCount` (T12348).
|
|
76
|
+
*/
|
|
60
77
|
assessment: GraphIndexAssessment | null;
|
|
61
78
|
}
|
|
62
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-orchestrator.d.ts","sourceRoot":"","sources":["../../src/nexus/analyze-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,oBAAoB,EAEpB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-orchestrator.d.ts","sourceRoot":"","sources":["../../src/nexus/analyze-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,oBAAoB,EAEpB,oBAAoB,EACpB,oBAAoB,EAEpB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA2DlE,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,kBAAkB,GAAG,oBAAoB,EAAE,CAiBlF;AAkJD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,oBAAoB,EAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CAuEN;AAiCD,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,WAAW,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACzC;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgBhG"}
|
|
@@ -18,6 +18,8 @@ import { worktreeScope } from '../paths.js';
|
|
|
18
18
|
import { getProjectInfo } from '../project-info.js';
|
|
19
19
|
import { createParserExecutionPort } from '../resources/spawn-wrapper.js';
|
|
20
20
|
import { nexusNodes, nexusRelations } from '../store/schema/cleo-project/nexus-graph.js';
|
|
21
|
+
import { assessmentSummary, writeAssessment } from './assessment-store.js';
|
|
22
|
+
import { buildFileManifest, clearFileManifest, writeFileManifest, writeRunCost, } from './graph-manifest.js';
|
|
21
23
|
import { generateProjectHash } from './hash.js';
|
|
22
24
|
import { readKnowledgeIndexAssessment } from './knowledge.js';
|
|
23
25
|
import { resolveSourceRoots } from './source-roots.js';
|
|
@@ -38,6 +40,60 @@ function rootFingerprint(roots) {
|
|
|
38
40
|
})),
|
|
39
41
|
});
|
|
40
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Compare source OWNERSHIP only — never the observed revision.
|
|
45
|
+
*
|
|
46
|
+
* Reusing a file's extraction depends on its bytes (content hash), not on which
|
|
47
|
+
* commit produced them, so a new commit must not by itself force a full
|
|
48
|
+
* rebuild (T12315). The revision is still recorded as provenance and still
|
|
49
|
+
* guards against concurrent change via {@link rootFingerprint}.
|
|
50
|
+
*/
|
|
51
|
+
function ownershipFingerprint(roots) {
|
|
52
|
+
return JSON.stringify({
|
|
53
|
+
projectId: roots.projectId,
|
|
54
|
+
projectRoot: roots.projectRoot,
|
|
55
|
+
sourceRoot: roots.sourceRoot,
|
|
56
|
+
roots: roots.roots.map((root) => ({
|
|
57
|
+
requestedPath: root.requestedPath,
|
|
58
|
+
canonicalPath: root.canonicalPath,
|
|
59
|
+
graphPrefix: root.graphPrefix,
|
|
60
|
+
explicitlyIncluded: root.explicitlyIncluded,
|
|
61
|
+
status: root.status,
|
|
62
|
+
})),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** Read the parse cache committed with the current generation (T12315). */
|
|
66
|
+
export function readNexusParseCache(db) {
|
|
67
|
+
return db
|
|
68
|
+
.values(sql `SELECT path, content_hash, fingerprint, generation, payload FROM main._nexus_parse_cache`)
|
|
69
|
+
.map((row) => {
|
|
70
|
+
const [path, contentHash, fingerprint, generation, payload] = row;
|
|
71
|
+
if (typeof path !== 'string' ||
|
|
72
|
+
typeof contentHash !== 'string' ||
|
|
73
|
+
typeof fingerprint !== 'string' ||
|
|
74
|
+
typeof generation !== 'string' ||
|
|
75
|
+
!(payload instanceof Uint8Array))
|
|
76
|
+
throw new Error('Invalid nexus parse cache row');
|
|
77
|
+
return { path, contentHash, fingerprint, generation, payload };
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/** Apply a parse-cache mutation inside the caller's publication transaction. */
|
|
81
|
+
function applyParseCacheUpdate(tx, update) {
|
|
82
|
+
if (update.reset)
|
|
83
|
+
tx.run(sql `DELETE FROM main._nexus_parse_cache`);
|
|
84
|
+
for (let offset = 0; offset < update.deletePaths.length; offset += 500) {
|
|
85
|
+
const batch = update.deletePaths.slice(offset, offset + 500);
|
|
86
|
+
tx.run(sql `DELETE FROM main._nexus_parse_cache WHERE path IN (${sql.join(batch.map((path) => sql `${path}`), sql `, `)})`);
|
|
87
|
+
}
|
|
88
|
+
for (const entry of update.upserts) {
|
|
89
|
+
if (entry.fingerprint !== update.fingerprint)
|
|
90
|
+
throw new Error(`Parse cache entry ${entry.path} carries a foreign extractor fingerprint`);
|
|
91
|
+
tx.run(sql `INSERT INTO main._nexus_parse_cache (path, content_hash, fingerprint, generation, payload)
|
|
92
|
+
VALUES (${entry.path}, ${entry.contentHash}, ${entry.fingerprint}, ${entry.generation}, ${entry.payload})
|
|
93
|
+
ON CONFLICT(path) DO UPDATE SET content_hash = excluded.content_hash,
|
|
94
|
+
fingerprint = excluded.fingerprint, generation = excluded.generation, payload = excluded.payload`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
41
97
|
/** Fail closed when a required root observation did not finish successfully. */
|
|
42
98
|
function requireObservedRoots(roots) {
|
|
43
99
|
const failed = roots.roots.filter((root) => root.status !== 'available' && root.status !== 'unversioned');
|
|
@@ -81,11 +137,59 @@ function includedRepositoryScope(db, repoPath) {
|
|
|
81
137
|
return repository;
|
|
82
138
|
});
|
|
83
139
|
}
|
|
140
|
+
/** Read the extractor fingerprint recorded with the committed generation (T12315). */
|
|
141
|
+
function publishedExtractorFingerprint(db) {
|
|
142
|
+
const value = db.values(sql `SELECT value FROM main._nexus_meta WHERE key = 'graph_extractor_fingerprint'`)[0]?.[0];
|
|
143
|
+
return typeof value === 'string' ? value : null;
|
|
144
|
+
}
|
|
84
145
|
/** Read the last committed graph generation without opening a write transaction. */
|
|
85
146
|
function graphGeneration(db) {
|
|
86
147
|
const value = db.values(sql `SELECT value FROM main._nexus_meta WHERE key = 'graph_generation'`)[0]?.[0];
|
|
87
148
|
return typeof value === 'string' ? value : null;
|
|
88
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Page-cache ceiling for a graph write transaction, in KiB (T12348).
|
|
152
|
+
*
|
|
153
|
+
* A one-shot CLI open gets an 8 MB cache (T11829). A publication dirties every
|
|
154
|
+
* row, index and FTS page of the graph — ~290 MB on this repository — so with
|
|
155
|
+
* 8 MB SQLite spills pages to the WAL mid-transaction and reads them back,
|
|
156
|
+
* repeatedly: replacing the rows cost 340k read and 328k write syscalls at
|
|
157
|
+
* 8 MB, 124k/223k at 256 MB, and 40k/146k (the floor: each page written once)
|
|
158
|
+
* at 512 MB. On a FUSE mount every syscall costs ~0.5–1.5 ms. This is a
|
|
159
|
+
* ceiling, not an allocation: SQLite grows the cache only as pages are
|
|
160
|
+
* touched, and the previous size is restored when the transaction ends.
|
|
161
|
+
*/
|
|
162
|
+
const GRAPH_WRITE_CACHE_KIB = 524_288;
|
|
163
|
+
/**
|
|
164
|
+
* Run a graph write in a transaction that write-locks the PROJECT store only.
|
|
165
|
+
*
|
|
166
|
+
* The project handle carries the global `cleo.db` ATTACHed as `nexus_global`
|
|
167
|
+
* (see `ensureGlobalRegistryAttached`), and `BEGIN IMMEDIATE` takes the write
|
|
168
|
+
* lock of EVERY attached database. An immediate publication therefore held the
|
|
169
|
+
* global store's write lock for its whole duration — while it ran, a
|
|
170
|
+
* concurrent `cleo nexus projects clean` gave up with "database is locked"
|
|
171
|
+
* after 180 s. A deferred transaction whose first statement writes `main`
|
|
172
|
+
* acquires main's lock alone, with the same busy handling and a fresh snapshot,
|
|
173
|
+
* so the generation check that follows still reads under the write lock (T12348).
|
|
174
|
+
*
|
|
175
|
+
* @param db - Owning project graph database.
|
|
176
|
+
* @param write - Transaction body; every statement in it must target `main`.
|
|
177
|
+
*/
|
|
178
|
+
function writeGraphTransaction(db, write) {
|
|
179
|
+
const previous = db.values(sql `PRAGMA main.cache_size`)[0]?.[0];
|
|
180
|
+
db.run(sql.raw(`PRAGMA main.cache_size = -${GRAPH_WRITE_CACHE_KIB}`));
|
|
181
|
+
try {
|
|
182
|
+
db.transaction((tx) => {
|
|
183
|
+
// A write that matches no row still takes main's RESERVED lock, and only main's.
|
|
184
|
+
tx.run(sql `DELETE FROM main._nexus_meta WHERE 0`);
|
|
185
|
+
return write(tx);
|
|
186
|
+
}, { behavior: 'deferred' });
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
if (typeof previous === 'number')
|
|
190
|
+
db.run(sql.raw(`PRAGMA main.cache_size = ${previous}`));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
89
193
|
/**
|
|
90
194
|
* Atomically publish staged rows if the graph has not changed since assessment.
|
|
91
195
|
* Failed inserts, FTS repair, or stale generations roll back the entire replacement.
|
|
@@ -113,18 +217,20 @@ export function publishNexusGraph(db, rows, expectedGeneration) {
|
|
|
113
217
|
reference.publicationGeneration !== generation))
|
|
114
218
|
throw new Error('Staged reference publication generation does not match rows');
|
|
115
219
|
}
|
|
116
|
-
db
|
|
220
|
+
writeGraphTransaction(db, (tx) => {
|
|
117
221
|
if (graphGeneration(tx) !== expectedGeneration) {
|
|
118
222
|
throw new Error('Nexus graph changed during indexing; discard staged generation and retry.');
|
|
119
223
|
}
|
|
120
|
-
tx.delete(nexusRelations).run();
|
|
121
|
-
tx.delete(nexusNodes).run();
|
|
122
224
|
// The optional FTS shadow can contain orphaned rowids; reset it inside
|
|
123
225
|
// the same transaction so trigger failures restore the previous generation.
|
|
124
|
-
|
|
125
|
-
|
|
226
|
+
// Reset it FIRST (T12348): the per-row delete trigger then finds nothing
|
|
227
|
+
// to remove, instead of re-tokenizing every old node's text to delete it.
|
|
228
|
+
if (tx.values(sql `SELECT name FROM main.sqlite_master WHERE name = 'nexus_symbols_fts'`).length >
|
|
229
|
+
0) {
|
|
126
230
|
tx.run(sql `DELETE FROM main.nexus_symbols_fts`);
|
|
127
231
|
}
|
|
232
|
+
tx.delete(nexusRelations).run();
|
|
233
|
+
tx.delete(nexusNodes).run();
|
|
128
234
|
for (let offset = 0; offset < rows.nodes.length; offset += 500) {
|
|
129
235
|
tx.insert(nexusNodes)
|
|
130
236
|
.values(rows.nodes.slice(offset, offset + 500))
|
|
@@ -144,13 +250,49 @@ export function publishNexusGraph(db, rows, expectedGeneration) {
|
|
|
144
250
|
`).length > 0) {
|
|
145
251
|
throw new Error('Staged lexical declaration publication generation does not match rows');
|
|
146
252
|
}
|
|
147
|
-
if (rows.
|
|
148
|
-
tx
|
|
253
|
+
if (rows.parseCache)
|
|
254
|
+
applyParseCacheUpdate(tx, rows.parseCache);
|
|
255
|
+
// The fingerprint names the extractor build that produced these rows; a
|
|
256
|
+
// publisher without a parse cache leaves the build unproven.
|
|
257
|
+
if (rows.parseCache?.fingerprint) {
|
|
258
|
+
tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES ('graph_extractor_fingerprint', ${rows.parseCache.fingerprint})
|
|
149
259
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
|
|
150
260
|
}
|
|
261
|
+
else {
|
|
262
|
+
tx.run(sql `DELETE FROM main._nexus_meta WHERE key = 'graph_extractor_fingerprint'`);
|
|
263
|
+
}
|
|
264
|
+
if (rows.assessment)
|
|
265
|
+
writeFileManifest(tx, buildFileManifest(rows.assessment, rows.assessment.files));
|
|
266
|
+
else
|
|
267
|
+
clearFileManifest(tx);
|
|
268
|
+
// T12348: summary and reference list are written together, separately.
|
|
269
|
+
if (rows.assessment)
|
|
270
|
+
writeAssessment(tx, rows.assessment);
|
|
151
271
|
tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES ('graph_generation', ${generation})
|
|
152
272
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
|
|
153
|
-
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Re-record source provenance for a generation whose files were just verified
|
|
277
|
+
* byte-identical to the current tree, without replacing any graph rows.
|
|
278
|
+
* @param db - Owning project graph database.
|
|
279
|
+
* @param assessment - The previous assessment with current roots and revision, or
|
|
280
|
+
* `null` when only the file manifest needs re-recording.
|
|
281
|
+
* @param manifest - File manifest re-observed from the verified tree.
|
|
282
|
+
* @param expectedGeneration - Generation the verification was performed against.
|
|
283
|
+
* @returns The recorded assessment, or `null` when none was re-recorded.
|
|
284
|
+
* @throws When the generation changed since verification.
|
|
285
|
+
*/
|
|
286
|
+
function recordVerifiedProvenance(db, assessment, manifest, expectedGeneration) {
|
|
287
|
+
writeGraphTransaction(db, (tx) => {
|
|
288
|
+
if (graphGeneration(tx) !== expectedGeneration)
|
|
289
|
+
throw new Error('Nexus graph changed during verification; provenance not updated.');
|
|
290
|
+
// A re-recorded summary keeps the stored reference list of this generation.
|
|
291
|
+
if (assessment)
|
|
292
|
+
writeAssessment(tx, assessment);
|
|
293
|
+
writeFileManifest(tx, manifest);
|
|
294
|
+
});
|
|
295
|
+
return assessment;
|
|
154
296
|
}
|
|
155
297
|
// ---------------------------------------------------------------------------
|
|
156
298
|
// Public API
|
|
@@ -193,7 +335,7 @@ export async function runNexusAnalysis(params) {
|
|
|
193
335
|
}
|
|
194
336
|
/** Keep the entire asynchronous analysis bound to its captured identity parent. */
|
|
195
337
|
async function runScopedNexusAnalysis(params, projectRoot) {
|
|
196
|
-
const { projectIdOverride,
|
|
338
|
+
const { projectIdOverride, full = false, onProgress } = params;
|
|
197
339
|
const execution = worktreeScope.getStore()?.execution;
|
|
198
340
|
execution?.assertActive();
|
|
199
341
|
const signals = [params.parserLimits?.signal, execution?.signal].filter((signal) => signal !== undefined);
|
|
@@ -233,9 +375,18 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
233
375
|
execution?.assertActive();
|
|
234
376
|
const repoPath = sourceRoots.sourceRoot;
|
|
235
377
|
const assessedRevision = sourceRoots.roots[0]?.revision ?? null;
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
const
|
|
378
|
+
const unchangedOwnership = previousAssessment?.sourceRoots !== undefined &&
|
|
379
|
+
ownershipFingerprint(previousAssessment.sourceRoots) === ownershipFingerprint(sourceRoots);
|
|
380
|
+
const fullReason = full
|
|
381
|
+
? 'full rebuild requested (--full)'
|
|
382
|
+
: expectedGeneration === null
|
|
383
|
+
? 'no previous generation to reuse'
|
|
384
|
+
: previousAssessment?.sourceRoots === undefined
|
|
385
|
+
? 'the previous generation predates source-root provenance'
|
|
386
|
+
: !unchangedOwnership
|
|
387
|
+
? 'source ownership (project root, source root or included repositories) changed since the previous generation'
|
|
388
|
+
: undefined;
|
|
389
|
+
const useIncremental = fullReason === undefined;
|
|
239
390
|
let committedAssessment = null;
|
|
240
391
|
const recheckRoots = async () => {
|
|
241
392
|
execution?.assertActive();
|
|
@@ -263,15 +414,20 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
263
414
|
currentFiles.length !== recorded.size ||
|
|
264
415
|
currentFiles.some((file) => !file.contentHash || recorded.get(file.path) !== file.contentHash))
|
|
265
416
|
throw new Error('Source files changed before publication; previous graph retained.');
|
|
417
|
+
return currentFiles;
|
|
266
418
|
};
|
|
267
419
|
const result = await runPipeline(repoPath, projectId, db, tables, onProgress, {
|
|
268
420
|
parserExecution: createParserExecutionPort(),
|
|
269
421
|
parserLimits: { ...params.parserLimits, signal },
|
|
270
422
|
incremental: useIncremental,
|
|
423
|
+
...(fullReason ? { fullReason } : {}),
|
|
424
|
+
loadParseCache: () => readNexusParseCache(db),
|
|
425
|
+
publishedFingerprint: publishedExtractorFingerprint(db),
|
|
271
426
|
assessedRevision,
|
|
272
427
|
sourceRoots,
|
|
273
428
|
includedRepositories,
|
|
274
429
|
publishGraph: async (rows) => {
|
|
430
|
+
const recheckStart = Date.now();
|
|
275
431
|
await recheckRoots();
|
|
276
432
|
if (!rows.assessment?.sourceRoots ||
|
|
277
433
|
rootFingerprint(rows.assessment.sourceRoots) !== rootFingerprint(sourceRoots))
|
|
@@ -279,17 +435,52 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
279
435
|
await recheckFiles(rows.assessment);
|
|
280
436
|
execution?.assertActive();
|
|
281
437
|
signal?.throwIfAborted();
|
|
438
|
+
const commitStart = Date.now();
|
|
282
439
|
publishNexusGraph(db, rows, expectedGeneration);
|
|
283
|
-
|
|
440
|
+
const timing = `[nexus] Publication: source recheck ${commitStart - recheckStart}ms, atomic commit of ` +
|
|
441
|
+
`${rows.nodes.length} nodes + ${rows.relations.length} relations ${Date.now() - commitStart}ms\n`;
|
|
442
|
+
process.stderr.write(timing); // json-stream-hygiene-allowed: analyze progress telemetry on stderr, same channel as the pipeline phase log
|
|
443
|
+
committedAssessment = rows.assessment ? assessmentSummary(rows.assessment) : null;
|
|
284
444
|
},
|
|
285
445
|
});
|
|
286
446
|
if (!committedAssessment && previousAssessment) {
|
|
287
447
|
// Incremental no-op still needs current provenance: Git or source bytes can
|
|
288
448
|
// change while the pipeline scans without ever invoking the publisher.
|
|
289
449
|
await recheckRoots();
|
|
290
|
-
await recheckFiles(previousAssessment);
|
|
450
|
+
const verifiedFiles = await recheckFiles(previousAssessment);
|
|
291
451
|
execution?.assertActive();
|
|
292
452
|
signal?.throwIfAborted();
|
|
453
|
+
// T12315: a new commit with byte-identical sources no longer forces a full
|
|
454
|
+
// rebuild, so the unchanged graph must still record the revision it was
|
|
455
|
+
// just verified against — otherwise knowledge coverage would report it
|
|
456
|
+
// stale forever. The files were re-hashed above, so the claim is exact.
|
|
457
|
+
const provenance = previousAssessment.sourceRoots &&
|
|
458
|
+
rootFingerprint(previousAssessment.sourceRoots) !== rootFingerprint(sourceRoots)
|
|
459
|
+
? {
|
|
460
|
+
...previousAssessment,
|
|
461
|
+
sourceRoots,
|
|
462
|
+
assessedRevision,
|
|
463
|
+
assessedAt: new Date().toISOString(),
|
|
464
|
+
}
|
|
465
|
+
: null;
|
|
466
|
+
// T12316: re-record current mtimes as well, so freshness checks keep taking
|
|
467
|
+
// the metadata fast path after a checkout or `touch` that changed no bytes.
|
|
468
|
+
committedAssessment =
|
|
469
|
+
recordVerifiedProvenance(db, provenance, buildFileManifest(provenance ?? previousAssessment, verifiedFiles), expectedGeneration) ?? committedAssessment;
|
|
470
|
+
}
|
|
471
|
+
// Advisory: remember what a publishing run cost, so a later freshness check
|
|
472
|
+
// can estimate a refresh before starting one (T12316).
|
|
473
|
+
if (result.summary.mode !== 'unchanged') {
|
|
474
|
+
try {
|
|
475
|
+
writeRunCost(db, {
|
|
476
|
+
summary: result.summary,
|
|
477
|
+
durationMs: Date.now() - startTime,
|
|
478
|
+
recordedAt: new Date().toISOString(),
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
catch {
|
|
482
|
+
// non-fatal: estimates degrade to "unknown cost"
|
|
483
|
+
}
|
|
293
484
|
}
|
|
294
485
|
// Best-effort: refresh nexus-bridge.md
|
|
295
486
|
try {
|
|
@@ -322,15 +513,18 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
322
513
|
catch {
|
|
323
514
|
// non-fatal
|
|
324
515
|
}
|
|
516
|
+
const reportedAssessment = committedAssessment ?? previousAssessment;
|
|
325
517
|
return {
|
|
326
518
|
projectId,
|
|
327
519
|
repoPath,
|
|
328
|
-
incremental:
|
|
520
|
+
incremental: result.summary.mode !== 'full',
|
|
521
|
+
summary: result.summary,
|
|
329
522
|
nodeCount: result.nodeCount,
|
|
330
523
|
relationCount: result.relationCount,
|
|
331
524
|
fileCount: result.fileCount,
|
|
332
525
|
durationMs: Date.now() - startTime,
|
|
333
|
-
|
|
526
|
+
// T12348: the summary; the reference list is detail (`nexus status --references`).
|
|
527
|
+
assessment: reportedAssessment ? assessmentSummary(reportedAssessment) : null,
|
|
334
528
|
};
|
|
335
529
|
}
|
|
336
530
|
//# sourceMappingURL=analyze-orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-orchestrator.js","sourceRoot":"","sources":["../../src/nexus/analyze-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze-orchestrator.js","sourceRoot":"","sources":["../../src/nexus/analyze-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage layout of the published graph assessment (T12348).
|
|
3
|
+
*
|
|
4
|
+
* The assessment used to be ONE `_nexus_meta` JSON value holding every
|
|
5
|
+
* retained unresolved/unmodeled reference with its full evidence — 472 MB on
|
|
6
|
+
* this repository, 647k references against a 3.75 MB remainder. Every reader
|
|
7
|
+
* paid to parse and validate all of it: `cleo nexus status` took ~10 s and
|
|
8
|
+
* returned a 472 MB envelope, and every analysis re-read it before starting.
|
|
9
|
+
*
|
|
10
|
+
* The summary (`graph_assessment`) now carries everything except the
|
|
11
|
+
* reference list, plus `referenceCount`; the list lives under
|
|
12
|
+
* `graph_assessment_references` and is read only when asked for. Both are
|
|
13
|
+
* written in the publishing transaction, so they always describe the same
|
|
14
|
+
* generation. A historical value with inline `references` stays readable.
|
|
15
|
+
*
|
|
16
|
+
* The list is stored gzip-compressed (a BLOB), because every publication
|
|
17
|
+
* rewrites it: 453 MB of JSON is 116k pages written to the WAL and 116k more
|
|
18
|
+
* at checkpoint — measured at 0.6 ms per page write on this repository's FUSE
|
|
19
|
+
* mount, most of a 49-minute publication. At gzip level 1 it is 28 MB, costs
|
|
20
|
+
* ~0.6 s to compress and ~0.55 s to inflate. A historical plain-text list is
|
|
21
|
+
* still read as stored.
|
|
22
|
+
*
|
|
23
|
+
* Code placed in `packages/core/` per Package-Boundary Check — verified against AGENTS.md.
|
|
24
|
+
*
|
|
25
|
+
* @task T12348
|
|
26
|
+
* @module nexus/assessment-store
|
|
27
|
+
*/
|
|
28
|
+
import type { GraphIndexAssessment, GraphIndexReferenceReport } from '@cleocode/contracts';
|
|
29
|
+
import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
|
|
30
|
+
/** `_nexus_meta` key of the assessment summary. */
|
|
31
|
+
export declare const ASSESSMENT_KEY = "graph_assessment";
|
|
32
|
+
/** `_nexus_meta` key of the separately stored reference list. */
|
|
33
|
+
export declare const ASSESSMENT_REFERENCES_KEY = "graph_assessment_references";
|
|
34
|
+
/**
|
|
35
|
+
* Encode a reference list for storage under {@link ASSESSMENT_REFERENCES_KEY}.
|
|
36
|
+
*
|
|
37
|
+
* @param references - The generation's retained references.
|
|
38
|
+
* @returns gzip-compressed JSON, stored as a BLOB.
|
|
39
|
+
*/
|
|
40
|
+
export declare function encodeStoredReferences(references: readonly GraphIndexReferenceReport[]): Uint8Array;
|
|
41
|
+
/**
|
|
42
|
+
* Decode a stored reference list back to its JSON text.
|
|
43
|
+
*
|
|
44
|
+
* Accepts the compressed BLOB written since T12348 and the plain JSON text
|
|
45
|
+
* written before it; anything else is malformed metadata.
|
|
46
|
+
*
|
|
47
|
+
* @param value - The raw `_nexus_meta.value` of {@link ASSESSMENT_REFERENCES_KEY}.
|
|
48
|
+
* @returns The list's JSON text.
|
|
49
|
+
* @throws When the value is neither text nor a compressed list.
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const references = JSON.parse(decodeStoredReferences(row.value));
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function decodeStoredReferences(value: unknown): string;
|
|
56
|
+
/**
|
|
57
|
+
* Return the summary form of an assessment: the reference list removed and
|
|
58
|
+
* its length recorded as `referenceCount`.
|
|
59
|
+
*
|
|
60
|
+
* An assessment without a `references` list is returned unchanged, so a
|
|
61
|
+
* summary stays a summary and a historical index without references keeps
|
|
62
|
+
* its shape.
|
|
63
|
+
*
|
|
64
|
+
* @param assessment - Full or summary assessment.
|
|
65
|
+
* @returns The summary a reader of `graph_assessment` observes.
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* const head = assessmentSummary(stagedAssessment);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function assessmentSummary(assessment: GraphIndexAssessment): GraphIndexAssessment;
|
|
72
|
+
/**
|
|
73
|
+
* Write an assessment inside the caller's transaction.
|
|
74
|
+
*
|
|
75
|
+
* - A full assessment writes its summary and replaces the reference list.
|
|
76
|
+
* - A summary that already carries `referenceCount` (for example a provenance
|
|
77
|
+
* re-record of an unchanged generation) rewrites the summary only, keeping
|
|
78
|
+
* the stored list of that same generation.
|
|
79
|
+
* - An assessment with neither removes any stale list.
|
|
80
|
+
*
|
|
81
|
+
* @param tx - Graph database handle or open transaction.
|
|
82
|
+
* @param assessment - Assessment to persist.
|
|
83
|
+
* @returns The summary as written.
|
|
84
|
+
*/
|
|
85
|
+
export declare function writeAssessment(tx: Pick<NodeSQLiteDatabase, 'run'>, assessment: GraphIndexAssessment): GraphIndexAssessment;
|
|
86
|
+
//# sourceMappingURL=assessment-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment-store.d.ts","sourceRoot":"","sources":["../../src/nexus/assessment-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,mDAAmD;AACnD,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAEjD,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAKvE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,SAAS,yBAAyB,EAAE,GAC/C,UAAU,CAEZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,oBAAoB,GAAG,oBAAoB,CAIxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,EACnC,UAAU,EAAE,oBAAoB,GAC/B,oBAAoB,CAWtB"}
|