@polintpro/proposit-core 0.7.3 → 0.8.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 +64 -20
- package/dist/extensions/basics/schemata.d.ts +0 -5
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +2 -21
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +1 -14
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +0 -128
- 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/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 +30 -0
- package/dist/lib/core/fork.d.ts.map +1 -0
- package/dist/lib/core/fork.js +125 -0
- package/dist/lib/core/fork.js.map +1 -0
- 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 +61 -0
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +110 -0
- package/dist/lib/core/proposit-core.d.ts.map +1 -0
- package/dist/lib/core/proposit-core.js +357 -0
- package/dist/lib/core/proposit-core.js.map +1 -0
- package/dist/lib/index.d.ts +11 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +8 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/argument.d.ts +0 -2
- package/dist/lib/schemata/argument.d.ts.map +1 -1
- package/dist/lib/schemata/argument.js +0 -6
- package/dist/lib/schemata/argument.js.map +1 -1
- package/dist/lib/schemata/fork.d.ts +76 -0
- package/dist/lib/schemata/fork.d.ts.map +1 -0
- package/dist/lib/schemata/fork.js +55 -0
- package/dist/lib/schemata/fork.js.map +1 -0
- package/dist/lib/schemata/index.d.ts +1 -0
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +1 -0
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/schemata/propositional.d.ts +0 -39
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +0 -30
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/types/fork.d.ts +0 -7
- package/dist/lib/types/fork.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +2 -1
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +2 -0
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/changeset.d.ts +124 -0
- package/dist/lib/utils/changeset.d.ts.map +1 -0
- package/dist/lib/utils/changeset.js +221 -0
- package/dist/lib/utils/changeset.js.map +1 -0
- package/dist/lib/utils/lookup.d.ts +47 -0
- package/dist/lib/utils/lookup.d.ts.map +1 -0
- package/dist/lib/utils/lookup.js +62 -0
- package/dist/lib/utils/lookup.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -160,6 +160,43 @@ flowchart TD
|
|
|
160
160
|
style note3 fill:none,stroke:none
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
+
### PropositCore
|
|
164
|
+
|
|
165
|
+
`PropositCore` is the recommended top-level entry point. It creates and wires together all five libraries and provides unified cross-library operations:
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
import { PropositCore } from "@polintpro/proposit-core"
|
|
169
|
+
|
|
170
|
+
const core = new PropositCore()
|
|
171
|
+
|
|
172
|
+
// Create a claim in the global claim library
|
|
173
|
+
const claim = core.claims.create({ id: "claim-1", text: "All men are mortal" })
|
|
174
|
+
|
|
175
|
+
// Create an argument engine — libraries are wired automatically
|
|
176
|
+
const engine = core.arguments.create({
|
|
177
|
+
id: "arg-1",
|
|
178
|
+
version: 0,
|
|
179
|
+
title: "Socrates is mortal",
|
|
180
|
+
description: "",
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
// Fork the argument — clones claims/sources, records provenance
|
|
184
|
+
const { engine: forked, remapTable } = core.forkArgument("arg-1", "arg-2")
|
|
185
|
+
|
|
186
|
+
// Diff with automatic fork-aware entity matching
|
|
187
|
+
const diff = core.diffArguments("arg-1", "arg-2")
|
|
188
|
+
|
|
189
|
+
// Snapshot the entire system state
|
|
190
|
+
const snapshot = core.snapshot()
|
|
191
|
+
const restored = PropositCore.fromSnapshot(snapshot)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
`PropositCore` is designed for subclassing. All library fields (`claims`, `sources`, `claimSources`, `forks`, `arguments`) are public and readable. Pass pre-constructed library instances via `TPropositCoreOptions` to inject custom implementations.
|
|
195
|
+
|
|
196
|
+
### No application metadata
|
|
197
|
+
|
|
198
|
+
The core library does not deal in user IDs, timestamps, or display text. These are application-level concerns. The CLI adds some metadata (e.g., `createdAt`, `publishedAt`) for its own purposes, but the core schemas are intentionally minimal. Applications extend core entity types via generic parameters.
|
|
199
|
+
|
|
163
200
|
### Sources
|
|
164
201
|
|
|
165
202
|
A **source** is an evidentiary reference (paper, article, URL). Source entities live in a global `SourceLibrary` with versioning and freeze semantics (same as `ClaimLibrary`).
|
|
@@ -176,17 +213,19 @@ The auto-created variable gets a symbol from an optional `symbol` parameter, or
|
|
|
176
213
|
|
|
177
214
|
### Argument forking
|
|
178
215
|
|
|
179
|
-
An argument can be **forked** via `forkArgument()` to create an independent copy — useful for responding to, critiquing, or expanding on another author's argument. Forking:
|
|
216
|
+
An argument can be **forked** via `PropositCore.forkArgument()` to create an independent copy — useful for responding to, critiquing, or expanding on another author's argument. Forking:
|
|
180
217
|
|
|
181
218
|
- Creates a new argument with a new ID (version 0)
|
|
182
219
|
- Assigns new UUIDs to all premises, expressions, and variables
|
|
183
|
-
-
|
|
184
|
-
-
|
|
185
|
-
-
|
|
220
|
+
- Clones all referenced claims and sources (including their claim-source associations)
|
|
221
|
+
- Creates fork records in all six `ForkLibrary` namespaces (arguments, premises, expressions, variables, claims, sources)
|
|
222
|
+
- Remaps all internal references (expression parent chains, variable bindings, conclusion role, claim references)
|
|
223
|
+
- Registers the new engine in `ArgumentLibrary`
|
|
224
|
+
- Returns the new engine, a remap table, claim/source remap maps, and the argument fork record
|
|
186
225
|
|
|
187
|
-
The forked argument is fully independent — mutations don't affect the source.
|
|
226
|
+
The forked argument is fully independent — mutations don't affect the source. Fork-aware diffing is automatic via `PropositCore.diffArguments()`, which uses `ForkLibrary` records as entity matchers rather than ID-based pairing.
|
|
188
227
|
|
|
189
|
-
Subclasses can override the
|
|
228
|
+
Subclasses can override the public `canFork()` method to restrict which arguments may be forked (e.g., only published versions). For low-level forking without orchestration, use the standalone `forkArgumentEngine()` function.
|
|
190
229
|
|
|
191
230
|
### Cross-argument variable binding
|
|
192
231
|
|
|
@@ -554,11 +593,23 @@ console.log(premise1.toDisplayString()) // (P → Q)
|
|
|
554
593
|
|
|
555
594
|
```typescript
|
|
556
595
|
// Fork John's argument to create Rich's response
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
596
|
+
import { PropositCore } from "@polintpro/proposit-core"
|
|
597
|
+
|
|
598
|
+
const core = new PropositCore()
|
|
599
|
+
|
|
600
|
+
// Create John's argument (engine registered in core.arguments)
|
|
601
|
+
const johnEngine = core.arguments.create({
|
|
602
|
+
id: "john-arg-id",
|
|
603
|
+
version: 1,
|
|
604
|
+
title: "John's argument",
|
|
605
|
+
description: "",
|
|
606
|
+
})
|
|
607
|
+
// ... populate with premises, variables, expressions ...
|
|
608
|
+
|
|
609
|
+
// Fork — clones claims/sources, creates fork records, registers new engine
|
|
610
|
+
const { engine: richArg, remapTable } = core.forkArgument(
|
|
611
|
+
"john-arg-id",
|
|
612
|
+
"rich-arg-id"
|
|
562
613
|
)
|
|
563
614
|
|
|
564
615
|
// Rich now has a mutable copy — modify, add, or remove premises
|
|
@@ -566,15 +617,8 @@ const forkedPremiseId = remapTable.premises.get(originalPremiseId)!
|
|
|
566
617
|
richArg.removePremise(forkedPremiseId) // reject a premise
|
|
567
618
|
richArg.createPremise(undefined, "RichNewPremise") // add a new one
|
|
568
619
|
|
|
569
|
-
// See what Rich changed relative to John's original
|
|
570
|
-
|
|
571
|
-
diffArguments,
|
|
572
|
-
createForkedFromMatcher,
|
|
573
|
-
} from "@polintpro/proposit-core"
|
|
574
|
-
|
|
575
|
-
const diff = diffArguments(johnEngine, richArg, {
|
|
576
|
-
...createForkedFromMatcher(),
|
|
577
|
-
})
|
|
620
|
+
// See what Rich changed relative to John's original (fork-aware matching is automatic)
|
|
621
|
+
const diff = core.diffArguments("john-arg-id", "rich-arg-id")
|
|
578
622
|
// diff.premises.removed — premises Rich rejected
|
|
579
623
|
// diff.premises.added — premises Rich introduced
|
|
580
624
|
// diff.premises.modified — premises Rich altered
|
|
@@ -5,8 +5,6 @@ export declare const BasicsArgumentSchema: Type.TIntersect<[Type.TObject<{
|
|
|
5
5
|
checksum: Type.TString;
|
|
6
6
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
7
7
|
combinedChecksum: Type.TString;
|
|
8
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
9
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
10
8
|
}>, Type.TObject<{
|
|
11
9
|
title: Type.TString;
|
|
12
10
|
description: Type.TOptional<Type.TString>;
|
|
@@ -29,9 +27,6 @@ export declare const BasicsPremiseSchema: Type.TIntersect<[Type.TObject<{
|
|
|
29
27
|
checksum: Type.TString;
|
|
30
28
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
31
29
|
combinedChecksum: Type.TString;
|
|
32
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
33
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
34
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
35
30
|
}>, Type.TObject<{
|
|
36
31
|
title: Type.TString;
|
|
37
32
|
}>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../../../src/extensions/basics/schemata.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../../../src/extensions/basics/schemata.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,oBAAoB;;;;;;;;;IAM/B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,iBAAiB;;;;;;;;IAM5B,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,mBAAmB;;;;;;;;;IAK9B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AA4B/D,eAAO,MAAM,mBAAmB,cAI9B,CAAA"}
|
package/dist/lib/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,mBAAmB,CAmCjE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACxC,mBAAmB,GAAG,SAAS,CAwBjC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAmBtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,mBAAmB,GAChC,mBAAmB,CAkBrB"}
|
package/dist/lib/consts.js
CHANGED
|
@@ -9,10 +9,6 @@ export const DEFAULT_CHECKSUM_CONFIG = {
|
|
|
9
9
|
"premiseId",
|
|
10
10
|
"variableId",
|
|
11
11
|
"operator",
|
|
12
|
-
"forkedFromExpressionId",
|
|
13
|
-
"forkedFromPremiseId",
|
|
14
|
-
"forkedFromArgumentId",
|
|
15
|
-
"forkedFromArgumentVersion",
|
|
16
12
|
]),
|
|
17
13
|
variableFields: new Set([
|
|
18
14
|
"id",
|
|
@@ -24,24 +20,9 @@ export const DEFAULT_CHECKSUM_CONFIG = {
|
|
|
24
20
|
"boundPremiseId",
|
|
25
21
|
"boundArgumentId",
|
|
26
22
|
"boundArgumentVersion",
|
|
27
|
-
"forkedFromVariableId",
|
|
28
|
-
"forkedFromArgumentId",
|
|
29
|
-
"forkedFromArgumentVersion",
|
|
30
|
-
]),
|
|
31
|
-
premiseFields: new Set([
|
|
32
|
-
"id",
|
|
33
|
-
"argumentId",
|
|
34
|
-
"argumentVersion",
|
|
35
|
-
"forkedFromPremiseId",
|
|
36
|
-
"forkedFromArgumentId",
|
|
37
|
-
"forkedFromArgumentVersion",
|
|
38
|
-
]),
|
|
39
|
-
argumentFields: new Set([
|
|
40
|
-
"id",
|
|
41
|
-
"version",
|
|
42
|
-
"forkedFromArgumentId",
|
|
43
|
-
"forkedFromArgumentVersion",
|
|
44
23
|
]),
|
|
24
|
+
premiseFields: new Set(["id", "argumentId", "argumentVersion"]),
|
|
25
|
+
argumentFields: new Set(["id", "version"]),
|
|
45
26
|
roleFields: new Set(["conclusionPremiseId"]),
|
|
46
27
|
claimFields: new Set(["id", "version"]),
|
|
47
28
|
sourceFields: new Set(["id", "version"]),
|
package/dist/lib/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAkC;IAClE,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACtB,IAAI;QACJ,MAAM;QACN,UAAU;QACV,UAAU;QACV,YAAY;QACZ,iBAAiB;QACjB,WAAW;QACX,YAAY;QACZ,UAAU;
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type TClaimBoundVariable, type TPremiseBoundVariable, type TCoreArgument, type TCoreClaim, type TCoreClaimSourceAssociation, type TCorePremise, type TCorePropositionalExpression, type TCorePropositionalVariable, type TOptionalChecksum, type TCoreSource } from "../schemata/index.js";
|
|
2
2
|
import type { TCoreArgumentEvaluationOptions, TCoreArgumentEvaluationResult, TCoreArgumentRoleState, TCoreExpressionAssignment, TCoreValidationResult, TCoreValidityCheckOptions, TCoreValidityCheckResult } from "../types/evaluation.js";
|
|
3
3
|
import type { TCoreChecksumConfig } from "../types/checksum.js";
|
|
4
|
-
import type { TForkArgumentOptions, TForkArgumentResult } from "../types/fork.js";
|
|
5
4
|
import { type TGrammarConfig } from "../types/grammar.js";
|
|
6
5
|
import type { TCorePositionConfig } from "../utils/position.js";
|
|
7
6
|
import type { TInvariantValidationResult } from "../types/validation.js";
|
|
@@ -169,23 +168,11 @@ export declare class ArgumentEngine<TArg extends TCoreArgument = TCoreArgument,
|
|
|
169
168
|
* Override point for subclasses to prevent forking. When this returns
|
|
170
169
|
* `false`, `forkArgument` will throw.
|
|
171
170
|
*/
|
|
172
|
-
|
|
171
|
+
canFork(): boolean;
|
|
173
172
|
/**
|
|
174
173
|
* Override point for subclasses to restrict cross-argument bindings.
|
|
175
174
|
* When this returns `false`, `bindVariableToExternalPremise` will throw.
|
|
176
175
|
*/
|
|
177
176
|
protected canBind(_boundArgumentId: string, _boundArgumentVersion: number): boolean;
|
|
178
|
-
/**
|
|
179
|
-
* Creates an independent copy of this argument under a new argument ID.
|
|
180
|
-
*
|
|
181
|
-
* Every premise, expression, and variable receives a fresh ID (via
|
|
182
|
-
* `options.generateId`, defaulting to `crypto.randomUUID`). All internal
|
|
183
|
-
* cross-references are remapped to the new IDs. Each forked entity carries
|
|
184
|
-
* `forkedFrom*` metadata pointing back to the originals.
|
|
185
|
-
*
|
|
186
|
-
* The returned engine is fully independent — mutations on either the
|
|
187
|
-
* source or the fork do not affect the other.
|
|
188
|
-
*/
|
|
189
|
-
forkArgument(newArgumentId: string, claimLibrary: TClaimLookup<TClaim>, sourceLibrary: TSourceLookup<TSource>, claimSourceLibrary: TClaimSourceLookup<TAssoc>, options?: TForkArgumentOptions): TForkArgumentResult<TArg, TPremise, TExpr, TVar>;
|
|
190
177
|
}
|
|
191
178
|
//# sourceMappingURL=argument-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/argument-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAIH,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,2BAA2B,EAChC,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACR,8BAA8B,EAC9B,6BAA6B,EAC7B,sBAAsB,EAEtB,yBAAyB,EAIzB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"argument-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/argument-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1764,133 +1764,5 @@ export class ArgumentEngine {
|
|
|
1764
1764
|
canBind(_boundArgumentId, _boundArgumentVersion) {
|
|
1765
1765
|
return true;
|
|
1766
1766
|
}
|
|
1767
|
-
/**
|
|
1768
|
-
* Creates an independent copy of this argument under a new argument ID.
|
|
1769
|
-
*
|
|
1770
|
-
* Every premise, expression, and variable receives a fresh ID (via
|
|
1771
|
-
* `options.generateId`, defaulting to `crypto.randomUUID`). All internal
|
|
1772
|
-
* cross-references are remapped to the new IDs. Each forked entity carries
|
|
1773
|
-
* `forkedFrom*` metadata pointing back to the originals.
|
|
1774
|
-
*
|
|
1775
|
-
* The returned engine is fully independent — mutations on either the
|
|
1776
|
-
* source or the fork do not affect the other.
|
|
1777
|
-
*/
|
|
1778
|
-
forkArgument(newArgumentId, claimLibrary, sourceLibrary, claimSourceLibrary, options) {
|
|
1779
|
-
// 1. Guard
|
|
1780
|
-
if (!this.canFork()) {
|
|
1781
|
-
throw new Error("Forking is not allowed for this engine.");
|
|
1782
|
-
}
|
|
1783
|
-
const generateId = options?.generateId ?? randomUUID;
|
|
1784
|
-
// 2. Snapshot the current engine state
|
|
1785
|
-
const snap = this.snapshot();
|
|
1786
|
-
const originalArgumentId = snap.argument.id;
|
|
1787
|
-
const originalArgumentVersion = snap.argument.version;
|
|
1788
|
-
// 3. Build remap tables (old ID → new ID)
|
|
1789
|
-
const premiseRemap = new Map();
|
|
1790
|
-
const expressionRemap = new Map();
|
|
1791
|
-
const variableRemap = new Map();
|
|
1792
|
-
for (const ps of snap.premises) {
|
|
1793
|
-
premiseRemap.set(ps.premise.id, generateId());
|
|
1794
|
-
for (const expr of ps.expressions.expressions) {
|
|
1795
|
-
expressionRemap.set(expr.id, generateId());
|
|
1796
|
-
}
|
|
1797
|
-
}
|
|
1798
|
-
for (const v of snap.variables.variables) {
|
|
1799
|
-
variableRemap.set(v.id, generateId());
|
|
1800
|
-
}
|
|
1801
|
-
const remapTable = {
|
|
1802
|
-
argumentId: { from: originalArgumentId, to: newArgumentId },
|
|
1803
|
-
premises: premiseRemap,
|
|
1804
|
-
expressions: expressionRemap,
|
|
1805
|
-
variables: variableRemap,
|
|
1806
|
-
};
|
|
1807
|
-
// 4. Remap the argument entity
|
|
1808
|
-
snap.argument = {
|
|
1809
|
-
...snap.argument,
|
|
1810
|
-
id: newArgumentId,
|
|
1811
|
-
version: 0,
|
|
1812
|
-
forkedFromArgumentId: originalArgumentId,
|
|
1813
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
1814
|
-
};
|
|
1815
|
-
// 5. Remap premises and their expressions
|
|
1816
|
-
for (const ps of snap.premises) {
|
|
1817
|
-
const originalPremiseId = ps.premise.id;
|
|
1818
|
-
const newPremiseId = premiseRemap.get(originalPremiseId);
|
|
1819
|
-
ps.premise = {
|
|
1820
|
-
...ps.premise,
|
|
1821
|
-
id: newPremiseId,
|
|
1822
|
-
argumentId: newArgumentId,
|
|
1823
|
-
argumentVersion: 0,
|
|
1824
|
-
forkedFromPremiseId: originalPremiseId,
|
|
1825
|
-
forkedFromArgumentId: originalArgumentId,
|
|
1826
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
1827
|
-
};
|
|
1828
|
-
// Remap rootExpressionId
|
|
1829
|
-
if (ps.rootExpressionId) {
|
|
1830
|
-
ps.rootExpressionId = expressionRemap.get(ps.rootExpressionId);
|
|
1831
|
-
}
|
|
1832
|
-
// Remap each expression
|
|
1833
|
-
ps.expressions.expressions = ps.expressions.expressions.map((expr) => {
|
|
1834
|
-
const originalExprId = expr.id;
|
|
1835
|
-
const newExprId = expressionRemap.get(originalExprId);
|
|
1836
|
-
const remapped = {
|
|
1837
|
-
...expr,
|
|
1838
|
-
id: newExprId,
|
|
1839
|
-
argumentId: newArgumentId,
|
|
1840
|
-
argumentVersion: 0,
|
|
1841
|
-
premiseId: newPremiseId,
|
|
1842
|
-
parentId: expr.parentId
|
|
1843
|
-
? (expressionRemap.get(expr.parentId) ?? null)
|
|
1844
|
-
: null,
|
|
1845
|
-
forkedFromExpressionId: originalExprId,
|
|
1846
|
-
forkedFromPremiseId: originalPremiseId,
|
|
1847
|
-
forkedFromArgumentId: originalArgumentId,
|
|
1848
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
1849
|
-
};
|
|
1850
|
-
// Remap variableId on variable-type expressions
|
|
1851
|
-
if (remapped.type === "variable" &&
|
|
1852
|
-
"variableId" in remapped) {
|
|
1853
|
-
const origVarId = remapped.variableId;
|
|
1854
|
-
remapped.variableId = variableRemap.get(origVarId);
|
|
1855
|
-
}
|
|
1856
|
-
return remapped;
|
|
1857
|
-
});
|
|
1858
|
-
}
|
|
1859
|
-
// 6. Remap variables
|
|
1860
|
-
snap.variables.variables = snap.variables.variables.map((v) => {
|
|
1861
|
-
const originalVarId = v.id;
|
|
1862
|
-
const newVarId = variableRemap.get(originalVarId);
|
|
1863
|
-
const remapped = {
|
|
1864
|
-
...v,
|
|
1865
|
-
id: newVarId,
|
|
1866
|
-
argumentId: newArgumentId,
|
|
1867
|
-
argumentVersion: 0,
|
|
1868
|
-
forkedFromVariableId: originalVarId,
|
|
1869
|
-
forkedFromArgumentId: originalArgumentId,
|
|
1870
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
1871
|
-
};
|
|
1872
|
-
// Remap premise-bound variable references
|
|
1873
|
-
if (isPremiseBound(remapped)) {
|
|
1874
|
-
const premiseBound = remapped;
|
|
1875
|
-
premiseBound.boundPremiseId = premiseRemap.get(premiseBound.boundPremiseId);
|
|
1876
|
-
premiseBound.boundArgumentId = newArgumentId;
|
|
1877
|
-
premiseBound.boundArgumentVersion = 0;
|
|
1878
|
-
}
|
|
1879
|
-
return remapped;
|
|
1880
|
-
});
|
|
1881
|
-
// 7. Remap conclusion role
|
|
1882
|
-
if (snap.conclusionPremiseId) {
|
|
1883
|
-
snap.conclusionPremiseId = premiseRemap.get(snap.conclusionPremiseId);
|
|
1884
|
-
}
|
|
1885
|
-
// 8. Carry config from options or source engine
|
|
1886
|
-
snap.config = {
|
|
1887
|
-
checksumConfig: serializeChecksumConfig(options?.checksumConfig ?? this.checksumConfig),
|
|
1888
|
-
positionConfig: options?.positionConfig ?? this.positionConfig,
|
|
1889
|
-
grammarConfig: options?.grammarConfig ?? this.grammarConfig,
|
|
1890
|
-
};
|
|
1891
|
-
// 9. Construct the new engine from the remapped snapshot
|
|
1892
|
-
const engine = ArgumentEngine.fromSnapshot(snap, claimLibrary, sourceLibrary, claimSourceLibrary, options?.grammarConfig ?? this.grammarConfig, "ignore");
|
|
1893
|
-
return { engine, remapTable };
|
|
1894
|
-
}
|
|
1895
1767
|
}
|
|
1896
1768
|
//# sourceMappingURL=argument-engine.js.map
|