@proposit/proposit-core 0.9.1 → 0.11.0

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 (184) hide show
  1. package/README.md +147 -35
  2. package/dist/cli/commands/arguments.d.ts.map +1 -1
  3. package/dist/cli/commands/arguments.js +8 -16
  4. package/dist/cli/commands/arguments.js.map +1 -1
  5. package/dist/cli/commands/citations.d.ts +3 -0
  6. package/dist/cli/commands/citations.d.ts.map +1 -0
  7. package/dist/cli/commands/citations.js +89 -0
  8. package/dist/cli/commands/citations.js.map +1 -0
  9. package/dist/cli/commands/claims.d.ts.map +1 -1
  10. package/dist/cli/commands/claims.js +10 -2
  11. package/dist/cli/commands/claims.js.map +1 -1
  12. package/dist/cli/commands/parse.d.ts.map +1 -1
  13. package/dist/cli/commands/parse.js +9 -17
  14. package/dist/cli/commands/parse.js.map +1 -1
  15. package/dist/cli/commands/premises.d.ts.map +1 -1
  16. package/dist/cli/commands/premises.js +82 -5
  17. package/dist/cli/commands/premises.js.map +1 -1
  18. package/dist/cli/commands/render.d.ts.map +1 -1
  19. package/dist/cli/commands/render.js +46 -19
  20. package/dist/cli/commands/render.js.map +1 -1
  21. package/dist/cli/commands/variables.d.ts.map +1 -1
  22. package/dist/cli/commands/variables.js +1 -0
  23. package/dist/cli/commands/variables.js.map +1 -1
  24. package/dist/cli/engine.d.ts.map +1 -1
  25. package/dist/cli/engine.js +15 -9
  26. package/dist/cli/engine.js.map +1 -1
  27. package/dist/cli/import.d.ts +2 -4
  28. package/dist/cli/import.d.ts.map +1 -1
  29. package/dist/cli/import.js +78 -20
  30. package/dist/cli/import.js.map +1 -1
  31. package/dist/cli/router.js +1 -1
  32. package/dist/cli/router.js.map +1 -1
  33. package/dist/cli/storage/libraries.d.ts +4 -7
  34. package/dist/cli/storage/libraries.d.ts.map +1 -1
  35. package/dist/cli/storage/libraries.js +9 -28
  36. package/dist/cli/storage/libraries.js.map +1 -1
  37. package/dist/cli/storage/migrate-v0.10.d.ts +10 -0
  38. package/dist/cli/storage/migrate-v0.10.d.ts.map +1 -0
  39. package/dist/cli/storage/migrate-v0.10.js +213 -0
  40. package/dist/cli/storage/migrate-v0.10.js.map +1 -0
  41. package/dist/cli/storage/migrate-v0.11.d.ts +15 -0
  42. package/dist/cli/storage/migrate-v0.11.d.ts.map +1 -0
  43. package/dist/cli/storage/migrate-v0.11.js +125 -0
  44. package/dist/cli/storage/migrate-v0.11.js.map +1 -0
  45. package/dist/cli.js +2 -2
  46. package/dist/cli.js.map +1 -1
  47. package/dist/extensions/basics/argument-parser.d.ts +1 -2
  48. package/dist/extensions/basics/argument-parser.d.ts.map +1 -1
  49. package/dist/extensions/basics/argument-parser.js.map +1 -1
  50. package/dist/extensions/basics/schemata.d.ts +12 -1
  51. package/dist/extensions/basics/schemata.d.ts.map +1 -1
  52. package/dist/extensions/ieee/{source.d.ts → citation-claim.d.ts} +5 -3
  53. package/dist/extensions/ieee/citation-claim.d.ts.map +1 -0
  54. package/dist/extensions/ieee/{source.js → citation-claim.js} +5 -4
  55. package/dist/extensions/ieee/citation-claim.js.map +1 -0
  56. package/dist/extensions/ieee/index.d.ts +1 -1
  57. package/dist/extensions/ieee/index.d.ts.map +1 -1
  58. package/dist/extensions/ieee/index.js +1 -1
  59. package/dist/extensions/ieee/index.js.map +1 -1
  60. package/dist/lib/consts.d.ts.map +1 -1
  61. package/dist/lib/consts.js +15 -14
  62. package/dist/lib/consts.js.map +1 -1
  63. package/dist/lib/core/argument-engine.d.ts +47 -9
  64. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  65. package/dist/lib/core/argument-engine.js +209 -20
  66. package/dist/lib/core/argument-engine.js.map +1 -1
  67. package/dist/lib/core/argument-library.d.ts +13 -15
  68. package/dist/lib/core/argument-library.d.ts.map +1 -1
  69. package/dist/lib/core/argument-library.js +23 -9
  70. package/dist/lib/core/argument-library.js.map +1 -1
  71. package/dist/lib/core/claim-citation-library.d.ts +44 -0
  72. package/dist/lib/core/claim-citation-library.d.ts.map +1 -0
  73. package/dist/lib/core/claim-citation-library.js +336 -0
  74. package/dist/lib/core/claim-citation-library.js.map +1 -0
  75. package/dist/lib/core/claim-library.d.ts +33 -1
  76. package/dist/lib/core/claim-library.d.ts.map +1 -1
  77. package/dist/lib/core/claim-library.js +71 -3
  78. package/dist/lib/core/claim-library.js.map +1 -1
  79. package/dist/lib/core/fork-library.d.ts +19 -10
  80. package/dist/lib/core/fork-library.d.ts.map +1 -1
  81. package/dist/lib/core/fork-library.js +16 -13
  82. package/dist/lib/core/fork-library.js.map +1 -1
  83. package/dist/lib/core/fork.d.ts +6 -7
  84. package/dist/lib/core/fork.d.ts.map +1 -1
  85. package/dist/lib/core/fork.js +8 -3
  86. package/dist/lib/core/fork.js.map +1 -1
  87. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +132 -7
  88. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
  89. package/dist/lib/core/interfaces/index.d.ts +1 -1
  90. package/dist/lib/core/interfaces/index.d.ts.map +1 -1
  91. package/dist/lib/core/interfaces/library.interfaces.d.ts +76 -157
  92. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  93. package/dist/lib/core/managed-derivation-premise-engine.d.ts +155 -0
  94. package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +1 -0
  95. package/dist/lib/core/managed-derivation-premise-engine.js +517 -0
  96. package/dist/lib/core/managed-derivation-premise-engine.js.map +1 -0
  97. package/dist/lib/core/premise-engine.d.ts +6 -5
  98. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  99. package/dist/lib/core/premise-engine.js +5 -3
  100. package/dist/lib/core/premise-engine.js.map +1 -1
  101. package/dist/lib/core/proposit-core.d.ts +30 -32
  102. package/dist/lib/core/proposit-core.d.ts.map +1 -1
  103. package/dist/lib/core/proposit-core.js +82 -89
  104. package/dist/lib/core/proposit-core.js.map +1 -1
  105. package/dist/lib/index.d.ts +5 -3
  106. package/dist/lib/index.d.ts.map +1 -1
  107. package/dist/lib/index.js +4 -3
  108. package/dist/lib/index.js.map +1 -1
  109. package/dist/lib/parsing/argument-parser.d.ts +9 -12
  110. package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
  111. package/dist/lib/parsing/argument-parser.js +27 -45
  112. package/dist/lib/parsing/argument-parser.js.map +1 -1
  113. package/dist/lib/parsing/index.d.ts +2 -2
  114. package/dist/lib/parsing/index.d.ts.map +1 -1
  115. package/dist/lib/parsing/index.js +1 -1
  116. package/dist/lib/parsing/index.js.map +1 -1
  117. package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
  118. package/dist/lib/parsing/prompt-builder.js +31 -24
  119. package/dist/lib/parsing/prompt-builder.js.map +1 -1
  120. package/dist/lib/parsing/schemata.d.ts +7 -19
  121. package/dist/lib/parsing/schemata.d.ts.map +1 -1
  122. package/dist/lib/parsing/schemata.js +7 -14
  123. package/dist/lib/parsing/schemata.js.map +1 -1
  124. package/dist/lib/parsing/types.d.ts +1 -2
  125. package/dist/lib/parsing/types.d.ts.map +1 -1
  126. package/dist/lib/schemata/claim-citation.d.ts +11 -0
  127. package/dist/lib/schemata/claim-citation.d.ts.map +1 -0
  128. package/dist/lib/schemata/claim-citation.js +25 -0
  129. package/dist/lib/schemata/claim-citation.js.map +1 -0
  130. package/dist/lib/schemata/claim.d.ts +1 -0
  131. package/dist/lib/schemata/claim.d.ts.map +1 -1
  132. package/dist/lib/schemata/claim.js +3 -0
  133. package/dist/lib/schemata/claim.js.map +1 -1
  134. package/dist/lib/schemata/fork.d.ts +0 -11
  135. package/dist/lib/schemata/fork.d.ts.map +1 -1
  136. package/dist/lib/schemata/fork.js +0 -10
  137. package/dist/lib/schemata/fork.js.map +1 -1
  138. package/dist/lib/schemata/import.d.ts +39 -2
  139. package/dist/lib/schemata/import.d.ts.map +1 -1
  140. package/dist/lib/schemata/import.js +22 -1
  141. package/dist/lib/schemata/import.js.map +1 -1
  142. package/dist/lib/schemata/index.d.ts +1 -1
  143. package/dist/lib/schemata/index.d.ts.map +1 -1
  144. package/dist/lib/schemata/index.js +1 -1
  145. package/dist/lib/schemata/index.js.map +1 -1
  146. package/dist/lib/schemata/propositional.d.ts +32 -1
  147. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  148. package/dist/lib/schemata/propositional.js +17 -2
  149. package/dist/lib/schemata/propositional.js.map +1 -1
  150. package/dist/lib/types/checksum.d.ts +3 -5
  151. package/dist/lib/types/checksum.d.ts.map +1 -1
  152. package/dist/lib/types/evaluation.d.ts +1 -1
  153. package/dist/lib/types/evaluation.d.ts.map +1 -1
  154. package/dist/lib/types/validation.d.ts +19 -7
  155. package/dist/lib/types/validation.d.ts.map +1 -1
  156. package/dist/lib/types/validation.js +21 -8
  157. package/dist/lib/types/validation.js.map +1 -1
  158. package/dist/lib/utils/derivation-validation.d.ts +24 -0
  159. package/dist/lib/utils/derivation-validation.d.ts.map +1 -0
  160. package/dist/lib/utils/derivation-validation.js +107 -0
  161. package/dist/lib/utils/derivation-validation.js.map +1 -0
  162. package/dist/lib/utils/lookup.d.ts +7 -15
  163. package/dist/lib/utils/lookup.d.ts.map +1 -1
  164. package/dist/lib/utils/lookup.js +9 -18
  165. package/dist/lib/utils/lookup.js.map +1 -1
  166. package/package.json +1 -1
  167. package/dist/cli/commands/sources.d.ts +0 -3
  168. package/dist/cli/commands/sources.d.ts.map +0 -1
  169. package/dist/cli/commands/sources.js +0 -103
  170. package/dist/cli/commands/sources.js.map +0 -1
  171. package/dist/extensions/ieee/source.d.ts.map +0 -1
  172. package/dist/extensions/ieee/source.js.map +0 -1
  173. package/dist/lib/core/claim-source-library.d.ts +0 -32
  174. package/dist/lib/core/claim-source-library.d.ts.map +0 -1
  175. package/dist/lib/core/claim-source-library.js +0 -193
  176. package/dist/lib/core/claim-source-library.js.map +0 -1
  177. package/dist/lib/core/source-library.d.ts +0 -23
  178. package/dist/lib/core/source-library.d.ts.map +0 -1
  179. package/dist/lib/core/source-library.js +0 -21
  180. package/dist/lib/core/source-library.js.map +0 -1
  181. package/dist/lib/schemata/source.d.ts +0 -18
  182. package/dist/lib/schemata/source.d.ts.map +0 -1
  183. package/dist/lib/schemata/source.js +0 -35
  184. package/dist/lib/schemata/source.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import type { TCoreClaim } from "../../schemata/claim.js";
2
- import type { TCoreClaimSourceAssociation, TCoreSource } from "../../schemata/source.js";
3
- import type { TCoreArgumentForkRecord, TCorePremiseForkRecord, TCoreExpressionForkRecord, TCoreVariableForkRecord, TCoreClaimForkRecord, TCoreSourceForkRecord } from "../../schemata/fork.js";
2
+ import type { TCoreClaimCitation } from "../../schemata/claim-citation.js";
3
+ import type { TCoreArgumentForkRecord, TCorePremiseForkRecord, TCoreExpressionForkRecord, TCoreVariableForkRecord, TCoreClaimForkRecord } from "../../schemata/fork.js";
4
4
  import type { TInvariantValidationResult } from "../../types/validation.js";
5
5
  import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../../schemata/index.js";
6
6
  import type { TArgumentEngineSnapshot } from "../argument-engine.js";
@@ -21,21 +21,19 @@ export interface TClaimLookup<TClaim extends TCoreClaim = TCoreClaim> {
21
21
  * @returns The claim entity, or `undefined`.
22
22
  */
23
23
  get(id: string, version: number): TClaim | undefined;
24
- }
25
- /**
26
- * Narrow read-only interface for source lookups. Used by `ArgumentEngine` for
27
- * validation — callers that only need to verify source existence should depend
28
- * on this rather than the full `SourceLibrary`.
29
- */
30
- export interface TSourceLookup<TSource extends TCoreSource = TCoreSource> {
31
24
  /**
32
- * Returns a source by ID and version, or `undefined` if not found.
25
+ * Returns the latest version of a claim for the given ID, or `undefined`
26
+ * if the claim does not exist in this lookup.
27
+ *
28
+ * Implementations backed by a flat array (e.g. `createLookup`) return the
29
+ * item with the highest version number for the given ID. The full
30
+ * `ClaimLibrary` class tracks versions natively and returns its internal
31
+ * latest version directly.
33
32
  *
34
- * @param id - The source ID.
35
- * @param version - The source version number.
36
- * @returns The source entity, or `undefined`.
33
+ * @param id - The claim ID.
34
+ * @returns The latest claim entity, or `undefined`.
37
35
  */
38
- get(id: string, version: number): TSource | undefined;
36
+ getCurrent(id: string): TClaim | undefined;
39
37
  }
40
38
  /**
41
39
  * Full management interface for a versioned claim library. Extends
@@ -44,13 +42,18 @@ export interface TSourceLookup<TSource extends TCoreSource = TCoreSource> {
44
42
  export interface TClaimLibraryManagement<TClaim extends TCoreClaim = TCoreClaim> extends TClaimLookup<TClaim> {
45
43
  /**
46
44
  * Creates a new claim at version 0. The `version`, `frozen`, and
47
- * `checksum` fields are assigned automatically.
45
+ * `checksum` fields are assigned automatically. The `id` field is
46
+ * auto-generated when omitted. The `type` field is required and is
47
+ * immutable across the claim's lifetime.
48
48
  *
49
- * @param claim - The claim data without system-managed fields.
49
+ * @param claim - The claim data without system-managed fields. `id` is
50
+ * optional (auto-generated when omitted) and `type` is required.
50
51
  * @returns The created claim entity with all fields populated.
51
52
  * @throws If a claim with the same ID already exists.
52
53
  */
53
- create(claim: Omit<TClaim, "version" | "frozen" | "checksum">): TClaim;
54
+ create(claim: Omit<TClaim, "version" | "frozen" | "checksum"> | (Omit<TClaim, "id" | "version" | "frozen" | "checksum"> & {
55
+ id?: string;
56
+ })): TClaim;
54
57
  /**
55
58
  * Updates mutable fields on the current (latest, unfrozen) version of a
56
59
  * claim. System-managed fields (`id`, `version`, `frozen`, `checksum`)
@@ -112,152 +115,81 @@ export interface TClaimLibraryManagement<TClaim extends TCoreClaim = TCoreClaim>
112
115
  validate(): TInvariantValidationResult;
113
116
  }
114
117
  /**
115
- * Full management interface for a versioned source library. Extends
116
- * `TSourceLookup` with mutation, query, and snapshot methods.
118
+ * Narrow read-only interface for claim-citation lookups.
119
+ * Implemented by `ClaimCitationLibrary`.
117
120
  */
118
- export interface TSourceLibraryManagement<TSource extends TCoreSource = TCoreSource> extends TSourceLookup<TSource> {
119
- /**
120
- * Creates a new source at version 0. The `version`, `frozen`, and
121
- * `checksum` fields are assigned automatically.
122
- *
123
- * @param source - The source data without system-managed fields.
124
- * @returns The created source entity with all fields populated.
125
- * @throws If a source with the same ID already exists.
126
- */
127
- create(source: Omit<TSource, "version" | "frozen" | "checksum">): TSource;
128
- /**
129
- * Updates mutable fields on the current (latest, unfrozen) version of a
130
- * source. System-managed fields (`id`, `version`, `frozen`, `checksum`)
131
- * cannot be updated.
132
- *
133
- * @param id - The source ID.
134
- * @param updates - The fields to update.
135
- * @returns The updated source entity.
136
- * @throws If the source does not exist.
137
- * @throws If the current version is frozen.
138
- */
139
- update(id: string, updates: Partial<Omit<TSource, "id" | "version" | "frozen" | "checksum">>): TSource;
121
+ export interface TClaimCitationLookup<TCitation extends TCoreClaimCitation = TCoreClaimCitation> {
140
122
  /**
141
- * Freezes the current version of a source (marking it immutable) and
142
- * creates a new mutable version at `version + 1`.
123
+ * Returns all citations where the given claim is the citing-side endpoint.
143
124
  *
144
- * @param id - The source ID.
145
- * @returns An object containing the `frozen` version and the new
146
- * `current` (mutable) version.
147
- * @throws If the source does not exist.
148
- * @throws If the current version is already frozen.
125
+ * @param citingClaimId - The citing claim ID to filter by.
126
+ * @returns An array of matching citations.
149
127
  */
150
- freeze(id: string): {
151
- frozen: TSource;
152
- current: TSource;
153
- };
128
+ getCitationsForCitingClaim(citingClaimId: string): TCitation[];
154
129
  /**
155
- * Returns the latest version of a source, or `undefined` if not found.
130
+ * Returns all citations where the given claim is the source-side endpoint.
156
131
  *
157
- * @param id - The source ID.
158
- * @returns The latest source entity, or `undefined`.
132
+ * @param sourceClaimId - The source claim ID to filter by.
133
+ * @returns An array of matching citations.
159
134
  */
160
- getCurrent(id: string): TSource | undefined;
135
+ getCitationsForSourceClaim(sourceClaimId: string): TCitation[];
161
136
  /**
162
- * Returns all source entities across all IDs and versions.
137
+ * Returns a citation by ID, or `undefined` if not found.
163
138
  *
164
- * @returns An array of all source entities.
139
+ * @param id - The citation ID.
140
+ * @returns The citation entity, or `undefined`.
165
141
  */
166
- getAll(): TSource[];
167
- /**
168
- * Returns all versions of a source sorted by version number ascending.
169
- *
170
- * @param id - The source ID.
171
- * @returns An array of source entities, or an empty array if the ID does
172
- * not exist.
173
- */
174
- getVersions(id: string): TSource[];
175
- /**
176
- * Returns a serializable snapshot of all sources in the library.
177
- *
178
- * @returns The source library snapshot.
179
- */
180
- snapshot(): TSourceLibrarySnapshot<TSource>;
181
- /**
182
- * Run invariant validation on the source library.
183
- *
184
- * @returns The invariant validation result.
185
- */
186
- validate(): TInvariantValidationResult;
142
+ get(id: string): TCitation | undefined;
187
143
  }
188
144
  /**
189
- * Narrow read-only interface for claim-source association lookups.
190
- * Implemented by `ClaimSourceLibrary`. Passed to `ArgumentEngine` as the
191
- * fourth constructor parameter.
145
+ * Full management interface for a claim-citation library. Extends
146
+ * `TClaimCitationLookup` with mutation, query, and snapshot methods.
147
+ * Citations are create-or-delete only — no update path.
192
148
  */
193
- export interface TClaimSourceLookup<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> {
149
+ export interface TClaimCitationLibraryManagement<TCitation extends TCoreClaimCitation = TCoreClaimCitation> extends TClaimCitationLookup<TCitation> {
194
150
  /**
195
- * Returns all associations for the given claim ID.
151
+ * Creates a claim citation. Validates that both the citing and source
152
+ * claims exist in the claim library, that the source-side claim has
153
+ * type='citation', and that the new edge does not introduce a cycle in
154
+ * the global claim-citation graph.
196
155
  *
197
- * @param claimId - The claim ID to filter by.
198
- * @returns An array of matching associations.
156
+ * @param citation - The citation data without the `checksum` field.
157
+ * @returns The created citation with checksum populated.
158
+ * @throws If a citation with the same ID already exists.
159
+ * @throws If the referenced citing or source claim does not exist.
160
+ * @throws If the source-side claim has type !== 'citation'.
161
+ * @throws If the citation would create a cycle.
199
162
  */
200
- getForClaim(claimId: string): TAssoc[];
163
+ add(citation: Omit<TCitation, "checksum">): TCitation;
201
164
  /**
202
- * Returns all associations for the given source ID.
165
+ * Removes a claim citation by ID.
203
166
  *
204
- * @param sourceId - The source ID to filter by.
205
- * @returns An array of matching associations.
167
+ * @param id - The citation ID to remove.
168
+ * @returns The removed citation entity.
169
+ * @throws If the citation does not exist.
206
170
  */
207
- getForSource(sourceId: string): TAssoc[];
171
+ remove(id: string): TCitation;
208
172
  /**
209
- * Returns an association by ID, or `undefined` if not found.
173
+ * Returns all citations in the library.
210
174
  *
211
- * @param id - The association ID.
212
- * @returns The association entity, or `undefined`.
175
+ * @returns An array of all citation entities.
213
176
  */
214
- get(id: string): TAssoc | undefined;
215
- }
216
- /**
217
- * Full management interface for a claim-source association library. Extends
218
- * `TClaimSourceLookup` with mutation, query, and snapshot methods.
219
- * Associations are create-or-delete only — no update path.
220
- */
221
- export interface TClaimSourceLibraryManagement<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> extends TClaimSourceLookup<TAssoc> {
177
+ getAll(): TCitation[];
222
178
  /**
223
- * Creates a claim-source association. Validates that the referenced claim
224
- * and source exist in their respective libraries.
179
+ * Returns all citations matching the predicate.
225
180
  *
226
- * @param assoc - The association data without the `checksum` field.
227
- * @returns The created association with checksum populated.
228
- * @throws If an association with the same ID already exists.
229
- * @throws If the referenced claim or source does not exist.
181
+ * @param predicate - A filter function applied to each citation.
182
+ * @returns An array of matching citations.
230
183
  */
231
- add(assoc: Omit<TAssoc, "checksum">): TAssoc;
184
+ filter(predicate: (c: TCitation) => boolean): TCitation[];
232
185
  /**
233
- * Removes a claim-source association by ID.
186
+ * Returns a serializable snapshot of all citations in the library.
234
187
  *
235
- * @param id - The association ID to remove.
236
- * @returns The removed association entity.
237
- * @throws If the association does not exist.
188
+ * @returns The claim-citation library snapshot.
238
189
  */
239
- remove(id: string): TAssoc;
190
+ snapshot(): TClaimCitationLibrarySnapshot<TCitation>;
240
191
  /**
241
- * Returns all associations in the library.
242
- *
243
- * @returns An array of all association entities.
244
- */
245
- getAll(): TAssoc[];
246
- /**
247
- * Returns all associations matching the predicate.
248
- *
249
- * @param predicate - A filter function applied to each association.
250
- * @returns An array of matching associations.
251
- */
252
- filter(predicate: (a: TAssoc) => boolean): TAssoc[];
253
- /**
254
- * Returns a serializable snapshot of all associations in the library.
255
- *
256
- * @returns The claim-source library snapshot.
257
- */
258
- snapshot(): TClaimSourceLibrarySnapshot<TAssoc>;
259
- /**
260
- * Run invariant validation on the claim-source association library.
192
+ * Run invariant validation on the claim-citation library.
261
193
  *
262
194
  * @returns The invariant validation result.
263
195
  */
@@ -272,26 +204,18 @@ export type TClaimLibrarySnapshot<TClaim extends TCoreClaim = TCoreClaim> = {
272
204
  claims: TClaim[];
273
205
  };
274
206
  /**
275
- * Serializable snapshot of a `SourceLibrary`. Contains all source entities
276
- * across all IDs and versions.
277
- */
278
- export type TSourceLibrarySnapshot<TSource extends TCoreSource = TCoreSource> = {
279
- /** All source entities in the library. */
280
- sources: TSource[];
281
- };
282
- /**
283
- * Serializable snapshot of a `ClaimSourceLibrary`. Contains all association
207
+ * Serializable snapshot of a `ClaimCitationLibrary`. Contains all citation
284
208
  * entities.
285
209
  */
286
- export type TClaimSourceLibrarySnapshot<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> = {
287
- /** All claim-source association entities in the library. */
288
- claimSourceAssociations: TAssoc[];
210
+ export type TClaimCitationLibrarySnapshot<TCitation extends TCoreClaimCitation = TCoreClaimCitation> = {
211
+ /** All claim citation entities in the library. */
212
+ claimCitations: TCitation[];
289
213
  };
290
214
  /**
291
215
  * Serializable snapshot of a `ForkLibrary`. Contains arrays of fork records
292
216
  * for each entity type.
293
217
  */
294
- export type TForkLibrarySnapshot<TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord, TSourceFork extends TCoreSourceForkRecord = TCoreSourceForkRecord> = {
218
+ export type TForkLibrarySnapshot<TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord> = {
295
219
  /** All argument fork records. */
296
220
  arguments: TArgFork[];
297
221
  /** All premise fork records. */
@@ -302,8 +226,6 @@ export type TForkLibrarySnapshot<TArgFork extends TCoreArgumentForkRecord = TCor
302
226
  variables: TVarFork[];
303
227
  /** All claim fork records. */
304
228
  claims: TClaimFork[];
305
- /** All source fork records. */
306
- sources: TSourceFork[];
307
229
  };
308
230
  /**
309
231
  * Serializable snapshot of an `ArgumentLibrary`. Contains snapshots of all
@@ -315,20 +237,17 @@ export type TArgumentLibrarySnapshot<TArg extends TCoreArgument = TCoreArgument,
315
237
  };
316
238
  /**
317
239
  * Serializable snapshot of a `PropositCore` instance. Contains snapshots of
318
- * all managed libraries: arguments, claims, sources, claim-source associations,
319
- * and fork records.
240
+ * all managed libraries: arguments, claims, claim citations, and fork records.
320
241
  */
321
- export type TPropositCoreSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TSource extends TCoreSource = TCoreSource, TClaim extends TCoreClaim = TCoreClaim, TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation, TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord, TSourceFork extends TCoreSourceForkRecord = TCoreSourceForkRecord> = {
242
+ export type TPropositCoreSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TClaim extends TCoreClaim = TCoreClaim, TCitation extends TCoreClaimCitation = TCoreClaimCitation, TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord> = {
322
243
  /** Snapshot of all argument engines. */
323
244
  arguments: TArgumentLibrarySnapshot<TArg, TPremise, TExpr, TVar>;
324
245
  /** Snapshot of the claim library. */
325
246
  claims: TClaimLibrarySnapshot<TClaim>;
326
- /** Snapshot of the source library. */
327
- sources: TSourceLibrarySnapshot<TSource>;
328
- /** Snapshot of the claim-source association library. */
329
- claimSources: TClaimSourceLibrarySnapshot<TAssoc>;
247
+ /** Snapshot of the claim-citation library. */
248
+ claimCitations: TClaimCitationLibrarySnapshot<TCitation>;
330
249
  /** Snapshot of the fork library. */
331
- forks: TForkLibrarySnapshot<TArgFork, TPremiseFork, TExprFork, TVarFork, TClaimFork, TSourceFork>;
250
+ forks: TForkLibrarySnapshot<TArgFork, TPremiseFork, TExprFork, TVarFork, TClaimFork>;
332
251
  };
333
252
  /**
334
253
  * Shared configuration options for `PropositCore`. These config values are
@@ -1 +1 @@
1
- {"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import { type TCoreArgument, type TCoreLogicalOperatorType, type TCorePremise, type TCorePropositionalExpression, type TCorePropositionalVariable, type TOptionalChecksum, type TClaimBoundVariable } from "../schemata/index.js";
2
+ import { PremiseEngine, type TPremiseEngineSnapshot } from "./premise-engine.js";
3
+ import { VariableManager } from "./variable-manager.js";
4
+ import { type TLogicEngineOptions } from "./argument-engine.js";
5
+ /**
6
+ * Minimal structural interface needed by `populateFromCitations`. Using a
7
+ * structural type rather than the concrete `ArgumentEngine<…>` class prevents
8
+ * generic-parameter variance errors when the caller uses default type params.
9
+ */
10
+ export type TVariableMaterializer = {
11
+ ensureClaimBoundVariable(claimId: string): TClaimBoundVariable;
12
+ };
13
+ import { type TGrammarConfig } from "../types/grammar.js";
14
+ import type { TExpressionInput, TExpressionWithoutPosition, TExpressionUpdate } from "./expression-manager.js";
15
+ import type { TCoreMutationResult } from "../types/mutation.js";
16
+ import type { ClaimCitationLibrary } from "./claim-citation-library.js";
17
+ /**
18
+ * A managed engine for derivation premises that enforces structural rules
19
+ * from the v0.11.0 spec on construction and on snapshot restoration.
20
+ *
21
+ * Construction validates the premise type (`DERIVATION_TYPE_MISMATCH` if the
22
+ * premise isn't `type: "derivation"`). Full expression-tree structural
23
+ * validation (`DERIVATION_STRUCTURE_INVALID`) runs in `fromSnapshot` — after
24
+ * expressions are loaded — and will be called from mutation overrides in
25
+ * Task 6.
26
+ *
27
+ * Note: The constructor only validates the premise type, not the expression
28
+ * tree, because `PremiseEngine` is always constructed before expressions are
29
+ * loaded (expressions are added separately via mutations or `loadExpressions`).
30
+ * Structural validation at the end of `fromSnapshot` catches tampered
31
+ * snapshots, and Task 6 mutation overrides will enforce it on every change.
32
+ *
33
+ * The classic `PremiseEngine` is permissive and allows mutations that leave a
34
+ * derivation premise temporarily or permanently invalid. The managed engine
35
+ * wraps it for safe, structurally-enforced editing.
36
+ *
37
+ * Use `ManagedDerivationPremiseEngine.fromSnapshot(...)` to restore from a
38
+ * serialized snapshot — the validation pass catches tampered snapshots.
39
+ */
40
+ export declare class ManagedDerivationPremiseEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> extends PremiseEngine<TArg, TPremise, TExpr, TVar> {
41
+ /**
42
+ * Captured from `config.generateId` (or the default UUID generator) for
43
+ * use in `populateFromCitations`, which needs to mint new expression IDs.
44
+ * Stored separately because `PremiseEngine`'s generateId is private.
45
+ * Not `readonly` because `fromSnapshot` re-injects it after the prototype
46
+ * upgrade.
47
+ */
48
+ private generateIdFn;
49
+ constructor(premise: TOptionalChecksum<TPremise>, deps: {
50
+ argument: TOptionalChecksum<TArg>;
51
+ variables: VariableManager<TVar>;
52
+ expressionIndex?: Map<string, string>;
53
+ }, config?: TLogicEngineOptions);
54
+ /**
55
+ * Restore a `ManagedDerivationPremiseEngine` from a serialized snapshot,
56
+ * applying both derivation-type and structural validation. Throws on
57
+ * tampered or structurally invalid snapshots.
58
+ *
59
+ * Delegates to `PremiseEngine.fromSnapshot` for the full restoration logic
60
+ * (including the private `rebuildVariableIndex` pass), then upgrades the
61
+ * prototype and validates. TypeScript's static methods do not support
62
+ * `super`, so the parent is called by name and the result is recast.
63
+ */
64
+ static fromSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TPremiseEngineSnapshot<TPremise, TExpr>, argument: TOptionalChecksum<TArg>, variables: VariableManager<TVar>, expressionIndex?: Map<string, string>, grammarConfig?: TGrammarConfig, generateId?: () => string): ManagedDerivationPremiseEngine<TArg, TPremise, TExpr, TVar>;
65
+ /**
66
+ * Validate that the wrapped premise has `type === "derivation"`.
67
+ * @throws InvariantViolationError with code `DERIVATION_TYPE_MISMATCH`
68
+ */
69
+ protected assertDerivationType(): void;
70
+ /**
71
+ * Validate that the expression tree conforms to the derivation rules from
72
+ * the v0.11.0 spec (naked-Q or IMPLIES/IFF with Q as consequent).
73
+ * @throws InvariantViolationError with code `DERIVATION_STRUCTURE_INVALID`
74
+ */
75
+ protected assertWellFormed(): void;
76
+ addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
77
+ appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
78
+ addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
79
+ updateExpression(expressionId: string, updates: TExpressionUpdate): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
80
+ removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg>;
81
+ insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
82
+ toggleNegation(expressionId: string, extraFields?: Partial<TExpr>): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
83
+ wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
84
+ changeOperator(expressionId: string, newOperator: TCoreLogicalOperatorType, sourceChildId?: string, targetChildId?: string, extraFields?: Partial<TExpr>): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
85
+ normalizeExpressions(): TCoreMutationResult<void, TExpr, TVar, TPremise, TArg>;
86
+ loadExpressions(expressions: TExpressionInput<TExpr>[]): void;
87
+ /**
88
+ * One-shot snapshot helper that builds the antecedent of this derivation
89
+ * premise from the current global citations of the derived claim.
90
+ *
91
+ * Behavior by citation count:
92
+ * - n = 0: no change. Premise stays in its current form (typically
93
+ * naked-Q, indicating "no support given").
94
+ * - n = 1: produces `IMPLIES(VariableExpression(S1), VariableExpression(Q))`.
95
+ * - n ≥ 2: produces `IMPLIES(OR(VariableExpression(S1), …,
96
+ * VariableExpression(Sn)), VariableExpression(Q))`.
97
+ *
98
+ * Materializes a claim-bound variable for each cited source via
99
+ * `argumentEngine.ensureClaimBoundVariable(citation.sourceClaimId)`.
100
+ *
101
+ * **Tree construction approach:** Mutations are performed via `super.*`
102
+ * calls, bypassing this class's overrides (which call `assertWellFormed()`
103
+ * after every mutation and would reject intermediate states during
104
+ * multi-step construction). For n ≥ 2 the grammar is temporarily switched
105
+ * to `PERMISSIVE_GRAMMAR_CONFIG` so that the OR operator can sit directly
106
+ * under IMPLIES without triggering an auto-inserted formula buffer. The
107
+ * grammar is restored and `assertWellFormed()` is called at the end to
108
+ * validate the final state.
109
+ *
110
+ * @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when the
111
+ * derivation premise already has a non-empty antecedent (i.e., the
112
+ * root is `implies`/`iff` with a position-0 child). The caller
113
+ * decides whether to delete and re-create the premise.
114
+ *
115
+ * @since 0.11.0
116
+ */
117
+ populateFromCitations(citationLib: ClaimCitationLibrary, argumentEngine: TVariableMaterializer): void;
118
+ /**
119
+ * Returns the ID of the consequent expression, or `undefined` if the tree
120
+ * has no root yet.
121
+ *
122
+ * - Naked form (root is a variable expression): the root IS the consequent.
123
+ * - Implication/biconditional form (root is `implies`/`iff`): the position-1
124
+ * child of the root is the consequent.
125
+ */
126
+ private getConsequentExpressionId;
127
+ /**
128
+ * Reject an `insertExpression` call that would place a new node into the
129
+ * consequent slot of the root `implies`/`iff`.
130
+ *
131
+ * Detection is by parentId + position on the input: we block when
132
+ * `expression.parentId === rootId` AND `expression.position >= consequent.position`.
133
+ * For `implies`/`iff` the consequent sits at position 1, so this blocks
134
+ * insertions into position 1 (which would displace the consequent) and
135
+ * positions beyond (which would exceed arity 2). Insertions at position 0
136
+ * (antecedent slot) pass through.
137
+ */
138
+ private assertNotConsequentSlot;
139
+ /**
140
+ * Reject `removeExpression` and `toggleNegation` calls on the consequent
141
+ * expression.
142
+ */
143
+ private assertNotConsequentExpression;
144
+ /**
145
+ * Reject `updateExpression` calls that change the consequent's `variableId`
146
+ * or `type`.
147
+ */
148
+ private assertConsequentNotMutated;
149
+ /**
150
+ * Reject `changeOperator` calls that would swap the root `implies`/`iff`
151
+ * to a non-implication operator (`and`, `or`, `not`).
152
+ */
153
+ private assertRootOperatorChangeValid;
154
+ }
155
+ //# sourceMappingURL=managed-derivation-premise-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-derivation-premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/managed-derivation-premise-engine.ts"],"names":[],"mappings":"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"}