@polintpro/proposit-core 0.4.0 → 0.5.1
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/dist/cli/commands/sources.d.ts.map +1 -1
- package/dist/cli/commands/sources.js +13 -70
- 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 +3 -0
- package/dist/cli/commands/variables.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +10 -15
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +7 -1
- package/dist/cli/import.js.map +1 -1
- package/dist/extensions/ieee/source.d.ts +2 -2
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +13 -2
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +33 -33
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +37 -104
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/assertion-library.d.ts +27 -0
- package/dist/lib/core/assertion-library.d.ts.map +1 -0
- package/dist/lib/core/assertion-library.js +129 -0
- package/dist/lib/core/assertion-library.js.map +1 -0
- package/dist/lib/core/change-collector.d.ts +3 -11
- package/dist/lib/core/change-collector.d.ts.map +1 -1
- package/dist/lib/core/change-collector.js +0 -14
- package/dist/lib/core/change-collector.js.map +1 -1
- package/dist/lib/core/diff.d.ts +5 -7
- package/dist/lib/core/diff.d.ts.map +1 -1
- package/dist/lib/core/diff.js +31 -10
- package/dist/lib/core/diff.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +26 -22
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/index.d.ts +1 -0
- package/dist/lib/core/interfaces/index.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +19 -0
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/library.interfaces.js +2 -0
- package/dist/lib/core/interfaces/library.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +28 -16
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/source-management.interfaces.d.ts +19 -66
- package/dist/lib/core/interfaces/source-management.interfaces.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.d.ts +16 -15
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +54 -15
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/core/source-library.d.ts +27 -0
- package/dist/lib/core/source-library.d.ts.map +1 -0
- package/dist/lib/core/source-library.js +129 -0
- package/dist/lib/core/source-library.js.map +1 -0
- package/dist/lib/core/source-manager.d.ts +12 -83
- package/dist/lib/core/source-manager.d.ts.map +1 -1
- package/dist/lib/core/source-manager.js +37 -191
- package/dist/lib/core/source-manager.js.map +1 -1
- package/dist/lib/index.d.ts +4 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +3 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/assertion.d.ts +9 -0
- package/dist/lib/schemata/assertion.d.ts.map +1 -0
- package/dist/lib/schemata/assertion.js +18 -0
- package/dist/lib/schemata/assertion.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 +2 -0
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +5 -1
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/schemata/source.d.ts +4 -2
- package/dist/lib/schemata/source.d.ts.map +1 -1
- package/dist/lib/schemata/source.js +13 -3
- package/dist/lib/schemata/source.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +3 -1
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/diff.d.ts +3 -5
- package/dist/lib/types/diff.d.ts.map +1 -1
- package/dist/lib/types/mutation.d.ts +4 -5
- package/dist/lib/types/mutation.d.ts.map +1 -1
- package/dist/lib/types/reactive.d.ts +2 -3
- package/dist/lib/types/reactive.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,4 +2,5 @@ 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
4
|
export type { TSourceManagement } from "./source-management.interfaces.js";
|
|
5
|
+
export type { TAssertionLookup, TSourceLookup, TAssertionLibrarySnapshot, TSourceLibrarySnapshot, } from "./library.interfaces.js";
|
|
5
6
|
//# 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,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA"}
|
|
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,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,YAAY,EACR,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,GACzB,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TCoreAssertion } from "../../schemata/assertion.js";
|
|
2
|
+
import type { TCoreSource } from "../../schemata/source.js";
|
|
3
|
+
/** Narrow read-only interface for assertion lookups. Used by ArgumentEngine for validation. */
|
|
4
|
+
export interface TAssertionLookup<TAssertion extends TCoreAssertion = TCoreAssertion> {
|
|
5
|
+
get(id: string, version: number): TAssertion | undefined;
|
|
6
|
+
}
|
|
7
|
+
/** Narrow read-only interface for source lookups. Used by ArgumentEngine for validation. */
|
|
8
|
+
export interface TSourceLookup<TSource extends TCoreSource = TCoreSource> {
|
|
9
|
+
get(id: string, version: number): TSource | undefined;
|
|
10
|
+
}
|
|
11
|
+
/** Serializable snapshot of an AssertionLibrary. */
|
|
12
|
+
export type TAssertionLibrarySnapshot<TAssertion extends TCoreAssertion = TCoreAssertion> = {
|
|
13
|
+
assertions: TAssertion[];
|
|
14
|
+
};
|
|
15
|
+
/** Serializable snapshot of a SourceLibrary. */
|
|
16
|
+
export type TSourceLibrarySnapshot<TSource extends TCoreSource = TCoreSource> = {
|
|
17
|
+
sources: TSource[];
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=library.interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAE3D,+FAA+F;AAC/F,MAAM,WAAW,gBAAgB,CAC7B,UAAU,SAAS,cAAc,GAAG,cAAc;IAElD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;CAC3D;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,oDAAoD;AACpD,MAAM,MAAM,yBAAyB,CACjC,UAAU,SAAS,cAAc,GAAG,cAAc,IAClD;IACA,UAAU,EAAE,UAAU,EAAE,CAAA;CAC3B,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IACxE;IACI,OAAO,EAAE,OAAO,EAAE,CAAA;CACrB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.interfaces.js","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable,
|
|
1
|
+
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TCoreExpressionSourceAssociation } 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";
|
|
@@ -6,7 +6,7 @@ import type { TPremiseEngineSnapshot } from "../premise-engine.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Single-premise expression tree mutations.
|
|
8
8
|
*/
|
|
9
|
-
export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable
|
|
9
|
+
export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
|
|
10
10
|
/**
|
|
11
11
|
* Adds an expression to this premise's tree.
|
|
12
12
|
*
|
|
@@ -23,7 +23,7 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
23
23
|
* @throws If the expression is a variable reference and the variable
|
|
24
24
|
* has not been registered.
|
|
25
25
|
*/
|
|
26
|
-
addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
26
|
+
addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
27
27
|
/**
|
|
28
28
|
* Adds an expression as the last child of the given parent, with
|
|
29
29
|
* position computed automatically. If `parentId` is `null`, the
|
|
@@ -36,7 +36,7 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
36
36
|
* @throws If the expression is a variable reference and the variable
|
|
37
37
|
* has not been registered.
|
|
38
38
|
*/
|
|
39
|
-
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
39
|
+
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
40
40
|
/**
|
|
41
41
|
* Adds an expression immediately before or after an existing sibling,
|
|
42
42
|
* with position computed automatically.
|
|
@@ -50,7 +50,7 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
50
50
|
* @throws If the expression is a variable reference and the variable
|
|
51
51
|
* has not been registered.
|
|
52
52
|
*/
|
|
53
|
-
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
53
|
+
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
54
54
|
/**
|
|
55
55
|
* Updates mutable fields of an existing expression. Only `position`,
|
|
56
56
|
* `variableId`, and `operator` may be updated.
|
|
@@ -61,7 +61,7 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
61
61
|
* @throws If the expression does not exist in this premise.
|
|
62
62
|
* @throws If `variableId` references a non-existent variable.
|
|
63
63
|
*/
|
|
64
|
-
updateExpression(expressionId: string, updates: TExpressionUpdate): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
64
|
+
updateExpression(expressionId: string, updates: TExpressionUpdate): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
65
65
|
/**
|
|
66
66
|
* Removes an expression and optionally its entire descendant subtree,
|
|
67
67
|
* then collapses any ancestor operators with fewer than two children.
|
|
@@ -70,7 +70,7 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
70
70
|
* @param deleteSubtree - Whether to remove all descendants as well.
|
|
71
71
|
* @returns The removed root expression, or `undefined` if not found.
|
|
72
72
|
*/
|
|
73
|
-
removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg
|
|
73
|
+
removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg>;
|
|
74
74
|
/**
|
|
75
75
|
* Splices a new expression between existing nodes in the tree. The new
|
|
76
76
|
* expression inherits the tree slot of the anchor node
|
|
@@ -86,7 +86,7 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
86
86
|
* @throws If the expression is a variable reference and the variable
|
|
87
87
|
* has not been registered.
|
|
88
88
|
*/
|
|
89
|
-
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
89
|
+
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
90
90
|
/**
|
|
91
91
|
* Wraps an existing expression with a new operator and a new sibling
|
|
92
92
|
* in a single atomic operation.
|
|
@@ -105,26 +105,38 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
105
105
|
* @throws If the new sibling is a variable reference and the variable
|
|
106
106
|
* has not been registered.
|
|
107
107
|
*/
|
|
108
|
-
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
108
|
+
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
109
|
+
/**
|
|
110
|
+
* Toggles negation on an expression. If the expression's parent is a
|
|
111
|
+
* NOT operator, removes the NOT (promoting the expression). Otherwise,
|
|
112
|
+
* wraps the expression with a new NOT operator.
|
|
113
|
+
*
|
|
114
|
+
* @param expressionId - The ID of the expression to toggle negation on.
|
|
115
|
+
* @returns The new NOT expression when adding negation, or `null` when
|
|
116
|
+
* removing it, along with the changeset.
|
|
117
|
+
* @throws If the expression does not exist in this premise.
|
|
118
|
+
*/
|
|
119
|
+
toggleNegation(expressionId: string): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
109
120
|
/**
|
|
110
121
|
* Creates an association between a source and this expression within
|
|
111
122
|
* this premise.
|
|
112
123
|
*
|
|
113
124
|
* @param sourceId - The ID of the source.
|
|
125
|
+
* @param sourceVersion - The version of the source to associate.
|
|
114
126
|
* @param expressionId - The ID of the expression to associate.
|
|
115
127
|
* @returns The created association and changeset.
|
|
116
|
-
* @throws If the source does not exist.
|
|
128
|
+
* @throws If the source does not exist in the source library.
|
|
117
129
|
* @throws If the expression does not exist in this premise.
|
|
118
130
|
* @throws If the association already exists.
|
|
119
131
|
*/
|
|
120
|
-
addExpressionSourceAssociation(sourceId: string, expressionId: string): TCoreMutationResult<TCoreExpressionSourceAssociation, TExpr, TVar, TPremise, TArg
|
|
132
|
+
addExpressionSourceAssociation(sourceId: string, sourceVersion: number, expressionId: string): TCoreMutationResult<TCoreExpressionSourceAssociation, TExpr, TVar, TPremise, TArg>;
|
|
121
133
|
/**
|
|
122
134
|
* Removes an expression–source association by its own ID.
|
|
123
135
|
*
|
|
124
136
|
* @param associationId - The ID of the association to remove.
|
|
125
137
|
* @returns The removed association, or `undefined` if not found.
|
|
126
138
|
*/
|
|
127
|
-
removeExpressionSourceAssociation(associationId: string): TCoreMutationResult<TCoreExpressionSourceAssociation | undefined, TExpr, TVar, TPremise, TArg
|
|
139
|
+
removeExpressionSourceAssociation(associationId: string): TCoreMutationResult<TCoreExpressionSourceAssociation | undefined, TExpr, TVar, TPremise, TArg>;
|
|
128
140
|
/**
|
|
129
141
|
* Returns all source associations for a given expression in this
|
|
130
142
|
* premise.
|
|
@@ -178,7 +190,7 @@ export interface TExpressionQueries<TExpr extends TCorePropositionalExpression =
|
|
|
178
190
|
/**
|
|
179
191
|
* Variable reference queries and cascade deletion.
|
|
180
192
|
*/
|
|
181
|
-
export interface TVariableReferences<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable
|
|
193
|
+
export interface TVariableReferences<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
|
|
182
194
|
/**
|
|
183
195
|
* Returns all argument-level variables (from the shared
|
|
184
196
|
* VariableManager) sorted by ID. Since the VariableManager is shared
|
|
@@ -204,7 +216,7 @@ export interface TVariableReferences<TArg extends TCoreArgument = TCoreArgument,
|
|
|
204
216
|
* should be removed.
|
|
205
217
|
* @returns The removed expressions and changeset.
|
|
206
218
|
*/
|
|
207
|
-
deleteExpressionsUsingVariable(variableId: string): TCoreMutationResult<TExpr[], TExpr, TVar, TPremise, TArg
|
|
219
|
+
deleteExpressionsUsingVariable(variableId: string): TCoreMutationResult<TExpr[], TExpr, TVar, TPremise, TArg>;
|
|
208
220
|
}
|
|
209
221
|
/**
|
|
210
222
|
* Premise type classification (inference vs constraint).
|
|
@@ -285,7 +297,7 @@ export interface TPremiseLifecycle<TPremise extends TCorePremise = TCorePremise,
|
|
|
285
297
|
/**
|
|
286
298
|
* Premise entity identity and metadata access.
|
|
287
299
|
*/
|
|
288
|
-
export interface TPremiseIdentity<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable
|
|
300
|
+
export interface TPremiseIdentity<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
|
|
289
301
|
/**
|
|
290
302
|
* Returns the premise ID.
|
|
291
303
|
*
|
|
@@ -312,6 +324,6 @@ export interface TPremiseIdentity<TArg extends TCoreArgument = TCoreArgument, TP
|
|
|
312
324
|
* @param extras - The new extras record.
|
|
313
325
|
* @returns The previous extras record and changeset.
|
|
314
326
|
*/
|
|
315
|
-
setExtras(extras: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>, TExpr, TVar, TPremise, TArg
|
|
327
|
+
setExtras(extras: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>, TExpr, TVar, TPremise, TArg>;
|
|
316
328
|
}
|
|
317
329
|
//# sourceMappingURL=premise-engine.interfaces.d.ts.map
|
|
@@ -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,EAC1B,
|
|
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,110 +1,63 @@
|
|
|
1
|
-
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable,
|
|
1
|
+
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TCoreVariableSourceAssociation, TCoreExpressionSourceAssociation } from "../../schemata/index.js";
|
|
2
2
|
import type { TCoreMutationResult } from "../../types/mutation.js";
|
|
3
3
|
/**
|
|
4
|
-
* Source
|
|
4
|
+
* Source association management and lookup for an argument.
|
|
5
|
+
* Source entities live in SourceLibrary; this interface manages associations only.
|
|
5
6
|
*/
|
|
6
|
-
export interface TSourceManagement<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable
|
|
7
|
-
/**
|
|
8
|
-
* Registers a new source with this argument.
|
|
9
|
-
*
|
|
10
|
-
* @param source - The source entity to add, with optional checksum.
|
|
11
|
-
* @returns The added source (with checksum) and changeset.
|
|
12
|
-
* @throws If a source with the given ID already exists.
|
|
13
|
-
*/
|
|
14
|
-
addSource(source: TOptionalChecksum<TSource>): TCoreMutationResult<TSource, TExpr, TVar, TPremise, TArg, TSource>;
|
|
15
|
-
/**
|
|
16
|
-
* Removes a source and any associations referencing it.
|
|
17
|
-
*
|
|
18
|
-
* @param sourceId - The ID of the source to remove.
|
|
19
|
-
* @returns The removed source, or `undefined` if not found.
|
|
20
|
-
*/
|
|
21
|
-
removeSource(sourceId: string): TCoreMutationResult<TSource | undefined, TExpr, TVar, TPremise, TArg, TSource>;
|
|
7
|
+
export interface TSourceManagement<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
|
|
22
8
|
/**
|
|
23
9
|
* Creates an association between a source and a variable.
|
|
24
10
|
*
|
|
25
11
|
* @param sourceId - The ID of the source.
|
|
12
|
+
* @param sourceVersion - The version of the source to associate.
|
|
26
13
|
* @param variableId - The ID of the variable to associate.
|
|
27
14
|
* @returns The created association and changeset.
|
|
28
|
-
* @throws If the source does not exist.
|
|
15
|
+
* @throws If the source does not exist in the source library.
|
|
29
16
|
* @throws If the variable does not exist.
|
|
30
|
-
* @throws If the association already exists.
|
|
31
17
|
*/
|
|
32
|
-
addVariableSourceAssociation(sourceId: string, variableId: string): TCoreMutationResult<TCoreVariableSourceAssociation, TExpr, TVar, TPremise, TArg
|
|
18
|
+
addVariableSourceAssociation(sourceId: string, sourceVersion: number, variableId: string): TCoreMutationResult<TCoreVariableSourceAssociation, TExpr, TVar, TPremise, TArg>;
|
|
33
19
|
/**
|
|
34
|
-
* Removes a variable
|
|
20
|
+
* Removes a variable-source association by its own ID.
|
|
35
21
|
*
|
|
36
22
|
* @param associationId - The ID of the association to remove.
|
|
37
23
|
* @returns The removed association, or `undefined` if not found.
|
|
38
24
|
*/
|
|
39
|
-
removeVariableSourceAssociation(associationId: string): TCoreMutationResult<TCoreVariableSourceAssociation | undefined, TExpr, TVar, TPremise, TArg
|
|
25
|
+
removeVariableSourceAssociation(associationId: string): TCoreMutationResult<TCoreVariableSourceAssociation | undefined, TExpr, TVar, TPremise, TArg>;
|
|
40
26
|
/**
|
|
41
27
|
* Creates an association between a source and an expression within a
|
|
42
28
|
* specific premise.
|
|
43
29
|
*
|
|
44
30
|
* @param sourceId - The ID of the source.
|
|
31
|
+
* @param sourceVersion - The version of the source to associate.
|
|
45
32
|
* @param expressionId - The ID of the expression to associate.
|
|
46
33
|
* @param premiseId - The ID of the premise that owns the expression.
|
|
47
34
|
* @returns The created association and changeset.
|
|
48
|
-
* @throws If the source does not exist.
|
|
35
|
+
* @throws If the source does not exist in the source library.
|
|
49
36
|
* @throws If the expression does not exist in the specified premise.
|
|
50
|
-
* @throws If the association already exists.
|
|
51
37
|
*/
|
|
52
|
-
addExpressionSourceAssociation(sourceId: string, expressionId: string, premiseId: string): TCoreMutationResult<TCoreExpressionSourceAssociation, TExpr, TVar, TPremise, TArg
|
|
38
|
+
addExpressionSourceAssociation(sourceId: string, sourceVersion: number, expressionId: string, premiseId: string): TCoreMutationResult<TCoreExpressionSourceAssociation, TExpr, TVar, TPremise, TArg>;
|
|
53
39
|
/**
|
|
54
|
-
* Removes an expression
|
|
40
|
+
* Removes an expression-source association by its own ID.
|
|
55
41
|
*
|
|
56
42
|
* @param associationId - The ID of the association to remove.
|
|
57
43
|
* @returns The removed association, or `undefined` if not found.
|
|
58
44
|
*/
|
|
59
|
-
removeExpressionSourceAssociation(associationId: string): TCoreMutationResult<TCoreExpressionSourceAssociation | undefined, TExpr, TVar, TPremise, TArg
|
|
60
|
-
/**
|
|
61
|
-
* Returns all registered sources sorted by ID.
|
|
62
|
-
*
|
|
63
|
-
* @returns An array of source entities.
|
|
64
|
-
*/
|
|
65
|
-
getSources(): TSource[];
|
|
66
|
-
/**
|
|
67
|
-
* Returns the source with the given ID, or `undefined` if not found.
|
|
68
|
-
*
|
|
69
|
-
* @param sourceId - The source ID to look up.
|
|
70
|
-
* @returns The source entity, or `undefined`.
|
|
71
|
-
*/
|
|
72
|
-
getSource(sourceId: string): TSource | undefined;
|
|
45
|
+
removeExpressionSourceAssociation(associationId: string): TCoreMutationResult<TCoreExpressionSourceAssociation | undefined, TExpr, TVar, TPremise, TArg>;
|
|
73
46
|
/**
|
|
74
47
|
* Returns all variable and expression associations for a given source.
|
|
75
|
-
*
|
|
76
|
-
* @param sourceId - The source ID to look up.
|
|
77
|
-
* @returns An object with `variable` and `expression` association arrays.
|
|
48
|
+
* Returns associations across all source versions for that ID.
|
|
78
49
|
*/
|
|
79
50
|
getAssociationsForSource(sourceId: string): {
|
|
80
51
|
variable: TCoreVariableSourceAssociation[];
|
|
81
52
|
expression: TCoreExpressionSourceAssociation[];
|
|
82
53
|
};
|
|
83
|
-
/**
|
|
84
|
-
* Returns all source associations for a given variable.
|
|
85
|
-
*
|
|
86
|
-
* @param variableId - The variable ID to look up.
|
|
87
|
-
* @returns An array of variable–source associations.
|
|
88
|
-
*/
|
|
54
|
+
/** Returns all source associations for a given variable. */
|
|
89
55
|
getAssociationsForVariable(variableId: string): TCoreVariableSourceAssociation[];
|
|
90
|
-
/**
|
|
91
|
-
* Returns all source associations for a given expression.
|
|
92
|
-
*
|
|
93
|
-
* @param expressionId - The expression ID to look up.
|
|
94
|
-
* @returns An array of expression–source associations.
|
|
95
|
-
*/
|
|
56
|
+
/** Returns all source associations for a given expression. */
|
|
96
57
|
getAssociationsForExpression(expressionId: string): TCoreExpressionSourceAssociation[];
|
|
97
|
-
/**
|
|
98
|
-
* Returns all variable–source associations across the argument.
|
|
99
|
-
*
|
|
100
|
-
* @returns An array of all variable–source association entities.
|
|
101
|
-
*/
|
|
58
|
+
/** Returns all variable-source associations across the argument. */
|
|
102
59
|
getAllVariableSourceAssociations(): TCoreVariableSourceAssociation[];
|
|
103
|
-
/**
|
|
104
|
-
* Returns all expression–source associations across the argument.
|
|
105
|
-
*
|
|
106
|
-
* @returns An array of all expression–source association entities.
|
|
107
|
-
*/
|
|
60
|
+
/** Returns all expression-source associations across the argument. */
|
|
108
61
|
getAllExpressionSourceAssociations(): TCoreExpressionSourceAssociation[];
|
|
109
62
|
}
|
|
110
63
|
//# sourceMappingURL=source-management.interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-management.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/source-management.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"source-management.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/source-management.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,EAC9B,gCAAgC,EACnC,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAElE;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAC9B,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE;;;;;;;;;OASG;IACH,4BAA4B,CACxB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACnB,mBAAmB,CAClB,8BAA8B,EAC9B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP,CAAA;IAED;;;;;OAKG;IACH,+BAA+B,CAC3B,aAAa,EAAE,MAAM,GACtB,mBAAmB,CAClB,8BAA8B,GAAG,SAAS,EAC1C,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP,CAAA;IAED;;;;;;;;;;;OAWG;IACH,8BAA8B,CAC1B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAClB,mBAAmB,CAClB,gCAAgC,EAChC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP,CAAA;IAED;;;;;OAKG;IACH,iCAAiC,CAC7B,aAAa,EAAE,MAAM,GACtB,mBAAmB,CAClB,gCAAgC,GAAG,SAAS,EAC5C,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,CACP,CAAA;IAED;;;OAGG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;QACxC,QAAQ,EAAE,8BAA8B,EAAE,CAAA;QAC1C,UAAU,EAAE,gCAAgC,EAAE,CAAA;KACjD,CAAA;IAED,4DAA4D;IAC5D,0BAA0B,CACtB,UAAU,EAAE,MAAM,GACnB,8BAA8B,EAAE,CAAA;IAEnC,8DAA8D;IAC9D,4BAA4B,CACxB,YAAY,EAAE,MAAM,GACrB,gCAAgC,EAAE,CAAA;IAErC,oEAAoE;IACpE,gCAAgC,IAAI,8BAA8B,EAAE,CAAA;IAEpE,sEAAsE;IACtE,kCAAkC,IAAI,gCAAgC,EAAE,CAAA;CAC3E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TOptionalChecksum,
|
|
1
|
+
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TOptionalChecksum, TCoreExpressionSourceAssociation } 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";
|
|
@@ -12,7 +12,7 @@ export type TPremiseEngineSnapshot<TPremise extends TCorePremise = TCorePremise,
|
|
|
12
12
|
expressions: TExpressionManagerSnapshot<TExpr>;
|
|
13
13
|
config?: TLogicEngineOptions;
|
|
14
14
|
};
|
|
15
|
-
export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable
|
|
15
|
+
export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> implements TExpressionMutations<TArg, TPremise, TExpr, TVar>, TExpressionQueries<TExpr>, TVariableReferences<TArg, TPremise, TExpr, TVar>, TPremiseClassification, TPremiseEvaluation, TPremiseLifecycle<TPremise, TExpr>, TPremiseIdentity<TArg, TPremise, TExpr, TVar>, TDisplayable, TChecksummable {
|
|
16
16
|
private premise;
|
|
17
17
|
private rootExpressionId;
|
|
18
18
|
private variables;
|
|
@@ -29,24 +29,25 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
29
29
|
argument: TOptionalChecksum<TArg>;
|
|
30
30
|
variables: VariableManager<TVar>;
|
|
31
31
|
expressionIndex?: Map<string, string>;
|
|
32
|
-
sourceManager?: SourceManager
|
|
32
|
+
sourceManager?: SourceManager;
|
|
33
33
|
}, config?: TLogicEngineOptions);
|
|
34
34
|
setOnMutate(callback: (() => void) | undefined): void;
|
|
35
|
-
deleteExpressionsUsingVariable(variableId: string): TCoreMutationResult<TExpr[], TExpr, TVar, TPremise, TArg
|
|
36
|
-
addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
37
|
-
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
38
|
-
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
39
|
-
updateExpression(expressionId: string, updates: TExpressionUpdate): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
40
|
-
removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg
|
|
41
|
-
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
42
|
-
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
deleteExpressionsUsingVariable(variableId: string): TCoreMutationResult<TExpr[], TExpr, TVar, TPremise, TArg>;
|
|
36
|
+
addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
37
|
+
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
38
|
+
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
39
|
+
updateExpression(expressionId: string, updates: TExpressionUpdate): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
40
|
+
removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg>;
|
|
41
|
+
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
42
|
+
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
43
|
+
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>;
|
|
45
46
|
getSourceAssociationsForExpression(expressionId: string): TCoreExpressionSourceAssociation[];
|
|
46
47
|
getExpression(id: string): TExpr | undefined;
|
|
47
48
|
getId(): string;
|
|
48
49
|
getExtras(): Record<string, unknown>;
|
|
49
|
-
setExtras(extras: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>, TExpr, TVar, TPremise, TArg
|
|
50
|
+
setExtras(extras: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>, TExpr, TVar, TPremise, TArg>;
|
|
50
51
|
getRootExpressionId(): string | undefined;
|
|
51
52
|
getRootExpression(): TExpr | undefined;
|
|
52
53
|
getVariables(): TVar[];
|
|
@@ -76,7 +77,7 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
76
77
|
private operatorSymbol;
|
|
77
78
|
snapshot(): TPremiseEngineSnapshot<TPremise, TExpr>;
|
|
78
79
|
/** Creates a new PremiseEngine from a previously captured snapshot. */
|
|
79
|
-
static fromSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable
|
|
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>, sourceManager?: SourceManager): PremiseEngine<TArg, TPremise, TExpr, TVar>;
|
|
80
81
|
private syncExpressionIndex;
|
|
81
82
|
private rebuildVariableIndex;
|
|
82
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EAEb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,11 +66,6 @@ export class PremiseEngine {
|
|
|
66
66
|
collector.removedExpressionSourceAssociation(a);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
if (changes.sources) {
|
|
70
|
-
for (const s of changes.sources.removed) {
|
|
71
|
-
collector.removedSource(s);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
69
|
}
|
|
75
70
|
// Expressions in the collector already have checksums attached
|
|
76
71
|
// (from ExpressionManager which stores expressions with checksums).
|
|
@@ -293,9 +288,6 @@ export class PremiseEngine {
|
|
|
293
288
|
for (const assoc of sourceResult.removedExpressionAssociations) {
|
|
294
289
|
collector.removedExpressionSourceAssociation(assoc);
|
|
295
290
|
}
|
|
296
|
-
for (const orphan of sourceResult.removedOrphanSources) {
|
|
297
|
-
collector.removedSource(orphan);
|
|
298
|
-
}
|
|
299
291
|
}
|
|
300
292
|
}
|
|
301
293
|
}
|
|
@@ -370,22 +362,72 @@ export class PremiseEngine {
|
|
|
370
362
|
this.expressions.setCollector(null);
|
|
371
363
|
}
|
|
372
364
|
}
|
|
365
|
+
toggleNegation(expressionId) {
|
|
366
|
+
const target = this.expressions.getExpression(expressionId);
|
|
367
|
+
if (!target) {
|
|
368
|
+
throw new Error(`Expression "${expressionId}" not found in this premise.`);
|
|
369
|
+
}
|
|
370
|
+
this.assertBelongsToArgument(target.argumentId, target.argumentVersion);
|
|
371
|
+
const collector = new ChangeCollector();
|
|
372
|
+
this.expressions.setCollector(collector);
|
|
373
|
+
try {
|
|
374
|
+
const parent = target.parentId
|
|
375
|
+
? this.expressions.getExpression(target.parentId)
|
|
376
|
+
: undefined;
|
|
377
|
+
if (parent &&
|
|
378
|
+
parent.type === "operator" &&
|
|
379
|
+
parent.operator === "not") {
|
|
380
|
+
// Remove the NOT operator, promoting target into its slot
|
|
381
|
+
this.expressions.removeExpression(parent.id, false);
|
|
382
|
+
this.syncRootExpressionId();
|
|
383
|
+
this.markDirty();
|
|
384
|
+
const changes = collector.toChangeset();
|
|
385
|
+
this.syncExpressionIndex(changes);
|
|
386
|
+
this.onMutate?.();
|
|
387
|
+
return { result: null, changes };
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
// Wrap target with a new NOT operator
|
|
391
|
+
const notExpr = {
|
|
392
|
+
id: randomUUID(),
|
|
393
|
+
argumentId: target.argumentId,
|
|
394
|
+
argumentVersion: target.argumentVersion,
|
|
395
|
+
premiseId: target.premiseId,
|
|
396
|
+
type: "operator",
|
|
397
|
+
operator: "not",
|
|
398
|
+
parentId: target.parentId,
|
|
399
|
+
position: target.position,
|
|
400
|
+
};
|
|
401
|
+
this.expressions.insertExpression(notExpr, expressionId);
|
|
402
|
+
this.syncRootExpressionId();
|
|
403
|
+
this.markDirty();
|
|
404
|
+
const changes = collector.toChangeset();
|
|
405
|
+
this.syncExpressionIndex(changes);
|
|
406
|
+
this.onMutate?.();
|
|
407
|
+
return {
|
|
408
|
+
result: this.expressions.getExpression(notExpr.id),
|
|
409
|
+
changes,
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
finally {
|
|
414
|
+
this.expressions.setCollector(null);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
373
417
|
// -------------------------------------------------------------------------
|
|
374
418
|
// Source association convenience methods
|
|
375
419
|
// -------------------------------------------------------------------------
|
|
376
|
-
addExpressionSourceAssociation(sourceId, expressionId) {
|
|
420
|
+
addExpressionSourceAssociation(sourceId, sourceVersion, expressionId) {
|
|
377
421
|
if (!this.sourceManager) {
|
|
378
422
|
throw new Error("No SourceManager available.");
|
|
379
423
|
}
|
|
380
|
-
if (!this.sourceManager.getSource(sourceId)) {
|
|
381
|
-
throw new Error(`Source "${sourceId}" does not exist.`);
|
|
382
|
-
}
|
|
383
424
|
if (!this.expressions.getExpression(expressionId)) {
|
|
384
425
|
throw new Error(`Expression "${expressionId}" does not exist in premise "${this.premise.id}".`);
|
|
385
426
|
}
|
|
386
427
|
const assoc = {
|
|
387
428
|
id: randomUUID(),
|
|
388
429
|
sourceId,
|
|
430
|
+
sourceVersion,
|
|
389
431
|
expressionId,
|
|
390
432
|
premiseId: this.premise.id,
|
|
391
433
|
argumentId: this.argument.id,
|
|
@@ -418,9 +460,6 @@ export class PremiseEngine {
|
|
|
418
460
|
for (const assoc of removalResult.removedExpressionAssociations) {
|
|
419
461
|
collector.removedExpressionSourceAssociation(assoc);
|
|
420
462
|
}
|
|
421
|
-
for (const orphan of removalResult.removedOrphanSources) {
|
|
422
|
-
collector.removedSource(orphan);
|
|
423
|
-
}
|
|
424
463
|
this.markDirty();
|
|
425
464
|
this.onMutate?.();
|
|
426
465
|
return {
|