@proposit/proposit-core 3.3.0 → 3.4.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 (125) hide show
  1. package/README.md +99 -2
  2. package/dist/cli/commands/expressions.d.ts.map +1 -1
  3. package/dist/cli/commands/expressions.js +44 -0
  4. package/dist/cli/commands/expressions.js.map +1 -1
  5. package/dist/cli/commands/origins.d.ts +3 -0
  6. package/dist/cli/commands/origins.d.ts.map +1 -0
  7. package/dist/cli/commands/origins.js +264 -0
  8. package/dist/cli/commands/origins.js.map +1 -0
  9. package/dist/cli/commands/premises.d.ts.map +1 -1
  10. package/dist/cli/commands/premises.js +18 -2
  11. package/dist/cli/commands/premises.js.map +1 -1
  12. package/dist/cli/engine.d.ts.map +1 -1
  13. package/dist/cli/engine.js +5 -2
  14. package/dist/cli/engine.js.map +1 -1
  15. package/dist/cli/router.d.ts.map +1 -1
  16. package/dist/cli/router.js +1 -0
  17. package/dist/cli/router.js.map +1 -1
  18. package/dist/cli/schemata.d.ts +2 -0
  19. package/dist/cli/schemata.d.ts.map +1 -1
  20. package/dist/cli/schemata.js +14 -1
  21. package/dist/cli/schemata.js.map +1 -1
  22. package/dist/cli/storage/libraries.d.ts +4 -0
  23. package/dist/cli/storage/libraries.d.ts.map +1 -1
  24. package/dist/cli/storage/libraries.js +19 -0
  25. package/dist/cli/storage/libraries.js.map +1 -1
  26. package/dist/cli.js +2 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/extensions/basics/schemata.d.ts +2 -0
  29. package/dist/extensions/basics/schemata.d.ts.map +1 -1
  30. package/dist/extensions/citations/ieee/index.d.ts +1 -0
  31. package/dist/extensions/citations/ieee/index.d.ts.map +1 -1
  32. package/dist/extensions/citations/ieee/index.js +1 -0
  33. package/dist/extensions/citations/ieee/index.js.map +1 -1
  34. package/dist/extensions/citations/ieee/origin-document.d.ts +452 -0
  35. package/dist/extensions/citations/ieee/origin-document.d.ts.map +1 -0
  36. package/dist/extensions/citations/ieee/origin-document.js +25 -0
  37. package/dist/extensions/citations/ieee/origin-document.js.map +1 -0
  38. package/dist/extensions/pipelines/base/finalize-response-v2.d.ts +24 -0
  39. package/dist/extensions/pipelines/base/finalize-response-v2.d.ts.map +1 -1
  40. package/dist/extensions/pipelines/base/finalize-response-v2.js +249 -8
  41. package/dist/extensions/pipelines/base/finalize-response-v2.js.map +1 -1
  42. package/dist/extensions/pipelines/base/index.d.ts +3 -1
  43. package/dist/extensions/pipelines/base/index.d.ts.map +1 -1
  44. package/dist/extensions/pipelines/base/index.js +2 -1
  45. package/dist/extensions/pipelines/base/index.js.map +1 -1
  46. package/dist/extensions/pipelines/base/source-anchors.d.ts +57 -0
  47. package/dist/extensions/pipelines/base/source-anchors.d.ts.map +1 -0
  48. package/dist/extensions/pipelines/base/source-anchors.js +174 -0
  49. package/dist/extensions/pipelines/base/source-anchors.js.map +1 -0
  50. package/dist/extensions/pipelines/ingestion/scholar/scholar.d.ts.map +1 -1
  51. package/dist/extensions/pipelines/ingestion/scholar/scholar.js +11 -1
  52. package/dist/extensions/pipelines/ingestion/scholar/scholar.js.map +1 -1
  53. package/dist/extensions/pipelines/ingestion/scribe/scribe.d.ts.map +1 -1
  54. package/dist/extensions/pipelines/ingestion/scribe/scribe.js +5 -0
  55. package/dist/extensions/pipelines/ingestion/scribe/scribe.js.map +1 -1
  56. package/dist/lib/consts.d.ts.map +1 -1
  57. package/dist/lib/consts.js +27 -0
  58. package/dist/lib/consts.js.map +1 -1
  59. package/dist/lib/core/argument-engine.d.ts +5 -3
  60. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  61. package/dist/lib/core/argument-engine.js +7 -4
  62. package/dist/lib/core/argument-engine.js.map +1 -1
  63. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +2 -1
  64. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
  65. package/dist/lib/core/interfaces/index.d.ts +1 -1
  66. package/dist/lib/core/interfaces/index.d.ts.map +1 -1
  67. package/dist/lib/core/interfaces/library.interfaces.d.ts +72 -1
  68. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  69. package/dist/lib/core/origin-library.d.ts +127 -0
  70. package/dist/lib/core/origin-library.d.ts.map +1 -0
  71. package/dist/lib/core/origin-library.js +520 -0
  72. package/dist/lib/core/origin-library.js.map +1 -0
  73. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  74. package/dist/lib/core/premise-engine.js +20 -3
  75. package/dist/lib/core/premise-engine.js.map +1 -1
  76. package/dist/lib/core/proposit-core.d.ts +15 -8
  77. package/dist/lib/core/proposit-core.d.ts.map +1 -1
  78. package/dist/lib/core/proposit-core.js +28 -3
  79. package/dist/lib/core/proposit-core.js.map +1 -1
  80. package/dist/lib/grammar/types.d.ts +2 -2
  81. package/dist/lib/grammar/types.d.ts.map +1 -1
  82. package/dist/lib/grammar/types.js +2 -1
  83. package/dist/lib/grammar/types.js.map +1 -1
  84. package/dist/lib/grammar/validators/presentable.d.ts +19 -0
  85. package/dist/lib/grammar/validators/presentable.d.ts.map +1 -1
  86. package/dist/lib/grammar/validators/presentable.js +57 -0
  87. package/dist/lib/grammar/validators/presentable.js.map +1 -1
  88. package/dist/lib/index.d.ts +4 -0
  89. package/dist/lib/index.d.ts.map +1 -1
  90. package/dist/lib/index.js +3 -0
  91. package/dist/lib/index.js.map +1 -1
  92. package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
  93. package/dist/lib/parsing/argument-parser.js +4 -3
  94. package/dist/lib/parsing/argument-parser.js.map +1 -1
  95. package/dist/lib/schemata/index.d.ts +1 -0
  96. package/dist/lib/schemata/index.d.ts.map +1 -1
  97. package/dist/lib/schemata/index.js +1 -0
  98. package/dist/lib/schemata/index.js.map +1 -1
  99. package/dist/lib/schemata/origin.d.ts +48 -0
  100. package/dist/lib/schemata/origin.d.ts.map +1 -0
  101. package/dist/lib/schemata/origin.js +102 -0
  102. package/dist/lib/schemata/origin.js.map +1 -0
  103. package/dist/lib/schemata/propositional.d.ts +6 -0
  104. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  105. package/dist/lib/schemata/propositional.js +13 -0
  106. package/dist/lib/schemata/propositional.js.map +1 -1
  107. package/dist/lib/types/checksum.d.ts +3 -0
  108. package/dist/lib/types/checksum.d.ts.map +1 -1
  109. package/dist/lib/types/validation.d.ts +19 -1
  110. package/dist/lib/types/validation.d.ts.map +1 -1
  111. package/dist/lib/types/validation.js +19 -0
  112. package/dist/lib/types/validation.js.map +1 -1
  113. package/dist/lib/utils/collections.d.ts +15 -0
  114. package/dist/lib/utils/collections.d.ts.map +1 -1
  115. package/dist/lib/utils/collections.js +17 -0
  116. package/dist/lib/utils/collections.js.map +1 -1
  117. package/dist/lib/utils/origin-text.d.ts +62 -0
  118. package/dist/lib/utils/origin-text.d.ts.map +1 -0
  119. package/dist/lib/utils/origin-text.js +204 -0
  120. package/dist/lib/utils/origin-text.js.map +1 -0
  121. package/dist/lib/utils/sha256.d.ts +6 -0
  122. package/dist/lib/utils/sha256.d.ts.map +1 -0
  123. package/dist/lib/utils/sha256.js +98 -0
  124. package/dist/lib/utils/sha256.js.map +1 -0
  125. package/package.json +1 -1
@@ -0,0 +1,520 @@
1
+ import { Value } from "typebox/value";
2
+ import { CoreOriginDocumentSchema, CoreOriginLinkSchema, CoreOriginAnchorSchema, } from "../schemata/origin.js";
3
+ import { DEFAULT_CHECKSUM_CONFIG } from "../consts.js";
4
+ import { entityChecksum } from "./checksum.js";
5
+ import { sha256Hex } from "../utils/sha256.js";
6
+ import { normalizeOriginText, buildCodePointIndex, sliceByCodePointsIndexed, } from "../utils/origin-text.js";
7
+ import { ORIGIN_DOCUMENT_SCHEMA_INVALID, ORIGIN_LINK_SCHEMA_INVALID, ORIGIN_ANCHOR_SCHEMA_INVALID, ORIGIN_DOCUMENT_DUPLICATE_ID, ORIGIN_LINK_DUPLICATE_ID, ORIGIN_ANCHOR_DUPLICATE_ID, ORIGIN_DOCUMENT_REF_NOT_FOUND, ORIGIN_DOCUMENT_DIGEST_MISMATCH, ORIGIN_DOCUMENT_TEXT_NOT_NORMALIZED, ORIGIN_ANCHOR_SPAN_OUT_OF_RANGE, ORIGIN_ANCHOR_QUOTE_MISMATCH, ORIGIN_ANCHOR_LINK_NOT_FOUND, ORIGIN_DOCUMENT_NOT_FOUND, ORIGIN_LINK_NOT_FOUND, ORIGIN_ANCHOR_NOT_FOUND, ORIGIN_DOCUMENT_IN_USE, } from "../types/validation.js";
8
+ import { InvariantViolationError } from "./invariant-violation-error.js";
9
+ function argumentKey(argumentId, argumentVersion) {
10
+ return `${argumentId}@${argumentVersion}`;
11
+ }
12
+ function targetKey(targetType, targetId) {
13
+ return `${targetType}:${targetId}`;
14
+ }
15
+ /**
16
+ * Holds the source texts arguments were built from, their per-version
17
+ * associations, and the spans of those texts individual argument parts derive
18
+ * from.
19
+ *
20
+ * Documents are immutable: there is no update path, because every anchor is
21
+ * an offset into a document's exact text. Correcting a source means replacing
22
+ * the document, which invalidates its anchors by design.
23
+ *
24
+ * The text is opaque content. This class digests it, measures it, and slices
25
+ * it by index; it never parses, renders, or interprets it.
26
+ *
27
+ * An anchor is only meaningful alongside a link: the link carries the stance.
28
+ * `validate()` therefore requires every anchor's
29
+ * `(argumentId, argumentVersion, documentId)` to have a matching link, which
30
+ * fixes the persistence order for consumers — document, then link, then
31
+ * anchors — and makes removing a link that still has anchors a violation.
32
+ *
33
+ * Like the claim-connection libraries, this one mints no identifiers —
34
+ * callers supply them — and takes no argument lookup: an argument library is
35
+ * constructed after this one, so cross-checking argument existence here would
36
+ * invert the dependency order. What it does enforce is everything decidable
37
+ * from its own contents, most importantly that an anchor's span slices out
38
+ * the anchor's own quote.
39
+ */
40
+ export class OriginLibrary {
41
+ documents;
42
+ links;
43
+ anchors;
44
+ linksByArgument;
45
+ anchorsByArgument;
46
+ anchorsByTarget;
47
+ /**
48
+ * Documents whose stored text has been confirmed normalized and matching
49
+ * its digest, keyed by id and pinned to the exact text that passed. A
50
+ * document is immutable, so a body that has been checked once cannot
51
+ * change — but keying on the text rather than the id alone is what stops a
52
+ * tampered snapshot from inheriting a previous instance's verdict.
53
+ */
54
+ verifiedDocumentBodies;
55
+ /** Code-point index per document, reused across that document's anchors. */
56
+ documentIndexes;
57
+ /**
58
+ * Violations present as of the last accepted state, so a mutation can be
59
+ * judged on what it *introduced* rather than on whether everything is
60
+ * clean afterwards. Carried between mutations rather than recomputed, so
61
+ * this costs no extra `validate()` pass.
62
+ */
63
+ knownViolationKeys;
64
+ checksumConfig;
65
+ constructor(options) {
66
+ this.documents = new Map();
67
+ this.links = new Map();
68
+ this.anchors = new Map();
69
+ this.linksByArgument = new Map();
70
+ this.anchorsByArgument = new Map();
71
+ this.anchorsByTarget = new Map();
72
+ this.verifiedDocumentBodies = new Map();
73
+ this.documentIndexes = new Map();
74
+ this.knownViolationKeys = new Set();
75
+ this.checksumConfig = options?.checksumConfig;
76
+ }
77
+ /** Stable identity for a violation, so two validation runs can be compared. */
78
+ static violationKey(violation) {
79
+ return `${violation.code}|${violation.entityType}|${violation.entityId}`;
80
+ }
81
+ static addToIndex(index, key, id) {
82
+ let bucket = index.get(key);
83
+ if (!bucket) {
84
+ bucket = new Set();
85
+ index.set(key, bucket);
86
+ }
87
+ bucket.add(id);
88
+ }
89
+ reindex() {
90
+ this.linksByArgument = new Map();
91
+ this.anchorsByArgument = new Map();
92
+ this.anchorsByTarget = new Map();
93
+ for (const link of this.links.values()) {
94
+ OriginLibrary.addToIndex(this.linksByArgument, argumentKey(link.argumentId, link.argumentVersion), link.id);
95
+ }
96
+ for (const anchor of this.anchors.values()) {
97
+ OriginLibrary.addToIndex(this.anchorsByArgument, argumentKey(anchor.argumentId, anchor.argumentVersion), anchor.id);
98
+ OriginLibrary.addToIndex(this.anchorsByTarget, targetKey(anchor.targetType, anchor.targetId), anchor.id);
99
+ }
100
+ }
101
+ restoreFromSnapshot(snap) {
102
+ this.documents = new Map(snap.documents.map((d) => [d.id, d]));
103
+ this.links = new Map(snap.links.map((l) => [l.id, l]));
104
+ this.anchors = new Map(snap.anchors.map((a) => [a.id, a]));
105
+ for (const [id, text] of this.verifiedDocumentBodies) {
106
+ if (this.documents.get(id)?.text !== text) {
107
+ this.verifiedDocumentBodies.delete(id);
108
+ }
109
+ }
110
+ for (const [id, index] of this.documentIndexes) {
111
+ if (this.documents.get(id)?.text !== index.text) {
112
+ this.documentIndexes.delete(id);
113
+ }
114
+ }
115
+ this.reindex();
116
+ }
117
+ /**
118
+ * Runs a mutation, then rolls back and throws if the mutation *introduced*
119
+ * a violation.
120
+ *
121
+ * Introduced, not "left the library inconsistent". Demanding a clean
122
+ * library after every mutation makes an already-inconsistent one
123
+ * unrepairable: two anchors that both violate the same invariant each keep
124
+ * the other's removal from being accepted, and every mutation fails
125
+ * forever. A library that validates has to stay repairable, and a snapshot
126
+ * assembled by a consumer — or written by an older build — can arrive
127
+ * inconsistent through no fault of the mutation being attempted.
128
+ *
129
+ * One rule covers both directions: an `addAnchor` with no link introduces a
130
+ * violation and is still refused on a broken library as on a clean one, and
131
+ * a `removeLink` that orphans existing anchors introduces theirs.
132
+ *
133
+ * ponytail: validating the whole library after every mutation is O(n²) in
134
+ * anchor count across a bulk import — each of n `addAnchor` calls re-checks
135
+ * the n anchors already present. Each check is one short slice comparison
136
+ * against a cached index, so a few thousand anchors is still milliseconds;
137
+ * scope the validation to the entity that changed if a caller ever needs
138
+ * tens of thousands. The document-body checks, which scaled with document
139
+ * *size* rather than count, are already skipped once verified.
140
+ *
141
+ * ponytail: the code-point indexes those checks rely on are retained for
142
+ * the life of every document, uncapped — roughly 10x the text size, so 10 MB
143
+ * of documents holds about 100 MB of heap. Peak is unchanged; steady state
144
+ * is not. If it bites, index only documents that have anchors and drop the
145
+ * index with their last anchor.
146
+ */
147
+ withValidation(fn) {
148
+ const snap = this.snapshot();
149
+ const knownBefore = this.knownViolationKeys;
150
+ try {
151
+ const result = fn();
152
+ const violations = this.validate().violations;
153
+ const introduced = violations.filter((v) => !knownBefore.has(OriginLibrary.violationKey(v)));
154
+ if (introduced.length > 0) {
155
+ this.restoreFromSnapshot(snap);
156
+ this.knownViolationKeys = knownBefore;
157
+ throw new InvariantViolationError(introduced);
158
+ }
159
+ this.knownViolationKeys = new Set(violations.map((v) => OriginLibrary.violationKey(v)));
160
+ return result;
161
+ }
162
+ catch (e) {
163
+ if (!(e instanceof InvariantViolationError)) {
164
+ this.restoreFromSnapshot(snap);
165
+ this.knownViolationKeys = knownBefore;
166
+ }
167
+ throw e;
168
+ }
169
+ }
170
+ /**
171
+ * Creates a document from raw text. The text is normalized and digested
172
+ * here rather than by the caller, so every document in the library shares
173
+ * one coordinate system and one identity rule.
174
+ */
175
+ addDocument(document) {
176
+ return this.withValidation(() => {
177
+ if (this.documents.has(document.id)) {
178
+ throw new InvariantViolationError([
179
+ {
180
+ code: ORIGIN_DOCUMENT_DUPLICATE_ID,
181
+ message: `${ORIGIN_DOCUMENT_DUPLICATE_ID}: origin document with id ${document.id} already exists`,
182
+ entityType: "originDocument",
183
+ entityId: document.id,
184
+ },
185
+ ]);
186
+ }
187
+ const text = normalizeOriginText(document.text);
188
+ const full = {
189
+ ...document,
190
+ text,
191
+ digest: sha256Hex(text),
192
+ checksum: "",
193
+ };
194
+ full.checksum = entityChecksum(full, this.fieldsFor("originDocumentFields"));
195
+ this.documents.set(full.id, full);
196
+ // Recording the body as verified is what lets later mutations skip
197
+ // re-scanning it, but seeding unconditionally would disable
198
+ // ORIGIN_DOCUMENT_TEXT_NOT_NORMALIZED on the very pass meant to
199
+ // check this document — and that check is what caught the
200
+ // normalizer not being idempotent. One extra normalize per
201
+ // document, once, rather than per mutation. The digest half needs
202
+ // no check: it was computed from this exact string.
203
+ if (normalizeOriginText(text) === text) {
204
+ this.verifiedDocumentBodies.set(full.id, text);
205
+ }
206
+ return full;
207
+ });
208
+ }
209
+ addLink(link) {
210
+ return this.withValidation(() => {
211
+ if (this.links.has(link.id)) {
212
+ throw new InvariantViolationError([
213
+ {
214
+ code: ORIGIN_LINK_DUPLICATE_ID,
215
+ message: `${ORIGIN_LINK_DUPLICATE_ID}: origin link with id ${link.id} already exists`,
216
+ entityType: "originLink",
217
+ entityId: link.id,
218
+ },
219
+ ]);
220
+ }
221
+ const full = { ...link, checksum: "" };
222
+ full.checksum = entityChecksum(full, this.fieldsFor("originLinkFields"));
223
+ this.links.set(full.id, full);
224
+ OriginLibrary.addToIndex(this.linksByArgument, argumentKey(full.argumentId, full.argumentVersion), full.id);
225
+ return full;
226
+ });
227
+ }
228
+ addAnchor(anchor) {
229
+ return this.withValidation(() => {
230
+ if (this.anchors.has(anchor.id)) {
231
+ throw new InvariantViolationError([
232
+ {
233
+ code: ORIGIN_ANCHOR_DUPLICATE_ID,
234
+ message: `${ORIGIN_ANCHOR_DUPLICATE_ID}: origin anchor with id ${anchor.id} already exists`,
235
+ entityType: "originAnchor",
236
+ entityId: anchor.id,
237
+ },
238
+ ]);
239
+ }
240
+ const full = { ...anchor, checksum: "" };
241
+ full.checksum = entityChecksum(full, this.fieldsFor("originAnchorFields"));
242
+ this.anchors.set(full.id, full);
243
+ OriginLibrary.addToIndex(this.anchorsByArgument, argumentKey(full.argumentId, full.argumentVersion), full.id);
244
+ OriginLibrary.addToIndex(this.anchorsByTarget, targetKey(full.targetType, full.targetId), full.id);
245
+ return full;
246
+ });
247
+ }
248
+ /**
249
+ * Removes a document. Refuses while a link or an anchor still references
250
+ * it — dropping it silently would leave dangling references that only
251
+ * `validate()` would notice, and only later.
252
+ */
253
+ removeDocument(id) {
254
+ return this.withValidation(() => {
255
+ const document = this.documents.get(id);
256
+ if (!document) {
257
+ throw new InvariantViolationError([
258
+ {
259
+ code: ORIGIN_DOCUMENT_NOT_FOUND,
260
+ message: `${ORIGIN_DOCUMENT_NOT_FOUND}: origin document with id "${id}" not found`,
261
+ entityType: "originDocument",
262
+ entityId: id,
263
+ },
264
+ ]);
265
+ }
266
+ const referenceCount = this.getAllLinks().filter((l) => l.documentId === id).length +
267
+ this.getAllAnchors().filter((a) => a.documentId === id).length;
268
+ if (referenceCount > 0) {
269
+ throw new InvariantViolationError([
270
+ {
271
+ code: ORIGIN_DOCUMENT_IN_USE,
272
+ message: `${ORIGIN_DOCUMENT_IN_USE}: origin document "${id}" is still referenced by ${referenceCount} link(s) or anchor(s)`,
273
+ entityType: "originDocument",
274
+ entityId: id,
275
+ },
276
+ ]);
277
+ }
278
+ this.documents.delete(id);
279
+ this.verifiedDocumentBodies.delete(id);
280
+ this.documentIndexes.delete(id);
281
+ return document;
282
+ });
283
+ }
284
+ removeLink(id) {
285
+ return this.withValidation(() => {
286
+ const link = this.links.get(id);
287
+ if (!link) {
288
+ throw new InvariantViolationError([
289
+ {
290
+ code: ORIGIN_LINK_NOT_FOUND,
291
+ message: `${ORIGIN_LINK_NOT_FOUND}: origin link with id "${id}" not found`,
292
+ entityType: "originLink",
293
+ entityId: id,
294
+ },
295
+ ]);
296
+ }
297
+ this.links.delete(id);
298
+ this.linksByArgument
299
+ .get(argumentKey(link.argumentId, link.argumentVersion))
300
+ ?.delete(id);
301
+ return link;
302
+ });
303
+ }
304
+ removeAnchor(id) {
305
+ return this.withValidation(() => {
306
+ const anchor = this.anchors.get(id);
307
+ if (!anchor) {
308
+ throw new InvariantViolationError([
309
+ {
310
+ code: ORIGIN_ANCHOR_NOT_FOUND,
311
+ message: `${ORIGIN_ANCHOR_NOT_FOUND}: origin anchor with id "${id}" not found`,
312
+ entityType: "originAnchor",
313
+ entityId: id,
314
+ },
315
+ ]);
316
+ }
317
+ this.anchors.delete(id);
318
+ this.anchorsByArgument
319
+ .get(argumentKey(anchor.argumentId, anchor.argumentVersion))
320
+ ?.delete(id);
321
+ this.anchorsByTarget
322
+ .get(targetKey(anchor.targetType, anchor.targetId))
323
+ ?.delete(id);
324
+ return anchor;
325
+ });
326
+ }
327
+ getDocument(id) {
328
+ return this.documents.get(id);
329
+ }
330
+ getLink(id) {
331
+ return this.links.get(id);
332
+ }
333
+ getAnchor(id) {
334
+ return this.anchors.get(id);
335
+ }
336
+ getLinksForArgument(argumentId, argumentVersion) {
337
+ const ids = this.linksByArgument.get(argumentKey(argumentId, argumentVersion));
338
+ if (!ids)
339
+ return [];
340
+ return Array.from(ids)
341
+ .map((id) => this.links.get(id))
342
+ .filter((l) => l !== undefined);
343
+ }
344
+ getAnchorsForArgument(argumentId, argumentVersion) {
345
+ const ids = this.anchorsByArgument.get(argumentKey(argumentId, argumentVersion));
346
+ if (!ids)
347
+ return [];
348
+ return Array.from(ids)
349
+ .map((id) => this.anchors.get(id))
350
+ .filter((a) => a !== undefined);
351
+ }
352
+ getAnchorsForTarget(targetType, targetId) {
353
+ const ids = this.anchorsByTarget.get(targetKey(targetType, targetId));
354
+ if (!ids)
355
+ return [];
356
+ return Array.from(ids)
357
+ .map((id) => this.anchors.get(id))
358
+ .filter((a) => a !== undefined);
359
+ }
360
+ getAllDocuments() {
361
+ return Array.from(this.documents.values());
362
+ }
363
+ getAllLinks() {
364
+ return Array.from(this.links.values());
365
+ }
366
+ getAllAnchors() {
367
+ return Array.from(this.anchors.values());
368
+ }
369
+ snapshot() {
370
+ return {
371
+ documents: this.getAllDocuments(),
372
+ links: this.getAllLinks(),
373
+ anchors: this.getAllAnchors(),
374
+ };
375
+ }
376
+ /** Restores an origin library from a snapshot, rebuilding its indexes. */
377
+ static fromSnapshot(snapshot, options) {
378
+ const lib = new OriginLibrary(options);
379
+ lib.restoreFromSnapshot(snapshot);
380
+ // A loaded snapshot may already be inconsistent — this constructor
381
+ // deliberately does not refuse it. Recording what is already wrong is
382
+ // what lets a caller repair it one mutation at a time.
383
+ lib.knownViolationKeys = new Set(lib.validate().violations.map((v) => OriginLibrary.violationKey(v)));
384
+ return lib;
385
+ }
386
+ validate() {
387
+ const violations = [];
388
+ for (const [id, document] of this.documents) {
389
+ if (!Value.Check(CoreOriginDocumentSchema, document)) {
390
+ violations.push({
391
+ code: ORIGIN_DOCUMENT_SCHEMA_INVALID,
392
+ message: `${ORIGIN_DOCUMENT_SCHEMA_INVALID}: origin document "${id}" does not conform to schema`,
393
+ entityType: "originDocument",
394
+ entityId: id,
395
+ });
396
+ continue;
397
+ }
398
+ // Normalizing and digesting a document body is the only cost in
399
+ // this method that scales with document *size*, and `validate()`
400
+ // runs after every mutation. Documents are immutable, so a body
401
+ // that has passed once cannot change; anything that could have
402
+ // swapped it (fromSnapshot, a rollback) clears its entry first.
403
+ if (this.verifiedDocumentBodies.get(id) === document.text)
404
+ continue;
405
+ let bodyOk = true;
406
+ if (normalizeOriginText(document.text) !== document.text) {
407
+ bodyOk = false;
408
+ violations.push({
409
+ code: ORIGIN_DOCUMENT_TEXT_NOT_NORMALIZED,
410
+ message: `${ORIGIN_DOCUMENT_TEXT_NOT_NORMALIZED}: origin document "${id}" holds text that is not in normalized form; every anchor offset into it is unsound`,
411
+ entityType: "originDocument",
412
+ entityId: id,
413
+ });
414
+ }
415
+ if (sha256Hex(document.text) !== document.digest) {
416
+ bodyOk = false;
417
+ violations.push({
418
+ code: ORIGIN_DOCUMENT_DIGEST_MISMATCH,
419
+ message: `${ORIGIN_DOCUMENT_DIGEST_MISMATCH}: origin document "${id}" carries a digest that does not match its text`,
420
+ entityType: "originDocument",
421
+ entityId: id,
422
+ });
423
+ }
424
+ if (bodyOk)
425
+ this.verifiedDocumentBodies.set(id, document.text);
426
+ }
427
+ for (const [id, link] of this.links) {
428
+ if (!Value.Check(CoreOriginLinkSchema, link)) {
429
+ violations.push({
430
+ code: ORIGIN_LINK_SCHEMA_INVALID,
431
+ message: `${ORIGIN_LINK_SCHEMA_INVALID}: origin link "${id}" does not conform to schema`,
432
+ entityType: "originLink",
433
+ entityId: id,
434
+ });
435
+ continue;
436
+ }
437
+ if (!this.documents.has(link.documentId)) {
438
+ violations.push({
439
+ code: ORIGIN_DOCUMENT_REF_NOT_FOUND,
440
+ message: `${ORIGIN_DOCUMENT_REF_NOT_FOUND}: origin link "${id}" references non-existent document "${link.documentId}"`,
441
+ entityType: "originLink",
442
+ entityId: id,
443
+ });
444
+ }
445
+ }
446
+ for (const [id, anchor] of this.anchors) {
447
+ if (!Value.Check(CoreOriginAnchorSchema, anchor)) {
448
+ violations.push({
449
+ code: ORIGIN_ANCHOR_SCHEMA_INVALID,
450
+ message: `${ORIGIN_ANCHOR_SCHEMA_INVALID}: origin anchor "${id}" does not conform to schema`,
451
+ entityType: "originAnchor",
452
+ entityId: id,
453
+ });
454
+ continue;
455
+ }
456
+ const document = this.documents.get(anchor.documentId);
457
+ if (!document) {
458
+ violations.push({
459
+ code: ORIGIN_DOCUMENT_REF_NOT_FOUND,
460
+ message: `${ORIGIN_DOCUMENT_REF_NOT_FOUND}: origin anchor "${id}" references non-existent document "${anchor.documentId}"`,
461
+ entityType: "originAnchor",
462
+ entityId: id,
463
+ });
464
+ continue;
465
+ }
466
+ // Built once per document and kept, for the same reason the body
467
+ // checks are skipped: a document is immutable. The entry is keyed
468
+ // to the exact text it was built from, not to the id alone, so
469
+ // anything that ever puts a different body under a known id — a
470
+ // restore, or a future replace — rebuilds instead of slicing
471
+ // against the wrong string.
472
+ let index = this.documentIndexes.get(document.id);
473
+ if (index?.text !== document.text) {
474
+ index = buildCodePointIndex(document.text);
475
+ this.documentIndexes.set(document.id, index);
476
+ }
477
+ const documentLength = index.offsets.length - 1;
478
+ if (!Number.isInteger(anchor.startCodePoint) ||
479
+ !Number.isInteger(anchor.endCodePoint) ||
480
+ anchor.startCodePoint < 0 ||
481
+ anchor.endCodePoint < anchor.startCodePoint ||
482
+ anchor.endCodePoint > documentLength) {
483
+ violations.push({
484
+ code: ORIGIN_ANCHOR_SPAN_OUT_OF_RANGE,
485
+ message: `${ORIGIN_ANCHOR_SPAN_OUT_OF_RANGE}: origin anchor "${id}" spans [${anchor.startCodePoint}, ${anchor.endCodePoint}) of a document ${documentLength} code points long`,
486
+ entityType: "originAnchor",
487
+ entityId: id,
488
+ });
489
+ continue;
490
+ }
491
+ const sliced = sliceByCodePointsIndexed(index, anchor.startCodePoint, anchor.endCodePoint);
492
+ if (sliced !== anchor.exact) {
493
+ violations.push({
494
+ code: ORIGIN_ANCHOR_QUOTE_MISMATCH,
495
+ message: `${ORIGIN_ANCHOR_QUOTE_MISMATCH}: origin anchor "${id}" spans text that is not its own quote — an anchor at an unverified offset`,
496
+ entityType: "originAnchor",
497
+ entityId: id,
498
+ });
499
+ }
500
+ // The link carries the stance, and the stance is what decides
501
+ // whether unanchored content means anything. An anchor whose
502
+ // argument version is not linked to this document is provenance no
503
+ // consumer can interpret, so it is a violation rather than a gap.
504
+ const linked = this.getLinksForArgument(anchor.argumentId, anchor.argumentVersion).some((l) => l.documentId === anchor.documentId);
505
+ if (!linked) {
506
+ violations.push({
507
+ code: ORIGIN_ANCHOR_LINK_NOT_FOUND,
508
+ message: `${ORIGIN_ANCHOR_LINK_NOT_FOUND}: origin anchor "${id}" targets ${anchor.argumentId}@${anchor.argumentVersion}, which has no link to document "${anchor.documentId}"`,
509
+ entityType: "originAnchor",
510
+ entityId: id,
511
+ });
512
+ }
513
+ }
514
+ return { ok: violations.length === 0, violations };
515
+ }
516
+ fieldsFor(key) {
517
+ return this.checksumConfig?.[key] ?? DEFAULT_CHECKSUM_CONFIG[key];
518
+ }
519
+ }
520
+ //# sourceMappingURL=origin-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origin-library.js","sourceRoot":"","sources":["../../../src/lib/core/origin-library.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { CorePremiseSchema, isExternallyBound, isPremiseBound, } from "../schemata/index.js";
2
2
  import { DefaultMap } from "../utils/default-map.js";
3
3
  import { midpoint, POSITION_INITIAL, POSITION_MAX, } from "../utils/position.js";
4
- import { sortedCopyById, sortedUnique } from "../utils/collections.js";
4
+ import { sortedCopyById, sortedUnique, withoutUndefinedValues, } from "../utils/collections.js";
5
5
  import { HierarchicalChecksumCache } from "./checksum-cache.js";
6
6
  import { kleeneAnd, kleeneIff, kleeneImplies, kleeneNot, kleeneOr, } from "./evaluation/kleene.js";
7
7
  import { buildDirectionalVacuity, makeErrorIssue, makeValidationResult, } from "./evaluation/validation.js";
@@ -809,7 +809,20 @@ export class PremiseEngine extends HierarchicalChecksumCache {
809
809
  patchAndMarkExpression(expressionId, fields) {
810
810
  const expr = this.expressions.getExpression(expressionId);
811
811
  if (expr) {
812
- Object.assign(expr, fields);
812
+ // An `undefined` value deletes the key rather than assigning it.
813
+ // `Object.assign` would leave the key present holding `undefined`,
814
+ // which is checksum-safe and JSON-safe on its own but makes
815
+ // `"field" in entity` true — and any downstream mapper that turns
816
+ // `undefined` into `null` then flips a field from absent to
817
+ // present, changing the entity's checksum. Clearing a field has to
818
+ // restore the shape it had before it was set.
819
+ const target = expr;
820
+ for (const [key, value] of Object.entries(fields)) {
821
+ if (value === undefined)
822
+ delete target[key];
823
+ else
824
+ target[key] = value;
825
+ }
813
826
  }
814
827
  this.expressions.markExpressionDirty(expressionId);
815
828
  this.markDirty();
@@ -825,8 +838,12 @@ export class PremiseEngine extends HierarchicalChecksumCache {
825
838
  return this.withValidation(() => {
826
839
  // Strip old extras and replace with new ones, preserving structural fields.
827
840
  const { id, argumentId, argumentVersion, checksum, descendantChecksum, combinedChecksum, type, derivedClaimId, } = this.premise;
841
+ // Clearing a field means removing its key, not assigning
842
+ // `undefined` — see `withoutUndefinedValues`. `updateExtras`
843
+ // spreads its updates in, so this is the single place that has to
844
+ // enforce it for every premise-level caller.
828
845
  this.premise = {
829
- ...extras,
846
+ ...withoutUndefinedValues(extras),
830
847
  id,
831
848
  argumentId,
832
849
  argumentVersion,