@grimoirelabs/cli 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 (53) hide show
  1. package/dist/commands/advisor-skill-helpers.d.ts +2 -0
  2. package/dist/commands/advisor-skill-helpers.d.ts.map +1 -0
  3. package/dist/commands/advisor-skill-helpers.js +24 -0
  4. package/dist/commands/advisor-skill-helpers.js.map +1 -0
  5. package/dist/commands/cast.d.ts +26 -0
  6. package/dist/commands/cast.d.ts.map +1 -0
  7. package/dist/commands/cast.js +334 -0
  8. package/dist/commands/cast.js.map +1 -0
  9. package/dist/commands/compile-all.d.ts +11 -0
  10. package/dist/commands/compile-all.d.ts.map +1 -0
  11. package/dist/commands/compile-all.js +84 -0
  12. package/dist/commands/compile-all.js.map +1 -0
  13. package/dist/commands/compile.d.ts +11 -0
  14. package/dist/commands/compile.d.ts.map +1 -0
  15. package/dist/commands/compile.js +63 -0
  16. package/dist/commands/compile.js.map +1 -0
  17. package/dist/commands/history.d.ts +12 -0
  18. package/dist/commands/history.d.ts.map +1 -0
  19. package/dist/commands/history.js +68 -0
  20. package/dist/commands/history.js.map +1 -0
  21. package/dist/commands/init.d.ts +10 -0
  22. package/dist/commands/init.d.ts.map +1 -0
  23. package/dist/commands/init.js +174 -0
  24. package/dist/commands/init.js.map +1 -0
  25. package/dist/commands/log.d.ts +11 -0
  26. package/dist/commands/log.d.ts.map +1 -0
  27. package/dist/commands/log.js +95 -0
  28. package/dist/commands/log.js.map +1 -0
  29. package/dist/commands/simulate.d.ts +15 -0
  30. package/dist/commands/simulate.d.ts.map +1 -0
  31. package/dist/commands/simulate.js +110 -0
  32. package/dist/commands/simulate.js.map +1 -0
  33. package/dist/commands/state-helpers.d.ts +18 -0
  34. package/dist/commands/state-helpers.d.ts.map +1 -0
  35. package/dist/commands/state-helpers.js +34 -0
  36. package/dist/commands/state-helpers.js.map +1 -0
  37. package/dist/commands/validate.d.ts +10 -0
  38. package/dist/commands/validate.d.ts.map +1 -0
  39. package/dist/commands/validate.js +67 -0
  40. package/dist/commands/validate.js.map +1 -0
  41. package/dist/commands/venues.d.ts +10 -0
  42. package/dist/commands/venues.d.ts.map +1 -0
  43. package/dist/commands/venues.js +31 -0
  44. package/dist/commands/venues.js.map +1 -0
  45. package/dist/commands/wallet.d.ts +7 -0
  46. package/dist/commands/wallet.d.ts.map +1 -0
  47. package/dist/commands/wallet.js +437 -0
  48. package/dist/commands/wallet.js.map +1 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +105 -0
  52. package/dist/index.js.map +1 -0
  53. package/package.json +27 -0
@@ -0,0 +1,2 @@
1
+ export declare function resolveAdvisorSkillsDirs(input?: string | string[]): string[] | undefined;
2
+ //# sourceMappingURL=advisor-skill-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor-skill-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/advisor-skill-helpers.ts"],"names":[],"mappings":"AAaA,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAYxF"}
@@ -0,0 +1,24 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ function normalizeDirs(input) {
4
+ if (!input)
5
+ return [];
6
+ const raw = Array.isArray(input) ? input : [input];
7
+ return raw
8
+ .flatMap((entry) => entry.split(","))
9
+ .map((entry) => entry.trim())
10
+ .filter(Boolean)
11
+ .map((entry) => resolve(entry));
12
+ }
13
+ export function resolveAdvisorSkillsDirs(input) {
14
+ const dirs = normalizeDirs(input);
15
+ if (dirs.length > 0) {
16
+ return dirs;
17
+ }
18
+ const defaultDir = resolve(process.cwd(), "skills");
19
+ if (existsSync(defaultDir)) {
20
+ return [defaultDir];
21
+ }
22
+ return undefined;
23
+ }
24
+ //# sourceMappingURL=advisor-skill-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor-skill-helpers.js","sourceRoot":"","sources":["../../src/commands/advisor-skill-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,GAAG;SACP,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAyB;IAChE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Cast Command
3
+ * Executes a spell with optional live execution via private key
4
+ */
5
+ interface CastOptions {
6
+ params?: string;
7
+ vault?: string;
8
+ chain?: string;
9
+ dryRun?: boolean;
10
+ advisorSkillsDir?: string | string[];
11
+ privateKey?: string;
12
+ keyEnv?: string;
13
+ mnemonic?: string;
14
+ keystore?: string;
15
+ passwordEnv?: string;
16
+ rpcUrl?: string;
17
+ gasMultiplier?: string;
18
+ skipConfirm?: boolean;
19
+ verbose?: boolean;
20
+ json?: boolean;
21
+ stateDir?: string;
22
+ noState?: boolean;
23
+ }
24
+ export declare function castCommand(spellPath: string, options: CastOptions): Promise<void>;
25
+ export {};
26
+ //# sourceMappingURL=cast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../src/commands/cast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFxF"}
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Cast Command
3
+ * Executes a spell with optional live execution via private key
4
+ */
5
+ import { existsSync, readFileSync } from "node:fs";
6
+ import { homedir } from "node:os";
7
+ import { join } from "node:path";
8
+ import * as readline from "node:readline";
9
+ import { Writable } from "node:stream";
10
+ import { compileFile, createProvider, createWalletFromConfig, execute, formatWei, getChainName, getNativeCurrencySymbol, isTestnet, loadPrivateKey, } from "@grimoirelabs/core";
11
+ import { adapters, createHyperliquidAdapter } from "@grimoirelabs/venues";
12
+ import chalk from "chalk";
13
+ import ora from "ora";
14
+ import { resolveAdvisorSkillsDirs } from "./advisor-skill-helpers.js";
15
+ import { withStatePersistence } from "./state-helpers.js";
16
+ const DEFAULT_KEYSTORE_PATH = join(homedir(), ".grimoire", "keystore.json");
17
+ export async function castCommand(spellPath, options) {
18
+ const spinner = ora(`Loading ${spellPath}...`).start();
19
+ try {
20
+ // Parse params
21
+ let params = {};
22
+ if (options.params) {
23
+ try {
24
+ params = JSON.parse(options.params);
25
+ }
26
+ catch {
27
+ spinner.fail(chalk.red("Invalid params JSON"));
28
+ process.exit(1);
29
+ }
30
+ }
31
+ // Compile spell
32
+ spinner.text = "Compiling spell...";
33
+ const compileResult = await compileFile(spellPath);
34
+ if (!compileResult.success || !compileResult.ir) {
35
+ spinner.fail(chalk.red("Compilation failed"));
36
+ for (const error of compileResult.errors) {
37
+ console.log(chalk.red(` [${error.code}] ${error.message}`));
38
+ }
39
+ process.exit(1);
40
+ }
41
+ const spell = compileResult.ir;
42
+ spinner.succeed(chalk.green("Spell compiled successfully"));
43
+ // Determine execution mode
44
+ const hasExplicitKey = !!(options.privateKey || options.mnemonic || options.keystore);
45
+ const hasEnvKey = !!(options.keyEnv && process.env[options.keyEnv]);
46
+ const hasDefaultKeystore = !hasExplicitKey && !hasEnvKey && existsSync(DEFAULT_KEYSTORE_PATH);
47
+ const hasKey = hasExplicitKey || hasEnvKey || hasDefaultKeystore;
48
+ const mode = options.dryRun ? "dry-run" : hasKey ? "execute" : "simulate";
49
+ if (options.privateKey || options.mnemonic) {
50
+ console.log(chalk.yellow("⚠️ Avoid passing secrets via CLI arguments. Use --key-env or env vars instead."));
51
+ }
52
+ // Show spell info
53
+ console.log();
54
+ console.log(chalk.cyan("📜 Spell Info:"));
55
+ console.log(` ${chalk.dim("Name:")} ${spell.meta.name}`);
56
+ console.log(` ${chalk.dim("Version:")} ${spell.version}`);
57
+ console.log(` ${chalk.dim("Steps:")} ${spell.steps.length}`);
58
+ console.log(` ${chalk.dim("Mode:")} ${mode}`);
59
+ // Show params being used
60
+ if (spell.params.length > 0) {
61
+ console.log();
62
+ console.log(chalk.cyan("📊 Parameters:"));
63
+ for (const param of spell.params) {
64
+ const value = params[param.name] ?? param.default;
65
+ console.log(` ${chalk.dim(param.name)}: ${JSON.stringify(value)}`);
66
+ }
67
+ }
68
+ const chainId = Number.parseInt(options.chain ?? "1", 10);
69
+ const chainName = getChainName(chainId);
70
+ const isTest = isTestnet(chainId);
71
+ console.log();
72
+ console.log(chalk.cyan("🔗 Network:"));
73
+ console.log(` ${chalk.dim("Chain:")} ${chainName} (${chainId})`);
74
+ console.log(` ${chalk.dim("Testnet:")} ${isTest ? "Yes" : "No"}`);
75
+ // If we have a key, set up wallet execution
76
+ if (hasKey && mode !== "simulate") {
77
+ await executeWithWallet(spell, params, options, chainId, isTest);
78
+ }
79
+ else {
80
+ // Simulation mode (existing behavior)
81
+ await executeSimulation(spell, params, options, chainId);
82
+ }
83
+ }
84
+ catch (error) {
85
+ spinner.fail(chalk.red(`Cast failed: ${error.message}`));
86
+ if (options.verbose) {
87
+ console.error(error);
88
+ }
89
+ process.exit(1);
90
+ }
91
+ }
92
+ /**
93
+ * Execute spell with wallet (live execution)
94
+ */
95
+ async function executeWithWallet(spell, params, options, chainId, isTest) {
96
+ const spinner = ora("Setting up wallet...").start();
97
+ // Load wallet
98
+ let keyConfig;
99
+ if (options.privateKey) {
100
+ keyConfig = { type: "raw", source: options.privateKey };
101
+ }
102
+ else if (options.keyEnv && process.env[options.keyEnv]) {
103
+ keyConfig = { type: "env", source: options.keyEnv };
104
+ }
105
+ else if (options.mnemonic) {
106
+ keyConfig = { type: "mnemonic", source: options.mnemonic };
107
+ }
108
+ else {
109
+ // Resolve keystore: explicit --keystore or default path
110
+ const keystorePath = options.keystore ?? DEFAULT_KEYSTORE_PATH;
111
+ if (!existsSync(keystorePath)) {
112
+ spinner.fail(chalk.red(`No key provided and no keystore found at ${keystorePath}`));
113
+ console.log(chalk.dim(" Run 'grimoire wallet generate' to create one."));
114
+ process.exit(1);
115
+ return;
116
+ }
117
+ const password = await resolveKeystorePassword(options, spinner);
118
+ if (!password) {
119
+ return;
120
+ }
121
+ const keystoreJson = readFileSync(keystorePath, "utf-8");
122
+ keyConfig = { type: "keystore", source: keystoreJson, password };
123
+ }
124
+ // Wire Hyperliquid adapter with extracted private key
125
+ let configuredAdapters = adapters;
126
+ try {
127
+ const rawKey = loadPrivateKey(keyConfig);
128
+ configuredAdapters = adapters.map((a) => {
129
+ if (a.meta.name === "hyperliquid") {
130
+ return createHyperliquidAdapter({
131
+ privateKey: rawKey,
132
+ assetMap: { ETH: 4 },
133
+ });
134
+ }
135
+ return a;
136
+ });
137
+ }
138
+ catch {
139
+ // If key extraction fails (e.g. mnemonic), keep default adapters
140
+ }
141
+ // Get RPC URL
142
+ const rpcUrl = options.rpcUrl ?? process.env.RPC_URL;
143
+ if (!rpcUrl) {
144
+ spinner.warn(chalk.yellow("No RPC URL provided, using default public RPC"));
145
+ }
146
+ // Create provider and wallet
147
+ const provider = createProvider(chainId, rpcUrl);
148
+ const wallet = createWalletFromConfig(keyConfig, chainId, provider.rpcUrl);
149
+ spinner.succeed(chalk.green(`Wallet loaded: ${wallet.address}`));
150
+ // Check wallet balance
151
+ const balance = await provider.getBalance(wallet.address);
152
+ console.log(` ${chalk.dim("Balance:")} ${formatWei(balance)} ${getNativeCurrencySymbol(chainId)}`);
153
+ if (balance === 0n) {
154
+ console.log(chalk.yellow(` ⚠️ Wallet has no ${getNativeCurrencySymbol(chainId)} for gas`));
155
+ }
156
+ // Vault address (use wallet address if not provided)
157
+ const vault = (options.vault ?? wallet.address);
158
+ console.log(` ${chalk.dim("Vault:")} ${vault}`);
159
+ // Mainnet warning
160
+ if (!isTest) {
161
+ console.log();
162
+ console.log(chalk.red("⚠️ WARNING: This is MAINNET"));
163
+ console.log(chalk.red(" Real funds will be used!"));
164
+ }
165
+ const executionMode = options.dryRun ? "dry-run" : "execute";
166
+ const gasMultiplier = options.gasMultiplier ? Number.parseFloat(options.gasMultiplier) : 1.1;
167
+ const advisorSkillsDirs = resolveAdvisorSkillsDirs(options.advisorSkillsDir);
168
+ const confirmCallback = options.skipConfirm || isTest
169
+ ? async () => true
170
+ : async (message) => {
171
+ console.log(message);
172
+ return await confirmPrompt(chalk.yellow("Proceed? (yes/no): "));
173
+ };
174
+ console.log();
175
+ console.log(chalk.cyan(`🚀 Executing spell (${executionMode})...`));
176
+ const execResult = await withStatePersistence(spell.id, { stateDir: options.stateDir, noState: options.noState }, async (persistentState) => {
177
+ return execute({
178
+ spell,
179
+ vault,
180
+ chain: chainId,
181
+ params,
182
+ persistentState,
183
+ simulate: false,
184
+ executionMode,
185
+ wallet,
186
+ provider,
187
+ gasMultiplier,
188
+ confirmCallback,
189
+ progressCallback: (message) => {
190
+ console.log(chalk.dim(` ${message}`));
191
+ },
192
+ skipTestnetConfirmation: options.skipConfirm ?? false,
193
+ adapters: configuredAdapters,
194
+ advisorSkillsDirs,
195
+ });
196
+ });
197
+ if (execResult.success) {
198
+ console.log(chalk.green("Execution completed successfully"));
199
+ }
200
+ else {
201
+ console.log(chalk.red(`Execution failed: ${execResult.error}`));
202
+ }
203
+ // Show execution summary
204
+ console.log();
205
+ console.log(chalk.cyan("📊 Execution Summary:"));
206
+ console.log(` ${chalk.dim("Run ID:")} ${execResult.runId}`);
207
+ console.log(` ${chalk.dim("Duration:")} ${execResult.duration}ms`);
208
+ console.log(` ${chalk.dim("Steps executed:")} ${execResult.metrics.stepsExecuted}`);
209
+ console.log(` ${chalk.dim("Actions executed:")} ${execResult.metrics.actionsExecuted}`);
210
+ if (execResult.metrics.gasUsed > 0n) {
211
+ console.log(` ${chalk.dim("Gas used:")} ${execResult.metrics.gasUsed.toString()}`);
212
+ }
213
+ if (execResult.metrics.errors > 0) {
214
+ console.log(` ${chalk.red("Errors:")} ${execResult.metrics.errors}`);
215
+ }
216
+ showFinalState(execResult.finalState);
217
+ if (!execResult.success) {
218
+ process.exit(1);
219
+ }
220
+ }
221
+ /**
222
+ * Execute spell in simulation mode (no wallet)
223
+ */
224
+ async function executeSimulation(spell, params, options, chainId) {
225
+ const spinner = ora("Running simulation...").start();
226
+ const vault = (options.vault ?? "0x0000000000000000000000000000000000000000");
227
+ const advisorSkillsDirs = resolveAdvisorSkillsDirs(options.advisorSkillsDir);
228
+ const result = await withStatePersistence(spell.id, { stateDir: options.stateDir, noState: options.noState }, async (persistentState) => {
229
+ return execute({
230
+ spell,
231
+ vault,
232
+ chain: chainId,
233
+ params,
234
+ persistentState,
235
+ simulate: true,
236
+ adapters,
237
+ advisorSkillsDirs,
238
+ });
239
+ });
240
+ if (result.success) {
241
+ spinner.succeed(chalk.green("Simulation successful"));
242
+ }
243
+ else {
244
+ spinner.fail(chalk.red(`Simulation failed: ${result.error}`));
245
+ }
246
+ // Show execution summary
247
+ console.log();
248
+ console.log(chalk.cyan("📊 Execution Summary:"));
249
+ console.log(` ${chalk.dim("Run ID:")} ${result.runId}`);
250
+ console.log(` ${chalk.dim("Duration:")} ${result.duration}ms`);
251
+ console.log(` ${chalk.dim("Steps executed:")} ${result.metrics.stepsExecuted}`);
252
+ console.log(` ${chalk.dim("Actions executed:")} ${result.metrics.actionsExecuted}`);
253
+ if (result.metrics.gasUsed > 0n) {
254
+ console.log(` ${chalk.dim("Gas used:")} ${result.metrics.gasUsed.toString()}`);
255
+ }
256
+ if (result.metrics.errors > 0) {
257
+ console.log(` ${chalk.red("Errors:")} ${result.metrics.errors}`);
258
+ }
259
+ showFinalState(result.finalState);
260
+ if (!result.success) {
261
+ process.exit(1);
262
+ }
263
+ }
264
+ /**
265
+ * Show final state if any
266
+ */
267
+ function showFinalState(finalState) {
268
+ if (Object.keys(finalState).length > 0) {
269
+ console.log();
270
+ console.log(chalk.cyan("📦 Final State:"));
271
+ for (const [key, value] of Object.entries(finalState)) {
272
+ console.log(` ${chalk.dim(key)}: ${JSON.stringify(value)}`);
273
+ }
274
+ }
275
+ }
276
+ /**
277
+ * Resolve keystore password from env, interactive prompt, or error
278
+ */
279
+ async function resolveKeystorePassword(options, spinner) {
280
+ const envName = options.passwordEnv ?? "KEYSTORE_PASSWORD";
281
+ const envValue = process.env[envName];
282
+ if (envValue) {
283
+ return envValue;
284
+ }
285
+ if (process.stdin.isTTY) {
286
+ spinner.stop();
287
+ const password = await promptPassword("Keystore password: ");
288
+ spinner.start("Setting up wallet...");
289
+ return password;
290
+ }
291
+ spinner.fail(chalk.red(`No password available. Set ${envName} or run interactively.`));
292
+ process.exit(1);
293
+ return null;
294
+ }
295
+ /**
296
+ * Prompt for a password interactively (hides input)
297
+ */
298
+ async function promptPassword(message) {
299
+ return new Promise((resolve) => {
300
+ process.stdout.write(message);
301
+ const silentOutput = new Writable({
302
+ write(_chunk, _encoding, cb) {
303
+ cb();
304
+ },
305
+ });
306
+ const rl = readline.createInterface({
307
+ input: process.stdin,
308
+ output: silentOutput,
309
+ terminal: true,
310
+ });
311
+ rl.question("", (answer) => {
312
+ rl.close();
313
+ process.stdout.write("\n");
314
+ resolve(answer);
315
+ });
316
+ });
317
+ }
318
+ /**
319
+ * Prompt for confirmation
320
+ */
321
+ async function confirmPrompt(message) {
322
+ const rl = readline.createInterface({
323
+ input: process.stdin,
324
+ output: process.stdout,
325
+ });
326
+ return new Promise((resolve) => {
327
+ rl.question(message, (answer) => {
328
+ rl.close();
329
+ const normalized = answer.toLowerCase().trim();
330
+ resolve(normalized === "yes" || normalized === "y");
331
+ });
332
+ });
333
+ }
334
+ //# sourceMappingURL=cast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast.js","sourceRoot":"","sources":["../../src/commands/cast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Compile All Command
3
+ * Compiles all .spell files in a directory
4
+ */
5
+ interface CompileAllOptions {
6
+ failFast?: boolean;
7
+ json?: boolean;
8
+ }
9
+ export declare function compileAllCommand(directory: string | undefined, options: CompileAllOptions): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=compile-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-all.d.ts","sourceRoot":"","sources":["../../src/commands/compile-all.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AASD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAgEf"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Compile All Command
3
+ * Compiles all .spell files in a directory
4
+ */
5
+ import { readdir, stat } from "node:fs/promises";
6
+ import { join, relative, resolve } from "node:path";
7
+ import { compileFile } from "@grimoirelabs/core";
8
+ import chalk from "chalk";
9
+ export async function compileAllCommand(directory, options) {
10
+ const targetDir = resolve(directory ?? "spells");
11
+ const files = await collectSpellFiles(targetDir);
12
+ if (files.length === 0) {
13
+ console.log(chalk.yellow(`No .spell files found in ${targetDir}`));
14
+ process.exit(1);
15
+ }
16
+ const results = [];
17
+ let hasErrors = false;
18
+ for (const file of files) {
19
+ const result = await compileFile(file);
20
+ const summary = {
21
+ file: relative(process.cwd(), file),
22
+ success: result.success,
23
+ errors: result.errors.map((error) => ({
24
+ code: error.code,
25
+ message: error.message,
26
+ line: error.line,
27
+ })),
28
+ warnings: result.warnings.map((warning) => ({
29
+ code: warning.code,
30
+ message: warning.message,
31
+ line: warning.line,
32
+ })),
33
+ };
34
+ results.push(summary);
35
+ if (!options.json) {
36
+ if (summary.success) {
37
+ console.log(chalk.green(`✓ ${summary.file}`));
38
+ }
39
+ else {
40
+ console.log(chalk.red(`✗ ${summary.file}`));
41
+ }
42
+ for (const warning of summary.warnings) {
43
+ const lineInfo = warning.line !== undefined ? ` (line ${warning.line})` : "";
44
+ console.log(chalk.yellow(` [${warning.code}] ${warning.message}${lineInfo}`));
45
+ }
46
+ for (const error of summary.errors) {
47
+ const lineInfo = error.line !== undefined ? ` (line ${error.line})` : "";
48
+ console.log(chalk.red(` [${error.code}] ${error.message}${lineInfo}`));
49
+ }
50
+ }
51
+ if (!summary.success) {
52
+ hasErrors = true;
53
+ if (options.failFast) {
54
+ break;
55
+ }
56
+ }
57
+ }
58
+ if (options.json) {
59
+ console.log(JSON.stringify(results, null, 2));
60
+ }
61
+ if (hasErrors) {
62
+ process.exit(1);
63
+ }
64
+ }
65
+ async function collectSpellFiles(directory) {
66
+ const entries = await readdir(directory, { withFileTypes: true });
67
+ const files = [];
68
+ for (const entry of entries) {
69
+ const fullPath = join(directory, entry.name);
70
+ if (entry.isDirectory()) {
71
+ const nested = await collectSpellFiles(fullPath);
72
+ files.push(...nested);
73
+ continue;
74
+ }
75
+ if (entry.isFile() && entry.name.endsWith(".spell")) {
76
+ const info = await stat(fullPath);
77
+ if (info.isFile()) {
78
+ files.push(fullPath);
79
+ }
80
+ }
81
+ }
82
+ return files.sort();
83
+ }
84
+ //# sourceMappingURL=compile-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-all.js","sourceRoot":"","sources":["../../src/commands/compile-all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Compile Command
3
+ * Compiles a .spell file to IR
4
+ */
5
+ interface CompileOptions {
6
+ output?: string;
7
+ pretty?: boolean;
8
+ }
9
+ export declare function compileCommand(spellPath: string, options: CompileOptions): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD9F"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Compile Command
3
+ * Compiles a .spell file to IR
4
+ */
5
+ import { writeFile } from "node:fs/promises";
6
+ import { compileFile } from "@grimoirelabs/core";
7
+ import chalk from "chalk";
8
+ import ora from "ora";
9
+ export async function compileCommand(spellPath, options) {
10
+ const spinner = ora(`Compiling ${spellPath}...`).start();
11
+ try {
12
+ const result = await compileFile(spellPath);
13
+ // Report warnings
14
+ for (const warning of result.warnings) {
15
+ spinner.warn(chalk.yellow(`Warning [${warning.code}]: ${warning.message}`));
16
+ }
17
+ // Report errors
18
+ if (!result.success || !result.ir) {
19
+ spinner.fail(chalk.red("Compilation failed"));
20
+ for (const error of result.errors) {
21
+ console.log(chalk.red(` Error [${error.code}]: ${error.message}`));
22
+ }
23
+ process.exit(1);
24
+ }
25
+ spinner.succeed(chalk.green("Compilation successful"));
26
+ // Output IR
27
+ const irJson = options.pretty
28
+ ? JSON.stringify(result.ir, bigintReplacer, 2)
29
+ : JSON.stringify(result.ir, bigintReplacer);
30
+ if (options.output) {
31
+ await writeFile(options.output, irJson, "utf8");
32
+ console.log(chalk.dim(`IR written to ${options.output}`));
33
+ }
34
+ else {
35
+ console.log();
36
+ console.log(irJson);
37
+ }
38
+ // Summary
39
+ console.log();
40
+ console.log(chalk.dim("Summary:"));
41
+ console.log(chalk.dim(` Spell: ${result.ir.meta.name}`));
42
+ console.log(chalk.dim(` Version: ${result.ir.version}`));
43
+ console.log(chalk.dim(` Steps: ${result.ir.steps.length}`));
44
+ console.log(chalk.dim(` Guards: ${result.ir.guards.length}`));
45
+ console.log(chalk.dim(` Venues: ${result.ir.aliases.length}`));
46
+ console.log(chalk.dim(` Assets: ${result.ir.assets.length}`));
47
+ console.log(chalk.dim(` Params: ${result.ir.params.length}`));
48
+ }
49
+ catch (error) {
50
+ spinner.fail(chalk.red(`Failed to compile: ${error.message}`));
51
+ process.exit(1);
52
+ }
53
+ }
54
+ /**
55
+ * JSON replacer for bigint values
56
+ */
57
+ function bigintReplacer(_key, value) {
58
+ if (typeof value === "bigint") {
59
+ return value.toString();
60
+ }
61
+ return value;
62
+ }
63
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * History Command
3
+ * View execution history for spells
4
+ */
5
+ interface HistoryOptions {
6
+ limit?: string;
7
+ json?: boolean;
8
+ stateDir?: string;
9
+ }
10
+ export declare function historyCommand(spellId: string | undefined, options: HistoryOptions): Promise<void>;
11
+ export {};
12
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAqEf"}