@manifesto-ai/core 0.3.0 → 1.3.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 (279) hide show
  1. package/README.md +148 -498
  2. package/dist/__tests__/apply.test.d.ts +2 -0
  3. package/dist/__tests__/apply.test.d.ts.map +1 -0
  4. package/dist/__tests__/apply.test.js +144 -0
  5. package/dist/__tests__/apply.test.js.map +1 -0
  6. package/dist/__tests__/jcs.test.d.ts +2 -0
  7. package/dist/__tests__/jcs.test.d.ts.map +1 -0
  8. package/dist/__tests__/jcs.test.js +45 -0
  9. package/dist/__tests__/jcs.test.js.map +1 -0
  10. package/dist/core/apply.d.ts +17 -0
  11. package/dist/core/apply.d.ts.map +1 -0
  12. package/dist/core/apply.js +130 -0
  13. package/dist/core/apply.js.map +1 -0
  14. package/dist/core/compute.d.ts +17 -0
  15. package/dist/core/compute.d.ts.map +1 -0
  16. package/dist/core/compute.js +287 -0
  17. package/dist/core/compute.js.map +1 -0
  18. package/dist/core/compute.test.d.ts +2 -0
  19. package/dist/core/compute.test.d.ts.map +1 -0
  20. package/dist/core/compute.test.js +633 -0
  21. package/dist/core/compute.test.js.map +1 -0
  22. package/dist/core/explain.d.ts +14 -0
  23. package/dist/core/explain.d.ts.map +1 -0
  24. package/dist/core/explain.js +78 -0
  25. package/dist/core/explain.js.map +1 -0
  26. package/dist/core/index.d.ts +5 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +5 -0
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/core/validate.d.ts +16 -0
  31. package/dist/core/validate.d.ts.map +1 -0
  32. package/dist/core/validate.js +361 -0
  33. package/dist/core/validate.js.map +1 -0
  34. package/dist/core/validate.test.d.ts +2 -0
  35. package/dist/core/validate.test.d.ts.map +1 -0
  36. package/dist/core/validate.test.js +638 -0
  37. package/dist/core/validate.test.js.map +1 -0
  38. package/dist/core/validation-utils.d.ts +20 -0
  39. package/dist/core/validation-utils.d.ts.map +1 -0
  40. package/dist/core/validation-utils.js +289 -0
  41. package/dist/core/validation-utils.js.map +1 -0
  42. package/dist/errors.d.ts +30 -0
  43. package/dist/errors.d.ts.map +1 -0
  44. package/dist/errors.js +51 -0
  45. package/dist/errors.js.map +1 -0
  46. package/dist/evaluator/computed.d.ts +14 -0
  47. package/dist/evaluator/computed.d.ts.map +1 -0
  48. package/dist/evaluator/computed.js +60 -0
  49. package/dist/evaluator/computed.js.map +1 -0
  50. package/dist/evaluator/context.d.ts +59 -0
  51. package/dist/evaluator/context.d.ts.map +1 -0
  52. package/dist/evaluator/context.js +41 -0
  53. package/dist/evaluator/context.js.map +1 -0
  54. package/dist/evaluator/dag.d.ts +30 -0
  55. package/dist/evaluator/dag.d.ts.map +1 -0
  56. package/dist/evaluator/dag.js +121 -0
  57. package/dist/evaluator/dag.js.map +1 -0
  58. package/dist/evaluator/expr.d.ts +11 -0
  59. package/dist/evaluator/expr.d.ts.map +1 -0
  60. package/dist/evaluator/expr.js +649 -0
  61. package/dist/evaluator/expr.js.map +1 -0
  62. package/dist/evaluator/expr.test.d.ts +2 -0
  63. package/dist/evaluator/expr.test.d.ts.map +1 -0
  64. package/dist/evaluator/expr.test.js +449 -0
  65. package/dist/evaluator/expr.test.js.map +1 -0
  66. package/dist/evaluator/flow.d.ts +35 -0
  67. package/dist/evaluator/flow.d.ts.map +1 -0
  68. package/dist/evaluator/flow.js +387 -0
  69. package/dist/evaluator/flow.js.map +1 -0
  70. package/dist/evaluator/flow.test.d.ts +2 -0
  71. package/dist/evaluator/flow.test.d.ts.map +1 -0
  72. package/dist/evaluator/flow.test.js +499 -0
  73. package/dist/evaluator/flow.test.js.map +1 -0
  74. package/dist/evaluator/index.d.ts +6 -0
  75. package/dist/evaluator/index.d.ts.map +1 -0
  76. package/dist/evaluator/index.js +6 -0
  77. package/dist/evaluator/index.js.map +1 -0
  78. package/dist/factories.d.ts +22 -0
  79. package/dist/factories.d.ts.map +1 -0
  80. package/dist/factories.js +44 -0
  81. package/dist/factories.js.map +1 -0
  82. package/dist/index.d.ts +47 -11
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +30 -45
  85. package/dist/index.js.map +1 -1
  86. package/dist/index.test.d.ts +2 -0
  87. package/dist/index.test.d.ts.map +1 -0
  88. package/dist/index.test.js +13 -0
  89. package/dist/index.test.js.map +1 -0
  90. package/dist/schema/action.d.ts +14 -0
  91. package/dist/schema/action.d.ts.map +1 -0
  92. package/dist/schema/action.js +30 -0
  93. package/dist/schema/action.js.map +1 -0
  94. package/dist/schema/common.d.ts +37 -0
  95. package/dist/schema/common.d.ts.map +1 -0
  96. package/dist/schema/common.js +20 -0
  97. package/dist/schema/common.js.map +1 -0
  98. package/dist/schema/computed.d.ts +23 -0
  99. package/dist/schema/computed.d.ts.map +1 -0
  100. package/dist/schema/computed.js +34 -0
  101. package/dist/schema/computed.js.map +1 -0
  102. package/dist/schema/domain.d.ts +50 -0
  103. package/dist/schema/domain.d.ts.map +1 -0
  104. package/dist/schema/domain.js +60 -0
  105. package/dist/schema/domain.js.map +1 -0
  106. package/dist/schema/expr.d.ts +303 -0
  107. package/dist/schema/expr.d.ts.map +1 -0
  108. package/dist/schema/expr.js +283 -0
  109. package/dist/schema/expr.js.map +1 -0
  110. package/dist/schema/field.d.ts +48 -0
  111. package/dist/schema/field.d.ts.map +1 -0
  112. package/dist/schema/field.js +31 -0
  113. package/dist/schema/field.js.map +1 -0
  114. package/dist/schema/flow.d.ts +103 -0
  115. package/dist/schema/flow.d.ts.map +1 -0
  116. package/dist/schema/flow.js +82 -0
  117. package/dist/schema/flow.js.map +1 -0
  118. package/dist/schema/host-context.d.ts +12 -0
  119. package/dist/schema/host-context.d.ts.map +1 -0
  120. package/dist/schema/host-context.js +23 -0
  121. package/dist/schema/host-context.js.map +1 -0
  122. package/dist/schema/index.d.ts +13 -2
  123. package/dist/schema/index.d.ts.map +1 -1
  124. package/dist/schema/index.js +25 -2
  125. package/dist/schema/index.js.map +1 -1
  126. package/dist/schema/patch.d.ts +59 -0
  127. package/dist/schema/patch.d.ts.map +1 -0
  128. package/dist/schema/patch.js +60 -0
  129. package/dist/schema/patch.js.map +1 -0
  130. package/dist/schema/result.d.ts +142 -0
  131. package/dist/schema/result.d.ts.map +1 -0
  132. package/dist/schema/result.js +94 -0
  133. package/dist/schema/result.js.map +1 -0
  134. package/dist/schema/snapshot.d.ts +153 -0
  135. package/dist/schema/snapshot.d.ts.map +1 -0
  136. package/dist/schema/snapshot.js +160 -0
  137. package/dist/schema/snapshot.js.map +1 -0
  138. package/dist/schema/trace.d.ts +98 -0
  139. package/dist/schema/trace.d.ts.map +1 -0
  140. package/dist/schema/trace.js +90 -0
  141. package/dist/schema/trace.js.map +1 -0
  142. package/dist/schema/type-spec.d.ts +34 -0
  143. package/dist/schema/type-spec.d.ts.map +1 -0
  144. package/dist/schema/type-spec.js +40 -0
  145. package/dist/schema/type-spec.js.map +1 -0
  146. package/dist/utils/canonical.d.ts +37 -0
  147. package/dist/utils/canonical.d.ts.map +1 -0
  148. package/dist/utils/canonical.js +122 -0
  149. package/dist/utils/canonical.js.map +1 -0
  150. package/dist/utils/canonical.test.d.ts +2 -0
  151. package/dist/utils/canonical.test.d.ts.map +1 -0
  152. package/dist/utils/canonical.test.js +183 -0
  153. package/dist/utils/canonical.test.js.map +1 -0
  154. package/dist/utils/hash.d.ts +28 -0
  155. package/dist/utils/hash.d.ts.map +1 -0
  156. package/dist/utils/hash.js +152 -0
  157. package/dist/utils/hash.js.map +1 -0
  158. package/dist/utils/hash.test.d.ts +2 -0
  159. package/dist/utils/hash.test.d.ts.map +1 -0
  160. package/dist/utils/hash.test.js +170 -0
  161. package/dist/utils/hash.test.js.map +1 -0
  162. package/dist/utils/index.d.ts +4 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +4 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/path.d.ts +40 -0
  167. package/dist/utils/path.d.ts.map +1 -0
  168. package/dist/utils/path.js +132 -0
  169. package/dist/utils/path.js.map +1 -0
  170. package/dist/utils/path.test.d.ts +2 -0
  171. package/dist/utils/path.test.d.ts.map +1 -0
  172. package/dist/utils/path.test.js +191 -0
  173. package/dist/utils/path.test.js.map +1 -0
  174. package/package.json +28 -41
  175. package/LICENSE +0 -21
  176. package/dist/dag/graph.d.ts +0 -62
  177. package/dist/dag/graph.d.ts.map +0 -1
  178. package/dist/dag/graph.js +0 -244
  179. package/dist/dag/graph.js.map +0 -1
  180. package/dist/dag/index.d.ts +0 -4
  181. package/dist/dag/index.d.ts.map +0 -1
  182. package/dist/dag/index.js +0 -4
  183. package/dist/dag/index.js.map +0 -1
  184. package/dist/dag/propagation.d.ts +0 -58
  185. package/dist/dag/propagation.d.ts.map +0 -1
  186. package/dist/dag/propagation.js +0 -224
  187. package/dist/dag/propagation.js.map +0 -1
  188. package/dist/dag/topological.d.ts +0 -33
  189. package/dist/dag/topological.d.ts.map +0 -1
  190. package/dist/dag/topological.js +0 -173
  191. package/dist/dag/topological.js.map +0 -1
  192. package/dist/domain/define.d.ts +0 -82
  193. package/dist/domain/define.d.ts.map +0 -1
  194. package/dist/domain/define.js +0 -105
  195. package/dist/domain/define.js.map +0 -1
  196. package/dist/domain/index.d.ts +0 -4
  197. package/dist/domain/index.d.ts.map +0 -1
  198. package/dist/domain/index.js +0 -4
  199. package/dist/domain/index.js.map +0 -1
  200. package/dist/domain/types.d.ts +0 -203
  201. package/dist/domain/types.d.ts.map +0 -1
  202. package/dist/domain/types.js +0 -2
  203. package/dist/domain/types.js.map +0 -1
  204. package/dist/domain/validate.d.ts +0 -17
  205. package/dist/domain/validate.d.ts.map +0 -1
  206. package/dist/domain/validate.js +0 -204
  207. package/dist/domain/validate.js.map +0 -1
  208. package/dist/effect/index.d.ts +0 -4
  209. package/dist/effect/index.d.ts.map +0 -1
  210. package/dist/effect/index.js +0 -4
  211. package/dist/effect/index.js.map +0 -1
  212. package/dist/effect/result.d.ts +0 -100
  213. package/dist/effect/result.d.ts.map +0 -1
  214. package/dist/effect/result.js +0 -163
  215. package/dist/effect/result.js.map +0 -1
  216. package/dist/effect/runner.d.ts +0 -98
  217. package/dist/effect/runner.d.ts.map +0 -1
  218. package/dist/effect/runner.js +0 -321
  219. package/dist/effect/runner.js.map +0 -1
  220. package/dist/effect/types.d.ts +0 -169
  221. package/dist/effect/types.d.ts.map +0 -1
  222. package/dist/effect/types.js +0 -28
  223. package/dist/effect/types.js.map +0 -1
  224. package/dist/expression/analyzer.d.ts +0 -42
  225. package/dist/expression/analyzer.d.ts.map +0 -1
  226. package/dist/expression/analyzer.js +0 -166
  227. package/dist/expression/analyzer.js.map +0 -1
  228. package/dist/expression/evaluator.d.ts +0 -16
  229. package/dist/expression/evaluator.d.ts.map +0 -1
  230. package/dist/expression/evaluator.js +0 -382
  231. package/dist/expression/evaluator.js.map +0 -1
  232. package/dist/expression/index.d.ts +0 -5
  233. package/dist/expression/index.d.ts.map +0 -1
  234. package/dist/expression/index.js +0 -5
  235. package/dist/expression/index.js.map +0 -1
  236. package/dist/expression/parser.d.ts +0 -37
  237. package/dist/expression/parser.d.ts.map +0 -1
  238. package/dist/expression/parser.js +0 -201
  239. package/dist/expression/parser.js.map +0 -1
  240. package/dist/expression/types.d.ts +0 -123
  241. package/dist/expression/types.d.ts.map +0 -1
  242. package/dist/expression/types.js +0 -10
  243. package/dist/expression/types.js.map +0 -1
  244. package/dist/policy/field-policy.d.ts +0 -63
  245. package/dist/policy/field-policy.d.ts.map +0 -1
  246. package/dist/policy/field-policy.js +0 -138
  247. package/dist/policy/field-policy.js.map +0 -1
  248. package/dist/policy/index.d.ts +0 -3
  249. package/dist/policy/index.d.ts.map +0 -1
  250. package/dist/policy/index.js +0 -3
  251. package/dist/policy/index.js.map +0 -1
  252. package/dist/policy/precondition.d.ts +0 -58
  253. package/dist/policy/precondition.d.ts.map +0 -1
  254. package/dist/policy/precondition.js +0 -115
  255. package/dist/policy/precondition.js.map +0 -1
  256. package/dist/runtime/index.d.ts +0 -4
  257. package/dist/runtime/index.d.ts.map +0 -1
  258. package/dist/runtime/index.js +0 -4
  259. package/dist/runtime/index.js.map +0 -1
  260. package/dist/runtime/runtime.d.ts +0 -94
  261. package/dist/runtime/runtime.d.ts.map +0 -1
  262. package/dist/runtime/runtime.js +0 -294
  263. package/dist/runtime/runtime.js.map +0 -1
  264. package/dist/runtime/snapshot.d.ts +0 -39
  265. package/dist/runtime/snapshot.d.ts.map +0 -1
  266. package/dist/runtime/snapshot.js +0 -264
  267. package/dist/runtime/snapshot.js.map +0 -1
  268. package/dist/runtime/subscription.d.ts +0 -82
  269. package/dist/runtime/subscription.d.ts.map +0 -1
  270. package/dist/runtime/subscription.js +0 -222
  271. package/dist/runtime/subscription.js.map +0 -1
  272. package/dist/schema/integration.d.ts +0 -89
  273. package/dist/schema/integration.d.ts.map +0 -1
  274. package/dist/schema/integration.js +0 -171
  275. package/dist/schema/integration.js.map +0 -1
  276. package/dist/schema/validation.d.ts +0 -51
  277. package/dist/schema/validation.d.ts.map +0 -1
  278. package/dist/schema/validation.js +0 -212
  279. package/dist/schema/validation.js.map +0 -1
@@ -0,0 +1,94 @@
1
+ import { z } from "zod";
2
+ import { SemanticPath } from "./common.js";
3
+ import { Snapshot, Requirement } from "./snapshot.js";
4
+ import { TraceGraph, TraceNode } from "./trace.js";
5
+ /**
6
+ * ComputeStatus - Result of a compute() call
7
+ */
8
+ export const ComputeStatus = z.enum([
9
+ "complete", // Flow finished, no pending requirements
10
+ "pending", // Flow encountered effect, waiting for Host
11
+ "halted", // Flow explicitly halted
12
+ "error", // Flow encountered error
13
+ ]);
14
+ /**
15
+ * ComputeResult - Result of compute() call
16
+ */
17
+ export const ComputeResult = z.object({
18
+ /**
19
+ * New snapshot after computation
20
+ */
21
+ snapshot: Snapshot,
22
+ /**
23
+ * Pending requirements (effects) declared by the flow
24
+ */
25
+ requirements: z.array(Requirement),
26
+ /**
27
+ * Computation trace
28
+ */
29
+ trace: TraceGraph,
30
+ /**
31
+ * Computation status
32
+ */
33
+ status: ComputeStatus,
34
+ });
35
+ /**
36
+ * ValidationError - Single validation error
37
+ */
38
+ export const ValidationError = z.object({
39
+ /**
40
+ * Error code (e.g., "V-001", "V-002")
41
+ */
42
+ code: z.string(),
43
+ /**
44
+ * Human-readable message
45
+ */
46
+ message: z.string(),
47
+ /**
48
+ * Path in the schema where error occurred
49
+ */
50
+ path: z.string().optional(),
51
+ });
52
+ /**
53
+ * ValidationResult - Result of validate() call
54
+ */
55
+ export const ValidationResult = z.object({
56
+ /**
57
+ * Whether the schema is valid
58
+ */
59
+ valid: z.boolean(),
60
+ /**
61
+ * List of validation errors (empty if valid)
62
+ */
63
+ errors: z.array(ValidationError),
64
+ });
65
+ /**
66
+ * ExplainResult - Result of explain() call
67
+ */
68
+ export const ExplainResult = z.object({
69
+ /**
70
+ * The value at the path
71
+ */
72
+ value: z.unknown(),
73
+ /**
74
+ * Trace showing how the value was computed
75
+ */
76
+ trace: TraceNode,
77
+ /**
78
+ * Dependencies that affect this value
79
+ */
80
+ deps: z.array(SemanticPath),
81
+ });
82
+ /**
83
+ * Create a successful validation result
84
+ */
85
+ export function validResult() {
86
+ return { valid: true, errors: [] };
87
+ }
88
+ /**
89
+ * Create a failed validation result
90
+ */
91
+ export function invalidResult(errors) {
92
+ return { valid: false, errors };
93
+ }
94
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/schema/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,UAAU,EAAE,yCAAyC;IACrD,SAAS,EAAG,4CAA4C;IACxD,QAAQ,EAAI,yBAAyB;IACrC,OAAO,EAAK,yBAAyB;CACtC,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC;;OAEG;IACH,QAAQ,EAAE,QAAQ;IAElB;;OAEG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAElC;;OAEG;IACH,KAAK,EAAE,UAAU;IAEjB;;OAEG;IACH,MAAM,EAAE,aAAa;CACtB,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAEhB;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IAEnB;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAElB;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;CACjC,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAElB;;OAEG;IACH,KAAK,EAAE,SAAS;IAEhB;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;CAC5B,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * ErrorValue - Errors are values in Snapshot, not exceptions.
4
+ */
5
+ export declare const ErrorValue: z.ZodObject<{
6
+ code: z.ZodString;
7
+ message: z.ZodString;
8
+ source: z.ZodObject<{
9
+ actionId: z.ZodString;
10
+ nodePath: z.ZodString;
11
+ }, z.core.$strip>;
12
+ timestamp: z.ZodNumber;
13
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
14
+ }, z.core.$strip>;
15
+ export type ErrorValue = z.infer<typeof ErrorValue>;
16
+ /**
17
+ * FlowPosition - Position in the flow where effect was encountered
18
+ */
19
+ export declare const FlowPosition: z.ZodObject<{
20
+ nodePath: z.ZodString;
21
+ snapshotVersion: z.ZodNumber;
22
+ }, z.core.$strip>;
23
+ export type FlowPosition = z.infer<typeof FlowPosition>;
24
+ /**
25
+ * Requirement - A recorded effect declaration waiting for Host fulfillment
26
+ */
27
+ export declare const Requirement: z.ZodObject<{
28
+ id: z.ZodString;
29
+ type: z.ZodString;
30
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
31
+ actionId: z.ZodString;
32
+ flowPosition: z.ZodObject<{
33
+ nodePath: z.ZodString;
34
+ snapshotVersion: z.ZodNumber;
35
+ }, z.core.$strip>;
36
+ createdAt: z.ZodNumber;
37
+ }, z.core.$strip>;
38
+ export type Requirement = z.infer<typeof Requirement>;
39
+ /**
40
+ * SystemState - Internal system state
41
+ */
42
+ export declare const SystemState: z.ZodObject<{
43
+ status: z.ZodEnum<{
44
+ error: "error";
45
+ idle: "idle";
46
+ computing: "computing";
47
+ pending: "pending";
48
+ }>;
49
+ lastError: z.ZodNullable<z.ZodObject<{
50
+ code: z.ZodString;
51
+ message: z.ZodString;
52
+ source: z.ZodObject<{
53
+ actionId: z.ZodString;
54
+ nodePath: z.ZodString;
55
+ }, z.core.$strip>;
56
+ timestamp: z.ZodNumber;
57
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
58
+ }, z.core.$strip>>;
59
+ errors: z.ZodArray<z.ZodObject<{
60
+ code: z.ZodString;
61
+ message: z.ZodString;
62
+ source: z.ZodObject<{
63
+ actionId: z.ZodString;
64
+ nodePath: z.ZodString;
65
+ }, z.core.$strip>;
66
+ timestamp: z.ZodNumber;
67
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
+ }, z.core.$strip>>;
69
+ pendingRequirements: z.ZodArray<z.ZodObject<{
70
+ id: z.ZodString;
71
+ type: z.ZodString;
72
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
73
+ actionId: z.ZodString;
74
+ flowPosition: z.ZodObject<{
75
+ nodePath: z.ZodString;
76
+ snapshotVersion: z.ZodNumber;
77
+ }, z.core.$strip>;
78
+ createdAt: z.ZodNumber;
79
+ }, z.core.$strip>>;
80
+ currentAction: z.ZodNullable<z.ZodString>;
81
+ }, z.core.$strip>;
82
+ export type SystemState = z.infer<typeof SystemState>;
83
+ /**
84
+ * SnapshotMeta - Snapshot metadata
85
+ */
86
+ export declare const SnapshotMeta: z.ZodObject<{
87
+ version: z.ZodNumber;
88
+ timestamp: z.ZodNumber;
89
+ randomSeed: z.ZodString;
90
+ schemaHash: z.ZodString;
91
+ }, z.core.$strip>;
92
+ export type SnapshotMeta = z.infer<typeof SnapshotMeta>;
93
+ /**
94
+ * Snapshot - Immutable, point-in-time representation of world state.
95
+ * This is the ONLY medium of communication between Core and Host.
96
+ */
97
+ export declare const Snapshot: z.ZodObject<{
98
+ data: z.ZodUnknown;
99
+ computed: z.ZodRecord<z.ZodString, z.ZodUnknown>;
100
+ system: z.ZodObject<{
101
+ status: z.ZodEnum<{
102
+ error: "error";
103
+ idle: "idle";
104
+ computing: "computing";
105
+ pending: "pending";
106
+ }>;
107
+ lastError: z.ZodNullable<z.ZodObject<{
108
+ code: z.ZodString;
109
+ message: z.ZodString;
110
+ source: z.ZodObject<{
111
+ actionId: z.ZodString;
112
+ nodePath: z.ZodString;
113
+ }, z.core.$strip>;
114
+ timestamp: z.ZodNumber;
115
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
116
+ }, z.core.$strip>>;
117
+ errors: z.ZodArray<z.ZodObject<{
118
+ code: z.ZodString;
119
+ message: z.ZodString;
120
+ source: z.ZodObject<{
121
+ actionId: z.ZodString;
122
+ nodePath: z.ZodString;
123
+ }, z.core.$strip>;
124
+ timestamp: z.ZodNumber;
125
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
+ }, z.core.$strip>>;
127
+ pendingRequirements: z.ZodArray<z.ZodObject<{
128
+ id: z.ZodString;
129
+ type: z.ZodString;
130
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
131
+ actionId: z.ZodString;
132
+ flowPosition: z.ZodObject<{
133
+ nodePath: z.ZodString;
134
+ snapshotVersion: z.ZodNumber;
135
+ }, z.core.$strip>;
136
+ createdAt: z.ZodNumber;
137
+ }, z.core.$strip>>;
138
+ currentAction: z.ZodNullable<z.ZodString>;
139
+ }, z.core.$strip>;
140
+ input: z.ZodUnknown;
141
+ meta: z.ZodObject<{
142
+ version: z.ZodNumber;
143
+ timestamp: z.ZodNumber;
144
+ randomSeed: z.ZodString;
145
+ schemaHash: z.ZodString;
146
+ }, z.core.$strip>;
147
+ }, z.core.$strip>;
148
+ export type Snapshot = z.infer<typeof Snapshot>;
149
+ /**
150
+ * Create initial system state
151
+ */
152
+ export declare function createInitialSystemState(): SystemState;
153
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/schema/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;iBA4BrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,YAAY;;;iBAUvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;iBA+BtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyBtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;iBAsBvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyBnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAQtD"}
@@ -0,0 +1,160 @@
1
+ import { z } from "zod";
2
+ import { SemanticPath } from "./common.js";
3
+ /**
4
+ * ErrorValue - Errors are values in Snapshot, not exceptions.
5
+ */
6
+ export const ErrorValue = z.object({
7
+ /**
8
+ * Error code
9
+ */
10
+ code: z.string(),
11
+ /**
12
+ * Human-readable message
13
+ */
14
+ message: z.string(),
15
+ /**
16
+ * Where the error occurred
17
+ */
18
+ source: z.object({
19
+ actionId: z.string(),
20
+ nodePath: z.string(),
21
+ }),
22
+ /**
23
+ * When the error occurred
24
+ */
25
+ timestamp: z.number(),
26
+ /**
27
+ * Additional context
28
+ */
29
+ context: z.record(z.string(), z.unknown()).optional(),
30
+ });
31
+ /**
32
+ * FlowPosition - Position in the flow where effect was encountered
33
+ */
34
+ export const FlowPosition = z.object({
35
+ /**
36
+ * Path to the effect node in the flow
37
+ */
38
+ nodePath: z.string(),
39
+ /**
40
+ * Snapshot version at time of effect
41
+ */
42
+ snapshotVersion: z.number(),
43
+ });
44
+ /**
45
+ * Requirement - A recorded effect declaration waiting for Host fulfillment
46
+ */
47
+ export const Requirement = z.object({
48
+ /**
49
+ * Unique identifier for this requirement.
50
+ * Should be deterministic: hash(schemaHash, intentId, actionId, flowNodePath)
51
+ */
52
+ id: z.string(),
53
+ /**
54
+ * Effect type that generated this requirement
55
+ */
56
+ type: z.string(),
57
+ /**
58
+ * Resolved parameters
59
+ */
60
+ params: z.record(z.string(), z.unknown()),
61
+ /**
62
+ * The action that was being computed
63
+ */
64
+ actionId: z.string(),
65
+ /**
66
+ * Position in the flow where effect was encountered
67
+ */
68
+ flowPosition: FlowPosition,
69
+ /**
70
+ * Timestamp when requirement was created
71
+ */
72
+ createdAt: z.number(),
73
+ });
74
+ /**
75
+ * SystemState - Internal system state
76
+ */
77
+ export const SystemState = z.object({
78
+ /**
79
+ * Current status
80
+ */
81
+ status: z.enum(["idle", "computing", "pending", "error"]),
82
+ /**
83
+ * Last error (null if none)
84
+ */
85
+ lastError: ErrorValue.nullable(),
86
+ /**
87
+ * Error history
88
+ */
89
+ errors: z.array(ErrorValue),
90
+ /**
91
+ * Pending requirements waiting for Host
92
+ */
93
+ pendingRequirements: z.array(Requirement),
94
+ /**
95
+ * Current action being processed (if any)
96
+ */
97
+ currentAction: z.string().nullable(),
98
+ });
99
+ /**
100
+ * SnapshotMeta - Snapshot metadata
101
+ */
102
+ export const SnapshotMeta = z.object({
103
+ /**
104
+ * Monotonically increasing version.
105
+ * Incremented by Core on each apply().
106
+ */
107
+ version: z.number(),
108
+ /**
109
+ * Timestamp of last modification.
110
+ * Set by Core on each apply().
111
+ */
112
+ timestamp: z.number(),
113
+ /**
114
+ * Deterministic random seed from Host context
115
+ */
116
+ randomSeed: z.string(),
117
+ /**
118
+ * Hash of the schema this snapshot conforms to.
119
+ */
120
+ schemaHash: z.string(),
121
+ });
122
+ /**
123
+ * Snapshot - Immutable, point-in-time representation of world state.
124
+ * This is the ONLY medium of communication between Core and Host.
125
+ */
126
+ export const Snapshot = z.object({
127
+ /**
128
+ * Domain data (matches StateSpec)
129
+ */
130
+ data: z.unknown(),
131
+ /**
132
+ * Computed values (matches ComputedSpec)
133
+ */
134
+ computed: z.record(SemanticPath, z.unknown()),
135
+ /**
136
+ * System state
137
+ */
138
+ system: SystemState,
139
+ /**
140
+ * Input for current action (if any)
141
+ */
142
+ input: z.unknown(),
143
+ /**
144
+ * Snapshot metadata
145
+ */
146
+ meta: SnapshotMeta,
147
+ });
148
+ /**
149
+ * Create initial system state
150
+ */
151
+ export function createInitialSystemState() {
152
+ return {
153
+ status: "idle",
154
+ lastError: null,
155
+ errors: [],
156
+ pendingRequirements: [],
157
+ currentAction: null,
158
+ };
159
+ }
160
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/schema/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * TraceNodeKind - Types of trace nodes
4
+ */
5
+ export declare const TraceNodeKind: z.ZodEnum<{
6
+ error: "error";
7
+ computed: "computed";
8
+ expr: "expr";
9
+ patch: "patch";
10
+ effect: "effect";
11
+ call: "call";
12
+ flow: "flow";
13
+ halt: "halt";
14
+ branch: "branch";
15
+ }>;
16
+ export type TraceNodeKind = z.infer<typeof TraceNodeKind>;
17
+ /**
18
+ * TraceNode - A single node in the execution trace.
19
+ * Enables explainability - every computation produces a trace.
20
+ */
21
+ export type TraceNode = {
22
+ /**
23
+ * Unique identifier for this trace node
24
+ */
25
+ id: string;
26
+ /**
27
+ * Type of trace node
28
+ */
29
+ kind: TraceNodeKind;
30
+ /**
31
+ * Path in the schema that produced this trace
32
+ */
33
+ sourcePath: string;
34
+ /**
35
+ * Input values at this point
36
+ */
37
+ inputs: Record<string, unknown>;
38
+ /**
39
+ * Output value produced
40
+ */
41
+ output: unknown;
42
+ /**
43
+ * Child trace nodes
44
+ */
45
+ children: TraceNode[];
46
+ /**
47
+ * Timestamp
48
+ */
49
+ timestamp: number;
50
+ };
51
+ export declare const TraceNode: z.ZodType<TraceNode>;
52
+ /**
53
+ * TraceTermination - How the computation ended
54
+ */
55
+ export declare const TraceTermination: z.ZodEnum<{
56
+ error: "error";
57
+ effect: "effect";
58
+ halt: "halt";
59
+ complete: "complete";
60
+ }>;
61
+ export type TraceTermination = z.infer<typeof TraceTermination>;
62
+ /**
63
+ * TraceGraph - Complete trace of a computation
64
+ */
65
+ export declare const TraceGraph: z.ZodObject<{
66
+ root: z.ZodType<TraceNode, unknown, z.core.$ZodTypeInternals<TraceNode, unknown>>;
67
+ nodes: z.ZodRecord<z.ZodString, z.ZodType<TraceNode, unknown, z.core.$ZodTypeInternals<TraceNode, unknown>>>;
68
+ intent: z.ZodObject<{
69
+ type: z.ZodString;
70
+ input: z.ZodUnknown;
71
+ }, z.core.$strip>;
72
+ baseVersion: z.ZodNumber;
73
+ resultVersion: z.ZodNumber;
74
+ duration: z.ZodNumber;
75
+ terminatedBy: z.ZodEnum<{
76
+ error: "error";
77
+ effect: "effect";
78
+ halt: "halt";
79
+ complete: "complete";
80
+ }>;
81
+ }, z.core.$strip>;
82
+ export type TraceGraph = z.infer<typeof TraceGraph>;
83
+ /**
84
+ * TraceContext - Deterministic trace ID generation
85
+ */
86
+ export type TraceContext = {
87
+ readonly nextId: () => string;
88
+ readonly timestamp: number;
89
+ };
90
+ /**
91
+ * Create a trace context for a single compute pass
92
+ */
93
+ export declare function createTraceContext(timestamp: number): TraceContext;
94
+ /**
95
+ * Create a trace node
96
+ */
97
+ export declare function createTraceNode(trace: TraceContext, kind: TraceNodeKind, sourcePath: string, inputs: Record<string, unknown>, output: unknown, children?: TraceNode[]): TraceNode;
98
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/schema/trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;EAUxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;EAAkD,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;iBAsCrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAMlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,OAAO,EACf,QAAQ,GAAE,SAAS,EAAO,GACzB,SAAS,CAUX"}
@@ -0,0 +1,90 @@
1
+ import { z } from "zod";
2
+ import { generateTraceId } from "../utils/hash.js";
3
+ /**
4
+ * TraceNodeKind - Types of trace nodes
5
+ */
6
+ export const TraceNodeKind = z.enum([
7
+ "expr", // Expression evaluation
8
+ "computed", // Computed field evaluation
9
+ "flow", // Flow execution
10
+ "patch", // State mutation
11
+ "effect", // Effect declaration
12
+ "branch", // Conditional branch taken
13
+ "call", // Flow call
14
+ "halt", // Normal termination
15
+ "error", // Error occurred
16
+ ]);
17
+ export const TraceNode = z.lazy(() => z.object({
18
+ id: z.string(),
19
+ kind: TraceNodeKind,
20
+ sourcePath: z.string(),
21
+ inputs: z.record(z.string(), z.unknown()),
22
+ output: z.unknown(),
23
+ children: z.array(TraceNode),
24
+ timestamp: z.number(),
25
+ }));
26
+ /**
27
+ * TraceTermination - How the computation ended
28
+ */
29
+ export const TraceTermination = z.enum(["complete", "effect", "halt", "error"]);
30
+ /**
31
+ * TraceGraph - Complete trace of a computation
32
+ */
33
+ export const TraceGraph = z.object({
34
+ /**
35
+ * Root trace node
36
+ */
37
+ root: TraceNode,
38
+ /**
39
+ * All nodes indexed by ID for quick lookup
40
+ */
41
+ nodes: z.record(z.string(), TraceNode),
42
+ /**
43
+ * The intent that triggered this computation
44
+ */
45
+ intent: z.object({
46
+ type: z.string(),
47
+ input: z.unknown(),
48
+ }),
49
+ /**
50
+ * Snapshot version at start
51
+ */
52
+ baseVersion: z.number(),
53
+ /**
54
+ * Snapshot version at end
55
+ */
56
+ resultVersion: z.number(),
57
+ /**
58
+ * Total computation time (ms)
59
+ */
60
+ duration: z.number(),
61
+ /**
62
+ * Termination reason
63
+ */
64
+ terminatedBy: TraceTermination,
65
+ });
66
+ /**
67
+ * Create a trace context for a single compute pass
68
+ */
69
+ export function createTraceContext(timestamp) {
70
+ let index = 0;
71
+ return {
72
+ timestamp,
73
+ nextId: () => generateTraceId(index++),
74
+ };
75
+ }
76
+ /**
77
+ * Create a trace node
78
+ */
79
+ export function createTraceNode(trace, kind, sourcePath, inputs, output, children = []) {
80
+ return {
81
+ id: trace.nextId(),
82
+ kind,
83
+ sourcePath,
84
+ inputs,
85
+ output,
86
+ children,
87
+ timestamp: trace.timestamp,
88
+ };
89
+ }
90
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/schema/trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,MAAM,EAAM,wBAAwB;IACpC,UAAU,EAAE,4BAA4B;IACxC,MAAM,EAAM,iBAAiB;IAC7B,OAAO,EAAK,iBAAiB;IAC7B,QAAQ,EAAI,qBAAqB;IACjC,QAAQ,EAAI,2BAA2B;IACvC,MAAM,EAAM,YAAY;IACxB,MAAM,EAAM,qBAAqB;IACjC,OAAO,EAAK,iBAAiB;CAC9B,CAAC,CAAC;AA4CH,MAAM,CAAC,MAAM,SAAS,GAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,CAAC,CAAC,MAAM,CAAC;IACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,aAAa;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAGhF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC;;OAEG;IACH,IAAI,EAAE,SAAS;IAEf;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;IAEtC;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;KACnB,CAAC;IAEF;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IAEvB;;OAEG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IAEzB;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IAEpB;;OAEG;IACH,YAAY,EAAE,gBAAgB;CAC/B,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO;QACL,SAAS;QACT,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,IAAmB,EACnB,UAAkB,EAClB,MAA+B,EAC/B,MAAe,EACf,WAAwB,EAAE;IAE1B,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE;QAClB,IAAI;QACJ,UAAU;QACV,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ export type TypeDefinition = {
3
+ kind: "primitive";
4
+ type: string;
5
+ } | {
6
+ kind: "array";
7
+ element: TypeDefinition;
8
+ } | {
9
+ kind: "record";
10
+ key: TypeDefinition;
11
+ value: TypeDefinition;
12
+ } | {
13
+ kind: "object";
14
+ fields: Record<string, {
15
+ type: TypeDefinition;
16
+ optional: boolean;
17
+ }>;
18
+ } | {
19
+ kind: "union";
20
+ types: TypeDefinition[];
21
+ } | {
22
+ kind: "literal";
23
+ value: string | number | boolean | null;
24
+ } | {
25
+ kind: "ref";
26
+ name: string;
27
+ };
28
+ export declare const TypeDefinition: z.ZodType<TypeDefinition>;
29
+ export declare const TypeSpec: z.ZodObject<{
30
+ name: z.ZodString;
31
+ definition: z.ZodType<TypeDefinition, unknown, z.core.$ZodTypeInternals<TypeDefinition, unknown>>;
32
+ }, z.core.$strip>;
33
+ export type TypeSpec = z.infer<typeof TypeSpec>;
34
+ //# sourceMappingURL=type-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-spec.d.ts","sourceRoot":"","sources":["../../src/schema/type-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAsCpD,CAAC;AAEF,eAAO,MAAM,QAAQ;;;iBAGnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC"}