@grimoirelabs/core 0.1.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 (205) hide show
  1. package/dist/builders/expressions.d.ts +33 -0
  2. package/dist/builders/expressions.d.ts.map +1 -0
  3. package/dist/builders/expressions.js +57 -0
  4. package/dist/builders/expressions.js.map +1 -0
  5. package/dist/builders/index.d.ts +44 -0
  6. package/dist/builders/index.d.ts.map +1 -0
  7. package/dist/builders/index.js +32 -0
  8. package/dist/builders/index.js.map +1 -0
  9. package/dist/builders/spell-builder.d.ts +124 -0
  10. package/dist/builders/spell-builder.d.ts.map +1 -0
  11. package/dist/builders/spell-builder.js +299 -0
  12. package/dist/builders/spell-builder.js.map +1 -0
  13. package/dist/builders/step-builder.d.ts +212 -0
  14. package/dist/builders/step-builder.d.ts.map +1 -0
  15. package/dist/builders/step-builder.js +499 -0
  16. package/dist/builders/step-builder.js.map +1 -0
  17. package/dist/compiler/expression-parser.d.ts +14 -0
  18. package/dist/compiler/expression-parser.d.ts.map +1 -0
  19. package/dist/compiler/expression-parser.js +460 -0
  20. package/dist/compiler/expression-parser.js.map +1 -0
  21. package/dist/compiler/grimoire/ast.d.ts +450 -0
  22. package/dist/compiler/grimoire/ast.d.ts.map +1 -0
  23. package/dist/compiler/grimoire/ast.js +19 -0
  24. package/dist/compiler/grimoire/ast.js.map +1 -0
  25. package/dist/compiler/grimoire/errors.d.ts +65 -0
  26. package/dist/compiler/grimoire/errors.d.ts.map +1 -0
  27. package/dist/compiler/grimoire/errors.js +86 -0
  28. package/dist/compiler/grimoire/errors.js.map +1 -0
  29. package/dist/compiler/grimoire/index.d.ts +24 -0
  30. package/dist/compiler/grimoire/index.d.ts.map +1 -0
  31. package/dist/compiler/grimoire/index.js +63 -0
  32. package/dist/compiler/grimoire/index.js.map +1 -0
  33. package/dist/compiler/grimoire/parser.d.ts +135 -0
  34. package/dist/compiler/grimoire/parser.d.ts.map +1 -0
  35. package/dist/compiler/grimoire/parser.js +2148 -0
  36. package/dist/compiler/grimoire/parser.js.map +1 -0
  37. package/dist/compiler/grimoire/tokenizer.d.ts +59 -0
  38. package/dist/compiler/grimoire/tokenizer.d.ts.map +1 -0
  39. package/dist/compiler/grimoire/tokenizer.js +509 -0
  40. package/dist/compiler/grimoire/tokenizer.js.map +1 -0
  41. package/dist/compiler/grimoire/transformer.d.ts +71 -0
  42. package/dist/compiler/grimoire/transformer.d.ts.map +1 -0
  43. package/dist/compiler/grimoire/transformer.js +1011 -0
  44. package/dist/compiler/grimoire/transformer.js.map +1 -0
  45. package/dist/compiler/index.d.ts +45 -0
  46. package/dist/compiler/index.d.ts.map +1 -0
  47. package/dist/compiler/index.js +97 -0
  48. package/dist/compiler/index.js.map +1 -0
  49. package/dist/compiler/ir-generator.d.ts +16 -0
  50. package/dist/compiler/ir-generator.d.ts.map +1 -0
  51. package/dist/compiler/ir-generator.js +997 -0
  52. package/dist/compiler/ir-generator.js.map +1 -0
  53. package/dist/compiler/validator.d.ts +15 -0
  54. package/dist/compiler/validator.d.ts.map +1 -0
  55. package/dist/compiler/validator.js +401 -0
  56. package/dist/compiler/validator.js.map +1 -0
  57. package/dist/index.d.ts +16 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +17 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/runtime/circuit-breaker.d.ts +59 -0
  62. package/dist/runtime/circuit-breaker.d.ts.map +1 -0
  63. package/dist/runtime/circuit-breaker.js +155 -0
  64. package/dist/runtime/circuit-breaker.js.map +1 -0
  65. package/dist/runtime/context.d.ts +92 -0
  66. package/dist/runtime/context.d.ts.map +1 -0
  67. package/dist/runtime/context.js +219 -0
  68. package/dist/runtime/context.js.map +1 -0
  69. package/dist/runtime/error-classifier.d.ts +16 -0
  70. package/dist/runtime/error-classifier.d.ts.map +1 -0
  71. package/dist/runtime/error-classifier.js +38 -0
  72. package/dist/runtime/error-classifier.js.map +1 -0
  73. package/dist/runtime/expression-evaluator.d.ts +36 -0
  74. package/dist/runtime/expression-evaluator.d.ts.map +1 -0
  75. package/dist/runtime/expression-evaluator.js +391 -0
  76. package/dist/runtime/expression-evaluator.js.map +1 -0
  77. package/dist/runtime/index.d.ts +12 -0
  78. package/dist/runtime/index.d.ts.map +1 -0
  79. package/dist/runtime/index.js +11 -0
  80. package/dist/runtime/index.js.map +1 -0
  81. package/dist/runtime/interpreter.d.ts +59 -0
  82. package/dist/runtime/interpreter.d.ts.map +1 -0
  83. package/dist/runtime/interpreter.js +414 -0
  84. package/dist/runtime/interpreter.js.map +1 -0
  85. package/dist/runtime/skills/registry.d.ts +11 -0
  86. package/dist/runtime/skills/registry.d.ts.map +1 -0
  87. package/dist/runtime/skills/registry.js +73 -0
  88. package/dist/runtime/skills/registry.js.map +1 -0
  89. package/dist/runtime/sqlite-state-store.d.ts +28 -0
  90. package/dist/runtime/sqlite-state-store.d.ts.map +1 -0
  91. package/dist/runtime/sqlite-state-store.js +180 -0
  92. package/dist/runtime/sqlite-state-store.js.map +1 -0
  93. package/dist/runtime/state-store.d.ts +52 -0
  94. package/dist/runtime/state-store.d.ts.map +1 -0
  95. package/dist/runtime/state-store.js +32 -0
  96. package/dist/runtime/state-store.js.map +1 -0
  97. package/dist/runtime/steps/action.d.ts +17 -0
  98. package/dist/runtime/steps/action.d.ts.map +1 -0
  99. package/dist/runtime/steps/action.js +430 -0
  100. package/dist/runtime/steps/action.js.map +1 -0
  101. package/dist/runtime/steps/advisory.d.ts +28 -0
  102. package/dist/runtime/steps/advisory.d.ts.map +1 -0
  103. package/dist/runtime/steps/advisory.js +209 -0
  104. package/dist/runtime/steps/advisory.js.map +1 -0
  105. package/dist/runtime/steps/compute.d.ts +9 -0
  106. package/dist/runtime/steps/compute.d.ts.map +1 -0
  107. package/dist/runtime/steps/compute.js +74 -0
  108. package/dist/runtime/steps/compute.js.map +1 -0
  109. package/dist/runtime/steps/conditional.d.ts +14 -0
  110. package/dist/runtime/steps/conditional.d.ts.map +1 -0
  111. package/dist/runtime/steps/conditional.js +58 -0
  112. package/dist/runtime/steps/conditional.js.map +1 -0
  113. package/dist/runtime/steps/emit.d.ts +9 -0
  114. package/dist/runtime/steps/emit.d.ts.map +1 -0
  115. package/dist/runtime/steps/emit.js +70 -0
  116. package/dist/runtime/steps/emit.js.map +1 -0
  117. package/dist/runtime/steps/halt.d.ts +9 -0
  118. package/dist/runtime/steps/halt.d.ts.map +1 -0
  119. package/dist/runtime/steps/halt.js +19 -0
  120. package/dist/runtime/steps/halt.js.map +1 -0
  121. package/dist/runtime/steps/loop.d.ts +14 -0
  122. package/dist/runtime/steps/loop.d.ts.map +1 -0
  123. package/dist/runtime/steps/loop.js +109 -0
  124. package/dist/runtime/steps/loop.js.map +1 -0
  125. package/dist/runtime/steps/parallel.d.ts +9 -0
  126. package/dist/runtime/steps/parallel.d.ts.map +1 -0
  127. package/dist/runtime/steps/parallel.js +87 -0
  128. package/dist/runtime/steps/parallel.js.map +1 -0
  129. package/dist/runtime/steps/pipeline.d.ts +9 -0
  130. package/dist/runtime/steps/pipeline.d.ts.map +1 -0
  131. package/dist/runtime/steps/pipeline.js +125 -0
  132. package/dist/runtime/steps/pipeline.js.map +1 -0
  133. package/dist/runtime/steps/try.d.ts +13 -0
  134. package/dist/runtime/steps/try.d.ts.map +1 -0
  135. package/dist/runtime/steps/try.js +222 -0
  136. package/dist/runtime/steps/try.js.map +1 -0
  137. package/dist/runtime/steps/wait.d.ts +9 -0
  138. package/dist/runtime/steps/wait.d.ts.map +1 -0
  139. package/dist/runtime/steps/wait.js +38 -0
  140. package/dist/runtime/steps/wait.js.map +1 -0
  141. package/dist/types/actions.d.ts +162 -0
  142. package/dist/types/actions.d.ts.map +1 -0
  143. package/dist/types/actions.js +5 -0
  144. package/dist/types/actions.js.map +1 -0
  145. package/dist/types/execution.d.ts +276 -0
  146. package/dist/types/execution.d.ts.map +1 -0
  147. package/dist/types/execution.js +5 -0
  148. package/dist/types/execution.js.map +1 -0
  149. package/dist/types/expressions.d.ts +100 -0
  150. package/dist/types/expressions.d.ts.map +1 -0
  151. package/dist/types/expressions.js +48 -0
  152. package/dist/types/expressions.js.map +1 -0
  153. package/dist/types/index.d.ts +14 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/index.js +5 -0
  156. package/dist/types/index.js.map +1 -0
  157. package/dist/types/ir.d.ts +187 -0
  158. package/dist/types/ir.d.ts.map +1 -0
  159. package/dist/types/ir.js +5 -0
  160. package/dist/types/ir.js.map +1 -0
  161. package/dist/types/policy.d.ts +123 -0
  162. package/dist/types/policy.d.ts.map +1 -0
  163. package/dist/types/policy.js +5 -0
  164. package/dist/types/policy.js.map +1 -0
  165. package/dist/types/primitives.d.ts +76 -0
  166. package/dist/types/primitives.d.ts.map +1 -0
  167. package/dist/types/primitives.js +10 -0
  168. package/dist/types/primitives.js.map +1 -0
  169. package/dist/types/steps.d.ts +226 -0
  170. package/dist/types/steps.d.ts.map +1 -0
  171. package/dist/types/steps.js +5 -0
  172. package/dist/types/steps.js.map +1 -0
  173. package/dist/venues/index.d.ts +6 -0
  174. package/dist/venues/index.d.ts.map +1 -0
  175. package/dist/venues/index.js +26 -0
  176. package/dist/venues/index.js.map +1 -0
  177. package/dist/venues/types.d.ts +40 -0
  178. package/dist/venues/types.d.ts.map +1 -0
  179. package/dist/venues/types.js +5 -0
  180. package/dist/venues/types.js.map +1 -0
  181. package/dist/wallet/executor.d.ts +109 -0
  182. package/dist/wallet/executor.d.ts.map +1 -0
  183. package/dist/wallet/executor.js +354 -0
  184. package/dist/wallet/executor.js.map +1 -0
  185. package/dist/wallet/index.d.ts +14 -0
  186. package/dist/wallet/index.d.ts.map +1 -0
  187. package/dist/wallet/index.js +13 -0
  188. package/dist/wallet/index.js.map +1 -0
  189. package/dist/wallet/keystore.d.ts +44 -0
  190. package/dist/wallet/keystore.d.ts.map +1 -0
  191. package/dist/wallet/keystore.js +296 -0
  192. package/dist/wallet/keystore.js.map +1 -0
  193. package/dist/wallet/provider.d.ts +111 -0
  194. package/dist/wallet/provider.d.ts.map +1 -0
  195. package/dist/wallet/provider.js +309 -0
  196. package/dist/wallet/provider.js.map +1 -0
  197. package/dist/wallet/tx-builder.d.ts +85 -0
  198. package/dist/wallet/tx-builder.d.ts.map +1 -0
  199. package/dist/wallet/tx-builder.js +290 -0
  200. package/dist/wallet/tx-builder.js.map +1 -0
  201. package/dist/wallet/types.d.ts +116 -0
  202. package/dist/wallet/types.d.ts.map +1 -0
  203. package/dist/wallet/types.js +86 -0
  204. package/dist/wallet/types.js.map +1 -0
  205. package/package.json +39 -0
@@ -0,0 +1,391 @@
1
+ /**
2
+ * Expression Evaluator
3
+ * Evaluates Expression IR nodes to concrete values
4
+ */
5
+ /**
6
+ * Evaluate an expression synchronously (for non-async expressions)
7
+ */
8
+ export function evaluate(expr, ctx) {
9
+ switch (expr.kind) {
10
+ case "literal":
11
+ return expr.value;
12
+ case "param": {
13
+ const value = ctx.params.get(expr.name);
14
+ if (value === undefined) {
15
+ throw new Error(`Unknown parameter: ${expr.name}`);
16
+ }
17
+ return value;
18
+ }
19
+ case "state": {
20
+ const stateMap = expr.scope === "persistent" ? ctx.state.persistent : ctx.state.ephemeral;
21
+ const value = stateMap.get(expr.key);
22
+ if (value === undefined) {
23
+ throw new Error(`Unknown state key: ${expr.scope}.${expr.key}`);
24
+ }
25
+ return value;
26
+ }
27
+ case "binding": {
28
+ const value = ctx.bindings.get(expr.name);
29
+ if (value === undefined) {
30
+ throw new Error(`Unknown binding: ${expr.name}`);
31
+ }
32
+ return value;
33
+ }
34
+ case "item":
35
+ if (ctx.item !== undefined) {
36
+ return ctx.item;
37
+ }
38
+ if (ctx.bindings.has("item")) {
39
+ return ctx.bindings.get("item");
40
+ }
41
+ throw new Error("'item' is only available inside loops/pipelines");
42
+ case "index":
43
+ if (ctx.index !== undefined) {
44
+ return ctx.index;
45
+ }
46
+ if (ctx.bindings.has("index")) {
47
+ return ctx.bindings.get("index");
48
+ }
49
+ throw new Error("'index' is only available inside loops/pipelines");
50
+ case "binary":
51
+ return evaluateBinary(expr.op, evaluate(expr.left, ctx), evaluate(expr.right, ctx));
52
+ case "unary":
53
+ return evaluateUnary(expr.op, evaluate(expr.arg, ctx));
54
+ case "ternary": {
55
+ const condition = evaluate(expr.condition, ctx);
56
+ return condition ? evaluate(expr.then, ctx) : evaluate(expr.else, ctx);
57
+ }
58
+ case "call":
59
+ return evaluateCall(expr.fn, expr.args.map((a) => evaluate(a, ctx)));
60
+ case "array_access": {
61
+ const array = evaluate(expr.array, ctx);
62
+ const index = evaluate(expr.index, ctx);
63
+ if (!Array.isArray(array)) {
64
+ throw new Error("Cannot index non-array value");
65
+ }
66
+ if (typeof index !== "number") {
67
+ throw new Error("Array index must be a number");
68
+ }
69
+ return array[index];
70
+ }
71
+ case "property_access": {
72
+ const obj = evaluate(expr.object, ctx);
73
+ if (typeof obj !== "object" || obj === null) {
74
+ throw new Error("Cannot access property on non-object value");
75
+ }
76
+ return obj[expr.property];
77
+ }
78
+ default:
79
+ throw new Error(`Unknown expression kind: ${expr.kind}`);
80
+ }
81
+ }
82
+ /**
83
+ * Evaluate an expression asynchronously (for blockchain queries)
84
+ */
85
+ export async function evaluateAsync(expr, ctx) {
86
+ switch (expr.kind) {
87
+ case "call":
88
+ return evaluateCallAsync(expr.fn, expr.args, ctx);
89
+ case "binary": {
90
+ const [left, right] = await Promise.all([
91
+ evaluateAsync(expr.left, ctx),
92
+ evaluateAsync(expr.right, ctx),
93
+ ]);
94
+ return evaluateBinary(expr.op, left, right);
95
+ }
96
+ case "unary":
97
+ return evaluateUnary(expr.op, await evaluateAsync(expr.arg, ctx));
98
+ case "ternary": {
99
+ const condition = await evaluateAsync(expr.condition, ctx);
100
+ return condition ? await evaluateAsync(expr.then, ctx) : await evaluateAsync(expr.else, ctx);
101
+ }
102
+ case "array_access": {
103
+ const array = await evaluateAsync(expr.array, ctx);
104
+ const index = await evaluateAsync(expr.index, ctx);
105
+ if (!Array.isArray(array)) {
106
+ throw new Error("Cannot index non-array value");
107
+ }
108
+ if (typeof index !== "number") {
109
+ throw new Error("Array index must be a number");
110
+ }
111
+ return array[index];
112
+ }
113
+ case "property_access": {
114
+ const obj = await evaluateAsync(expr.object, ctx);
115
+ if (typeof obj !== "object" || obj === null) {
116
+ throw new Error("Cannot access property on non-object value");
117
+ }
118
+ return obj[expr.property];
119
+ }
120
+ default:
121
+ // Non-async expressions
122
+ return evaluate(expr, ctx);
123
+ }
124
+ }
125
+ /**
126
+ * Evaluate binary operation
127
+ */
128
+ function evaluateBinary(op, left, right) {
129
+ // Numeric operations
130
+ if (typeof left === "number" && typeof right === "number") {
131
+ switch (op) {
132
+ case "+":
133
+ return left + right;
134
+ case "-":
135
+ return left - right;
136
+ case "*":
137
+ return left * right;
138
+ case "/":
139
+ return left / right;
140
+ case "%":
141
+ return left % right;
142
+ case "<":
143
+ return left < right;
144
+ case ">":
145
+ return left > right;
146
+ case "<=":
147
+ return left <= right;
148
+ case ">=":
149
+ return left >= right;
150
+ case "==":
151
+ return left === right;
152
+ case "!=":
153
+ return left !== right;
154
+ }
155
+ }
156
+ // BigInt operations
157
+ if (typeof left === "bigint" && typeof right === "bigint") {
158
+ switch (op) {
159
+ case "+":
160
+ return left + right;
161
+ case "-":
162
+ return left - right;
163
+ case "*":
164
+ return left * right;
165
+ case "/":
166
+ return left / right;
167
+ case "%":
168
+ return left % right;
169
+ case "<":
170
+ return left < right;
171
+ case ">":
172
+ return left > right;
173
+ case "<=":
174
+ return left <= right;
175
+ case ">=":
176
+ return left >= right;
177
+ case "==":
178
+ return left === right;
179
+ case "!=":
180
+ return left !== right;
181
+ }
182
+ }
183
+ // Mixed bigint/number comparisons
184
+ if ((typeof left === "bigint" && typeof right === "number") ||
185
+ (typeof left === "number" && typeof right === "bigint")) {
186
+ const l = BigInt(left);
187
+ const r = BigInt(right);
188
+ switch (op) {
189
+ case "<":
190
+ return l < r;
191
+ case ">":
192
+ return l > r;
193
+ case "<=":
194
+ return l <= r;
195
+ case ">=":
196
+ return l >= r;
197
+ case "==":
198
+ return l === r;
199
+ case "!=":
200
+ return l !== r;
201
+ }
202
+ }
203
+ // String concatenation
204
+ if (typeof left === "string" && typeof right === "string" && op === "+") {
205
+ return left + right;
206
+ }
207
+ // Boolean operations
208
+ if (typeof left === "boolean" && typeof right === "boolean") {
209
+ switch (op) {
210
+ case "AND":
211
+ return left && right;
212
+ case "OR":
213
+ return left || right;
214
+ case "==":
215
+ return left === right;
216
+ case "!=":
217
+ return left !== right;
218
+ }
219
+ }
220
+ // Logical operations on truthy/falsy values
221
+ switch (op) {
222
+ case "AND":
223
+ return Boolean(left) && Boolean(right);
224
+ case "OR":
225
+ return Boolean(left) || Boolean(right);
226
+ case "==":
227
+ return left === right;
228
+ case "!=":
229
+ return left !== right;
230
+ }
231
+ throw new Error(`Unsupported binary operation: ${typeof left} ${op} ${typeof right}`);
232
+ }
233
+ /**
234
+ * Evaluate unary operation
235
+ */
236
+ function evaluateUnary(op, arg) {
237
+ switch (op) {
238
+ case "NOT":
239
+ return !arg;
240
+ case "-":
241
+ if (typeof arg === "number")
242
+ return -arg;
243
+ if (typeof arg === "bigint")
244
+ return -arg;
245
+ throw new Error(`Cannot negate ${typeof arg}`);
246
+ case "ABS":
247
+ if (typeof arg === "number")
248
+ return Math.abs(arg);
249
+ if (typeof arg === "bigint")
250
+ return arg < 0n ? -arg : arg;
251
+ throw new Error(`Cannot take abs of ${typeof arg}`);
252
+ default:
253
+ throw new Error(`Unknown unary operator: ${op}`);
254
+ }
255
+ }
256
+ /**
257
+ * Evaluate synchronous function call
258
+ */
259
+ function evaluateCall(fn, args) {
260
+ switch (fn) {
261
+ case "min": {
262
+ const [a, b] = args;
263
+ if (typeof a === "number" && typeof b === "number")
264
+ return Math.min(a, b);
265
+ if (typeof a === "bigint" && typeof b === "bigint")
266
+ return a < b ? a : b;
267
+ throw new Error("min requires two numbers");
268
+ }
269
+ case "max": {
270
+ const [a, b] = args;
271
+ if (typeof a === "number" && typeof b === "number")
272
+ return Math.max(a, b);
273
+ if (typeof a === "bigint" && typeof b === "bigint")
274
+ return a > b ? a : b;
275
+ throw new Error("max requires two numbers");
276
+ }
277
+ case "abs": {
278
+ const [a] = args;
279
+ if (typeof a === "number")
280
+ return Math.abs(a);
281
+ if (typeof a === "bigint")
282
+ return a < 0n ? -a : a;
283
+ throw new Error("abs requires a number");
284
+ }
285
+ case "sum": {
286
+ const [arr] = args;
287
+ if (!Array.isArray(arr))
288
+ throw new Error("sum requires an array");
289
+ if (arr.length === 0)
290
+ return 0;
291
+ if (typeof arr[0] === "bigint") {
292
+ return arr.reduce((sum, v) => sum + v, 0n);
293
+ }
294
+ return arr.reduce((sum, v) => sum + v, 0);
295
+ }
296
+ case "avg": {
297
+ const [arr] = args;
298
+ if (!Array.isArray(arr))
299
+ throw new Error("avg requires an array");
300
+ if (arr.length === 0)
301
+ return 0;
302
+ const sum = arr.reduce((s, v) => s + v, 0);
303
+ return sum / arr.length;
304
+ }
305
+ // Async functions should not be called synchronously
306
+ case "balance":
307
+ case "price":
308
+ case "get_apy":
309
+ case "get_health_factor":
310
+ case "get_position":
311
+ case "get_debt":
312
+ throw new Error(`Function '${fn}' requires async evaluation`);
313
+ default:
314
+ throw new Error(`Unknown function: ${fn}`);
315
+ }
316
+ }
317
+ /**
318
+ * Evaluate async function call (blockchain queries)
319
+ */
320
+ async function evaluateCallAsync(fn, argExprs, ctx) {
321
+ // First evaluate all arguments
322
+ const args = await Promise.all(argExprs.map((a) => evaluateAsync(a, ctx)));
323
+ switch (fn) {
324
+ case "balance": {
325
+ if (!ctx.queryBalance) {
326
+ throw new Error("Balance queries not available in this context");
327
+ }
328
+ const [asset, address] = args;
329
+ return ctx.queryBalance(asset, address);
330
+ }
331
+ case "price": {
332
+ if (!ctx.queryPrice) {
333
+ throw new Error("Price queries not available in this context");
334
+ }
335
+ const [base, quote, source] = args;
336
+ return ctx.queryPrice(base, quote, source);
337
+ }
338
+ case "get_apy": {
339
+ if (!ctx.queryApy) {
340
+ throw new Error("APY queries not available in this context");
341
+ }
342
+ const [venue, asset] = args;
343
+ return ctx.queryApy(venue, asset);
344
+ }
345
+ case "get_health_factor": {
346
+ if (!ctx.queryHealthFactor) {
347
+ throw new Error("Health factor queries not available in this context");
348
+ }
349
+ const [venue] = args;
350
+ return ctx.queryHealthFactor(venue);
351
+ }
352
+ case "get_position": {
353
+ if (!ctx.queryPosition) {
354
+ throw new Error("Position queries not available in this context");
355
+ }
356
+ const [venue, asset] = args;
357
+ return ctx.queryPosition(venue, asset);
358
+ }
359
+ case "get_debt": {
360
+ if (!ctx.queryDebt) {
361
+ throw new Error("Debt queries not available in this context");
362
+ }
363
+ const [venue, asset] = args;
364
+ return ctx.queryDebt(venue, asset);
365
+ }
366
+ // Sync functions
367
+ case "min":
368
+ case "max":
369
+ case "abs":
370
+ case "sum":
371
+ case "avg":
372
+ return evaluateCall(fn, args);
373
+ default:
374
+ throw new Error(`Unknown function: ${fn}`);
375
+ }
376
+ }
377
+ /**
378
+ * Create an evaluation context from execution context
379
+ */
380
+ export function createEvalContext(execCtx) {
381
+ const params = new Map();
382
+ for (const param of execCtx.spell.params) {
383
+ params.set(param.name, execCtx.bindings.get(param.name) ?? param.default);
384
+ }
385
+ return {
386
+ params,
387
+ bindings: execCtx.bindings,
388
+ state: execCtx.state,
389
+ };
390
+ }
391
+ //# sourceMappingURL=expression-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../src/runtime/expression-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Runtime exports
3
+ */
4
+ export { execute, type ExecuteOptions } from "./interpreter.js";
5
+ export type { AdvisoryHandler, AdvisoryHandlerInput } from "./steps/advisory.js";
6
+ export { createContext, InMemoryLedger, setBinding, getBinding, setPersistentState, setEphemeralState, markStepExecuted, isStepExecuted, getPersistentStateObject, type CreateContextOptions, } from "./context.js";
7
+ export { evaluate, evaluateAsync, createEvalContext, type EvalValue, type EvalContext, } from "./expression-evaluator.js";
8
+ export { classifyError, matchesCatchBlock } from "./error-classifier.js";
9
+ export { CircuitBreakerManager, type BreakerState, type BreakerRecord, type TimestampedEvent, type CircuitBreakerCheckResult, type CircuitBreakerTriggerResult, } from "./circuit-breaker.js";
10
+ export { type StateStore, type RunRecord, type RunMetrics, createRunRecord, } from "./state-store.js";
11
+ export { SqliteStateStore, type SqliteStateStoreOptions } from "./sqlite-state-store.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Runtime exports
3
+ */
4
+ export { execute } from "./interpreter.js";
5
+ export { createContext, InMemoryLedger, setBinding, getBinding, setPersistentState, setEphemeralState, markStepExecuted, isStepExecuted, getPersistentStateObject, } from "./context.js";
6
+ export { evaluate, evaluateAsync, createEvalContext, } from "./expression-evaluator.js";
7
+ export { classifyError, matchesCatchBlock } from "./error-classifier.js";
8
+ export { CircuitBreakerManager, } from "./circuit-breaker.js";
9
+ export { createRunRecord, } from "./state-store.js";
10
+ export { SqliteStateStore } from "./sqlite-state-store.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAuB,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EACL,qBAAqB,GAMtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAgC,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Spell Interpreter
3
+ * Executes compiled SpellIR
4
+ */
5
+ import type { ExecutionResult } from "../types/execution.js";
6
+ import type { SpellIR } from "../types/ir.js";
7
+ import type { PolicySet } from "../types/policy.js";
8
+ import type { Address, ChainId } from "../types/primitives.js";
9
+ import type { VenueAdapter } from "../venues/types.js";
10
+ import { type ExecutionMode } from "../wallet/executor.js";
11
+ import { type Provider } from "../wallet/provider.js";
12
+ import type { Wallet } from "../wallet/types.js";
13
+ import { type AdvisoryHandler } from "./steps/advisory.js";
14
+ /**
15
+ * Options for executing a spell
16
+ */
17
+ export interface ExecuteOptions {
18
+ /** The compiled spell */
19
+ spell: SpellIR;
20
+ /** Vault address */
21
+ vault: Address;
22
+ /** Chain ID */
23
+ chain: ChainId;
24
+ /** Parameter overrides */
25
+ params?: Record<string, unknown>;
26
+ /** Initial persistent state */
27
+ persistentState?: Record<string, unknown>;
28
+ /** Simulation mode (no actual transactions) */
29
+ simulate?: boolean;
30
+ /** Execution mode override */
31
+ executionMode?: ExecutionMode;
32
+ /** Wallet for signing and sending transactions */
33
+ wallet?: Wallet;
34
+ /** Provider override (optional) */
35
+ provider?: Provider;
36
+ /** RPC URL override */
37
+ rpcUrl?: string;
38
+ /** Gas multiplier */
39
+ gasMultiplier?: number;
40
+ /** Skip confirmation for testnets */
41
+ skipTestnetConfirmation?: boolean;
42
+ /** Confirmation prompt callback */
43
+ confirmCallback?: (message: string) => Promise<boolean>;
44
+ /** Progress updates callback */
45
+ progressCallback?: (message: string) => void;
46
+ /** Venue adapters */
47
+ adapters?: VenueAdapter[];
48
+ /** Policy set with risk controls (circuit breakers, etc.) */
49
+ policy?: PolicySet;
50
+ /** Advisor skill search directories */
51
+ advisorSkillsDirs?: string[];
52
+ /** Optional advisory handler for agent execution */
53
+ onAdvisory?: AdvisoryHandler;
54
+ }
55
+ /**
56
+ * Execute a compiled spell
57
+ */
58
+ export declare function execute(options: ExecuteOptions): Promise<ExecutionResult>;
59
+ //# sourceMappingURL=interpreter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAoB,eAAe,EAAc,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAA+B,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAcjD,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,qBAAqB,CAAC;AAWhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe;IACf,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mCAAmC;IACnC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qBAAqB;IACrB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oDAAoD;IACpD,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAiL/E"}