daftari 1.30.0 → 1.32.0
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/CHANGELOG.md +176 -0
- package/README.md +188 -4
- package/dist/access/rbac.d.ts +1 -0
- package/dist/access/rbac.d.ts.map +1 -1
- package/dist/access/rbac.js +7 -0
- package/dist/access/rbac.js.map +1 -1
- package/dist/audit/checks/broken_refs.d.ts +1 -1
- package/dist/audit/checks/broken_refs.d.ts.map +1 -1
- package/dist/audit/checks/broken_refs.js +77 -22
- package/dist/audit/checks/broken_refs.js.map +1 -1
- package/dist/audit/collect.d.ts +1 -0
- package/dist/audit/collect.d.ts.map +1 -1
- package/dist/audit/collect.js +22 -2
- package/dist/audit/collect.js.map +1 -1
- package/dist/audit/index.d.ts.map +1 -1
- package/dist/audit/index.js +9 -3
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/links.d.ts.map +1 -1
- package/dist/audit/links.js +9 -3
- package/dist/audit/links.js.map +1 -1
- package/dist/audit/report.d.ts.map +1 -1
- package/dist/audit/report.js +2 -0
- package/dist/audit/report.js.map +1 -1
- package/dist/audit/types.d.ts +4 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/types.js.map +1 -1
- package/dist/backfill/derive.d.ts.map +1 -1
- package/dist/backfill/derive.js +1 -0
- package/dist/backfill/derive.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +24 -0
- package/dist/cli.js.map +1 -1
- package/dist/consolidate/index.d.ts.map +1 -1
- package/dist/consolidate/index.js +10 -12
- package/dist/consolidate/index.js.map +1 -1
- package/dist/court/precedent.d.ts.map +1 -1
- package/dist/court/precedent.js +6 -1
- package/dist/court/precedent.js.map +1 -1
- package/dist/curation/consumes.d.ts +24 -0
- package/dist/curation/consumes.d.ts.map +1 -0
- package/dist/curation/consumes.js +122 -0
- package/dist/curation/consumes.js.map +1 -0
- package/dist/curation/edge-staleness.d.ts +47 -0
- package/dist/curation/edge-staleness.d.ts.map +1 -0
- package/dist/curation/edge-staleness.js +258 -0
- package/dist/curation/edge-staleness.js.map +1 -0
- package/dist/curation/edges.d.ts.map +1 -1
- package/dist/curation/edges.js +190 -17
- package/dist/curation/edges.js.map +1 -1
- package/dist/curation/lint.d.ts +6 -1
- package/dist/curation/lint.d.ts.map +1 -1
- package/dist/curation/lint.js +87 -24
- package/dist/curation/lint.js.map +1 -1
- package/dist/curation/provenance.d.ts +2 -0
- package/dist/curation/provenance.d.ts.map +1 -1
- package/dist/curation/provenance.js +2 -0
- package/dist/curation/provenance.js.map +1 -1
- package/dist/curation/read-log.d.ts +19 -0
- package/dist/curation/read-log.d.ts.map +1 -0
- package/dist/curation/read-log.js +120 -0
- package/dist/curation/read-log.js.map +1 -0
- package/dist/curation/review-throughput.d.ts +24 -0
- package/dist/curation/review-throughput.d.ts.map +1 -0
- package/dist/curation/review-throughput.js +102 -0
- package/dist/curation/review-throughput.js.map +1 -0
- package/dist/curation/shadow.d.ts +1 -0
- package/dist/curation/shadow.d.ts.map +1 -1
- package/dist/curation/shadow.js +17 -11
- package/dist/curation/shadow.js.map +1 -1
- package/dist/curation/staged-actions.d.ts +12 -1
- package/dist/curation/staged-actions.d.ts.map +1 -1
- package/dist/curation/staged-actions.js +123 -48
- package/dist/curation/staged-actions.js.map +1 -1
- package/dist/curation/structural.d.ts +16 -0
- package/dist/curation/structural.d.ts.map +1 -0
- package/dist/curation/structural.js +64 -0
- package/dist/curation/structural.js.map +1 -0
- package/dist/curation/tension-blast.d.ts +4 -0
- package/dist/curation/tension-blast.d.ts.map +1 -1
- package/dist/curation/tension-blast.js +9 -0
- package/dist/curation/tension-blast.js.map +1 -1
- package/dist/curation/tension.d.ts +5 -2
- package/dist/curation/tension.d.ts.map +1 -1
- package/dist/curation/tension.js +68 -25
- package/dist/curation/tension.js.map +1 -1
- package/dist/curation/tier0.d.ts +27 -0
- package/dist/curation/tier0.d.ts.map +1 -0
- package/dist/curation/tier0.js +196 -0
- package/dist/curation/tier0.js.map +1 -0
- package/dist/curation/tier1.d.ts +30 -0
- package/dist/curation/tier1.d.ts.map +1 -0
- package/dist/curation/tier1.js +142 -0
- package/dist/curation/tier1.js.map +1 -0
- package/dist/curation/tier2.d.ts +43 -0
- package/dist/curation/tier2.d.ts.map +1 -0
- package/dist/curation/tier2.js +182 -0
- package/dist/curation/tier2.js.map +1 -0
- package/dist/curation/vault-docs.d.ts +5 -1
- package/dist/curation/vault-docs.d.ts.map +1 -1
- package/dist/curation/vault-docs.js +14 -0
- package/dist/curation/vault-docs.js.map +1 -1
- package/dist/eval/generate.d.ts.map +1 -1
- package/dist/eval/generate.js +38 -5
- package/dist/eval/generate.js.map +1 -1
- package/dist/eval/index.d.ts +1 -0
- package/dist/eval/index.d.ts.map +1 -1
- package/dist/eval/index.js +249 -50
- package/dist/eval/index.js.map +1 -1
- package/dist/eval/llm-openrouter.d.ts.map +1 -1
- package/dist/eval/llm-openrouter.js +158 -65
- package/dist/eval/llm-openrouter.js.map +1 -1
- package/dist/eval/llm.js +1 -1
- package/dist/eval/llm.js.map +1 -1
- package/dist/eval/prune.d.ts +24 -0
- package/dist/eval/prune.d.ts.map +1 -0
- package/dist/eval/prune.js +83 -0
- package/dist/eval/prune.js.map +1 -0
- package/dist/eval/storage.d.ts +3 -0
- package/dist/eval/storage.d.ts.map +1 -1
- package/dist/eval/storage.js +14 -0
- package/dist/eval/storage.js.map +1 -1
- package/dist/frontmatter/schema.d.ts.map +1 -1
- package/dist/frontmatter/schema.js +19 -1
- package/dist/frontmatter/schema.js.map +1 -1
- package/dist/frontmatter/types.d.ts +4 -1
- package/dist/frontmatter/types.d.ts.map +1 -1
- package/dist/frontmatter/types.js +8 -0
- package/dist/frontmatter/types.js.map +1 -1
- package/dist/import/index.d.ts.map +1 -1
- package/dist/import/index.js +44 -9
- package/dist/import/index.js.map +1 -1
- package/dist/import/langgraph-store.d.ts +53 -0
- package/dist/import/langgraph-store.d.ts.map +1 -0
- package/dist/import/langgraph-store.js +292 -0
- package/dist/import/langgraph-store.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -18
- package/dist/index.js.map +1 -1
- package/dist/interview/index.d.ts +7 -0
- package/dist/interview/index.d.ts.map +1 -0
- package/dist/interview/index.js +219 -0
- package/dist/interview/index.js.map +1 -0
- package/dist/interview/questions.d.ts +18 -0
- package/dist/interview/questions.d.ts.map +1 -0
- package/dist/interview/questions.js +169 -0
- package/dist/interview/questions.js.map +1 -0
- package/dist/interview/transcript.d.ts +23 -0
- package/dist/interview/transcript.d.ts.map +1 -0
- package/dist/interview/transcript.js +155 -0
- package/dist/interview/transcript.js.map +1 -0
- package/dist/lifecycle/lock.d.ts +9 -1
- package/dist/lifecycle/lock.d.ts.map +1 -1
- package/dist/lifecycle/lock.js +34 -9
- package/dist/lifecycle/lock.js.map +1 -1
- package/dist/okf/export.d.ts +12 -0
- package/dist/okf/export.d.ts.map +1 -0
- package/dist/okf/export.js +117 -0
- package/dist/okf/export.js.map +1 -0
- package/dist/okf/import.d.ts +24 -0
- package/dist/okf/import.d.ts.map +1 -0
- package/dist/okf/import.js +115 -0
- package/dist/okf/import.js.map +1 -0
- package/dist/okf/index.d.ts +2 -0
- package/dist/okf/index.d.ts.map +1 -0
- package/dist/okf/index.js +159 -0
- package/dist/okf/index.js.map +1 -0
- package/dist/okf/map.d.ts +27 -0
- package/dist/okf/map.d.ts.map +1 -0
- package/dist/okf/map.js +327 -0
- package/dist/okf/map.js.map +1 -0
- package/dist/okf/types.d.ts +13 -0
- package/dist/okf/types.d.ts.map +1 -0
- package/dist/okf/types.js +82 -0
- package/dist/okf/types.js.map +1 -0
- package/dist/search/coverage.d.ts.map +1 -1
- package/dist/search/coverage.js +1 -1
- package/dist/search/coverage.js.map +1 -1
- package/dist/search/hybrid.d.ts +19 -0
- package/dist/search/hybrid.d.ts.map +1 -1
- package/dist/search/hybrid.js +60 -15
- package/dist/search/hybrid.js.map +1 -1
- package/dist/search/reindex.d.ts +4 -0
- package/dist/search/reindex.d.ts.map +1 -1
- package/dist/search/reindex.js +64 -14
- package/dist/search/reindex.js.map +1 -1
- package/dist/search/watcher.d.ts +2 -0
- package/dist/search/watcher.d.ts.map +1 -1
- package/dist/search/watcher.js +29 -27
- package/dist/search/watcher.js.map +1 -1
- package/dist/serve/index.d.ts +36 -0
- package/dist/serve/index.d.ts.map +1 -0
- package/dist/serve/index.js +507 -0
- package/dist/serve/index.js.map +1 -0
- package/dist/server.d.ts +10 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +89 -14
- package/dist/server.js.map +1 -1
- package/dist/sleep/index.d.ts +2 -0
- package/dist/sleep/index.d.ts.map +1 -1
- package/dist/sleep/index.js +212 -21
- package/dist/sleep/index.js.map +1 -1
- package/dist/sleep/report.d.ts +3 -0
- package/dist/sleep/report.d.ts.map +1 -1
- package/dist/sleep/report.js +52 -0
- package/dist/sleep/report.js.map +1 -1
- package/dist/sleep/tension-scan-state.d.ts +19 -0
- package/dist/sleep/tension-scan-state.d.ts.map +1 -0
- package/dist/sleep/tension-scan-state.js +0 -0
- package/dist/sleep/tension-scan-state.js.map +1 -0
- package/dist/sleep/tension-scan.d.ts +44 -0
- package/dist/sleep/tension-scan.d.ts.map +1 -0
- package/dist/sleep/tension-scan.js +0 -0
- package/dist/sleep/tension-scan.js.map +1 -0
- package/dist/storage/backend.d.ts +12 -0
- package/dist/storage/backend.d.ts.map +1 -0
- package/dist/storage/backend.js +231 -0
- package/dist/storage/backend.js.map +1 -0
- package/dist/storage/backends/fs.d.ts +4 -0
- package/dist/storage/backends/fs.d.ts.map +1 -0
- package/dist/storage/backends/fs.js +99 -0
- package/dist/storage/backends/fs.js.map +1 -0
- package/dist/storage/fs-walk.d.ts +5 -0
- package/dist/storage/fs-walk.d.ts.map +1 -0
- package/dist/storage/fs-walk.js +28 -0
- package/dist/storage/fs-walk.js.map +1 -0
- package/dist/storage/index-db.d.ts +16 -0
- package/dist/storage/index-db.d.ts.map +1 -1
- package/dist/storage/index-db.js +95 -5
- package/dist/storage/index-db.js.map +1 -1
- package/dist/storage/local.d.ts +1 -0
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +12 -0
- package/dist/storage/local.js.map +1 -1
- package/dist/storage/sync.d.ts +25 -0
- package/dist/storage/sync.d.ts.map +1 -0
- package/dist/storage/sync.js +308 -0
- package/dist/storage/sync.js.map +1 -0
- package/dist/sync/index.d.ts +2 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +136 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/themes/clustering.d.ts +6 -11
- package/dist/themes/clustering.d.ts.map +1 -1
- package/dist/themes/clustering.js +76 -84
- package/dist/themes/clustering.js.map +1 -1
- package/dist/tools/consumes.d.ts +14 -0
- package/dist/tools/consumes.d.ts.map +1 -0
- package/dist/tools/consumes.js +99 -0
- package/dist/tools/consumes.js.map +1 -0
- package/dist/tools/curation.d.ts +2 -0
- package/dist/tools/curation.d.ts.map +1 -1
- package/dist/tools/curation.js +53 -15
- package/dist/tools/curation.js.map +1 -1
- package/dist/tools/edge-staleness.d.ts +28 -0
- package/dist/tools/edge-staleness.d.ts.map +1 -0
- package/dist/tools/edge-staleness.js +205 -0
- package/dist/tools/edge-staleness.js.map +1 -0
- package/dist/tools/edges.d.ts.map +1 -1
- package/dist/tools/edges.js +27 -21
- package/dist/tools/edges.js.map +1 -1
- package/dist/tools/read.d.ts +15 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +211 -76
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/receipt.d.ts.map +1 -1
- package/dist/tools/receipt.js +16 -7
- package/dist/tools/receipt.js.map +1 -1
- package/dist/tools/search.d.ts +1 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +147 -5
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/staged-actions.d.ts +3 -0
- package/dist/tools/staged-actions.d.ts.map +1 -1
- package/dist/tools/staged-actions.js +225 -22
- package/dist/tools/staged-actions.js.map +1 -1
- package/dist/tools/themes.d.ts +8 -0
- package/dist/tools/themes.d.ts.map +1 -1
- package/dist/tools/themes.js +208 -122
- package/dist/tools/themes.js.map +1 -1
- package/dist/tools/tier1.d.ts +14 -0
- package/dist/tools/tier1.d.ts.map +1 -0
- package/dist/tools/tier1.js +169 -0
- package/dist/tools/tier1.js.map +1 -0
- package/dist/tools/tier2.d.ts +27 -0
- package/dist/tools/tier2.d.ts.map +1 -0
- package/dist/tools/tier2.js +344 -0
- package/dist/tools/tier2.js.map +1 -0
- package/dist/tools/write.d.ts +9 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +596 -174
- package/dist/tools/write.js.map +1 -1
- package/dist/utils/config.d.ts +52 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +394 -24
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/dates.d.ts +1 -0
- package/dist/utils/dates.d.ts.map +1 -1
- package/dist/utils/dates.js +5 -0
- package/dist/utils/dates.js.map +1 -1
- package/dist/utils/run-id.d.ts +3 -0
- package/dist/utils/run-id.d.ts.map +1 -0
- package/dist/utils/run-id.js +19 -0
- package/dist/utils/run-id.js.map +1 -0
- package/dist/utils/vault-gitignore.d.ts +1 -1
- package/dist/utils/vault-gitignore.d.ts.map +1 -1
- package/dist/utils/vault-gitignore.js +4 -1
- package/dist/utils/vault-gitignore.js.map +1 -1
- package/package.json +21 -1
- package/templates/config.yaml +8 -0
package/dist/tools/themes.js
CHANGED
|
@@ -1,33 +1,42 @@
|
|
|
1
|
-
// vault_themes — thematic clustering over
|
|
1
|
+
// vault_themes — thematic clustering over chunk embeddings with per-document
|
|
2
|
+
// theme distributions (#58).
|
|
2
3
|
//
|
|
3
|
-
// Cluster
|
|
4
|
-
// embeddings into one vector,
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
4
|
+
// Cluster CHUNKS, not pooled documents: v1 mean-pooled each document's chunk
|
|
5
|
+
// embeddings into one vector, which collapses a genuinely two-region document
|
|
6
|
+
// (half pricing, half moonshot) into a single point that lands in neither
|
|
7
|
+
// region. v2 clusters the chunk vectors directly and aggregates chunk
|
|
8
|
+
// assignments into per-document DISTRIBUTIONS over themes, so that document
|
|
9
|
+
// carries weight in both themes instead of a wrong single assignment.
|
|
8
10
|
//
|
|
9
|
-
//
|
|
10
|
-
// -
|
|
11
|
+
// v2 constraints (locked):
|
|
12
|
+
// - Documents have distributions, not single assignments. `documentCount`
|
|
13
|
+
// is COVERAGE (a doc in two themes counts in both); the partition lives
|
|
14
|
+
// in `primaryDocumentCount` (each doc counted once, at its argmax theme).
|
|
15
|
+
// - A theme membership below MEMBERSHIP_MIN_FRACTION of the doc's chunks
|
|
16
|
+
// is dropped (except the argmax) — a one-chunk aside must not create a
|
|
17
|
+
// phantom membership (#58's granularity concern).
|
|
11
18
|
// - Heuristic labels from TF-IDF over titles + tags. No LLM call.
|
|
12
19
|
// - No new storage — the tool is read-only against the existing
|
|
13
20
|
// embeddings / chunks / documents tables.
|
|
14
|
-
// - Default k-sweep over {10, 15, 20, 25}; an explicit `k` argument
|
|
15
|
-
//
|
|
16
|
-
//
|
|
21
|
+
// - Default k-sweep over {10, 15, 20, 25}; an explicit `k` argument skips
|
|
22
|
+
// the sweep. Silhouette for the sweep is computed on a deterministic
|
|
23
|
+
// stride sample (chunk-scale inputs make the full O(n²) score ~2B pairs).
|
|
24
|
+
// - Deterministic via a fixed seed for the k-means RNG and stride (never
|
|
25
|
+
// random) sampling.
|
|
17
26
|
import { canRead } from "../access/rbac.js";
|
|
18
27
|
import { err, ok } from "../frontmatter/types.js";
|
|
19
28
|
import { getProvider } from "../search/vector.js";
|
|
20
29
|
import { blobToEmbedding } from "../storage/index-db.js";
|
|
21
|
-
import { clusterCoherence, kmeans,
|
|
30
|
+
import { clusterCoherence, kmeans, membershipDistributions, pickK, seededRng, strideSample, } from "../themes/clustering.js";
|
|
22
31
|
import { ensureIndexReady, openIndexForActiveProvider } from "./search.js";
|
|
23
32
|
// Fixed seed for the k-means RNG. The whole point of vault_themes is that
|
|
24
33
|
// the same vault produces the same themes — a random seed would give the
|
|
25
34
|
// user different themes every run and erode trust in the output.
|
|
26
35
|
const THEMES_RNG_SEED = 0x7da17f1; // arbitrary; constant is what matters
|
|
27
36
|
// Default k-sweep range (from the issue dialogue). Each is clamped to the
|
|
28
|
-
// number of clusterable
|
|
37
|
+
// number of clusterable chunks inside pickK.
|
|
29
38
|
const DEFAULT_K_CANDIDATES = [10, 15, 20, 25];
|
|
30
|
-
// k-means iteration cap.
|
|
39
|
+
// k-means iteration cap. Vectors on the unit sphere converge fast in
|
|
31
40
|
// practice; this is a safety bound for pathological inputs.
|
|
32
41
|
const KMEANS_MAX_ITER = 50;
|
|
33
42
|
// Representative-doc count returned per theme. 5 is enough to be useful in
|
|
@@ -36,15 +45,19 @@ const REPRESENTATIVE_DOCS_PER_THEME = 5;
|
|
|
36
45
|
// Tag-frequency cutoff per theme. Five most-common tags is enough signal
|
|
37
46
|
// without burying the user in noise.
|
|
38
47
|
const RELATED_TAGS_PER_THEME = 5;
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
// the
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
// A doc is a member of a theme when at least this fraction of its chunks
|
|
49
|
+
// landed there (the argmax theme always qualifies). 0.25 keeps the 60/40
|
|
50
|
+
// two-region synthesis doc in both themes while dropping a one-chunk aside
|
|
51
|
+
// in a ten-chunk doc (0.1) — #58's phantom-theme guard.
|
|
52
|
+
const MEMBERSHIP_MIN_FRACTION = 0.25;
|
|
53
|
+
// Silhouette sample cap for the k-sweep. The sweep clusters every chunk but
|
|
54
|
+
// scores k on a deterministic stride sample: full silhouette is O(n²) and
|
|
55
|
+
// chunk-scale inputs (~44k on the motivating vault) would make it ~2B pairs
|
|
56
|
+
// per candidate k.
|
|
57
|
+
const SILHOUETTE_SAMPLE_CAP = 2000;
|
|
58
|
+
// Per-theme coherence sample cap, same O(n²) rationale as the silhouette
|
|
59
|
+
// cap but per cluster.
|
|
60
|
+
const COHERENCE_SAMPLE_CAP = 200;
|
|
48
61
|
// Hard cap on secondaries reported per theme. Same UX rationale as
|
|
49
62
|
// REPRESENTATIVE_DOCS_PER_THEME — enough to be useful, bounded enough to
|
|
50
63
|
// not bury the user.
|
|
@@ -138,24 +151,24 @@ function loadEmbeddingsByPath(db, model, collection) {
|
|
|
138
151
|
}
|
|
139
152
|
return out;
|
|
140
153
|
}
|
|
141
|
-
// Process-level memo of the
|
|
154
|
+
// Process-level memo of the chunk vector set. Keyed by
|
|
142
155
|
// `${vaultRoot} ${model} ${collection ?? "*"}`; the entry's
|
|
143
156
|
// `signature` is checked against the live index signature on every call and a
|
|
144
157
|
// mismatch (any reindex/content change) discards the stale entry. Bounded to
|
|
145
|
-
// one entry per scope key — the working set for a single vault is
|
|
146
|
-
//
|
|
147
|
-
|
|
158
|
+
// one entry per scope key — the working set for a single vault is the same
|
|
159
|
+
// vectors clustering must hold in memory anyway, and the cache is dropped
|
|
160
|
+
// wholesale on signature change.
|
|
161
|
+
const chunkSetCache = new Map();
|
|
148
162
|
// Test-only hook: reset the process-level cache between cases.
|
|
149
163
|
export function __resetThemesCache() {
|
|
150
|
-
|
|
164
|
+
chunkSetCache.clear();
|
|
151
165
|
}
|
|
152
166
|
// Cheap content signature for the (collection-scoped) chunk+embedding set of
|
|
153
167
|
// the active model. It changes whenever a chunk is added/removed/re-hashed or
|
|
154
|
-
// an embedding is (re)written, which is exactly when the
|
|
155
|
-
// differ — so a matching signature guarantees the cached
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
// collection rename honest. This scans indexes, not the embedding blobs.
|
|
168
|
+
// an embedding is (re)written, which is exactly when the chunk vectors would
|
|
169
|
+
// differ — so a matching signature guarantees the cached set is still valid.
|
|
170
|
+
// `documents.rowid` participation via count keeps a bare collection rename
|
|
171
|
+
// honest. This scans indexes, not the embedding blobs.
|
|
159
172
|
function indexSignature(db, model, collection) {
|
|
160
173
|
const sql = collection
|
|
161
174
|
? `SELECT COUNT(*) AS n,
|
|
@@ -184,27 +197,46 @@ function indexSignature(db, model, collection) {
|
|
|
184
197
|
const hashDigest = (h >>> 0).toString(16);
|
|
185
198
|
return `${model}:${collection ?? "*"}:${row.n ?? 0}:${row.embn ?? 0}:${hashDigest}`;
|
|
186
199
|
}
|
|
187
|
-
// Returns the
|
|
188
|
-
// when the live signature matches and rebuilding (load +
|
|
189
|
-
// This is the load
|
|
190
|
-
// an unchanged index re-uses the
|
|
191
|
-
// embedding
|
|
192
|
-
function
|
|
200
|
+
// Returns the per-doc chunk vector set for the given scope, using the cache
|
|
201
|
+
// when the live signature matches and rebuilding (load + normalise)
|
|
202
|
+
// otherwise. This is the load-avoidance core of the E3 fix: a second call
|
|
203
|
+
// against an unchanged index re-uses the vectors instead of re-reading every
|
|
204
|
+
// embedding blob.
|
|
205
|
+
function getChunkSet(db, vaultRoot, model, documentsByPath, collection) {
|
|
193
206
|
const cacheKey = `${vaultRoot} ${model} ${collection ?? "*"}`;
|
|
194
207
|
const signature = indexSignature(db, model, collection);
|
|
195
|
-
const cached =
|
|
208
|
+
const cached = chunkSetCache.get(cacheKey);
|
|
196
209
|
if (cached && cached.signature === signature)
|
|
197
210
|
return cached;
|
|
198
211
|
const embeddingsByPath = loadEmbeddingsByPath(db, model, collection);
|
|
199
212
|
const docs = [];
|
|
200
|
-
const
|
|
213
|
+
const unembeddedPaths = new Set();
|
|
201
214
|
for (const [path, doc] of documentsByPath) {
|
|
202
215
|
if (collection && doc.collection !== collection)
|
|
203
216
|
continue;
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
217
|
+
const raw = embeddingsByPath.get(path) ?? [];
|
|
218
|
+
// Normalise each chunk onto the unit sphere (cosine semantics for the
|
|
219
|
+
// clustering); drop zero vectors — they carry no direction to cluster.
|
|
220
|
+
const chunks = [];
|
|
221
|
+
for (const vec of raw) {
|
|
222
|
+
// Single pass per chunk: this runs at chunk scale (~44k on the
|
|
223
|
+
// motivating vault), so the norm is computed once and reused for the
|
|
224
|
+
// scaling rather than recomputed inside a normalize helper.
|
|
225
|
+
let norm = 0;
|
|
226
|
+
for (let i = 0; i < vec.length; i++) {
|
|
227
|
+
const x = vec[i];
|
|
228
|
+
norm += x * x;
|
|
229
|
+
}
|
|
230
|
+
if (norm === 0)
|
|
231
|
+
continue;
|
|
232
|
+
const inv = 1 / Math.sqrt(norm);
|
|
233
|
+
const out = new Float32Array(vec.length);
|
|
234
|
+
for (let i = 0; i < vec.length; i++)
|
|
235
|
+
out[i] = vec[i] * inv;
|
|
236
|
+
chunks.push(out);
|
|
237
|
+
}
|
|
238
|
+
if (chunks.length === 0) {
|
|
239
|
+
unembeddedPaths.add(path);
|
|
208
240
|
continue;
|
|
209
241
|
}
|
|
210
242
|
docs.push({
|
|
@@ -212,22 +244,22 @@ function getPooledSet(db, vaultRoot, model, documentsByPath, collection) {
|
|
|
212
244
|
title: doc.title,
|
|
213
245
|
collection: doc.collection,
|
|
214
246
|
tags: doc.tags,
|
|
215
|
-
|
|
247
|
+
chunks,
|
|
216
248
|
});
|
|
217
249
|
}
|
|
218
|
-
const set = { signature, docs,
|
|
219
|
-
|
|
250
|
+
const set = { signature, docs, unembeddedPaths };
|
|
251
|
+
chunkSetCache.set(cacheKey, set);
|
|
220
252
|
return set;
|
|
221
253
|
}
|
|
222
254
|
// Applies the per-caller scope (tags, RBAC) and the doc-has-an-embedded-chunk
|
|
223
|
-
// requirement over a pre-
|
|
224
|
-
// upstream in `
|
|
255
|
+
// requirement over a pre-loaded set. The collection filter is already applied
|
|
256
|
+
// upstream in `getChunkSet` (and pushed into SQL), so it is not re-checked
|
|
225
257
|
// here beyond honouring it for the skipped count. Returns the clusterable doc
|
|
226
258
|
// set and the count of docs the embedding requirement skipped.
|
|
227
259
|
//
|
|
228
260
|
// `skipped` must match the pre-cache contract exactly: a doc counts as skipped
|
|
229
|
-
// only if it passes collection + tags + RBAC and yet has no
|
|
230
|
-
function finalizeScope(
|
|
261
|
+
// only if it passes collection + tags + RBAC and yet has no chunk vector.
|
|
262
|
+
function finalizeScope(chunkSet, documentsByPath, filters, access) {
|
|
231
263
|
const passesTagsAndRbac = (collection, tags) => {
|
|
232
264
|
if (filters.tags && filters.tags.length > 0) {
|
|
233
265
|
const hasAll = filters.tags.every((t) => tags.includes(t));
|
|
@@ -239,7 +271,7 @@ function finalizeScope(pooled, documentsByPath, filters, access) {
|
|
|
239
271
|
return true;
|
|
240
272
|
};
|
|
241
273
|
const scoped = [];
|
|
242
|
-
for (const doc of
|
|
274
|
+
for (const doc of chunkSet.docs) {
|
|
243
275
|
if (!passesTagsAndRbac(doc.collection, doc.tags))
|
|
244
276
|
continue;
|
|
245
277
|
scoped.push({
|
|
@@ -247,11 +279,11 @@ function finalizeScope(pooled, documentsByPath, filters, access) {
|
|
|
247
279
|
title: doc.title,
|
|
248
280
|
collection: doc.collection,
|
|
249
281
|
tags: doc.tags,
|
|
250
|
-
|
|
282
|
+
chunks: doc.chunks,
|
|
251
283
|
});
|
|
252
284
|
}
|
|
253
285
|
let skipped = 0;
|
|
254
|
-
for (const path of
|
|
286
|
+
for (const path of chunkSet.unembeddedPaths) {
|
|
255
287
|
const doc = documentsByPath.get(path);
|
|
256
288
|
if (!doc)
|
|
257
289
|
continue;
|
|
@@ -263,15 +295,6 @@ function finalizeScope(pooled, documentsByPath, filters, access) {
|
|
|
263
295
|
}
|
|
264
296
|
return { scoped, skipped };
|
|
265
297
|
}
|
|
266
|
-
// Cosine similarity for L2-normalised vectors == dot product. Used for
|
|
267
|
-
// representative-doc ranking against a cluster centroid.
|
|
268
|
-
function dotNormalized(a, b) {
|
|
269
|
-
let s = 0;
|
|
270
|
-
const n = Math.min(a.length, b.length);
|
|
271
|
-
for (let i = 0; i < n; i++)
|
|
272
|
-
s += a[i] * b[i];
|
|
273
|
-
return s;
|
|
274
|
-
}
|
|
275
298
|
// TF-IDF over the cluster: term frequency among the cluster's titles +
|
|
276
299
|
// tags, divided by the document-frequency across ALL clusters (so a term
|
|
277
300
|
// that names every theme — e.g. "doc" — doesn't dominate any one of them).
|
|
@@ -299,7 +322,7 @@ function buildLabel(clusterDocs, globalDocCount, globalDf, themeIndex) {
|
|
|
299
322
|
continue;
|
|
300
323
|
scored.push({ term, score: freq * idf });
|
|
301
324
|
}
|
|
302
|
-
scored.sort((a, b) => b.score - a.score);
|
|
325
|
+
scored.sort((a, b) => b.score - a.score || a.term.localeCompare(b.term));
|
|
303
326
|
const top = scored.slice(0, 3).map((s) => s.term);
|
|
304
327
|
if (top.length > 0)
|
|
305
328
|
return top.join(" / ");
|
|
@@ -346,13 +369,6 @@ function topTagsForCluster(clusterDocs) {
|
|
|
346
369
|
.slice(0, RELATED_TAGS_PER_THEME)
|
|
347
370
|
.map(([t]) => t);
|
|
348
371
|
}
|
|
349
|
-
function representativesForCluster(clusterDocs, centroid) {
|
|
350
|
-
return [...clusterDocs]
|
|
351
|
-
.map((d) => ({ path: d.path, sim: dotNormalized(d.vector, centroid) }))
|
|
352
|
-
.sort((a, b) => b.sim - a.sim || a.path.localeCompare(b.path))
|
|
353
|
-
.slice(0, REPRESENTATIVE_DOCS_PER_THEME)
|
|
354
|
-
.map((d) => d.path);
|
|
355
|
-
}
|
|
356
372
|
function parseArgs(args) {
|
|
357
373
|
let k;
|
|
358
374
|
if (args.k !== undefined) {
|
|
@@ -410,86 +426,153 @@ export async function vaultThemes(vaultRoot, args, access) {
|
|
|
410
426
|
supersededBy: null,
|
|
411
427
|
});
|
|
412
428
|
}
|
|
413
|
-
const
|
|
414
|
-
const { scoped, skipped } = finalizeScope(
|
|
429
|
+
const chunkSet = getChunkSet(db, vaultRoot, provider.id, documentsByPath, collection);
|
|
430
|
+
const { scoped, skipped } = finalizeScope(chunkSet, documentsByPath, parsed.value, access);
|
|
415
431
|
if (scoped.length === 0) {
|
|
416
432
|
return ok({
|
|
417
433
|
themes: [],
|
|
434
|
+
docMemberships: {},
|
|
418
435
|
totalDocuments: 0,
|
|
436
|
+
totalChunks: 0,
|
|
419
437
|
skippedDocuments: skipped,
|
|
420
438
|
selectedK: 0,
|
|
439
|
+
droppedClusters: 0,
|
|
421
440
|
clusteredAt: new Date().toISOString(),
|
|
422
441
|
});
|
|
423
442
|
}
|
|
424
|
-
|
|
443
|
+
// Flatten to chunk-level arrays: the clustering input plus the chunk→doc
|
|
444
|
+
// map the distribution aggregation needs.
|
|
445
|
+
const chunkVectors = [];
|
|
446
|
+
const chunkDoc = [];
|
|
447
|
+
for (let d = 0; d < scoped.length; d++) {
|
|
448
|
+
for (const vec of scoped[d].chunks) {
|
|
449
|
+
chunkVectors.push(vec);
|
|
450
|
+
chunkDoc.push(d);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
425
453
|
const rng = seededRng(THEMES_RNG_SEED);
|
|
426
454
|
let selectedK;
|
|
427
455
|
let assignments;
|
|
428
|
-
let centroids;
|
|
429
456
|
if (parsed.value.k !== undefined) {
|
|
430
|
-
const result = kmeans(
|
|
457
|
+
const result = kmeans(chunkVectors, parsed.value.k, rng, KMEANS_MAX_ITER);
|
|
431
458
|
selectedK = result.centroids.length;
|
|
432
459
|
assignments = result.assignments;
|
|
433
|
-
centroids = result.centroids;
|
|
434
460
|
}
|
|
435
461
|
else {
|
|
436
|
-
const result = pickK(
|
|
462
|
+
const result = pickK(chunkVectors, DEFAULT_K_CANDIDATES, rng, KMEANS_MAX_ITER, SILHOUETTE_SAMPLE_CAP);
|
|
437
463
|
selectedK = result.centroids.length;
|
|
438
464
|
assignments = result.assignments;
|
|
439
|
-
centroids = result.centroids;
|
|
440
465
|
}
|
|
441
|
-
//
|
|
442
|
-
const
|
|
443
|
-
|
|
466
|
+
// Aggregate chunk assignments into per-doc theme distributions (#58).
|
|
467
|
+
const distributions = membershipDistributions(assignments, chunkDoc, scoped.length, MEMBERSHIP_MIN_FRACTION);
|
|
468
|
+
// Group member/primary docs by cluster from the distributions.
|
|
469
|
+
const membersByCluster = new Map();
|
|
470
|
+
const primaryByCluster = new Map();
|
|
471
|
+
for (let d = 0; d < distributions.length; d++) {
|
|
472
|
+
const memberships = distributions[d] ?? [];
|
|
473
|
+
for (let m = 0; m < memberships.length; m++) {
|
|
474
|
+
const { cluster, weight } = memberships[m];
|
|
475
|
+
const list = membersByCluster.get(cluster);
|
|
476
|
+
if (list)
|
|
477
|
+
list.push({ docIndex: d, weight });
|
|
478
|
+
else
|
|
479
|
+
membersByCluster.set(cluster, [{ docIndex: d, weight }]);
|
|
480
|
+
// memberships are weight-desc with deterministic ties: entry 0 IS
|
|
481
|
+
// the argmax/primary.
|
|
482
|
+
if (m === 0) {
|
|
483
|
+
const plist = primaryByCluster.get(cluster);
|
|
484
|
+
if (plist)
|
|
485
|
+
plist.push(d);
|
|
486
|
+
else
|
|
487
|
+
primaryByCluster.set(cluster, [d]);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
// Chunk vectors per cluster for the coherence score.
|
|
492
|
+
const chunksByCluster = new Map();
|
|
493
|
+
for (let i = 0; i < chunkVectors.length; i++) {
|
|
444
494
|
const c = assignments[i];
|
|
445
|
-
const
|
|
446
|
-
const list = byCluster.get(c);
|
|
495
|
+
const list = chunksByCluster.get(c);
|
|
447
496
|
if (list)
|
|
448
|
-
list.push(
|
|
497
|
+
list.push(chunkVectors[i]);
|
|
449
498
|
else
|
|
450
|
-
|
|
499
|
+
chunksByCluster.set(c, [chunkVectors[i]]);
|
|
500
|
+
}
|
|
501
|
+
// A chunk-bearing cluster no doc's retained membership points at is a
|
|
502
|
+
// grab-bag of sub-threshold asides — dropped from `themes` by the
|
|
503
|
+
// phantom-theme guard, but COUNTED so the omission is visible (empty
|
|
504
|
+
// k-means clusters from the k-clamp are not "dropped": they never had
|
|
505
|
+
// chunks).
|
|
506
|
+
let droppedClusters = 0;
|
|
507
|
+
for (const clusterId of chunksByCluster.keys()) {
|
|
508
|
+
if (!membersByCluster.has(clusterId))
|
|
509
|
+
droppedClusters += 1;
|
|
451
510
|
}
|
|
452
511
|
const globalDf = buildGlobalDf(scoped);
|
|
453
|
-
// Secondary memberships: for each doc, find non-primary clusters its
|
|
454
|
-
// pooled vector also aligns with. This is the soft-reporting layer on
|
|
455
|
-
// top of the hard partition — it does NOT change documentCount, which
|
|
456
|
-
// still reflects primary membership only.
|
|
457
|
-
const secondaryByCluster = selectSecondaryMemberships(vectors, assignments, centroids, {
|
|
458
|
-
delta: SECONDARY_DELTA,
|
|
459
|
-
minSimilarity: SECONDARY_MIN_SIMILARITY,
|
|
460
|
-
maxPerDoc: SECONDARY_MAX_PER_DOC,
|
|
461
|
-
});
|
|
462
512
|
const themes = [];
|
|
463
513
|
let themeIndex = 0;
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
const
|
|
468
|
-
if (
|
|
514
|
+
// Iterate clusters in index order so labels/fallbacks are deterministic.
|
|
515
|
+
const clusterIds = [...membersByCluster.keys()].sort((a, b) => a - b);
|
|
516
|
+
for (const clusterId of clusterIds) {
|
|
517
|
+
const members = membersByCluster.get(clusterId) ?? [];
|
|
518
|
+
if (members.length === 0)
|
|
469
519
|
continue;
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
520
|
+
members.sort((a, b) => b.weight - a.weight ||
|
|
521
|
+
scoped[a.docIndex].path.localeCompare(scoped[b.docIndex].path));
|
|
522
|
+
const primaries = new Set(primaryByCluster.get(clusterId) ?? []);
|
|
523
|
+
// Label/tag signal comes from the docs that primarily live here when
|
|
524
|
+
// any do — a theme should be named by its residents, not its visitors.
|
|
525
|
+
const primaryDocs = [...primaries].map((d) => scoped[d]);
|
|
526
|
+
const labelDocs = primaryDocs.length > 0 ? primaryDocs : members.map((m) => scoped[m.docIndex]);
|
|
527
|
+
const clusterChunks = chunksByCluster.get(clusterId) ?? [];
|
|
528
|
+
const coherenceChunks = clusterChunks.length > COHERENCE_SAMPLE_CAP
|
|
529
|
+
? strideSample(clusterChunks.length, COHERENCE_SAMPLE_CAP).map((i) => clusterChunks[i])
|
|
530
|
+
: clusterChunks;
|
|
531
|
+
// A single-chunk theme has no pairs to average — null rather than the
|
|
532
|
+
// mathematically-trivial 1.0, which would falsely imply tightness.
|
|
533
|
+
const coherence = coherenceChunks.length < 2 ? null : clusterCoherence(coherenceChunks);
|
|
477
534
|
themes.push({
|
|
478
|
-
|
|
479
|
-
|
|
535
|
+
id: clusterId,
|
|
536
|
+
label: buildLabel(labelDocs, scoped.length, globalDf, themeIndex),
|
|
537
|
+
documentCount: members.length,
|
|
538
|
+
primaryDocumentCount: primaries.size,
|
|
480
539
|
coherence,
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
540
|
+
// Residents only: a high-weight visitor ranks in `members` but must
|
|
541
|
+
// not appear as a representative AND a secondary of the same theme —
|
|
542
|
+
// the disjointness invariant v1 held and tests pin.
|
|
543
|
+
representativeDocs: members
|
|
544
|
+
.filter((m) => primaries.has(m.docIndex))
|
|
545
|
+
.slice(0, REPRESENTATIVE_DOCS_PER_THEME)
|
|
546
|
+
.map((m) => scoped[m.docIndex].path),
|
|
547
|
+
secondaryDocs: members
|
|
548
|
+
.filter((m) => !primaries.has(m.docIndex))
|
|
549
|
+
.slice(0, SECONDARY_DOCS_PER_THEME)
|
|
550
|
+
.map((m) => scoped[m.docIndex].path),
|
|
551
|
+
relatedTags: topTagsForCluster(labelDocs),
|
|
484
552
|
});
|
|
485
553
|
themeIndex += 1;
|
|
486
554
|
}
|
|
487
555
|
themes.sort((a, b) => b.documentCount - a.documentCount || a.label.localeCompare(b.label));
|
|
556
|
+
// Cross-cutting docs only: a single-theme doc's distribution is trivial,
|
|
557
|
+
// and listing every path would bloat the payload at vault scale.
|
|
558
|
+
const docMemberships = {};
|
|
559
|
+
for (let d = 0; d < distributions.length; d++) {
|
|
560
|
+
const memberships = distributions[d] ?? [];
|
|
561
|
+
if (memberships.length < 2)
|
|
562
|
+
continue;
|
|
563
|
+
docMemberships[scoped[d].path] = memberships.map((m) => ({
|
|
564
|
+
theme: m.cluster,
|
|
565
|
+
weight: m.weight,
|
|
566
|
+
}));
|
|
567
|
+
}
|
|
488
568
|
return ok({
|
|
489
569
|
themes,
|
|
570
|
+
docMemberships,
|
|
490
571
|
totalDocuments: scoped.length,
|
|
572
|
+
totalChunks: chunkVectors.length,
|
|
491
573
|
skippedDocuments: skipped,
|
|
492
574
|
selectedK,
|
|
575
|
+
droppedClusters,
|
|
493
576
|
clusteredAt: new Date().toISOString(),
|
|
494
577
|
});
|
|
495
578
|
}
|
|
@@ -505,15 +588,18 @@ export const themesTools = [
|
|
|
505
588
|
name: "vault_themes",
|
|
506
589
|
title: "Cluster vault themes",
|
|
507
590
|
annotations: { readOnlyHint: true },
|
|
508
|
-
description: "Surface thematic clusters across the vault using k-means over " +
|
|
509
|
-
"document
|
|
510
|
-
"
|
|
511
|
-
"
|
|
512
|
-
"
|
|
513
|
-
"
|
|
514
|
-
"
|
|
515
|
-
"
|
|
516
|
-
"
|
|
591
|
+
description: "Surface thematic clusters across the vault using k-means over CHUNK " +
|
|
592
|
+
"embeddings, with per-document theme distributions. A document whose " +
|
|
593
|
+
"chunks split across two clusters is a member of both themes " +
|
|
594
|
+
"(docMemberships reports its weights); documentCount is coverage (a " +
|
|
595
|
+
"two-theme doc counts in both) while primaryDocumentCount partitions " +
|
|
596
|
+
"docs by their dominant theme. By default the tool sweeps " +
|
|
597
|
+
"k ∈ {10, 15, 20, 25} and picks the k with the best (sampled) mean " +
|
|
598
|
+
"silhouette; pass `k` to skip the sweep. Each theme reports a " +
|
|
599
|
+
"heuristic label (TF-IDF over titles + tags), a coherence score (mean " +
|
|
600
|
+
"pairwise cosine among its chunks), representative documents ranked " +
|
|
601
|
+
"by membership weight, and the most frequent tags. Output is " +
|
|
602
|
+
"deterministic for the same vault.",
|
|
517
603
|
inputSchema: {
|
|
518
604
|
type: "object",
|
|
519
605
|
properties: {
|
package/dist/tools/themes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/tools/themes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/tools/themes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type AccessContext } from "../access/rbac.js";
|
|
2
|
+
import { type Tier1Summary, type Tier1Verdict } from "../curation/tier1.js";
|
|
3
|
+
import { type Result } from "../frontmatter/types.js";
|
|
4
|
+
import type { ToolDefinition } from "./read.js";
|
|
5
|
+
export interface Tier1Result {
|
|
6
|
+
unit: string;
|
|
7
|
+
changed_fields: string[];
|
|
8
|
+
change_source: "provenance" | "explicit";
|
|
9
|
+
verdicts: Tier1Verdict[];
|
|
10
|
+
summary: Tier1Summary;
|
|
11
|
+
}
|
|
12
|
+
export declare function vaultTier1(vaultRoot: string, args: Record<string, unknown>, access?: AccessContext): Promise<Result<Tier1Result, Error>>;
|
|
13
|
+
export declare const tier1Tools: ToolDefinition[];
|
|
14
|
+
//# sourceMappingURL=tier1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier1.d.ts","sourceRoot":"","sources":["../../src/tools/tier1.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,mBAAmB,CAAC;AAMnE,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;IAGzB,aAAa,EAAE,YAAY,GAAG,UAAU,CAAC;IACzC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAmHrC;AAED,eAAO,MAAM,UAAU,EAAE,cAAc,EAsCtC,CAAC"}
|