@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,187 @@
1
+ /**
2
+ * Intermediate Representation (IR) for compiled spells
3
+ */
4
+ import type { Expression } from "./expressions.js";
5
+ import type { Address, AssetDef, ParamDef, StateField, Timestamp, Trigger, VenueAlias } from "./primitives.js";
6
+ import type { Step } from "./steps.js";
7
+ /** Advisor definition */
8
+ export interface AdvisorDef {
9
+ name: string;
10
+ model: string;
11
+ scope: "read-only";
12
+ systemPrompt?: string;
13
+ skills?: string[];
14
+ allowedTools?: string[];
15
+ mcp?: string[];
16
+ defaultTimeout?: number;
17
+ defaultFallback?: boolean;
18
+ rateLimit?: {
19
+ maxCallsPerRun: number;
20
+ maxCallsPerHour: number;
21
+ };
22
+ }
23
+ /** Skill (capability module) definition */
24
+ export interface SkillDef {
25
+ name: string;
26
+ type: "swap" | "yield" | "lending" | "staking" | "bridge";
27
+ adapters: string[];
28
+ defaultConstraints?: {
29
+ maxSlippage?: number;
30
+ };
31
+ }
32
+ /** Guard (invariant) definition */
33
+ export interface Guard {
34
+ id: string;
35
+ check: Expression;
36
+ severity: "warn" | "revert" | "halt";
37
+ message: string;
38
+ }
39
+ /** Advisory guard (AI-evaluated) */
40
+ export interface AdvisoryGuard {
41
+ id: string;
42
+ advisor: string;
43
+ check: string;
44
+ severity: "warn" | "pause";
45
+ fallback: boolean;
46
+ }
47
+ /** Combined guard type */
48
+ export type GuardDef = Guard | AdvisoryGuard;
49
+ /** State schema */
50
+ export interface StateSchema {
51
+ persistent: Record<string, StateField>;
52
+ ephemeral: Record<string, StateField>;
53
+ }
54
+ /**
55
+ * The complete Spell IR structure
56
+ */
57
+ export interface SpellIR {
58
+ /** Unique identifier */
59
+ id: string;
60
+ /** Semantic version */
61
+ version: string;
62
+ /** Metadata */
63
+ meta: {
64
+ name: string;
65
+ description?: string;
66
+ author?: Address;
67
+ created: Timestamp;
68
+ hash: string;
69
+ };
70
+ /** Venue alias definitions */
71
+ aliases: VenueAlias[];
72
+ /** Asset definitions */
73
+ assets: AssetDef[];
74
+ /** Capability modules */
75
+ skills: SkillDef[];
76
+ /** AI advisors */
77
+ advisors: AdvisorDef[];
78
+ /** Parameters */
79
+ params: ParamDef[];
80
+ /** State schema */
81
+ state: StateSchema;
82
+ /** Execution graph (steps) */
83
+ steps: Step[];
84
+ /** Invariants (guards) */
85
+ guards: GuardDef[];
86
+ /** Triggers */
87
+ triggers: Trigger[];
88
+ /** Source map: step ID -> source location in the .spell file */
89
+ sourceMap?: Record<string, {
90
+ line: number;
91
+ column: number;
92
+ }>;
93
+ }
94
+ /**
95
+ * Raw spell source (parsed YAML, pre-IR)
96
+ */
97
+ export interface SpellSource {
98
+ spell: string;
99
+ version: string;
100
+ description?: string;
101
+ venues?: Record<string, {
102
+ chain: number;
103
+ address: string;
104
+ label?: string;
105
+ }>;
106
+ params?: Record<string, unknown | {
107
+ type?: "number" | "bool" | "address" | "asset" | "string" | "amount" | "bps" | "duration";
108
+ asset?: string;
109
+ default?: unknown;
110
+ min?: number;
111
+ max?: number;
112
+ }>;
113
+ assets?: Record<string, {
114
+ chain: number;
115
+ address: string;
116
+ decimals?: number;
117
+ }>;
118
+ state?: {
119
+ persistent?: Record<string, unknown>;
120
+ ephemeral?: Record<string, unknown>;
121
+ };
122
+ skills?: Record<string, {
123
+ type: string;
124
+ adapters: string[];
125
+ default_constraints?: {
126
+ max_slippage?: number;
127
+ };
128
+ }>;
129
+ advisors?: Record<string, {
130
+ model: string;
131
+ scope?: string;
132
+ system_prompt?: string;
133
+ skills?: string[];
134
+ allowed_tools?: string[];
135
+ mcp?: string[];
136
+ timeout?: number;
137
+ fallback?: boolean;
138
+ rate_limit?: {
139
+ max_per_run?: number;
140
+ max_per_hour?: number;
141
+ };
142
+ }>;
143
+ trigger?: {
144
+ manual: true;
145
+ } | {
146
+ schedule: string;
147
+ } | {
148
+ condition: string;
149
+ poll_interval: number;
150
+ } | {
151
+ event: string;
152
+ filter?: string;
153
+ } | {
154
+ any: Array<Record<string, unknown>>;
155
+ };
156
+ steps?: Array<Record<string, unknown>>;
157
+ guards?: Array<{
158
+ id: string;
159
+ check?: string;
160
+ advisory?: string;
161
+ severity: string;
162
+ message?: string;
163
+ fallback?: boolean;
164
+ }>;
165
+ }
166
+ /**
167
+ * Compilation result
168
+ */
169
+ export interface CompilationResult {
170
+ success: boolean;
171
+ ir?: SpellIR;
172
+ errors: CompilationError[];
173
+ warnings: CompilationWarning[];
174
+ }
175
+ export interface CompilationError {
176
+ code: string;
177
+ message: string;
178
+ line?: number;
179
+ column?: number;
180
+ }
181
+ export interface CompilationWarning {
182
+ code: string;
183
+ message: string;
184
+ line?: number;
185
+ column?: number;
186
+ }
187
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Intermediate Representation (IR) for compiled spells
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=ir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Policy types for risk controls
3
+ */
4
+ import type { Address, AssetId, BasisPoints, ChainId } from "./primitives.js";
5
+ /**
6
+ * Policy set for controlling strategy execution
7
+ */
8
+ export interface PolicySet {
9
+ id: string;
10
+ version: string;
11
+ owner: Address;
12
+ /** Venue access controls */
13
+ venueRules: {
14
+ allowedAliases?: string[];
15
+ deniedAliases?: string[];
16
+ allowedAddresses?: Array<{
17
+ chain: ChainId;
18
+ address: Address;
19
+ }>;
20
+ deniedAddresses?: Array<{
21
+ chain: ChainId;
22
+ address: Address;
23
+ }>;
24
+ allowedChains?: ChainId[];
25
+ };
26
+ /** Asset access controls */
27
+ assetRules: {
28
+ allowedAssets?: AssetId[];
29
+ deniedAssets?: AssetId[];
30
+ };
31
+ /** Exposure limits */
32
+ exposureLimits: ExposureLimit[];
33
+ /** Slippage constraints */
34
+ slippageLimit: {
35
+ maxBps: BasisPoints;
36
+ perAsset?: Record<AssetId, BasisPoints>;
37
+ };
38
+ /** Leverage constraints */
39
+ leverageLimit?: {
40
+ maxGross: number;
41
+ maxNet: number;
42
+ };
43
+ /** Minimum liquidity to maintain */
44
+ liquidityFloor?: {
45
+ asset: AssetId;
46
+ minAbsolute?: bigint;
47
+ minPercentNAV?: number;
48
+ };
49
+ /** Gas limits */
50
+ gasLimit?: {
51
+ maxPerAction: bigint;
52
+ maxPerRun: bigint;
53
+ };
54
+ /** Time-based trading windows */
55
+ timeWindows?: Array<{
56
+ start: string;
57
+ end: string;
58
+ days?: number[];
59
+ }>;
60
+ /** Approval thresholds */
61
+ approvalThresholds?: Array<{
62
+ condition: "amount_above" | "exposure_above" | "new_venue" | "new_asset";
63
+ threshold?: bigint | number;
64
+ approvers: Address[];
65
+ requiredCount: number;
66
+ }>;
67
+ /** Circuit breakers */
68
+ circuitBreakers: CircuitBreaker[];
69
+ /** Emergency unwind procedure */
70
+ unwindRecipe?: {
71
+ priority: AssetId[];
72
+ targetAsset: AssetId;
73
+ maxSlippageBps: BasisPoints;
74
+ maxDuration: number;
75
+ };
76
+ }
77
+ /** Exposure limit definition */
78
+ export interface ExposureLimit {
79
+ scope: "asset" | "venue" | "chain";
80
+ target: string;
81
+ maxAbsolute?: bigint;
82
+ maxPercentNAV?: number;
83
+ }
84
+ /** Circuit breaker triggers */
85
+ export type CircuitBreakerTrigger = {
86
+ type: "oracle_deviation";
87
+ maxBps: BasisPoints;
88
+ window: number;
89
+ } | {
90
+ type: "cumulative_slippage";
91
+ maxBps: BasisPoints;
92
+ window: number;
93
+ } | {
94
+ type: "revert_rate";
95
+ maxPercent: number;
96
+ window: number;
97
+ } | {
98
+ type: "gas_spike";
99
+ maxMultiple: number;
100
+ } | {
101
+ type: "nav_drawdown";
102
+ maxBps: BasisPoints;
103
+ window: number;
104
+ };
105
+ /** Circuit breaker definition */
106
+ export interface CircuitBreaker {
107
+ id: string;
108
+ trigger: CircuitBreakerTrigger;
109
+ action: "pause" | "unwind" | "alert";
110
+ cooldown?: number;
111
+ }
112
+ /** Result of policy check */
113
+ export interface PolicyCheckResult {
114
+ allowed: boolean;
115
+ violations: string[];
116
+ warnings: string[];
117
+ }
118
+ /** Exposure calculation result */
119
+ export interface ExposureResult {
120
+ absolute: bigint;
121
+ percentNAV: number;
122
+ }
123
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Policy types for risk controls
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Primitive types used throughout Grimoire
3
+ */
4
+ /** EIP-155 chain ID */
5
+ export type ChainId = number;
6
+ /** 0x-prefixed Ethereum address (40 hex chars) */
7
+ export type Address = `0x${string}`;
8
+ /** Asset identifier - symbol or chain:address */
9
+ export type AssetId = string;
10
+ /** Unix timestamp in milliseconds */
11
+ export type Timestamp = number;
12
+ /** Basis points (1 = 0.01%) */
13
+ export type BasisPoints = number;
14
+ /** Hex-encoded data */
15
+ export type HexString = `0x${string}`;
16
+ /** Amount with asset context */
17
+ export interface Amount {
18
+ asset: AssetId;
19
+ value: bigint;
20
+ decimals: number;
21
+ }
22
+ /** Venue alias definition */
23
+ export interface VenueAlias {
24
+ alias: string;
25
+ chain: ChainId;
26
+ address: Address;
27
+ label?: string;
28
+ }
29
+ /** Asset definition */
30
+ export interface AssetDef {
31
+ symbol: string;
32
+ chain: ChainId;
33
+ address: Address;
34
+ decimals?: number;
35
+ }
36
+ /** Parameter definition */
37
+ export interface ParamDef {
38
+ name: string;
39
+ type: "number" | "bool" | "address" | "asset" | "string" | "amount" | "bps" | "duration";
40
+ asset?: string;
41
+ default?: unknown;
42
+ min?: number;
43
+ max?: number;
44
+ }
45
+ /** State field definition */
46
+ export interface StateField {
47
+ key: string;
48
+ initialValue: unknown;
49
+ }
50
+ /** Trigger definition */
51
+ export type Trigger = {
52
+ type: "manual";
53
+ } | {
54
+ type: "schedule";
55
+ cron: string;
56
+ } | {
57
+ type: "condition";
58
+ expression: string;
59
+ pollInterval: number;
60
+ } | {
61
+ type: "event";
62
+ event: string;
63
+ filter?: string;
64
+ } | {
65
+ type: "any";
66
+ triggers: Trigger[];
67
+ };
68
+ /** Wallet mode for execution */
69
+ export type WalletMode = "read-only" | "approval-required" | "limited";
70
+ /** Common chains */
71
+ export declare const CHAINS: {
72
+ readonly ETHEREUM: 1;
73
+ readonly ARBITRUM: 42161;
74
+ readonly BASE: 8453;
75
+ };
76
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uBAAuB;AACvB,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC;AAEpC,iDAAiD;AACjD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG,KAAK,MAAM,EAAE,CAAC;AAEtC,gCAAgC;AAChC,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6BAA6B;AAC7B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uBAAuB;AACvB,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2BAA2B;AAC3B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,6BAA6B;AAC7B,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,yBAAyB;AACzB,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC;AAEzC,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAEvE,oBAAoB;AACpB,eAAO,MAAM,MAAM;;;;CAIT,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Primitive types used throughout Grimoire
3
+ */
4
+ /** Common chains */
5
+ export const CHAINS = {
6
+ ETHEREUM: 1,
7
+ ARBITRUM: 42161,
8
+ BASE: 8453,
9
+ };
10
+ //# sourceMappingURL=primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsEH,oBAAoB;AACpB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,IAAI;CACF,CAAC"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Step types for the execution graph
3
+ */
4
+ import type { Action, ActionConstraints } from "./actions.js";
5
+ import type { Expression } from "./expressions.js";
6
+ /** All step types */
7
+ export type Step = ComputeStep | ActionStep | ConditionalStep | LoopStep | ParallelStep | PipelineStep | TryStep | AdvisoryStep | WaitStep | EmitStep | HaltStep;
8
+ /** Step kind discriminator */
9
+ export type StepKind = Step["kind"];
10
+ /** On failure behavior */
11
+ export type OnFailure = "revert" | "skip" | "halt" | "catch";
12
+ /** Compute step - evaluate expressions and store in bindings */
13
+ export interface ComputeStep {
14
+ kind: "compute";
15
+ id: string;
16
+ assignments: Array<{
17
+ variable: string;
18
+ expression: Expression;
19
+ }>;
20
+ dependsOn: string[];
21
+ }
22
+ /** Action step - execute a DeFi action */
23
+ export interface ActionStep {
24
+ kind: "action";
25
+ id: string;
26
+ skill?: string;
27
+ action: Action;
28
+ constraints: ActionConstraints;
29
+ outputBinding?: string;
30
+ dependsOn: string[];
31
+ onFailure: OnFailure;
32
+ }
33
+ /** Conditional step - if/then/else branching */
34
+ export interface ConditionalStep {
35
+ kind: "conditional";
36
+ id: string;
37
+ condition: Expression;
38
+ thenSteps: string[];
39
+ elseSteps: string[];
40
+ dependsOn: string[];
41
+ }
42
+ /** Loop type variants */
43
+ export type LoopType = {
44
+ type: "repeat";
45
+ count: number;
46
+ } | {
47
+ type: "for";
48
+ variable: string;
49
+ source: Expression;
50
+ } | {
51
+ type: "until";
52
+ condition: Expression;
53
+ };
54
+ /** Loop step - repeat execution */
55
+ export interface LoopStep {
56
+ kind: "loop";
57
+ id: string;
58
+ loopType: LoopType;
59
+ bodySteps: string[];
60
+ maxIterations: number;
61
+ parallel?: boolean;
62
+ outputBinding?: string;
63
+ dependsOn: string[];
64
+ }
65
+ /** Join strategy for parallel execution */
66
+ export type JoinStrategy = {
67
+ type: "all";
68
+ } | {
69
+ type: "first";
70
+ } | {
71
+ type: "best";
72
+ metric: Expression;
73
+ order: "max" | "min";
74
+ } | {
75
+ type: "any";
76
+ count: number;
77
+ } | {
78
+ type: "majority";
79
+ };
80
+ /** Branch definition */
81
+ export interface Branch {
82
+ id: string;
83
+ name: string;
84
+ steps: string[];
85
+ }
86
+ /** Parallel step - concurrent execution */
87
+ export interface ParallelStep {
88
+ kind: "parallel";
89
+ id: string;
90
+ branches: Branch[];
91
+ join: JoinStrategy;
92
+ onFail: "abort" | "continue";
93
+ timeout?: number;
94
+ outputBinding?: string;
95
+ dependsOn: string[];
96
+ }
97
+ /** Pipeline stage operations */
98
+ export type PipelineStage = {
99
+ op: "where";
100
+ predicate: Expression;
101
+ } | {
102
+ op: "map";
103
+ step: string;
104
+ } | {
105
+ op: "filter";
106
+ step: string;
107
+ } | {
108
+ op: "reduce";
109
+ step: string;
110
+ initial: Expression;
111
+ } | {
112
+ op: "take";
113
+ count: number;
114
+ } | {
115
+ op: "skip";
116
+ count: number;
117
+ } | {
118
+ op: "sort";
119
+ by: Expression;
120
+ order: "asc" | "desc";
121
+ };
122
+ /** Pipeline step - functional data processing */
123
+ export interface PipelineStep {
124
+ kind: "pipeline";
125
+ id: string;
126
+ source: Expression;
127
+ stages: PipelineStage[];
128
+ parallel?: boolean;
129
+ parallelConfig?: {
130
+ maxConcurrency?: number;
131
+ onFail: "abort" | "continue";
132
+ };
133
+ outputBinding?: string;
134
+ dependsOn: string[];
135
+ }
136
+ /** Error types that can be caught */
137
+ export type ErrorType = "slippage_exceeded" | "insufficient_liquidity" | "insufficient_balance" | "venue_unavailable" | "deadline_exceeded" | "simulation_failed" | "policy_violation" | "guard_failed" | "tx_reverted" | "gas_exceeded";
138
+ /** Catch block definition */
139
+ export interface CatchBlock {
140
+ errorType: ErrorType | "*";
141
+ steps?: string[];
142
+ retry?: {
143
+ maxAttempts: number;
144
+ backoff: "none" | "linear" | "exponential";
145
+ backoffBase?: number;
146
+ maxBackoff?: number;
147
+ modifyOnRetry?: {
148
+ slippage?: {
149
+ increase: number;
150
+ };
151
+ venue?: string;
152
+ };
153
+ };
154
+ action?: "skip" | "rollback" | "halt";
155
+ alert?: {
156
+ channels: string[];
157
+ severity: "info" | "warn" | "critical";
158
+ };
159
+ }
160
+ /** Try/catch step - error handling */
161
+ export interface TryStep {
162
+ kind: "try";
163
+ id: string;
164
+ trySteps: string[];
165
+ catchBlocks: CatchBlock[];
166
+ finallySteps?: string[];
167
+ dependsOn: string[];
168
+ }
169
+ /** Output schema for advisory */
170
+ export type AdvisoryOutputSchema = {
171
+ type: "boolean";
172
+ } | {
173
+ type: "number";
174
+ min?: number;
175
+ max?: number;
176
+ } | {
177
+ type: "enum";
178
+ values?: string[];
179
+ } | {
180
+ type: "string";
181
+ minLength?: number;
182
+ maxLength?: number;
183
+ pattern?: string;
184
+ } | {
185
+ type: "object";
186
+ fields?: Record<string, AdvisoryOutputSchema>;
187
+ } | {
188
+ type: "array";
189
+ items?: AdvisoryOutputSchema;
190
+ };
191
+ /** Advisory step - AI consultation (read-only) */
192
+ export interface AdvisoryStep {
193
+ kind: "advisory";
194
+ id: string;
195
+ advisor: string;
196
+ prompt: string;
197
+ context?: Record<string, Expression>;
198
+ outputSchema: AdvisoryOutputSchema;
199
+ outputBinding: string;
200
+ timeout: number;
201
+ fallback: Expression;
202
+ dependsOn: string[];
203
+ }
204
+ /** Wait step - pause execution */
205
+ export interface WaitStep {
206
+ kind: "wait";
207
+ id: string;
208
+ duration: number;
209
+ dependsOn: string[];
210
+ }
211
+ /** Emit step - record event */
212
+ export interface EmitStep {
213
+ kind: "emit";
214
+ id: string;
215
+ event: string;
216
+ data: Record<string, Expression>;
217
+ dependsOn: string[];
218
+ }
219
+ /** Halt step - stop execution */
220
+ export interface HaltStep {
221
+ kind: "halt";
222
+ id: string;
223
+ reason: string;
224
+ dependsOn: string[];
225
+ }
226
+ //# sourceMappingURL=steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/types/steps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Step types for the execution graph
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=steps.js.map