@polintpro/proposit-core 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -29
- package/dist/cli/commands/expressions.d.ts.map +1 -1
- package/dist/cli/commands/expressions.js.map +1 -1
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +11 -6
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/variables.d.ts.map +1 -1
- package/dist/cli/commands/variables.js +49 -62
- package/dist/cli/commands/variables.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +10 -5
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +4 -4
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/schemata.d.ts +2 -3
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +38 -14
- package/dist/cli/schemata.js.map +1 -1
- package/dist/cli/storage/variables.d.ts +1 -1
- package/dist/cli/storage/variables.d.ts.map +1 -1
- package/dist/cli/storage/variables.js +10 -2
- package/dist/cli/storage/variables.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/consts.d.ts +8 -0
- package/dist/lib/consts.d.ts.map +1 -0
- package/dist/lib/consts.js +37 -0
- package/dist/lib/consts.js.map +1 -0
- package/dist/lib/core/ArgumentEngine.d.ts +31 -3
- package/dist/lib/core/ArgumentEngine.d.ts.map +1 -1
- package/dist/lib/core/ArgumentEngine.js +127 -9
- package/dist/lib/core/ArgumentEngine.js.map +1 -1
- package/dist/lib/core/ChangeCollector.d.ts +11 -8
- package/dist/lib/core/ChangeCollector.d.ts.map +1 -1
- package/dist/lib/core/ChangeCollector.js +3 -0
- package/dist/lib/core/ChangeCollector.js.map +1 -1
- package/dist/lib/core/ExpressionManager.d.ts +35 -8
- package/dist/lib/core/ExpressionManager.d.ts.map +1 -1
- package/dist/lib/core/ExpressionManager.js.map +1 -1
- package/dist/lib/core/PremiseManager.d.ts +23 -18
- package/dist/lib/core/PremiseManager.d.ts.map +1 -1
- package/dist/lib/core/PremiseManager.js +68 -73
- package/dist/lib/core/PremiseManager.js.map +1 -1
- package/dist/lib/core/VariableManager.d.ts +20 -14
- package/dist/lib/core/VariableManager.d.ts.map +1 -1
- package/dist/lib/core/VariableManager.js +20 -3
- package/dist/lib/core/VariableManager.js.map +1 -1
- package/dist/lib/core/checksum.d.ts +1 -1
- package/dist/lib/core/checksum.d.ts.map +1 -1
- package/dist/lib/core/checksum.js.map +1 -1
- package/dist/lib/core/relationships.d.ts.map +1 -1
- package/dist/lib/core/relationships.js +5 -5
- package/dist/lib/core/relationships.js.map +1 -1
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/argument.d.ts +1 -1
- package/dist/lib/schemata/argument.d.ts.map +1 -1
- package/dist/lib/schemata/argument.js +2 -2
- package/dist/lib/schemata/argument.js.map +1 -1
- package/dist/lib/schemata/propositional.d.ts +11 -11
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +6 -6
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +5 -5
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/mutation.d.ts +13 -0
- package/dist/lib/types/mutation.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ An argument is composed of one or more **premises**, each managed by a `PremiseM
|
|
|
27
27
|
|
|
28
28
|
### Variables
|
|
29
29
|
|
|
30
|
-
A **propositional variable** (e.g. `P`, `Q`, `Rain`) is a named atomic proposition. Variables are registered with
|
|
30
|
+
A **propositional variable** (e.g. `P`, `Q`, `Rain`) is a named atomic proposition. Variables are registered with the `ArgumentEngine` via `addVariable()` and are shared across all premises. Each variable must have a unique `id` and a unique `symbol` within the argument.
|
|
31
31
|
|
|
32
32
|
### Expressions
|
|
33
33
|
|
|
@@ -74,13 +74,10 @@ Each expression carries:
|
|
|
74
74
|
|
|
75
75
|
```typescript
|
|
76
76
|
import { ArgumentEngine, POSITION_INITIAL } from "@polintpro/proposit-core"
|
|
77
|
-
import type {
|
|
78
|
-
TArgument,
|
|
79
|
-
TPropositionalVariable,
|
|
80
|
-
TPropositionalExpression,
|
|
81
|
-
} from "@polintpro/proposit-core"
|
|
77
|
+
import type { TPropositionalExpression } from "@polintpro/proposit-core"
|
|
82
78
|
|
|
83
|
-
|
|
79
|
+
// The constructor accepts an argument without checksum — it is computed lazily.
|
|
80
|
+
const argument = {
|
|
84
81
|
id: "arg-1",
|
|
85
82
|
version: 1,
|
|
86
83
|
title: "Modus Ponens",
|
|
@@ -97,22 +94,25 @@ const { result: conclusion } = eng.createPremise("Q")
|
|
|
97
94
|
### Adding variables and expressions
|
|
98
95
|
|
|
99
96
|
```typescript
|
|
100
|
-
|
|
97
|
+
// Variables are passed without checksum — checksums are computed lazily.
|
|
98
|
+
const varP = {
|
|
101
99
|
id: "var-p",
|
|
102
100
|
argumentId: "arg-1",
|
|
103
101
|
argumentVersion: 1,
|
|
104
102
|
symbol: "P",
|
|
105
103
|
}
|
|
106
|
-
const varQ
|
|
104
|
+
const varQ = {
|
|
107
105
|
id: "var-q",
|
|
108
106
|
argumentId: "arg-1",
|
|
109
107
|
argumentVersion: 1,
|
|
110
108
|
symbol: "Q",
|
|
111
109
|
}
|
|
112
110
|
|
|
111
|
+
// Register variables once on the engine — they are shared across all premises
|
|
112
|
+
eng.addVariable(varP)
|
|
113
|
+
eng.addVariable(varQ)
|
|
114
|
+
|
|
113
115
|
// Premise 1: P → Q
|
|
114
|
-
premise1.addVariable(varP)
|
|
115
|
-
premise1.addVariable(varQ)
|
|
116
116
|
premise1.addExpression({
|
|
117
117
|
id: "op-implies",
|
|
118
118
|
argumentId: "arg-1",
|
|
@@ -144,7 +144,6 @@ premise1.addExpression({
|
|
|
144
144
|
console.log(premise1.toDisplayString()) // (P → Q)
|
|
145
145
|
|
|
146
146
|
// Premise 2: P
|
|
147
|
-
premise2.addVariable(varP)
|
|
148
147
|
premise2.addExpression({
|
|
149
148
|
id: "expr-p2",
|
|
150
149
|
argumentId: "arg-1",
|
|
@@ -156,7 +155,6 @@ premise2.addExpression({
|
|
|
156
155
|
})
|
|
157
156
|
|
|
158
157
|
// Conclusion: Q
|
|
159
|
-
conclusion.addVariable(varQ)
|
|
160
158
|
conclusion.addExpression({
|
|
161
159
|
id: "expr-q2",
|
|
162
160
|
argumentId: "arg-1",
|
|
@@ -230,13 +228,13 @@ if (validity.ok) {
|
|
|
230
228
|
|
|
231
229
|
```typescript
|
|
232
230
|
// Extend P → Q into (P ∧ R) → Q by inserting an `and` above expr-p1.
|
|
233
|
-
const varR
|
|
231
|
+
const varR = {
|
|
234
232
|
id: "var-r",
|
|
235
233
|
argumentId: "arg-1",
|
|
236
234
|
argumentVersion: 1,
|
|
237
235
|
symbol: "R",
|
|
238
236
|
}
|
|
239
|
-
|
|
237
|
+
eng.addVariable(varR)
|
|
240
238
|
premise1.addExpression({
|
|
241
239
|
id: "expr-r",
|
|
242
240
|
argumentId: "arg-1",
|
|
@@ -285,7 +283,7 @@ console.log(premise1.toDisplayString()) // (P → Q)
|
|
|
285
283
|
|
|
286
284
|
#### `new ArgumentEngine(argument, options?)`
|
|
287
285
|
|
|
288
|
-
Creates an engine scoped to `argument` (`{ id, version, title, description }`). Accepts an optional `options` parameter with `{ checksumConfig?: TCoreChecksumConfig }` to configure which fields are included in entity checksums.
|
|
286
|
+
Creates an engine scoped to `argument` (`{ id, version, title, description }`, without `checksum` — it is computed lazily). Accepts an optional `options` parameter with `{ checksumConfig?: TCoreChecksumConfig }` to configure which fields are included in entity checksums.
|
|
289
287
|
|
|
290
288
|
---
|
|
291
289
|
|
|
@@ -325,6 +323,30 @@ Returns all premise IDs sorted alphabetically.
|
|
|
325
323
|
|
|
326
324
|
---
|
|
327
325
|
|
|
326
|
+
#### `addVariable(variable)` → `TCoreMutationResult<TPropositionalVariable>`
|
|
327
|
+
|
|
328
|
+
Registers a variable (without `checksum` — it is computed lazily) for use across all premises. Throws if the `id` or `symbol` already exists, or if `argumentId`/`argumentVersion` don't match the engine's argument.
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
#### `updateVariable(variableId, { symbol? })` → `TCoreMutationResult<TPropositionalVariable>`
|
|
333
|
+
|
|
334
|
+
Updates variable fields. Returns a mutation result with the modified variable.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
#### `removeVariable(variableId)` → `TCoreMutationResult<TPropositionalVariable>`
|
|
339
|
+
|
|
340
|
+
Removes the variable and cascade-deletes all expressions referencing it across every premise (including subtree deletion and operator collapse). Returns a mutation result with the removed variable.
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
#### `getVariables()` → `TPropositionalVariable[]`
|
|
345
|
+
|
|
346
|
+
Returns all registered variables sorted by ID, with checksums.
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
328
350
|
#### `setConclusionPremise(premiseId)` → `TCoreMutationResult<TCoreArgumentRoleState>`
|
|
329
351
|
|
|
330
352
|
Designates a premise as the conclusion. Throws if the premise does not exist.
|
|
@@ -402,21 +424,27 @@ Returns a serialisable snapshot of the engine state (`{ argument, premises, role
|
|
|
402
424
|
|
|
403
425
|
### `PremiseManager`
|
|
404
426
|
|
|
405
|
-
#### `
|
|
427
|
+
#### `deleteExpressionsUsingVariable(variableId)` → `TCoreMutationResult<TPropositionalExpression[]>`
|
|
406
428
|
|
|
407
|
-
|
|
429
|
+
Removes all expressions referencing the given variable, with subtree deletion and operator collapse. Returns a mutation result with the removed expressions.
|
|
408
430
|
|
|
409
431
|
---
|
|
410
432
|
|
|
411
|
-
#### `
|
|
433
|
+
#### `getReferencedVariableIds()` → `Set<string>`
|
|
412
434
|
|
|
413
|
-
|
|
435
|
+
Returns the set of variable IDs actually used in this premise's expression tree.
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
#### `getVariables()` → `TPropositionalVariable[]`
|
|
440
|
+
|
|
441
|
+
Returns all argument-level variables (shared across premises via the engine's `VariableManager`) sorted by ID, with checksums.
|
|
414
442
|
|
|
415
443
|
---
|
|
416
444
|
|
|
417
445
|
#### `addExpression(expression)` → `TCoreMutationResult<TPropositionalExpression>`
|
|
418
446
|
|
|
419
|
-
Adds an expression to the tree with an explicit numeric position. Validates argument membership, variable references, root uniqueness, and structural constraints (operator type, child limits, position uniqueness). This is the low-level escape hatch — prefer `appendExpression` or `addExpressionRelative` for most use cases.
|
|
447
|
+
Adds an expression (without `checksum` — it is computed lazily) to the tree with an explicit numeric position. Validates argument membership, variable references, root uniqueness, and structural constraints (operator type, child limits, position uniqueness). This is the low-level escape hatch — prefer `appendExpression` or `addExpressionRelative` for most use cases.
|
|
420
448
|
|
|
421
449
|
---
|
|
422
450
|
|
|
@@ -456,12 +484,6 @@ Returns all expressions sorted by ID.
|
|
|
456
484
|
|
|
457
485
|
---
|
|
458
486
|
|
|
459
|
-
#### `getVariables()` → `TPropositionalVariable[]`
|
|
460
|
-
|
|
461
|
-
Returns all registered variables sorted by ID.
|
|
462
|
-
|
|
463
|
-
---
|
|
464
|
-
|
|
465
487
|
#### `getChildExpressions(parentId)` → `TPropositionalExpression[]`
|
|
466
488
|
|
|
467
489
|
Returns children of `parentId` sorted by position.
|
|
@@ -589,6 +611,30 @@ const ast: FormulaAST = parseFormula("(P and Q) implies R")
|
|
|
589
611
|
|
|
590
612
|
---
|
|
591
613
|
|
|
614
|
+
#### `DEFAULT_CHECKSUM_CONFIG`
|
|
615
|
+
|
|
616
|
+
Readonly default checksum configuration with `Set<string>` fields for each entity type (`expressionFields`, `variableFields`, `premiseFields`, `argumentFields`, `roleFields`). Used by `ArgumentEngine` and `PremiseManager` when no custom config is provided.
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
620
|
+
#### `createChecksumConfig(additional)` → `TCoreChecksumConfig`
|
|
621
|
+
|
|
622
|
+
Merges additional fields into the defaults via set union. The `additional` parameter has the same shape as `TCoreChecksumConfig` — any omitted fields inherit the defaults from `DEFAULT_CHECKSUM_CONFIG`.
|
|
623
|
+
|
|
624
|
+
```typescript
|
|
625
|
+
import {
|
|
626
|
+
createChecksumConfig,
|
|
627
|
+
DEFAULT_CHECKSUM_CONFIG,
|
|
628
|
+
} from "@polintpro/proposit-core"
|
|
629
|
+
|
|
630
|
+
// Add a custom field to expression checksums while keeping all defaults
|
|
631
|
+
const config = createChecksumConfig({
|
|
632
|
+
expressionFields: new Set(["myCustomField"]),
|
|
633
|
+
})
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
---
|
|
637
|
+
|
|
592
638
|
### Position Utilities
|
|
593
639
|
|
|
594
640
|
Constants and a helper for midpoint-based position computation, exported from `utils/position.ts`:
|
|
@@ -606,9 +652,15 @@ Constants and a helper for midpoint-based position computation, exported from `u
|
|
|
606
652
|
|
|
607
653
|
### Types
|
|
608
654
|
|
|
655
|
+
#### `TExpressionInput`
|
|
656
|
+
|
|
657
|
+
A version of `TPropositionalExpression` with the `checksum` field omitted. Uses a distributive conditional type to preserve discriminated-union narrowing across the `variable`/`operator`/`formula` variants. Used as the input type for `addExpression` and `insertExpression`.
|
|
658
|
+
|
|
659
|
+
---
|
|
660
|
+
|
|
609
661
|
#### `TExpressionWithoutPosition`
|
|
610
662
|
|
|
611
|
-
A version of `TPropositionalExpression` with the `position`
|
|
663
|
+
A version of `TPropositionalExpression` with both the `position` and `checksum` fields omitted. Uses a distributive conditional type to preserve discriminated-union narrowing across the `variable`/`operator`/`formula` variants. Used as the input type for `appendExpression` and `addExpressionRelative`.
|
|
612
664
|
|
|
613
665
|
---
|
|
614
666
|
|
|
@@ -726,7 +778,7 @@ proposit-core <id> <ver> variables list-unused [--json]
|
|
|
726
778
|
proposit-core <id> <ver> variables delete-unused [--confirm] [--json]
|
|
727
779
|
```
|
|
728
780
|
|
|
729
|
-
`create` prints the new variable's UUID. `delete`
|
|
781
|
+
`create` prints the new variable's UUID. `delete` cascade-deletes all expressions referencing the variable across every premise (including subtree deletion and operator collapse). `delete-unused` removes variables not referenced by any expression in any premise.
|
|
730
782
|
|
|
731
783
|
#### premises
|
|
732
784
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+BnC,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAgWN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EACH,aAAa,EACb,eAAe,EACf,gBAAgB,GACnB,MAAM,wBAAwB,CAAA;AAE/B,KAAK,UAAU,kBAAkB,CAC7B,UAAkB,EAClB,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,SAAS,CACL,WAAW,OAAO,iBAAiB,UAAU,wCAAwC,CACxF,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsB;IAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,cAAc,IAAI,CAAC,UAAU,EAAE,CAAA;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAA;IAChE,OAAO,EAAE,CAAA;AACb,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,YAAqB,EACrB,UAAkB,EAClB,OAAe;IAEf,MAAM,KAAK,GAAG,YAAY;SACrB,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,4BAA4B,CAAC,CAAA;IAE9C,KAAK;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,gCAAgC,CAAC;SAC7C,cAAc,CACX,eAAe,EACf,8CAA8C,CACjD;SACA,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAC9D,MAAM,CACH,yBAAyB,EACzB,sCAAsC,CACzC;SACA,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACnD,MAAM,CACH,uBAAuB,EACvB,uCAAuC,CAC1C;SACA,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;SACtE,MAAM,CACH,6BAA6B,EAC7B,iCAAiC,CACpC;SACA,MAAM,CACH,iBAAiB,EACjB,sDAAsD,CACzD;SACA,MAAM,CACH,KAAK,EACD,SAAiB,EACjB,IASC,EACH,EAAE;QACA,MAAM,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,YAAY,SAAS,cAAc,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACvD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YACH,SAAS,CAAC,YAAY,SAAS,wBAAwB,CAAC,CAAA;QAE5D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAA;QACtC,MAAM,QAAQ,GACV,IAAI,CAAC,QAAQ,KAAK,SAAS;YACvB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,gBAAgB,CAAA;QAE1B,IAAI,UAA4B,CAAA;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChB,SAAS,CAAC,6CAA6C,CAAC,CAAA;YAC5D,UAAU,GAAG;gBACT,EAAE;gBACF,UAAU;gBACV,eAAe,EAAE,OAAO;gBACxB,QAAQ;gBACR,QAAQ;gBACR,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC9B,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACd,SAAS,CAAC,0CAA0C,CAAC,CAAA;YACzD,UAAU,GAAG;gBACT,EAAE;gBACF,UAAU;gBACV,eAAe,EAAE,OAAO;gBACxB,QAAQ;gBACR,QAAQ;gBACR,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAoC;aACtD,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,GAAG;gBACT,EAAE;gBACF,UAAU;gBACV,eAAe,EAAE,OAAO;gBACxB,QAAQ;gBACR,QAAQ;gBACR,IAAI,EAAE,SAAS;aAClB,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,SAAS,CACL,iBAAiB,IAAI,CAAC,IAAI,wCAAwC,CACrE,CAAA;QACL,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAA;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAA;QAE/C,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;YACzC,SAAS,CACL,kDAAkD,CACrD,CAAA;QACL,CAAC;QACD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACxB,SAAS,CAAC,sCAAsC,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAC1C,UAAU,CAAA;gBACd,EAAE,CAAC,qBAAqB,CACpB,IAAI,CAAC,MAAO,EACZ,QAAQ,EACR,mBAAmB,CACtB,CAAA;YACL,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBAClB,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAC1C,UAAU,CAAA;gBACd,EAAE,CAAC,qBAAqB,CACpB,IAAI,CAAC,KAAM,EACX,OAAO,EACP,mBAAmB,CACtB,CAAA;YACL,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACrB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACJ,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAC1C,UAAU,CAAA;gBACd,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;YACtD,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,SAAS,CACL,CAAC,YAAY,KAAK;gBACd,CAAC,CAAC,CAAC,CAAC,OAAO;gBACX,CAAC,CAAC,2BAA2B,CACpC,CAAA;QACL,CAAC;QAED,MAAM,gBAAgB,CAClB,UAAU,EACV,OAAO,EACP,SAAS,EACT,EAAE,CAAC,MAAM,EAAE,CACd,CAAA;QACD,SAAS,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC,CACJ,CAAA;IAEL,KAAK;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,+CAA+C,CAAC;SAC5D,cAAc,CACX,eAAe,EACf,8CAA8C,CACjD;SACA,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAC9D,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACnD,MAAM,CACH,6BAA6B,EAC7B,iCAAiC,CACpC;SACA,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;SACzD,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;SAClD,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;SACpD,MAAM,CACH,KAAK,EACD,SAAiB,EACjB,IASC,EACH,EAAE;QACA,MAAM,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,SAAS,CACL,gEAAgE,CACnE,CAAA;QACL,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,YAAY,SAAS,cAAc,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACvD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YACH,SAAS,CAAC,YAAY,SAAS,wBAAwB,CAAC,CAAA;QAE5D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAA;QACtC,MAAM,QAAQ,GACV,IAAI,CAAC,QAAQ,KAAK,SAAS;YACvB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,gBAAgB,CAAA;QAE1B,IAAI,UAA4B,CAAA;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChB,SAAS,CAAC,6CAA6C,CAAC,CAAA;YAC5D,UAAU,GAAG;gBACT,EAAE;gBACF,UAAU;gBACV,eAAe,EAAE,OAAO;gBACxB,QAAQ;gBACR,QAAQ;gBACR,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC9B,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACd,SAAS,CAAC,0CAA0C,CAAC,CAAA;YACzD,UAAU,GAAG;gBACT,EAAE;gBACF,UAAU;gBACV,eAAe,EAAE,OAAO;gBACxB,QAAQ;gBACR,QAAQ;gBACR,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAoC;aACtD,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,GAAG;gBACT,EAAE;gBACF,UAAU;gBACV,eAAe,EAAE,OAAO;gBACxB,QAAQ;gBACR,QAAQ;gBACR,IAAI,EAAE,SAAS;aAClB,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,CAAC;YACD,EAAE,CAAC,gBAAgB,CACf,UAAU,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,CACnB,CAAA;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,SAAS,CACL,CAAC,YAAY,KAAK;gBACd,CAAC,CAAC,CAAC,CAAC,OAAO;gBACX,CAAC,CAAC,8BAA8B,CACvC,CAAA;QACL,CAAC;QAED,MAAM,gBAAgB,CAClB,UAAU,EACV,OAAO,EACP,SAAS,EACT,EAAE,CAAC,MAAM,EAAE,CACd,CAAA;QACD,SAAS,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC,CACJ,CAAA;IAEL,KAAK;SACA,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,YAAoB,EAAE,EAAE;QACtD,MAAM,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,YAAY,SAAS,cAAc,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACvD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE;YAAE,SAAS,CAAC,YAAY,SAAS,wBAAwB,CAAC,CAAA;QAEjE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO;YAAE,SAAS,CAAC,eAAe,YAAY,cAAc,CAAC,CAAA;QAElE,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QACnE,SAAS,CAAC,SAAS,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEN,KAAK;SACA,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAwB,EAAE,EAAE;QAC1D,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,YAAY,SAAS,cAAc,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3B,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBACpC,SAAS,CACL,GAAG,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,QAAQ,IAAI,MAAM,eAAe,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3H,CAAA;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAA;IAEN,KAAK;SACA,OAAO,CAAC,mCAAmC,CAAC;SAC5C,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CACH,KAAK,EACD,SAAiB,EACjB,YAAoB,EACpB,IAAwB,EAC1B,EAAE;QACA,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,YAAY,SAAS,cAAc,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,eAAe,CAC9B,UAAU,EACV,OAAO,EACP,SAAS,CACZ,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI;YAAE,SAAS,CAAC,eAAe,YAAY,cAAc,CAAC,CAAA;QAC/D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,eAAe,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;YACnC,SAAS,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACrC,SAAS,CAAC,eAAe,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAA;YACnD,SAAS,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,SAAS,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;YAC/C,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,SAAS,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC7C,CAAC;QACL,CAAC;IACL,CAAC,CACJ,CAAA;AACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premises.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/premises.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"premises.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/premises.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8CnC,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAyQN"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { PremiseManager } from "../../lib/core/PremiseManager.js";
|
|
4
|
+
import { VariableManager } from "../../lib/core/VariableManager.js";
|
|
4
5
|
import { errorExit, printJson, printLine, requireConfirmation, } from "../output.js";
|
|
5
6
|
import { readArgumentMeta, readVersionMeta } from "../storage/arguments.js";
|
|
6
7
|
import { deletePremiseDir, listPremiseIds, premiseExists, readPremiseData, readPremiseMeta, writePremiseData, writePremiseMeta, } from "../storage/premises.js";
|
|
@@ -55,9 +56,11 @@ export function registerPremiseCommands(versionedCmd, argumentId, version) {
|
|
|
55
56
|
]);
|
|
56
57
|
// Hydrate a temporary PremiseManager for display string
|
|
57
58
|
const { id: _id, ...premiseExtras } = meta;
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
const vm = new VariableManager(allVariables.map((v) => ({
|
|
60
|
+
...v,
|
|
61
|
+
argumentVersion: version,
|
|
62
|
+
})));
|
|
63
|
+
const pm = new PremiseManager(pid, argument, vm, premiseExtras);
|
|
61
64
|
// Add expressions BFS-order
|
|
62
65
|
const remaining = [...data.expressions];
|
|
63
66
|
const added = new Set();
|
|
@@ -200,9 +203,11 @@ export function registerPremiseCommands(versionedCmd, argumentId, version) {
|
|
|
200
203
|
readPremiseData(argumentId, version, premiseId),
|
|
201
204
|
]);
|
|
202
205
|
const { id: _id, ...renderPremiseExtras } = meta;
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
+
const renderVm = new VariableManager(allVariables.map((v) => ({
|
|
207
|
+
...v,
|
|
208
|
+
argumentVersion: version,
|
|
209
|
+
})));
|
|
210
|
+
const pm = new PremiseManager(premiseId, argument, renderVm, renderPremiseExtras);
|
|
206
211
|
const remaining = [...data.expressions];
|
|
207
212
|
const added = new Set();
|
|
208
213
|
for (let i = remaining.length - 1; i >= 0; i--) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premises.js","sourceRoot":"","sources":["../../../src/cli/commands/premises.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"premises.js","sourceRoot":"","sources":["../../../src/cli/commands/premises.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/variables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/variables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsBnC,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAuKN"}
|
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import { hydrateEngine, persistEngine } from "../engine.js";
|
|
3
4
|
import { errorExit, printJson, printLine, requireConfirmation, } from "../output.js";
|
|
4
5
|
import { readVersionMeta } from "../storage/arguments.js";
|
|
5
|
-
import { listPremiseIds, readPremiseData } from "../storage/premises.js";
|
|
6
|
-
import { readVariables, writeVariables } from "../storage/variables.js";
|
|
7
6
|
async function assertNotPublished(argumentId, version) {
|
|
8
7
|
const meta = await readVersionMeta(argumentId, version);
|
|
9
8
|
if (meta.published) {
|
|
10
9
|
errorExit(`Version ${version} of argument "${argumentId}" is published and cannot be modified.`);
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
/** Collect the set of variable IDs referenced by any expression in any premise. */
|
|
14
|
-
async function referencedVariableIds(argumentId, version) {
|
|
15
|
-
const premiseIds = await listPremiseIds(argumentId, version);
|
|
16
|
-
const referenced = new Set();
|
|
17
|
-
for (const premiseId of premiseIds) {
|
|
18
|
-
const data = await readPremiseData(argumentId, version, premiseId);
|
|
19
|
-
for (const id of data.variables) {
|
|
20
|
-
referenced.add(id);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return referenced;
|
|
24
|
-
}
|
|
25
12
|
export function registerVariableCommands(versionedCmd, argumentId, version) {
|
|
26
13
|
const vars = versionedCmd
|
|
27
14
|
.command("variables")
|
|
@@ -31,34 +18,34 @@ export function registerVariableCommands(versionedCmd, argumentId, version) {
|
|
|
31
18
|
.option("--id <variable_id>", "Explicit variable ID (default: generated UUID)")
|
|
32
19
|
.action(async (symbol, opts) => {
|
|
33
20
|
await assertNotPublished(argumentId, version);
|
|
34
|
-
const
|
|
35
|
-
if (variables.some((v) => v.symbol === symbol)) {
|
|
36
|
-
errorExit(`Symbol "${symbol}" is already in use.`);
|
|
37
|
-
}
|
|
21
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
38
22
|
const newId = opts.id ?? randomUUID();
|
|
39
|
-
|
|
40
|
-
errorExit(`Variable ID "${newId}" already exists.`);
|
|
41
|
-
}
|
|
42
|
-
variables.push({
|
|
23
|
+
const variable = {
|
|
43
24
|
id: newId,
|
|
44
25
|
argumentId,
|
|
45
26
|
argumentVersion: version,
|
|
46
27
|
symbol,
|
|
47
|
-
}
|
|
48
|
-
|
|
28
|
+
};
|
|
29
|
+
try {
|
|
30
|
+
engine.addVariable(variable);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
errorExit(err instanceof Error ? err.message : String(err));
|
|
34
|
+
}
|
|
35
|
+
await persistEngine(engine);
|
|
49
36
|
printLine(newId);
|
|
50
37
|
});
|
|
51
38
|
vars.command("list")
|
|
52
39
|
.description("List all variables")
|
|
53
40
|
.option("--json", "Output as JSON")
|
|
54
41
|
.action(async (opts) => {
|
|
55
|
-
const
|
|
56
|
-
const
|
|
42
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
43
|
+
const variables = engine.getVariables();
|
|
57
44
|
if (opts.json) {
|
|
58
|
-
printJson(
|
|
45
|
+
printJson(variables);
|
|
59
46
|
}
|
|
60
47
|
else {
|
|
61
|
-
for (const v of
|
|
48
|
+
for (const v of variables) {
|
|
62
49
|
printLine(`${v.id} | ${v.symbol}`);
|
|
63
50
|
}
|
|
64
51
|
}
|
|
@@ -67,8 +54,10 @@ export function registerVariableCommands(versionedCmd, argumentId, version) {
|
|
|
67
54
|
.description("Show a single variable")
|
|
68
55
|
.option("--json", "Output as JSON")
|
|
69
56
|
.action(async (variableId, opts) => {
|
|
70
|
-
const
|
|
71
|
-
const variable =
|
|
57
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
58
|
+
const variable = engine
|
|
59
|
+
.getVariables()
|
|
60
|
+
.find((v) => v.id === variableId);
|
|
72
61
|
if (!variable)
|
|
73
62
|
errorExit(`Variable "${variableId}" not found.`);
|
|
74
63
|
if (opts.json) {
|
|
@@ -83,50 +72,44 @@ export function registerVariableCommands(versionedCmd, argumentId, version) {
|
|
|
83
72
|
.option("--symbol <new_symbol>", "New symbol")
|
|
84
73
|
.action(async (variableId, opts) => {
|
|
85
74
|
await assertNotPublished(argumentId, version);
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
if (idx === -1)
|
|
75
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
76
|
+
if (!engine.getVariables().some((v) => v.id === variableId)) {
|
|
89
77
|
errorExit(`Variable "${variableId}" not found.`);
|
|
78
|
+
}
|
|
90
79
|
if (opts.symbol !== undefined) {
|
|
91
|
-
|
|
92
|
-
|
|
80
|
+
try {
|
|
81
|
+
engine.updateVariable(variableId, {
|
|
82
|
+
symbol: opts.symbol,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
errorExit(err instanceof Error ? err.message : String(err));
|
|
93
87
|
}
|
|
94
|
-
variables[idx] = { ...variables[idx], symbol: opts.symbol };
|
|
95
88
|
}
|
|
96
|
-
await
|
|
89
|
+
await persistEngine(engine);
|
|
97
90
|
printLine("success");
|
|
98
91
|
});
|
|
99
92
|
vars.command("delete <variable_id>")
|
|
100
|
-
.description("Remove a variable (
|
|
93
|
+
.description("Remove a variable (cascade-deletes referencing expressions)")
|
|
101
94
|
.action(async (variableId) => {
|
|
102
95
|
await assertNotPublished(argumentId, version);
|
|
103
|
-
const
|
|
104
|
-
if (!
|
|
96
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
97
|
+
if (!engine.getVariables().some((v) => v.id === variableId)) {
|
|
105
98
|
errorExit(`Variable "${variableId}" not found.`);
|
|
106
99
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
for (const premiseId of premiseIds) {
|
|
110
|
-
const data = await readPremiseData(argumentId, version, premiseId);
|
|
111
|
-
for (const expr of data.expressions) {
|
|
112
|
-
if (expr.type === "variable" &&
|
|
113
|
-
expr.variableId === variableId) {
|
|
114
|
-
errorExit(`Variable "${variableId}" is referenced by expression "${expr.id}" in premise "${premiseId}".`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
await writeVariables(argumentId, version, variables.filter((v) => v.id !== variableId));
|
|
100
|
+
engine.removeVariable(variableId);
|
|
101
|
+
await persistEngine(engine);
|
|
119
102
|
printLine("success");
|
|
120
103
|
});
|
|
121
104
|
vars.command("list-unused")
|
|
122
105
|
.description("List variables not referenced by any expression")
|
|
123
106
|
.option("--json", "Output as JSON")
|
|
124
107
|
.action(async (opts) => {
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
108
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
109
|
+
const variables = engine.getVariables();
|
|
110
|
+
const referenced = engine.collectReferencedVariables();
|
|
111
|
+
const referencedIds = new Set(referenced.variableIds);
|
|
112
|
+
const unused = variables.filter((v) => !referencedIds.has(v.id));
|
|
130
113
|
if (opts.json) {
|
|
131
114
|
printJson(unused);
|
|
132
115
|
}
|
|
@@ -142,9 +125,11 @@ export function registerVariableCommands(versionedCmd, argumentId, version) {
|
|
|
142
125
|
.option("--json", "Output as JSON")
|
|
143
126
|
.action(async (opts) => {
|
|
144
127
|
await assertNotPublished(argumentId, version);
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
const
|
|
128
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
129
|
+
const variables = engine.getVariables();
|
|
130
|
+
const referenced = engine.collectReferencedVariables();
|
|
131
|
+
const referencedIds = new Set(referenced.variableIds);
|
|
132
|
+
const unused = variables.filter((v) => !referencedIds.has(v.id));
|
|
148
133
|
if (unused.length === 0) {
|
|
149
134
|
if (opts.json) {
|
|
150
135
|
printJson({ deleted: 0, deletedIds: [] });
|
|
@@ -157,8 +142,10 @@ export function registerVariableCommands(versionedCmd, argumentId, version) {
|
|
|
157
142
|
if (!opts.confirm) {
|
|
158
143
|
await requireConfirmation(`Delete ${unused.length} unused variable(s)?`);
|
|
159
144
|
}
|
|
160
|
-
const
|
|
161
|
-
|
|
145
|
+
for (const v of unused) {
|
|
146
|
+
engine.removeVariable(v.id);
|
|
147
|
+
}
|
|
148
|
+
await persistEngine(engine);
|
|
162
149
|
if (opts.json) {
|
|
163
150
|
printJson({
|
|
164
151
|
deleted: unused.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/cli/commands/variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/cli/commands/variables.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/cli/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAoB9D;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/cli/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAoB9D;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAwEzB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CzE"}
|