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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Open Knowledge Format (OKF) — shared constants and types.
|
|
2
|
+
//
|
|
3
|
+
// OKF is Google Cloud's vendor-neutral specification (v0.2) for the LLM-wiki
|
|
4
|
+
// pattern: a directory of markdown files with YAML frontmatter that any
|
|
5
|
+
// producer can emit and any consumer can read without translation. Daftari's
|
|
6
|
+
// vault *is* this pattern, so `daftari okf export|import` bridges the two.
|
|
7
|
+
//
|
|
8
|
+
// Spec essentials that this module implements:
|
|
9
|
+
// - A concept doc is any non-reserved `.md` file with a frontmatter block.
|
|
10
|
+
// - The single required frontmatter field is `type` (a free-form kind string).
|
|
11
|
+
// - Recommended fields: title, description, resource, tags.
|
|
12
|
+
// - Reserved filenames: index.md (progressive-disclosure listing) and log.md
|
|
13
|
+
// (chronological change history, newest first).
|
|
14
|
+
// - Consumers must tolerate unknown fields and unknown `type` values.
|
|
15
|
+
//
|
|
16
|
+
// v0.2 adds opt-in trust signals — raw credibility indicators, never computed
|
|
17
|
+
// scores, all optional so v0.1 bundles stay valid:
|
|
18
|
+
// - `generated: {by, at}` — who produced the content and when it last
|
|
19
|
+
// meaningfully changed. Renames v0.1 `timestamp` (consumers fall back).
|
|
20
|
+
// - `verified: [{by, at}]` — independent confirmations. The trust tier is
|
|
21
|
+
// derived: no key = unverified, machine actors only = machine-confirmed,
|
|
22
|
+
// any `human:<id>` entry = human-reviewed.
|
|
23
|
+
// - `status: draft | stable | deprecated` — lifecycle; absent means stable.
|
|
24
|
+
// - `stale_after: YYYY-MM-DD` — absolute date (not a TTL) for deterministic
|
|
25
|
+
// staleness checks.
|
|
26
|
+
// - `sources: [{id, resource, title, author, usage_count, last_modified}]`
|
|
27
|
+
// — structured provenance. Renames the v0.1 body `# Citations` list.
|
|
28
|
+
// - A new concept type, `Attested Computation`: a sanctioned computation
|
|
29
|
+
// agents may parameterize but never edit.
|
|
30
|
+
// The OKF spec version this producer targets and this consumer understands.
|
|
31
|
+
// Written into the exported bundle's root index.md frontmatter (the spec's
|
|
32
|
+
// place for a bundle to declare its target version).
|
|
33
|
+
export const OKF_VERSION = "0.2";
|
|
34
|
+
// Reserved filenames with defined structural meaning. They are NOT concept
|
|
35
|
+
// docs: export generates them, import skips them.
|
|
36
|
+
export const OKF_INDEX_FILE = "index.md";
|
|
37
|
+
export const OKF_LOG_FILE = "log.md";
|
|
38
|
+
export const OKF_RESERVED_FILES = [OKF_INDEX_FILE, OKF_LOG_FILE];
|
|
39
|
+
// The frontmatter key under which export stashes the document's original,
|
|
40
|
+
// verbatim Daftari frontmatter. It is an ordinary producer-defined field as far
|
|
41
|
+
// as OKF is concerned (consumers preserve it), but it lets `okf import` of a
|
|
42
|
+
// Daftari-produced bundle reconstruct the source frontmatter exactly rather than
|
|
43
|
+
// re-synthesizing it from the lossy OKF core fields. Absent on foreign bundles.
|
|
44
|
+
export const DAFTARI_SIDECAR_KEY = "daftari";
|
|
45
|
+
// The `type` value assigned to a concept doc that has no natural kind to map
|
|
46
|
+
// from (an untitled/uncollected doc on export, a foreign doc with no directory
|
|
47
|
+
// on import). OKF requires a non-empty `type`; this keeps every emitted doc
|
|
48
|
+
// conformant without inventing a false-specific kind.
|
|
49
|
+
export const DEFAULT_OKF_TYPE = "note";
|
|
50
|
+
// The Daftari collection assigned to a foreign OKF concept doc that carries no
|
|
51
|
+
// directory and no usable `type` to derive one from.
|
|
52
|
+
export const DEFAULT_IMPORT_COLLECTION = "imported";
|
|
53
|
+
// The canonical OKF frontmatter fields, in the order export writes them. `type`
|
|
54
|
+
// is the only required one; the rest are recommended/optional and omitted when
|
|
55
|
+
// empty. `timestamp` is the v0.1 name for `generated.at` — export writes the
|
|
56
|
+
// v0.2 form, import still accepts the old one.
|
|
57
|
+
export const OKF_CORE_FIELDS = [
|
|
58
|
+
"type",
|
|
59
|
+
"title",
|
|
60
|
+
"description",
|
|
61
|
+
"resource",
|
|
62
|
+
"tags",
|
|
63
|
+
"generated",
|
|
64
|
+
"verified",
|
|
65
|
+
"status",
|
|
66
|
+
"stale_after",
|
|
67
|
+
"sources",
|
|
68
|
+
];
|
|
69
|
+
// The v0.2 lifecycle states. Absence means "stable" per spec.
|
|
70
|
+
export const OKF_STATUSES = ["draft", "stable", "deprecated"];
|
|
71
|
+
// The v0.2 concept type for a sanctioned computation. Agents may fill declared
|
|
72
|
+
// parameters at call time but must never edit the computation itself. Import
|
|
73
|
+
// flags these docs in a warning so an operator can grant `tier: source` via
|
|
74
|
+
// vault_set_tier — it never auto-elevates, because a foreign bundle's
|
|
75
|
+
// self-declared type is not an authorization for write-protection enforcement.
|
|
76
|
+
export const OKF_ATTESTED_COMPUTATION_TYPE = "Attested Computation";
|
|
77
|
+
// Prefix under which import preserves foreign OKF fields that have no lossless
|
|
78
|
+
// Daftari mapping (the trust record, attestation machinery, and any unknown
|
|
79
|
+
// producer-defined fields). Keeps the import non-destructive, mirroring what
|
|
80
|
+
// the `daftari` sidecar does in the export direction.
|
|
81
|
+
export const OKF_PRESERVED_PREFIX = "okf_";
|
|
82
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/okf/types.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,6EAA6E;AAC7E,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,EAAE;AACF,+CAA+C;AAC/C,6EAA6E;AAC7E,iFAAiF;AACjF,8DAA8D;AAC9D,+EAA+E;AAC/E,oDAAoD;AACpD,wEAAwE;AACxE,EAAE;AACF,8EAA8E;AAC9E,mDAAmD;AACnD,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,+CAA+C;AAC/C,8EAA8E;AAC9E,8EAA8E;AAC9E,wBAAwB;AACxB,6EAA6E;AAC7E,yEAAyE;AACzE,2EAA2E;AAC3E,8CAA8C;AAE9C,4EAA4E;AAC5E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,2EAA2E;AAC3E,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,YAAY,CAAU,CAAC;AAE1E,0EAA0E;AAC1E,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE7C,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAC5E,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AAEpD,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,OAAO;IACP,aAAa;IACb,UAAU;IACV,MAAM;IACN,WAAW;IACX,UAAU;IACV,QAAQ;IACR,aAAa;IACb,SAAS;CACD,CAAC;AAEX,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAU,CAAC;AAGvE,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,sEAAsE;AACtE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,sBAAsB,CAAC;AAEpE,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,sDAAsD;AACtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/search/coverage.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,EAAE,eAOtC,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB/F;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAuBD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,GACpB,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/search/coverage.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,EAAE,eAOtC,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB/F;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAuBD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,GACpB,UAAU,GAAG,IAAI,CAanB;AA8CD,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EAAE,EACjB,IAAI,GAAE,eAA0C,GAC/C,SAAS,EAAE,CAUb;AAMD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,CAwBrF"}
|
package/dist/search/coverage.js
CHANGED
|
@@ -59,7 +59,7 @@ export function computeWindow(db, hits, entity, opts) {
|
|
|
59
59
|
const dates = [];
|
|
60
60
|
for (const h of hits.slice(0, opts.seedK)) {
|
|
61
61
|
const d = getDocument(db, h.path);
|
|
62
|
-
if (d
|
|
62
|
+
if (d?.tags.includes(entity) && d.created && isValidIsoDate(d.created))
|
|
63
63
|
dates.push(d.created);
|
|
64
64
|
}
|
|
65
65
|
if (dates.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/search/coverage.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yEAAyE;AACzE,4EAA4E;AAC5E,uEAAuE;AACvE,kCAAkC;AAElC,OAAO,EACL,WAAW,EACX,uBAAuB,GAGxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAYrD,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,EAAE,EAAE,mDAAmD;IACpE,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,oDAAoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,EAAW,EAAE,IAAiB,EAAE,KAAa;IAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;YACxB,IAAI,GAAG,GAAG,CAAC;YACX,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,wEAAwE;AACxE,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,6EAA6E;AAC7E,mCAAmC;AACnC,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,SAAS,SAAS,CAAC,GAAW,EAAE,IAAY;IAC1C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,EAAW,EACX,IAAiB,EACjB,MAAc,EACd,IAAqB;IAErB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/search/coverage.ts"],"names":[],"mappings":"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"}
|
package/dist/search/hybrid.d.ts
CHANGED
|
@@ -21,15 +21,34 @@ export interface HybridHit {
|
|
|
21
21
|
currentSource?: CurrentSource;
|
|
22
22
|
contested?: ContestedTension[];
|
|
23
23
|
contestedCount?: number;
|
|
24
|
+
pendingBrokenUpstream?: "some" | "many";
|
|
25
|
+
hiddenPendingUpstream?: "some" | "many";
|
|
26
|
+
orphan?: boolean;
|
|
27
|
+
deprecatedStillLinked?: boolean;
|
|
24
28
|
viaCoverage?: boolean;
|
|
25
29
|
coverageReason?: "edge" | "entity-window";
|
|
26
30
|
}
|
|
31
|
+
export interface RerankCandidate {
|
|
32
|
+
rank: number;
|
|
33
|
+
path: string;
|
|
34
|
+
title: string;
|
|
35
|
+
collection: string;
|
|
36
|
+
status: string;
|
|
37
|
+
score: number;
|
|
38
|
+
bm25Score: number;
|
|
39
|
+
vectorScore: number;
|
|
40
|
+
snippet: string;
|
|
41
|
+
}
|
|
27
42
|
export interface HybridSearchResult {
|
|
28
43
|
query: string;
|
|
29
44
|
count: number;
|
|
30
45
|
vectorUsed: boolean;
|
|
31
46
|
weights: HybridWeights;
|
|
32
47
|
hits: HybridHit[];
|
|
48
|
+
rerank?: {
|
|
49
|
+
instructions: string;
|
|
50
|
+
candidates: RerankCandidate[];
|
|
51
|
+
};
|
|
33
52
|
}
|
|
34
53
|
export interface HybridSearchOptions {
|
|
35
54
|
weights?: HybridWeights;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/search/hybrid.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/search/hybrid.ts"],"names":[],"mappings":"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"}
|
package/dist/search/hybrid.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// unavailable) or the index holds no embeddings, the search degrades to
|
|
17
17
|
// lexical-only and reports vectorUsed: false rather than failing.
|
|
18
18
|
import { computeDecay } from "../curation/decay.js";
|
|
19
|
-
import { ok } from "../frontmatter/types.js";
|
|
19
|
+
import { err, ok } from "../frontmatter/types.js";
|
|
20
20
|
import { embeddingToBlob, getChunksForPath, getDocument, getDocumentsByPaths, } from "../storage/index-db.js";
|
|
21
21
|
import { buildMatchQuery, tokenize } from "./bm25.js";
|
|
22
22
|
import { embedQuery, getProvider, meanEmbedding } from "./vector.js";
|
|
@@ -151,23 +151,43 @@ function vecRanking(db, queryEmbedding, modelId) {
|
|
|
151
151
|
}
|
|
152
152
|
return result;
|
|
153
153
|
}
|
|
154
|
+
// snippet() excerpt budget, in tokens. ~48 stemmed tokens lands near the
|
|
155
|
+
// ~280 chars the JS fallback (SNIPPET_RADIUS * 2) produces, so lexical and
|
|
156
|
+
// fallback snippets read at comparable length.
|
|
157
|
+
const FTS_SNIPPET_TOKENS = 48;
|
|
154
158
|
// Chunk-level lexical ranking. Runs an FTS5 MATCH over `chunks_fts` (one row
|
|
155
159
|
// per chunk), reads the inverse bm25 (flip to larger=better), joins back to
|
|
156
160
|
// `chunks` on rowid to map onto document paths, and collapses to each
|
|
157
161
|
// document's BEST chunk score (max) — mirroring vecRanking's best-per-doc.
|
|
158
162
|
// A relevant topic's own chunk scores high even when its whole document is
|
|
159
|
-
// long and multi-topic. Null query (no usable tokens) returns
|
|
163
|
+
// long and multi-topic. Null query (no usable tokens) returns empty maps.
|
|
164
|
+
//
|
|
165
|
+
// The same pass captures each document's excerpt via FTS5 snippet() from its
|
|
166
|
+
// best-scoring chunk (#108): the inverted index centres the excerpt on the
|
|
167
|
+
// actual match — stemmed variants included, which the JS fallback's literal
|
|
168
|
+
// indexOf cannot see — and no full body is scanned in JS. snippet() is
|
|
169
|
+
// legal here because chunks_fts is EXTERNAL-CONTENT (content='chunks') with
|
|
170
|
+
// a matching column name; documents_fts declares content_body over a base
|
|
171
|
+
// column named content, so the document-granularity path deliberately keeps
|
|
172
|
+
// the JS fallback instead of a schema migration.
|
|
160
173
|
function chunkFtsRanking(db, query) {
|
|
161
174
|
if (query === null)
|
|
162
|
-
return new Map();
|
|
175
|
+
return { scores: new Map(), snippets: new Map() };
|
|
163
176
|
const rows = db
|
|
164
|
-
.prepare(`SELECT c.path AS path, -bm25(chunks_fts) AS score
|
|
177
|
+
.prepare(`SELECT c.path AS path, chunks_fts.rowid AS crowid, -bm25(chunks_fts) AS score
|
|
165
178
|
FROM chunks_fts
|
|
166
179
|
JOIN chunks AS c ON c.rowid = chunks_fts.rowid
|
|
167
180
|
WHERE chunks_fts MATCH ?
|
|
168
181
|
ORDER BY bm25(chunks_fts)`)
|
|
169
182
|
.all(query);
|
|
170
|
-
const
|
|
183
|
+
const scores = new Map();
|
|
184
|
+
// The winning chunk's FTS rowid per path — the snippet pass below is
|
|
185
|
+
// restricted to exactly these rows, so snippet()'s tokenize/format cost is
|
|
186
|
+
// paid once per DOCUMENT, not once per matched chunk. (A ROW_NUMBER()
|
|
187
|
+
// window subquery would not help here: the projected snippet() is still
|
|
188
|
+
// evaluated per inner row before the window filter, and FTS5 auxiliary
|
|
189
|
+
// functions cannot move outside the MATCH cursor.)
|
|
190
|
+
const winners = new Map();
|
|
171
191
|
for (const r of rows) {
|
|
172
192
|
// Some rows may produce a non-positive flipped score if FTS5 returned a
|
|
173
193
|
// positive bm25 (rare with prefix matches); drop them so the normalize
|
|
@@ -179,11 +199,31 @@ function chunkFtsRanking(db, query) {
|
|
|
179
199
|
// their raw scores are never directly compared.
|
|
180
200
|
if (r.score <= 0)
|
|
181
201
|
continue;
|
|
182
|
-
const prev =
|
|
183
|
-
if (r.score > prev)
|
|
184
|
-
|
|
202
|
+
const prev = scores.get(r.path) ?? -Infinity;
|
|
203
|
+
if (r.score > prev) {
|
|
204
|
+
scores.set(r.path, r.score);
|
|
205
|
+
// Keying on the max KEPT score guarantees the snippet always comes
|
|
206
|
+
// from the same chunk the document's score does.
|
|
207
|
+
winners.set(r.path, r.crowid);
|
|
208
|
+
}
|
|
185
209
|
}
|
|
186
|
-
|
|
210
|
+
const snippets = new Map();
|
|
211
|
+
if (winners.size > 0) {
|
|
212
|
+
const ids = [...winners.values()];
|
|
213
|
+
const placeholders = ids.map(() => "?").join(",");
|
|
214
|
+
const snips = db
|
|
215
|
+
.prepare(`SELECT c.path AS path, snippet(chunks_fts, 0, '', '', '…', ?) AS snip
|
|
216
|
+
FROM chunks_fts
|
|
217
|
+
JOIN chunks AS c ON c.rowid = chunks_fts.rowid
|
|
218
|
+
WHERE chunks_fts MATCH ? AND chunks_fts.rowid IN (${placeholders})`)
|
|
219
|
+
.all(FTS_SNIPPET_TOKENS, query, ...ids);
|
|
220
|
+
for (const s of snips) {
|
|
221
|
+
const collapsed = s.snip.replace(/\s+/g, " ").trim();
|
|
222
|
+
if (collapsed.length > 0)
|
|
223
|
+
snippets.set(s.path, collapsed);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return { scores, snippets };
|
|
187
227
|
}
|
|
188
228
|
// Core ranker shared by query search and related-document search.
|
|
189
229
|
// `matchQuery` is the FTS5 MATCH string (already prefix-OR'd, or null);
|
|
@@ -193,13 +233,18 @@ function chunkFtsRanking(db, query) {
|
|
|
193
233
|
// matching term — it doesn't drive ranking.
|
|
194
234
|
function rankDocuments(db, matchQuery, queryEmbedding, queryTokensForSnippet, opts) {
|
|
195
235
|
let bm25Norm;
|
|
236
|
+
// Best-chunk excerpts from the lexical pass (#108); empty for the
|
|
237
|
+
// document-granularity path, whose hits fall back to the JS scan.
|
|
238
|
+
let lexicalSnippets = new Map();
|
|
196
239
|
if (opts.lexicalGranularity === "chunk") {
|
|
197
240
|
// Body granularity (the dilution fix) TIERED with a clean title/tag signal
|
|
198
241
|
// (the native-shape fix). Each is normalized to its own max to reconcile the
|
|
199
242
|
// two FTS score scales; tieredLexical then ranks every body match above every
|
|
200
243
|
// title-only match. The title/tag signal reuses ftsRanking with a column-
|
|
201
244
|
// restricted query so it scores title+tags only (no body dilution).
|
|
202
|
-
const
|
|
245
|
+
const chunkRanked = chunkFtsRanking(db, matchQuery);
|
|
246
|
+
lexicalSnippets = chunkRanked.snippets;
|
|
247
|
+
const chunkNorm = normalize(chunkRanked.scores);
|
|
203
248
|
const titleTagNorm = normalize(ftsRanking(db, columnRestrict(matchQuery, "{title tags}")));
|
|
204
249
|
bm25Norm = tieredLexical(chunkNorm, titleTagNorm);
|
|
205
250
|
}
|
|
@@ -246,7 +291,10 @@ function rankDocuments(db, matchQuery, queryEmbedding, queryTokensForSnippet, op
|
|
|
246
291
|
score,
|
|
247
292
|
bm25Score,
|
|
248
293
|
vectorScore,
|
|
249
|
-
|
|
294
|
+
// FTS5's excerpt for lexical hits (#108); the JS body scan remains the
|
|
295
|
+
// fallback for vector-only and title/tag-only hits, which have no
|
|
296
|
+
// matched body chunk to centre on.
|
|
297
|
+
snippet: lexicalSnippets.get(path) ?? makeSnippet(doc.content, queryTokensForSnippet),
|
|
250
298
|
decay: computeDecay({
|
|
251
299
|
status: doc.status,
|
|
252
300
|
confidence: doc.confidence,
|
|
@@ -309,10 +357,7 @@ export function relatedSearch(db, path, options = {}) {
|
|
|
309
357
|
const rankLimit = options.overFetch ? Number.POSITIVE_INFINITY : limit;
|
|
310
358
|
const doc = getDocument(db, path);
|
|
311
359
|
if (!doc) {
|
|
312
|
-
return {
|
|
313
|
-
ok: false,
|
|
314
|
-
error: new Error(`document not indexed: ${path} (try vault_reindex)`),
|
|
315
|
-
};
|
|
360
|
+
return err(new Error(`document not indexed: ${path} (try vault_reindex)`));
|
|
316
361
|
}
|
|
317
362
|
const provider = getProvider();
|
|
318
363
|
const chunkVectors = getChunksForPath(db, path, provider.id, provider.dim)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/search/hybrid.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/search/hybrid.ts"],"names":[],"mappings":"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"}
|
package/dist/search/reindex.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { type Result } from "../frontmatter/types.js";
|
|
2
|
+
import { type IndexDb } from "../storage/index-db.js";
|
|
3
|
+
export declare function readManifest(db: IndexDb): Record<string, number> | null;
|
|
4
|
+
export declare function writeManifest(db: IndexDb, manifest: Record<string, number>): void;
|
|
2
5
|
export declare function isIndexFresh(vaultRoot: string): Promise<boolean>;
|
|
3
6
|
export interface FlaggedDocument {
|
|
4
7
|
path: string;
|
|
@@ -17,6 +20,7 @@ export interface ReindexResult {
|
|
|
17
20
|
}
|
|
18
21
|
export interface ReindexOptions {
|
|
19
22
|
onProgress?: (done: number, total: number) => void;
|
|
23
|
+
embedCommitBatch?: number;
|
|
20
24
|
}
|
|
21
25
|
export declare function reindexWarnings(result: ReindexResult): string[];
|
|
22
26
|
export declare function reindexVault(vaultRoot: string, opts?: ReindexOptions): Promise<Result<ReindexResult, Error>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../src/search/reindex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../src/search/reindex.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAUL,KAAK,OAAO,EASb,MAAM,wBAAwB,CAAC;AAmEhC,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAUvE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEjF;AAgBD,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CActE;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IAGvB,OAAO,EAAE,eAAe,EAAE,CAAC;IAM3B,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAIlB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAM7B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAInD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAeD,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAc/D;AA8ID,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CA0IvC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IAKvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AASD,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CA+I7C"}
|
package/dist/search/reindex.js
CHANGED
|
@@ -19,9 +19,10 @@
|
|
|
19
19
|
import { stat } from "node:fs/promises";
|
|
20
20
|
import { rebuildEdgesIndex } from "../curation/edges.js";
|
|
21
21
|
import { rebuildStagedActionsIndex } from "../curation/staged-actions.js";
|
|
22
|
+
import { buildPathIndexes, extractLinks, outgoingLinkTargets } from "../curation/vault-docs.js";
|
|
22
23
|
import { parseDocument } from "../frontmatter/parser.js";
|
|
23
24
|
import { err, ok } from "../frontmatter/types.js";
|
|
24
|
-
import { clearEmbeddingsVec, clearIndex, deleteDocument, documentCount, existingEmbeddingHashes, gcOrphanedEmbeddings, getMeta, insertChunkRow, insertDocument, insertEmbedding, insertEmbeddingVec, openIndexDb, setMeta, } from "../storage/index-db.js";
|
|
25
|
+
import { allDocumentPaths, clearEmbeddingsVec, clearIndex, deleteDocument, documentCount, existingEmbeddingHashes, gcOrphanedEmbeddings, getMeta, insertChunkRow, insertDocument, insertEmbedding, insertEmbeddingVec, openIndexDb, replaceDocLinks, setMeta, } from "../storage/index-db.js";
|
|
25
26
|
import { listFiles, readFile, resolveVaultPath } from "../storage/local.js";
|
|
26
27
|
import { sha256Hex } from "../utils/hash.js";
|
|
27
28
|
import { tokenize } from "./bm25.js";
|
|
@@ -82,7 +83,7 @@ async function buildManifest(vaultRoot) {
|
|
|
82
83
|
}
|
|
83
84
|
return manifest;
|
|
84
85
|
}
|
|
85
|
-
function readManifest(db) {
|
|
86
|
+
export function readManifest(db) {
|
|
86
87
|
const raw = getMeta(db, MANIFEST_META_KEY);
|
|
87
88
|
if (!raw)
|
|
88
89
|
return null;
|
|
@@ -96,7 +97,7 @@ function readManifest(db) {
|
|
|
96
97
|
return null;
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
function writeManifest(db, manifest) {
|
|
100
|
+
export function writeManifest(db, manifest) {
|
|
100
101
|
setMeta(db, MANIFEST_META_KEY, JSON.stringify(manifest));
|
|
101
102
|
}
|
|
102
103
|
function manifestsMatch(a, b) {
|
|
@@ -134,6 +135,13 @@ export async function isIndexFresh(vaultRoot) {
|
|
|
134
135
|
db.close();
|
|
135
136
|
}
|
|
136
137
|
}
|
|
138
|
+
// #54: embeddings land in the durable content-addressed cache PER BATCH, not
|
|
139
|
+
// in one end-of-build transaction. The cache thereby doubles as the resume
|
|
140
|
+
// checkpoint: a process-lock takeover SIGTERM mid-build loses at most one
|
|
141
|
+
// batch, and the next build's existingEmbeddingHashes() pass sees every
|
|
142
|
+
// committed batch as a cache hit and embeds only the remainder — no cursor,
|
|
143
|
+
// no new state, the table the build already consults IS the watermark.
|
|
144
|
+
const EMBED_COMMIT_BATCH = 64;
|
|
137
145
|
// Human-readable warning lines for a reindex result's `skipped` and
|
|
138
146
|
// `invalidFrontmatter` buckets, or [] when both are empty. Callers write these
|
|
139
147
|
// to stderr so documents missing from the index — or indexed with coerced
|
|
@@ -241,10 +249,14 @@ async function stageDocuments(vaultRoot) {
|
|
|
241
249
|
// which model produced the vectors.
|
|
242
250
|
function writeChunkRows(db, staged) {
|
|
243
251
|
let chunkCount = 0;
|
|
252
|
+
// Link resolution runs against the FULL staged path set, built up front —
|
|
253
|
+
// insertion order can never drop an edge whose target lands later (#8).
|
|
254
|
+
const linkIndexes = buildPathIndexes(staged.map(({ doc }) => ({ path: doc.path })));
|
|
244
255
|
const write = db.transaction(() => {
|
|
245
256
|
clearIndex(db);
|
|
246
257
|
for (const { doc, chunks, hashes } of staged) {
|
|
247
258
|
insertDocument(db, doc);
|
|
259
|
+
replaceDocLinks(db, doc.path, outgoingLinkTargets(doc.content, doc.path, linkIndexes));
|
|
248
260
|
chunks.forEach((text, chunkIndex) => {
|
|
249
261
|
const row = {
|
|
250
262
|
path: doc.path,
|
|
@@ -304,14 +316,31 @@ export async function reindexVault(vaultRoot, opts = {}) {
|
|
|
304
316
|
const missHashes = [...missTextByHash.keys()];
|
|
305
317
|
const missTexts = missHashes.map((h) => missTextByHash.get(h) ?? "");
|
|
306
318
|
const totalChunks = allHashes.length;
|
|
307
|
-
|
|
319
|
+
let cacheHits = 0;
|
|
320
|
+
for (const h of allHashes)
|
|
321
|
+
if (cached.has(h))
|
|
322
|
+
cacheHits += 1;
|
|
308
323
|
let vectorEnabled = true;
|
|
324
|
+
let committedEmbeds = 0;
|
|
309
325
|
if (missTexts.length > 0) {
|
|
310
|
-
const
|
|
311
|
-
|
|
326
|
+
const batchSize = opts.embedCommitBatch ?? EMBED_COMMIT_BATCH;
|
|
327
|
+
for (let start = 0; start < missHashes.length; start += batchSize) {
|
|
328
|
+
const sliceHashes = missHashes.slice(start, start + batchSize);
|
|
329
|
+
const sliceTexts = missTexts.slice(start, start + batchSize);
|
|
330
|
+
const embedResult = await embed(sliceTexts, opts.onProgress
|
|
331
|
+
? (done, _total) => opts.onProgress?.(committedEmbeds + done, missHashes.length)
|
|
332
|
+
: undefined);
|
|
333
|
+
if (!embedResult.ok) {
|
|
334
|
+
// Model unavailable (or died mid-build). Batches already committed
|
|
335
|
+
// stay in the cache — the next build resumes past them. Documents
|
|
336
|
+
// + chunk rows still land below so BM25 works; vector ranking
|
|
337
|
+
// degrades to nothing for this reindex.
|
|
338
|
+
vectorEnabled = false;
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
312
341
|
const writeEmbeds = db.transaction(() => {
|
|
313
|
-
for (let i = 0; i <
|
|
314
|
-
const h =
|
|
342
|
+
for (let i = 0; i < sliceHashes.length; i++) {
|
|
343
|
+
const h = sliceHashes[i] ?? "";
|
|
315
344
|
const vec = embedResult.value[i];
|
|
316
345
|
if (!vec)
|
|
317
346
|
continue;
|
|
@@ -319,11 +348,7 @@ export async function reindexVault(vaultRoot, opts = {}) {
|
|
|
319
348
|
}
|
|
320
349
|
});
|
|
321
350
|
writeEmbeds();
|
|
322
|
-
|
|
323
|
-
else {
|
|
324
|
-
// Model unavailable. We still want documents + chunk rows so BM25
|
|
325
|
-
// works; vector ranking simply degrades to nothing for this reindex.
|
|
326
|
-
vectorEnabled = false;
|
|
351
|
+
committedEmbeds += sliceHashes.length;
|
|
327
352
|
}
|
|
328
353
|
}
|
|
329
354
|
else if (totalChunks === 0) {
|
|
@@ -369,7 +394,9 @@ export async function reindexVault(vaultRoot, opts = {}) {
|
|
|
369
394
|
skipped,
|
|
370
395
|
invalidFrontmatter,
|
|
371
396
|
indexedAt,
|
|
372
|
-
|
|
397
|
+
// COMMITTED count, not attempted: an interrupted build reports what it
|
|
398
|
+
// actually banked (#54).
|
|
399
|
+
embeddedCount: committedEmbeds,
|
|
373
400
|
cacheHits,
|
|
374
401
|
orphansRemoved,
|
|
375
402
|
});
|
|
@@ -453,9 +480,32 @@ export async function indexDocument(vaultRoot, relPath) {
|
|
|
453
480
|
vectorEnabled = false;
|
|
454
481
|
}
|
|
455
482
|
}
|
|
483
|
+
// Refresh this doc's OUTGOING links against the indexed path universe.
|
|
484
|
+
// Inbound edges to it update as their sources are re-indexed — a doc
|
|
485
|
+
// created after a bare-name link to it was indexed stays unlinked until
|
|
486
|
+
// the linker's next write or a full reindex (accepted
|
|
487
|
+
// reindex-granularity staleness, #8).
|
|
488
|
+
//
|
|
489
|
+
// The path index is O(vault) to build, so it is constructed only when the
|
|
490
|
+
// document actually links out — and outside the write transaction either
|
|
491
|
+
// way, to keep the transaction to row writes. The doc's OWN path is added
|
|
492
|
+
// to the universe (sorted, matching allDocumentPaths' ORDER BY) because a
|
|
493
|
+
// first-time index runs before this doc's row lands: without it, a bare
|
|
494
|
+
// link matching the doc's own basename would resolve to a same-basename
|
|
495
|
+
// sibling instead of being filtered as a self-link.
|
|
496
|
+
let linkTargets = [];
|
|
497
|
+
if (extractLinks(doc.content).length > 0) {
|
|
498
|
+
const universe = allDocumentPaths(db);
|
|
499
|
+
if (!universe.includes(doc.path)) {
|
|
500
|
+
universe.push(doc.path);
|
|
501
|
+
universe.sort();
|
|
502
|
+
}
|
|
503
|
+
linkTargets = outgoingLinkTargets(doc.content, doc.path, buildPathIndexes(universe.map((p) => ({ path: p }))));
|
|
504
|
+
}
|
|
456
505
|
const write = db.transaction(() => {
|
|
457
506
|
deleteDocument(db, doc.path);
|
|
458
507
|
insertDocument(db, doc);
|
|
508
|
+
replaceDocLinks(db, doc.path, linkTargets);
|
|
459
509
|
chunks.forEach((text, chunkIndex) => {
|
|
460
510
|
insertChunkRow(db, {
|
|
461
511
|
path: doc.path,
|