@manifesto-ai/core 0.3.0 → 1.0.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 (259) hide show
  1. package/README.md +129 -499
  2. package/dist/core/apply.d.ts +16 -0
  3. package/dist/core/apply.d.ts.map +1 -0
  4. package/dist/core/apply.js +52 -0
  5. package/dist/core/apply.js.map +1 -0
  6. package/dist/core/compute.d.ts +17 -0
  7. package/dist/core/compute.d.ts.map +1 -0
  8. package/dist/core/compute.js +197 -0
  9. package/dist/core/compute.js.map +1 -0
  10. package/dist/core/compute.test.d.ts +2 -0
  11. package/dist/core/compute.test.d.ts.map +1 -0
  12. package/dist/core/compute.test.js +400 -0
  13. package/dist/core/compute.test.js.map +1 -0
  14. package/dist/core/explain.d.ts +14 -0
  15. package/dist/core/explain.d.ts.map +1 -0
  16. package/dist/core/explain.js +74 -0
  17. package/dist/core/explain.js.map +1 -0
  18. package/dist/core/index.d.ts +5 -0
  19. package/dist/core/index.d.ts.map +1 -0
  20. package/dist/core/index.js +5 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/core/validate.d.ts +15 -0
  23. package/dist/core/validate.d.ts.map +1 -0
  24. package/dist/core/validate.js +143 -0
  25. package/dist/core/validate.js.map +1 -0
  26. package/dist/core/validate.test.d.ts +2 -0
  27. package/dist/core/validate.test.d.ts.map +1 -0
  28. package/dist/core/validate.test.js +450 -0
  29. package/dist/core/validate.test.js.map +1 -0
  30. package/dist/errors.d.ts +30 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +51 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/evaluator/computed.d.ts +14 -0
  35. package/dist/evaluator/computed.d.ts.map +1 -0
  36. package/dist/evaluator/computed.js +57 -0
  37. package/dist/evaluator/computed.js.map +1 -0
  38. package/dist/evaluator/context.d.ts +46 -0
  39. package/dist/evaluator/context.d.ts.map +1 -0
  40. package/dist/evaluator/context.js +35 -0
  41. package/dist/evaluator/context.js.map +1 -0
  42. package/dist/evaluator/dag.d.ts +30 -0
  43. package/dist/evaluator/dag.d.ts.map +1 -0
  44. package/dist/evaluator/dag.js +121 -0
  45. package/dist/evaluator/dag.js.map +1 -0
  46. package/dist/evaluator/expr.d.ts +11 -0
  47. package/dist/evaluator/expr.d.ts.map +1 -0
  48. package/dist/evaluator/expr.js +498 -0
  49. package/dist/evaluator/expr.js.map +1 -0
  50. package/dist/evaluator/expr.test.d.ts +2 -0
  51. package/dist/evaluator/expr.test.d.ts.map +1 -0
  52. package/dist/evaluator/expr.test.js +426 -0
  53. package/dist/evaluator/expr.test.js.map +1 -0
  54. package/dist/evaluator/flow.d.ts +35 -0
  55. package/dist/evaluator/flow.d.ts.map +1 -0
  56. package/dist/evaluator/flow.js +234 -0
  57. package/dist/evaluator/flow.js.map +1 -0
  58. package/dist/evaluator/flow.test.d.ts +2 -0
  59. package/dist/evaluator/flow.test.d.ts.map +1 -0
  60. package/dist/evaluator/flow.test.js +446 -0
  61. package/dist/evaluator/flow.test.js.map +1 -0
  62. package/dist/evaluator/index.d.ts +6 -0
  63. package/dist/evaluator/index.d.ts.map +1 -0
  64. package/dist/evaluator/index.js +6 -0
  65. package/dist/evaluator/index.js.map +1 -0
  66. package/dist/factories.d.ts +20 -0
  67. package/dist/factories.d.ts.map +1 -0
  68. package/dist/factories.js +43 -0
  69. package/dist/factories.js.map +1 -0
  70. package/dist/index.d.ts +46 -11
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +30 -45
  73. package/dist/index.js.map +1 -1
  74. package/dist/index.test.d.ts +2 -0
  75. package/dist/index.test.d.ts.map +1 -0
  76. package/dist/index.test.js +13 -0
  77. package/dist/index.test.js.map +1 -0
  78. package/dist/schema/action.d.ts +14 -0
  79. package/dist/schema/action.d.ts.map +1 -0
  80. package/dist/schema/action.js +30 -0
  81. package/dist/schema/action.js.map +1 -0
  82. package/dist/schema/common.d.ts +37 -0
  83. package/dist/schema/common.d.ts.map +1 -0
  84. package/dist/schema/common.js +20 -0
  85. package/dist/schema/common.js.map +1 -0
  86. package/dist/schema/computed.d.ts +23 -0
  87. package/dist/schema/computed.d.ts.map +1 -0
  88. package/dist/schema/computed.js +34 -0
  89. package/dist/schema/computed.js.map +1 -0
  90. package/dist/schema/domain.d.ts +46 -0
  91. package/dist/schema/domain.d.ts.map +1 -0
  92. package/dist/schema/domain.js +54 -0
  93. package/dist/schema/domain.js.map +1 -0
  94. package/dist/schema/expr.d.ts +260 -0
  95. package/dist/schema/expr.d.ts.map +1 -0
  96. package/dist/schema/expr.js +247 -0
  97. package/dist/schema/expr.js.map +1 -0
  98. package/dist/schema/field.d.ts +48 -0
  99. package/dist/schema/field.d.ts.map +1 -0
  100. package/dist/schema/field.js +31 -0
  101. package/dist/schema/field.js.map +1 -0
  102. package/dist/schema/flow.d.ts +103 -0
  103. package/dist/schema/flow.d.ts.map +1 -0
  104. package/dist/schema/flow.js +82 -0
  105. package/dist/schema/flow.js.map +1 -0
  106. package/dist/schema/index.d.ts +11 -2
  107. package/dist/schema/index.d.ts.map +1 -1
  108. package/dist/schema/index.js +22 -2
  109. package/dist/schema/index.js.map +1 -1
  110. package/dist/schema/patch.d.ts +59 -0
  111. package/dist/schema/patch.d.ts.map +1 -0
  112. package/dist/schema/patch.js +60 -0
  113. package/dist/schema/patch.js.map +1 -0
  114. package/dist/schema/result.d.ts +130 -0
  115. package/dist/schema/result.d.ts.map +1 -0
  116. package/dist/schema/result.js +90 -0
  117. package/dist/schema/result.js.map +1 -0
  118. package/dist/schema/snapshot.d.ts +151 -0
  119. package/dist/schema/snapshot.d.ts.map +1 -0
  120. package/dist/schema/snapshot.js +156 -0
  121. package/dist/schema/snapshot.js.map +1 -0
  122. package/dist/schema/trace.d.ts +87 -0
  123. package/dist/schema/trace.d.ts.map +1 -0
  124. package/dist/schema/trace.js +79 -0
  125. package/dist/schema/trace.js.map +1 -0
  126. package/dist/utils/canonical.d.ts +29 -0
  127. package/dist/utils/canonical.d.ts.map +1 -0
  128. package/dist/utils/canonical.js +56 -0
  129. package/dist/utils/canonical.js.map +1 -0
  130. package/dist/utils/canonical.test.d.ts +2 -0
  131. package/dist/utils/canonical.test.d.ts.map +1 -0
  132. package/dist/utils/canonical.test.js +153 -0
  133. package/dist/utils/canonical.test.js.map +1 -0
  134. package/dist/utils/hash.d.ts +20 -0
  135. package/dist/utils/hash.d.ts.map +1 -0
  136. package/dist/utils/hash.js +38 -0
  137. package/dist/utils/hash.js.map +1 -0
  138. package/dist/utils/hash.test.d.ts +2 -0
  139. package/dist/utils/hash.test.d.ts.map +1 -0
  140. package/dist/utils/hash.test.js +146 -0
  141. package/dist/utils/hash.test.js.map +1 -0
  142. package/dist/utils/index.d.ts +4 -0
  143. package/dist/utils/index.d.ts.map +1 -0
  144. package/dist/utils/index.js +4 -0
  145. package/dist/utils/index.js.map +1 -0
  146. package/dist/utils/path.d.ts +40 -0
  147. package/dist/utils/path.d.ts.map +1 -0
  148. package/dist/utils/path.js +132 -0
  149. package/dist/utils/path.js.map +1 -0
  150. package/dist/utils/path.test.d.ts +2 -0
  151. package/dist/utils/path.test.d.ts.map +1 -0
  152. package/dist/utils/path.test.js +191 -0
  153. package/dist/utils/path.test.js.map +1 -0
  154. package/package.json +25 -39
  155. package/LICENSE +0 -21
  156. package/dist/dag/graph.d.ts +0 -62
  157. package/dist/dag/graph.d.ts.map +0 -1
  158. package/dist/dag/graph.js +0 -244
  159. package/dist/dag/graph.js.map +0 -1
  160. package/dist/dag/index.d.ts +0 -4
  161. package/dist/dag/index.d.ts.map +0 -1
  162. package/dist/dag/index.js +0 -4
  163. package/dist/dag/index.js.map +0 -1
  164. package/dist/dag/propagation.d.ts +0 -58
  165. package/dist/dag/propagation.d.ts.map +0 -1
  166. package/dist/dag/propagation.js +0 -224
  167. package/dist/dag/propagation.js.map +0 -1
  168. package/dist/dag/topological.d.ts +0 -33
  169. package/dist/dag/topological.d.ts.map +0 -1
  170. package/dist/dag/topological.js +0 -173
  171. package/dist/dag/topological.js.map +0 -1
  172. package/dist/domain/define.d.ts +0 -82
  173. package/dist/domain/define.d.ts.map +0 -1
  174. package/dist/domain/define.js +0 -105
  175. package/dist/domain/define.js.map +0 -1
  176. package/dist/domain/index.d.ts +0 -4
  177. package/dist/domain/index.d.ts.map +0 -1
  178. package/dist/domain/index.js +0 -4
  179. package/dist/domain/index.js.map +0 -1
  180. package/dist/domain/types.d.ts +0 -203
  181. package/dist/domain/types.d.ts.map +0 -1
  182. package/dist/domain/types.js +0 -2
  183. package/dist/domain/types.js.map +0 -1
  184. package/dist/domain/validate.d.ts +0 -17
  185. package/dist/domain/validate.d.ts.map +0 -1
  186. package/dist/domain/validate.js +0 -204
  187. package/dist/domain/validate.js.map +0 -1
  188. package/dist/effect/index.d.ts +0 -4
  189. package/dist/effect/index.d.ts.map +0 -1
  190. package/dist/effect/index.js +0 -4
  191. package/dist/effect/index.js.map +0 -1
  192. package/dist/effect/result.d.ts +0 -100
  193. package/dist/effect/result.d.ts.map +0 -1
  194. package/dist/effect/result.js +0 -163
  195. package/dist/effect/result.js.map +0 -1
  196. package/dist/effect/runner.d.ts +0 -98
  197. package/dist/effect/runner.d.ts.map +0 -1
  198. package/dist/effect/runner.js +0 -321
  199. package/dist/effect/runner.js.map +0 -1
  200. package/dist/effect/types.d.ts +0 -169
  201. package/dist/effect/types.d.ts.map +0 -1
  202. package/dist/effect/types.js +0 -28
  203. package/dist/effect/types.js.map +0 -1
  204. package/dist/expression/analyzer.d.ts +0 -42
  205. package/dist/expression/analyzer.d.ts.map +0 -1
  206. package/dist/expression/analyzer.js +0 -166
  207. package/dist/expression/analyzer.js.map +0 -1
  208. package/dist/expression/evaluator.d.ts +0 -16
  209. package/dist/expression/evaluator.d.ts.map +0 -1
  210. package/dist/expression/evaluator.js +0 -382
  211. package/dist/expression/evaluator.js.map +0 -1
  212. package/dist/expression/index.d.ts +0 -5
  213. package/dist/expression/index.d.ts.map +0 -1
  214. package/dist/expression/index.js +0 -5
  215. package/dist/expression/index.js.map +0 -1
  216. package/dist/expression/parser.d.ts +0 -37
  217. package/dist/expression/parser.d.ts.map +0 -1
  218. package/dist/expression/parser.js +0 -201
  219. package/dist/expression/parser.js.map +0 -1
  220. package/dist/expression/types.d.ts +0 -123
  221. package/dist/expression/types.d.ts.map +0 -1
  222. package/dist/expression/types.js +0 -10
  223. package/dist/expression/types.js.map +0 -1
  224. package/dist/policy/field-policy.d.ts +0 -63
  225. package/dist/policy/field-policy.d.ts.map +0 -1
  226. package/dist/policy/field-policy.js +0 -138
  227. package/dist/policy/field-policy.js.map +0 -1
  228. package/dist/policy/index.d.ts +0 -3
  229. package/dist/policy/index.d.ts.map +0 -1
  230. package/dist/policy/index.js +0 -3
  231. package/dist/policy/index.js.map +0 -1
  232. package/dist/policy/precondition.d.ts +0 -58
  233. package/dist/policy/precondition.d.ts.map +0 -1
  234. package/dist/policy/precondition.js +0 -115
  235. package/dist/policy/precondition.js.map +0 -1
  236. package/dist/runtime/index.d.ts +0 -4
  237. package/dist/runtime/index.d.ts.map +0 -1
  238. package/dist/runtime/index.js +0 -4
  239. package/dist/runtime/index.js.map +0 -1
  240. package/dist/runtime/runtime.d.ts +0 -94
  241. package/dist/runtime/runtime.d.ts.map +0 -1
  242. package/dist/runtime/runtime.js +0 -294
  243. package/dist/runtime/runtime.js.map +0 -1
  244. package/dist/runtime/snapshot.d.ts +0 -39
  245. package/dist/runtime/snapshot.d.ts.map +0 -1
  246. package/dist/runtime/snapshot.js +0 -264
  247. package/dist/runtime/snapshot.js.map +0 -1
  248. package/dist/runtime/subscription.d.ts +0 -82
  249. package/dist/runtime/subscription.d.ts.map +0 -1
  250. package/dist/runtime/subscription.js +0 -222
  251. package/dist/runtime/subscription.js.map +0 -1
  252. package/dist/schema/integration.d.ts +0 -89
  253. package/dist/schema/integration.d.ts.map +0 -1
  254. package/dist/schema/integration.js +0 -171
  255. package/dist/schema/integration.js.map +0 -1
  256. package/dist/schema/validation.d.ts +0 -51
  257. package/dist/schema/validation.d.ts.map +0 -1
  258. package/dist/schema/validation.js +0 -212
  259. package/dist/schema/validation.js.map +0 -1
@@ -0,0 +1,260 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * ExprNode - Pure expression language for ComputedSpec and FlowSpec
4
+ * All expressions are deterministic and side-effect free
5
+ */
6
+ export type ExprNode = LitExpr | GetExpr | EqExpr | NeqExpr | GtExpr | GteExpr | LtExpr | LteExpr | AndExpr | OrExpr | NotExpr | IfExpr | AddExpr | SubExpr | MulExpr | DivExpr | ModExpr | ConcatExpr | SubstringExpr | LenExpr | AtExpr | FirstExpr | LastExpr | SliceExpr | IncludesExpr | FilterExpr | MapExpr | FindExpr | EveryExpr | SomeExpr | KeysExpr | ValuesExpr | EntriesExpr | MergeExpr | TypeofExpr | IsNullExpr | CoalesceExpr;
7
+ export declare const LitExpr: z.ZodObject<{
8
+ kind: z.ZodLiteral<"lit">;
9
+ value: z.ZodUnknown;
10
+ }, z.core.$strip>;
11
+ export type LitExpr = z.infer<typeof LitExpr>;
12
+ export declare const GetExpr: z.ZodObject<{
13
+ kind: z.ZodLiteral<"get">;
14
+ path: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export type GetExpr = z.infer<typeof GetExpr>;
17
+ export declare const EqExpr: z.ZodType<{
18
+ kind: "eq";
19
+ left: ExprNode;
20
+ right: ExprNode;
21
+ }>;
22
+ export type EqExpr = z.infer<typeof EqExpr>;
23
+ export declare const NeqExpr: z.ZodType<{
24
+ kind: "neq";
25
+ left: ExprNode;
26
+ right: ExprNode;
27
+ }>;
28
+ export type NeqExpr = z.infer<typeof NeqExpr>;
29
+ export declare const GtExpr: z.ZodType<{
30
+ kind: "gt";
31
+ left: ExprNode;
32
+ right: ExprNode;
33
+ }>;
34
+ export type GtExpr = z.infer<typeof GtExpr>;
35
+ export declare const GteExpr: z.ZodType<{
36
+ kind: "gte";
37
+ left: ExprNode;
38
+ right: ExprNode;
39
+ }>;
40
+ export type GteExpr = z.infer<typeof GteExpr>;
41
+ export declare const LtExpr: z.ZodType<{
42
+ kind: "lt";
43
+ left: ExprNode;
44
+ right: ExprNode;
45
+ }>;
46
+ export type LtExpr = z.infer<typeof LtExpr>;
47
+ export declare const LteExpr: z.ZodType<{
48
+ kind: "lte";
49
+ left: ExprNode;
50
+ right: ExprNode;
51
+ }>;
52
+ export type LteExpr = z.infer<typeof LteExpr>;
53
+ export declare const AndExpr: z.ZodType<{
54
+ kind: "and";
55
+ args: ExprNode[];
56
+ }>;
57
+ export type AndExpr = z.infer<typeof AndExpr>;
58
+ export declare const OrExpr: z.ZodType<{
59
+ kind: "or";
60
+ args: ExprNode[];
61
+ }>;
62
+ export type OrExpr = z.infer<typeof OrExpr>;
63
+ export declare const NotExpr: z.ZodType<{
64
+ kind: "not";
65
+ arg: ExprNode;
66
+ }>;
67
+ export type NotExpr = z.infer<typeof NotExpr>;
68
+ export declare const IfExpr: z.ZodType<{
69
+ kind: "if";
70
+ cond: ExprNode;
71
+ then: ExprNode;
72
+ else: ExprNode;
73
+ }>;
74
+ export type IfExpr = z.infer<typeof IfExpr>;
75
+ export declare const AddExpr: z.ZodType<{
76
+ kind: "add";
77
+ left: ExprNode;
78
+ right: ExprNode;
79
+ }>;
80
+ export type AddExpr = z.infer<typeof AddExpr>;
81
+ export declare const SubExpr: z.ZodType<{
82
+ kind: "sub";
83
+ left: ExprNode;
84
+ right: ExprNode;
85
+ }>;
86
+ export type SubExpr = z.infer<typeof SubExpr>;
87
+ export declare const MulExpr: z.ZodType<{
88
+ kind: "mul";
89
+ left: ExprNode;
90
+ right: ExprNode;
91
+ }>;
92
+ export type MulExpr = z.infer<typeof MulExpr>;
93
+ export declare const DivExpr: z.ZodType<{
94
+ kind: "div";
95
+ left: ExprNode;
96
+ right: ExprNode;
97
+ }>;
98
+ export type DivExpr = z.infer<typeof DivExpr>;
99
+ export declare const ModExpr: z.ZodType<{
100
+ kind: "mod";
101
+ left: ExprNode;
102
+ right: ExprNode;
103
+ }>;
104
+ export type ModExpr = z.infer<typeof ModExpr>;
105
+ export declare const ConcatExpr: z.ZodType<{
106
+ kind: "concat";
107
+ args: ExprNode[];
108
+ }>;
109
+ export type ConcatExpr = z.infer<typeof ConcatExpr>;
110
+ export declare const SubstringExpr: z.ZodType<{
111
+ kind: "substring";
112
+ str: ExprNode;
113
+ start: ExprNode;
114
+ end?: ExprNode;
115
+ }>;
116
+ export type SubstringExpr = z.infer<typeof SubstringExpr>;
117
+ export declare const LenExpr: z.ZodType<{
118
+ kind: "len";
119
+ arg: ExprNode;
120
+ }>;
121
+ export type LenExpr = z.infer<typeof LenExpr>;
122
+ export declare const AtExpr: z.ZodType<{
123
+ kind: "at";
124
+ array: ExprNode;
125
+ index: ExprNode;
126
+ }>;
127
+ export type AtExpr = z.infer<typeof AtExpr>;
128
+ export declare const FirstExpr: z.ZodType<{
129
+ kind: "first";
130
+ array: ExprNode;
131
+ }>;
132
+ export type FirstExpr = z.infer<typeof FirstExpr>;
133
+ export declare const LastExpr: z.ZodType<{
134
+ kind: "last";
135
+ array: ExprNode;
136
+ }>;
137
+ export type LastExpr = z.infer<typeof LastExpr>;
138
+ export declare const SliceExpr: z.ZodType<{
139
+ kind: "slice";
140
+ array: ExprNode;
141
+ start: ExprNode;
142
+ end?: ExprNode;
143
+ }>;
144
+ export type SliceExpr = z.infer<typeof SliceExpr>;
145
+ export declare const IncludesExpr: z.ZodType<{
146
+ kind: "includes";
147
+ array: ExprNode;
148
+ item: ExprNode;
149
+ }>;
150
+ export type IncludesExpr = z.infer<typeof IncludesExpr>;
151
+ export declare const FilterExpr: z.ZodType<{
152
+ kind: "filter";
153
+ array: ExprNode;
154
+ predicate: ExprNode;
155
+ }>;
156
+ export type FilterExpr = z.infer<typeof FilterExpr>;
157
+ export declare const MapExpr: z.ZodType<{
158
+ kind: "map";
159
+ array: ExprNode;
160
+ mapper: ExprNode;
161
+ }>;
162
+ export type MapExpr = z.infer<typeof MapExpr>;
163
+ export declare const FindExpr: z.ZodType<{
164
+ kind: "find";
165
+ array: ExprNode;
166
+ predicate: ExprNode;
167
+ }>;
168
+ export type FindExpr = z.infer<typeof FindExpr>;
169
+ export declare const EveryExpr: z.ZodType<{
170
+ kind: "every";
171
+ array: ExprNode;
172
+ predicate: ExprNode;
173
+ }>;
174
+ export type EveryExpr = z.infer<typeof EveryExpr>;
175
+ export declare const SomeExpr: z.ZodType<{
176
+ kind: "some";
177
+ array: ExprNode;
178
+ predicate: ExprNode;
179
+ }>;
180
+ export type SomeExpr = z.infer<typeof SomeExpr>;
181
+ export declare const KeysExpr: z.ZodType<{
182
+ kind: "keys";
183
+ obj: ExprNode;
184
+ }>;
185
+ export type KeysExpr = z.infer<typeof KeysExpr>;
186
+ export declare const ValuesExpr: z.ZodType<{
187
+ kind: "values";
188
+ obj: ExprNode;
189
+ }>;
190
+ export type ValuesExpr = z.infer<typeof ValuesExpr>;
191
+ export declare const EntriesExpr: z.ZodType<{
192
+ kind: "entries";
193
+ obj: ExprNode;
194
+ }>;
195
+ export type EntriesExpr = z.infer<typeof EntriesExpr>;
196
+ export declare const MergeExpr: z.ZodType<{
197
+ kind: "merge";
198
+ objects: ExprNode[];
199
+ }>;
200
+ export type MergeExpr = z.infer<typeof MergeExpr>;
201
+ export declare const TypeofExpr: z.ZodType<{
202
+ kind: "typeof";
203
+ arg: ExprNode;
204
+ }>;
205
+ export type TypeofExpr = z.infer<typeof TypeofExpr>;
206
+ export declare const IsNullExpr: z.ZodType<{
207
+ kind: "isNull";
208
+ arg: ExprNode;
209
+ }>;
210
+ export type IsNullExpr = z.infer<typeof IsNullExpr>;
211
+ export declare const CoalesceExpr: z.ZodType<{
212
+ kind: "coalesce";
213
+ args: ExprNode[];
214
+ }>;
215
+ export type CoalesceExpr = z.infer<typeof CoalesceExpr>;
216
+ export declare const ExprNodeSchema: z.ZodType<ExprNode>;
217
+ /**
218
+ * Expression kinds enum for pattern matching
219
+ */
220
+ export declare const ExprKind: z.ZodEnum<{
221
+ map: "map";
222
+ merge: "merge";
223
+ keys: "keys";
224
+ values: "values";
225
+ concat: "concat";
226
+ slice: "slice";
227
+ every: "every";
228
+ some: "some";
229
+ filter: "filter";
230
+ find: "find";
231
+ entries: "entries";
232
+ includes: "includes";
233
+ at: "at";
234
+ substring: "substring";
235
+ sub: "sub";
236
+ lit: "lit";
237
+ get: "get";
238
+ eq: "eq";
239
+ neq: "neq";
240
+ gt: "gt";
241
+ gte: "gte";
242
+ lt: "lt";
243
+ lte: "lte";
244
+ and: "and";
245
+ or: "or";
246
+ not: "not";
247
+ if: "if";
248
+ add: "add";
249
+ mul: "mul";
250
+ div: "div";
251
+ mod: "mod";
252
+ len: "len";
253
+ first: "first";
254
+ last: "last";
255
+ typeof: "typeof";
256
+ isNull: "isNull";
257
+ coalesce: "coalesce";
258
+ }>;
259
+ export type ExprKind = z.infer<typeof ExprKind>;
260
+ //# sourceMappingURL=expr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["../../src/schema/expr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ import { z } from "zod";
2
+ import { SemanticPath } from "./common.js";
3
+ // ============ Literals ============
4
+ export const LitExpr = z.object({
5
+ kind: z.literal("lit"),
6
+ value: z.unknown(),
7
+ });
8
+ export const GetExpr = z.object({
9
+ kind: z.literal("get"),
10
+ path: SemanticPath,
11
+ });
12
+ // ============ Comparison ============
13
+ export const EqExpr = z.object({
14
+ kind: z.literal("eq"),
15
+ left: z.lazy(() => ExprNodeSchema),
16
+ right: z.lazy(() => ExprNodeSchema),
17
+ });
18
+ export const NeqExpr = z.object({
19
+ kind: z.literal("neq"),
20
+ left: z.lazy(() => ExprNodeSchema),
21
+ right: z.lazy(() => ExprNodeSchema),
22
+ });
23
+ export const GtExpr = z.object({
24
+ kind: z.literal("gt"),
25
+ left: z.lazy(() => ExprNodeSchema),
26
+ right: z.lazy(() => ExprNodeSchema),
27
+ });
28
+ export const GteExpr = z.object({
29
+ kind: z.literal("gte"),
30
+ left: z.lazy(() => ExprNodeSchema),
31
+ right: z.lazy(() => ExprNodeSchema),
32
+ });
33
+ export const LtExpr = z.object({
34
+ kind: z.literal("lt"),
35
+ left: z.lazy(() => ExprNodeSchema),
36
+ right: z.lazy(() => ExprNodeSchema),
37
+ });
38
+ export const LteExpr = z.object({
39
+ kind: z.literal("lte"),
40
+ left: z.lazy(() => ExprNodeSchema),
41
+ right: z.lazy(() => ExprNodeSchema),
42
+ });
43
+ // ============ Logical ============
44
+ export const AndExpr = z.object({
45
+ kind: z.literal("and"),
46
+ args: z.array(z.lazy(() => ExprNodeSchema)),
47
+ });
48
+ export const OrExpr = z.object({
49
+ kind: z.literal("or"),
50
+ args: z.array(z.lazy(() => ExprNodeSchema)),
51
+ });
52
+ export const NotExpr = z.object({
53
+ kind: z.literal("not"),
54
+ arg: z.lazy(() => ExprNodeSchema),
55
+ });
56
+ // ============ Conditional ============
57
+ export const IfExpr = z.object({
58
+ kind: z.literal("if"),
59
+ cond: z.lazy(() => ExprNodeSchema),
60
+ then: z.lazy(() => ExprNodeSchema),
61
+ else: z.lazy(() => ExprNodeSchema),
62
+ });
63
+ // ============ Arithmetic ============
64
+ export const AddExpr = z.object({
65
+ kind: z.literal("add"),
66
+ left: z.lazy(() => ExprNodeSchema),
67
+ right: z.lazy(() => ExprNodeSchema),
68
+ });
69
+ export const SubExpr = z.object({
70
+ kind: z.literal("sub"),
71
+ left: z.lazy(() => ExprNodeSchema),
72
+ right: z.lazy(() => ExprNodeSchema),
73
+ });
74
+ export const MulExpr = z.object({
75
+ kind: z.literal("mul"),
76
+ left: z.lazy(() => ExprNodeSchema),
77
+ right: z.lazy(() => ExprNodeSchema),
78
+ });
79
+ export const DivExpr = z.object({
80
+ kind: z.literal("div"),
81
+ left: z.lazy(() => ExprNodeSchema),
82
+ right: z.lazy(() => ExprNodeSchema),
83
+ });
84
+ export const ModExpr = z.object({
85
+ kind: z.literal("mod"),
86
+ left: z.lazy(() => ExprNodeSchema),
87
+ right: z.lazy(() => ExprNodeSchema),
88
+ });
89
+ // ============ String ============
90
+ export const ConcatExpr = z.object({
91
+ kind: z.literal("concat"),
92
+ args: z.array(z.lazy(() => ExprNodeSchema)),
93
+ });
94
+ export const SubstringExpr = z.object({
95
+ kind: z.literal("substring"),
96
+ str: z.lazy(() => ExprNodeSchema),
97
+ start: z.lazy(() => ExprNodeSchema),
98
+ end: z.lazy(() => ExprNodeSchema).optional(),
99
+ });
100
+ // ============ Collection ============
101
+ export const LenExpr = z.object({
102
+ kind: z.literal("len"),
103
+ arg: z.lazy(() => ExprNodeSchema),
104
+ });
105
+ export const AtExpr = z.object({
106
+ kind: z.literal("at"),
107
+ array: z.lazy(() => ExprNodeSchema),
108
+ index: z.lazy(() => ExprNodeSchema),
109
+ });
110
+ export const FirstExpr = z.object({
111
+ kind: z.literal("first"),
112
+ array: z.lazy(() => ExprNodeSchema),
113
+ });
114
+ export const LastExpr = z.object({
115
+ kind: z.literal("last"),
116
+ array: z.lazy(() => ExprNodeSchema),
117
+ });
118
+ export const SliceExpr = z.object({
119
+ kind: z.literal("slice"),
120
+ array: z.lazy(() => ExprNodeSchema),
121
+ start: z.lazy(() => ExprNodeSchema),
122
+ end: z.lazy(() => ExprNodeSchema).optional(),
123
+ });
124
+ export const IncludesExpr = z.object({
125
+ kind: z.literal("includes"),
126
+ array: z.lazy(() => ExprNodeSchema),
127
+ item: z.lazy(() => ExprNodeSchema),
128
+ });
129
+ export const FilterExpr = z.object({
130
+ kind: z.literal("filter"),
131
+ array: z.lazy(() => ExprNodeSchema),
132
+ predicate: z.lazy(() => ExprNodeSchema),
133
+ });
134
+ export const MapExpr = z.object({
135
+ kind: z.literal("map"),
136
+ array: z.lazy(() => ExprNodeSchema),
137
+ mapper: z.lazy(() => ExprNodeSchema),
138
+ });
139
+ export const FindExpr = z.object({
140
+ kind: z.literal("find"),
141
+ array: z.lazy(() => ExprNodeSchema),
142
+ predicate: z.lazy(() => ExprNodeSchema),
143
+ });
144
+ export const EveryExpr = z.object({
145
+ kind: z.literal("every"),
146
+ array: z.lazy(() => ExprNodeSchema),
147
+ predicate: z.lazy(() => ExprNodeSchema),
148
+ });
149
+ export const SomeExpr = z.object({
150
+ kind: z.literal("some"),
151
+ array: z.lazy(() => ExprNodeSchema),
152
+ predicate: z.lazy(() => ExprNodeSchema),
153
+ });
154
+ // ============ Object ============
155
+ export const KeysExpr = z.object({
156
+ kind: z.literal("keys"),
157
+ obj: z.lazy(() => ExprNodeSchema),
158
+ });
159
+ export const ValuesExpr = z.object({
160
+ kind: z.literal("values"),
161
+ obj: z.lazy(() => ExprNodeSchema),
162
+ });
163
+ export const EntriesExpr = z.object({
164
+ kind: z.literal("entries"),
165
+ obj: z.lazy(() => ExprNodeSchema),
166
+ });
167
+ export const MergeExpr = z.object({
168
+ kind: z.literal("merge"),
169
+ objects: z.array(z.lazy(() => ExprNodeSchema)),
170
+ });
171
+ // ============ Type ============
172
+ export const TypeofExpr = z.object({
173
+ kind: z.literal("typeof"),
174
+ arg: z.lazy(() => ExprNodeSchema),
175
+ });
176
+ export const IsNullExpr = z.object({
177
+ kind: z.literal("isNull"),
178
+ arg: z.lazy(() => ExprNodeSchema),
179
+ });
180
+ export const CoalesceExpr = z.object({
181
+ kind: z.literal("coalesce"),
182
+ args: z.array(z.lazy(() => ExprNodeSchema)),
183
+ });
184
+ // ============ Combined Schema ============
185
+ export const ExprNodeSchema = z.union([
186
+ // Literals
187
+ LitExpr,
188
+ GetExpr,
189
+ // Comparison
190
+ EqExpr,
191
+ NeqExpr,
192
+ GtExpr,
193
+ GteExpr,
194
+ LtExpr,
195
+ LteExpr,
196
+ // Logical
197
+ AndExpr,
198
+ OrExpr,
199
+ NotExpr,
200
+ // Conditional
201
+ IfExpr,
202
+ // Arithmetic
203
+ AddExpr,
204
+ SubExpr,
205
+ MulExpr,
206
+ DivExpr,
207
+ ModExpr,
208
+ // String
209
+ ConcatExpr,
210
+ SubstringExpr,
211
+ // Collection
212
+ LenExpr,
213
+ AtExpr,
214
+ FirstExpr,
215
+ LastExpr,
216
+ SliceExpr,
217
+ IncludesExpr,
218
+ FilterExpr,
219
+ MapExpr,
220
+ FindExpr,
221
+ EveryExpr,
222
+ SomeExpr,
223
+ // Object
224
+ KeysExpr,
225
+ ValuesExpr,
226
+ EntriesExpr,
227
+ MergeExpr,
228
+ // Type
229
+ TypeofExpr,
230
+ IsNullExpr,
231
+ CoalesceExpr,
232
+ ]);
233
+ /**
234
+ * Expression kinds enum for pattern matching
235
+ */
236
+ export const ExprKind = z.enum([
237
+ "lit", "get",
238
+ "eq", "neq", "gt", "gte", "lt", "lte",
239
+ "and", "or", "not",
240
+ "if",
241
+ "add", "sub", "mul", "div", "mod",
242
+ "concat", "substring",
243
+ "len", "at", "first", "last", "slice", "includes", "filter", "map", "find", "every", "some",
244
+ "keys", "values", "entries", "merge",
245
+ "typeof", "isNull", "coalesce",
246
+ ]);
247
+ //# sourceMappingURL=expr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/schema/expr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Field type definitions
4
+ */
5
+ export declare const PrimitiveFieldType: z.ZodEnum<{
6
+ string: "string";
7
+ number: "number";
8
+ boolean: "boolean";
9
+ object: "object";
10
+ null: "null";
11
+ array: "array";
12
+ }>;
13
+ export type PrimitiveFieldType = z.infer<typeof PrimitiveFieldType>;
14
+ export declare const EnumFieldType: z.ZodObject<{
15
+ enum: z.ZodReadonly<z.ZodArray<z.ZodUnknown>>;
16
+ }, z.core.$strip>;
17
+ export type EnumFieldType = z.infer<typeof EnumFieldType>;
18
+ export declare const FieldType: z.ZodUnion<readonly [z.ZodEnum<{
19
+ string: "string";
20
+ number: "number";
21
+ boolean: "boolean";
22
+ object: "object";
23
+ null: "null";
24
+ array: "array";
25
+ }>, z.ZodObject<{
26
+ enum: z.ZodReadonly<z.ZodArray<z.ZodUnknown>>;
27
+ }, z.core.$strip>]>;
28
+ export type FieldType = z.infer<typeof FieldType>;
29
+ /**
30
+ * Field specification (recursive for nested objects/arrays)
31
+ */
32
+ export type FieldSpec = {
33
+ type: FieldType;
34
+ required: boolean;
35
+ default?: unknown;
36
+ description?: string;
37
+ fields?: Record<string, FieldSpec>;
38
+ items?: FieldSpec;
39
+ };
40
+ export declare const FieldSpec: z.ZodType<FieldSpec>;
41
+ /**
42
+ * State specification - defines the shape of domain state
43
+ */
44
+ export declare const StateSpec: z.ZodObject<{
45
+ fields: z.ZodRecord<z.ZodString, z.ZodType<FieldSpec, unknown, z.core.$ZodTypeInternals<FieldSpec, unknown>>>;
46
+ }, z.core.$strip>;
47
+ export type StateSpec = z.infer<typeof StateSpec>;
48
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/schema/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;EAO7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,aAAa;;iBAExB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,SAAS;;;;;;;;;mBAA+C,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAS1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;iBAEpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Field type definitions
4
+ */
5
+ export const PrimitiveFieldType = z.enum([
6
+ "string",
7
+ "number",
8
+ "boolean",
9
+ "null",
10
+ "object",
11
+ "array",
12
+ ]);
13
+ export const EnumFieldType = z.object({
14
+ enum: z.array(z.unknown()).readonly(),
15
+ });
16
+ export const FieldType = z.union([PrimitiveFieldType, EnumFieldType]);
17
+ export const FieldSpec = z.lazy(() => z.object({
18
+ type: FieldType,
19
+ required: z.boolean(),
20
+ default: z.unknown().optional(),
21
+ description: z.string().optional(),
22
+ fields: z.record(z.string(), FieldSpec).optional(),
23
+ items: FieldSpec.optional(),
24
+ }));
25
+ /**
26
+ * State specification - defines the shape of domain state
27
+ */
28
+ export const StateSpec = z.object({
29
+ fields: z.record(z.string(), FieldSpec),
30
+ });
31
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/schema/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC;AAetE,MAAM,CAAC,MAAM,SAAS,GAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE;IAClD,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC5B,CAAC,CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;CACxC,CAAC,CAAC"}