@polintpro/proposit-core 0.7.5 → 0.8.2
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 +91 -27
- package/dist/cli/commands/arguments.d.ts.map +1 -1
- package/dist/cli/commands/arguments.js +25 -7
- package/dist/cli/commands/arguments.js.map +1 -1
- package/dist/cli/commands/claims.d.ts.map +1 -1
- package/dist/cli/commands/claims.js +16 -16
- package/dist/cli/commands/claims.js.map +1 -1
- package/dist/cli/commands/diff.d.ts.map +1 -1
- package/dist/cli/commands/diff.js +19 -4
- package/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/expressions.d.ts.map +1 -1
- package/dist/cli/commands/expressions.js +56 -0
- package/dist/cli/commands/expressions.js.map +1 -1
- package/dist/cli/commands/graph.d.ts +13 -0
- package/dist/cli/commands/graph.d.ts.map +1 -0
- package/dist/cli/commands/graph.js +347 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/parse.d.ts.map +1 -1
- package/dist/cli/commands/parse.js +13 -6
- package/dist/cli/commands/parse.js.map +1 -1
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +21 -17
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/render.d.ts.map +1 -1
- package/dist/cli/commands/render.js +23 -12
- package/dist/cli/commands/render.js.map +1 -1
- package/dist/cli/commands/repair.d.ts +3 -0
- package/dist/cli/commands/repair.d.ts.map +1 -0
- package/dist/cli/commands/repair.js +53 -0
- package/dist/cli/commands/repair.js.map +1 -0
- package/dist/cli/commands/sources.d.ts.map +1 -1
- package/dist/cli/commands/sources.js +17 -17
- package/dist/cli/commands/sources.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +3 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +27 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/variables.d.ts.map +1 -1
- package/dist/cli/commands/variables.js +11 -4
- package/dist/cli/commands/variables.js.map +1 -1
- package/dist/cli/engine.d.ts +6 -19
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +72 -73
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/storage/libraries.d.ts +3 -0
- package/dist/cli/storage/libraries.d.ts.map +1 -1
- package/dist/cli/storage/libraries.js +19 -0
- package/dist/cli/storage/libraries.js.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +0 -7
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +4 -39
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +6 -1
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +14 -6
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +84 -0
- package/dist/lib/core/argument-library.d.ts.map +1 -0
- package/dist/lib/core/argument-library.js +122 -0
- package/dist/lib/core/argument-library.js.map +1 -0
- package/dist/lib/core/diff.d.ts +0 -10
- package/dist/lib/core/diff.d.ts.map +1 -1
- package/dist/lib/core/diff.js +0 -31
- package/dist/lib/core/diff.js.map +1 -1
- package/dist/lib/core/expression-manager.d.ts +2 -1
- package/dist/lib/core/expression-manager.d.ts.map +1 -1
- package/dist/lib/core/expression-manager.js +12 -8
- package/dist/lib/core/expression-manager.js.map +1 -1
- package/dist/lib/core/fork-library.d.ts +17 -0
- package/dist/lib/core/fork-library.d.ts.map +1 -0
- package/dist/lib/core/fork-library.js +62 -0
- package/dist/lib/core/fork-library.js.map +1 -0
- package/dist/lib/core/fork-namespace.d.ts +19 -0
- package/dist/lib/core/fork-namespace.d.ts.map +1 -0
- package/dist/lib/core/fork-namespace.js +86 -0
- package/dist/lib/core/fork-namespace.js.map +1 -0
- package/dist/lib/core/fork.d.ts +1 -2
- package/dist/lib/core/fork.d.ts.map +1 -1
- package/dist/lib/core/fork.js +4 -18
- package/dist/lib/core/fork.js.map +1 -1
- package/dist/lib/core/interfaces/index.d.ts +1 -1
- package/dist/lib/core/interfaces/index.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +58 -24
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.d.ts +3 -2
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +14 -9
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +111 -0
- package/dist/lib/core/proposit-core.d.ts.map +1 -0
- package/dist/lib/core/proposit-core.js +365 -0
- package/dist/lib/core/proposit-core.js.map +1 -0
- package/dist/lib/index.d.ts +8 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +6 -3
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +17 -14
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/parsing/clamp-max-lengths.d.ts +11 -0
- package/dist/lib/parsing/clamp-max-lengths.d.ts.map +1 -0
- package/dist/lib/parsing/clamp-max-lengths.js +56 -0
- package/dist/lib/parsing/clamp-max-lengths.js.map +1 -0
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
- package/dist/lib/parsing/prompt-builder.js +14 -1
- package/dist/lib/parsing/prompt-builder.js.map +1 -1
- package/dist/lib/parsing/types.d.ts +2 -0
- package/dist/lib/parsing/types.d.ts.map +1 -1
- package/dist/lib/schemata/argument.d.ts +0 -3
- package/dist/lib/schemata/argument.d.ts.map +1 -1
- package/dist/lib/schemata/argument.js +0 -9
- package/dist/lib/schemata/argument.js.map +1 -1
- package/dist/lib/schemata/fork.d.ts +71 -12
- package/dist/lib/schemata/fork.d.ts.map +1 -1
- package/dist/lib/schemata/fork.js +47 -19
- package/dist/lib/schemata/fork.js.map +1 -1
- package/dist/lib/schemata/propositional.d.ts +0 -50
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +0 -39
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +7 -9
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +2 -2
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +2 -2
- package/dist/lib/types/validation.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/core/forks-library.d.ts +0 -58
- package/dist/lib/core/forks-library.d.ts.map +0 -1
- package/dist/lib/core/forks-library.js +0 -142
- package/dist/lib/core/forks-library.js.map +0 -1
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import { isClaimBound } from "../schemata/propositional.js";
|
|
2
|
+
import { ClaimLibrary } from "./claim-library.js";
|
|
3
|
+
import { SourceLibrary } from "./source-library.js";
|
|
4
|
+
import { ClaimSourceLibrary } from "./claim-source-library.js";
|
|
5
|
+
import { ArgumentLibrary } from "./argument-library.js";
|
|
6
|
+
import { ArgumentEngine, defaultGenerateId } from "./argument-engine.js";
|
|
7
|
+
import { ForkLibrary } from "./fork-library.js";
|
|
8
|
+
import { forkArgumentEngine } from "./fork.js";
|
|
9
|
+
import { diffArguments as standaloneDiffArguments } from "./diff.js";
|
|
10
|
+
/**
|
|
11
|
+
* Top-level orchestrator for the proposit-core system. Owns all five
|
|
12
|
+
* libraries (claims, sources, claim-source associations, forks, arguments)
|
|
13
|
+
* and provides unified snapshot/restore and validation.
|
|
14
|
+
*
|
|
15
|
+
* Construction order follows dependency order:
|
|
16
|
+
* claims -> sources -> claimSources -> forks -> arguments.
|
|
17
|
+
*/
|
|
18
|
+
export class PropositCore {
|
|
19
|
+
claims;
|
|
20
|
+
sources;
|
|
21
|
+
claimSources;
|
|
22
|
+
forks;
|
|
23
|
+
arguments;
|
|
24
|
+
generateId;
|
|
25
|
+
constructor(options) {
|
|
26
|
+
this.generateId = options?.generateId ?? defaultGenerateId;
|
|
27
|
+
const checksumOpts = options?.checksumConfig
|
|
28
|
+
? { checksumConfig: options.checksumConfig }
|
|
29
|
+
: undefined;
|
|
30
|
+
// Dependency order: claims -> sources -> claimSources -> forks -> arguments
|
|
31
|
+
this.claims =
|
|
32
|
+
options?.claimLibrary ?? new ClaimLibrary(checksumOpts);
|
|
33
|
+
this.sources =
|
|
34
|
+
options?.sourceLibrary ?? new SourceLibrary(checksumOpts);
|
|
35
|
+
this.claimSources =
|
|
36
|
+
options?.claimSourceLibrary ??
|
|
37
|
+
new ClaimSourceLibrary(this.claims, this.sources, checksumOpts);
|
|
38
|
+
this.forks =
|
|
39
|
+
options?.forkLibrary ??
|
|
40
|
+
new ForkLibrary();
|
|
41
|
+
this.arguments =
|
|
42
|
+
options?.argumentLibrary ??
|
|
43
|
+
new ArgumentLibrary({
|
|
44
|
+
claimLibrary: this.claims,
|
|
45
|
+
sourceLibrary: this.sources,
|
|
46
|
+
claimSourceLibrary: this.claimSources,
|
|
47
|
+
}, {
|
|
48
|
+
checksumConfig: options?.checksumConfig,
|
|
49
|
+
positionConfig: options?.positionConfig,
|
|
50
|
+
grammarConfig: options?.grammarConfig,
|
|
51
|
+
generateId: this.generateId,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns a serializable snapshot of the entire PropositCore state,
|
|
56
|
+
* including all libraries.
|
|
57
|
+
*/
|
|
58
|
+
snapshot() {
|
|
59
|
+
return {
|
|
60
|
+
arguments: this.arguments.snapshot(),
|
|
61
|
+
claims: this.claims.snapshot(),
|
|
62
|
+
sources: this.sources.snapshot(),
|
|
63
|
+
claimSources: this.claimSources.snapshot(),
|
|
64
|
+
forks: this.forks.snapshot(),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Restores a `PropositCore` instance from a snapshot. Libraries are
|
|
69
|
+
* restored in dependency order: claims -> sources -> claimSources ->
|
|
70
|
+
* forks -> arguments.
|
|
71
|
+
*
|
|
72
|
+
* @param snapshot - The serialized PropositCore snapshot.
|
|
73
|
+
* @param config - Optional shared configuration for the restored instance.
|
|
74
|
+
* @returns A fully restored `PropositCore` instance.
|
|
75
|
+
*/
|
|
76
|
+
static fromSnapshot(snapshot, config) {
|
|
77
|
+
const checksumOpts = config?.checksumConfig
|
|
78
|
+
? { checksumConfig: config.checksumConfig }
|
|
79
|
+
: undefined;
|
|
80
|
+
// Dependency order: claims -> sources -> claimSources -> forks -> arguments
|
|
81
|
+
const claims = ClaimLibrary.fromSnapshot(snapshot.claims, checksumOpts);
|
|
82
|
+
const sources = SourceLibrary.fromSnapshot(snapshot.sources, checksumOpts);
|
|
83
|
+
const claimSources = ClaimSourceLibrary.fromSnapshot(snapshot.claimSources, claims, sources, checksumOpts);
|
|
84
|
+
const forks = ForkLibrary.fromSnapshot(snapshot.forks);
|
|
85
|
+
const restoredArguments = ArgumentLibrary.fromSnapshot(snapshot.arguments, {
|
|
86
|
+
claimLibrary: claims,
|
|
87
|
+
sourceLibrary: sources,
|
|
88
|
+
claimSourceLibrary: claimSources,
|
|
89
|
+
}, {
|
|
90
|
+
checksumConfig: config?.checksumConfig,
|
|
91
|
+
positionConfig: config?.positionConfig,
|
|
92
|
+
grammarConfig: config?.grammarConfig,
|
|
93
|
+
generateId: config?.generateId,
|
|
94
|
+
});
|
|
95
|
+
const core = new PropositCore({
|
|
96
|
+
claimLibrary: claims,
|
|
97
|
+
sourceLibrary: sources,
|
|
98
|
+
claimSourceLibrary: claimSources,
|
|
99
|
+
forkLibrary: forks,
|
|
100
|
+
argumentLibrary: restoredArguments,
|
|
101
|
+
});
|
|
102
|
+
core.generateId = config?.generateId ?? defaultGenerateId;
|
|
103
|
+
return core;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Runs invariant validation across all managed libraries and merges
|
|
107
|
+
* the results.
|
|
108
|
+
*
|
|
109
|
+
* @returns A combined validation result.
|
|
110
|
+
*/
|
|
111
|
+
validate() {
|
|
112
|
+
const violations = [
|
|
113
|
+
...this.claims.validate().violations,
|
|
114
|
+
...this.sources.validate().violations,
|
|
115
|
+
...this.claimSources.validate().violations,
|
|
116
|
+
...this.forks.validate().violations,
|
|
117
|
+
...this.arguments.validate().violations,
|
|
118
|
+
];
|
|
119
|
+
return { ok: violations.length === 0, violations };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Forks an argument, cloning its referenced claims, sources, and
|
|
123
|
+
* claim-source associations, then remaps variable claim references to
|
|
124
|
+
* point at the cloned claims. Creates fork records in all six
|
|
125
|
+
* namespaces.
|
|
126
|
+
*
|
|
127
|
+
* @param argumentId - The ID of the argument to fork.
|
|
128
|
+
* @param newArgumentId - The ID for the forked argument. Defaults to `this.generateId()`.
|
|
129
|
+
* @param options - Optional fork configuration and extras for fork records.
|
|
130
|
+
* @returns The forked engine, remap tables, and the argument fork record.
|
|
131
|
+
*/
|
|
132
|
+
forkArgument(argumentId, newArgumentId, options) {
|
|
133
|
+
// Step 1: Retrieve source engine
|
|
134
|
+
const engine = this.arguments.get(argumentId);
|
|
135
|
+
if (!engine) {
|
|
136
|
+
throw new Error(`Argument "${argumentId}" not found in ArgumentLibrary.`);
|
|
137
|
+
}
|
|
138
|
+
// Step 2: canFork guard
|
|
139
|
+
if (!engine.canFork()) {
|
|
140
|
+
throw new Error(`Forking argument "${argumentId}" is not allowed.`);
|
|
141
|
+
}
|
|
142
|
+
const sourceArg = engine.getArgument();
|
|
143
|
+
const resolvedNewArgumentId = newArgumentId ?? this.generateId();
|
|
144
|
+
const forkId = options?.forkId ?? this.generateId();
|
|
145
|
+
// Build expressionId → premiseId map from source engine snapshot
|
|
146
|
+
const sourceSnap = engine.snapshot();
|
|
147
|
+
const exprToPremiseMap = new Map();
|
|
148
|
+
for (const ps of sourceSnap.premises) {
|
|
149
|
+
for (const expr of ps.expressions.expressions) {
|
|
150
|
+
exprToPremiseMap.set(expr.id, ps.premise.id);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Step 3: Clone claims
|
|
154
|
+
const claimRemap = new Map();
|
|
155
|
+
const claimVersionMap = new Map();
|
|
156
|
+
const variables = engine.getVariables();
|
|
157
|
+
const uniqueClaimIds = new Set();
|
|
158
|
+
for (const v of variables) {
|
|
159
|
+
if (isClaimBound(v)) {
|
|
160
|
+
uniqueClaimIds.add(v.claimId);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
for (const originalClaimId of uniqueClaimIds) {
|
|
164
|
+
const currentClaim = this.claims.getCurrent(originalClaimId);
|
|
165
|
+
if (!currentClaim) {
|
|
166
|
+
throw new Error(`Claim "${originalClaimId}" not found in ClaimLibrary.`);
|
|
167
|
+
}
|
|
168
|
+
claimVersionMap.set(originalClaimId, currentClaim.version);
|
|
169
|
+
const newClaimId = this.generateId();
|
|
170
|
+
const { id: _id, version: _v, frozen: _f, checksum: _c, ...claimData } = currentClaim;
|
|
171
|
+
this.claims.create({
|
|
172
|
+
...claimData,
|
|
173
|
+
id: newClaimId,
|
|
174
|
+
});
|
|
175
|
+
claimRemap.set(originalClaimId, newClaimId);
|
|
176
|
+
}
|
|
177
|
+
// Step 4: Clone sources
|
|
178
|
+
const sourceRemap = new Map();
|
|
179
|
+
const sourceVersionMap = new Map();
|
|
180
|
+
const uniqueSourceIds = new Set();
|
|
181
|
+
for (const originalClaimId of uniqueClaimIds) {
|
|
182
|
+
const associations = this.claimSources.getForClaim(originalClaimId);
|
|
183
|
+
for (const assoc of associations) {
|
|
184
|
+
uniqueSourceIds.add(assoc.sourceId);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
for (const originalSourceId of uniqueSourceIds) {
|
|
188
|
+
const currentSource = this.sources.getCurrent(originalSourceId);
|
|
189
|
+
if (!currentSource) {
|
|
190
|
+
throw new Error(`Source "${originalSourceId}" not found in SourceLibrary.`);
|
|
191
|
+
}
|
|
192
|
+
sourceVersionMap.set(originalSourceId, currentSource.version);
|
|
193
|
+
const newSourceId = this.generateId();
|
|
194
|
+
const { id: _id, version: _v, frozen: _f, checksum: _c, ...sourceData } = currentSource;
|
|
195
|
+
this.sources.create({
|
|
196
|
+
...sourceData,
|
|
197
|
+
id: newSourceId,
|
|
198
|
+
});
|
|
199
|
+
sourceRemap.set(originalSourceId, newSourceId);
|
|
200
|
+
}
|
|
201
|
+
// Step 5: Clone associations
|
|
202
|
+
for (const originalClaimId of uniqueClaimIds) {
|
|
203
|
+
const associations = this.claimSources.getForClaim(originalClaimId);
|
|
204
|
+
for (const assoc of associations) {
|
|
205
|
+
const clonedClaimId = claimRemap.get(originalClaimId);
|
|
206
|
+
const clonedSourceId = sourceRemap.get(assoc.sourceId);
|
|
207
|
+
if (clonedSourceId) {
|
|
208
|
+
this.claimSources.add({
|
|
209
|
+
id: this.generateId(),
|
|
210
|
+
claimId: clonedClaimId,
|
|
211
|
+
claimVersion: 0,
|
|
212
|
+
sourceId: clonedSourceId,
|
|
213
|
+
sourceVersion: 0,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Step 6: Fork engine
|
|
219
|
+
const { engine: forkedEngine, remapTable } = forkArgumentEngine(engine, resolvedNewArgumentId, {
|
|
220
|
+
claimLibrary: this.claims,
|
|
221
|
+
sourceLibrary: this.sources,
|
|
222
|
+
claimSourceLibrary: this.claimSources,
|
|
223
|
+
}, {
|
|
224
|
+
...options,
|
|
225
|
+
generateId: options?.generateId ?? this.generateId,
|
|
226
|
+
});
|
|
227
|
+
// Step 7: Remap claim references
|
|
228
|
+
const snap = forkedEngine.snapshot();
|
|
229
|
+
snap.variables.variables = snap.variables.variables.map((v) => {
|
|
230
|
+
if (isClaimBound(v)) {
|
|
231
|
+
const clonedClaimId = claimRemap.get(v.claimId);
|
|
232
|
+
if (clonedClaimId) {
|
|
233
|
+
return {
|
|
234
|
+
...v,
|
|
235
|
+
claimId: clonedClaimId,
|
|
236
|
+
claimVersion: 0,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return v;
|
|
241
|
+
});
|
|
242
|
+
const finalEngine = ArgumentEngine.fromSnapshot(snap, this.claims, this.sources, this.claimSources, snap.config?.grammarConfig, "ignore", this.generateId);
|
|
243
|
+
// Step 8: Register engine
|
|
244
|
+
this.arguments.register(finalEngine);
|
|
245
|
+
// Step 9: Create fork records
|
|
246
|
+
// Argument fork record
|
|
247
|
+
const argumentFork = this.forks.arguments.create({
|
|
248
|
+
entityId: resolvedNewArgumentId,
|
|
249
|
+
forkedFromEntityId: sourceArg.id,
|
|
250
|
+
forkedFromArgumentId: sourceArg.id,
|
|
251
|
+
forkedFromArgumentVersion: sourceArg.version,
|
|
252
|
+
forkId,
|
|
253
|
+
...options?.argumentForkExtras,
|
|
254
|
+
});
|
|
255
|
+
// Premise fork records
|
|
256
|
+
for (const [oldPremiseId, newPremiseId] of remapTable.premises) {
|
|
257
|
+
this.forks.premises.create({
|
|
258
|
+
entityId: newPremiseId,
|
|
259
|
+
forkedFromEntityId: oldPremiseId,
|
|
260
|
+
forkedFromArgumentId: sourceArg.id,
|
|
261
|
+
forkedFromArgumentVersion: sourceArg.version,
|
|
262
|
+
forkId,
|
|
263
|
+
...options?.premiseForkExtras,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
// Expression fork records
|
|
267
|
+
for (const [oldExprId, newExprId] of remapTable.expressions) {
|
|
268
|
+
this.forks.expressions.create({
|
|
269
|
+
entityId: newExprId,
|
|
270
|
+
forkedFromEntityId: oldExprId,
|
|
271
|
+
forkedFromArgumentId: sourceArg.id,
|
|
272
|
+
forkedFromArgumentVersion: sourceArg.version,
|
|
273
|
+
forkId,
|
|
274
|
+
forkedFromPremiseId: exprToPremiseMap.get(oldExprId),
|
|
275
|
+
...options?.expressionForkExtras,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
// Variable fork records
|
|
279
|
+
for (const [oldVarId, newVarId] of remapTable.variables) {
|
|
280
|
+
this.forks.variables.create({
|
|
281
|
+
entityId: newVarId,
|
|
282
|
+
forkedFromEntityId: oldVarId,
|
|
283
|
+
forkedFromArgumentId: sourceArg.id,
|
|
284
|
+
forkedFromArgumentVersion: sourceArg.version,
|
|
285
|
+
forkId,
|
|
286
|
+
...options?.variableForkExtras,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
// Claim fork records
|
|
290
|
+
for (const [originalClaimId, clonedClaimId] of claimRemap) {
|
|
291
|
+
this.forks.claims.create({
|
|
292
|
+
entityId: clonedClaimId,
|
|
293
|
+
forkedFromEntityId: originalClaimId,
|
|
294
|
+
forkedFromArgumentId: sourceArg.id,
|
|
295
|
+
forkedFromArgumentVersion: sourceArg.version,
|
|
296
|
+
forkId,
|
|
297
|
+
forkedFromEntityVersion: claimVersionMap.get(originalClaimId),
|
|
298
|
+
...options?.claimForkExtras,
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
// Source fork records
|
|
302
|
+
for (const [originalSourceId, clonedSourceId] of sourceRemap) {
|
|
303
|
+
this.forks.sources.create({
|
|
304
|
+
entityId: clonedSourceId,
|
|
305
|
+
forkedFromEntityId: originalSourceId,
|
|
306
|
+
forkedFromArgumentId: sourceArg.id,
|
|
307
|
+
forkedFromArgumentVersion: sourceArg.version,
|
|
308
|
+
forkId,
|
|
309
|
+
forkedFromEntityVersion: sourceVersionMap.get(originalSourceId),
|
|
310
|
+
...options?.sourceForkExtras,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
// Step 10: Return
|
|
314
|
+
return {
|
|
315
|
+
engine: finalEngine,
|
|
316
|
+
remapTable,
|
|
317
|
+
claimRemap,
|
|
318
|
+
sourceRemap,
|
|
319
|
+
argumentFork,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Computes a structural diff between two arguments managed by this
|
|
324
|
+
* `PropositCore` instance. Automatically injects fork-aware entity
|
|
325
|
+
* matchers derived from the fork records stored in `this.forks`.
|
|
326
|
+
* Caller-provided matchers in `options` take precedence over the
|
|
327
|
+
* fork-aware defaults.
|
|
328
|
+
*
|
|
329
|
+
* @param argumentIdA - The ID of the "before" argument.
|
|
330
|
+
* @param argumentIdB - The ID of the "after" argument.
|
|
331
|
+
* @param options - Optional diff configuration and comparator overrides.
|
|
332
|
+
* @returns A structural diff between the two arguments.
|
|
333
|
+
*/
|
|
334
|
+
diffArguments(argumentIdA, argumentIdB, options) {
|
|
335
|
+
const engineA = this.arguments.get(argumentIdA);
|
|
336
|
+
if (!engineA) {
|
|
337
|
+
throw new Error(`Argument "${argumentIdA}" not found.`);
|
|
338
|
+
}
|
|
339
|
+
const engineB = this.arguments.get(argumentIdB);
|
|
340
|
+
if (!engineB) {
|
|
341
|
+
throw new Error(`Argument "${argumentIdB}" not found.`);
|
|
342
|
+
}
|
|
343
|
+
// Build fork-aware matchers from fork records
|
|
344
|
+
const forkPremiseMatcher = (a, b) => {
|
|
345
|
+
const record = this.forks.premises.get(b.id);
|
|
346
|
+
return record?.forkedFromEntityId === a.id;
|
|
347
|
+
};
|
|
348
|
+
const forkVariableMatcher = (a, b) => {
|
|
349
|
+
const record = this.forks.variables.get(b.id);
|
|
350
|
+
return record?.forkedFromEntityId === a.id;
|
|
351
|
+
};
|
|
352
|
+
const forkExpressionMatcher = (a, b) => {
|
|
353
|
+
const record = this.forks.expressions.get(b.id);
|
|
354
|
+
return record?.forkedFromEntityId === a.id;
|
|
355
|
+
};
|
|
356
|
+
// Caller-provided matchers override fork-aware matchers
|
|
357
|
+
return standaloneDiffArguments(engineA, engineB, {
|
|
358
|
+
...options,
|
|
359
|
+
premiseMatcher: options?.premiseMatcher ?? forkPremiseMatcher,
|
|
360
|
+
variableMatcher: options?.variableMatcher ?? forkVariableMatcher,
|
|
361
|
+
expressionMatcher: options?.expressionMatcher ?? forkExpressionMatcher,
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=proposit-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposit-core.js","sourceRoot":"","sources":["../../../src/lib/core/proposit-core.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* types, schemata, and the diff function.
|
|
4
4
|
*/
|
|
5
5
|
export * from "./schemata/index.js";
|
|
6
|
-
export { ArgumentEngine } from "./core/argument-engine.js";
|
|
6
|
+
export { ArgumentEngine, defaultGenerateId } from "./core/argument-engine.js";
|
|
7
7
|
export type { TLogicEngineOptions, TArgumentEngineSnapshot, } from "./core/argument-engine.js";
|
|
8
8
|
export { PremiseEngine } from "./core/premise-engine.js";
|
|
9
9
|
export type { TPremiseEngineSnapshot } from "./core/premise-engine.js";
|
|
@@ -13,7 +13,12 @@ export type { TVariableManagerSnapshot } from "./core/variable-manager.js";
|
|
|
13
13
|
export { ClaimLibrary } from "./core/claim-library.js";
|
|
14
14
|
export { SourceLibrary } from "./core/source-library.js";
|
|
15
15
|
export { ClaimSourceLibrary } from "./core/claim-source-library.js";
|
|
16
|
-
export {
|
|
16
|
+
export { ArgumentLibrary } from "./core/argument-library.js";
|
|
17
|
+
export type { TArgumentLibraryLibraries } from "./core/argument-library.js";
|
|
18
|
+
export { ForkNamespace } from "./core/fork-namespace.js";
|
|
19
|
+
export { ForkLibrary } from "./core/fork-library.js";
|
|
20
|
+
export { PropositCore } from "./core/proposit-core.js";
|
|
21
|
+
export type { TPropositCoreOptions } from "./core/proposit-core.js";
|
|
17
22
|
export * from "./types/evaluation.js";
|
|
18
23
|
export * from "./types/diff.js";
|
|
19
24
|
export * from "./types/mutation.js";
|
|
@@ -22,7 +27,7 @@ export type { TOrderedOperation } from "./utils/changeset.js";
|
|
|
22
27
|
export { createLookup, EMPTY_CLAIM_LOOKUP, EMPTY_SOURCE_LOOKUP, EMPTY_CLAIM_SOURCE_LOOKUP, } from "./utils/lookup.js";
|
|
23
28
|
export * from "./types/checksum.js";
|
|
24
29
|
export { computeHash, canonicalSerialize, entityChecksum, } from "./core/checksum.js";
|
|
25
|
-
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression,
|
|
30
|
+
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression, } from "./core/diff.js";
|
|
26
31
|
export * from "./types/relationships.js";
|
|
27
32
|
export { analyzePremiseRelationships, buildPremiseProfile, } from "./core/relationships.js";
|
|
28
33
|
export { DEFAULT_CHECKSUM_CONFIG, createChecksumConfig, normalizeChecksumConfig, serializeChecksumConfig, } from "./consts.js";
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7E,YAAY,EACR,mBAAmB,EACnB,uBAAuB,GAC1B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACtE,mBAAmB,4BAA4B,CAAA;AAC/C,YAAY,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAC9E,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACnE,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,GAC5B,MAAM,mBAAmB,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,cAAc,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,gBAAgB,CAAA;AACvB,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,GACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,YAAY,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,GACX,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA"}
|
package/dist/lib/index.js
CHANGED
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
* types, schemata, and the diff function.
|
|
4
4
|
*/
|
|
5
5
|
export * from "./schemata/index.js";
|
|
6
|
-
export { ArgumentEngine } from "./core/argument-engine.js";
|
|
6
|
+
export { ArgumentEngine, defaultGenerateId } from "./core/argument-engine.js";
|
|
7
7
|
export { PremiseEngine } from "./core/premise-engine.js";
|
|
8
8
|
export { ClaimLibrary } from "./core/claim-library.js";
|
|
9
9
|
export { SourceLibrary } from "./core/source-library.js";
|
|
10
10
|
export { ClaimSourceLibrary } from "./core/claim-source-library.js";
|
|
11
|
-
export {
|
|
11
|
+
export { ArgumentLibrary } from "./core/argument-library.js";
|
|
12
|
+
export { ForkNamespace } from "./core/fork-namespace.js";
|
|
13
|
+
export { ForkLibrary } from "./core/fork-library.js";
|
|
14
|
+
export { PropositCore } from "./core/proposit-core.js";
|
|
12
15
|
export * from "./types/evaluation.js";
|
|
13
16
|
export * from "./types/diff.js";
|
|
14
17
|
export * from "./types/mutation.js";
|
|
@@ -16,7 +19,7 @@ export { mergeChangesets, orderChangeset } from "./utils/changeset.js";
|
|
|
16
19
|
export { createLookup, EMPTY_CLAIM_LOOKUP, EMPTY_SOURCE_LOOKUP, EMPTY_CLAIM_SOURCE_LOOKUP, } from "./utils/lookup.js";
|
|
17
20
|
export * from "./types/checksum.js";
|
|
18
21
|
export { computeHash, canonicalSerialize, entityChecksum, } from "./core/checksum.js";
|
|
19
|
-
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression,
|
|
22
|
+
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression, } from "./core/diff.js";
|
|
20
23
|
export * from "./types/relationships.js";
|
|
21
24
|
export { analyzePremiseRelationships, buildPremiseProfile, } from "./core/relationships.js";
|
|
22
25
|
export { DEFAULT_CHECKSUM_CONFIG, createChecksumConfig, normalizeChecksumConfig, serializeChecksumConfig, } from "./consts.js";
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAK7E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEtE,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,GAC5B,MAAM,mBAAmB,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,cAAc,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,gBAAgB,CAAA;AACvB,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,GACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAOvD,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,GACX,MAAM,qBAAqB,CAAA;AAE5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument-parser.d.ts","sourceRoot":"","sources":["../../../src/lib/parsing/argument-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"argument-parser.d.ts","sourceRoot":"","sources":["../../../src/lib/parsing/argument-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,WAAW,EACX,UAAU,EACV,2BAA2B,EAC9B,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAGpE,OAAO,KAAK,EACR,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,eAAe,CAAA;AAEtB;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAC7B,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACpE,OAAO,SAAS,WAAW,GAAG,WAAW,EACzC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,2BAA2B,GAAG,2BAA2B,IACxE;IACA,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5E,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IAClC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC9C,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC7B,CAAA;AA2LD;;;;;GAKG;AACH,qBAAa,cAAc,CACvB,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACpE,OAAO,SAAS,WAAW,GAAG,WAAW,EACzC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,2BAA2B,GAAG,2BAA2B;IAExE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;gBAE9B,cAAc,CAAC,EAAE,OAAO;IAIpC;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB;IAKtD;;;;;;;;OAQG;IACI,KAAK,CACR,QAAQ,EAAE,uBAAuB,EACjC,OAAO,CAAC,EAAE,mBAAmB,GAC9B,qBAAqB,CACpB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,CACT;IAkSD,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlE,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpE,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItE,SAAS,CAAC,yBAAyB,CAC/B,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG7B"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
1
|
import { Value } from "typebox/value";
|
|
3
2
|
import { parseFormula } from "../core/parser/formula.js";
|
|
4
3
|
import { POSITION_INITIAL } from "../utils/position.js";
|
|
5
|
-
import { ArgumentEngine } from "../core/argument-engine.js";
|
|
4
|
+
import { ArgumentEngine, defaultGenerateId } from "../core/argument-engine.js";
|
|
6
5
|
import { ClaimLibrary } from "../core/claim-library.js";
|
|
7
6
|
import { SourceLibrary } from "../core/source-library.js";
|
|
8
7
|
import { ClaimSourceLibrary } from "../core/claim-source-library.js";
|
|
9
8
|
import { ParsedArgumentResponseSchema } from "./schemata.js";
|
|
9
|
+
import { clampMaxLengths } from "./clamp-max-lengths.js";
|
|
10
10
|
// ---------------------------------------------------------------------------
|
|
11
11
|
// Internal helpers — reused from src/cli/import.ts patterns
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
@@ -61,8 +61,8 @@ function collectVariableNames(ast, names) {
|
|
|
61
61
|
/**
|
|
62
62
|
* Converts a formula AST into expression objects and adds them to a premise.
|
|
63
63
|
*/
|
|
64
|
-
function buildExpressions(ast, parentId, position, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression) {
|
|
65
|
-
const id =
|
|
64
|
+
function buildExpressions(ast, parentId, position, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression, generateId) {
|
|
65
|
+
const id = generateId();
|
|
66
66
|
switch (ast.type) {
|
|
67
67
|
case "variable": {
|
|
68
68
|
const variable = variablesBySymbol.get(ast.name);
|
|
@@ -89,7 +89,7 @@ function buildExpressions(ast, parentId, position, argumentId, argumentVersion,
|
|
|
89
89
|
parentId,
|
|
90
90
|
position,
|
|
91
91
|
});
|
|
92
|
-
buildExpressions(ast.operand, id, 0, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression);
|
|
92
|
+
buildExpressions(ast.operand, id, 0, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression, generateId);
|
|
93
93
|
return id;
|
|
94
94
|
}
|
|
95
95
|
case "and":
|
|
@@ -105,7 +105,7 @@ function buildExpressions(ast, parentId, position, argumentId, argumentVersion,
|
|
|
105
105
|
position,
|
|
106
106
|
});
|
|
107
107
|
for (let i = 0; i < ast.operands.length; i++) {
|
|
108
|
-
buildExpressions(ast.operands[i], id, i, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression);
|
|
108
|
+
buildExpressions(ast.operands[i], id, i, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression, generateId);
|
|
109
109
|
}
|
|
110
110
|
return id;
|
|
111
111
|
}
|
|
@@ -121,8 +121,8 @@ function buildExpressions(ast, parentId, position, argumentId, argumentVersion,
|
|
|
121
121
|
parentId,
|
|
122
122
|
position,
|
|
123
123
|
});
|
|
124
|
-
buildExpressions(ast.left, id, 0, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression);
|
|
125
|
-
buildExpressions(ast.right, id, 1, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression);
|
|
124
|
+
buildExpressions(ast.left, id, 0, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression, generateId);
|
|
125
|
+
buildExpressions(ast.right, id, 1, argumentId, argumentVersion, premiseId, variablesBySymbol, addExpression, generateId);
|
|
126
126
|
return id;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
@@ -145,6 +145,7 @@ export class ArgumentParser {
|
|
|
145
145
|
* Validate raw LLM output against the response schema.
|
|
146
146
|
*/
|
|
147
147
|
validate(raw) {
|
|
148
|
+
clampMaxLengths(this.responseSchema, raw);
|
|
148
149
|
return Value.Parse(this.responseSchema, raw);
|
|
149
150
|
}
|
|
150
151
|
/**
|
|
@@ -159,6 +160,7 @@ export class ArgumentParser {
|
|
|
159
160
|
build(response, options) {
|
|
160
161
|
const warnings = [];
|
|
161
162
|
const strict = options?.strict ?? true;
|
|
163
|
+
const genId = options?.generateId ?? defaultGenerateId;
|
|
162
164
|
const arg = response.argument;
|
|
163
165
|
if (!arg) {
|
|
164
166
|
throw new Error("Cannot build: argument is null.");
|
|
@@ -208,7 +210,7 @@ export class ArgumentParser {
|
|
|
208
210
|
parsedFormulas.push({ ast, premise });
|
|
209
211
|
}
|
|
210
212
|
// 2. Create argument
|
|
211
|
-
const argumentId =
|
|
213
|
+
const argumentId = genId();
|
|
212
214
|
const argumentVersion = 0;
|
|
213
215
|
const argumentExtras = this.mapArgument(arg);
|
|
214
216
|
const argument = {
|
|
@@ -221,7 +223,7 @@ export class ArgumentParser {
|
|
|
221
223
|
const claimMiniIdToId = new Map();
|
|
222
224
|
for (const parsedClaim of arg.claims) {
|
|
223
225
|
const extras = this.mapClaim(parsedClaim);
|
|
224
|
-
const claimId =
|
|
226
|
+
const claimId = genId();
|
|
225
227
|
const claim = claimLibrary.create({
|
|
226
228
|
...extras,
|
|
227
229
|
id: claimId,
|
|
@@ -236,7 +238,7 @@ export class ArgumentParser {
|
|
|
236
238
|
const sourceMiniIdToId = new Map();
|
|
237
239
|
for (const parsedSource of arg.sources) {
|
|
238
240
|
const extras = this.mapSource(parsedSource);
|
|
239
|
-
const sourceId =
|
|
241
|
+
const sourceId = genId();
|
|
240
242
|
const source = sourceLibrary.create({
|
|
241
243
|
...extras,
|
|
242
244
|
id: sourceId,
|
|
@@ -269,7 +271,7 @@ export class ArgumentParser {
|
|
|
269
271
|
const extras = this.mapClaimSourceAssociation(parsedClaim, claimRef.id, sourceRef.id);
|
|
270
272
|
claimSourceLibrary.add({
|
|
271
273
|
...extras,
|
|
272
|
-
id:
|
|
274
|
+
id: genId(),
|
|
273
275
|
claimId: claimRef.id,
|
|
274
276
|
claimVersion: claimRef.version,
|
|
275
277
|
sourceId: sourceRef.id,
|
|
@@ -283,6 +285,7 @@ export class ArgumentParser {
|
|
|
283
285
|
enforceFormulaBetweenOperators: true,
|
|
284
286
|
autoNormalize: true,
|
|
285
287
|
},
|
|
288
|
+
generateId: genId,
|
|
286
289
|
});
|
|
287
290
|
// 7. Create variables — resolve claimMiniId to real claim UUID
|
|
288
291
|
const variablesBySymbol = new Map();
|
|
@@ -306,7 +309,7 @@ export class ArgumentParser {
|
|
|
306
309
|
const extras = this.mapVariable(parsedVar);
|
|
307
310
|
const variable = {
|
|
308
311
|
...extras,
|
|
309
|
-
id:
|
|
312
|
+
id: genId(),
|
|
310
313
|
argumentId,
|
|
311
314
|
argumentVersion,
|
|
312
315
|
symbol: parsedVar.symbol,
|
|
@@ -348,7 +351,7 @@ export class ArgumentParser {
|
|
|
348
351
|
const extras = this.mapPremise(parsedPremise);
|
|
349
352
|
const { result: pm } = engine.createPremise(extras);
|
|
350
353
|
premiseMiniIdToId.set(parsedPremise.miniId, pm.getId());
|
|
351
|
-
buildExpressions(ast, null, POSITION_INITIAL, argumentId, argumentVersion, pm.getId(), variablesBySymbol, (expr) => pm.addExpression(expr));
|
|
354
|
+
buildExpressions(ast, null, POSITION_INITIAL, argumentId, argumentVersion, pm.getId(), variablesBySymbol, (expr) => pm.addExpression(expr), genId);
|
|
352
355
|
}
|
|
353
356
|
// 9. Set conclusion
|
|
354
357
|
const conclusionId = premiseMiniIdToId.get(arg.conclusionPremiseMiniId);
|