@polintpro/proposit-core 0.5.3 → 0.5.8

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.
Files changed (126) hide show
  1. package/README.md +172 -1
  2. package/dist/cli/commands/arguments.d.ts.map +1 -1
  3. package/dist/cli/commands/arguments.js +33 -5
  4. package/dist/cli/commands/arguments.js.map +1 -1
  5. package/dist/cli/commands/claims.d.ts +3 -0
  6. package/dist/cli/commands/claims.d.ts.map +1 -0
  7. package/dist/cli/commands/claims.js +120 -0
  8. package/dist/cli/commands/claims.js.map +1 -0
  9. package/dist/cli/commands/parse.d.ts +3 -0
  10. package/dist/cli/commands/parse.d.ts.map +1 -0
  11. package/dist/cli/commands/parse.js +159 -0
  12. package/dist/cli/commands/parse.js.map +1 -0
  13. package/dist/cli/commands/render.d.ts.map +1 -1
  14. package/dist/cli/commands/render.js +77 -4
  15. package/dist/cli/commands/render.js.map +1 -1
  16. package/dist/cli/commands/sources.d.ts +1 -1
  17. package/dist/cli/commands/sources.d.ts.map +1 -1
  18. package/dist/cli/commands/sources.js +83 -45
  19. package/dist/cli/commands/sources.js.map +1 -1
  20. package/dist/cli/config.d.ts +1 -0
  21. package/dist/cli/config.d.ts.map +1 -1
  22. package/dist/cli/config.js +3 -0
  23. package/dist/cli/config.js.map +1 -1
  24. package/dist/cli/engine.d.ts +14 -1
  25. package/dist/cli/engine.d.ts.map +1 -1
  26. package/dist/cli/engine.js +45 -2
  27. package/dist/cli/engine.js.map +1 -1
  28. package/dist/cli/import.d.ts +9 -1
  29. package/dist/cli/import.d.ts.map +1 -1
  30. package/dist/cli/import.js +22 -4
  31. package/dist/cli/import.js.map +1 -1
  32. package/dist/cli/llm/index.d.ts +6 -0
  33. package/dist/cli/llm/index.d.ts.map +1 -0
  34. package/dist/cli/llm/index.js +26 -0
  35. package/dist/cli/llm/index.js.map +1 -0
  36. package/dist/cli/llm/openai.d.ts +4 -0
  37. package/dist/cli/llm/openai.d.ts.map +1 -0
  38. package/dist/cli/llm/openai.js +44 -0
  39. package/dist/cli/llm/openai.js.map +1 -0
  40. package/dist/cli/llm/types.d.ts +14 -0
  41. package/dist/cli/llm/types.d.ts.map +1 -0
  42. package/dist/cli/llm/types.js +2 -0
  43. package/dist/cli/llm/types.js.map +1 -0
  44. package/dist/cli/logging.d.ts +8 -0
  45. package/dist/cli/logging.d.ts.map +1 -0
  46. package/dist/cli/logging.js +23 -0
  47. package/dist/cli/logging.js.map +1 -0
  48. package/dist/cli/router.d.ts.map +1 -1
  49. package/dist/cli/router.js +2 -0
  50. package/dist/cli/router.js.map +1 -1
  51. package/dist/cli/storage/libraries.d.ts +11 -0
  52. package/dist/cli/storage/libraries.d.ts.map +1 -0
  53. package/dist/cli/storage/libraries.js +61 -0
  54. package/dist/cli/storage/libraries.js.map +1 -0
  55. package/dist/cli.js +5 -1
  56. package/dist/cli.js.map +1 -1
  57. package/dist/extensions/basics/argument-parser.d.ts +12 -0
  58. package/dist/extensions/basics/argument-parser.d.ts.map +1 -0
  59. package/dist/extensions/basics/argument-parser.js +27 -0
  60. package/dist/extensions/basics/argument-parser.js.map +1 -0
  61. package/dist/extensions/basics/index.d.ts +4 -0
  62. package/dist/extensions/basics/index.d.ts.map +1 -0
  63. package/dist/extensions/basics/index.js +3 -0
  64. package/dist/extensions/basics/index.js.map +1 -0
  65. package/dist/extensions/basics/schemata.d.ts +31 -0
  66. package/dist/extensions/basics/schemata.d.ts.map +1 -0
  67. package/dist/extensions/basics/schemata.js +55 -0
  68. package/dist/extensions/basics/schemata.js.map +1 -0
  69. package/dist/lib/core/argument-engine.d.ts +5 -2
  70. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  71. package/dist/lib/core/argument-engine.js +20 -24
  72. package/dist/lib/core/argument-engine.js.map +1 -1
  73. package/dist/lib/core/claim-library.d.ts +2 -2
  74. package/dist/lib/core/claim-library.d.ts.map +1 -1
  75. package/dist/lib/core/claim-source-library.d.ts +2 -2
  76. package/dist/lib/core/claim-source-library.d.ts.map +1 -1
  77. package/dist/lib/core/expression-manager.d.ts +25 -2
  78. package/dist/lib/core/expression-manager.d.ts.map +1 -1
  79. package/dist/lib/core/expression-manager.js +211 -4
  80. package/dist/lib/core/expression-manager.js.map +1 -1
  81. package/dist/lib/core/interfaces/index.d.ts +1 -1
  82. package/dist/lib/core/interfaces/index.d.ts.map +1 -1
  83. package/dist/lib/core/interfaces/library.interfaces.d.ts +243 -14
  84. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  85. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +38 -0
  86. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -1
  87. package/dist/lib/core/parser/formula-gen.js +120 -47
  88. package/dist/lib/core/premise-engine.d.ts +8 -1
  89. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  90. package/dist/lib/core/premise-engine.js +90 -21
  91. package/dist/lib/core/premise-engine.js.map +1 -1
  92. package/dist/lib/core/source-library.d.ts +2 -2
  93. package/dist/lib/core/source-library.d.ts.map +1 -1
  94. package/dist/lib/index.d.ts +2 -0
  95. package/dist/lib/index.d.ts.map +1 -1
  96. package/dist/lib/index.js +2 -0
  97. package/dist/lib/index.js.map +1 -1
  98. package/dist/lib/parsing/argument-parser.d.ts +47 -0
  99. package/dist/lib/parsing/argument-parser.d.ts.map +1 -0
  100. package/dist/lib/parsing/argument-parser.js +307 -0
  101. package/dist/lib/parsing/argument-parser.js.map +1 -0
  102. package/dist/lib/parsing/index.d.ts +7 -0
  103. package/dist/lib/parsing/index.d.ts.map +1 -0
  104. package/dist/lib/parsing/index.js +4 -0
  105. package/dist/lib/parsing/index.js.map +1 -0
  106. package/dist/lib/parsing/prompt-builder.d.ts +11 -0
  107. package/dist/lib/parsing/prompt-builder.d.ts.map +1 -0
  108. package/dist/lib/parsing/prompt-builder.js +192 -0
  109. package/dist/lib/parsing/prompt-builder.js.map +1 -0
  110. package/dist/lib/parsing/schemata.d.ts +77 -0
  111. package/dist/lib/parsing/schemata.d.ts.map +1 -0
  112. package/dist/lib/parsing/schemata.js +88 -0
  113. package/dist/lib/parsing/schemata.js.map +1 -0
  114. package/dist/lib/parsing/types.d.ts +13 -0
  115. package/dist/lib/parsing/types.d.ts.map +1 -0
  116. package/dist/lib/parsing/types.js +2 -0
  117. package/dist/lib/parsing/types.js.map +1 -0
  118. package/dist/lib/types/grammar.d.ts +31 -0
  119. package/dist/lib/types/grammar.d.ts.map +1 -0
  120. package/dist/lib/types/grammar.js +11 -0
  121. package/dist/lib/types/grammar.js.map +1 -0
  122. package/package.json +5 -1
  123. package/dist/cli/storage/sources.d.ts +0 -4
  124. package/dist/cli/storage/sources.d.ts.map +0 -1
  125. package/dist/cli/storage/sources.js +0 -22
  126. package/dist/cli/storage/sources.js.map +0 -1
@@ -1,36 +1,265 @@
1
1
  import type { TCoreClaim } from "../../schemata/claim.js";
2
2
  import type { TCoreClaimSourceAssociation, TCoreSource } from "../../schemata/source.js";
3
- /** Narrow read-only interface for claim lookups. Used by ArgumentEngine for validation. */
3
+ /**
4
+ * Narrow read-only interface for claim lookups. Used by `ArgumentEngine` for
5
+ * variable validation — callers that only need to verify claim existence
6
+ * should depend on this rather than the full `ClaimLibrary`.
7
+ */
4
8
  export interface TClaimLookup<TClaim extends TCoreClaim = TCoreClaim> {
9
+ /**
10
+ * Returns a claim by ID and version, or `undefined` if not found.
11
+ *
12
+ * @param id - The claim ID.
13
+ * @param version - The claim version number.
14
+ * @returns The claim entity, or `undefined`.
15
+ */
5
16
  get(id: string, version: number): TClaim | undefined;
6
17
  }
7
- /** Narrow read-only interface for source lookups. Used by ArgumentEngine for validation. */
18
+ /**
19
+ * Narrow read-only interface for source lookups. Used by `ArgumentEngine` for
20
+ * validation — callers that only need to verify source existence should depend
21
+ * on this rather than the full `SourceLibrary`.
22
+ */
8
23
  export interface TSourceLookup<TSource extends TCoreSource = TCoreSource> {
24
+ /**
25
+ * Returns a source by ID and version, or `undefined` if not found.
26
+ *
27
+ * @param id - The source ID.
28
+ * @param version - The source version number.
29
+ * @returns The source entity, or `undefined`.
30
+ */
9
31
  get(id: string, version: number): TSource | undefined;
10
32
  }
11
- /** Serializable snapshot of a ClaimLibrary. */
12
- export type TClaimLibrarySnapshot<TClaim extends TCoreClaim = TCoreClaim> = {
13
- claims: TClaim[];
14
- };
15
- /** Serializable snapshot of a SourceLibrary. */
16
- export type TSourceLibrarySnapshot<TSource extends TCoreSource = TCoreSource> = {
17
- sources: TSource[];
18
- };
33
+ /**
34
+ * Full management interface for a versioned claim library. Extends
35
+ * `TClaimLookup` with mutation, query, and snapshot methods.
36
+ */
37
+ export interface TClaimLibraryManagement<TClaim extends TCoreClaim = TCoreClaim> extends TClaimLookup<TClaim> {
38
+ /**
39
+ * Creates a new claim at version 0. The `version`, `frozen`, and
40
+ * `checksum` fields are assigned automatically.
41
+ *
42
+ * @param claim - The claim data without system-managed fields.
43
+ * @returns The created claim entity with all fields populated.
44
+ * @throws If a claim with the same ID already exists.
45
+ */
46
+ create(claim: Omit<TClaim, "version" | "frozen" | "checksum">): TClaim;
47
+ /**
48
+ * Updates mutable fields on the current (latest, unfrozen) version of a
49
+ * claim. System-managed fields (`id`, `version`, `frozen`, `checksum`)
50
+ * cannot be updated.
51
+ *
52
+ * @param id - The claim ID.
53
+ * @param updates - The fields to update.
54
+ * @returns The updated claim entity.
55
+ * @throws If the claim does not exist.
56
+ * @throws If the current version is frozen.
57
+ */
58
+ update(id: string, updates: Partial<Omit<TClaim, "id" | "version" | "frozen" | "checksum">>): TClaim;
59
+ /**
60
+ * Freezes the current version of a claim (marking it immutable) and
61
+ * creates a new mutable version at `version + 1`.
62
+ *
63
+ * @param id - The claim ID.
64
+ * @returns An object containing the `frozen` version and the new
65
+ * `current` (mutable) version.
66
+ * @throws If the claim does not exist.
67
+ * @throws If the current version is already frozen.
68
+ */
69
+ freeze(id: string): {
70
+ frozen: TClaim;
71
+ current: TClaim;
72
+ };
73
+ /**
74
+ * Returns the latest version of a claim, or `undefined` if not found.
75
+ *
76
+ * @param id - The claim ID.
77
+ * @returns The latest claim entity, or `undefined`.
78
+ */
79
+ getCurrent(id: string): TClaim | undefined;
80
+ /**
81
+ * Returns all claim entities across all IDs and versions.
82
+ *
83
+ * @returns An array of all claim entities.
84
+ */
85
+ getAll(): TClaim[];
86
+ /**
87
+ * Returns all versions of a claim sorted by version number ascending.
88
+ *
89
+ * @param id - The claim ID.
90
+ * @returns An array of claim entities, or an empty array if the ID does
91
+ * not exist.
92
+ */
93
+ getVersions(id: string): TClaim[];
94
+ /**
95
+ * Returns a serializable snapshot of all claims in the library.
96
+ *
97
+ * @returns The claim library snapshot.
98
+ */
99
+ snapshot(): TClaimLibrarySnapshot<TClaim>;
100
+ }
101
+ /**
102
+ * Full management interface for a versioned source library. Extends
103
+ * `TSourceLookup` with mutation, query, and snapshot methods.
104
+ */
105
+ export interface TSourceLibraryManagement<TSource extends TCoreSource = TCoreSource> extends TSourceLookup<TSource> {
106
+ /**
107
+ * Creates a new source at version 0. The `version`, `frozen`, and
108
+ * `checksum` fields are assigned automatically.
109
+ *
110
+ * @param source - The source data without system-managed fields.
111
+ * @returns The created source entity with all fields populated.
112
+ * @throws If a source with the same ID already exists.
113
+ */
114
+ create(source: Omit<TSource, "version" | "frozen" | "checksum">): TSource;
115
+ /**
116
+ * Updates mutable fields on the current (latest, unfrozen) version of a
117
+ * source. System-managed fields (`id`, `version`, `frozen`, `checksum`)
118
+ * cannot be updated.
119
+ *
120
+ * @param id - The source ID.
121
+ * @param updates - The fields to update.
122
+ * @returns The updated source entity.
123
+ * @throws If the source does not exist.
124
+ * @throws If the current version is frozen.
125
+ */
126
+ update(id: string, updates: Partial<Omit<TSource, "id" | "version" | "frozen" | "checksum">>): TSource;
127
+ /**
128
+ * Freezes the current version of a source (marking it immutable) and
129
+ * creates a new mutable version at `version + 1`.
130
+ *
131
+ * @param id - The source ID.
132
+ * @returns An object containing the `frozen` version and the new
133
+ * `current` (mutable) version.
134
+ * @throws If the source does not exist.
135
+ * @throws If the current version is already frozen.
136
+ */
137
+ freeze(id: string): {
138
+ frozen: TSource;
139
+ current: TSource;
140
+ };
141
+ /**
142
+ * Returns the latest version of a source, or `undefined` if not found.
143
+ *
144
+ * @param id - The source ID.
145
+ * @returns The latest source entity, or `undefined`.
146
+ */
147
+ getCurrent(id: string): TSource | undefined;
148
+ /**
149
+ * Returns all source entities across all IDs and versions.
150
+ *
151
+ * @returns An array of all source entities.
152
+ */
153
+ getAll(): TSource[];
154
+ /**
155
+ * Returns all versions of a source sorted by version number ascending.
156
+ *
157
+ * @param id - The source ID.
158
+ * @returns An array of source entities, or an empty array if the ID does
159
+ * not exist.
160
+ */
161
+ getVersions(id: string): TSource[];
162
+ /**
163
+ * Returns a serializable snapshot of all sources in the library.
164
+ *
165
+ * @returns The source library snapshot.
166
+ */
167
+ snapshot(): TSourceLibrarySnapshot<TSource>;
168
+ }
19
169
  /**
20
170
  * Narrow read-only interface for claim-source association lookups.
21
171
  * Implemented by `ClaimSourceLibrary`. Passed to `ArgumentEngine` as the
22
172
  * fourth constructor parameter.
23
173
  */
24
174
  export interface TClaimSourceLookup<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> {
25
- /** Returns all associations for the given claim ID. */
175
+ /**
176
+ * Returns all associations for the given claim ID.
177
+ *
178
+ * @param claimId - The claim ID to filter by.
179
+ * @returns An array of matching associations.
180
+ */
26
181
  getForClaim(claimId: string): TAssoc[];
27
- /** Returns all associations for the given source ID. */
182
+ /**
183
+ * Returns all associations for the given source ID.
184
+ *
185
+ * @param sourceId - The source ID to filter by.
186
+ * @returns An array of matching associations.
187
+ */
28
188
  getForSource(sourceId: string): TAssoc[];
29
- /** Returns an association by ID, or `undefined` if not found. */
189
+ /**
190
+ * Returns an association by ID, or `undefined` if not found.
191
+ *
192
+ * @param id - The association ID.
193
+ * @returns The association entity, or `undefined`.
194
+ */
30
195
  get(id: string): TAssoc | undefined;
31
196
  }
32
- /** Serializable snapshot of a ClaimSourceLibrary (`{ claimSourceAssociations }`). */
197
+ /**
198
+ * Full management interface for a claim-source association library. Extends
199
+ * `TClaimSourceLookup` with mutation, query, and snapshot methods.
200
+ * Associations are create-or-delete only — no update path.
201
+ */
202
+ export interface TClaimSourceLibraryManagement<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> extends TClaimSourceLookup<TAssoc> {
203
+ /**
204
+ * Creates a claim-source association. Validates that the referenced claim
205
+ * and source exist in their respective libraries.
206
+ *
207
+ * @param assoc - The association data without the `checksum` field.
208
+ * @returns The created association with checksum populated.
209
+ * @throws If an association with the same ID already exists.
210
+ * @throws If the referenced claim or source does not exist.
211
+ */
212
+ add(assoc: Omit<TAssoc, "checksum">): TAssoc;
213
+ /**
214
+ * Removes a claim-source association by ID.
215
+ *
216
+ * @param id - The association ID to remove.
217
+ * @returns The removed association entity.
218
+ * @throws If the association does not exist.
219
+ */
220
+ remove(id: string): TAssoc;
221
+ /**
222
+ * Returns all associations in the library.
223
+ *
224
+ * @returns An array of all association entities.
225
+ */
226
+ getAll(): TAssoc[];
227
+ /**
228
+ * Returns all associations matching the predicate.
229
+ *
230
+ * @param predicate - A filter function applied to each association.
231
+ * @returns An array of matching associations.
232
+ */
233
+ filter(predicate: (a: TAssoc) => boolean): TAssoc[];
234
+ /**
235
+ * Returns a serializable snapshot of all associations in the library.
236
+ *
237
+ * @returns The claim-source library snapshot.
238
+ */
239
+ snapshot(): TClaimSourceLibrarySnapshot<TAssoc>;
240
+ }
241
+ /**
242
+ * Serializable snapshot of a `ClaimLibrary`. Contains all claim entities
243
+ * across all IDs and versions.
244
+ */
245
+ export type TClaimLibrarySnapshot<TClaim extends TCoreClaim = TCoreClaim> = {
246
+ /** All claim entities in the library. */
247
+ claims: TClaim[];
248
+ };
249
+ /**
250
+ * Serializable snapshot of a `SourceLibrary`. Contains all source entities
251
+ * across all IDs and versions.
252
+ */
253
+ export type TSourceLibrarySnapshot<TSource extends TCoreSource = TCoreSource> = {
254
+ /** All source entities in the library. */
255
+ sources: TSource[];
256
+ };
257
+ /**
258
+ * Serializable snapshot of a `ClaimSourceLibrary`. Contains all association
259
+ * entities.
260
+ */
33
261
  export type TClaimSourceLibrarySnapshot<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> = {
262
+ /** All claim-source association entities in the library. */
34
263
  claimSourceAssociations: TAssoc[];
35
264
  };
36
265
  //# sourceMappingURL=library.interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EACR,2BAA2B,EAC3B,WAAW,EACd,MAAM,0BAA0B,CAAA;AAEjC,2FAA2F;AAC3F,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU;IAChE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACvD;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW;IACpE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;CACxD;AAED,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU,IAAI;IACxE,MAAM,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IACxE;IACI,OAAO,EAAE,OAAO,EAAE,CAAA;CACrB,CAAA;AAEL;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAC/B,MAAM,SAAS,2BAA2B,GAAG,2BAA2B;IAExE,uDAAuD;IACvD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtC,wDAAwD;IACxD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxC,iEAAiE;IACjE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACtC;AAED,qFAAqF;AACrF,MAAM,MAAM,2BAA2B,CACnC,MAAM,SAAS,2BAA2B,GAAG,2BAA2B,IACxE;IACA,uBAAuB,EAAE,MAAM,EAAE,CAAA;CACpC,CAAA"}
1
+ {"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,13 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
14
14
  * root is permitted per premise. All structural rules (`implies`/`iff`
15
15
  * root-only, child limits, position uniqueness) are enforced.
16
16
  *
17
+ * When `grammarConfig.autoNormalize` is `true`, operator nesting
18
+ * violations are auto-corrected by inserting a `formula` buffer between
19
+ * the parent operator and the non-`not` operator child, rather than
20
+ * throwing. Auto-normalize is only active for `addExpression`; compound
21
+ * operations (`insertExpression`, `wrapExpression`) and `removeExpression`
22
+ * always throw on violations regardless of this flag.
23
+ *
17
24
  * @param expression - The expression to add, including position and
18
25
  * parent assignment.
19
26
  * @returns The added expression (with checksum) and changeset.
@@ -22,6 +29,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
22
29
  * @throws If the expression's parent does not exist in this premise.
23
30
  * @throws If the expression is a variable reference and the variable
24
31
  * has not been registered.
32
+ * @throws If a non-not operator would become a direct child of another
33
+ * operator expression (when `autoNormalize` is `false`).
25
34
  */
26
35
  addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
27
36
  /**
@@ -35,6 +44,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
35
44
  * @throws If the premise already has a root and `parentId` is `null`.
36
45
  * @throws If the expression is a variable reference and the variable
37
46
  * has not been registered.
47
+ * @throws If a non-not operator would become a direct child of another
48
+ * operator expression.
38
49
  */
39
50
  appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
40
51
  /**
@@ -49,6 +60,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
49
60
  * @throws If the sibling does not exist in this premise.
50
61
  * @throws If the expression is a variable reference and the variable
51
62
  * has not been registered.
63
+ * @throws If a non-not operator would become a direct child of another
64
+ * operator expression.
52
65
  */
53
66
  addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
54
67
  /**
@@ -69,6 +82,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
69
82
  * @param expressionId - The ID of the expression to remove.
70
83
  * @param deleteSubtree - Whether to remove all descendants as well.
71
84
  * @returns The removed root expression, or `undefined` if not found.
85
+ * @throws If removal would promote a non-not operator as a direct
86
+ * child of another operator expression.
72
87
  */
73
88
  removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg>;
74
89
  /**
@@ -85,6 +100,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
85
100
  * @returns The inserted expression (with checksum) and changeset.
86
101
  * @throws If the expression is a variable reference and the variable
87
102
  * has not been registered.
103
+ * @throws If a non-not operator would become a direct child of another
104
+ * operator expression.
88
105
  */
89
106
  insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
90
107
  /**
@@ -104,6 +121,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
104
121
  * @returns The inserted operator (with checksum) and changeset.
105
122
  * @throws If the new sibling is a variable reference and the variable
106
123
  * has not been registered.
124
+ * @throws If a non-not operator would become a direct child of another
125
+ * operator expression.
107
126
  */
108
127
  wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
109
128
  /**
@@ -261,6 +280,25 @@ export interface TPremiseLifecycle<TPremise extends TCorePremise = TCorePremise,
261
280
  * @param callback - The mutation callback, or `undefined` to remove.
262
281
  */
263
282
  setOnMutate(callback: (() => void) | undefined): void;
283
+ /**
284
+ * Sets a callback that checks whether adding a variable-expression to a
285
+ * premise would create a circular binding. Injected by `ArgumentEngine`
286
+ * to enable cross-premise cycle detection. If not set, only the direct
287
+ * check (within the premise itself) runs.
288
+ *
289
+ * @param check - A function that returns `true` if adding the variable
290
+ * to the premise would create a cycle, or `undefined` to clear.
291
+ */
292
+ setCircularityCheck(check: ((variableId: string, premiseId: string) => boolean) | undefined): void;
293
+ /**
294
+ * Sets a callback that checks whether a premise-bound variable's target
295
+ * premise has an empty expression tree. Injected by `ArgumentEngine` to
296
+ * enable cross-premise validation. Used during `validateEvaluability`.
297
+ *
298
+ * @param check - A function that returns `true` if the variable's bound
299
+ * premise has no root expression, or `undefined` to clear.
300
+ */
301
+ setEmptyBoundPremiseCheck(check: ((variableId: string) => boolean) | undefined): void;
264
302
  /**
265
303
  * Invalidates the cached checksum so the next call recomputes it.
266
304
  */
@@ -1 +1 @@
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
+ {"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,EAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACR,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,oBAAoB,CACjC,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,CACT,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,GACpC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAC9C,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D;;;;;;;;;;;;;;OAcG;IACH,qBAAqB,CACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAC9C,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D;;;;;;;;;OASG;IACH,gBAAgB,CACZ,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GAC3B,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D;;;;;;;;;OASG;IACH,gBAAgB,CACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,OAAO,GACvB,mBAAmB,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACtE;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CACZ,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,EACnC,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CACV,QAAQ,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAC3C,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAC7C,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D;;;;;;;;;OASG;IACH,cAAc,CACV,YAAY,EAAE,MAAM,GACrB,mBAAmB,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAC/B,KAAK,SAAS,4BAA4B,GAAG,4BAA4B;IAEzE;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAC5C;;;;;OAKG;IACH,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAAA;IACzC;;;;OAIG;IACH,iBAAiB,IAAI,KAAK,GAAG,SAAS,CAAA;IACtC;;;;OAIG;IACH,cAAc,IAAI,KAAK,EAAE,CAAA;IACzB;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,EAAE,CAAA;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAChC,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE;;;;;;;OAOG;IACH,YAAY,IAAI,IAAI,EAAE,CAAA;IACtB;;;;;;OAMG;IACH,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IACvC;;;;;;;OAOG;IACH,8BAA8B,CAC1B,UAAU,EAAE,MAAM,GACnB,mBAAmB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,CAAA;IACtB;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;OAIG;IACH,oBAAoB,IAAI,qBAAqB,CAAA;IAC7C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CACJ,UAAU,EAAE,yBAAyB,EACrC,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;KACjC,GACF,4BAA4B,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAC9B,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B;IAEzE;;;;OAIG;IACH,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACnD;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;IACrD;;;;;;;;OAQG;IACH,mBAAmB,CACf,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,GACxE,IAAI,CAAA;IACP;;;;;;;OAOG;IACH,yBAAyB,CACrB,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,GACrD,IAAI,CAAA;IACP;;OAEG;IACH,SAAS,IAAI,IAAI,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAC7B,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE;;;;OAIG;IACH,KAAK,IAAI,MAAM,CAAA;IACf;;;;;;OAMG;IACH,aAAa,IAAI,QAAQ,CAAA;IACzB;;;;OAIG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;;;;OAKG;IACH,SAAS,CACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;CAC/E"}