@nodes-dev/core 0.0.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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -0
  3. package/dist/corpus.d.ts +61 -0
  4. package/dist/corpus.d.ts.map +1 -0
  5. package/dist/corpus.js +383 -0
  6. package/dist/corpus.js.map +1 -0
  7. package/dist/errors.d.ts +20 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +23 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/frontmatter.d.ts +5 -0
  12. package/dist/frontmatter.d.ts.map +1 -0
  13. package/dist/frontmatter.js +103 -0
  14. package/dist/frontmatter.js.map +1 -0
  15. package/dist/ids.d.ts +11 -0
  16. package/dist/ids.d.ts.map +1 -0
  17. package/dist/ids.js +36 -0
  18. package/dist/ids.js.map +1 -0
  19. package/dist/index.d.ts +16 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +15 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/node.d.ts +106 -0
  24. package/dist/node.d.ts.map +1 -0
  25. package/dist/node.js +66 -0
  26. package/dist/node.js.map +1 -0
  27. package/dist/ranking.d.ts +7 -0
  28. package/dist/ranking.d.ts.map +1 -0
  29. package/dist/ranking.js +9 -0
  30. package/dist/ranking.js.map +1 -0
  31. package/dist/registry.d.ts +36 -0
  32. package/dist/registry.d.ts.map +1 -0
  33. package/dist/registry.js +123 -0
  34. package/dist/registry.js.map +1 -0
  35. package/dist/relations.d.ts +30 -0
  36. package/dist/relations.d.ts.map +1 -0
  37. package/dist/relations.js +44 -0
  38. package/dist/relations.js.map +1 -0
  39. package/dist/search.d.ts +46 -0
  40. package/dist/search.d.ts.map +1 -0
  41. package/dist/search.js +280 -0
  42. package/dist/search.js.map +1 -0
  43. package/dist/shapes.d.ts +86 -0
  44. package/dist/shapes.d.ts.map +1 -0
  45. package/dist/shapes.js +138 -0
  46. package/dist/shapes.js.map +1 -0
  47. package/dist/similarity.d.ts +68 -0
  48. package/dist/similarity.d.ts.map +1 -0
  49. package/dist/similarity.js +305 -0
  50. package/dist/similarity.js.map +1 -0
  51. package/dist/snapshot.d.ts +56 -0
  52. package/dist/snapshot.d.ts.map +1 -0
  53. package/dist/snapshot.js +252 -0
  54. package/dist/snapshot.js.map +1 -0
  55. package/dist/store.d.ts +15 -0
  56. package/dist/store.d.ts.map +1 -0
  57. package/dist/store.js +44 -0
  58. package/dist/store.js.map +1 -0
  59. package/dist/structural-index.d.ts +72 -0
  60. package/dist/structural-index.d.ts.map +1 -0
  61. package/dist/structural-index.js +434 -0
  62. package/dist/structural-index.js.map +1 -0
  63. package/package.json +50 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Keith Hughitt
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # @nodes-dev/core (TypeScript)
2
+
3
+ TypeScript implementation of Nodes core — behavioral and on-disk-format parity with
4
+ the Python distribution. Core contains the domain-free kernel.
5
+
6
+ ## Scope
7
+
8
+ Mirrors the current Python kernel: `Node`/`Relation`, ids, errors, frontmatter
9
+ parse/serialize, registry, structural shapes, a slimmed `Store` (pure file mechanics),
10
+ the in-memory structural `Index`, and the `Corpus` coordinator — the primary API for
11
+ mutations (`add`/`get`/`rename`/`delete`), graph queries
12
+ (`outbound`/`inbound`/`neighbors`/`dangling`), membership traversal
13
+ (`members`/`containers`/`descendants`/`ancestors`), BM25F full-text `search`, opt-in
14
+ embedding `similar`/`queryVector`/`similarText`, snapshot persistence (`flushIndex`),
15
+ and corpus checking (`check`). TS-only conveniences (tier 3): `idsByKind`/`allByKind`
16
+ and corpus stat fingerprints.
17
+
18
+ The portable contract this kernel implements is specified in `../docs/STANDARD.md`
19
+ (spec version 1.2); parity with Python is pinned by the shared `../fixtures/` oracles.
20
+
21
+ ## Conventions
22
+
23
+ - **camelCase API, snake_case on disk.** The on-disk YAML format is identical to Python's; the only
24
+ field that differs API-vs-disk is `deprecatedIds` (API) ↔ `deprecated_ids` (file).
25
+ - Dates are `YYYY-MM-DD` strings (never JS `Date`), validated by Zod.
26
+ - Validation failures surface as the kernel error hierarchy (`ValidationError`, `FacetError`, …),
27
+ never raw Zod errors.
28
+
29
+ ## Scripts
30
+
31
+ - `npm test` — Vitest suite (includes the cross-language parity checks)
32
+ - `npm run typecheck` — `tsc --noEmit` (the type gate)
33
+ - `npm run check` — Biome lint + format
@@ -0,0 +1,61 @@
1
+ import type { Node } from "./node.js";
2
+ import type { Registry } from "./registry.js";
3
+ import { type SearchHit, SearchIndex } from "./search.js";
4
+ import { type Embedder, type SimilarHit, type Vector, VectorCache, VectorIndex } from "./similarity.js";
5
+ import { type ManifestEntry } from "./snapshot.js";
6
+ import { Store } from "./store.js";
7
+ import { Index, type ResolvedEdge } from "./structural-index.js";
8
+ /** One corpus-check finding (reported, never thrown). */
9
+ export interface Finding {
10
+ readonly severity: "error" | "warning";
11
+ readonly code: string;
12
+ readonly ref: string;
13
+ readonly detail: string;
14
+ readonly message: string;
15
+ }
16
+ /** Coordinator over a `Store` + an in-memory `Index`. The primary kernel API. */
17
+ export declare class Corpus {
18
+ readonly store: Store;
19
+ readonly registry?: Registry;
20
+ index: Index;
21
+ searchIndex: SearchIndex;
22
+ readonly embedder?: Embedder;
23
+ readonly vectorCache?: VectorCache;
24
+ vectorIndex?: VectorIndex;
25
+ manifest: Map<string, ManifestEntry>;
26
+ constructor(root: string, registry?: Registry, embedder?: Embedder);
27
+ private relPath;
28
+ private recordManifest;
29
+ private fullRebuild;
30
+ private reconcile;
31
+ flushIndex(): void;
32
+ private idFor;
33
+ private requireUid;
34
+ add(node: Node): Node;
35
+ get(ref: string): Node;
36
+ resolve(ref: string): Node;
37
+ delete(nodeId: string): void;
38
+ all(): Node[];
39
+ idsByKind(kind: string): string[];
40
+ allByKind(kind: string): Node[];
41
+ outbound(ref: string): ResolvedEdge[];
42
+ inbound(ref: string): ResolvedEdge[];
43
+ dangling(): ResolvedEdge[];
44
+ neighbors(ref: string): Node[];
45
+ private sortedLiveIds;
46
+ members(ref: string): string[];
47
+ containers(ref: string): string[];
48
+ descendants(ref: string): string[];
49
+ ancestors(ref: string): string[];
50
+ rename(oldId: string, newId: string): Node;
51
+ /** Report corpus-validity findings; never throws on content. Registry violations
52
+ * (configured or passed) are errors; unresolved top-level relation targets and
53
+ * unresolved membership member refs are warnings. Sorted by (ref, code, detail)
54
+ * — `message` is human-only. */
55
+ check(registry?: Registry): Finding[];
56
+ search(query: string, limit?: number): SearchHit[];
57
+ similar(ref: string, k?: number): SimilarHit[];
58
+ queryVector(vec: Vector, k?: number): SimilarHit[];
59
+ similarText(text: string, k?: number): SimilarHit[];
60
+ }
61
+ //# sourceMappingURL=corpus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corpus.d.ts","sourceRoot":"","sources":["../src/corpus.ts"],"names":[],"mappings":"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"}
package/dist/corpus.js ADDED
@@ -0,0 +1,383 @@
1
+ import { CollisionError, EmbedderRequiredError, RefError } from "./errors.js";
2
+ import { nodeFromMarkdown, nodeToMarkdown } from "./frontmatter.js";
3
+ import { NodeId } from "./ids.js";
4
+ import { SearchIndex, compareCodepoints } from "./search.js";
5
+ import { EDGES, KEYS, MEMBERSHIP, ORDER } from "./shapes.js";
6
+ import { VectorCache, VectorIndex } from "./similarity.js";
7
+ import { hashBytes, iterCorpusFiles, loadSnapshot, pathForNodeId, writeSnapshot, } from "./snapshot.js";
8
+ import { Store } from "./store.js";
9
+ import { Index } from "./structural-index.js";
10
+ /** Rewrite every position in `node` that holds `oldId` to `newId` (in place):
11
+ * top-level relations plus the built-in structural form facets. */
12
+ function rewriteRefs(node, oldId, newId) {
13
+ for (const rel of node.relations) {
14
+ if (rel.source === oldId)
15
+ rel.source = newId;
16
+ if (rel.target === oldId)
17
+ rel.target = newId;
18
+ }
19
+ const mem = node.facets[MEMBERSHIP];
20
+ if (mem !== null && typeof mem === "object") {
21
+ const members = mem.members;
22
+ if (Array.isArray(members)) {
23
+ mem.members = members.map((m) => (m === oldId ? newId : m));
24
+ }
25
+ }
26
+ const eg = node.facets[EDGES];
27
+ if (eg !== null && typeof eg === "object") {
28
+ const edges = eg.edges;
29
+ if (Array.isArray(edges)) {
30
+ for (const edge of edges) {
31
+ if (edge !== null && typeof edge === "object") {
32
+ const e = edge;
33
+ if (e.source === oldId)
34
+ e.source = newId;
35
+ if (e.target === oldId)
36
+ e.target = newId;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ const od = node.facets[ORDER];
42
+ if (od !== null && typeof od === "object") {
43
+ const order = od.order;
44
+ if (Array.isArray(order)) {
45
+ od.order = order.map((m) => (m === oldId ? newId : m));
46
+ }
47
+ }
48
+ const ky = node.facets[KEYS];
49
+ if (ky !== null && typeof ky === "object") {
50
+ const keys = ky.keys;
51
+ if (keys !== null && typeof keys === "object") {
52
+ const km = keys;
53
+ for (const k of Object.keys(km)) {
54
+ if (km[k] === oldId)
55
+ km[k] = newId;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ /** Coordinator over a `Store` + an in-memory `Index`. The primary kernel API. */
61
+ export class Corpus {
62
+ store;
63
+ registry;
64
+ index;
65
+ searchIndex;
66
+ embedder;
67
+ vectorCache;
68
+ vectorIndex;
69
+ manifest;
70
+ constructor(root, registry, embedder) {
71
+ this.store = new Store(root);
72
+ this.registry = registry;
73
+ this.embedder = embedder;
74
+ this.vectorCache = embedder !== undefined ? new VectorCache(root) : undefined;
75
+ this.manifest = new Map();
76
+ const namespace = embedder !== undefined ? embedder.cacheNamespace : null;
77
+ const snap = loadSnapshot(this.store.root, namespace);
78
+ if (snap === null)
79
+ this.fullRebuild();
80
+ else
81
+ this.reconcile(snap);
82
+ }
83
+ relPath(nodeId) {
84
+ return pathForNodeId(nodeId);
85
+ }
86
+ recordManifest(node) {
87
+ const path = this.relPath(node.id);
88
+ const data = Buffer.from(nodeToMarkdown(node), "utf-8");
89
+ this.manifest.set(path, { path, sha256: hashBytes(data), uid: node.uid });
90
+ }
91
+ fullRebuild() {
92
+ const nodes = [];
93
+ const manifest = new Map();
94
+ for (const f of iterCorpusFiles(this.store.root)) {
95
+ const node = nodeFromMarkdown(f.data.toString("utf-8"));
96
+ nodes.push(node);
97
+ manifest.set(f.path, { path: f.path, sha256: f.sha256, uid: node.uid });
98
+ }
99
+ this.index = Index.build(nodes);
100
+ this.searchIndex = SearchIndex.build(nodes);
101
+ if (this.embedder !== undefined) {
102
+ this.vectorIndex = VectorIndex.build(nodes, this.embedder, this.vectorCache);
103
+ }
104
+ else {
105
+ this.vectorIndex = undefined;
106
+ }
107
+ this.manifest = manifest;
108
+ }
109
+ reconcile(snap) {
110
+ this.index = snap.index;
111
+ this.searchIndex = snap.searchIndex;
112
+ this.vectorIndex = snap.vectorIndex ?? undefined;
113
+ const old = new Map(snap.manifest.map((m) => [m.path, m]));
114
+ const newManifest = new Map();
115
+ const changed = [];
116
+ const drops = [];
117
+ const current = new Set();
118
+ for (const f of iterCorpusFiles(this.store.root)) {
119
+ current.add(f.path);
120
+ const prev = old.get(f.path);
121
+ if (prev !== undefined && prev.sha256 === f.sha256) {
122
+ newManifest.set(f.path, prev); // unchanged: keep deserialized state, no parse
123
+ continue;
124
+ }
125
+ if (prev !== undefined)
126
+ drops.push(prev.uid);
127
+ changed.push({ path: f.path, sha256: f.sha256, node: nodeFromMarkdown(f.data.toString("utf-8")) });
128
+ }
129
+ for (const [path, m] of old) {
130
+ if (!current.has(path))
131
+ drops.push(m.uid); // deleted on disk
132
+ }
133
+ for (const uid of drops) {
134
+ this.index.remove(uid);
135
+ this.searchIndex.remove(uid);
136
+ this.vectorIndex?.remove(uid);
137
+ }
138
+ for (const { path, sha256, node } of changed) {
139
+ // Full build() collision contract: duplicate uid is rejected outright, then assertAddable.
140
+ if (this.index.byUid.has(node.uid))
141
+ throw new CollisionError(`duplicate uid ${JSON.stringify(node.uid)} in corpus`);
142
+ this.index.assertAddable(node);
143
+ const prepared = this.vectorIndex !== undefined
144
+ ? this.vectorIndex.prepare(node, this.embedder, this.vectorCache)
145
+ : undefined;
146
+ this.index.upsert(node);
147
+ this.searchIndex.upsert(node);
148
+ if (this.vectorIndex !== undefined && prepared !== undefined)
149
+ this.vectorIndex.commit(node, prepared);
150
+ newManifest.set(path, { path, sha256, uid: node.uid });
151
+ }
152
+ this.manifest = newManifest;
153
+ }
154
+ flushIndex() {
155
+ const manifest = [...this.manifest.values()].sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
156
+ writeSnapshot(this.store.root, manifest, this.index, this.searchIndex, this.vectorIndex);
157
+ }
158
+ idFor(uid) {
159
+ const entry = this.index.byUid.get(uid);
160
+ if (entry === undefined)
161
+ throw new RefError(`uid ${JSON.stringify(uid)} not in index`);
162
+ return entry.id;
163
+ }
164
+ requireUid(ref) {
165
+ const uid = this.index.resolveUid(ref);
166
+ if (uid === null)
167
+ throw new RefError(`no node resolves ref ${JSON.stringify(ref)}`);
168
+ return uid;
169
+ }
170
+ add(node) {
171
+ if (this.registry !== undefined)
172
+ this.registry.validate(node);
173
+ this.index.assertAddable(node);
174
+ const prepared = this.vectorIndex !== undefined
175
+ ? this.vectorIndex.prepare(node, this.embedder, this.vectorCache)
176
+ : undefined;
177
+ this.store.writeFile(node);
178
+ this.index.upsert(node);
179
+ this.searchIndex.upsert(node);
180
+ if (this.vectorIndex !== undefined && prepared !== undefined) {
181
+ this.vectorIndex.commit(node, prepared);
182
+ }
183
+ this.recordManifest(node);
184
+ return node;
185
+ }
186
+ get(ref) {
187
+ return this.store.readFile(this.idFor(this.requireUid(ref)));
188
+ }
189
+ resolve(ref) {
190
+ return this.get(ref);
191
+ }
192
+ delete(nodeId) {
193
+ const uid = this.index.idToUid.get(nodeId);
194
+ if (uid === undefined)
195
+ throw new RefError(`no live node at ${JSON.stringify(nodeId)}`);
196
+ const path = this.relPath(nodeId);
197
+ this.store.deleteFile(nodeId);
198
+ this.index.remove(uid);
199
+ this.searchIndex.remove(uid);
200
+ this.vectorIndex?.remove(uid);
201
+ this.manifest.delete(path);
202
+ }
203
+ all() {
204
+ return this.store.allNodes();
205
+ }
206
+ idsByKind(kind) {
207
+ const ids = [];
208
+ for (const entry of this.index.byUid.values()) {
209
+ if (entry.kind === kind)
210
+ ids.push(entry.id);
211
+ }
212
+ return ids.sort();
213
+ }
214
+ allByKind(kind) {
215
+ return this.idsByKind(kind).map((id) => this.store.readFile(id));
216
+ }
217
+ outbound(ref) {
218
+ return this.index.outboundEdges(this.requireUid(ref));
219
+ }
220
+ inbound(ref) {
221
+ return this.index.inboundEdges(this.requireUid(ref));
222
+ }
223
+ dangling() {
224
+ return this.index.danglingEdges();
225
+ }
226
+ neighbors(ref) {
227
+ const uid = this.requireUid(ref);
228
+ const neighborUids = new Set();
229
+ for (const edge of this.index.outboundEdges(uid)) {
230
+ if (edge.targetUid !== null)
231
+ neighborUids.add(edge.targetUid);
232
+ }
233
+ for (const edge of this.index.inboundEdges(uid)) {
234
+ if (edge.sourceUid !== null)
235
+ neighborUids.add(edge.sourceUid);
236
+ }
237
+ neighborUids.delete(uid);
238
+ return [...neighborUids].sort().map((u) => this.store.readFile(this.idFor(u)));
239
+ }
240
+ sortedLiveIds(uids) {
241
+ return [...uids].map((u) => this.idFor(u)).sort(compareCodepoints);
242
+ }
243
+ members(ref) {
244
+ return this.sortedLiveIds(this.index.membersOf(this.requireUid(ref)));
245
+ }
246
+ containers(ref) {
247
+ return this.sortedLiveIds(this.index.containersOf(this.requireUid(ref)));
248
+ }
249
+ descendants(ref) {
250
+ return this.sortedLiveIds(this.index.membershipClosure(this.requireUid(ref), "members"));
251
+ }
252
+ ancestors(ref) {
253
+ return this.sortedLiveIds(this.index.membershipClosure(this.requireUid(ref), "containers"));
254
+ }
255
+ rename(oldId, newId) {
256
+ // 1. oldId must be a LIVE id (not unknown, not merely deprecated); then collision-check newId.
257
+ const uid = this.index.idToUid.get(oldId);
258
+ if (uid === undefined)
259
+ throw new RefError(`rename source ${JSON.stringify(oldId)} is not a live id`);
260
+ if (this.index.resolveUid(newId) !== null) {
261
+ throw new CollisionError(`target id ${JSON.stringify(newId)} already in use`);
262
+ }
263
+ // 2. Snapshot the referrer set BEFORE any index mutation (upsert rewrites inRefs).
264
+ const referrerUids = new Set();
265
+ for (const inref of this.index.inRefs.get(oldId) ?? [])
266
+ referrerUids.add(inref.sourceUid);
267
+ // 3. Rewrite the renamed node itself (incl. its own oldId refs).
268
+ const node = this.store.readFile(oldId);
269
+ const oldPath = this.store.pathFor(oldId);
270
+ const oldRelPath = this.relPath(oldId);
271
+ node.id = newId;
272
+ node.kind = NodeId.parse(newId).kind;
273
+ if (!node.deprecatedIds.includes(oldId))
274
+ node.deprecatedIds.push(oldId);
275
+ rewriteRefs(node, oldId, newId);
276
+ // 4. Rewrite every OTHER referrer in memory.
277
+ const referrers = [];
278
+ for (const referrerUid of referrerUids) {
279
+ if (referrerUid === uid)
280
+ continue;
281
+ const referrer = this.store.readFile(this.idFor(referrerUid));
282
+ rewriteRefs(referrer, oldId, newId);
283
+ referrers.push(referrer);
284
+ }
285
+ // 5. Validate ALL writes before ANY write (fail-early, no partial rename).
286
+ if (this.registry !== undefined) {
287
+ this.registry.validate(node);
288
+ for (const referrer of referrers)
289
+ this.registry.validate(referrer);
290
+ }
291
+ // 5b. Prepare the renamed node's + referrers' vectors (fail before any disk write).
292
+ const prepared = this.vectorIndex !== undefined
293
+ ? this.vectorIndex.prepare(node, this.embedder, this.vectorCache)
294
+ : undefined;
295
+ const preparedReferrers = this.vectorIndex !== undefined
296
+ ? referrers.map((r) => this.vectorIndex.prepare(r, this.embedder, this.vectorCache))
297
+ : [];
298
+ // 6. Commit: renamed node first (crash-atomic), then referrers. Each written once.
299
+ const newPath = this.store.writeFile(node);
300
+ if (oldPath !== newPath)
301
+ this.store.deleteFile(oldId);
302
+ this.index.upsert(node);
303
+ for (let i = 0; i < referrers.length; i++) {
304
+ const referrer = referrers[i];
305
+ this.store.writeFile(referrer);
306
+ this.index.upsert(referrer);
307
+ this.searchIndex.upsert(referrer);
308
+ if (this.vectorIndex !== undefined)
309
+ this.vectorIndex.commit(referrer, preparedReferrers[i]);
310
+ }
311
+ this.searchIndex.upsert(node);
312
+ if (this.vectorIndex !== undefined && prepared !== undefined) {
313
+ this.vectorIndex.commit(node, prepared);
314
+ }
315
+ // 7. Manifest: remove old path on move; re-record the renamed node and every rewritten referrer.
316
+ if (oldPath !== newPath)
317
+ this.manifest.delete(oldRelPath);
318
+ this.recordManifest(node);
319
+ for (const referrer of referrers)
320
+ this.recordManifest(referrer);
321
+ return node;
322
+ }
323
+ /** Report corpus-validity findings; never throws on content. Registry violations
324
+ * (configured or passed) are errors; unresolved top-level relation targets and
325
+ * unresolved membership member refs are warnings. Sorted by (ref, code, detail)
326
+ * — `message` is human-only. */
327
+ check(registry) {
328
+ const reg = registry ?? this.registry;
329
+ const findings = [];
330
+ if (reg !== undefined) {
331
+ for (const node of this.store.allNodes()) {
332
+ for (const v of reg.check(node)) {
333
+ findings.push({ severity: "error", code: v.code, ref: node.id, detail: v.detail, message: v.message });
334
+ }
335
+ }
336
+ }
337
+ for (const edge of this.index.danglingEdges()) {
338
+ const rel = edge.relation;
339
+ findings.push({
340
+ severity: "warning",
341
+ code: "dangling-ref",
342
+ ref: rel.source,
343
+ detail: rel.target,
344
+ message: `${rel.source}: relation ${JSON.stringify(rel.predicate)} ` +
345
+ `targets unresolved ${JSON.stringify(rel.target)}`,
346
+ });
347
+ }
348
+ for (const { sourceUid, ref } of this.index.danglingMembers()) {
349
+ const containerId = this.idFor(sourceUid);
350
+ findings.push({
351
+ severity: "warning",
352
+ code: "dangling-member",
353
+ ref: containerId,
354
+ detail: ref,
355
+ message: `${containerId}: member ${JSON.stringify(ref)} resolves to no live node`,
356
+ });
357
+ }
358
+ findings.sort((a, b) => compareCodepoints(a.ref, b.ref) || compareCodepoints(a.code, b.code) || compareCodepoints(a.detail, b.detail));
359
+ return findings;
360
+ }
361
+ search(query, limit) {
362
+ return this.searchIndex.search(query, limit);
363
+ }
364
+ similar(ref, k) {
365
+ if (this.vectorIndex === undefined) {
366
+ throw new EmbedderRequiredError("similarity requires Corpus(root, registry?, embedder)");
367
+ }
368
+ return this.vectorIndex.similar(this.requireUid(ref), k);
369
+ }
370
+ queryVector(vec, k) {
371
+ if (this.vectorIndex === undefined) {
372
+ throw new EmbedderRequiredError("similarity requires Corpus(root, registry?, embedder)");
373
+ }
374
+ return this.vectorIndex.queryVector(vec, k);
375
+ }
376
+ similarText(text, k) {
377
+ if (this.vectorIndex === undefined) {
378
+ throw new EmbedderRequiredError("similarity requires Corpus(root, registry?, embedder)");
379
+ }
380
+ return this.vectorIndex.similarText(text, this.embedder, k);
381
+ }
382
+ }
383
+ //# sourceMappingURL=corpus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corpus.js","sourceRoot":"","sources":["../src/corpus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class NodesError extends Error {
2
+ constructor(message?: string);
3
+ }
4
+ export declare class IdError extends NodesError {
5
+ }
6
+ export declare class RefError extends NodesError {
7
+ }
8
+ export declare class CollisionError extends NodesError {
9
+ }
10
+ export declare class UnknownKindError extends NodesError {
11
+ }
12
+ export declare class FacetError extends NodesError {
13
+ }
14
+ export declare class InvariantError extends NodesError {
15
+ }
16
+ export declare class ValidationError extends NodesError {
17
+ }
18
+ export declare class EmbedderRequiredError extends NodesError {
19
+ }
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED,qBAAa,OAAQ,SAAQ,UAAU;CAAG;AAC1C,qBAAa,QAAS,SAAQ,UAAU;CAAG;AAC3C,qBAAa,cAAe,SAAQ,UAAU;CAAG;AACjD,qBAAa,gBAAiB,SAAQ,UAAU;CAAG;AACnD,qBAAa,UAAW,SAAQ,UAAU;CAAG;AAC7C,qBAAa,cAAe,SAAQ,UAAU;CAAG;AACjD,qBAAa,eAAgB,SAAQ,UAAU;CAAG;AAClD,qBAAa,qBAAsB,SAAQ,UAAU;CAAG"}
package/dist/errors.js ADDED
@@ -0,0 +1,23 @@
1
+ export class NodesError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = new.target.name;
5
+ }
6
+ }
7
+ export class IdError extends NodesError {
8
+ }
9
+ export class RefError extends NodesError {
10
+ }
11
+ export class CollisionError extends NodesError {
12
+ }
13
+ export class UnknownKindError extends NodesError {
14
+ }
15
+ export class FacetError extends NodesError {
16
+ }
17
+ export class InvariantError extends NodesError {
18
+ }
19
+ export class ValidationError extends NodesError {
20
+ }
21
+ export class EmbedderRequiredError extends NodesError {
22
+ }
23
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,UAAU;CAAG;AAC1C,MAAM,OAAO,QAAS,SAAQ,UAAU;CAAG;AAC3C,MAAM,OAAO,cAAe,SAAQ,UAAU;CAAG;AACjD,MAAM,OAAO,gBAAiB,SAAQ,UAAU;CAAG;AACnD,MAAM,OAAO,UAAW,SAAQ,UAAU;CAAG;AAC7C,MAAM,OAAO,cAAe,SAAQ,UAAU;CAAG;AACjD,MAAM,OAAO,eAAgB,SAAQ,UAAU;CAAG;AAClD,MAAM,OAAO,qBAAsB,SAAQ,UAAU;CAAG"}
@@ -0,0 +1,5 @@
1
+ import { type Node } from "./node.js";
2
+ export declare function splitFrontmatter(text: string): [Record<string, unknown>, string];
3
+ export declare function nodeFromMarkdown(text: string): Node;
4
+ export declare function nodeToMarkdown(node: Node): string;
5
+ //# sourceMappingURL=frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,EAAY,MAAM,WAAW,CAAC;AAGhD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAiBhF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmDnD;AAYD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAejD"}