@cleocode/core 2026.9.16 → 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.
- 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 +5 -2
- 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 +159 -10
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/assessment-store.d.ts +57 -0
- package/dist/nexus/assessment-store.d.ts.map +1 -0
- package/dist/nexus/assessment-store.js +73 -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 +76 -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/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/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;AAiGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,oBAAoB,EAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CA0EN;AAoCD,+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,6 +137,11 @@ 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];
|
|
@@ -144,14 +205,50 @@ export function publishNexusGraph(db, rows, expectedGeneration) {
|
|
|
144
205
|
`).length > 0) {
|
|
145
206
|
throw new Error('Staged lexical declaration publication generation does not match rows');
|
|
146
207
|
}
|
|
147
|
-
if (rows.
|
|
148
|
-
tx
|
|
208
|
+
if (rows.parseCache)
|
|
209
|
+
applyParseCacheUpdate(tx, rows.parseCache);
|
|
210
|
+
// The fingerprint names the extractor build that produced these rows; a
|
|
211
|
+
// publisher without a parse cache leaves the build unproven.
|
|
212
|
+
if (rows.parseCache?.fingerprint) {
|
|
213
|
+
tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES ('graph_extractor_fingerprint', ${rows.parseCache.fingerprint})
|
|
149
214
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
|
|
150
215
|
}
|
|
216
|
+
else {
|
|
217
|
+
tx.run(sql `DELETE FROM main._nexus_meta WHERE key = 'graph_extractor_fingerprint'`);
|
|
218
|
+
}
|
|
219
|
+
if (rows.assessment)
|
|
220
|
+
writeFileManifest(tx, buildFileManifest(rows.assessment, rows.assessment.files));
|
|
221
|
+
else
|
|
222
|
+
clearFileManifest(tx);
|
|
223
|
+
// T12348: summary and reference list are written together, separately.
|
|
224
|
+
if (rows.assessment)
|
|
225
|
+
writeAssessment(tx, rows.assessment);
|
|
151
226
|
tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES ('graph_generation', ${generation})
|
|
152
227
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
|
|
153
228
|
}, { behavior: 'immediate' });
|
|
154
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Re-record source provenance for a generation whose files were just verified
|
|
232
|
+
* byte-identical to the current tree, without replacing any graph rows.
|
|
233
|
+
* @param db - Owning project graph database.
|
|
234
|
+
* @param assessment - The previous assessment with current roots and revision, or
|
|
235
|
+
* `null` when only the file manifest needs re-recording.
|
|
236
|
+
* @param manifest - File manifest re-observed from the verified tree.
|
|
237
|
+
* @param expectedGeneration - Generation the verification was performed against.
|
|
238
|
+
* @returns The recorded assessment, or `null` when none was re-recorded.
|
|
239
|
+
* @throws When the generation changed since verification.
|
|
240
|
+
*/
|
|
241
|
+
function recordVerifiedProvenance(db, assessment, manifest, expectedGeneration) {
|
|
242
|
+
db.transaction((tx) => {
|
|
243
|
+
if (graphGeneration(tx) !== expectedGeneration)
|
|
244
|
+
throw new Error('Nexus graph changed during verification; provenance not updated.');
|
|
245
|
+
// A re-recorded summary keeps the stored reference list of this generation.
|
|
246
|
+
if (assessment)
|
|
247
|
+
writeAssessment(tx, assessment);
|
|
248
|
+
writeFileManifest(tx, manifest);
|
|
249
|
+
}, { behavior: 'immediate' });
|
|
250
|
+
return assessment;
|
|
251
|
+
}
|
|
155
252
|
// ---------------------------------------------------------------------------
|
|
156
253
|
// Public API
|
|
157
254
|
// ---------------------------------------------------------------------------
|
|
@@ -193,7 +290,7 @@ export async function runNexusAnalysis(params) {
|
|
|
193
290
|
}
|
|
194
291
|
/** Keep the entire asynchronous analysis bound to its captured identity parent. */
|
|
195
292
|
async function runScopedNexusAnalysis(params, projectRoot) {
|
|
196
|
-
const { projectIdOverride,
|
|
293
|
+
const { projectIdOverride, full = false, onProgress } = params;
|
|
197
294
|
const execution = worktreeScope.getStore()?.execution;
|
|
198
295
|
execution?.assertActive();
|
|
199
296
|
const signals = [params.parserLimits?.signal, execution?.signal].filter((signal) => signal !== undefined);
|
|
@@ -233,9 +330,18 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
233
330
|
execution?.assertActive();
|
|
234
331
|
const repoPath = sourceRoots.sourceRoot;
|
|
235
332
|
const assessedRevision = sourceRoots.roots[0]?.revision ?? null;
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
const
|
|
333
|
+
const unchangedOwnership = previousAssessment?.sourceRoots !== undefined &&
|
|
334
|
+
ownershipFingerprint(previousAssessment.sourceRoots) === ownershipFingerprint(sourceRoots);
|
|
335
|
+
const fullReason = full
|
|
336
|
+
? 'full rebuild requested (--full)'
|
|
337
|
+
: expectedGeneration === null
|
|
338
|
+
? 'no previous generation to reuse'
|
|
339
|
+
: previousAssessment?.sourceRoots === undefined
|
|
340
|
+
? 'the previous generation predates source-root provenance'
|
|
341
|
+
: !unchangedOwnership
|
|
342
|
+
? 'source ownership (project root, source root or included repositories) changed since the previous generation'
|
|
343
|
+
: undefined;
|
|
344
|
+
const useIncremental = fullReason === undefined;
|
|
239
345
|
let committedAssessment = null;
|
|
240
346
|
const recheckRoots = async () => {
|
|
241
347
|
execution?.assertActive();
|
|
@@ -263,15 +369,20 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
263
369
|
currentFiles.length !== recorded.size ||
|
|
264
370
|
currentFiles.some((file) => !file.contentHash || recorded.get(file.path) !== file.contentHash))
|
|
265
371
|
throw new Error('Source files changed before publication; previous graph retained.');
|
|
372
|
+
return currentFiles;
|
|
266
373
|
};
|
|
267
374
|
const result = await runPipeline(repoPath, projectId, db, tables, onProgress, {
|
|
268
375
|
parserExecution: createParserExecutionPort(),
|
|
269
376
|
parserLimits: { ...params.parserLimits, signal },
|
|
270
377
|
incremental: useIncremental,
|
|
378
|
+
...(fullReason ? { fullReason } : {}),
|
|
379
|
+
loadParseCache: () => readNexusParseCache(db),
|
|
380
|
+
publishedFingerprint: publishedExtractorFingerprint(db),
|
|
271
381
|
assessedRevision,
|
|
272
382
|
sourceRoots,
|
|
273
383
|
includedRepositories,
|
|
274
384
|
publishGraph: async (rows) => {
|
|
385
|
+
const recheckStart = Date.now();
|
|
275
386
|
await recheckRoots();
|
|
276
387
|
if (!rows.assessment?.sourceRoots ||
|
|
277
388
|
rootFingerprint(rows.assessment.sourceRoots) !== rootFingerprint(sourceRoots))
|
|
@@ -279,17 +390,52 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
279
390
|
await recheckFiles(rows.assessment);
|
|
280
391
|
execution?.assertActive();
|
|
281
392
|
signal?.throwIfAborted();
|
|
393
|
+
const commitStart = Date.now();
|
|
282
394
|
publishNexusGraph(db, rows, expectedGeneration);
|
|
283
|
-
|
|
395
|
+
const timing = `[nexus] Publication: source recheck ${commitStart - recheckStart}ms, atomic commit of ` +
|
|
396
|
+
`${rows.nodes.length} nodes + ${rows.relations.length} relations ${Date.now() - commitStart}ms\n`;
|
|
397
|
+
process.stderr.write(timing); // json-stream-hygiene-allowed: analyze progress telemetry on stderr, same channel as the pipeline phase log
|
|
398
|
+
committedAssessment = rows.assessment ? assessmentSummary(rows.assessment) : null;
|
|
284
399
|
},
|
|
285
400
|
});
|
|
286
401
|
if (!committedAssessment && previousAssessment) {
|
|
287
402
|
// Incremental no-op still needs current provenance: Git or source bytes can
|
|
288
403
|
// change while the pipeline scans without ever invoking the publisher.
|
|
289
404
|
await recheckRoots();
|
|
290
|
-
await recheckFiles(previousAssessment);
|
|
405
|
+
const verifiedFiles = await recheckFiles(previousAssessment);
|
|
291
406
|
execution?.assertActive();
|
|
292
407
|
signal?.throwIfAborted();
|
|
408
|
+
// T12315: a new commit with byte-identical sources no longer forces a full
|
|
409
|
+
// rebuild, so the unchanged graph must still record the revision it was
|
|
410
|
+
// just verified against — otherwise knowledge coverage would report it
|
|
411
|
+
// stale forever. The files were re-hashed above, so the claim is exact.
|
|
412
|
+
const provenance = previousAssessment.sourceRoots &&
|
|
413
|
+
rootFingerprint(previousAssessment.sourceRoots) !== rootFingerprint(sourceRoots)
|
|
414
|
+
? {
|
|
415
|
+
...previousAssessment,
|
|
416
|
+
sourceRoots,
|
|
417
|
+
assessedRevision,
|
|
418
|
+
assessedAt: new Date().toISOString(),
|
|
419
|
+
}
|
|
420
|
+
: null;
|
|
421
|
+
// T12316: re-record current mtimes as well, so freshness checks keep taking
|
|
422
|
+
// the metadata fast path after a checkout or `touch` that changed no bytes.
|
|
423
|
+
committedAssessment =
|
|
424
|
+
recordVerifiedProvenance(db, provenance, buildFileManifest(provenance ?? previousAssessment, verifiedFiles), expectedGeneration) ?? committedAssessment;
|
|
425
|
+
}
|
|
426
|
+
// Advisory: remember what a publishing run cost, so a later freshness check
|
|
427
|
+
// can estimate a refresh before starting one (T12316).
|
|
428
|
+
if (result.summary.mode !== 'unchanged') {
|
|
429
|
+
try {
|
|
430
|
+
writeRunCost(db, {
|
|
431
|
+
summary: result.summary,
|
|
432
|
+
durationMs: Date.now() - startTime,
|
|
433
|
+
recordedAt: new Date().toISOString(),
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
catch {
|
|
437
|
+
// non-fatal: estimates degrade to "unknown cost"
|
|
438
|
+
}
|
|
293
439
|
}
|
|
294
440
|
// Best-effort: refresh nexus-bridge.md
|
|
295
441
|
try {
|
|
@@ -322,15 +468,18 @@ async function runScopedNexusAnalysis(params, projectRoot) {
|
|
|
322
468
|
catch {
|
|
323
469
|
// non-fatal
|
|
324
470
|
}
|
|
471
|
+
const reportedAssessment = committedAssessment ?? previousAssessment;
|
|
325
472
|
return {
|
|
326
473
|
projectId,
|
|
327
474
|
repoPath,
|
|
328
|
-
incremental:
|
|
475
|
+
incremental: result.summary.mode !== 'full',
|
|
476
|
+
summary: result.summary,
|
|
329
477
|
nodeCount: result.nodeCount,
|
|
330
478
|
relationCount: result.relationCount,
|
|
331
479
|
fileCount: result.fileCount,
|
|
332
480
|
durationMs: Date.now() - startTime,
|
|
333
|
-
|
|
481
|
+
// T12348: the summary; the reference list is detail (`nexus status --references`).
|
|
482
|
+
assessment: reportedAssessment ? assessmentSummary(reportedAssessment) : null,
|
|
334
483
|
};
|
|
335
484
|
}
|
|
336
485
|
//# 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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAEjB,iBAAiB,EACjB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,8FAA8F;AAC9F,SAAS,eAAe,CAAC,KAAgC;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,KAAgC;IAC5D,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,EAAsB;IACxD,OAAO,EAAE;SACN,MAAM,CACL,GAAG,CAAA,0FAA0F,CAC9F;SACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;QAClE,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,OAAO,WAAW,KAAK,QAAQ;YAC/B,OAAO,WAAW,KAAK,QAAQ;YAC/B,OAAO,UAAU,KAAK,QAAQ;YAC9B,CAAC,CAAC,OAAO,YAAY,UAAU,CAAC;YAEhC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gFAAgF;AAChF,SAAS,qBAAqB,CAAC,EAAsB,EAAE,MAA6B;IAClF,IAAI,MAAM,CAAC,KAAK;QAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qCAAqC,CAAC,CAAC;IACnE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;QAC7D,EAAE,CAAC,GAAG,CACJ,GAAG,CAAA,sDAAsD,GAAG,CAAC,IAAI,CAC/D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,IAAI,EAAE,CAAC,EACjC,GAAG,CAAA,IAAI,CACR,GAAG,CACL,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;YAC1C,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAC;QAC7F,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;gBACE,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO;;yGAEJ,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,KAAgC;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CACvE,CAAC;IACF,IAAI,MAAM,CAAC,MAAM;QACf,MAAM,IAAI,KAAK,CACb,gEAAgE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC5J,CAAC;AACN,CAAC;AAED,4FAA4F;AAC5F,KAAK,UAAU,oBAAoB,CACjC,WAAmB,EACnB,aAAoD,EACpD,iBAAqC;IAErC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,KAAK,eAAe;QAChE,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/C,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;QACzF,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,SAAS;QACZ,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;IACJ,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS;QACxD,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,SAAS;QACpE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kFAAkF;AAClF,SAAS,uBAAuB,CAAC,EAAsB,EAAE,QAAgB;IACvE,OAAO,EAAE;SACN,MAAM,CAAC,GAAG,CAAA;;;8DAG+C,QAAQ,EAAE,CAAC;SACpE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,UAAU,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7F,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,sFAAsF;AACtF,SAAS,6BAA6B,CAAC,EAAsB;IAC3D,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CACrB,GAAG,CAAA,8EAA8E,CAClF,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACV,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CAAC,EAAsB;IAC7C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CACrB,GAAG,CAAA,mEAAmE,CACvE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACV,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAsB,EACtB,IAA0B,EAC1B,kBAAiC;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;IACnD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,UAAU,KAAK,kBAAkB;YACnC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU;YAC5C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,IACE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAC9B,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,qBAAqB,KAAK,SAAS;YAC7C,SAAS,CAAC,qBAAqB,KAAK,UAAU,CACjD;YAED,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACnF,CAAC;IACD,EAAE,CAAC,WAAW,CACZ,CAAC,EAAE,EAAE,EAAE;QACL,IAAI,eAAe,CAAC,EAAE,CAAC,KAAK,kBAAkB,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,uEAAuE;QACvE,4EAA4E;QAC5E,IACE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAA,sEAAsE,CAAC;aACjF,MAAM,GAAG,CAAC,EACb,CAAC;YACD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oCAAoC,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;YAC/D,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;iBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;iBAC9C,GAAG,EAAE,CAAC;QACX,CAAC;QACD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;YACnE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;iBACtB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;iBAClD,GAAG,EAAE,CAAC;QACX,CAAC;QACD,IACE,IAAI,CAAC,UAAU,KAAK,SAAS;YAC7B,EAAE,CAAC,MAAM,CAAC,GAAG,CAAA;;;0EAGqD,UAAU;;OAE7E,CAAC,CAAC,MAAM,GAAG,CAAC,EACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,IAAI,CAAC,UAAU;YAAE,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;YACjC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oFAAoF,IAAI,CAAC,UAAU,CAAC,WAAW;kGAC/B,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wEAAwE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,IAAI,CAAC,UAAU;YACjB,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;;YAC9E,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC3B,uEAAuE;QACvE,IAAI,IAAI,CAAC,UAAU;YAAE,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yEAAyE,UAAU;gGACH,CAAC,CAAC;IAC9F,CAAC,EACD,EAAE,QAAQ,EAAE,WAAW,EAAE,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAC/B,EAAsB,EACtB,UAAuC,EACvC,QAA2B,EAC3B,kBAAiC;IAEjC,EAAE,CAAC,WAAW,CACZ,CAAC,EAAE,EAAE,EAAE;QACL,IAAI,eAAe,CAAC,EAAE,CAAC,KAAK,kBAAkB;YAC5C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,4EAA4E;QAC5E,IAAI,UAAU;YAAE,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAChD,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,EACD,EAAE,QAAQ,EAAE,WAAW,EAAE,CAC1B,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAuDD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA2B;IAChE,MAAM,QAAQ,GAAG;QACf,GAAG,MAAM;QACT,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1E,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YAC/C,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC;YAClC,CAAC,CAAC,SAAS;KACd,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IAC3C,IAAI,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,WAAW;QAC3F,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,OAAO,aAAa,CAAC,GAAG,CACtB,EAAE,GAAG,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAAE,EAC1F,GAAG,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,sBAAsB,CACnC,MAA2B,EAC3B,WAAmB;IAEnB,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC/D,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC;IACtD,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CACrE,CAAC,MAAM,EAAyB,EAAE,CAAC,MAAM,KAAK,SAAS,CACxD,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5F,MAAM,CAAC,mCAA6C,CAAC;QACrD,MAAM,CAAC,0BAAoC,CAAC;KAC7C,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,kBAAkB,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,WAAW,EACX,kBAAkB,EAAE,WAAW,EAC/B,iBAAiB,CAClB,CAAC;IACF,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS;QACzD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG;QACb,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,cAAc,EAAE,WAAW,CAAC,cAAc;KAC3C,CAAC;IAEF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,oBAAoB,GACxB,MAAM,CAAC,oBAAoB,IAAI,uBAAuB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,WAAW;QACX,UAAU,EAAE,eAAe;QAC3B,oBAAoB;QACpB,MAAM;QACN,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC1D,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAClC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC;IACxC,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;IAChE,MAAM,kBAAkB,GACtB,kBAAkB,EAAE,WAAW,KAAK,SAAS;QAC7C,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,IAAI;QACrB,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,kBAAkB,KAAK,IAAI;YAC3B,CAAC,CAAC,iCAAiC;YACnC,CAAC,CAAC,kBAAkB,EAAE,WAAW,KAAK,SAAS;gBAC7C,CAAC,CAAC,yDAAyD;gBAC3D,CAAC,CAAC,CAAC,kBAAkB;oBACnB,CAAC,CAAC,6GAA6G;oBAC/G,CAAC,CAAC,SAAS,CAAC;IACpB,MAAM,cAAc,GAAG,UAAU,KAAK,SAAS,CAAC;IAChD,IAAI,mBAAmB,GAAgC,IAAI,CAAC;IAE5D,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,IACE,CAAC,MAAM,oBAAoB,CACzB,WAAW,EACX,kBAAkB,EAAE,WAAW,EAC/B,iBAAiB,CAClB,CAAC,KAAK,SAAS;YAEhB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3D,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACnC,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,IAAI,eAAe,CAAC,YAAY,CAAC,KAAK,eAAe,CAAC,WAAW,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACN,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,UAAgC,EAA0B,EAAE;QACtF,qEAAqE;QACrE,6EAA6E;QAC7E,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC5C,QAAQ,EACR,SAAS,EACT,CAAC,MAA4B,EAAE,EAAE;YAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,EACD,oBAAoB,CACrB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,UAAU,CAAC,KAAK;aACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;aAClC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAChD,CAAC;QACF,IACE,QAAQ,CAAC,MAAM;YACf,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI;YACrC,YAAY,CAAC,IAAI,CACf,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CACzF;YAED,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;QAC5E,eAAe,EAAE,yBAAyB,EAAE;QAC5C,YAAY,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE;QAChD,WAAW,EAAE,cAAc;QAC3B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,cAAc,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC7C,oBAAoB,EAAE,6BAA6B,CAAC,EAAE,CAAC;QACvD,gBAAgB;QAChB,WAAW;QACX,oBAAoB;QACpB,YAAY,EAAE,KAAK,EAAE,IAA0B,EAAE,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,YAAY,EAAE,CAAC;YACrB,IACE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW;gBAC7B,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,eAAe,CAAC,WAAW,CAAC;gBAE7E,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,SAAS,EAAE,YAAY,EAAE,CAAC;YAC1B,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAChD,MAAM,MAAM,GACV,uCAAuC,WAAW,GAAG,YAAY,uBAAuB;gBACxF,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,cAAc,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,MAAM,CAAC;YACpG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,4GAA4G;YAC1I,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;QAC/C,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,YAAY,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC7D,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,UAAU,GACd,kBAAkB,CAAC,WAAW;YAC9B,eAAe,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,eAAe,CAAC,WAAW,CAAC;YAC9E,CAAC,CAAC;gBACE,GAAG,kBAAkB;gBACrB,WAAW;gBACX,gBAAgB;gBAChB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;YACH,CAAC,CAAC,IAAI,CAAC;QACX,4EAA4E;QAC5E,4EAA4E;QAC5E,mBAAmB;YACjB,wBAAwB,CACtB,EAAE,EACF,UAAU,EACV,iBAAiB,CAAC,UAAU,IAAI,kBAAkB,EAAE,aAAa,CAAC,EAClE,kBAAkB,CACnB,IAAI,mBAAmB,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,YAAY,CAAC,EAAE,EAAE;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAmC,CAAC,CAAC;QACjF,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAmC,CAAC,CAAC;QACpF,MAAM,qBAAqB,CAAC,QAAQ,EAAE;YACpC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAgC,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,aAAa,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,aAAa,CAAC,gBAAgB,eAAe,aAAa,CAAC,UAAU,aAAa,aAAa,CAAC,MAAM,oBAAoB,CACzJ,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,mBAAmB,IAAI,kBAAkB,CAAC;IACrE,OAAO;QACL,SAAS;QACT,QAAQ;QACR,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAC3C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QAClC,mFAAmF;QACnF,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI;KAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
* Code placed in `packages/core/` per Package-Boundary Check — verified against AGENTS.md.
|
|
17
|
+
*
|
|
18
|
+
* @task T12348
|
|
19
|
+
* @module nexus/assessment-store
|
|
20
|
+
*/
|
|
21
|
+
import type { GraphIndexAssessment } from '@cleocode/contracts';
|
|
22
|
+
import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
|
|
23
|
+
/** `_nexus_meta` key of the assessment summary. */
|
|
24
|
+
export declare const ASSESSMENT_KEY = "graph_assessment";
|
|
25
|
+
/** `_nexus_meta` key of the separately stored reference list. */
|
|
26
|
+
export declare const ASSESSMENT_REFERENCES_KEY = "graph_assessment_references";
|
|
27
|
+
/**
|
|
28
|
+
* Return the summary form of an assessment: the reference list removed and
|
|
29
|
+
* its length recorded as `referenceCount`.
|
|
30
|
+
*
|
|
31
|
+
* An assessment without a `references` list is returned unchanged, so a
|
|
32
|
+
* summary stays a summary and a historical index without references keeps
|
|
33
|
+
* its shape.
|
|
34
|
+
*
|
|
35
|
+
* @param assessment - Full or summary assessment.
|
|
36
|
+
* @returns The summary a reader of `graph_assessment` observes.
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* const head = assessmentSummary(stagedAssessment);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function assessmentSummary(assessment: GraphIndexAssessment): GraphIndexAssessment;
|
|
43
|
+
/**
|
|
44
|
+
* Write an assessment inside the caller's transaction.
|
|
45
|
+
*
|
|
46
|
+
* - A full assessment writes its summary and replaces the reference list.
|
|
47
|
+
* - A summary that already carries `referenceCount` (for example a provenance
|
|
48
|
+
* re-record of an unchanged generation) rewrites the summary only, keeping
|
|
49
|
+
* the stored list of that same generation.
|
|
50
|
+
* - An assessment with neither removes any stale list.
|
|
51
|
+
*
|
|
52
|
+
* @param tx - Graph database handle or open transaction.
|
|
53
|
+
* @param assessment - Assessment to persist.
|
|
54
|
+
* @returns The summary as written.
|
|
55
|
+
*/
|
|
56
|
+
export declare function writeAssessment(tx: Pick<NodeSQLiteDatabase, 'run'>, assessment: GraphIndexAssessment): GraphIndexAssessment;
|
|
57
|
+
//# 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;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,mDAAmD;AACnD,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAEjD,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE;;;;;;;;;;;;;;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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
* Code placed in `packages/core/` per Package-Boundary Check — verified against AGENTS.md.
|
|
17
|
+
*
|
|
18
|
+
* @task T12348
|
|
19
|
+
* @module nexus/assessment-store
|
|
20
|
+
*/
|
|
21
|
+
import { sql } from 'drizzle-orm';
|
|
22
|
+
/** `_nexus_meta` key of the assessment summary. */
|
|
23
|
+
export const ASSESSMENT_KEY = 'graph_assessment';
|
|
24
|
+
/** `_nexus_meta` key of the separately stored reference list. */
|
|
25
|
+
export const ASSESSMENT_REFERENCES_KEY = 'graph_assessment_references';
|
|
26
|
+
/**
|
|
27
|
+
* Return the summary form of an assessment: the reference list removed and
|
|
28
|
+
* its length recorded as `referenceCount`.
|
|
29
|
+
*
|
|
30
|
+
* An assessment without a `references` list is returned unchanged, so a
|
|
31
|
+
* summary stays a summary and a historical index without references keeps
|
|
32
|
+
* its shape.
|
|
33
|
+
*
|
|
34
|
+
* @param assessment - Full or summary assessment.
|
|
35
|
+
* @returns The summary a reader of `graph_assessment` observes.
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* const head = assessmentSummary(stagedAssessment);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function assessmentSummary(assessment) {
|
|
42
|
+
if (assessment.references === undefined)
|
|
43
|
+
return assessment;
|
|
44
|
+
const { references, ...summary } = assessment;
|
|
45
|
+
return { ...summary, referenceCount: references.length };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Write an assessment inside the caller's transaction.
|
|
49
|
+
*
|
|
50
|
+
* - A full assessment writes its summary and replaces the reference list.
|
|
51
|
+
* - A summary that already carries `referenceCount` (for example a provenance
|
|
52
|
+
* re-record of an unchanged generation) rewrites the summary only, keeping
|
|
53
|
+
* the stored list of that same generation.
|
|
54
|
+
* - An assessment with neither removes any stale list.
|
|
55
|
+
*
|
|
56
|
+
* @param tx - Graph database handle or open transaction.
|
|
57
|
+
* @param assessment - Assessment to persist.
|
|
58
|
+
* @returns The summary as written.
|
|
59
|
+
*/
|
|
60
|
+
export function writeAssessment(tx, assessment) {
|
|
61
|
+
const summary = assessmentSummary(assessment);
|
|
62
|
+
tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES (${ASSESSMENT_KEY}, ${JSON.stringify(summary)})
|
|
63
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
|
|
64
|
+
if (assessment.references !== undefined) {
|
|
65
|
+
tx.run(sql `INSERT INTO main._nexus_meta (key, value) VALUES (${ASSESSMENT_REFERENCES_KEY}, ${JSON.stringify(assessment.references)})
|
|
66
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = strftime('%s', 'now')`);
|
|
67
|
+
}
|
|
68
|
+
else if (summary.referenceCount === undefined) {
|
|
69
|
+
tx.run(sql `DELETE FROM main._nexus_meta WHERE key = ${ASSESSMENT_REFERENCES_KEY}`);
|
|
70
|
+
}
|
|
71
|
+
return summary;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=assessment-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment-store.js","sourceRoot":"","sources":["../../src/nexus/assessment-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEjD,iEAAiE;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEvE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAgC;IAChE,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC3D,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC;IAC9C,OAAO,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,EAAmC,EACnC,UAAgC;IAEhC,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qDAAqD,cAAc,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;8FACb,CAAC,CAAC;IAC9F,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qDAAqD,yBAAyB,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;gGACtC,CAAC,CAAC;IAChG,CAAC;SAAM,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAChD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,4CAA4C,yBAAyB,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|