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