@proposit/proposit-core 0.12.1 → 1.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.
- package/README.md +104 -93
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +28 -24
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/repair.d.ts.map +1 -1
- package/dist/cli/commands/repair.js +4 -2
- package/dist/cli/commands/repair.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +7 -1
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +7 -25
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +66 -28
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +4 -3
- package/dist/cli/schemata.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +56 -2
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/extensions/basics/schemata.js +54 -23
- package/dist/extensions/basics/schemata.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +275 -10
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +442 -82
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +5 -1
- package/dist/lib/core/argument-library.d.ts.map +1 -1
- package/dist/lib/core/argument-library.js +7 -3
- package/dist/lib/core/argument-library.js.map +1 -1
- package/dist/lib/core/claim-axiom-library.d.ts +3 -3
- package/dist/lib/core/claim-axiom-library.d.ts.map +1 -1
- package/dist/lib/core/claim-axiom-library.js +2 -2
- package/dist/lib/core/claim-axiom-library.js.map +1 -1
- package/dist/lib/core/claim-citation-library.d.ts +3 -3
- package/dist/lib/core/claim-citation-library.d.ts.map +1 -1
- package/dist/lib/core/claim-citation-library.js +2 -2
- package/dist/lib/core/claim-citation-library.js.map +1 -1
- package/dist/lib/core/expression-manager.d.ts +68 -73
- package/dist/lib/core/expression-manager.d.ts.map +1 -1
- package/dist/lib/core/expression-manager.js +242 -762
- package/dist/lib/core/expression-manager.js.map +1 -1
- package/dist/lib/core/fork.d.ts +5 -1
- package/dist/lib/core/fork.d.ts.map +1 -1
- package/dist/lib/core/fork.js +16 -6
- package/dist/lib/core/fork.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +68 -7
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +9 -6
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +50 -47
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.d.ts +80 -11
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +232 -80
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +5 -5
- package/dist/lib/core/proposit-core.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.js +13 -3
- package/dist/lib/core/proposit-core.js.map +1 -1
- package/dist/lib/grammar/an-rules.d.ts +158 -0
- package/dist/lib/grammar/an-rules.d.ts.map +1 -0
- package/dist/lib/grammar/an-rules.js +778 -0
- package/dist/lib/grammar/an-rules.js.map +1 -0
- package/dist/lib/grammar/auto-normalize.d.ts +14 -0
- package/dist/lib/grammar/auto-normalize.d.ts.map +1 -0
- package/dist/lib/grammar/auto-normalize.js +35 -0
- package/dist/lib/grammar/auto-normalize.js.map +1 -0
- package/dist/lib/grammar/bounded-subtree.d.ts +30 -0
- package/dist/lib/grammar/bounded-subtree.d.ts.map +1 -0
- package/dist/lib/grammar/bounded-subtree.js +74 -0
- package/dist/lib/grammar/bounded-subtree.js.map +1 -0
- package/dist/lib/grammar/naked-q.d.ts +20 -0
- package/dist/lib/grammar/naked-q.d.ts.map +1 -0
- package/dist/lib/grammar/naked-q.js +58 -0
- package/dist/lib/grammar/naked-q.js.map +1 -0
- package/dist/lib/grammar/normalize.d.ts +12 -0
- package/dist/lib/grammar/normalize.d.ts.map +1 -0
- package/dist/lib/grammar/normalize.js +45 -0
- package/dist/lib/grammar/normalize.js.map +1 -0
- package/dist/lib/grammar/populate-from.d.ts +25 -0
- package/dist/lib/grammar/populate-from.d.ts.map +1 -0
- package/dist/lib/grammar/populate-from.js +252 -0
- package/dist/lib/grammar/populate-from.js.map +1 -0
- package/dist/lib/grammar/repair.d.ts +65 -0
- package/dist/lib/grammar/repair.d.ts.map +1 -0
- package/dist/lib/grammar/repair.js +251 -0
- package/dist/lib/grammar/repair.js.map +1 -0
- package/dist/lib/grammar/types.d.ts +17 -0
- package/dist/lib/grammar/types.d.ts.map +1 -0
- package/dist/lib/grammar/types.js +82 -0
- package/dist/lib/grammar/types.js.map +1 -0
- package/dist/lib/grammar/validate.d.ts +4 -0
- package/dist/lib/grammar/validate.d.ts.map +1 -0
- package/dist/lib/grammar/validate.js +28 -0
- package/dist/lib/grammar/validate.js.map +1 -0
- package/dist/lib/grammar/validators/context.d.ts +11 -0
- package/dist/lib/grammar/validators/context.d.ts.map +1 -0
- package/dist/lib/grammar/validators/context.js +5 -0
- package/dist/lib/grammar/validators/context.js.map +1 -0
- package/dist/lib/grammar/validators/derivable.d.ts +63 -0
- package/dist/lib/grammar/validators/derivable.d.ts.map +1 -0
- package/dist/lib/grammar/validators/derivable.js +502 -0
- package/dist/lib/grammar/validators/derivable.js.map +1 -0
- package/dist/lib/grammar/validators/evaluable.d.ts +48 -0
- package/dist/lib/grammar/validators/evaluable.d.ts.map +1 -0
- package/dist/lib/grammar/validators/evaluable.js +226 -0
- package/dist/lib/grammar/validators/evaluable.js.map +1 -0
- package/dist/lib/grammar/validators/presentable.d.ts +45 -0
- package/dist/lib/grammar/validators/presentable.d.ts.map +1 -0
- package/dist/lib/grammar/validators/presentable.js +231 -0
- package/dist/lib/grammar/validators/presentable.js.map +1 -0
- package/dist/lib/grammar/validators/structural.d.ts +103 -0
- package/dist/lib/grammar/validators/structural.d.ts.map +1 -0
- package/dist/lib/grammar/validators/structural.js +602 -0
- package/dist/lib/grammar/validators/structural.js.map +1 -0
- package/dist/lib/index.d.ts +4 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts +8 -5
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +204 -42
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/parsing/clamp-max-lengths.d.ts.map +1 -1
- package/dist/lib/parsing/clamp-max-lengths.js +10 -4
- package/dist/lib/parsing/clamp-max-lengths.js.map +1 -1
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
- package/dist/lib/parsing/prompt-builder.js +13 -15
- package/dist/lib/parsing/prompt-builder.js.map +1 -1
- package/dist/lib/parsing/schemata.d.ts +0 -3
- package/dist/lib/parsing/schemata.d.ts.map +1 -1
- package/dist/lib/parsing/schemata.js +25 -13
- package/dist/lib/parsing/schemata.js.map +1 -1
- package/dist/lib/parsing/types.d.ts +1 -1
- package/dist/lib/parsing/types.d.ts.map +1 -1
- package/dist/lib/schemata/claim.d.ts +8 -0
- package/dist/lib/schemata/claim.d.ts.map +1 -1
- package/dist/lib/schemata/claim.js +17 -7
- package/dist/lib/schemata/claim.js.map +1 -1
- package/dist/lib/schemata/import.d.ts.map +1 -1
- package/dist/lib/schemata/import.js +2 -5
- package/dist/lib/schemata/import.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +0 -2
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +0 -2
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/types/evaluation.d.ts +1 -1
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/types/fork.d.ts +12 -3
- package/dist/lib/types/fork.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +0 -6
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +23 -6
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/lookup.d.ts +2 -2
- package/dist/lib/utils/lookup.js +2 -2
- package/package.json +1 -1
- package/dist/lib/core/managed-derivation-premise-engine.d.ts +0 -172
- package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +0 -1
- package/dist/lib/core/managed-derivation-premise-engine.js +0 -550
- package/dist/lib/core/managed-derivation-premise-engine.js.map +0 -1
- package/dist/lib/schemata/claim-axiom.d.ts +0 -11
- package/dist/lib/schemata/claim-axiom.d.ts.map +0 -1
- package/dist/lib/schemata/claim-axiom.js +0 -9
- package/dist/lib/schemata/claim-axiom.js.map +0 -1
- package/dist/lib/schemata/claim-citation.d.ts +0 -11
- package/dist/lib/schemata/claim-citation.d.ts.map +0 -1
- package/dist/lib/schemata/claim-citation.js +0 -9
- package/dist/lib/schemata/claim-citation.js.map +0 -1
- package/dist/lib/types/grammar.d.ts +0 -83
- package/dist/lib/types/grammar.d.ts.map +0 -1
- package/dist/lib/types/grammar.js +0 -24
- package/dist/lib/types/grammar.js.map +0 -1
|
@@ -1,550 +0,0 @@
|
|
|
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 {} 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 `populateFromSupports`, 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
|
-
// populateFromSupports 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 helper that builds the antecedent of this derivation premise
|
|
211
|
-
* from the current global support (citations + axiom invocations) of the
|
|
212
|
-
* derived claim.
|
|
213
|
-
*
|
|
214
|
-
* Behavior by total support count `n = citations + axioms`:
|
|
215
|
-
* - n = 0: no change. Premise stays in its current form (typically
|
|
216
|
-
* naked-Q, indicating "no support given").
|
|
217
|
-
* - n = 1: `IMPLIES(VarExpr(S1), Q)`.
|
|
218
|
-
* - n ≥ 2: `IMPLIES(formula(OR(VarExpr(S1), …, VarExpr(Sn))), Q)`.
|
|
219
|
-
* Citations come first, axioms second; source order preserved within
|
|
220
|
-
* each. The formula buffer between IMPLIES and OR is auto-inserted by
|
|
221
|
-
* the engine's standard grammar. A supporting claim referenced by
|
|
222
|
-
* multiple connections — for example, two citations from this derived
|
|
223
|
-
* claim to the same supporting claim — appears exactly once in the
|
|
224
|
-
* antecedent, at its first source-order position.
|
|
225
|
-
*
|
|
226
|
-
* Materializes a claim-bound variable for each supporting claim via
|
|
227
|
-
* `argumentEngine.ensureClaimBoundVariable(supportingClaimId)`.
|
|
228
|
-
*
|
|
229
|
-
* **Tree construction approach:** Mutations are performed via `super.*`
|
|
230
|
-
* calls, bypassing this class's overrides (which call `assertWellFormed()`
|
|
231
|
-
* after every mutation and would reject intermediate states during
|
|
232
|
-
* multi-step construction). Standard grammar is used throughout — the
|
|
233
|
-
* engine's `wrapInsertFormula` rule inserts a formula buffer between
|
|
234
|
-
* IMPLIES and OR for n ≥ 2 automatically. `assertWellFormed()` is called
|
|
235
|
-
* at the end to validate the final state.
|
|
236
|
-
*
|
|
237
|
-
* @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when
|
|
238
|
-
* the antecedent slot is already filled.
|
|
239
|
-
*
|
|
240
|
-
* @since 0.12.0
|
|
241
|
-
*/
|
|
242
|
-
populateFromSupports(citationLib, axiomLib, argumentEngine) {
|
|
243
|
-
const premise = this.premise;
|
|
244
|
-
const derivedClaimId = premise.derivedClaimId;
|
|
245
|
-
// 1. Reject if antecedent is already non-empty.
|
|
246
|
-
const rootId = this.rootExpressionId;
|
|
247
|
-
if (rootId !== undefined) {
|
|
248
|
-
const root = this.expressions.getExpression(rootId);
|
|
249
|
-
if (root &&
|
|
250
|
-
root.type === "operator" &&
|
|
251
|
-
(root.operator === "implies" || root.operator === "iff")) {
|
|
252
|
-
// Sort children by position; lowest-position child is the antecedent.
|
|
253
|
-
const children = this.expressions
|
|
254
|
-
.getChildExpressions(rootId)
|
|
255
|
-
.sort((a, b) => a.position - b.position);
|
|
256
|
-
const antecedent = children[0];
|
|
257
|
-
if (antecedent) {
|
|
258
|
-
throw new InvariantViolationError([
|
|
259
|
-
{
|
|
260
|
-
code: DERIVATION_ANTECEDENT_NON_EMPTY,
|
|
261
|
-
message: `${DERIVATION_ANTECEDENT_NON_EMPTY}: derivation premise already has a non-empty antecedent`,
|
|
262
|
-
entityType: "premise",
|
|
263
|
-
entityId: premise.id,
|
|
264
|
-
premiseId: premise.id,
|
|
265
|
-
},
|
|
266
|
-
]);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
// 2. Collect supporting connections from both libraries (citations
|
|
271
|
-
// first, axioms second; source order preserved within each).
|
|
272
|
-
const citationConnections = citationLib.getConnectionsForClaim(derivedClaimId);
|
|
273
|
-
const axiomConnections = axiomLib.getConnectionsForClaim(derivedClaimId);
|
|
274
|
-
const totalCount = citationConnections.length + axiomConnections.length;
|
|
275
|
-
if (totalCount === 0)
|
|
276
|
-
return;
|
|
277
|
-
// 3. Dedupe by supportingClaimId in source order: a claim referenced by
|
|
278
|
-
// multiple connections (e.g., two citations from this derived claim to
|
|
279
|
-
// the same supporting claim) contributes exactly one OR child. Citation
|
|
280
|
-
// duplicates collapse first, then axiom duplicates collapse against the
|
|
281
|
-
// citation set (axioms keep their relative order behind citations).
|
|
282
|
-
const seenSupportingIds = new Set();
|
|
283
|
-
const orderedSupportingIds = [];
|
|
284
|
-
for (const conn of citationConnections) {
|
|
285
|
-
if (!seenSupportingIds.has(conn.supportingClaimId)) {
|
|
286
|
-
seenSupportingIds.add(conn.supportingClaimId);
|
|
287
|
-
orderedSupportingIds.push(conn.supportingClaimId);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
for (const conn of axiomConnections) {
|
|
291
|
-
if (!seenSupportingIds.has(conn.supportingClaimId)) {
|
|
292
|
-
seenSupportingIds.add(conn.supportingClaimId);
|
|
293
|
-
orderedSupportingIds.push(conn.supportingClaimId);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
// 4. Materialize claim-bound variables for each unique supporting claim.
|
|
297
|
-
// ensureClaimBoundVariable is idempotent, but the array also being unique
|
|
298
|
-
// ensures buildAntecedentFromSupportingVariables emits one OR child per
|
|
299
|
-
// distinct supporting claim.
|
|
300
|
-
const supportingVariables = orderedSupportingIds.map((claimId) => argumentEngine.ensureClaimBoundVariable(claimId));
|
|
301
|
-
for (const sv of supportingVariables) {
|
|
302
|
-
if (!this.variables.hasVariable(sv.id)) {
|
|
303
|
-
this.variables.addVariable(sv);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
// 4. Build the antecedent expression tree.
|
|
307
|
-
this.buildAntecedentFromSupportingVariables(supportingVariables);
|
|
308
|
-
// 5. Validate the final tree is well-formed.
|
|
309
|
-
this.assertWellFormed();
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Build the antecedent expression tree from a list of already-materialized
|
|
313
|
-
* supporting variables. Shared between populate helpers.
|
|
314
|
-
*
|
|
315
|
-
* - n=0 → no-op (caller decides whether to leave the naked-Q form intact).
|
|
316
|
-
* - n=1 → IMPLIES(VarExpr(S1), Q) using wrapExpression with rightNodeId=Q.
|
|
317
|
-
* - n≥2 → IMPLIES(formula(OR(S1, ..., Sn)), Q) via wrapExpression + appendExpression.
|
|
318
|
-
*
|
|
319
|
-
* Uses `super.*` mutation calls to bypass this class's overrides during
|
|
320
|
-
* multi-step construction. Caller is responsible for the final
|
|
321
|
-
* `assertWellFormed()`.
|
|
322
|
-
*/
|
|
323
|
-
buildAntecedentFromSupportingVariables(supportingVars) {
|
|
324
|
-
if (supportingVars.length === 0)
|
|
325
|
-
return;
|
|
326
|
-
const argId = this.premise.argumentId;
|
|
327
|
-
const argVersion = this.premise.argumentVersion;
|
|
328
|
-
const premiseId = this.premise.id;
|
|
329
|
-
// qRootExprId is the ID of the current naked-Q root variable expression.
|
|
330
|
-
const qRootExprId = this.rootExpressionId;
|
|
331
|
-
if (supportingVars.length === 1) {
|
|
332
|
-
// n = 1: wrap naked-Q with IMPLIES using rightNodeId so that Q lands
|
|
333
|
-
// at the midpoint (consequent) position and S1 lands at initial.
|
|
334
|
-
const impliesId = this.generateIdFn();
|
|
335
|
-
const s1ExprId = this.generateIdFn();
|
|
336
|
-
const impliesOp = {
|
|
337
|
-
id: impliesId,
|
|
338
|
-
argumentId: argId,
|
|
339
|
-
argumentVersion: argVersion,
|
|
340
|
-
premiseId,
|
|
341
|
-
parentId: null,
|
|
342
|
-
type: "operator",
|
|
343
|
-
operator: "implies",
|
|
344
|
-
};
|
|
345
|
-
const s1VarExpr = {
|
|
346
|
-
id: s1ExprId,
|
|
347
|
-
argumentId: argId,
|
|
348
|
-
argumentVersion: argVersion,
|
|
349
|
-
premiseId,
|
|
350
|
-
parentId: null, // wrapExpression sets the parentId internally
|
|
351
|
-
type: "variable",
|
|
352
|
-
variableId: supportingVars[0].id,
|
|
353
|
-
};
|
|
354
|
-
// rightNodeId=qRootExprId: existing node (Q) → midpoint (consequent),
|
|
355
|
-
// newSibling (S1) → initial (antecedent).
|
|
356
|
-
super.wrapExpression(impliesOp, s1VarExpr, undefined, qRootExprId);
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
// n ≥ 2: build IMPLIES(formula(OR(S1,...,Sn)), Q). Standard grammar
|
|
360
|
-
// throughout — the engine's wrapInsertFormula rule auto-inserts a
|
|
361
|
-
// formula buffer between IMPLIES and OR. The OR keeps its original
|
|
362
|
-
// ID, so subsequent appendExpression(orId, ...) calls still attach
|
|
363
|
-
// the supporting variables to the same OR node.
|
|
364
|
-
const impliesId = this.generateIdFn();
|
|
365
|
-
const orId = this.generateIdFn();
|
|
366
|
-
const impliesOp = {
|
|
367
|
-
id: impliesId,
|
|
368
|
-
argumentId: argId,
|
|
369
|
-
argumentVersion: argVersion,
|
|
370
|
-
premiseId,
|
|
371
|
-
parentId: null,
|
|
372
|
-
type: "operator",
|
|
373
|
-
operator: "implies",
|
|
374
|
-
};
|
|
375
|
-
const orOp = {
|
|
376
|
-
id: orId,
|
|
377
|
-
argumentId: argId,
|
|
378
|
-
argumentVersion: argVersion,
|
|
379
|
-
premiseId,
|
|
380
|
-
parentId: null, // wrapExpression sets the parentId internally
|
|
381
|
-
type: "operator",
|
|
382
|
-
operator: "or",
|
|
383
|
-
};
|
|
384
|
-
// rightNodeId=qRootExprId: Q → midpoint (consequent), OR → initial (antecedent).
|
|
385
|
-
super.wrapExpression(impliesOp, orOp, undefined, qRootExprId);
|
|
386
|
-
// Append each supporting variable expression as a child of OR.
|
|
387
|
-
for (const sourceVar of supportingVars) {
|
|
388
|
-
const srcExprId = this.generateIdFn();
|
|
389
|
-
const srcVarExpr = {
|
|
390
|
-
id: srcExprId,
|
|
391
|
-
argumentId: argId,
|
|
392
|
-
argumentVersion: argVersion,
|
|
393
|
-
premiseId,
|
|
394
|
-
parentId: orId,
|
|
395
|
-
type: "variable",
|
|
396
|
-
variableId: sourceVar.id,
|
|
397
|
-
};
|
|
398
|
-
super.appendExpression(orId, srcVarExpr);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
// -------------------------------------------------------------------------
|
|
403
|
-
// Private helpers
|
|
404
|
-
// -------------------------------------------------------------------------
|
|
405
|
-
/**
|
|
406
|
-
* Returns the ID of the consequent expression, or `undefined` if the tree
|
|
407
|
-
* has no root yet.
|
|
408
|
-
*
|
|
409
|
-
* - Naked form (root is a variable expression): the root IS the consequent.
|
|
410
|
-
* - Implication/biconditional form (root is `implies`/`iff`): the position-1
|
|
411
|
-
* child of the root is the consequent.
|
|
412
|
-
*/
|
|
413
|
-
getConsequentExpressionId() {
|
|
414
|
-
const rootId = this.rootExpressionId;
|
|
415
|
-
if (rootId === undefined) {
|
|
416
|
-
return undefined;
|
|
417
|
-
}
|
|
418
|
-
const root = this.expressions.getExpression(rootId);
|
|
419
|
-
if (!root) {
|
|
420
|
-
return undefined;
|
|
421
|
-
}
|
|
422
|
-
if (root.type === "variable") {
|
|
423
|
-
// Naked form — root IS the consequent.
|
|
424
|
-
return rootId;
|
|
425
|
-
}
|
|
426
|
-
if (root.type === "operator" &&
|
|
427
|
-
(root.operator === "implies" || root.operator === "iff")) {
|
|
428
|
-
// Implication/biconditional form — position-1 child is the consequent.
|
|
429
|
-
const children = this.expressions
|
|
430
|
-
.getChildExpressions(rootId)
|
|
431
|
-
.sort((a, b) => a.position - b.position);
|
|
432
|
-
return children[1]?.id;
|
|
433
|
-
}
|
|
434
|
-
return undefined;
|
|
435
|
-
}
|
|
436
|
-
/**
|
|
437
|
-
* Reject an `insertExpression` call that would place a new node into the
|
|
438
|
-
* consequent slot of the root `implies`/`iff`.
|
|
439
|
-
*
|
|
440
|
-
* Detection is by parentId + position on the input: we block when
|
|
441
|
-
* `expression.parentId === rootId` AND `expression.position >= consequent.position`.
|
|
442
|
-
* For `implies`/`iff` the consequent sits at position 1, so this blocks
|
|
443
|
-
* insertions into position 1 (which would displace the consequent) and
|
|
444
|
-
* positions beyond (which would exceed arity 2). Insertions at position 0
|
|
445
|
-
* (antecedent slot) pass through.
|
|
446
|
-
*/
|
|
447
|
-
assertNotConsequentSlot(expression) {
|
|
448
|
-
const rootId = this.rootExpressionId;
|
|
449
|
-
if (rootId === undefined) {
|
|
450
|
-
return;
|
|
451
|
-
}
|
|
452
|
-
const root = this.expressions.getExpression(rootId);
|
|
453
|
-
if (!root ||
|
|
454
|
-
root.type !== "operator" ||
|
|
455
|
-
(root.operator !== "implies" && root.operator !== "iff")) {
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
// The consequent is the position-1 child of the root operator.
|
|
459
|
-
const consequentId = this.getConsequentExpressionId();
|
|
460
|
-
if (!consequentId) {
|
|
461
|
-
return;
|
|
462
|
-
}
|
|
463
|
-
// Block if the incoming expression is being inserted directly under root
|
|
464
|
-
// with position 1 (i.e., it claims the consequent slot).
|
|
465
|
-
if (expression.parentId === rootId) {
|
|
466
|
-
// Determine the consequent's current position to compare.
|
|
467
|
-
const consequentExpr = this.expressions.getExpression(consequentId);
|
|
468
|
-
if (consequentExpr &&
|
|
469
|
-
expression.position >= consequentExpr.position) {
|
|
470
|
-
throw new InvariantViolationError([
|
|
471
|
-
{
|
|
472
|
-
code: DERIVATION_CONSEQUENT_LOCKED,
|
|
473
|
-
message: `${DERIVATION_CONSEQUENT_LOCKED}: Cannot insert an expression into the consequent slot of a derivation premise`,
|
|
474
|
-
entityType: "expression",
|
|
475
|
-
entityId: expression.id,
|
|
476
|
-
premiseId: this.premise.id,
|
|
477
|
-
},
|
|
478
|
-
]);
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
/**
|
|
483
|
-
* Reject `removeExpression` and `toggleNegation` calls on the consequent
|
|
484
|
-
* expression.
|
|
485
|
-
*/
|
|
486
|
-
assertNotConsequentExpression(exprId) {
|
|
487
|
-
const consequentId = this.getConsequentExpressionId();
|
|
488
|
-
if (consequentId !== undefined && exprId === consequentId) {
|
|
489
|
-
throw new InvariantViolationError([
|
|
490
|
-
{
|
|
491
|
-
code: DERIVATION_CONSEQUENT_LOCKED,
|
|
492
|
-
message: `${DERIVATION_CONSEQUENT_LOCKED}: Cannot remove or negate the consequent expression of a derivation premise`,
|
|
493
|
-
entityType: "expression",
|
|
494
|
-
entityId: exprId,
|
|
495
|
-
premiseId: this.premise.id,
|
|
496
|
-
},
|
|
497
|
-
]);
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
/**
|
|
501
|
-
* Reject `updateExpression` calls that change the consequent's `variableId`
|
|
502
|
-
* or `type`.
|
|
503
|
-
*/
|
|
504
|
-
assertConsequentNotMutated(exprId, updates) {
|
|
505
|
-
const consequentId = this.getConsequentExpressionId();
|
|
506
|
-
if (consequentId === undefined || exprId !== consequentId) {
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
509
|
-
if (updates.variableId !== undefined ||
|
|
510
|
-
updates.operator !== undefined) {
|
|
511
|
-
throw new InvariantViolationError([
|
|
512
|
-
{
|
|
513
|
-
code: DERIVATION_CONSEQUENT_LOCKED,
|
|
514
|
-
message: `${DERIVATION_CONSEQUENT_LOCKED}: Cannot change the variable or operator of the consequent expression of a derivation premise`,
|
|
515
|
-
entityType: "expression",
|
|
516
|
-
entityId: exprId,
|
|
517
|
-
premiseId: this.premise.id,
|
|
518
|
-
},
|
|
519
|
-
]);
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
/**
|
|
523
|
-
* Reject `changeOperator` calls that would swap the root `implies`/`iff`
|
|
524
|
-
* to a non-implication operator (`and`, `or`, `not`).
|
|
525
|
-
*/
|
|
526
|
-
assertRootOperatorChangeValid(exprId, newOperator) {
|
|
527
|
-
const rootId = this.rootExpressionId;
|
|
528
|
-
if (rootId === undefined || exprId !== rootId) {
|
|
529
|
-
return;
|
|
530
|
-
}
|
|
531
|
-
const root = this.expressions.getExpression(rootId);
|
|
532
|
-
if (!root ||
|
|
533
|
-
root.type !== "operator" ||
|
|
534
|
-
(root.operator !== "implies" && root.operator !== "iff")) {
|
|
535
|
-
return;
|
|
536
|
-
}
|
|
537
|
-
if (newOperator !== "implies" && newOperator !== "iff") {
|
|
538
|
-
throw new InvariantViolationError([
|
|
539
|
-
{
|
|
540
|
-
code: DERIVATION_ROOT_OPERATOR_INVALID,
|
|
541
|
-
message: `${DERIVATION_ROOT_OPERATOR_INVALID}: Cannot change a derivation premise's root operator from "${root.operator}" to "${newOperator}" — only implies↔iff swaps are permitted`,
|
|
542
|
-
entityType: "expression",
|
|
543
|
-
entityId: exprId,
|
|
544
|
-
premiseId: this.premise.id,
|
|
545
|
-
},
|
|
546
|
-
]);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
//# sourceMappingURL=managed-derivation-premise-engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import Type, { type Static } from "typebox";
|
|
2
|
-
export declare const CoreClaimAxiomSchema: Type.TObject<{
|
|
3
|
-
id: Type.TString;
|
|
4
|
-
claimId: Type.TString;
|
|
5
|
-
claimVersion: Type.TNumber;
|
|
6
|
-
supportingClaimId: Type.TString;
|
|
7
|
-
supportingClaimVersion: Type.TNumber;
|
|
8
|
-
checksum: Type.TString;
|
|
9
|
-
}>;
|
|
10
|
-
export type TCoreClaimAxiom = Static<typeof CoreClaimAxiomSchema>;
|
|
11
|
-
//# sourceMappingURL=claim-axiom.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claim-axiom.d.ts","sourceRoot":"","sources":["../../../src/lib/schemata/claim-axiom.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAG3C,eAAO,MAAM,oBAAoB;;;;;;;EAShC,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import Type, {} from "typebox";
|
|
2
|
-
import { CoreClaimConnectionSchema } from "./claim-connection.js";
|
|
3
|
-
export const CoreClaimAxiomSchema = Type.Object({
|
|
4
|
-
...CoreClaimConnectionSchema.properties,
|
|
5
|
-
}, {
|
|
6
|
-
additionalProperties: true,
|
|
7
|
-
description: "A directional axiom-invocation edge: the claim at supportingClaimId (type='axiomatic') supports the claim at claimId (type='normal'). Extended via additionalProperties for app-level fields.",
|
|
8
|
-
});
|
|
9
|
-
//# sourceMappingURL=claim-axiom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claim-axiom.js","sourceRoot":"","sources":["../../../src/lib/schemata/claim-axiom.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAe,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAEjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAC3C;IACI,GAAG,yBAAyB,CAAC,UAAU;CAC1C,EACD;IACI,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EACP,+LAA+L;CACtM,CACJ,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import Type, { type Static } from "typebox";
|
|
2
|
-
export declare const CoreClaimCitationSchema: Type.TObject<{
|
|
3
|
-
id: Type.TString;
|
|
4
|
-
claimId: Type.TString;
|
|
5
|
-
claimVersion: Type.TNumber;
|
|
6
|
-
supportingClaimId: Type.TString;
|
|
7
|
-
supportingClaimVersion: Type.TNumber;
|
|
8
|
-
checksum: Type.TString;
|
|
9
|
-
}>;
|
|
10
|
-
export type TCoreClaimCitation = Static<typeof CoreClaimCitationSchema>;
|
|
11
|
-
//# sourceMappingURL=claim-citation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claim-citation.d.ts","sourceRoot":"","sources":["../../../src/lib/schemata/claim-citation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAG3C,eAAO,MAAM,uBAAuB;;;;;;;EASnC,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import Type, {} from "typebox";
|
|
2
|
-
import { CoreClaimConnectionSchema } from "./claim-connection.js";
|
|
3
|
-
export const CoreClaimCitationSchema = Type.Object({
|
|
4
|
-
...CoreClaimConnectionSchema.properties,
|
|
5
|
-
}, {
|
|
6
|
-
additionalProperties: true,
|
|
7
|
-
description: "A directional citation edge: the claim at supportingClaimId is cited as evidence for the claim at claimId. The supporting-side endpoint must reference a claim with type='citation'. Extended via additionalProperties for app-level fields.",
|
|
8
|
-
});
|
|
9
|
-
//# sourceMappingURL=claim-citation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claim-citation.js","sourceRoot":"","sources":["../../../src/lib/schemata/claim-citation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAe,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAC9C;IACI,GAAG,yBAAyB,CAAC,UAAU;CAC1C,EACD;IACI,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EACP,8OAA8O;CACrP,CACJ,CAAA"}
|