@polintpro/proposit-core 0.5.2 → 0.5.3
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 +2 -7
- package/dist/cli/commands/sources.d.ts.map +1 -1
- package/dist/cli/commands/sources.js +13 -66
- package/dist/cli/commands/sources.js.map +1 -1
- package/dist/cli/commands/variables.d.ts.map +1 -1
- package/dist/cli/commands/variables.js +37 -1
- package/dist/cli/commands/variables.js.map +1 -1
- package/dist/cli/config.d.ts +0 -2
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +0 -6
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +7 -34
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +2 -1
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/schemata.d.ts +0 -8
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +0 -10
- package/dist/cli/schemata.js.map +1 -1
- package/dist/cli/storage/sources.d.ts +3 -10
- package/dist/cli/storage/sources.d.ts.map +1 -1
- package/dist/cli/storage/sources.js +11 -94
- package/dist/cli/storage/sources.js.map +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +7 -15
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +15 -27
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +236 -242
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/change-collector.d.ts +0 -7
- package/dist/lib/core/change-collector.d.ts.map +1 -1
- package/dist/lib/core/change-collector.js +0 -18
- package/dist/lib/core/change-collector.js.map +1 -1
- package/dist/lib/core/claim-source-library.d.ts +27 -0
- package/dist/lib/core/claim-source-library.d.ts.map +1 -0
- package/dist/lib/core/claim-source-library.js +116 -0
- package/dist/lib/core/claim-source-library.js.map +1 -0
- package/dist/lib/core/diff.d.ts +3 -7
- package/dist/lib/core/diff.d.ts.map +1 -1
- package/dist/lib/core/diff.js +14 -79
- package/dist/lib/core/diff.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +30 -9
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/index.d.ts +1 -2
- package/dist/lib/core/interfaces/index.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +18 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +1 -29
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.d.ts +7 -8
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +66 -82
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/core/variable-manager.d.ts +3 -4
- package/dist/lib/core/variable-manager.d.ts.map +1 -1
- package/dist/lib/core/variable-manager.js +11 -1
- package/dist/lib/core/variable-manager.js.map +1 -1
- package/dist/lib/index.d.ts +2 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/propositional.d.ts +36 -2
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +30 -4
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/schemata/source.d.ts +4 -16
- package/dist/lib/schemata/source.d.ts.map +1 -1
- package/dist/lib/schemata/source.js +7 -17
- package/dist/lib/schemata/source.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +2 -4
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/diff.d.ts +1 -5
- package/dist/lib/types/diff.d.ts.map +1 -1
- package/dist/lib/types/evaluation.d.ts +1 -1
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/types/mutation.d.ts +0 -3
- package/dist/lib/types/mutation.d.ts.map +1 -1
- package/dist/lib/types/reactive.d.ts +1 -3
- package/dist/lib/types/reactive.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/lib/core/interfaces/source-management.interfaces.d.ts +0 -63
- package/dist/lib/core/interfaces/source-management.interfaces.d.ts.map +0 -1
- package/dist/lib/core/interfaces/source-management.interfaces.js +0 -2
- package/dist/lib/core/interfaces/source-management.interfaces.js.map +0 -1
- package/dist/lib/core/source-manager.d.ts +0 -38
- package/dist/lib/core/source-manager.d.ts.map +0 -1
- package/dist/lib/core/source-manager.js +0 -266
- package/dist/lib/core/source-manager.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/lib/core/diff.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/lib/core/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TOptionalChecksum } from "../../schemata/index.js";
|
|
1
|
+
import type { TClaimBoundVariable, TPremiseBoundVariable, TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TOptionalChecksum } from "../../schemata/index.js";
|
|
2
2
|
import type { TCoreArgumentEvaluationOptions, TCoreArgumentEvaluationResult, TCoreArgumentRoleState, TCoreExpressionAssignment, TCoreValidationResult, TCoreValidityCheckOptions, TCoreValidityCheckResult } from "../../types/evaluation.js";
|
|
3
3
|
import type { TCoreMutationResult } from "../../types/mutation.js";
|
|
4
4
|
import type { TReactiveSnapshot } from "../../types/reactive.js";
|
|
@@ -81,23 +81,36 @@ export interface TVariableManagement<TArg extends TCoreArgument = TCoreArgument,
|
|
|
81
81
|
* @throws If `variable.id` already exists.
|
|
82
82
|
* @throws If the variable does not belong to this argument.
|
|
83
83
|
*/
|
|
84
|
-
addVariable(variable: TOptionalChecksum<
|
|
84
|
+
addVariable(variable: TOptionalChecksum<TClaimBoundVariable> & Record<string, unknown>): TCoreMutationResult<TVar, TExpr, TVar, TPremise, TArg>;
|
|
85
|
+
/**
|
|
86
|
+
* Registers a premise-bound propositional variable whose truth value is
|
|
87
|
+
* derived from another premise's evaluation.
|
|
88
|
+
*
|
|
89
|
+
* @param variable - The premise-bound variable entity to register.
|
|
90
|
+
* @returns The registered variable (with checksum) and changeset.
|
|
91
|
+
* @throws If `variable.symbol` is already in use.
|
|
92
|
+
* @throws If `variable.id` already exists.
|
|
93
|
+
* @throws If `variable.boundPremiseId` does not exist in this argument.
|
|
94
|
+
* @throws If `variable.boundArgumentId` does not match this argument.
|
|
95
|
+
* @throws If the variable does not belong to this argument.
|
|
96
|
+
*/
|
|
97
|
+
bindVariableToPremise(variable: TOptionalChecksum<TPremiseBoundVariable> & Record<string, unknown>): TCoreMutationResult<TVar, TExpr, TVar, TPremise, TArg>;
|
|
85
98
|
/**
|
|
86
99
|
* Updates fields on an existing variable. Since all premises share the
|
|
87
100
|
* same VariableManager, the update is immediately visible everywhere.
|
|
88
101
|
*
|
|
89
102
|
* @param variableId - The ID of the variable to update.
|
|
90
|
-
* @param updates - Fields to update
|
|
91
|
-
* `claimId
|
|
103
|
+
* @param updates - Fields to update. For claim-bound variables: `symbol`,
|
|
104
|
+
* `claimId`, `claimVersion`. For premise-bound variables: `symbol`,
|
|
105
|
+
* `boundPremiseId`, `boundArgumentId`, `boundArgumentVersion`.
|
|
106
|
+
* `claimId` and `claimVersion` must be provided together on claim-bound variables.
|
|
92
107
|
* @returns The updated variable, or `undefined` if not found.
|
|
93
108
|
* @throws If the new symbol is already in use by a different variable.
|
|
94
109
|
* @throws If the new claim reference does not exist in the claim library.
|
|
110
|
+
* @throws If updates include fields from the wrong binding type (e.g., `boundPremiseId` on a claim-bound variable).
|
|
111
|
+
* @throws If the new `boundPremiseId` does not exist in this argument.
|
|
95
112
|
*/
|
|
96
|
-
updateVariable(variableId: string, updates:
|
|
97
|
-
symbol?: string;
|
|
98
|
-
claimId?: string;
|
|
99
|
-
claimVersion?: number;
|
|
100
|
-
}): TCoreMutationResult<TVar | undefined, TExpr, TVar, TPremise, TArg>;
|
|
113
|
+
updateVariable(variableId: string, updates: Record<string, unknown>): TCoreMutationResult<TVar | undefined, TExpr, TVar, TPremise, TArg>;
|
|
101
114
|
/**
|
|
102
115
|
* Removes a variable and cascade-deletes all expressions referencing it
|
|
103
116
|
* across every premise (including subtrees and operator collapse).
|
|
@@ -143,6 +156,14 @@ export interface TVariableManagement<TArg extends TCoreArgument = TCoreArgument,
|
|
|
143
156
|
* @returns A Map from the extracted key to the variable.
|
|
144
157
|
*/
|
|
145
158
|
buildVariableIndex<K>(keyFn: (v: TVar) => K): Map<K, TVar>;
|
|
159
|
+
/**
|
|
160
|
+
* Returns all premise-bound variables whose `boundPremiseId` matches the
|
|
161
|
+
* given premise ID. This is a linear scan over all variables.
|
|
162
|
+
*
|
|
163
|
+
* @param premiseId - The premise ID to filter by.
|
|
164
|
+
* @returns An array of variables bound to the given premise.
|
|
165
|
+
*/
|
|
166
|
+
getVariablesBoundToPremise(premiseId: string): TVar[];
|
|
146
167
|
}
|
|
147
168
|
/**
|
|
148
169
|
* Cross-premise expression lookups and analysis.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument-engine.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/argument-engine.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACR,8BAA8B,EAC9B,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EAC3B,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY,CACzB,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE;;;;;;OAMG;IACH,aAAa,CACT,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,mBAAmB,CAClB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAC1C,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP,CAAA;IACD;;;;;;;;OAQG;IACH,mBAAmB,CACf,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,mBAAmB,CAClB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAC1C,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP,CAAA;IACD;;;;;OAKG;IACH,aAAa,CACT,SAAS,EAAE,MAAM,GAClB,mBAAmB,CAAC,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzE;;;;;OAKG;IACH,UAAU,CACN,SAAS,EAAE,MAAM,GAClB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAA;IACzD;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC;;;;OAIG;IACH,cAAc,IAAI,MAAM,EAAE,CAAA;IAC1B;;;;OAIG;IACH,YAAY,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;IAC5D;;;;;;OAMG;IACH,yBAAyB,CACrB,YAAY,EAAE,MAAM,GACrB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAA;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAChC,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE;;;;;;;;OAQG;IACH,WAAW,CACP,QAAQ,EAAE,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"argument-engine.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/argument-engine.interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export type { TDisplayable, TChecksummable } 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 {
|
|
5
|
-
export type { TClaimLookup, TSourceLookup, TClaimLibrarySnapshot, TSourceLibrarySnapshot, } from "./library.interfaces.js";
|
|
4
|
+
export type { TClaimLookup, TSourceLookup, TClaimLibrarySnapshot, TSourceLibrarySnapshot, TClaimSourceLookup, TClaimSourceLibrarySnapshot, } from "./library.interfaces.js";
|
|
6
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,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE1E,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE1E,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,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,GAC9B,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TCoreClaim } from "../../schemata/claim.js";
|
|
2
|
-
import type { TCoreSource } from "../../schemata/source.js";
|
|
2
|
+
import type { TCoreClaimSourceAssociation, TCoreSource } from "../../schemata/source.js";
|
|
3
3
|
/** Narrow read-only interface for claim lookups. Used by ArgumentEngine for validation. */
|
|
4
4
|
export interface TClaimLookup<TClaim extends TCoreClaim = TCoreClaim> {
|
|
5
5
|
get(id: string, version: number): TClaim | undefined;
|
|
@@ -16,4 +16,21 @@ export type TClaimLibrarySnapshot<TClaim extends TCoreClaim = TCoreClaim> = {
|
|
|
16
16
|
export type TSourceLibrarySnapshot<TSource extends TCoreSource = TCoreSource> = {
|
|
17
17
|
sources: TSource[];
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Narrow read-only interface for claim-source association lookups.
|
|
21
|
+
* Implemented by `ClaimSourceLibrary`. Passed to `ArgumentEngine` as the
|
|
22
|
+
* fourth constructor parameter.
|
|
23
|
+
*/
|
|
24
|
+
export interface TClaimSourceLookup<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> {
|
|
25
|
+
/** Returns all associations for the given claim ID. */
|
|
26
|
+
getForClaim(claimId: string): TAssoc[];
|
|
27
|
+
/** Returns all associations for the given source ID. */
|
|
28
|
+
getForSource(sourceId: string): TAssoc[];
|
|
29
|
+
/** Returns an association by ID, or `undefined` if not found. */
|
|
30
|
+
get(id: string): TAssoc | undefined;
|
|
31
|
+
}
|
|
32
|
+
/** Serializable snapshot of a ClaimSourceLibrary (`{ claimSourceAssociations }`). */
|
|
33
|
+
export type TClaimSourceLibrarySnapshot<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> = {
|
|
34
|
+
claimSourceAssociations: TAssoc[];
|
|
35
|
+
};
|
|
19
36
|
//# 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,
|
|
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;AAEjC,2FAA2F;AAC3F,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU;IAChE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACvD;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW;IACpE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;CACxD;AAED,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU,IAAI;IACxE,MAAM,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IACxE;IACI,OAAO,EAAE,OAAO,EAAE,CAAA;CACrB,CAAA;AAEL;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAC/B,MAAM,SAAS,2BAA2B,GAAG,2BAA2B;IAExE,uDAAuD;IACvD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtC,wDAAwD;IACxD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxC,iEAAiE;IACjE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACtC;AAED,qFAAqF;AACrF,MAAM,MAAM,2BAA2B,CACnC,MAAM,SAAS,2BAA2B,GAAG,2BAA2B,IACxE;IACA,uBAAuB,EAAE,MAAM,EAAE,CAAA;CACpC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable
|
|
1
|
+
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../../schemata/index.js";
|
|
2
2
|
import type { TCoreExpressionAssignment, TCorePremiseEvaluationResult, TCoreValidationResult } from "../../types/evaluation.js";
|
|
3
3
|
import type { TCoreMutationResult } from "../../types/mutation.js";
|
|
4
4
|
import type { TExpressionInput, TExpressionWithoutPosition, TExpressionUpdate } from "../expression-manager.js";
|
|
@@ -117,34 +117,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
117
117
|
* @throws If the expression does not exist in this premise.
|
|
118
118
|
*/
|
|
119
119
|
toggleNegation(expressionId: string): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
120
|
-
/**
|
|
121
|
-
* Creates an association between a source and this expression within
|
|
122
|
-
* this premise.
|
|
123
|
-
*
|
|
124
|
-
* @param sourceId - The ID of the source.
|
|
125
|
-
* @param sourceVersion - The version of the source to associate.
|
|
126
|
-
* @param expressionId - The ID of the expression to associate.
|
|
127
|
-
* @returns The created association and changeset.
|
|
128
|
-
* @throws If the source does not exist in the source library.
|
|
129
|
-
* @throws If the expression does not exist in this premise.
|
|
130
|
-
* @throws If the association already exists.
|
|
131
|
-
*/
|
|
132
|
-
addExpressionSourceAssociation(sourceId: string, sourceVersion: number, expressionId: string): TCoreMutationResult<TCoreExpressionSourceAssociation, TExpr, TVar, TPremise, TArg>;
|
|
133
|
-
/**
|
|
134
|
-
* Removes an expression–source association by its own ID.
|
|
135
|
-
*
|
|
136
|
-
* @param associationId - The ID of the association to remove.
|
|
137
|
-
* @returns The removed association, or `undefined` if not found.
|
|
138
|
-
*/
|
|
139
|
-
removeExpressionSourceAssociation(associationId: string): TCoreMutationResult<TCoreExpressionSourceAssociation | undefined, TExpr, TVar, TPremise, TArg>;
|
|
140
|
-
/**
|
|
141
|
-
* Returns all source associations for a given expression in this
|
|
142
|
-
* premise.
|
|
143
|
-
*
|
|
144
|
-
* @param expressionId - The expression ID to look up.
|
|
145
|
-
* @returns An array of expression–source associations.
|
|
146
|
-
*/
|
|
147
|
-
getSourceAssociationsForExpression(expressionId: string): TCoreExpressionSourceAssociation[];
|
|
148
120
|
}
|
|
149
121
|
/**
|
|
150
122
|
* Single-premise expression tree reads.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premise-engine.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/premise-engine.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"premise-engine.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/premise-engine.interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type TCoreArgument, type TCorePremise, type TCorePropositionalExpression, type TCorePropositionalVariable, type TOptionalChecksum } from "../schemata/index.js";
|
|
2
2
|
import type { TCoreExpressionAssignment, TCorePremiseEvaluationResult, TCoreValidationResult } from "../types/evaluation.js";
|
|
3
3
|
import type { TCoreMutationResult } from "../types/mutation.js";
|
|
4
4
|
import type { TLogicEngineOptions } from "./argument-engine.js";
|
|
5
5
|
import type { TExpressionInput, TExpressionManagerSnapshot, TExpressionWithoutPosition, TExpressionUpdate } from "./expression-manager.js";
|
|
6
6
|
import { VariableManager } from "./variable-manager.js";
|
|
7
|
-
import type { SourceManager } from "./source-manager.js";
|
|
8
7
|
import type { TExpressionMutations, TExpressionQueries, TVariableReferences, TPremiseClassification, TPremiseEvaluation, TPremiseLifecycle, TPremiseIdentity, TDisplayable, TChecksummable } from "./interfaces/index.js";
|
|
9
8
|
export type TPremiseEngineSnapshot<TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = {
|
|
10
9
|
premise: TOptionalChecksum<TPremise>;
|
|
@@ -23,15 +22,17 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
23
22
|
private checksumDirty;
|
|
24
23
|
private cachedChecksum;
|
|
25
24
|
private expressionIndex?;
|
|
26
|
-
private sourceManager?;
|
|
27
25
|
private onMutate?;
|
|
26
|
+
private circularityCheck?;
|
|
27
|
+
private emptyBoundPremiseCheck?;
|
|
28
28
|
constructor(premise: TOptionalChecksum<TPremise>, deps: {
|
|
29
29
|
argument: TOptionalChecksum<TArg>;
|
|
30
30
|
variables: VariableManager<TVar>;
|
|
31
31
|
expressionIndex?: Map<string, string>;
|
|
32
|
-
sourceManager?: SourceManager;
|
|
33
32
|
}, config?: TLogicEngineOptions);
|
|
34
33
|
setOnMutate(callback: (() => void) | undefined): void;
|
|
34
|
+
setCircularityCheck(check: ((variableId: string, premiseId: string) => boolean) | undefined): void;
|
|
35
|
+
setEmptyBoundPremiseCheck(check: ((variableId: string) => boolean) | undefined): void;
|
|
35
36
|
deleteExpressionsUsingVariable(variableId: string): TCoreMutationResult<TExpr[], TExpr, TVar, TPremise, TArg>;
|
|
36
37
|
addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
37
38
|
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
@@ -41,9 +42,6 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
41
42
|
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
42
43
|
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
43
44
|
toggleNegation(expressionId: string): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
44
|
-
addExpressionSourceAssociation(sourceId: string, sourceVersion: number, expressionId: string): TCoreMutationResult<TCoreExpressionSourceAssociation, TExpr, TVar, TPremise, TArg>;
|
|
45
|
-
removeExpressionSourceAssociation(associationId: string): TCoreMutationResult<TCoreExpressionSourceAssociation | undefined, TExpr, TVar, TPremise, TArg>;
|
|
46
|
-
getSourceAssociationsForExpression(expressionId: string): TCoreExpressionSourceAssociation[];
|
|
47
45
|
getExpression(id: string): TExpr | undefined;
|
|
48
46
|
getId(): string;
|
|
49
47
|
getExtras(): Record<string, unknown>;
|
|
@@ -59,6 +57,7 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
59
57
|
evaluate(assignment: TCoreExpressionAssignment, options?: {
|
|
60
58
|
strictUnknownKeys?: boolean;
|
|
61
59
|
requireExactCoverage?: boolean;
|
|
60
|
+
resolver?: (variableId: string) => boolean | null;
|
|
62
61
|
}): TCorePremiseEvaluationResult;
|
|
63
62
|
toDisplayString(): string;
|
|
64
63
|
getReferencedVariableIds(): Set<string>;
|
|
@@ -77,7 +76,7 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
77
76
|
private operatorSymbol;
|
|
78
77
|
snapshot(): TPremiseEngineSnapshot<TPremise, TExpr>;
|
|
79
78
|
/** Creates a new PremiseEngine from a previously captured snapshot. */
|
|
80
|
-
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
|
|
79
|
+
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>): PremiseEngine<TArg, TPremise, TExpr, TVar>;
|
|
81
80
|
private syncExpressionIndex;
|
|
82
81
|
private rebuildVariableIndex;
|
|
83
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
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,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { isPremiseBound, } from "../schemata/index.js";
|
|
2
3
|
import { DefaultMap } from "../utils/default-map.js";
|
|
3
4
|
import { sortedCopyById, sortedUnique } from "../utils/collections.js";
|
|
4
5
|
import { kleeneAnd, kleeneIff, kleeneImplies, kleeneNot, kleeneOr, } from "./evaluation/kleene.js";
|
|
@@ -19,8 +20,9 @@ export class PremiseEngine {
|
|
|
19
20
|
checksumDirty = true;
|
|
20
21
|
cachedChecksum;
|
|
21
22
|
expressionIndex;
|
|
22
|
-
sourceManager;
|
|
23
23
|
onMutate;
|
|
24
|
+
circularityCheck;
|
|
25
|
+
emptyBoundPremiseCheck;
|
|
24
26
|
constructor(premise, deps, config) {
|
|
25
27
|
this.premise = { ...premise };
|
|
26
28
|
this.argument = deps.argument;
|
|
@@ -30,11 +32,16 @@ export class PremiseEngine {
|
|
|
30
32
|
this.expressions = new ExpressionManager(config);
|
|
31
33
|
this.expressionsByVariableId = new DefaultMap(() => new Set());
|
|
32
34
|
this.expressionIndex = deps.expressionIndex;
|
|
33
|
-
this.sourceManager = deps.sourceManager;
|
|
34
35
|
}
|
|
35
36
|
setOnMutate(callback) {
|
|
36
37
|
this.onMutate = callback;
|
|
37
38
|
}
|
|
39
|
+
setCircularityCheck(check) {
|
|
40
|
+
this.circularityCheck = check;
|
|
41
|
+
}
|
|
42
|
+
setEmptyBoundPremiseCheck(check) {
|
|
43
|
+
this.emptyBoundPremiseCheck = check;
|
|
44
|
+
}
|
|
38
45
|
deleteExpressionsUsingVariable(variableId) {
|
|
39
46
|
const expressionIds = this.expressionsByVariableId.get(variableId);
|
|
40
47
|
if (expressionIds.size === 0) {
|
|
@@ -60,12 +67,6 @@ export class PremiseEngine {
|
|
|
60
67
|
collector.removedExpression(e);
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
|
-
if (changes.expressionSourceAssociations) {
|
|
64
|
-
for (const a of changes.expressionSourceAssociations
|
|
65
|
-
.removed) {
|
|
66
|
-
collector.removedExpressionSourceAssociation(a);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
70
|
}
|
|
70
71
|
// Expressions in the collector already have checksums attached
|
|
71
72
|
// (from ExpressionManager which stores expressions with checksums).
|
|
@@ -92,6 +93,11 @@ export class PremiseEngine {
|
|
|
92
93
|
!this.variables.hasVariable(expression.variableId)) {
|
|
93
94
|
throw new Error(`Variable expression "${expression.id}" references non-existent variable "${expression.variableId}".`);
|
|
94
95
|
}
|
|
96
|
+
if (expression.type === "variable" && this.circularityCheck) {
|
|
97
|
+
if (this.circularityCheck(expression.variableId, this.premise.id)) {
|
|
98
|
+
throw new Error(`Circular binding: variable "${expression.variableId}" is bound to this premise (directly or transitively)`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
95
101
|
if (expression.parentId === null) {
|
|
96
102
|
if (this.rootExpressionId !== undefined) {
|
|
97
103
|
throw new Error(`Premise "${this.premise.id}" already has a root expression.`);
|
|
@@ -135,6 +141,11 @@ export class PremiseEngine {
|
|
|
135
141
|
!this.variables.hasVariable(expression.variableId)) {
|
|
136
142
|
throw new Error(`Variable expression "${expression.id}" references non-existent variable "${expression.variableId}".`);
|
|
137
143
|
}
|
|
144
|
+
if (expression.type === "variable" && this.circularityCheck) {
|
|
145
|
+
if (this.circularityCheck(expression.variableId, this.premise.id)) {
|
|
146
|
+
throw new Error(`Circular binding: variable "${expression.variableId}" is bound to this premise (directly or transitively)`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
138
149
|
if (parentId === null) {
|
|
139
150
|
if (this.rootExpressionId !== undefined) {
|
|
140
151
|
throw new Error(`Premise "${this.premise.id}" already has a root expression.`);
|
|
@@ -176,6 +187,11 @@ export class PremiseEngine {
|
|
|
176
187
|
!this.variables.hasVariable(expression.variableId)) {
|
|
177
188
|
throw new Error(`Variable expression "${expression.id}" references non-existent variable "${expression.variableId}".`);
|
|
178
189
|
}
|
|
190
|
+
if (expression.type === "variable" && this.circularityCheck) {
|
|
191
|
+
if (this.circularityCheck(expression.variableId, this.premise.id)) {
|
|
192
|
+
throw new Error(`Circular binding: variable "${expression.variableId}" is bound to this premise (directly or transitively)`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
179
195
|
if (!this.expressions.getExpression(siblingId)) {
|
|
180
196
|
throw new Error(`Expression "${siblingId}" not found in this premise.`);
|
|
181
197
|
}
|
|
@@ -279,18 +295,6 @@ export class PremiseEngine {
|
|
|
279
295
|
}
|
|
280
296
|
this.syncRootExpressionId();
|
|
281
297
|
this.markDirty();
|
|
282
|
-
// Cascade: remove source associations for all removed expressions
|
|
283
|
-
if (this.sourceManager) {
|
|
284
|
-
const removedExprs = collector.toChangeset().expressions;
|
|
285
|
-
if (removedExprs) {
|
|
286
|
-
for (const expr of removedExprs.removed) {
|
|
287
|
-
const sourceResult = this.sourceManager.removeAssociationsForExpression(expr.id);
|
|
288
|
-
for (const assoc of sourceResult.removedExpressionAssociations) {
|
|
289
|
-
collector.removedExpressionSourceAssociation(assoc);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
298
|
const changes = collector.toChangeset();
|
|
295
299
|
this.syncExpressionIndex(changes);
|
|
296
300
|
this.onMutate?.();
|
|
@@ -309,6 +313,11 @@ export class PremiseEngine {
|
|
|
309
313
|
!this.variables.hasVariable(expression.variableId)) {
|
|
310
314
|
throw new Error(`Variable expression "${expression.id}" references non-existent variable "${expression.variableId}".`);
|
|
311
315
|
}
|
|
316
|
+
if (expression.type === "variable" && this.circularityCheck) {
|
|
317
|
+
if (this.circularityCheck(expression.variableId, this.premise.id)) {
|
|
318
|
+
throw new Error(`Circular binding: variable "${expression.variableId}" is bound to this premise (directly or transitively)`);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
312
321
|
const collector = new ChangeCollector();
|
|
313
322
|
this.expressions.setCollector(collector);
|
|
314
323
|
try {
|
|
@@ -339,6 +348,11 @@ export class PremiseEngine {
|
|
|
339
348
|
!this.variables.hasVariable(newSibling.variableId)) {
|
|
340
349
|
throw new Error(`Variable expression "${newSibling.id}" references non-existent variable "${newSibling.variableId}".`);
|
|
341
350
|
}
|
|
351
|
+
if (newSibling.type === "variable" && this.circularityCheck) {
|
|
352
|
+
if (this.circularityCheck(newSibling.variableId, this.premise.id)) {
|
|
353
|
+
throw new Error(`Circular binding: variable "${newSibling.variableId}" is bound to this premise (directly or transitively)`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
342
356
|
const collector = new ChangeCollector();
|
|
343
357
|
this.expressions.setCollector(collector);
|
|
344
358
|
try {
|
|
@@ -414,65 +428,6 @@ export class PremiseEngine {
|
|
|
414
428
|
this.expressions.setCollector(null);
|
|
415
429
|
}
|
|
416
430
|
}
|
|
417
|
-
// -------------------------------------------------------------------------
|
|
418
|
-
// Source association convenience methods
|
|
419
|
-
// -------------------------------------------------------------------------
|
|
420
|
-
addExpressionSourceAssociation(sourceId, sourceVersion, expressionId) {
|
|
421
|
-
if (!this.sourceManager) {
|
|
422
|
-
throw new Error("No SourceManager available.");
|
|
423
|
-
}
|
|
424
|
-
if (!this.expressions.getExpression(expressionId)) {
|
|
425
|
-
throw new Error(`Expression "${expressionId}" does not exist in premise "${this.premise.id}".`);
|
|
426
|
-
}
|
|
427
|
-
const assoc = {
|
|
428
|
-
id: randomUUID(),
|
|
429
|
-
sourceId,
|
|
430
|
-
sourceVersion,
|
|
431
|
-
expressionId,
|
|
432
|
-
premiseId: this.premise.id,
|
|
433
|
-
argumentId: this.argument.id,
|
|
434
|
-
argumentVersion: this.argument.version,
|
|
435
|
-
checksum: "",
|
|
436
|
-
};
|
|
437
|
-
const fields = this.checksumConfig?.expressionSourceAssociationFields ??
|
|
438
|
-
DEFAULT_CHECKSUM_CONFIG.expressionSourceAssociationFields;
|
|
439
|
-
const assocWithChecksum = {
|
|
440
|
-
...assoc,
|
|
441
|
-
checksum: entityChecksum(assoc, fields),
|
|
442
|
-
};
|
|
443
|
-
this.sourceManager.addExpressionSourceAssociation(assocWithChecksum);
|
|
444
|
-
const collector = new ChangeCollector();
|
|
445
|
-
collector.addedExpressionSourceAssociation(assocWithChecksum);
|
|
446
|
-
this.markDirty();
|
|
447
|
-
this.onMutate?.();
|
|
448
|
-
return { result: assocWithChecksum, changes: collector.toChangeset() };
|
|
449
|
-
}
|
|
450
|
-
removeExpressionSourceAssociation(associationId) {
|
|
451
|
-
if (!this.sourceManager) {
|
|
452
|
-
return { result: undefined, changes: {} };
|
|
453
|
-
}
|
|
454
|
-
const allExprAssocs = this.sourceManager.getAllExpressionSourceAssociations();
|
|
455
|
-
if (!allExprAssocs.some((a) => a.id === associationId)) {
|
|
456
|
-
return { result: undefined, changes: {} };
|
|
457
|
-
}
|
|
458
|
-
const removalResult = this.sourceManager.removeExpressionSourceAssociation(associationId);
|
|
459
|
-
const collector = new ChangeCollector();
|
|
460
|
-
for (const assoc of removalResult.removedExpressionAssociations) {
|
|
461
|
-
collector.removedExpressionSourceAssociation(assoc);
|
|
462
|
-
}
|
|
463
|
-
this.markDirty();
|
|
464
|
-
this.onMutate?.();
|
|
465
|
-
return {
|
|
466
|
-
result: removalResult.removedExpressionAssociations[0],
|
|
467
|
-
changes: collector.toChangeset(),
|
|
468
|
-
};
|
|
469
|
-
}
|
|
470
|
-
getSourceAssociationsForExpression(expressionId) {
|
|
471
|
-
if (!this.sourceManager) {
|
|
472
|
-
return [];
|
|
473
|
-
}
|
|
474
|
-
return this.sourceManager.getAssociationsForExpression(expressionId);
|
|
475
|
-
}
|
|
476
431
|
getExpression(id) {
|
|
477
432
|
return this.expressions.getExpression(id);
|
|
478
433
|
}
|
|
@@ -576,6 +531,15 @@ export class PremiseEngine {
|
|
|
576
531
|
variableId: expr.variableId,
|
|
577
532
|
}));
|
|
578
533
|
}
|
|
534
|
+
if (expr.type === "variable" &&
|
|
535
|
+
this.emptyBoundPremiseCheck?.(expr.variableId)) {
|
|
536
|
+
issues.push({
|
|
537
|
+
code: "EXPR_BOUND_PREMISE_EMPTY",
|
|
538
|
+
severity: "warning",
|
|
539
|
+
message: `Variable "${expr.variableId}" is bound to a premise with no expression tree`,
|
|
540
|
+
expressionId: expr.id,
|
|
541
|
+
});
|
|
542
|
+
}
|
|
579
543
|
if (expr.type !== "operator" && expr.type !== "formula") {
|
|
580
544
|
continue;
|
|
581
545
|
}
|
|
@@ -661,7 +625,20 @@ export class PremiseEngine {
|
|
|
661
625
|
return false;
|
|
662
626
|
}
|
|
663
627
|
if (expression.type === "variable") {
|
|
664
|
-
|
|
628
|
+
let value;
|
|
629
|
+
if (options?.resolver) {
|
|
630
|
+
const variable = this.variables.getVariable(expression.variableId);
|
|
631
|
+
if (variable && isPremiseBound(variable)) {
|
|
632
|
+
value = options.resolver(expression.variableId);
|
|
633
|
+
}
|
|
634
|
+
else {
|
|
635
|
+
value =
|
|
636
|
+
assignment.variables[expression.variableId] ?? null;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
value = assignment.variables[expression.variableId] ?? null;
|
|
641
|
+
}
|
|
665
642
|
expressionValues[expression.id] = value;
|
|
666
643
|
return value;
|
|
667
644
|
}
|
|
@@ -701,6 +678,13 @@ export class PremiseEngine {
|
|
|
701
678
|
const rootValue = evaluateExpression(rootExpressionId);
|
|
702
679
|
const variableValues = {};
|
|
703
680
|
for (const variableId of referencedVariableIds) {
|
|
681
|
+
if (options?.resolver) {
|
|
682
|
+
const variable = this.variables.getVariable(variableId);
|
|
683
|
+
if (variable && isPremiseBound(variable)) {
|
|
684
|
+
variableValues[variableId] = options.resolver(variableId);
|
|
685
|
+
continue;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
704
688
|
variableValues[variableId] =
|
|
705
689
|
assignment.variables[variableId] ?? null;
|
|
706
690
|
}
|
|
@@ -895,8 +879,8 @@ export class PremiseEngine {
|
|
|
895
879
|
};
|
|
896
880
|
}
|
|
897
881
|
/** Creates a new PremiseEngine from a previously captured snapshot. */
|
|
898
|
-
static fromSnapshot(snapshot, argument, variables, expressionIndex
|
|
899
|
-
const pe = new PremiseEngine(snapshot.premise, { argument, variables, expressionIndex
|
|
882
|
+
static fromSnapshot(snapshot, argument, variables, expressionIndex) {
|
|
883
|
+
const pe = new PremiseEngine(snapshot.premise, { argument, variables, expressionIndex }, snapshot.config);
|
|
900
884
|
// Restore expressions from the snapshot
|
|
901
885
|
pe.expressions = ExpressionManager.fromSnapshot(snapshot.expressions);
|
|
902
886
|
// Restore rootExpressionId from snapshot
|