@polintpro/proposit-core 0.2.2 → 0.2.4
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 +25 -13
- package/dist/cli/commands/expressions.js +1 -1
- package/dist/cli/commands/expressions.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/core/ArgumentEngine.d.ts +23 -19
- package/dist/lib/core/ArgumentEngine.d.ts.map +1 -1
- package/dist/lib/core/ArgumentEngine.js +15 -11
- package/dist/lib/core/ArgumentEngine.js.map +1 -1
- package/dist/lib/core/ChangeCollector.d.ts +13 -14
- package/dist/lib/core/ChangeCollector.d.ts.map +1 -1
- package/dist/lib/core/ChangeCollector.js.map +1 -1
- package/dist/lib/core/ExpressionManager.d.ts +53 -43
- package/dist/lib/core/ExpressionManager.d.ts.map +1 -1
- package/dist/lib/core/ExpressionManager.js +219 -23
- package/dist/lib/core/ExpressionManager.js.map +1 -1
- package/dist/lib/core/PremiseManager.d.ts +37 -20
- package/dist/lib/core/PremiseManager.d.ts.map +1 -1
- package/dist/lib/core/PremiseManager.js +97 -35
- package/dist/lib/core/PremiseManager.js.map +1 -1
- package/dist/lib/core/VariableManager.d.ts +7 -8
- package/dist/lib/core/VariableManager.d.ts.map +1 -1
- package/dist/lib/core/VariableManager.js +4 -1
- package/dist/lib/core/VariableManager.js.map +1 -1
- package/dist/lib/core/diff.d.ts +1 -1
- package/dist/lib/core/diff.d.ts.map +1 -1
- package/dist/lib/core/diff.js +19 -11
- package/dist/lib/core/diff.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +0 -1
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/schemata/shared.d.ts +4 -0
- package/dist/lib/schemata/shared.d.ts.map +1 -1
- package/dist/lib/types/diff.d.ts +15 -15
- package/dist/lib/types/diff.d.ts.map +1 -1
- package/dist/lib/types/mutation.d.ts +7 -20
- package/dist/lib/types/mutation.d.ts.map +1 -1
- package/dist/lib/utils/position.d.ts +9 -3
- package/dist/lib/utils/position.d.ts.map +1 -1
- package/dist/lib/utils/position.js +8 -3
- package/dist/lib/utils/position.js.map +1 -1
- package/package.json +3 -2
- package/skills/proposit-core/SKILL.md +35 -0
- package/skills/proposit-core/docs/api-usage.md +442 -0
- package/skills/proposit-core/docs/architecture.md +256 -0
- package/skills/proposit-core/docs/cli.md +304 -0
- package/skills/proposit-core/docs/testing.md +281 -0
- package/skills/proposit-core/docs/types-schemas.md +648 -0
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type { TCorePropositionalExpression } from "../schemata/index.js";
|
|
1
|
+
import type { TCoreLogicalOperatorType, TCorePropositionalExpression } from "../schemata/index.js";
|
|
2
2
|
import type { ChangeCollector } from "./ChangeCollector.js";
|
|
3
|
-
|
|
4
|
-
export type
|
|
3
|
+
import { type TCorePositionConfig } from "../utils/position.js";
|
|
4
|
+
export type TExpressionInput<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = TExpr extends infer U ? U extends TCorePropositionalExpression ? Omit<U, "checksum"> : never : never;
|
|
5
|
+
export type TExpressionWithoutPosition<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = TExpr extends infer U ? U extends TCorePropositionalExpression ? Omit<U, "position" | "checksum"> : never : never;
|
|
6
|
+
/** Fields that may be updated on an existing expression. */
|
|
7
|
+
export type TExpressionUpdate = {
|
|
8
|
+
position?: number;
|
|
9
|
+
variableId?: string;
|
|
10
|
+
operator?: TCoreLogicalOperatorType;
|
|
11
|
+
};
|
|
5
12
|
/**
|
|
6
13
|
* Low-level manager for a flat-stored expression tree.
|
|
7
14
|
*
|
|
@@ -13,15 +20,16 @@ export type TExpressionWithoutPosition = TCorePropositionalExpression extends in
|
|
|
13
20
|
* This class is an internal building block used by {@link PremiseManager}
|
|
14
21
|
* and is not part of the public API.
|
|
15
22
|
*/
|
|
16
|
-
export declare class ExpressionManager {
|
|
23
|
+
export declare class ExpressionManager<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> {
|
|
17
24
|
private expressions;
|
|
18
25
|
private childExpressionIdsByParentId;
|
|
19
26
|
private childPositionsByParentId;
|
|
27
|
+
private positionConfig;
|
|
20
28
|
private collector;
|
|
21
29
|
setCollector(collector: ChangeCollector | null): void;
|
|
22
|
-
constructor(initialExpressions?: TExpressionInput[]);
|
|
30
|
+
constructor(initialExpressions?: TExpressionInput<TExpr>[], positionConfig?: TCorePositionConfig);
|
|
23
31
|
/** Returns all expressions sorted by ID for deterministic output. */
|
|
24
|
-
toArray(): TExpressionInput[];
|
|
32
|
+
toArray(): TExpressionInput<TExpr>[];
|
|
25
33
|
/**
|
|
26
34
|
* Adds an expression to the tree.
|
|
27
35
|
*
|
|
@@ -32,7 +40,7 @@ export declare class ExpressionManager {
|
|
|
32
40
|
* @throws If the parent's child limit would be exceeded.
|
|
33
41
|
* @throws If the position is already occupied under the parent.
|
|
34
42
|
*/
|
|
35
|
-
addExpression(expression: TExpressionInput): void;
|
|
43
|
+
addExpression(expression: TExpressionInput<TExpr>): void;
|
|
36
44
|
/**
|
|
37
45
|
* Adds an expression as the last child of the given parent.
|
|
38
46
|
*
|
|
@@ -40,56 +48,58 @@ export declare class ExpressionManager {
|
|
|
40
48
|
* Otherwise it gets a midpoint between the last child's position and
|
|
41
49
|
* `POSITION_MAX`.
|
|
42
50
|
*/
|
|
43
|
-
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition): void;
|
|
51
|
+
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): void;
|
|
44
52
|
/**
|
|
45
53
|
* Adds an expression immediately before or after an existing sibling.
|
|
46
54
|
*
|
|
47
55
|
* @throws If the sibling does not exist.
|
|
48
56
|
*/
|
|
49
|
-
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition): void;
|
|
57
|
+
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): void;
|
|
50
58
|
/**
|
|
51
|
-
*
|
|
59
|
+
* Updates mutable fields of an existing expression in-place.
|
|
52
60
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
61
|
+
* Only `position`, `variableId`, and `operator` may be updated. Structural
|
|
62
|
+
* fields (`id`, `parentId`, `type`, `argumentId`, `argumentVersion`,
|
|
63
|
+
* `checksum`) are forbidden.
|
|
56
64
|
*
|
|
65
|
+
* Operator changes are restricted to permitted swaps: `and`/`or` and
|
|
66
|
+
* `implies`/`iff`. Variable ID changes require the expression to be of
|
|
67
|
+
* type `"variable"`.
|
|
68
|
+
*
|
|
69
|
+
* @throws If the expression does not exist.
|
|
70
|
+
* @throws If a forbidden field is present in `updates`.
|
|
71
|
+
* @throws If an operator change is not permitted.
|
|
72
|
+
* @throws If `variableId` is set on a non-variable expression.
|
|
73
|
+
* @throws If the new position collides with a sibling.
|
|
74
|
+
*/
|
|
75
|
+
updateExpression(expressionId: string, updates: TExpressionUpdate): TExpressionInput<TExpr>;
|
|
76
|
+
/**
|
|
77
|
+
* Removes an expression from the tree.
|
|
78
|
+
*
|
|
79
|
+
* When `deleteSubtree` is `true`, the expression and its entire descendant
|
|
80
|
+
* subtree are removed, then {@link collapseIfNeeded} runs on the parent.
|
|
81
|
+
*
|
|
82
|
+
* When `deleteSubtree` is `false`, the expression is removed but its single
|
|
83
|
+
* child (if any) is promoted into the removed expression's slot. If the
|
|
84
|
+
* expression has more than one child, an error is thrown. Leaf removal
|
|
85
|
+
* (0 children) still triggers {@link collapseIfNeeded} on the parent.
|
|
86
|
+
* Promotion does **not** trigger collapse.
|
|
87
|
+
*
|
|
88
|
+
* @throws If `deleteSubtree` is `false` and the expression has multiple children.
|
|
89
|
+
* @throws If `deleteSubtree` is `false` and the single child is a root-only
|
|
90
|
+
* operator (`implies`/`iff`) that would be placed in a non-root position.
|
|
57
91
|
* @returns The removed expression, or `undefined` if not found.
|
|
58
92
|
*/
|
|
59
|
-
removeExpression(expressionId: string):
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
type: "variable";
|
|
63
|
-
argumentId: string;
|
|
64
|
-
argumentVersion: number;
|
|
65
|
-
parentId: string | null;
|
|
66
|
-
position: number;
|
|
67
|
-
variableId: string;
|
|
68
|
-
}, "checksum"> | Omit<{
|
|
69
|
-
id: string;
|
|
70
|
-
checksum: string;
|
|
71
|
-
type: "operator";
|
|
72
|
-
operator: "not" | "and" | "or" | "implies" | "iff";
|
|
73
|
-
argumentId: string;
|
|
74
|
-
argumentVersion: number;
|
|
75
|
-
parentId: string | null;
|
|
76
|
-
position: number;
|
|
77
|
-
}, "checksum"> | Omit<{
|
|
78
|
-
id: string;
|
|
79
|
-
checksum: string;
|
|
80
|
-
type: "formula";
|
|
81
|
-
argumentId: string;
|
|
82
|
-
argumentVersion: number;
|
|
83
|
-
parentId: string | null;
|
|
84
|
-
position: number;
|
|
85
|
-
}, "checksum"> | undefined;
|
|
93
|
+
removeExpression(expressionId: string, deleteSubtree: boolean): TExpressionInput<TExpr> | undefined;
|
|
94
|
+
private removeSubtree;
|
|
95
|
+
private removeAndPromote;
|
|
86
96
|
private collapseIfNeeded;
|
|
87
97
|
/** Returns `true` if any expression in the tree references the given variable ID. */
|
|
88
98
|
hasVariableReference(variableId: string): boolean;
|
|
89
99
|
/** Returns the expression with the given ID, or `undefined` if not found. */
|
|
90
|
-
getExpression(expressionId: string): TExpressionInput | undefined;
|
|
100
|
+
getExpression(expressionId: string): TExpressionInput<TExpr> | undefined;
|
|
91
101
|
/** Returns the children of the given parent, sorted by position. */
|
|
92
|
-
getChildExpressions(parentId: string | null): TExpressionInput[];
|
|
102
|
+
getChildExpressions(parentId: string | null): TExpressionInput<TExpr>[];
|
|
93
103
|
private loadInitialExpressions;
|
|
94
104
|
private assertChildLimit;
|
|
95
105
|
private reparent;
|
|
@@ -111,6 +121,6 @@ export declare class ExpressionManager {
|
|
|
111
121
|
* @throws If either child is an `implies`/`iff` operator (cannot be subordinated).
|
|
112
122
|
* @throws If an `implies`/`iff` expression would be inserted at a non-root position.
|
|
113
123
|
*/
|
|
114
|
-
insertExpression(expression: TExpressionInput
|
|
124
|
+
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): void;
|
|
115
125
|
}
|
|
116
126
|
//# sourceMappingURL=ExpressionManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { getOrCreate } from "../utils/collections.js";
|
|
2
|
-
import {
|
|
2
|
+
import { DEFAULT_POSITION_CONFIG, midpoint, } from "../utils/position.js";
|
|
3
|
+
const PERMITTED_OPERATOR_SWAPS = {
|
|
4
|
+
and: "or",
|
|
5
|
+
or: "and",
|
|
6
|
+
implies: "iff",
|
|
7
|
+
iff: "implies",
|
|
8
|
+
};
|
|
3
9
|
/**
|
|
4
10
|
* Low-level manager for a flat-stored expression tree.
|
|
5
11
|
*
|
|
@@ -15,14 +21,16 @@ export class ExpressionManager {
|
|
|
15
21
|
expressions;
|
|
16
22
|
childExpressionIdsByParentId;
|
|
17
23
|
childPositionsByParentId;
|
|
24
|
+
positionConfig;
|
|
18
25
|
collector = null;
|
|
19
26
|
setCollector(collector) {
|
|
20
27
|
this.collector = collector;
|
|
21
28
|
}
|
|
22
|
-
constructor(initialExpressions = []) {
|
|
29
|
+
constructor(initialExpressions = [], positionConfig) {
|
|
23
30
|
this.expressions = new Map();
|
|
24
31
|
this.childExpressionIdsByParentId = new Map();
|
|
25
32
|
this.childPositionsByParentId = new Map();
|
|
33
|
+
this.positionConfig = positionConfig ?? DEFAULT_POSITION_CONFIG;
|
|
26
34
|
this.loadInitialExpressions(initialExpressions);
|
|
27
35
|
}
|
|
28
36
|
/** Returns all expressions sorted by ID for deterministic output. */
|
|
@@ -77,7 +85,9 @@ export class ExpressionManager {
|
|
|
77
85
|
}
|
|
78
86
|
occupiedPositions.add(expression.position);
|
|
79
87
|
this.expressions.set(expression.id, expression);
|
|
80
|
-
this.collector?.addedExpression({
|
|
88
|
+
this.collector?.addedExpression({
|
|
89
|
+
...expression,
|
|
90
|
+
});
|
|
81
91
|
getOrCreate(this.childExpressionIdsByParentId, expression.parentId, () => new Set()).add(expression.id);
|
|
82
92
|
}
|
|
83
93
|
/**
|
|
@@ -90,8 +100,8 @@ export class ExpressionManager {
|
|
|
90
100
|
appendExpression(parentId, expression) {
|
|
91
101
|
const children = this.getChildExpressions(parentId);
|
|
92
102
|
const position = children.length === 0
|
|
93
|
-
?
|
|
94
|
-
: midpoint(children[children.length - 1].position,
|
|
103
|
+
? this.positionConfig.initial
|
|
104
|
+
: midpoint(children[children.length - 1].position, this.positionConfig.max);
|
|
95
105
|
this.addExpression({
|
|
96
106
|
...expression,
|
|
97
107
|
parentId,
|
|
@@ -112,14 +122,16 @@ export class ExpressionManager {
|
|
|
112
122
|
const siblingIndex = children.findIndex((c) => c.id === siblingId);
|
|
113
123
|
let position;
|
|
114
124
|
if (relativePosition === "before") {
|
|
115
|
-
const
|
|
116
|
-
|
|
125
|
+
const prevPosition = siblingIndex > 0
|
|
126
|
+
? children[siblingIndex - 1].position
|
|
127
|
+
: this.positionConfig.min;
|
|
128
|
+
position = midpoint(prevPosition, sibling.position);
|
|
117
129
|
}
|
|
118
130
|
else {
|
|
119
|
-
const
|
|
120
|
-
? children[siblingIndex + 1]
|
|
121
|
-
:
|
|
122
|
-
position = midpoint(sibling.position,
|
|
131
|
+
const nextPosition = siblingIndex < children.length - 1
|
|
132
|
+
? children[siblingIndex + 1].position
|
|
133
|
+
: this.positionConfig.max;
|
|
134
|
+
position = midpoint(sibling.position, nextPosition);
|
|
123
135
|
}
|
|
124
136
|
this.addExpression({
|
|
125
137
|
...expression,
|
|
@@ -128,19 +140,125 @@ export class ExpressionManager {
|
|
|
128
140
|
});
|
|
129
141
|
}
|
|
130
142
|
/**
|
|
131
|
-
*
|
|
143
|
+
* Updates mutable fields of an existing expression in-place.
|
|
144
|
+
*
|
|
145
|
+
* Only `position`, `variableId`, and `operator` may be updated. Structural
|
|
146
|
+
* fields (`id`, `parentId`, `type`, `argumentId`, `argumentVersion`,
|
|
147
|
+
* `checksum`) are forbidden.
|
|
132
148
|
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
149
|
+
* Operator changes are restricted to permitted swaps: `and`/`or` and
|
|
150
|
+
* `implies`/`iff`. Variable ID changes require the expression to be of
|
|
151
|
+
* type `"variable"`.
|
|
136
152
|
*
|
|
153
|
+
* @throws If the expression does not exist.
|
|
154
|
+
* @throws If a forbidden field is present in `updates`.
|
|
155
|
+
* @throws If an operator change is not permitted.
|
|
156
|
+
* @throws If `variableId` is set on a non-variable expression.
|
|
157
|
+
* @throws If the new position collides with a sibling.
|
|
158
|
+
*/
|
|
159
|
+
updateExpression(expressionId, updates) {
|
|
160
|
+
const expression = this.expressions.get(expressionId);
|
|
161
|
+
if (!expression) {
|
|
162
|
+
throw new Error(`Expression "${expressionId}" not found.`);
|
|
163
|
+
}
|
|
164
|
+
// Reject forbidden fields passed via `as any`.
|
|
165
|
+
const FORBIDDEN_KEYS = [
|
|
166
|
+
"id",
|
|
167
|
+
"argumentId",
|
|
168
|
+
"argumentVersion",
|
|
169
|
+
"checksum",
|
|
170
|
+
"parentId",
|
|
171
|
+
"type",
|
|
172
|
+
];
|
|
173
|
+
for (const key of FORBIDDEN_KEYS) {
|
|
174
|
+
if (key in updates) {
|
|
175
|
+
throw new Error(`Field "${key}" is forbidden in expression updates.`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// If no actual mutable fields are set, return the expression as-is.
|
|
179
|
+
if (updates.position === undefined &&
|
|
180
|
+
updates.variableId === undefined &&
|
|
181
|
+
updates.operator === undefined) {
|
|
182
|
+
return expression;
|
|
183
|
+
}
|
|
184
|
+
// Validate operator change.
|
|
185
|
+
if (updates.operator !== undefined) {
|
|
186
|
+
if (expression.type !== "operator") {
|
|
187
|
+
throw new Error(`Expression "${expressionId}" is not an operator expression; cannot update operator.`);
|
|
188
|
+
}
|
|
189
|
+
const permitted = PERMITTED_OPERATOR_SWAPS[expression.operator];
|
|
190
|
+
if (permitted !== updates.operator) {
|
|
191
|
+
throw new Error(`Changing operator from "${expression.operator}" to "${updates.operator}" is not a permitted operator change. Permitted: and↔or, implies↔iff.`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Validate variableId change.
|
|
195
|
+
if (updates.variableId !== undefined) {
|
|
196
|
+
if (expression.type !== "variable") {
|
|
197
|
+
throw new Error(`Expression "${expressionId}" is not a variable expression; cannot update variableId.`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Validate position change.
|
|
201
|
+
if (updates.position !== undefined) {
|
|
202
|
+
const positionSet = this.childPositionsByParentId.get(expression.parentId);
|
|
203
|
+
if (positionSet) {
|
|
204
|
+
positionSet.delete(expression.position);
|
|
205
|
+
if (positionSet.has(updates.position)) {
|
|
206
|
+
// Restore old position before throwing.
|
|
207
|
+
positionSet.add(expression.position);
|
|
208
|
+
throw new Error(`Position ${updates.position} is already used under parent "${expression.parentId}".`);
|
|
209
|
+
}
|
|
210
|
+
positionSet.add(updates.position);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Build an updated copy and replace in the map.
|
|
214
|
+
const updated = {
|
|
215
|
+
...expression,
|
|
216
|
+
...(updates.position !== undefined
|
|
217
|
+
? { position: updates.position }
|
|
218
|
+
: {}),
|
|
219
|
+
...(updates.variableId !== undefined
|
|
220
|
+
? { variableId: updates.variableId }
|
|
221
|
+
: {}),
|
|
222
|
+
...(updates.operator !== undefined
|
|
223
|
+
? { operator: updates.operator }
|
|
224
|
+
: {}),
|
|
225
|
+
};
|
|
226
|
+
this.expressions.set(expressionId, updated);
|
|
227
|
+
this.collector?.modifiedExpression({
|
|
228
|
+
...updated,
|
|
229
|
+
});
|
|
230
|
+
return updated;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Removes an expression from the tree.
|
|
234
|
+
*
|
|
235
|
+
* When `deleteSubtree` is `true`, the expression and its entire descendant
|
|
236
|
+
* subtree are removed, then {@link collapseIfNeeded} runs on the parent.
|
|
237
|
+
*
|
|
238
|
+
* When `deleteSubtree` is `false`, the expression is removed but its single
|
|
239
|
+
* child (if any) is promoted into the removed expression's slot. If the
|
|
240
|
+
* expression has more than one child, an error is thrown. Leaf removal
|
|
241
|
+
* (0 children) still triggers {@link collapseIfNeeded} on the parent.
|
|
242
|
+
* Promotion does **not** trigger collapse.
|
|
243
|
+
*
|
|
244
|
+
* @throws If `deleteSubtree` is `false` and the expression has multiple children.
|
|
245
|
+
* @throws If `deleteSubtree` is `false` and the single child is a root-only
|
|
246
|
+
* operator (`implies`/`iff`) that would be placed in a non-root position.
|
|
137
247
|
* @returns The removed expression, or `undefined` if not found.
|
|
138
248
|
*/
|
|
139
|
-
removeExpression(expressionId) {
|
|
249
|
+
removeExpression(expressionId, deleteSubtree) {
|
|
140
250
|
const target = this.expressions.get(expressionId);
|
|
141
251
|
if (!target) {
|
|
142
252
|
return undefined;
|
|
143
253
|
}
|
|
254
|
+
if (deleteSubtree) {
|
|
255
|
+
return this.removeSubtree(expressionId, target);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
return this.removeAndPromote(expressionId, target);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
removeSubtree(expressionId, target) {
|
|
144
262
|
const parentId = target.parentId;
|
|
145
263
|
const toRemove = new Set();
|
|
146
264
|
const stack = [expressionId];
|
|
@@ -163,7 +281,9 @@ export class ExpressionManager {
|
|
|
163
281
|
if (!expression) {
|
|
164
282
|
continue;
|
|
165
283
|
}
|
|
166
|
-
this.collector?.removedExpression({
|
|
284
|
+
this.collector?.removedExpression({
|
|
285
|
+
...expression,
|
|
286
|
+
});
|
|
167
287
|
this.expressions.delete(id);
|
|
168
288
|
this.childExpressionIdsByParentId
|
|
169
289
|
.get(expression.parentId)
|
|
@@ -177,6 +297,64 @@ export class ExpressionManager {
|
|
|
177
297
|
this.collapseIfNeeded(parentId);
|
|
178
298
|
return target;
|
|
179
299
|
}
|
|
300
|
+
removeAndPromote(expressionId, target) {
|
|
301
|
+
const children = this.getChildExpressions(expressionId);
|
|
302
|
+
if (children.length > 1) {
|
|
303
|
+
throw new Error(`Cannot promote: expression "${expressionId}" has multiple children (${children.length}). Use deleteSubtree: true or remove children first.`);
|
|
304
|
+
}
|
|
305
|
+
if (children.length === 0) {
|
|
306
|
+
// Leaf removal — same as removing a single node, then collapse parent.
|
|
307
|
+
const parentId = target.parentId;
|
|
308
|
+
this.collector?.removedExpression({
|
|
309
|
+
...target,
|
|
310
|
+
});
|
|
311
|
+
this.expressions.delete(expressionId);
|
|
312
|
+
this.childExpressionIdsByParentId
|
|
313
|
+
.get(parentId)
|
|
314
|
+
?.delete(expressionId);
|
|
315
|
+
this.childPositionsByParentId.get(parentId)?.delete(target.position);
|
|
316
|
+
this.childExpressionIdsByParentId.delete(expressionId);
|
|
317
|
+
this.childPositionsByParentId.delete(expressionId);
|
|
318
|
+
this.collapseIfNeeded(parentId);
|
|
319
|
+
return target;
|
|
320
|
+
}
|
|
321
|
+
// Exactly 1 child — promote it into the target's slot.
|
|
322
|
+
const child = children[0];
|
|
323
|
+
// Validate: root-only operators cannot be promoted into a non-root position.
|
|
324
|
+
if (child.type === "operator" &&
|
|
325
|
+
(child.operator === "implies" || child.operator === "iff") &&
|
|
326
|
+
target.parentId !== null) {
|
|
327
|
+
throw new Error(`Cannot promote: child "${child.id}" is a root-only operator ("${child.operator}") and would be placed in a non-root position.`);
|
|
328
|
+
}
|
|
329
|
+
// Promote child into the target's slot.
|
|
330
|
+
const promoted = {
|
|
331
|
+
...child,
|
|
332
|
+
parentId: target.parentId,
|
|
333
|
+
position: target.position,
|
|
334
|
+
};
|
|
335
|
+
this.expressions.set(child.id, promoted);
|
|
336
|
+
// Update parent's child-id set: remove target, add promoted child.
|
|
337
|
+
this.childExpressionIdsByParentId
|
|
338
|
+
.get(target.parentId)
|
|
339
|
+
?.delete(expressionId);
|
|
340
|
+
getOrCreate(this.childExpressionIdsByParentId, target.parentId, () => new Set()).add(child.id);
|
|
341
|
+
// The parent's position set is unchanged: target.position was already
|
|
342
|
+
// tracked and continues to be occupied by the promoted child.
|
|
343
|
+
// Clean up target's own tracking entries.
|
|
344
|
+
this.childExpressionIdsByParentId.delete(expressionId);
|
|
345
|
+
this.childPositionsByParentId.delete(expressionId);
|
|
346
|
+
// Notify collector.
|
|
347
|
+
this.collector?.removedExpression({
|
|
348
|
+
...target,
|
|
349
|
+
});
|
|
350
|
+
this.collector?.modifiedExpression({
|
|
351
|
+
...promoted,
|
|
352
|
+
});
|
|
353
|
+
// Remove target from expressions map.
|
|
354
|
+
this.expressions.delete(expressionId);
|
|
355
|
+
// No collapseIfNeeded after promotion.
|
|
356
|
+
return target;
|
|
357
|
+
}
|
|
180
358
|
collapseIfNeeded(operatorId) {
|
|
181
359
|
if (operatorId === null)
|
|
182
360
|
return;
|
|
@@ -187,7 +365,9 @@ export class ExpressionManager {
|
|
|
187
365
|
const children = this.getChildExpressions(operatorId);
|
|
188
366
|
if (children.length === 0) {
|
|
189
367
|
const grandparentId = operator.parentId;
|
|
190
|
-
this.collector?.removedExpression({
|
|
368
|
+
this.collector?.removedExpression({
|
|
369
|
+
...operator,
|
|
370
|
+
});
|
|
191
371
|
this.expressions.delete(operatorId);
|
|
192
372
|
this.childExpressionIdsByParentId
|
|
193
373
|
.get(grandparentId)
|
|
@@ -207,7 +387,9 @@ export class ExpressionManager {
|
|
|
207
387
|
if (children.length === 0) {
|
|
208
388
|
const grandparentId = operator.parentId;
|
|
209
389
|
const grandparentPosition = operator.position;
|
|
210
|
-
this.collector?.removedExpression({
|
|
390
|
+
this.collector?.removedExpression({
|
|
391
|
+
...operator,
|
|
392
|
+
});
|
|
211
393
|
this.expressions.delete(operatorId);
|
|
212
394
|
this.childExpressionIdsByParentId
|
|
213
395
|
.get(grandparentId)
|
|
@@ -230,7 +412,9 @@ export class ExpressionManager {
|
|
|
230
412
|
position: grandparentPosition,
|
|
231
413
|
};
|
|
232
414
|
this.expressions.set(child.id, promoted);
|
|
233
|
-
this.collector?.modifiedExpression({
|
|
415
|
+
this.collector?.modifiedExpression({
|
|
416
|
+
...promoted,
|
|
417
|
+
});
|
|
234
418
|
// Replace the operator with the promoted child in the grandparent's child-id set.
|
|
235
419
|
this.childExpressionIdsByParentId
|
|
236
420
|
.get(grandparentId)
|
|
@@ -242,7 +426,9 @@ export class ExpressionManager {
|
|
|
242
426
|
// Remove the operator's own tracking entries.
|
|
243
427
|
this.childExpressionIdsByParentId.delete(operatorId);
|
|
244
428
|
this.childPositionsByParentId.delete(operatorId);
|
|
245
|
-
this.collector?.removedExpression({
|
|
429
|
+
this.collector?.removedExpression({
|
|
430
|
+
...operator,
|
|
431
|
+
});
|
|
246
432
|
this.expressions.delete(operatorId);
|
|
247
433
|
// The grandparent's child count is unchanged; no further recursion needed.
|
|
248
434
|
}
|
|
@@ -324,7 +510,9 @@ export class ExpressionManager {
|
|
|
324
510
|
position: newPosition,
|
|
325
511
|
};
|
|
326
512
|
this.expressions.set(expressionId, updated);
|
|
327
|
-
this.collector?.modifiedExpression({
|
|
513
|
+
this.collector?.modifiedExpression({
|
|
514
|
+
...updated,
|
|
515
|
+
});
|
|
328
516
|
// Attach to new parent.
|
|
329
517
|
getOrCreate(this.childExpressionIdsByParentId, newParentId, () => new Set()).add(expressionId);
|
|
330
518
|
getOrCreate(this.childPositionsByParentId, newParentId, () => new Set()).add(newPosition);
|
|
@@ -367,6 +555,8 @@ export class ExpressionManager {
|
|
|
367
555
|
throw new Error(`leftNodeId and rightNodeId must be different.`);
|
|
368
556
|
}
|
|
369
557
|
// 5. The left node must exist if provided.
|
|
558
|
+
// Cast to base TExpressionInput for validation access — deferred conditional
|
|
559
|
+
// types (TExpressionInput<TExpr>) cannot be narrowed by TS control flow.
|
|
370
560
|
const leftNode = leftNodeId !== undefined
|
|
371
561
|
? this.expressions.get(leftNodeId)
|
|
372
562
|
: undefined;
|
|
@@ -380,6 +570,10 @@ export class ExpressionManager {
|
|
|
380
570
|
if (rightNodeId !== undefined && !rightNode) {
|
|
381
571
|
throw new Error(`Expression "${rightNodeId}" does not exist.`);
|
|
382
572
|
}
|
|
573
|
+
// 7a. A variable expression cannot have children.
|
|
574
|
+
if (expression.type === "variable") {
|
|
575
|
+
throw new Error(`Variable expression "${expression.id}" cannot have children.`);
|
|
576
|
+
}
|
|
383
577
|
// 7. The "not" operator is unary and cannot take two children.
|
|
384
578
|
if (expression.type === "operator" &&
|
|
385
579
|
expression.operator === "not" &&
|
|
@@ -428,7 +622,9 @@ export class ExpressionManager {
|
|
|
428
622
|
position: anchorPosition,
|
|
429
623
|
};
|
|
430
624
|
this.expressions.set(expression.id, stored);
|
|
431
|
-
this.collector?.addedExpression({
|
|
625
|
+
this.collector?.addedExpression({
|
|
626
|
+
...stored,
|
|
627
|
+
});
|
|
432
628
|
getOrCreate(this.childExpressionIdsByParentId, anchorParentId, () => new Set()).add(expression.id);
|
|
433
629
|
getOrCreate(this.childPositionsByParentId, anchorParentId, () => new Set()).add(anchorPosition);
|
|
434
630
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionManager.js","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExpressionManager.js","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}
|