@polintpro/proposit-core 0.7.3 → 0.8.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 (73) hide show
  1. package/README.md +64 -20
  2. package/dist/extensions/basics/schemata.d.ts +0 -5
  3. package/dist/extensions/basics/schemata.d.ts.map +1 -1
  4. package/dist/lib/consts.d.ts.map +1 -1
  5. package/dist/lib/consts.js +2 -21
  6. package/dist/lib/consts.js.map +1 -1
  7. package/dist/lib/core/argument-engine.d.ts +1 -14
  8. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  9. package/dist/lib/core/argument-engine.js +0 -128
  10. package/dist/lib/core/argument-engine.js.map +1 -1
  11. package/dist/lib/core/argument-library.d.ts +84 -0
  12. package/dist/lib/core/argument-library.d.ts.map +1 -0
  13. package/dist/lib/core/argument-library.js +122 -0
  14. package/dist/lib/core/argument-library.js.map +1 -0
  15. package/dist/lib/core/diff.d.ts +0 -10
  16. package/dist/lib/core/diff.d.ts.map +1 -1
  17. package/dist/lib/core/diff.js +0 -31
  18. package/dist/lib/core/diff.js.map +1 -1
  19. package/dist/lib/core/fork-library.d.ts +17 -0
  20. package/dist/lib/core/fork-library.d.ts.map +1 -0
  21. package/dist/lib/core/fork-library.js +62 -0
  22. package/dist/lib/core/fork-library.js.map +1 -0
  23. package/dist/lib/core/fork-namespace.d.ts +19 -0
  24. package/dist/lib/core/fork-namespace.d.ts.map +1 -0
  25. package/dist/lib/core/fork-namespace.js +86 -0
  26. package/dist/lib/core/fork-namespace.js.map +1 -0
  27. package/dist/lib/core/fork.d.ts +30 -0
  28. package/dist/lib/core/fork.d.ts.map +1 -0
  29. package/dist/lib/core/fork.js +125 -0
  30. package/dist/lib/core/fork.js.map +1 -0
  31. package/dist/lib/core/interfaces/index.d.ts +1 -1
  32. package/dist/lib/core/interfaces/index.d.ts.map +1 -1
  33. package/dist/lib/core/interfaces/library.interfaces.d.ts +61 -0
  34. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  35. package/dist/lib/core/proposit-core.d.ts +110 -0
  36. package/dist/lib/core/proposit-core.d.ts.map +1 -0
  37. package/dist/lib/core/proposit-core.js +357 -0
  38. package/dist/lib/core/proposit-core.js.map +1 -0
  39. package/dist/lib/index.d.ts +11 -1
  40. package/dist/lib/index.d.ts.map +1 -1
  41. package/dist/lib/index.js +8 -1
  42. package/dist/lib/index.js.map +1 -1
  43. package/dist/lib/schemata/argument.d.ts +0 -2
  44. package/dist/lib/schemata/argument.d.ts.map +1 -1
  45. package/dist/lib/schemata/argument.js +0 -6
  46. package/dist/lib/schemata/argument.js.map +1 -1
  47. package/dist/lib/schemata/fork.d.ts +76 -0
  48. package/dist/lib/schemata/fork.d.ts.map +1 -0
  49. package/dist/lib/schemata/fork.js +55 -0
  50. package/dist/lib/schemata/fork.js.map +1 -0
  51. package/dist/lib/schemata/index.d.ts +1 -0
  52. package/dist/lib/schemata/index.d.ts.map +1 -1
  53. package/dist/lib/schemata/index.js +1 -0
  54. package/dist/lib/schemata/index.js.map +1 -1
  55. package/dist/lib/schemata/propositional.d.ts +0 -39
  56. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  57. package/dist/lib/schemata/propositional.js +0 -30
  58. package/dist/lib/schemata/propositional.js.map +1 -1
  59. package/dist/lib/types/fork.d.ts +0 -7
  60. package/dist/lib/types/fork.d.ts.map +1 -1
  61. package/dist/lib/types/validation.d.ts +2 -1
  62. package/dist/lib/types/validation.d.ts.map +1 -1
  63. package/dist/lib/types/validation.js +2 -0
  64. package/dist/lib/types/validation.js.map +1 -1
  65. package/dist/lib/utils/changeset.d.ts +124 -0
  66. package/dist/lib/utils/changeset.d.ts.map +1 -0
  67. package/dist/lib/utils/changeset.js +221 -0
  68. package/dist/lib/utils/changeset.js.map +1 -0
  69. package/dist/lib/utils/lookup.d.ts +47 -0
  70. package/dist/lib/utils/lookup.d.ts.map +1 -0
  71. package/dist/lib/utils/lookup.js +62 -0
  72. package/dist/lib/utils/lookup.js.map +1 -0
  73. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  export * from "./analysis.js";
2
2
  export * from "./argument.js";
3
3
  export * from "./claim.js";
4
+ export * from "./fork.js";
4
5
  export * from "./propositional.js";
5
6
  export * from "./shared.js";
6
7
  export * from "./source.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/schemata/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/schemata/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
@@ -11,10 +11,6 @@ export declare const CorePropositionalVariableExpressionSchema: Type.TObject<{
11
11
  checksum: Type.TString;
12
12
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
13
13
  combinedChecksum: Type.TString;
14
- forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
15
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
16
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
17
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
18
14
  type: Type.TLiteral<"variable">;
19
15
  variableId: Type.TString;
20
16
  }>;
@@ -31,10 +27,6 @@ export declare const CoreOperatorExpressionSchema: Type.TObject<{
31
27
  checksum: Type.TString;
32
28
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
33
29
  combinedChecksum: Type.TString;
34
- forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
35
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
36
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
37
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
38
30
  type: Type.TLiteral<"operator">;
39
31
  operator: Type.TUnion<[Type.TLiteral<"not">, Type.TLiteral<"and">, Type.TLiteral<"or">, Type.TLiteral<"implies">, Type.TLiteral<"iff">]>;
40
32
  }>;
@@ -49,10 +41,6 @@ export declare const CoreFormulaExpressionSchema: Type.TObject<{
49
41
  checksum: Type.TString;
50
42
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
51
43
  combinedChecksum: Type.TString;
52
- forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
53
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
54
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
55
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
56
44
  type: Type.TLiteral<"formula">;
57
45
  }>;
58
46
  export type TCoreFormulaExpression = Static<typeof CoreFormulaExpressionSchema>;
@@ -66,10 +54,6 @@ export declare const CorePropositionalExpressionSchema: Type.TUnion<[Type.TObjec
66
54
  checksum: Type.TString;
67
55
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
68
56
  combinedChecksum: Type.TString;
69
- forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
70
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
71
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
72
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
73
57
  type: Type.TLiteral<"variable">;
74
58
  variableId: Type.TString;
75
59
  }>, Type.TObject<{
@@ -82,10 +66,6 @@ export declare const CorePropositionalExpressionSchema: Type.TUnion<[Type.TObjec
82
66
  checksum: Type.TString;
83
67
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
84
68
  combinedChecksum: Type.TString;
85
- forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
86
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
87
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
88
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
89
69
  type: Type.TLiteral<"operator">;
90
70
  operator: Type.TUnion<[Type.TLiteral<"not">, Type.TLiteral<"and">, Type.TLiteral<"or">, Type.TLiteral<"implies">, Type.TLiteral<"iff">]>;
91
71
  }>, Type.TObject<{
@@ -98,10 +78,6 @@ export declare const CorePropositionalExpressionSchema: Type.TUnion<[Type.TObjec
98
78
  checksum: Type.TString;
99
79
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
100
80
  combinedChecksum: Type.TString;
101
- forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
102
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
103
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
104
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
105
81
  type: Type.TLiteral<"formula">;
106
82
  }>]>;
107
83
  export type TCorePropositionalExpressionCombined = Static<typeof CorePropositionalExpressionSchema>;
@@ -116,9 +92,6 @@ export declare const CoreClaimBoundVariableSchema: Type.TObject<{
116
92
  argumentVersion: Type.TNumber;
117
93
  symbol: Type.TString;
118
94
  checksum: Type.TString;
119
- forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
120
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
121
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
122
95
  }>;
123
96
  export type TClaimBoundVariable = Static<typeof CoreClaimBoundVariableSchema>;
124
97
  export declare const CorePremiseBoundVariableSchema: Type.TObject<{
@@ -130,9 +103,6 @@ export declare const CorePremiseBoundVariableSchema: Type.TObject<{
130
103
  argumentVersion: Type.TNumber;
131
104
  symbol: Type.TString;
132
105
  checksum: Type.TString;
133
- forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
134
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
135
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
136
106
  }>;
137
107
  export type TPremiseBoundVariable = Static<typeof CorePremiseBoundVariableSchema>;
138
108
  export declare const CorePropositionalVariableSchema: Type.TUnion<[Type.TObject<{
@@ -143,9 +113,6 @@ export declare const CorePropositionalVariableSchema: Type.TUnion<[Type.TObject<
143
113
  argumentVersion: Type.TNumber;
144
114
  symbol: Type.TString;
145
115
  checksum: Type.TString;
146
- forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
147
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
148
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
149
116
  }>, Type.TObject<{
150
117
  boundPremiseId: Type.TString;
151
118
  boundArgumentId: Type.TString;
@@ -155,9 +122,6 @@ export declare const CorePropositionalVariableSchema: Type.TUnion<[Type.TObject<
155
122
  argumentVersion: Type.TNumber;
156
123
  symbol: Type.TString;
157
124
  checksum: Type.TString;
158
- forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
159
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
160
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
161
125
  }>]>;
162
126
  export type TCorePropositionalVariable = Static<typeof CorePropositionalVariableSchema>;
163
127
  /** Type guard: returns `true` if the variable is claim-bound. */
@@ -173,9 +137,6 @@ export declare const CorePremiseSchema: Type.TObject<{
173
137
  checksum: Type.TString;
174
138
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
175
139
  combinedChecksum: Type.TString;
176
- forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
177
- forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
178
- forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
179
140
  }>;
180
141
  export type TCorePremise = Static<typeof CorePremiseSchema>;
181
142
  //# sourceMappingURL=propositional.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,gCAAgC,+FAI3C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAClD,OAAO,gCAAgC,CAC1C,CAAA;AAuDD,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;EAMrD,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG,MAAM,CACrD,OAAO,yCAAyC,CACnD,CAAA;AAED,eAAO,MAAM,uBAAuB,gIAMlC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;EAMxC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CACxC,OAAO,4BAA4B,CACtC,CAAA;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKvC,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE/E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI5C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,MAAM,CACrD,OAAO,iCAAiC,CAC3C,CAAA;AAED,MAAM,MAAM,4BAA4B,CACpC,CAAC,SAAS,iCAAiC,GACvC,iCAAiC,IACrC,OAAO,CAAC,oCAAoC,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAA;AAgC9D,eAAO,MAAM,4BAA4B;;;;;;;;;;;EAaxC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE7E,eAAO,MAAM,8BAA8B;;;;;;;;;;;;EAe1C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACtC,OAAO,8BAA8B,CACxC,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;IAG1C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAC3C,OAAO,+BAA+B,CACzC,CAAA;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CACxB,CAAC,EAAE,0BAA0B,GAC9B,CAAC,IAAI,mBAAmB,CAE1B;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAC1B,CAAC,EAAE,0BAA0B,GAC9B,CAAC,IAAI,qBAAqB,CAE5B;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAC7B,CAAC,EAAE,qBAAqB,EACxB,UAAU,EAAE,MAAM,GACnB,OAAO,CAET;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;EAwC7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,gCAAgC,+FAI3C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAClD,OAAO,gCAAgC,CAC1C,CAAA;AA+BD,eAAO,MAAM,yCAAyC;;;;;;;;;;;;EAMrD,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG,MAAM,CACrD,OAAO,yCAAyC,CACnD,CAAA;AAED,eAAO,MAAM,uBAAuB,gIAMlC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAMxC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CACxC,OAAO,4BAA4B,CACtC,CAAA;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;EAKvC,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE/E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI5C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,MAAM,CACrD,OAAO,iCAAiC,CAC3C,CAAA;AAED,MAAM,MAAM,4BAA4B,CACpC,CAAC,SAAS,iCAAiC,GACvC,iCAAiC,IACrC,OAAO,CAAC,oCAAoC,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAA;AAc9D,eAAO,MAAM,4BAA4B;;;;;;;;EAaxC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE7E,eAAO,MAAM,8BAA8B;;;;;;;;;EAe1C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACtC,OAAO,8BAA8B,CACxC,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;IAG1C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAC3C,OAAO,+BAA+B,CACzC,CAAA;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CACxB,CAAC,EAAE,0BAA0B,GAC9B,CAAC,IAAI,mBAAmB,CAE1B;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAC1B,CAAC,EAAE,0BAA0B,GAC9B,CAAC,IAAI,qBAAqB,CAE5B;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAC7B,CAAC,EAAE,qBAAqB,EACxB,UAAU,EAAE,MAAM,GACnB,OAAO,CAET;AAED,eAAO,MAAM,iBAAiB;;;;;;;EAsB7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -28,18 +28,6 @@ const BasePropositionalExpressionSchema = Type.Object({
28
28
  combinedChecksum: Type.String({
29
29
  description: "Hash of checksum + descendantChecksum. Equals checksum when descendantChecksum is null.",
30
30
  }),
31
- forkedFromExpressionId: Type.Optional(Nullable(UUID, {
32
- description: "The ID of the expression this was forked from, or null if not a fork.",
33
- })),
34
- forkedFromPremiseId: Type.Optional(Nullable(UUID, {
35
- description: "The premise ID of the expression this was forked from, or null if not a fork.",
36
- })),
37
- forkedFromArgumentId: Type.Optional(Nullable(UUID, {
38
- description: "The argument ID of the expression this was forked from, or null if not a fork.",
39
- })),
40
- forkedFromArgumentVersion: Type.Optional(Nullable(Type.Number(), {
41
- description: "The argument version of the expression this was forked from, or null if not a fork.",
42
- })),
43
31
  });
44
32
  export const CorePropositionalVariableExpressionSchema = Type.Interface([BasePropositionalExpressionSchema], {
45
33
  type: VariableType,
@@ -74,15 +62,6 @@ const CoreVariableBaseFields = {
74
62
  checksum: Type.String({
75
63
  description: "Entity-level checksum for sync detection.",
76
64
  }),
77
- forkedFromVariableId: Type.Optional(Nullable(UUID, {
78
- description: "The ID of the variable this was forked from, or null if not a fork.",
79
- })),
80
- forkedFromArgumentId: Type.Optional(Nullable(UUID, {
81
- description: "The argument ID of the variable this was forked from, or null if not a fork.",
82
- })),
83
- forkedFromArgumentVersion: Type.Optional(Nullable(Type.Number(), {
84
- description: "The argument version of the variable this was forked from, or null if not a fork.",
85
- })),
86
65
  };
87
66
  export const CoreClaimBoundVariableSchema = Type.Object({
88
67
  ...CoreVariableBaseFields,
@@ -134,15 +113,6 @@ export const CorePremiseSchema = Type.Object({
134
113
  combinedChecksum: Type.String({
135
114
  description: "Hash of checksum + descendantChecksum. Equals checksum when descendantChecksum is null.",
136
115
  }),
137
- forkedFromPremiseId: Type.Optional(Nullable(UUID, {
138
- description: "The ID of the premise this was forked from, or null if not a fork.",
139
- })),
140
- forkedFromArgumentId: Type.Optional(Nullable(UUID, {
141
- description: "The argument ID of the premise this was forked from, or null if not a fork.",
142
- })),
143
- forkedFromArgumentVersion: Type.Optional(Nullable(Type.Number(), {
144
- description: "The argument version of the premise this was forked from, or null if not a fork.",
145
- })),
146
116
  }, {
147
117
  additionalProperties: true,
148
118
  description: "A premise entity with identity and metadata. Expressions and variables are managed by PremiseEngine.",
@@ -1 +1 @@
1
- {"version":3,"file":"propositional.js","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propositional.js","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../schemata/index.js";
2
- import type { ArgumentEngine } from "../core/argument-engine.js";
3
1
  import type { TCoreChecksumConfig } from "./checksum.js";
4
2
  import type { TCorePositionConfig } from "../utils/position.js";
5
3
  import type { TGrammarConfig } from "./grammar.js";
@@ -24,9 +22,4 @@ export interface TForkRemapTable {
24
22
  expressions: Map<string, string>;
25
23
  variables: Map<string, string>;
26
24
  }
27
- /** Result of `forkArgument`. */
28
- export interface TForkArgumentResult<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
29
- engine: ArgumentEngine<TArg, TPremise, TExpr, TVar>;
30
- remapTable: TForkRemapTable;
31
- }
32
25
  //# sourceMappingURL=fork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/types/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACjC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAA;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,sEAAsE;IACtE,aAAa,CAAC,EAAE,cAAc,CAAA;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,gCAAgC;AAChC,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,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACnD,UAAU,EAAE,eAAe,CAAA;CAC9B"}
1
+ {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/types/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACjC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAA;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,sEAAsE;IACtE,aAAa,CAAC,EAAE,cAAc,CAAA;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC"}
@@ -1,4 +1,4 @@
1
- export type TInvariantViolationEntityType = "expression" | "variable" | "premise" | "argument" | "claim" | "source" | "association";
1
+ export type TInvariantViolationEntityType = "expression" | "variable" | "premise" | "argument" | "claim" | "source" | "association" | "fork" | "forkRecord";
2
2
  export type TInvariantViolation = {
3
3
  code: string;
4
4
  message: string;
@@ -43,4 +43,5 @@ export declare const ASSOC_SCHEMA_INVALID = "ASSOC_SCHEMA_INVALID";
43
43
  export declare const ASSOC_DUPLICATE_ID = "ASSOC_DUPLICATE_ID";
44
44
  export declare const ASSOC_CLAIM_REF_NOT_FOUND = "ASSOC_CLAIM_REF_NOT_FOUND";
45
45
  export declare const ASSOC_SOURCE_REF_NOT_FOUND = "ASSOC_SOURCE_REF_NOT_FOUND";
46
+ export declare const FORK_RECORD_SCHEMA_INVALID = "FORK_RECORD_SCHEMA_INVALID";
46
47
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GACnC,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,aAAa,CAAA;AAEnB,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,6BAA6B,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,UAAU,EAAE,mBAAmB,EAAE,CAAA;CACpC,CAAA;AAGD,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AACxD,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAC1E,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,uCAAuC,4CACP,CAAA;AAC7C,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAG9D,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,+BAA+B,oCAAoC,CAAA;AAChF,eAAO,MAAM,8BAA8B,mCAAmC,CAAA;AAC9E,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAG5D,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAG5D,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GACnC,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,aAAa,GACb,MAAM,GACN,YAAY,CAAA;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,6BAA6B,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,UAAU,EAAE,mBAAmB,EAAE,CAAA;CACpC,CAAA;AAGD,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AACxD,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAC1E,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,uCAAuC,4CACP,CAAA;AAC7C,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAG9D,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,+BAA+B,oCAAoC,CAAA;AAChF,eAAO,MAAM,8BAA8B,mCAAmC,CAAA;AAC9E,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAG5D,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAG5D,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA"}
@@ -38,4 +38,6 @@ export const ASSOC_SCHEMA_INVALID = "ASSOC_SCHEMA_INVALID";
38
38
  export const ASSOC_DUPLICATE_ID = "ASSOC_DUPLICATE_ID";
39
39
  export const ASSOC_CLAIM_REF_NOT_FOUND = "ASSOC_CLAIM_REF_NOT_FOUND";
40
40
  export const ASSOC_SOURCE_REF_NOT_FOUND = "ASSOC_SOURCE_REF_NOT_FOUND";
41
+ // -- ForkNamespace codes --
42
+ export const FORK_RECORD_SCHEMA_INVALID = "FORK_RECORD_SCHEMA_INVALID";
41
43
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAsBA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AACpD,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAA;AAC1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,uCAAuC,GAChD,yCAAyC,CAAA;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D,4BAA4B;AAC5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,+BAA+B,GAAG,iCAAiC,CAAA;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAgC,CAAA;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AAEpE,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAE5D,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAE5D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AAEpE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AAEtE,iCAAiC;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAwBA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AACpD,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAA;AAC1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,uCAAuC,GAChD,yCAAyC,CAAA;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D,4BAA4B;AAC5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,+BAA+B,GAAG,iCAAiC,CAAA;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAgC,CAAA;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AAEpE,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAE5D,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAE5D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AAEpE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AAEtE,iCAAiC;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AAEtE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA"}
@@ -0,0 +1,124 @@
1
+ import type { TCorePropositionalExpression, TCorePropositionalVariable, TCorePremise } from "../schemata/propositional.js";
2
+ import type { TCoreArgument, TCoreArgumentRoleState } from "../schemata/argument.js";
3
+ import type { TCoreChangeset } from "../types/mutation.js";
4
+ /**
5
+ * Merges two changesets into one, deduplicating entities by `id` within each
6
+ * bucket (added/modified/removed) with last-write-wins semantics.
7
+ *
8
+ * Use this when a single logical operation requires multiple engine calls that
9
+ * each produce a changeset. For example, creating a conclusion premise requires
10
+ * both `createPremiseWithId` and `setConclusionPremise`, each returning a
11
+ * changeset — `mergeChangesets` combines them into one changeset suitable for
12
+ * a single persistence call.
13
+ *
14
+ * @param a - The first changeset.
15
+ * @param b - The second changeset. Its entries take precedence when both
16
+ * changesets contain the same entity ID in the same bucket.
17
+ * @returns A merged changeset. Entity categories that are empty after merge
18
+ * are omitted from the result.
19
+ * @throws {Error} If any entity ID appears in more than one bucket
20
+ * (added/modified/removed) within the same category after merge. This
21
+ * indicates a logic error in the caller.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const { changes: createChanges } = engine.createPremiseWithId(premiseId, data)
26
+ * const { changes: roleChanges } = engine.setConclusionPremise(premiseId)
27
+ * const combined = mergeChangesets(createChanges, roleChanges)
28
+ * await persistChangeset(db, combined)
29
+ * ```
30
+ */
31
+ export declare function mergeChangesets<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument>(a: TCoreChangeset<TExpr, TVar, TPremise, TArg>, b: TCoreChangeset<TExpr, TVar, TPremise, TArg>): TCoreChangeset<TExpr, TVar, TPremise, TArg>;
32
+ /**
33
+ * A single persistence operation extracted from a changeset, tagged with
34
+ * its operation type (`insert`, `update`, or `delete`) and entity kind.
35
+ *
36
+ * Used as the element type for the ordered operation list returned by
37
+ * {@link orderChangeset}.
38
+ */
39
+ export type TOrderedOperation<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument> = {
40
+ type: "delete";
41
+ entity: "expression";
42
+ data: TExpr;
43
+ } | {
44
+ type: "delete";
45
+ entity: "variable";
46
+ data: TVar;
47
+ } | {
48
+ type: "delete";
49
+ entity: "premise";
50
+ data: TPremise;
51
+ } | {
52
+ type: "insert";
53
+ entity: "premise";
54
+ data: TPremise;
55
+ } | {
56
+ type: "insert";
57
+ entity: "variable";
58
+ data: TVar;
59
+ } | {
60
+ type: "insert";
61
+ entity: "expression";
62
+ data: TExpr;
63
+ } | {
64
+ type: "update";
65
+ entity: "expression";
66
+ data: TExpr;
67
+ } | {
68
+ type: "update";
69
+ entity: "variable";
70
+ data: TVar;
71
+ } | {
72
+ type: "update";
73
+ entity: "premise";
74
+ data: TPremise;
75
+ } | {
76
+ type: "update";
77
+ entity: "argument";
78
+ data: TArg;
79
+ } | {
80
+ type: "update";
81
+ entity: "roles";
82
+ data: TCoreArgumentRoleState;
83
+ };
84
+ /**
85
+ * Converts a changeset into a flat, ordered array of persistence operations
86
+ * that is safe to execute sequentially against a relational store with
87
+ * foreign-key constraints.
88
+ *
89
+ * The FK dependency chain is:
90
+ * - `expression.premiseId` → `premise.id`
91
+ * - `expression.variableId` → `variable.id` (for variable-type expressions)
92
+ * - `expression.parentId` → `expression.id` (self-FK for tree structure)
93
+ * - `variable.argumentId` → `argument.id`
94
+ * - `premise.argumentId` → `argument.id`
95
+ *
96
+ * The resulting order guarantees that every referenced row exists before any
97
+ * row that depends on it is inserted, and that every dependent row is removed
98
+ * before the row it references is deleted.
99
+ *
100
+ * Ordering phases:
101
+ * 1. Update premises — ensure premise rows have correct metadata before
102
+ * dependent deletes run.
103
+ * 2. Delete expressions — expression rows hold FKs to variables and premises,
104
+ * so they must be removed first.
105
+ * 3. Delete variables — safe after expression deletes (no remaining FK
106
+ * references from expressions).
107
+ * 4. Delete premises — safe after all child rows are removed.
108
+ * 5. Insert premises — new premises must exist before their expressions and
109
+ * variables can be inserted.
110
+ * 6. Insert variables — new variables must exist before variable-type
111
+ * expressions can reference them.
112
+ * 7. Insert expressions — topologically sorted so parent expressions are
113
+ * inserted before their children (satisfies the parentId self-FK).
114
+ * 8. Update variables — grouped after inserts for clarity.
115
+ * 9. Update expressions — checksum and position updates.
116
+ * 10. Update argument metadata — if present.
117
+ * 11. Update role state — if present.
118
+ *
119
+ * @param changeset - The changeset to convert into ordered operations.
120
+ * @returns A flat array of {@link TOrderedOperation} entries in FK-safe
121
+ * execution order. Returns an empty array if the changeset is empty.
122
+ */
123
+ export declare function orderChangeset<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument>(changeset: TCoreChangeset<TExpr, TVar, TPremise, TArg>): TOrderedOperation<TExpr, TVar, TPremise, TArg>[];
124
+ //# sourceMappingURL=changeset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeset.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/changeset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Merges two changesets into one, deduplicating entities by `id` within each
3
+ * bucket (added/modified/removed) with last-write-wins semantics.
4
+ *
5
+ * Use this when a single logical operation requires multiple engine calls that
6
+ * each produce a changeset. For example, creating a conclusion premise requires
7
+ * both `createPremiseWithId` and `setConclusionPremise`, each returning a
8
+ * changeset — `mergeChangesets` combines them into one changeset suitable for
9
+ * a single persistence call.
10
+ *
11
+ * @param a - The first changeset.
12
+ * @param b - The second changeset. Its entries take precedence when both
13
+ * changesets contain the same entity ID in the same bucket.
14
+ * @returns A merged changeset. Entity categories that are empty after merge
15
+ * are omitted from the result.
16
+ * @throws {Error} If any entity ID appears in more than one bucket
17
+ * (added/modified/removed) within the same category after merge. This
18
+ * indicates a logic error in the caller.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const { changes: createChanges } = engine.createPremiseWithId(premiseId, data)
23
+ * const { changes: roleChanges } = engine.setConclusionPremise(premiseId)
24
+ * const combined = mergeChangesets(createChanges, roleChanges)
25
+ * await persistChangeset(db, combined)
26
+ * ```
27
+ */
28
+ export function mergeChangesets(a, b) {
29
+ const result = {};
30
+ const mergedExpressions = mergeEntityChanges(a.expressions, b.expressions, "expressions");
31
+ if (mergedExpressions)
32
+ result.expressions = mergedExpressions;
33
+ const mergedVariables = mergeEntityChanges(a.variables, b.variables, "variables");
34
+ if (mergedVariables)
35
+ result.variables = mergedVariables;
36
+ const mergedPremises = mergeEntityChanges(a.premises, b.premises, "premises");
37
+ if (mergedPremises)
38
+ result.premises = mergedPremises;
39
+ if (b.roles !== undefined) {
40
+ result.roles = b.roles;
41
+ }
42
+ else if (a.roles !== undefined) {
43
+ result.roles = a.roles;
44
+ }
45
+ if (b.argument !== undefined) {
46
+ result.argument = b.argument;
47
+ }
48
+ else if (a.argument !== undefined) {
49
+ result.argument = a.argument;
50
+ }
51
+ return result;
52
+ }
53
+ function mergeEntityChanges(a, b, categoryName) {
54
+ if (!a && !b)
55
+ return undefined;
56
+ const dedup = (aList, bList) => {
57
+ const map = new Map();
58
+ for (const item of aList)
59
+ map.set(item.id, item);
60
+ for (const item of bList)
61
+ map.set(item.id, item);
62
+ return [...map.values()];
63
+ };
64
+ const added = dedup(a?.added ?? [], b?.added ?? []);
65
+ const modified = dedup(a?.modified ?? [], b?.modified ?? []);
66
+ const removed = dedup(a?.removed ?? [], b?.removed ?? []);
67
+ // Enforce invariant: no entity ID may appear in more than one bucket.
68
+ const addedIds = new Set(added.map((e) => e.id));
69
+ const modifiedIds = new Set(modified.map((e) => e.id));
70
+ const removedIds = new Set(removed.map((e) => e.id));
71
+ for (const id of addedIds) {
72
+ if (modifiedIds.has(id)) {
73
+ throw new Error(`mergeChangesets: entity "${id}" appears in both added and modified in ${categoryName}`);
74
+ }
75
+ if (removedIds.has(id)) {
76
+ throw new Error(`mergeChangesets: entity "${id}" appears in both added and removed in ${categoryName}`);
77
+ }
78
+ }
79
+ for (const id of modifiedIds) {
80
+ if (removedIds.has(id)) {
81
+ throw new Error(`mergeChangesets: entity "${id}" appears in both modified and removed in ${categoryName}`);
82
+ }
83
+ }
84
+ if (added.length === 0 && modified.length === 0 && removed.length === 0) {
85
+ return undefined;
86
+ }
87
+ return { added, modified, removed };
88
+ }
89
+ /**
90
+ * Converts a changeset into a flat, ordered array of persistence operations
91
+ * that is safe to execute sequentially against a relational store with
92
+ * foreign-key constraints.
93
+ *
94
+ * The FK dependency chain is:
95
+ * - `expression.premiseId` → `premise.id`
96
+ * - `expression.variableId` → `variable.id` (for variable-type expressions)
97
+ * - `expression.parentId` → `expression.id` (self-FK for tree structure)
98
+ * - `variable.argumentId` → `argument.id`
99
+ * - `premise.argumentId` → `argument.id`
100
+ *
101
+ * The resulting order guarantees that every referenced row exists before any
102
+ * row that depends on it is inserted, and that every dependent row is removed
103
+ * before the row it references is deleted.
104
+ *
105
+ * Ordering phases:
106
+ * 1. Update premises — ensure premise rows have correct metadata before
107
+ * dependent deletes run.
108
+ * 2. Delete expressions — expression rows hold FKs to variables and premises,
109
+ * so they must be removed first.
110
+ * 3. Delete variables — safe after expression deletes (no remaining FK
111
+ * references from expressions).
112
+ * 4. Delete premises — safe after all child rows are removed.
113
+ * 5. Insert premises — new premises must exist before their expressions and
114
+ * variables can be inserted.
115
+ * 6. Insert variables — new variables must exist before variable-type
116
+ * expressions can reference them.
117
+ * 7. Insert expressions — topologically sorted so parent expressions are
118
+ * inserted before their children (satisfies the parentId self-FK).
119
+ * 8. Update variables — grouped after inserts for clarity.
120
+ * 9. Update expressions — checksum and position updates.
121
+ * 10. Update argument metadata — if present.
122
+ * 11. Update role state — if present.
123
+ *
124
+ * @param changeset - The changeset to convert into ordered operations.
125
+ * @returns A flat array of {@link TOrderedOperation} entries in FK-safe
126
+ * execution order. Returns an empty array if the changeset is empty.
127
+ */
128
+ export function orderChangeset(changeset) {
129
+ const ops = [];
130
+ // Phase 1: Update premises — ensure premise rows have correct metadata
131
+ // before dependent deletes run.
132
+ for (const p of changeset.premises?.modified ?? []) {
133
+ ops.push({ type: "update", entity: "premise", data: p });
134
+ }
135
+ // Phase 2: Delete expressions — reverse-topologically sorted so children
136
+ // are deleted before parents (satisfies the parentId self-FK).
137
+ const removedExprs = changeset.expressions?.removed ?? [];
138
+ const sortedRemoved = topologicalSortExpressions(removedExprs).reverse();
139
+ for (const e of sortedRemoved) {
140
+ ops.push({ type: "delete", entity: "expression", data: e });
141
+ }
142
+ // Phase 3: Delete variables — safe after expression deletes (no
143
+ // remaining FK references from expressions).
144
+ for (const v of changeset.variables?.removed ?? []) {
145
+ ops.push({ type: "delete", entity: "variable", data: v });
146
+ }
147
+ // Phase 4: Delete premises — safe after all child rows (expressions,
148
+ // variables) are removed.
149
+ for (const p of changeset.premises?.removed ?? []) {
150
+ ops.push({ type: "delete", entity: "premise", data: p });
151
+ }
152
+ // Phase 5: Insert premises — new premises must exist before their
153
+ // expressions and variables can be inserted.
154
+ for (const p of changeset.premises?.added ?? []) {
155
+ ops.push({ type: "insert", entity: "premise", data: p });
156
+ }
157
+ // Phase 6: Insert variables — new variables must exist before
158
+ // variable-type expressions can reference them.
159
+ for (const v of changeset.variables?.added ?? []) {
160
+ ops.push({ type: "insert", entity: "variable", data: v });
161
+ }
162
+ // Phase 7: Insert expressions — topologically sorted so parent
163
+ // expressions are inserted before their children (satisfies the
164
+ // parentId self-FK).
165
+ const sortedInsertExprs = topologicalSortExpressions(changeset.expressions?.added ?? []);
166
+ for (const e of sortedInsertExprs) {
167
+ ops.push({ type: "insert", entity: "expression", data: e });
168
+ }
169
+ // Phase 8: Update variables — grouped after inserts for clarity.
170
+ for (const v of changeset.variables?.modified ?? []) {
171
+ ops.push({ type: "update", entity: "variable", data: v });
172
+ }
173
+ // Phase 9: Update expressions — checksum and position updates.
174
+ for (const e of changeset.expressions?.modified ?? []) {
175
+ ops.push({ type: "update", entity: "expression", data: e });
176
+ }
177
+ // Phase 10: Update argument metadata — if present.
178
+ if (changeset.argument !== undefined) {
179
+ ops.push({
180
+ type: "update",
181
+ entity: "argument",
182
+ data: changeset.argument,
183
+ });
184
+ }
185
+ // Phase 11: Update role state — if present.
186
+ if (changeset.roles !== undefined) {
187
+ ops.push({ type: "update", entity: "roles", data: changeset.roles });
188
+ }
189
+ return ops;
190
+ }
191
+ /**
192
+ * Topologically sorts expressions so that parents appear before children,
193
+ * using the `parentId` field. Expressions with `parentId: null` (roots)
194
+ * come first, followed by their children in dependency order.
195
+ */
196
+ function topologicalSortExpressions(expressions) {
197
+ if (expressions.length <= 1)
198
+ return expressions;
199
+ const byId = new Map();
200
+ for (const expr of expressions) {
201
+ byId.set(expr.id, expr);
202
+ }
203
+ const sorted = [];
204
+ const visited = new Set();
205
+ function visit(expr) {
206
+ if (visited.has(expr.id))
207
+ return;
208
+ // If this expression has a parent that is also in the insertion set,
209
+ // ensure the parent is emitted first.
210
+ if (expr.parentId !== null && byId.has(expr.parentId)) {
211
+ visit(byId.get(expr.parentId));
212
+ }
213
+ visited.add(expr.id);
214
+ sorted.push(expr);
215
+ }
216
+ for (const expr of expressions) {
217
+ visit(expr);
218
+ }
219
+ return sorted;
220
+ }
221
+ //# sourceMappingURL=changeset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeset.js","sourceRoot":"","sources":["../../../src/lib/utils/changeset.ts"],"names":[],"mappings":"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"}