@proposit/proposit-core 0.9.1 → 0.11.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 (184) hide show
  1. package/README.md +147 -35
  2. package/dist/cli/commands/arguments.d.ts.map +1 -1
  3. package/dist/cli/commands/arguments.js +8 -16
  4. package/dist/cli/commands/arguments.js.map +1 -1
  5. package/dist/cli/commands/citations.d.ts +3 -0
  6. package/dist/cli/commands/citations.d.ts.map +1 -0
  7. package/dist/cli/commands/citations.js +89 -0
  8. package/dist/cli/commands/citations.js.map +1 -0
  9. package/dist/cli/commands/claims.d.ts.map +1 -1
  10. package/dist/cli/commands/claims.js +10 -2
  11. package/dist/cli/commands/claims.js.map +1 -1
  12. package/dist/cli/commands/parse.d.ts.map +1 -1
  13. package/dist/cli/commands/parse.js +9 -17
  14. package/dist/cli/commands/parse.js.map +1 -1
  15. package/dist/cli/commands/premises.d.ts.map +1 -1
  16. package/dist/cli/commands/premises.js +82 -5
  17. package/dist/cli/commands/premises.js.map +1 -1
  18. package/dist/cli/commands/render.d.ts.map +1 -1
  19. package/dist/cli/commands/render.js +46 -19
  20. package/dist/cli/commands/render.js.map +1 -1
  21. package/dist/cli/commands/variables.d.ts.map +1 -1
  22. package/dist/cli/commands/variables.js +1 -0
  23. package/dist/cli/commands/variables.js.map +1 -1
  24. package/dist/cli/engine.d.ts.map +1 -1
  25. package/dist/cli/engine.js +15 -9
  26. package/dist/cli/engine.js.map +1 -1
  27. package/dist/cli/import.d.ts +2 -4
  28. package/dist/cli/import.d.ts.map +1 -1
  29. package/dist/cli/import.js +78 -20
  30. package/dist/cli/import.js.map +1 -1
  31. package/dist/cli/router.js +1 -1
  32. package/dist/cli/router.js.map +1 -1
  33. package/dist/cli/storage/libraries.d.ts +4 -7
  34. package/dist/cli/storage/libraries.d.ts.map +1 -1
  35. package/dist/cli/storage/libraries.js +9 -28
  36. package/dist/cli/storage/libraries.js.map +1 -1
  37. package/dist/cli/storage/migrate-v0.10.d.ts +10 -0
  38. package/dist/cli/storage/migrate-v0.10.d.ts.map +1 -0
  39. package/dist/cli/storage/migrate-v0.10.js +213 -0
  40. package/dist/cli/storage/migrate-v0.10.js.map +1 -0
  41. package/dist/cli/storage/migrate-v0.11.d.ts +15 -0
  42. package/dist/cli/storage/migrate-v0.11.d.ts.map +1 -0
  43. package/dist/cli/storage/migrate-v0.11.js +125 -0
  44. package/dist/cli/storage/migrate-v0.11.js.map +1 -0
  45. package/dist/cli.js +2 -2
  46. package/dist/cli.js.map +1 -1
  47. package/dist/extensions/basics/argument-parser.d.ts +1 -2
  48. package/dist/extensions/basics/argument-parser.d.ts.map +1 -1
  49. package/dist/extensions/basics/argument-parser.js.map +1 -1
  50. package/dist/extensions/basics/schemata.d.ts +12 -1
  51. package/dist/extensions/basics/schemata.d.ts.map +1 -1
  52. package/dist/extensions/ieee/{source.d.ts → citation-claim.d.ts} +5 -3
  53. package/dist/extensions/ieee/citation-claim.d.ts.map +1 -0
  54. package/dist/extensions/ieee/{source.js → citation-claim.js} +5 -4
  55. package/dist/extensions/ieee/citation-claim.js.map +1 -0
  56. package/dist/extensions/ieee/index.d.ts +1 -1
  57. package/dist/extensions/ieee/index.d.ts.map +1 -1
  58. package/dist/extensions/ieee/index.js +1 -1
  59. package/dist/extensions/ieee/index.js.map +1 -1
  60. package/dist/lib/consts.d.ts.map +1 -1
  61. package/dist/lib/consts.js +15 -14
  62. package/dist/lib/consts.js.map +1 -1
  63. package/dist/lib/core/argument-engine.d.ts +47 -9
  64. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  65. package/dist/lib/core/argument-engine.js +209 -20
  66. package/dist/lib/core/argument-engine.js.map +1 -1
  67. package/dist/lib/core/argument-library.d.ts +13 -15
  68. package/dist/lib/core/argument-library.d.ts.map +1 -1
  69. package/dist/lib/core/argument-library.js +23 -9
  70. package/dist/lib/core/argument-library.js.map +1 -1
  71. package/dist/lib/core/claim-citation-library.d.ts +44 -0
  72. package/dist/lib/core/claim-citation-library.d.ts.map +1 -0
  73. package/dist/lib/core/claim-citation-library.js +336 -0
  74. package/dist/lib/core/claim-citation-library.js.map +1 -0
  75. package/dist/lib/core/claim-library.d.ts +33 -1
  76. package/dist/lib/core/claim-library.d.ts.map +1 -1
  77. package/dist/lib/core/claim-library.js +71 -3
  78. package/dist/lib/core/claim-library.js.map +1 -1
  79. package/dist/lib/core/fork-library.d.ts +19 -10
  80. package/dist/lib/core/fork-library.d.ts.map +1 -1
  81. package/dist/lib/core/fork-library.js +16 -13
  82. package/dist/lib/core/fork-library.js.map +1 -1
  83. package/dist/lib/core/fork.d.ts +6 -7
  84. package/dist/lib/core/fork.d.ts.map +1 -1
  85. package/dist/lib/core/fork.js +8 -3
  86. package/dist/lib/core/fork.js.map +1 -1
  87. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +132 -7
  88. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
  89. package/dist/lib/core/interfaces/index.d.ts +1 -1
  90. package/dist/lib/core/interfaces/index.d.ts.map +1 -1
  91. package/dist/lib/core/interfaces/library.interfaces.d.ts +76 -157
  92. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  93. package/dist/lib/core/managed-derivation-premise-engine.d.ts +155 -0
  94. package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +1 -0
  95. package/dist/lib/core/managed-derivation-premise-engine.js +517 -0
  96. package/dist/lib/core/managed-derivation-premise-engine.js.map +1 -0
  97. package/dist/lib/core/premise-engine.d.ts +6 -5
  98. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  99. package/dist/lib/core/premise-engine.js +5 -3
  100. package/dist/lib/core/premise-engine.js.map +1 -1
  101. package/dist/lib/core/proposit-core.d.ts +30 -32
  102. package/dist/lib/core/proposit-core.d.ts.map +1 -1
  103. package/dist/lib/core/proposit-core.js +82 -89
  104. package/dist/lib/core/proposit-core.js.map +1 -1
  105. package/dist/lib/index.d.ts +5 -3
  106. package/dist/lib/index.d.ts.map +1 -1
  107. package/dist/lib/index.js +4 -3
  108. package/dist/lib/index.js.map +1 -1
  109. package/dist/lib/parsing/argument-parser.d.ts +9 -12
  110. package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
  111. package/dist/lib/parsing/argument-parser.js +27 -45
  112. package/dist/lib/parsing/argument-parser.js.map +1 -1
  113. package/dist/lib/parsing/index.d.ts +2 -2
  114. package/dist/lib/parsing/index.d.ts.map +1 -1
  115. package/dist/lib/parsing/index.js +1 -1
  116. package/dist/lib/parsing/index.js.map +1 -1
  117. package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
  118. package/dist/lib/parsing/prompt-builder.js +31 -24
  119. package/dist/lib/parsing/prompt-builder.js.map +1 -1
  120. package/dist/lib/parsing/schemata.d.ts +7 -19
  121. package/dist/lib/parsing/schemata.d.ts.map +1 -1
  122. package/dist/lib/parsing/schemata.js +7 -14
  123. package/dist/lib/parsing/schemata.js.map +1 -1
  124. package/dist/lib/parsing/types.d.ts +1 -2
  125. package/dist/lib/parsing/types.d.ts.map +1 -1
  126. package/dist/lib/schemata/claim-citation.d.ts +11 -0
  127. package/dist/lib/schemata/claim-citation.d.ts.map +1 -0
  128. package/dist/lib/schemata/claim-citation.js +25 -0
  129. package/dist/lib/schemata/claim-citation.js.map +1 -0
  130. package/dist/lib/schemata/claim.d.ts +1 -0
  131. package/dist/lib/schemata/claim.d.ts.map +1 -1
  132. package/dist/lib/schemata/claim.js +3 -0
  133. package/dist/lib/schemata/claim.js.map +1 -1
  134. package/dist/lib/schemata/fork.d.ts +0 -11
  135. package/dist/lib/schemata/fork.d.ts.map +1 -1
  136. package/dist/lib/schemata/fork.js +0 -10
  137. package/dist/lib/schemata/fork.js.map +1 -1
  138. package/dist/lib/schemata/import.d.ts +39 -2
  139. package/dist/lib/schemata/import.d.ts.map +1 -1
  140. package/dist/lib/schemata/import.js +22 -1
  141. package/dist/lib/schemata/import.js.map +1 -1
  142. package/dist/lib/schemata/index.d.ts +1 -1
  143. package/dist/lib/schemata/index.d.ts.map +1 -1
  144. package/dist/lib/schemata/index.js +1 -1
  145. package/dist/lib/schemata/index.js.map +1 -1
  146. package/dist/lib/schemata/propositional.d.ts +32 -1
  147. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  148. package/dist/lib/schemata/propositional.js +17 -2
  149. package/dist/lib/schemata/propositional.js.map +1 -1
  150. package/dist/lib/types/checksum.d.ts +3 -5
  151. package/dist/lib/types/checksum.d.ts.map +1 -1
  152. package/dist/lib/types/evaluation.d.ts +1 -1
  153. package/dist/lib/types/evaluation.d.ts.map +1 -1
  154. package/dist/lib/types/validation.d.ts +19 -7
  155. package/dist/lib/types/validation.d.ts.map +1 -1
  156. package/dist/lib/types/validation.js +21 -8
  157. package/dist/lib/types/validation.js.map +1 -1
  158. package/dist/lib/utils/derivation-validation.d.ts +24 -0
  159. package/dist/lib/utils/derivation-validation.d.ts.map +1 -0
  160. package/dist/lib/utils/derivation-validation.js +107 -0
  161. package/dist/lib/utils/derivation-validation.js.map +1 -0
  162. package/dist/lib/utils/lookup.d.ts +7 -15
  163. package/dist/lib/utils/lookup.d.ts.map +1 -1
  164. package/dist/lib/utils/lookup.js +9 -18
  165. package/dist/lib/utils/lookup.js.map +1 -1
  166. package/package.json +1 -1
  167. package/dist/cli/commands/sources.d.ts +0 -3
  168. package/dist/cli/commands/sources.d.ts.map +0 -1
  169. package/dist/cli/commands/sources.js +0 -103
  170. package/dist/cli/commands/sources.js.map +0 -1
  171. package/dist/extensions/ieee/source.d.ts.map +0 -1
  172. package/dist/extensions/ieee/source.js.map +0 -1
  173. package/dist/lib/core/claim-source-library.d.ts +0 -32
  174. package/dist/lib/core/claim-source-library.d.ts.map +0 -1
  175. package/dist/lib/core/claim-source-library.js +0 -193
  176. package/dist/lib/core/claim-source-library.js.map +0 -1
  177. package/dist/lib/core/source-library.d.ts +0 -23
  178. package/dist/lib/core/source-library.d.ts.map +0 -1
  179. package/dist/lib/core/source-library.js +0 -21
  180. package/dist/lib/core/source-library.js.map +0 -1
  181. package/dist/lib/schemata/source.d.ts +0 -18
  182. package/dist/lib/schemata/source.d.ts.map +0 -1
  183. package/dist/lib/schemata/source.js +0 -35
  184. package/dist/lib/schemata/source.js.map +0 -1
@@ -0,0 +1,517 @@
1
+ import {} from "../schemata/index.js";
2
+ import { PremiseEngine } from "./premise-engine.js";
3
+ import { VariableManager } from "./variable-manager.js";
4
+ import { defaultGenerateId, } from "./argument-engine.js";
5
+ import { PERMISSIVE_GRAMMAR_CONFIG, } from "../types/grammar.js";
6
+ import { DERIVATION_TYPE_MISMATCH, DERIVATION_STRUCTURE_INVALID, DERIVATION_CONSEQUENT_LOCKED, DERIVATION_ROOT_OPERATOR_INVALID, DERIVATION_ANTECEDENT_NON_EMPTY, } from "../types/validation.js";
7
+ import { InvariantViolationError } from "./invariant-violation-error.js";
8
+ import { validateDerivationStructure } from "../utils/derivation-validation.js";
9
+ /**
10
+ * A managed engine for derivation premises that enforces structural rules
11
+ * from the v0.11.0 spec on construction and on snapshot restoration.
12
+ *
13
+ * Construction validates the premise type (`DERIVATION_TYPE_MISMATCH` if the
14
+ * premise isn't `type: "derivation"`). Full expression-tree structural
15
+ * validation (`DERIVATION_STRUCTURE_INVALID`) runs in `fromSnapshot` — after
16
+ * expressions are loaded — and will be called from mutation overrides in
17
+ * Task 6.
18
+ *
19
+ * Note: The constructor only validates the premise type, not the expression
20
+ * tree, because `PremiseEngine` is always constructed before expressions are
21
+ * loaded (expressions are added separately via mutations or `loadExpressions`).
22
+ * Structural validation at the end of `fromSnapshot` catches tampered
23
+ * snapshots, and Task 6 mutation overrides will enforce it on every change.
24
+ *
25
+ * The classic `PremiseEngine` is permissive and allows mutations that leave a
26
+ * derivation premise temporarily or permanently invalid. The managed engine
27
+ * wraps it for safe, structurally-enforced editing.
28
+ *
29
+ * Use `ManagedDerivationPremiseEngine.fromSnapshot(...)` to restore from a
30
+ * serialized snapshot — the validation pass catches tampered snapshots.
31
+ */
32
+ export class ManagedDerivationPremiseEngine extends PremiseEngine {
33
+ /**
34
+ * Captured from `config.generateId` (or the default UUID generator) for
35
+ * use in `populateFromCitations`, which needs to mint new expression IDs.
36
+ * Stored separately because `PremiseEngine`'s generateId is private.
37
+ * Not `readonly` because `fromSnapshot` re-injects it after the prototype
38
+ * upgrade.
39
+ */
40
+ generateIdFn;
41
+ constructor(premise, deps, config) {
42
+ super(premise, deps, config);
43
+ this.generateIdFn = config?.generateId ?? defaultGenerateId;
44
+ // Validate premise type immediately — no expressions needed.
45
+ // Structural validation (assertWellFormed) is deferred to fromSnapshot
46
+ // and mutation overrides because PremiseEngine is always constructed
47
+ // before expressions are loaded.
48
+ this.assertDerivationType();
49
+ }
50
+ /**
51
+ * Restore a `ManagedDerivationPremiseEngine` from a serialized snapshot,
52
+ * applying both derivation-type and structural validation. Throws on
53
+ * tampered or structurally invalid snapshots.
54
+ *
55
+ * Delegates to `PremiseEngine.fromSnapshot` for the full restoration logic
56
+ * (including the private `rebuildVariableIndex` pass), then upgrades the
57
+ * prototype and validates. TypeScript's static methods do not support
58
+ * `super`, so the parent is called by name and the result is recast.
59
+ */
60
+ static fromSnapshot(snapshot, argument, variables, expressionIndex, grammarConfig, generateId) {
61
+ // Validate type before doing the full restore work.
62
+ const premiseType = snapshot.premise.type;
63
+ if (premiseType !== "derivation") {
64
+ throw new InvariantViolationError([
65
+ {
66
+ code: DERIVATION_TYPE_MISMATCH,
67
+ message: `${DERIVATION_TYPE_MISMATCH}: ManagedDerivationPremiseEngine requires a premise with type "derivation" (got "${premiseType}")`,
68
+ entityType: "premise",
69
+ entityId: snapshot.premise.id,
70
+ },
71
+ ]);
72
+ }
73
+ // Delegate to the parent's static fromSnapshot to get a fully restored
74
+ // engine, including the private rebuildVariableIndex pass.
75
+ const pe = PremiseEngine.fromSnapshot(snapshot, argument, variables, expressionIndex, grammarConfig, generateId);
76
+ // Upgrade the instance prototype so it becomes a
77
+ // ManagedDerivationPremiseEngine with all subclass methods available.
78
+ Object.setPrototypeOf(pe, ManagedDerivationPremiseEngine.prototype);
79
+ const engine = pe;
80
+ // Inject the generateId captured from config (or the default) so that
81
+ // populateFromCitations can mint new expression IDs.
82
+ engine.generateIdFn = generateId ?? defaultGenerateId;
83
+ // Validate the full tree — expressions are fully loaded at this point.
84
+ // (Type was already checked at the top before delegating to the parent.)
85
+ engine.assertWellFormed();
86
+ return engine;
87
+ }
88
+ /**
89
+ * Validate that the wrapped premise has `type === "derivation"`.
90
+ * @throws InvariantViolationError with code `DERIVATION_TYPE_MISMATCH`
91
+ */
92
+ assertDerivationType() {
93
+ const premise = this.premise;
94
+ if (premise.type !== "derivation") {
95
+ throw new InvariantViolationError([
96
+ {
97
+ code: DERIVATION_TYPE_MISMATCH,
98
+ message: `${DERIVATION_TYPE_MISMATCH}: ManagedDerivationPremiseEngine requires a premise with type "derivation" (got "${premise.type}")`,
99
+ entityType: "premise",
100
+ entityId: premise.id,
101
+ },
102
+ ]);
103
+ }
104
+ }
105
+ /**
106
+ * Validate that the expression tree conforms to the derivation rules from
107
+ * the v0.11.0 spec (naked-Q or IMPLIES/IFF with Q as consequent).
108
+ * @throws InvariantViolationError with code `DERIVATION_STRUCTURE_INVALID`
109
+ */
110
+ assertWellFormed() {
111
+ const result = validateDerivationStructure(this.premise, this.expressions.toArray(), this.variables.toArray());
112
+ if (result.violations.length > 0) {
113
+ // Prefix each violation message with the code so the thrown Error's
114
+ // message text is searchable by code (InvariantViolationError uses
115
+ // violations[0].message as the Error message when there is exactly
116
+ // one violation).
117
+ const prefixed = result.violations.map((v) => ({
118
+ ...v,
119
+ message: `${DERIVATION_STRUCTURE_INVALID}: ${v.message}`,
120
+ }));
121
+ throw new InvariantViolationError(prefixed);
122
+ }
123
+ }
124
+ // -------------------------------------------------------------------------
125
+ // Mutation overrides — enforce derivation invariants on every change
126
+ // -------------------------------------------------------------------------
127
+ addExpression(expression) {
128
+ const result = super.addExpression(expression);
129
+ this.assertWellFormed();
130
+ return result;
131
+ }
132
+ appendExpression(parentId, expression) {
133
+ const result = super.appendExpression(parentId, expression);
134
+ this.assertWellFormed();
135
+ return result;
136
+ }
137
+ addExpressionRelative(siblingId, relativePosition, expression) {
138
+ const result = super.addExpressionRelative(siblingId, relativePosition, expression);
139
+ this.assertWellFormed();
140
+ return result;
141
+ }
142
+ updateExpression(expressionId, updates) {
143
+ this.assertConsequentNotMutated(expressionId, updates);
144
+ const result = super.updateExpression(expressionId, updates);
145
+ this.assertWellFormed();
146
+ return result;
147
+ }
148
+ removeExpression(expressionId, deleteSubtree) {
149
+ this.assertNotConsequentExpression(expressionId);
150
+ const result = super.removeExpression(expressionId, deleteSubtree);
151
+ this.assertWellFormed();
152
+ return result;
153
+ }
154
+ insertExpression(expression, leftNodeId, rightNodeId) {
155
+ this.assertNotConsequentSlot(expression);
156
+ const result = super.insertExpression(expression, leftNodeId, rightNodeId);
157
+ this.assertWellFormed();
158
+ return result;
159
+ }
160
+ toggleNegation(expressionId, extraFields) {
161
+ this.assertNotConsequentExpression(expressionId);
162
+ const result = super.toggleNegation(expressionId, extraFields);
163
+ this.assertWellFormed();
164
+ return result;
165
+ }
166
+ wrapExpression(operator, newSibling, leftNodeId, rightNodeId) {
167
+ // wrapExpression rejects calls without exactly one of leftNodeId/rightNodeId,
168
+ // so the !-assertion is safe: at least one of the two is always defined here.
169
+ this.assertNotConsequentExpression((leftNodeId ?? rightNodeId));
170
+ const result = super.wrapExpression(operator, newSibling, leftNodeId, rightNodeId);
171
+ this.assertWellFormed();
172
+ return result;
173
+ }
174
+ changeOperator(expressionId, newOperator, sourceChildId, targetChildId, extraFields) {
175
+ this.assertRootOperatorChangeValid(expressionId, newOperator);
176
+ const result = super.changeOperator(expressionId, newOperator, sourceChildId, targetChildId, extraFields);
177
+ this.assertWellFormed();
178
+ return result;
179
+ }
180
+ normalizeExpressions() {
181
+ const result = super.normalizeExpressions();
182
+ // Post-validate: normalization could destroy the consequent structure.
183
+ // assertWellFormed throws DERIVATION_STRUCTURE_INVALID if so.
184
+ this.assertWellFormed();
185
+ return result;
186
+ }
187
+ loadExpressions(expressions) {
188
+ // Pre-validate the proposed expression set BEFORE mutation because
189
+ // loadExpressions is a bulk replace — we need to reject the whole set
190
+ // atomically rather than rolling back after the fact.
191
+ const premise = this.premise;
192
+ const validationResult = validateDerivationStructure(premise,
193
+ // TExpressionInput strips checksum fields, but validateDerivationStructure
194
+ // only reads parentId, type, variableId, operator, position, premiseId —
195
+ // all of which are present on TExpressionInput.
196
+ expressions, this.variables.toArray());
197
+ if (validationResult.violations.length > 0) {
198
+ const prefixed = validationResult.violations.map((v) => ({
199
+ ...v,
200
+ message: `${DERIVATION_STRUCTURE_INVALID}: ${v.message}`,
201
+ }));
202
+ throw new InvariantViolationError(prefixed);
203
+ }
204
+ super.loadExpressions(expressions);
205
+ }
206
+ // -------------------------------------------------------------------------
207
+ // Public one-shot helpers
208
+ // -------------------------------------------------------------------------
209
+ /**
210
+ * One-shot snapshot helper that builds the antecedent of this derivation
211
+ * premise from the current global citations of the derived claim.
212
+ *
213
+ * Behavior by citation count:
214
+ * - n = 0: no change. Premise stays in its current form (typically
215
+ * naked-Q, indicating "no support given").
216
+ * - n = 1: produces `IMPLIES(VariableExpression(S1), VariableExpression(Q))`.
217
+ * - n ≥ 2: produces `IMPLIES(OR(VariableExpression(S1), …,
218
+ * VariableExpression(Sn)), VariableExpression(Q))`.
219
+ *
220
+ * Materializes a claim-bound variable for each cited source via
221
+ * `argumentEngine.ensureClaimBoundVariable(citation.sourceClaimId)`.
222
+ *
223
+ * **Tree construction approach:** Mutations are performed via `super.*`
224
+ * calls, bypassing this class's overrides (which call `assertWellFormed()`
225
+ * after every mutation and would reject intermediate states during
226
+ * multi-step construction). For n ≥ 2 the grammar is temporarily switched
227
+ * to `PERMISSIVE_GRAMMAR_CONFIG` so that the OR operator can sit directly
228
+ * under IMPLIES without triggering an auto-inserted formula buffer. The
229
+ * grammar is restored and `assertWellFormed()` is called at the end to
230
+ * validate the final state.
231
+ *
232
+ * @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when the
233
+ * derivation premise already has a non-empty antecedent (i.e., the
234
+ * root is `implies`/`iff` with a position-0 child). The caller
235
+ * decides whether to delete and re-create the premise.
236
+ *
237
+ * @since 0.11.0
238
+ */
239
+ populateFromCitations(citationLib, argumentEngine) {
240
+ const premise = this.premise;
241
+ const derivedClaimId = premise.derivedClaimId;
242
+ // 1. Reject if antecedent is already non-empty.
243
+ const rootId = this.rootExpressionId;
244
+ if (rootId !== undefined) {
245
+ const root = this.expressions.getExpression(rootId);
246
+ if (root &&
247
+ root.type === "operator" &&
248
+ (root.operator === "implies" || root.operator === "iff")) {
249
+ // Sort children by position; lowest-position child is the antecedent.
250
+ const children = this.expressions
251
+ .getChildExpressions(rootId)
252
+ .sort((a, b) => a.position - b.position);
253
+ const antecedent = children[0];
254
+ if (antecedent) {
255
+ throw new InvariantViolationError([
256
+ {
257
+ code: DERIVATION_ANTECEDENT_NON_EMPTY,
258
+ message: `${DERIVATION_ANTECEDENT_NON_EMPTY}: derivation premise already has a non-empty antecedent`,
259
+ entityType: "premise",
260
+ entityId: premise.id,
261
+ premiseId: premise.id,
262
+ },
263
+ ]);
264
+ }
265
+ }
266
+ }
267
+ // 2. Look up citations for the derived claim.
268
+ const citations = citationLib.getCitationsForCitingClaim(derivedClaimId);
269
+ if (citations.length === 0)
270
+ return;
271
+ // 3. Materialize a claim-bound variable for each cited source.
272
+ // ensureClaimBoundVariable adds the variable to the live argumentEngine,
273
+ // but the managed engine has its own VariableManager snapshot that was
274
+ // taken before these new variables were created. Register each newly
275
+ // returned variable into this engine's VariableManager so that the
276
+ // variable expressions we construct below pass assertVariableExpressionValid.
277
+ const sourceVariables = citations.map((c) => argumentEngine.ensureClaimBoundVariable(c.sourceClaimId));
278
+ for (const sv of sourceVariables) {
279
+ if (!this.variables.hasVariable(sv.id)) {
280
+ this.variables.addVariable(sv);
281
+ }
282
+ }
283
+ // 4. Build the antecedent expression tree. Mutations go via super.*
284
+ // to bypass this class's overrides, which validate after every call
285
+ // and would reject intermediate (partially built) tree states.
286
+ const argId = this.premise.argumentId;
287
+ const argVersion = this.premise.argumentVersion;
288
+ const premiseId = this.premise.id;
289
+ // qRootExprId is the ID of the current naked-Q root variable expression.
290
+ const qRootExprId = this.rootExpressionId;
291
+ if (citations.length === 1) {
292
+ // n = 1: wrap naked-Q with IMPLIES using rightNodeId so that Q lands
293
+ // at the midpoint (consequent) position and S1 lands at initial.
294
+ const impliesId = this.generateIdFn();
295
+ const s1ExprId = this.generateIdFn();
296
+ const impliesOp = {
297
+ id: impliesId,
298
+ argumentId: argId,
299
+ argumentVersion: argVersion,
300
+ premiseId,
301
+ parentId: null,
302
+ type: "operator",
303
+ operator: "implies",
304
+ };
305
+ const s1VarExpr = {
306
+ id: s1ExprId,
307
+ argumentId: argId,
308
+ argumentVersion: argVersion,
309
+ premiseId,
310
+ parentId: null, // wrapExpression sets the parentId internally
311
+ type: "variable",
312
+ variableId: sourceVariables[0].id,
313
+ };
314
+ // rightNodeId=qRootExprId: existing node (Q) → midpoint (consequent),
315
+ // newSibling (S1) → initial (antecedent).
316
+ super.wrapExpression(impliesOp, s1VarExpr, undefined, qRootExprId);
317
+ }
318
+ else {
319
+ // n ≥ 2: build IMPLIES(OR(S1,...,Sn), Q).
320
+ // Temporarily use permissive grammar so OR can sit directly under
321
+ // IMPLIES without an auto-inserted formula buffer.
322
+ const savedGrammarConfig = this.grammarConfig;
323
+ this.setGrammarConfig(PERMISSIVE_GRAMMAR_CONFIG);
324
+ try {
325
+ const impliesId = this.generateIdFn();
326
+ const orId = this.generateIdFn();
327
+ const impliesOp = {
328
+ id: impliesId,
329
+ argumentId: argId,
330
+ argumentVersion: argVersion,
331
+ premiseId,
332
+ parentId: null,
333
+ type: "operator",
334
+ operator: "implies",
335
+ };
336
+ const orOp = {
337
+ id: orId,
338
+ argumentId: argId,
339
+ argumentVersion: argVersion,
340
+ premiseId,
341
+ parentId: null, // wrapExpression sets the parentId internally
342
+ type: "operator",
343
+ operator: "or",
344
+ };
345
+ // rightNodeId=qRootExprId: Q → midpoint (consequent), OR → initial (antecedent).
346
+ super.wrapExpression(impliesOp, orOp, undefined, qRootExprId);
347
+ // Append each source variable expression as a child of OR.
348
+ for (const sourceVar of sourceVariables) {
349
+ const srcExprId = this.generateIdFn();
350
+ const srcVarExpr = {
351
+ id: srcExprId,
352
+ argumentId: argId,
353
+ argumentVersion: argVersion,
354
+ premiseId,
355
+ parentId: orId,
356
+ type: "variable",
357
+ variableId: sourceVar.id,
358
+ };
359
+ super.appendExpression(orId, srcVarExpr);
360
+ }
361
+ }
362
+ finally {
363
+ this.setGrammarConfig(savedGrammarConfig);
364
+ }
365
+ }
366
+ // 5. Validate the final tree is well-formed.
367
+ this.assertWellFormed();
368
+ }
369
+ // -------------------------------------------------------------------------
370
+ // Private helpers
371
+ // -------------------------------------------------------------------------
372
+ /**
373
+ * Returns the ID of the consequent expression, or `undefined` if the tree
374
+ * has no root yet.
375
+ *
376
+ * - Naked form (root is a variable expression): the root IS the consequent.
377
+ * - Implication/biconditional form (root is `implies`/`iff`): the position-1
378
+ * child of the root is the consequent.
379
+ */
380
+ getConsequentExpressionId() {
381
+ const rootId = this.rootExpressionId;
382
+ if (rootId === undefined) {
383
+ return undefined;
384
+ }
385
+ const root = this.expressions.getExpression(rootId);
386
+ if (!root) {
387
+ return undefined;
388
+ }
389
+ if (root.type === "variable") {
390
+ // Naked form — root IS the consequent.
391
+ return rootId;
392
+ }
393
+ if (root.type === "operator" &&
394
+ (root.operator === "implies" || root.operator === "iff")) {
395
+ // Implication/biconditional form — position-1 child is the consequent.
396
+ const children = this.expressions
397
+ .getChildExpressions(rootId)
398
+ .sort((a, b) => a.position - b.position);
399
+ return children[1]?.id;
400
+ }
401
+ return undefined;
402
+ }
403
+ /**
404
+ * Reject an `insertExpression` call that would place a new node into the
405
+ * consequent slot of the root `implies`/`iff`.
406
+ *
407
+ * Detection is by parentId + position on the input: we block when
408
+ * `expression.parentId === rootId` AND `expression.position >= consequent.position`.
409
+ * For `implies`/`iff` the consequent sits at position 1, so this blocks
410
+ * insertions into position 1 (which would displace the consequent) and
411
+ * positions beyond (which would exceed arity 2). Insertions at position 0
412
+ * (antecedent slot) pass through.
413
+ */
414
+ assertNotConsequentSlot(expression) {
415
+ const rootId = this.rootExpressionId;
416
+ if (rootId === undefined) {
417
+ return;
418
+ }
419
+ const root = this.expressions.getExpression(rootId);
420
+ if (!root ||
421
+ root.type !== "operator" ||
422
+ (root.operator !== "implies" && root.operator !== "iff")) {
423
+ return;
424
+ }
425
+ // The consequent is the position-1 child of the root operator.
426
+ const consequentId = this.getConsequentExpressionId();
427
+ if (!consequentId) {
428
+ return;
429
+ }
430
+ // Block if the incoming expression is being inserted directly under root
431
+ // with position 1 (i.e., it claims the consequent slot).
432
+ if (expression.parentId === rootId) {
433
+ // Determine the consequent's current position to compare.
434
+ const consequentExpr = this.expressions.getExpression(consequentId);
435
+ if (consequentExpr &&
436
+ expression.position >= consequentExpr.position) {
437
+ throw new InvariantViolationError([
438
+ {
439
+ code: DERIVATION_CONSEQUENT_LOCKED,
440
+ message: `${DERIVATION_CONSEQUENT_LOCKED}: Cannot insert an expression into the consequent slot of a derivation premise`,
441
+ entityType: "expression",
442
+ entityId: expression.id,
443
+ premiseId: this.premise.id,
444
+ },
445
+ ]);
446
+ }
447
+ }
448
+ }
449
+ /**
450
+ * Reject `removeExpression` and `toggleNegation` calls on the consequent
451
+ * expression.
452
+ */
453
+ assertNotConsequentExpression(exprId) {
454
+ const consequentId = this.getConsequentExpressionId();
455
+ if (consequentId !== undefined && exprId === consequentId) {
456
+ throw new InvariantViolationError([
457
+ {
458
+ code: DERIVATION_CONSEQUENT_LOCKED,
459
+ message: `${DERIVATION_CONSEQUENT_LOCKED}: Cannot remove or negate the consequent expression of a derivation premise`,
460
+ entityType: "expression",
461
+ entityId: exprId,
462
+ premiseId: this.premise.id,
463
+ },
464
+ ]);
465
+ }
466
+ }
467
+ /**
468
+ * Reject `updateExpression` calls that change the consequent's `variableId`
469
+ * or `type`.
470
+ */
471
+ assertConsequentNotMutated(exprId, updates) {
472
+ const consequentId = this.getConsequentExpressionId();
473
+ if (consequentId === undefined || exprId !== consequentId) {
474
+ return;
475
+ }
476
+ if (updates.variableId !== undefined ||
477
+ updates.operator !== undefined) {
478
+ throw new InvariantViolationError([
479
+ {
480
+ code: DERIVATION_CONSEQUENT_LOCKED,
481
+ message: `${DERIVATION_CONSEQUENT_LOCKED}: Cannot change the variable or operator of the consequent expression of a derivation premise`,
482
+ entityType: "expression",
483
+ entityId: exprId,
484
+ premiseId: this.premise.id,
485
+ },
486
+ ]);
487
+ }
488
+ }
489
+ /**
490
+ * Reject `changeOperator` calls that would swap the root `implies`/`iff`
491
+ * to a non-implication operator (`and`, `or`, `not`).
492
+ */
493
+ assertRootOperatorChangeValid(exprId, newOperator) {
494
+ const rootId = this.rootExpressionId;
495
+ if (rootId === undefined || exprId !== rootId) {
496
+ return;
497
+ }
498
+ const root = this.expressions.getExpression(rootId);
499
+ if (!root ||
500
+ root.type !== "operator" ||
501
+ (root.operator !== "implies" && root.operator !== "iff")) {
502
+ return;
503
+ }
504
+ if (newOperator !== "implies" && newOperator !== "iff") {
505
+ throw new InvariantViolationError([
506
+ {
507
+ code: DERIVATION_ROOT_OPERATOR_INVALID,
508
+ message: `${DERIVATION_ROOT_OPERATOR_INVALID}: Cannot change a derivation premise's root operator from "${root.operator}" to "${newOperator}" — only implies↔iff swaps are permitted`,
509
+ entityType: "expression",
510
+ entityId: exprId,
511
+ premiseId: this.premise.id,
512
+ },
513
+ ]);
514
+ }
515
+ }
516
+ }
517
+ //# sourceMappingURL=managed-derivation-premise-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-derivation-premise-engine.js","sourceRoot":"","sources":["../../../src/lib/core/managed-derivation-premise-engine.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { TInvariantValidationResult } from "../types/validation.js";
5
5
  import { type TLogicEngineOptions } from "./argument-engine.js";
6
6
  import { type TGrammarConfig } from "../types/grammar.js";
7
7
  import type { TExpressionInput, TExpressionManagerSnapshot, TExpressionWithoutPosition, TExpressionUpdate } from "./expression-manager.js";
8
+ import { ExpressionManager } from "./expression-manager.js";
8
9
  import { VariableManager } from "./variable-manager.js";
9
10
  import type { TExpressionMutations, TExpressionQueries, TVariableReferences, TPremiseClassification, TPremiseEvaluation, TPremiseLifecycle, TPremiseIdentity, TFormulaTreeVisitor, TFormulaTreeWalking, TDisplayable, THierarchicalChecksummable } from "./interfaces/index.js";
10
11
  export type TPremiseEngineSnapshot<TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = {
@@ -14,14 +15,14 @@ export type TPremiseEngineSnapshot<TPremise extends TCorePremise = TCorePremise,
14
15
  config?: TLogicEngineOptions;
15
16
  };
16
17
  export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> implements TExpressionMutations<TArg, TPremise, TExpr, TVar>, TExpressionQueries<TExpr>, TVariableReferences<TArg, TPremise, TExpr, TVar>, TPremiseClassification, TPremiseEvaluation, TPremiseLifecycle<TPremise, TExpr>, TPremiseIdentity<TArg, TPremise, TExpr, TVar>, TDisplayable, TFormulaTreeWalking, THierarchicalChecksummable<"expressions"> {
17
- private premise;
18
- private rootExpressionId;
19
- private variables;
20
- private expressions;
18
+ protected premise: TOptionalChecksum<TPremise>;
19
+ protected rootExpressionId: string | undefined;
20
+ protected variables: VariableManager<TVar>;
21
+ protected expressions: ExpressionManager<TExpr>;
21
22
  private expressionsByVariableId;
22
23
  private argument;
23
24
  private checksumConfig?;
24
- private grammarConfig;
25
+ protected grammarConfig: TGrammarConfig;
25
26
  private checksumDirty;
26
27
  private cachedMetaChecksum;
27
28
  private cachedDescendantChecksum;
@@ -1 +1 @@
1
- {"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAE/B,KAAK,iBAAiB,EACzB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,KAAK,EACR,yBAAyB,EACzB,4BAA4B,EAI5B,qBAAqB,EACxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,sBAAsB,CAAA;AAc/E,OAAO,KAAK,EAER,0BAA0B,EAC7B,MAAM,wBAAwB,CAAA;AAO/B,OAAO,EAEH,KAAK,mBAAmB,EAC3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,qBAAqB,CAAA;AAS5B,OAAO,KAAK,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EACR,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,0BAA0B,EAC7B,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,sBAAsB,CAC9B,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,IACzE;IACA,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAA;IAC9C,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC/B,CAAA;AAED,qBAAa,aAAa,CACtB,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,CAEpE,YACI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EACjD,kBAAkB,CAAC,KAAK,CAAC,EACzB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAChD,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAClC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAC7C,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,CAAC,aAAa,CAAC;IAE7C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,cAAc,CAAC,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAO;IAC5B,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,eAAe,CAAC,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAGb;IACZ,OAAO,CAAC,sBAAsB,CAAC,CAAiC;IAChE,OAAO,CAAC,mBAAmB,CAAC,CAAmB;IAC/C,OAAO,CAAC,wBAAwB,CAAC,CAAkC;IACnE,OAAO,CAAC,gBAAgB,CAAQ;gBAG5B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE;QACF,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACjC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;QAChC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACxC,EACD,MAAM,CAAC,EAAE,mBAAmB;IAchC;;;;OAIG;IACI,gBAAgB,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI;IAKrD,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAIrD,mBAAmB,CACtB,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,GACxE,IAAI;IAIA,yBAAyB,CAC5B,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,GACrD,IAAI;IAIA,sBAAsB,CACzB,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,GAC1C,IAAI;IAIA,2BAA2B,CAC9B,QAAQ,EAAE,CAAC,MAAM,0BAA0B,CAAC,GAAG,SAAS,GACzD,IAAI;IAIP,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,0BAA0B;IAsBlC,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAyBpC,8BAA8B,CACjC,UAAU,EAAE,MAAM,GACnB,mBAAmB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAsDrD,aAAa,CAChB,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,GACpC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAiDnD,gBAAgB,CACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAC9C,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IA4CnD,qBAAqB,CACxB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAC9C,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAwCnD,gBAAgB,CACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GAC3B,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IA4DnD,gBAAgB,CACnB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,OAAO,GACvB,mBAAmB,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAqD/D,gBAAgB,CACnB,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,EACnC,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAkCnD,cAAc,CACjB,QAAQ,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAC3C,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAC7C,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAuC1D;;;;OAIG;IACI,oBAAoB,IAAI,mBAAmB,CAC9C,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP;IAcM,cAAc,CACjB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAC7B,mBAAmB,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IAkJ1D,cAAc,CACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,wBAAwB,EACrC,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAC7B,mBAAmB,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;IA6P1D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI5C,KAAK,IAAI,MAAM;IAIf,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAapC,SAAS,CACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,mBAAmB,CAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP;IAoCM,YAAY,CACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,mBAAmB,CAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP;IAIM,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAIzC,iBAAiB,IAAI,KAAK,GAAG,SAAS;IAOtC,YAAY,IAAI,IAAI,EAAE;IAItB,cAAc,IAAI,KAAK,EAAE;IAIzB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,EAAE;IAIrD,WAAW,IAAI,OAAO;IAQtB,YAAY,IAAI,OAAO;IAIvB,oBAAoB,IAAI,qBAAqB;IAgK7C,QAAQ,CACX,UAAU,EAAE,yBAAyB,EACrC,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAA;KACpD,GACF,4BAA4B;IA+MxB,eAAe,IAAI,MAAM;IAOzB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;IAOtD,+BAA+B,IAAI,KAAK,EAAE;IAoB1C,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC;IAUvC,aAAa,IAAI,QAAQ;IAUzB,QAAQ,IAAI,MAAM;IAOlB,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAOnC,gBAAgB,IAAI,MAAM;IAO1B,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI;IAI1D,cAAc,IAAI,IAAI;IA+BtB,QAAQ,IAAI,0BAA0B;IAkF7C;;;;OAIG;IACI,eAAe,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI;IAkB7D,SAAS,IAAI,IAAI;IAIxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,cAAc;IAef,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAmB1D,uEAAuE;WACzD,YAAY,CACtB,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GACtC,4BAA4B,EAChC,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EAEpE,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,EACjD,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAChC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,aAAa,CAAC,EAAE,cAAc,EAC9B,UAAU,CAAC,EAAE,MAAM,MAAM,GAC1B,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;IA2C7C;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,sBAAsB;IAiC9B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,oBAAoB;CAQ/B"}
1
+ {"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"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"}
@@ -721,18 +721,20 @@ export class PremiseEngine {
721
721
  return this.premise.id;
722
722
  }
723
723
  getExtras() {
724
- const { id: _id, argumentId: _argumentId, argumentVersion: _argumentVersion, checksum: _checksum, descendantChecksum: _descendantChecksum, combinedChecksum: _combinedChecksum, ...extras } = this.premise;
724
+ const { id: _id, argumentId: _argumentId, argumentVersion: _argumentVersion, checksum: _checksum, descendantChecksum: _descendantChecksum, combinedChecksum: _combinedChecksum, type: _type, derivedClaimId: _derivedClaimId, ...extras } = this.premise;
725
725
  return { ...extras };
726
726
  }
727
727
  setExtras(extras) {
728
728
  return this.withValidation(() => {
729
- // Strip old extras and replace with new ones
730
- const { id, argumentId, argumentVersion, checksum, descendantChecksum, combinedChecksum, } = this.premise;
729
+ // Strip old extras and replace with new ones, preserving structural fields.
730
+ const { id, argumentId, argumentVersion, checksum, descendantChecksum, combinedChecksum, type, derivedClaimId, } = this.premise;
731
731
  this.premise = {
732
732
  ...extras,
733
733
  id,
734
734
  argumentId,
735
735
  argumentVersion,
736
+ type,
737
+ ...(derivedClaimId !== undefined ? { derivedClaimId } : {}),
736
738
  ...(checksum !== undefined ? { checksum } : {}),
737
739
  ...(descendantChecksum !== undefined
738
740
  ? { descendantChecksum }