@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,86 @@
|
|
|
1
|
+
import { Value } from "typebox/value";
|
|
2
|
+
import { CoreEntityForkRecordSchema } from "../schemata/fork.js";
|
|
3
|
+
import { FORK_RECORD_SCHEMA_INVALID } from "../types/validation.js";
|
|
4
|
+
import { InvariantViolationError } from "./invariant-violation-error.js";
|
|
5
|
+
export class ForkNamespace {
|
|
6
|
+
records;
|
|
7
|
+
schema;
|
|
8
|
+
constructor(schema = CoreEntityForkRecordSchema) {
|
|
9
|
+
this.records = new Map();
|
|
10
|
+
this.schema = schema;
|
|
11
|
+
}
|
|
12
|
+
restoreFromRecords(records) {
|
|
13
|
+
this.records = new Map(records);
|
|
14
|
+
}
|
|
15
|
+
withValidation(fn) {
|
|
16
|
+
const snap = new Map(this.records);
|
|
17
|
+
try {
|
|
18
|
+
const result = fn();
|
|
19
|
+
const validation = this.validate();
|
|
20
|
+
if (!validation.ok) {
|
|
21
|
+
this.restoreFromRecords(snap);
|
|
22
|
+
throw new InvariantViolationError(validation.violations);
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
if (!(e instanceof InvariantViolationError)) {
|
|
28
|
+
this.restoreFromRecords(snap);
|
|
29
|
+
}
|
|
30
|
+
throw e;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
create(record) {
|
|
34
|
+
return this.withValidation(() => {
|
|
35
|
+
if (this.records.has(record.entityId)) {
|
|
36
|
+
throw new Error(`ForkRecord with entityId "${record.entityId}" already exists.`);
|
|
37
|
+
}
|
|
38
|
+
this.records.set(record.entityId, record);
|
|
39
|
+
return record;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
get(entityId) {
|
|
43
|
+
return this.records.get(entityId);
|
|
44
|
+
}
|
|
45
|
+
getAll() {
|
|
46
|
+
return Array.from(this.records.values());
|
|
47
|
+
}
|
|
48
|
+
getByForkId(forkId) {
|
|
49
|
+
return Array.from(this.records.values()).filter((r) => r.forkId === forkId);
|
|
50
|
+
}
|
|
51
|
+
remove(entityId) {
|
|
52
|
+
return this.withValidation(() => {
|
|
53
|
+
const record = this.records.get(entityId);
|
|
54
|
+
if (!record) {
|
|
55
|
+
throw new Error(`ForkRecord with entityId "${entityId}" not found.`);
|
|
56
|
+
}
|
|
57
|
+
this.records.delete(entityId);
|
|
58
|
+
return record;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
snapshot() {
|
|
62
|
+
return Array.from(this.records.values());
|
|
63
|
+
}
|
|
64
|
+
static fromSnapshot(records, schema) {
|
|
65
|
+
const ns = new ForkNamespace(schema ?? CoreEntityForkRecordSchema);
|
|
66
|
+
for (const record of records) {
|
|
67
|
+
ns.records.set(record.entityId, record);
|
|
68
|
+
}
|
|
69
|
+
return ns;
|
|
70
|
+
}
|
|
71
|
+
validate() {
|
|
72
|
+
const violations = [];
|
|
73
|
+
for (const [entityId, record] of this.records) {
|
|
74
|
+
if (!Value.Check(this.schema, record)) {
|
|
75
|
+
violations.push({
|
|
76
|
+
code: FORK_RECORD_SCHEMA_INVALID,
|
|
77
|
+
message: `ForkRecord "${entityId}" does not conform to schema`,
|
|
78
|
+
entityType: "forkRecord",
|
|
79
|
+
entityId,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return { ok: violations.length === 0, violations };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=fork-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork-namespace.js","sourceRoot":"","sources":["../../../src/lib/core/fork-namespace.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/core/fork.d.ts
CHANGED
|
@@ -8,8 +8,7 @@ import { ArgumentEngine } from "./argument-engine.js";
|
|
|
8
8
|
* Creates an independent copy of an argument engine under a new argument ID.
|
|
9
9
|
*
|
|
10
10
|
* Every premise, expression, and variable receives a fresh ID. All internal
|
|
11
|
-
* cross-references are remapped.
|
|
12
|
-
* metadata pointing back to the originals.
|
|
11
|
+
* cross-references are remapped.
|
|
13
12
|
*
|
|
14
13
|
* This function does NOT call `engine.canFork()` — callers are responsible
|
|
15
14
|
* for checking fork eligibility.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAE7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACR,WAAW,EACX,2BAA2B,EAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EACR,YAAY,EACZ,aAAa,EACb,kBAAkB,EACrB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAIrD
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAE7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACR,WAAW,EACX,2BAA2B,EAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EACR,YAAY,EACZ,aAAa,EACb,kBAAkB,EACrB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAIrD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAC9B,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,EAExE,MAAM,EAAE,cAAc,CAClB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,CACT,EACD,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE;IACP,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IAClC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;CACjD,EACD,OAAO,CAAC,EAAE,oBAAoB,GAC/B;IACC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5E,UAAU,EAAE,eAAe,CAAA;CAC9B,CAyJA"}
|
package/dist/lib/core/fork.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultGenerateId } from "./argument-engine.js";
|
|
2
2
|
import { ArgumentEngine } from "./argument-engine.js";
|
|
3
3
|
import { serializeChecksumConfig } from "../consts.js";
|
|
4
4
|
import { isPremiseBound } from "../schemata/propositional.js";
|
|
@@ -6,8 +6,7 @@ import { isPremiseBound } from "../schemata/propositional.js";
|
|
|
6
6
|
* Creates an independent copy of an argument engine under a new argument ID.
|
|
7
7
|
*
|
|
8
8
|
* Every premise, expression, and variable receives a fresh ID. All internal
|
|
9
|
-
* cross-references are remapped.
|
|
10
|
-
* metadata pointing back to the originals.
|
|
9
|
+
* cross-references are remapped.
|
|
11
10
|
*
|
|
12
11
|
* This function does NOT call `engine.canFork()` — callers are responsible
|
|
13
12
|
* for checking fork eligibility.
|
|
@@ -19,11 +18,10 @@ import { isPremiseBound } from "../schemata/propositional.js";
|
|
|
19
18
|
* @returns The forked engine and a remap table mapping original to new entity IDs.
|
|
20
19
|
*/
|
|
21
20
|
export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
22
|
-
const generateId = options?.generateId ??
|
|
21
|
+
const generateId = options?.generateId ?? defaultGenerateId;
|
|
23
22
|
// Snapshot includes config from the source engine
|
|
24
23
|
const snap = engine.snapshot();
|
|
25
24
|
const originalArgumentId = snap.argument.id;
|
|
26
|
-
const originalArgumentVersion = snap.argument.version;
|
|
27
25
|
// Build remap tables (old ID → new ID)
|
|
28
26
|
const premiseRemap = new Map();
|
|
29
27
|
const expressionRemap = new Map();
|
|
@@ -48,8 +46,6 @@ export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
|
48
46
|
...snap.argument,
|
|
49
47
|
id: newArgumentId,
|
|
50
48
|
version: 0,
|
|
51
|
-
forkedFromArgumentId: originalArgumentId,
|
|
52
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
53
49
|
};
|
|
54
50
|
// Remap premises and expressions
|
|
55
51
|
for (const ps of snap.premises) {
|
|
@@ -60,9 +56,6 @@ export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
|
60
56
|
id: newPremiseId,
|
|
61
57
|
argumentId: newArgumentId,
|
|
62
58
|
argumentVersion: 0,
|
|
63
|
-
forkedFromPremiseId: originalPremiseId,
|
|
64
|
-
forkedFromArgumentId: originalArgumentId,
|
|
65
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
66
59
|
};
|
|
67
60
|
if (ps.rootExpressionId) {
|
|
68
61
|
ps.rootExpressionId = expressionRemap.get(ps.rootExpressionId);
|
|
@@ -79,10 +72,6 @@ export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
|
79
72
|
parentId: expr.parentId
|
|
80
73
|
? (expressionRemap.get(expr.parentId) ?? null)
|
|
81
74
|
: null,
|
|
82
|
-
forkedFromExpressionId: originalExprId,
|
|
83
|
-
forkedFromPremiseId: originalPremiseId,
|
|
84
|
-
forkedFromArgumentId: originalArgumentId,
|
|
85
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
86
75
|
};
|
|
87
76
|
if (remapped.type === "variable" &&
|
|
88
77
|
"variableId" in remapped) {
|
|
@@ -102,9 +91,6 @@ export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
|
102
91
|
id: newVarId,
|
|
103
92
|
argumentId: newArgumentId,
|
|
104
93
|
argumentVersion: 0,
|
|
105
|
-
forkedFromVariableId: originalVarId,
|
|
106
|
-
forkedFromArgumentId: originalArgumentId,
|
|
107
|
-
forkedFromArgumentVersion: originalArgumentVersion,
|
|
108
94
|
};
|
|
109
95
|
if (isPremiseBound(remapped)) {
|
|
110
96
|
const premiseBound = remapped;
|
|
@@ -133,7 +119,7 @@ export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
|
133
119
|
}
|
|
134
120
|
const grammarConfig = options?.grammarConfig ?? snap.config?.grammarConfig;
|
|
135
121
|
// Construct new engine
|
|
136
|
-
const forkedEngine = ArgumentEngine.fromSnapshot(snap, libraries.claimLibrary, libraries.sourceLibrary, libraries.claimSourceLibrary, grammarConfig, "ignore");
|
|
122
|
+
const forkedEngine = ArgumentEngine.fromSnapshot(snap, libraries.claimLibrary, libraries.sourceLibrary, libraries.claimSourceLibrary, grammarConfig, "ignore", generateId);
|
|
137
123
|
return { engine: forkedEngine, remapTable };
|
|
138
124
|
}
|
|
139
125
|
//# sourceMappingURL=fork.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { TDisplayable, THierarchicalChecksummable, } from "./shared.interfaces.js";
|
|
2
2
|
export type { TPremiseCrud, TVariableManagement, TArgumentExpressionQueries, TArgumentRoleState, TArgumentEvaluation, TArgumentLifecycle, TArgumentIdentity, } from "./argument-engine.interfaces.js";
|
|
3
3
|
export type { TExpressionMutations, TExpressionQueries, TVariableReferences, TPremiseClassification, TPremiseEvaluation, TPremiseLifecycle, TPremiseIdentity, } from "./premise-engine.interfaces.js";
|
|
4
|
-
export type { TClaimLookup, TClaimLibraryManagement, TSourceLookup, TSourceLibraryManagement, TClaimLibrarySnapshot, TSourceLibrarySnapshot, TClaimSourceLookup, TClaimSourceLibraryManagement, TClaimSourceLibrarySnapshot,
|
|
4
|
+
export type { TClaimLookup, TClaimLibraryManagement, TSourceLookup, TSourceLibraryManagement, TClaimLibrarySnapshot, TSourceLibrarySnapshot, TClaimSourceLookup, TClaimSourceLibraryManagement, TClaimSourceLibrarySnapshot, TForkLibrarySnapshot, TArgumentLibrarySnapshot, TPropositCoreSnapshot, TPropositCoreConfig, } from "./library.interfaces.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,YAAY,EACZ,0BAA0B,GAC7B,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACR,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GACpB,MAAM,iCAAiC,CAAA;AAExC,YAAY,EACR,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACR,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,YAAY,EACZ,0BAA0B,GAC7B,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACR,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GACpB,MAAM,iCAAiC,CAAA;AAExC,YAAY,EACR,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACR,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { TCoreClaim } from "../../schemata/claim.js";
|
|
2
2
|
import type { TCoreClaimSourceAssociation, TCoreSource } from "../../schemata/source.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { TCoreArgumentForkRecord, TCorePremiseForkRecord, TCoreExpressionForkRecord, TCoreVariableForkRecord, TCoreClaimForkRecord, TCoreSourceForkRecord } from "../../schemata/fork.js";
|
|
4
4
|
import type { TInvariantValidationResult } from "../../types/validation.js";
|
|
5
|
+
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../../schemata/index.js";
|
|
6
|
+
import type { TArgumentEngineSnapshot } from "../argument-engine.js";
|
|
7
|
+
import type { TCoreChecksumConfig } from "../../types/checksum.js";
|
|
8
|
+
import type { TCorePositionConfig } from "../../utils/position.js";
|
|
9
|
+
import type { TGrammarConfig } from "../../types/grammar.js";
|
|
5
10
|
/**
|
|
6
11
|
* Narrow read-only interface for claim lookups. Used by `ArgumentEngine` for
|
|
7
12
|
* variable validation — callers that only need to verify claim existence
|
|
@@ -283,31 +288,60 @@ export type TClaimSourceLibrarySnapshot<TAssoc extends TCoreClaimSourceAssociati
|
|
|
283
288
|
claimSourceAssociations: TAssoc[];
|
|
284
289
|
};
|
|
285
290
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
* query fork records without mutation access.
|
|
291
|
+
* Serializable snapshot of a `ForkLibrary`. Contains arrays of fork records
|
|
292
|
+
* for each entity type.
|
|
289
293
|
*/
|
|
290
|
-
export
|
|
291
|
-
/**
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
}
|
|
294
|
+
export type TForkLibrarySnapshot<TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord, TSourceFork extends TCoreSourceForkRecord = TCoreSourceForkRecord> = {
|
|
295
|
+
/** All argument fork records. */
|
|
296
|
+
arguments: TArgFork[];
|
|
297
|
+
/** All premise fork records. */
|
|
298
|
+
premises: TPremiseFork[];
|
|
299
|
+
/** All expression fork records. */
|
|
300
|
+
expressions: TExprFork[];
|
|
301
|
+
/** All variable fork records. */
|
|
302
|
+
variables: TVarFork[];
|
|
303
|
+
/** All claim fork records. */
|
|
304
|
+
claims: TClaimFork[];
|
|
305
|
+
/** All source fork records. */
|
|
306
|
+
sources: TSourceFork[];
|
|
307
|
+
};
|
|
305
308
|
/**
|
|
306
|
-
* Serializable snapshot of
|
|
307
|
-
*
|
|
309
|
+
* Serializable snapshot of an `ArgumentLibrary`. Contains snapshots of all
|
|
310
|
+
* managed `ArgumentEngine` instances.
|
|
311
|
+
*/
|
|
312
|
+
export type TArgumentLibrarySnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> = {
|
|
313
|
+
/** Snapshots of all argument engines in the library. */
|
|
314
|
+
arguments: TArgumentEngineSnapshot<TArg, TPremise, TExpr, TVar>[];
|
|
315
|
+
};
|
|
316
|
+
/**
|
|
317
|
+
* Serializable snapshot of a `PropositCore` instance. Contains snapshots of
|
|
318
|
+
* all managed libraries: arguments, claims, sources, claim-source associations,
|
|
319
|
+
* and fork records.
|
|
320
|
+
*/
|
|
321
|
+
export type TPropositCoreSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TSource extends TCoreSource = TCoreSource, TClaim extends TCoreClaim = TCoreClaim, TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation, TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord, TSourceFork extends TCoreSourceForkRecord = TCoreSourceForkRecord> = {
|
|
322
|
+
/** Snapshot of all argument engines. */
|
|
323
|
+
arguments: TArgumentLibrarySnapshot<TArg, TPremise, TExpr, TVar>;
|
|
324
|
+
/** Snapshot of the claim library. */
|
|
325
|
+
claims: TClaimLibrarySnapshot<TClaim>;
|
|
326
|
+
/** Snapshot of the source library. */
|
|
327
|
+
sources: TSourceLibrarySnapshot<TSource>;
|
|
328
|
+
/** Snapshot of the claim-source association library. */
|
|
329
|
+
claimSources: TClaimSourceLibrarySnapshot<TAssoc>;
|
|
330
|
+
/** Snapshot of the fork library. */
|
|
331
|
+
forks: TForkLibrarySnapshot<TArgFork, TPremiseFork, TExprFork, TVarFork, TClaimFork, TSourceFork>;
|
|
332
|
+
};
|
|
333
|
+
/**
|
|
334
|
+
* Shared configuration options for `PropositCore`. These config values are
|
|
335
|
+
* threaded to all internally constructed libraries and engines.
|
|
308
336
|
*/
|
|
309
|
-
export type
|
|
310
|
-
/**
|
|
311
|
-
|
|
337
|
+
export type TPropositCoreConfig = {
|
|
338
|
+
/** Checksum config shared across all libraries and engines. */
|
|
339
|
+
checksumConfig?: TCoreChecksumConfig;
|
|
340
|
+
/** Position config for argument engines. */
|
|
341
|
+
positionConfig?: TCorePositionConfig;
|
|
342
|
+
/** Grammar config for argument engines. */
|
|
343
|
+
grammarConfig?: TGrammarConfig;
|
|
344
|
+
/** UUID generator for new entity IDs. Defaults to `globalThis.crypto.randomUUID()`. */
|
|
345
|
+
generateId?: () => string;
|
|
312
346
|
};
|
|
313
347
|
//# sourceMappingURL=library.interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EACR,2BAA2B,EAC3B,WAAW,EACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type TCoreArgument, type TCoreLogicalOperatorType, type TCorePremise, t
|
|
|
2
2
|
import type { TCoreExpressionAssignment, TCorePremiseEvaluationResult, TCoreValidationResult } from "../types/evaluation.js";
|
|
3
3
|
import type { TCoreMutationResult } from "../types/mutation.js";
|
|
4
4
|
import type { TInvariantValidationResult } from "../types/validation.js";
|
|
5
|
-
import type
|
|
5
|
+
import { type TLogicEngineOptions } from "./argument-engine.js";
|
|
6
6
|
import type { TGrammarConfig } from "../types/grammar.js";
|
|
7
7
|
import type { TExpressionInput, TExpressionManagerSnapshot, TExpressionWithoutPosition, TExpressionUpdate } from "./expression-manager.js";
|
|
8
8
|
import { VariableManager } from "./variable-manager.js";
|
|
@@ -26,6 +26,7 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
26
26
|
private cachedDescendantChecksum;
|
|
27
27
|
private cachedCombinedChecksum;
|
|
28
28
|
private expressionIndex?;
|
|
29
|
+
private generateId;
|
|
29
30
|
private onMutate?;
|
|
30
31
|
private circularityCheck?;
|
|
31
32
|
private emptyBoundPremiseCheck?;
|
|
@@ -99,7 +100,7 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
99
100
|
private operatorSymbol;
|
|
100
101
|
snapshot(): TPremiseEngineSnapshot<TPremise, TExpr>;
|
|
101
102
|
/** Creates a new PremiseEngine from a previously captured snapshot. */
|
|
102
|
-
static fromSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TPremiseEngineSnapshot<TPremise, TExpr>, argument: TOptionalChecksum<TArg>, variables: VariableManager<TVar>, expressionIndex?: Map<string, string>, grammarConfig?: TGrammarConfig): PremiseEngine<TArg, TPremise, TExpr, TVar>;
|
|
103
|
+
static fromSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TPremiseEngineSnapshot<TPremise, TExpr>, argument: TOptionalChecksum<TArg>, variables: VariableManager<TVar>, expressionIndex?: Map<string, string>, grammarConfig?: TGrammarConfig, generateId?: () => string): PremiseEngine<TArg, TPremise, TExpr, TVar>;
|
|
103
104
|
/**
|
|
104
105
|
* Flushes hierarchical expression checksums and rebuilds the changeset
|
|
105
106
|
* so that added/modified expressions carry correct `descendantChecksum`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
1
|
import { CorePremiseSchema, isExternallyBound, isPremiseBound, } from "../schemata/index.js";
|
|
3
2
|
import { DefaultMap } from "../utils/default-map.js";
|
|
4
3
|
import { midpoint, POSITION_INITIAL, POSITION_MAX } from "../utils/position.js";
|
|
@@ -7,6 +6,7 @@ import { kleeneAnd, kleeneIff, kleeneImplies, kleeneNot, kleeneOr, } from "./eva
|
|
|
7
6
|
import { buildDirectionalVacuity, makeErrorIssue, makeValidationResult, } from "./evaluation/validation.js";
|
|
8
7
|
import { Value } from "typebox/value";
|
|
9
8
|
import { PREMISE_SCHEMA_INVALID, PREMISE_ROOT_EXPRESSION_INVALID, PREMISE_VARIABLE_REF_NOT_FOUND, } from "../types/validation.js";
|
|
9
|
+
import { defaultGenerateId, } from "./argument-engine.js";
|
|
10
10
|
import { DEFAULT_CHECKSUM_CONFIG, normalizeChecksumConfig, serializeChecksumConfig, } from "../consts.js";
|
|
11
11
|
import { ChangeCollector } from "./change-collector.js";
|
|
12
12
|
import { computeHash, entityChecksum } from "./checksum.js";
|
|
@@ -26,6 +26,7 @@ export class PremiseEngine {
|
|
|
26
26
|
cachedDescendantChecksum;
|
|
27
27
|
cachedCombinedChecksum;
|
|
28
28
|
expressionIndex;
|
|
29
|
+
generateId;
|
|
29
30
|
onMutate;
|
|
30
31
|
circularityCheck;
|
|
31
32
|
emptyBoundPremiseCheck;
|
|
@@ -41,6 +42,7 @@ export class PremiseEngine {
|
|
|
41
42
|
this.expressions = new ExpressionManager(config);
|
|
42
43
|
this.expressionsByVariableId = new DefaultMap(() => new Set());
|
|
43
44
|
this.expressionIndex = deps.expressionIndex;
|
|
45
|
+
this.generateId = config?.generateId ?? defaultGenerateId;
|
|
44
46
|
}
|
|
45
47
|
setOnMutate(callback) {
|
|
46
48
|
this.onMutate = callback;
|
|
@@ -517,7 +519,7 @@ export class PremiseEngine {
|
|
|
517
519
|
// Build not → formula → target
|
|
518
520
|
const formulaExpr = {
|
|
519
521
|
...extraFields,
|
|
520
|
-
id:
|
|
522
|
+
id: this.generateId(),
|
|
521
523
|
argumentId: target.argumentId,
|
|
522
524
|
argumentVersion: target.argumentVersion,
|
|
523
525
|
premiseId: target.premiseId,
|
|
@@ -528,7 +530,7 @@ export class PremiseEngine {
|
|
|
528
530
|
this.expressions.insertExpression(formulaExpr, expressionId);
|
|
529
531
|
const notExpr = {
|
|
530
532
|
...extraFields,
|
|
531
|
-
id:
|
|
533
|
+
id: this.generateId(),
|
|
532
534
|
argumentId: target.argumentId,
|
|
533
535
|
argumentVersion: target.argumentVersion,
|
|
534
536
|
premiseId: target.premiseId,
|
|
@@ -544,7 +546,7 @@ export class PremiseEngine {
|
|
|
544
546
|
// Wrap target with a new NOT operator
|
|
545
547
|
const notExpr = {
|
|
546
548
|
...extraFields,
|
|
547
|
-
id:
|
|
549
|
+
id: this.generateId(),
|
|
548
550
|
argumentId: target.argumentId,
|
|
549
551
|
argumentVersion: target.argumentVersion,
|
|
550
552
|
premiseId: target.premiseId,
|
|
@@ -686,8 +688,8 @@ export class PremiseEngine {
|
|
|
686
688
|
// Create the sub-operator and formula first as detached nodes,
|
|
687
689
|
// then reparent children away from the parent (freeing their
|
|
688
690
|
// position slots), and finally add formula + sub-operator.
|
|
689
|
-
const formulaId =
|
|
690
|
-
const newOpId =
|
|
691
|
+
const formulaId = this.generateId();
|
|
692
|
+
const newOpId = this.generateId();
|
|
691
693
|
// Reparent source and target children to a temporary holding
|
|
692
694
|
// position under the new sub-operator. We must reparent them
|
|
693
695
|
// away from the parent BEFORE adding the formula at their old
|
|
@@ -1322,18 +1324,21 @@ export class PremiseEngine {
|
|
|
1322
1324
|
};
|
|
1323
1325
|
}
|
|
1324
1326
|
/** Creates a new PremiseEngine from a previously captured snapshot. */
|
|
1325
|
-
static fromSnapshot(snapshot, argument, variables, expressionIndex, grammarConfig) {
|
|
1327
|
+
static fromSnapshot(snapshot, argument, variables, expressionIndex, grammarConfig, generateId) {
|
|
1326
1328
|
// Normalize checksumConfig in case the snapshot went through a JSON
|
|
1327
1329
|
// round-trip that converted Sets to arrays or empty objects.
|
|
1328
1330
|
const normalizedConfig = snapshot.config
|
|
1329
1331
|
? {
|
|
1330
1332
|
...snapshot.config,
|
|
1331
1333
|
checksumConfig: normalizeChecksumConfig(snapshot.config.checksumConfig),
|
|
1334
|
+
generateId: generateId ?? snapshot.config.generateId,
|
|
1332
1335
|
}
|
|
1333
|
-
:
|
|
1336
|
+
: generateId
|
|
1337
|
+
? { generateId }
|
|
1338
|
+
: snapshot.config;
|
|
1334
1339
|
const pe = new PremiseEngine(snapshot.premise, { argument, variables, expressionIndex }, normalizedConfig);
|
|
1335
1340
|
// Restore expressions from the snapshot
|
|
1336
|
-
pe.expressions = ExpressionManager.fromSnapshot(snapshot.expressions, grammarConfig);
|
|
1341
|
+
pe.expressions = ExpressionManager.fromSnapshot(snapshot.expressions, grammarConfig, generateId);
|
|
1337
1342
|
// Restore rootExpressionId from snapshot
|
|
1338
1343
|
pe.rootExpressionId = snapshot.rootExpressionId;
|
|
1339
1344
|
// Rebuild the expressionsByVariableId index
|