@grimoirelabs/cli 0.1.0 → 0.2.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.
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +67 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/venue.d.ts +9 -0
- package/dist/commands/venue.d.ts.map +1 -0
- package/dist/commands/venue.js +97 -0
- package/dist/commands/venue.js.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -3
package/dist/commands/init.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAoKD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -123,6 +123,46 @@ guards:
|
|
|
123
123
|
severity: halt
|
|
124
124
|
message: "Insufficient USDC balance"
|
|
125
125
|
`;
|
|
126
|
+
const VM_QUICKSTART_SPELL = `# VM quickstart: snapshot-driven compute spell
|
|
127
|
+
|
|
128
|
+
spell VmQuickstart
|
|
129
|
+
|
|
130
|
+
description: "Compute a spread from a Morpho vault snapshot"
|
|
131
|
+
|
|
132
|
+
# Replace this params block with output from:
|
|
133
|
+
# grimoire venue morpho-blue vaults --chain 8453 --asset USDC --min-tvl 5000000 --format spell
|
|
134
|
+
params:
|
|
135
|
+
snapshot_at: ""
|
|
136
|
+
snapshot_source: ""
|
|
137
|
+
vault_names: []
|
|
138
|
+
vault_addresses: []
|
|
139
|
+
vault_net_apys: []
|
|
140
|
+
vault_tvl_usd: []
|
|
141
|
+
|
|
142
|
+
on manual:
|
|
143
|
+
best_apy = max(params.vault_net_apys)
|
|
144
|
+
avg_apy = avg(params.vault_net_apys)
|
|
145
|
+
spread = best_apy - avg_apy
|
|
146
|
+
|
|
147
|
+
emit vault_snapshot_summary(
|
|
148
|
+
snapshot_at=params.snapshot_at,
|
|
149
|
+
best_apy=best_apy,
|
|
150
|
+
avg_apy=avg_apy,
|
|
151
|
+
spread=spread
|
|
152
|
+
)
|
|
153
|
+
`;
|
|
154
|
+
const VM_QUICKSTART_README = `# VM quickstart (snapshot-driven)
|
|
155
|
+
|
|
156
|
+
1) Generate a snapshot:
|
|
157
|
+
|
|
158
|
+
grimoire venue morpho-blue vaults --chain 8453 --asset USDC --min-tvl 5000000 --format spell
|
|
159
|
+
|
|
160
|
+
2) Paste the output into spell.spell (replace the params block).
|
|
161
|
+
|
|
162
|
+
3) Run in the VM:
|
|
163
|
+
|
|
164
|
+
Run .grimoire/spells/vm-quickstart/spell.spell in the Grimoire VM with trigger manual. Use defaults and no side effects.
|
|
165
|
+
`;
|
|
126
166
|
export async function initCommand(options) {
|
|
127
167
|
const spinner = ora("Initializing Grimoire...").start();
|
|
128
168
|
const baseDir = ".grimoire";
|
|
@@ -151,20 +191,40 @@ export async function initCommand(options) {
|
|
|
151
191
|
await writeFile(join(baseDir, "config.yaml"), DEFAULT_CONFIG, "utf8");
|
|
152
192
|
// Write default aliases
|
|
153
193
|
await writeFile(join(baseDir, "aliases", "default.yaml"), DEFAULT_ALIASES, "utf8");
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
194
|
+
if (options.vm) {
|
|
195
|
+
await mkdir(join(baseDir, "spells", "vm-quickstart"), { recursive: true });
|
|
196
|
+
await writeFile(join(baseDir, "spells", "vm-quickstart", "spell.spell"), VM_QUICKSTART_SPELL, "utf8");
|
|
197
|
+
await writeFile(join(baseDir, "spells", "vm-quickstart", "README.md"), VM_QUICKSTART_README, "utf8");
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// Write example spell
|
|
201
|
+
await mkdir(join(baseDir, "spells", "example-swap"), { recursive: true });
|
|
202
|
+
await writeFile(join(baseDir, "spells", "example-swap", "spell.spell"), EXAMPLE_SPELL, "utf8");
|
|
203
|
+
}
|
|
157
204
|
spinner.succeed(chalk.green("Grimoire initialized successfully!"));
|
|
158
205
|
console.log();
|
|
159
206
|
console.log(chalk.dim("Created:"));
|
|
160
207
|
console.log(chalk.dim(` ${baseDir}/config.yaml`));
|
|
161
208
|
console.log(chalk.dim(` ${baseDir}/aliases/default.yaml`));
|
|
162
|
-
|
|
209
|
+
if (options.vm) {
|
|
210
|
+
console.log(chalk.dim(` ${baseDir}/spells/vm-quickstart/spell.spell`));
|
|
211
|
+
console.log(chalk.dim(` ${baseDir}/spells/vm-quickstart/README.md`));
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
console.log(chalk.dim(` ${baseDir}/spells/example-swap/spell.spell`));
|
|
215
|
+
}
|
|
163
216
|
console.log();
|
|
164
217
|
console.log(chalk.cyan("Next steps:"));
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
218
|
+
if (options.vm) {
|
|
219
|
+
console.log(chalk.white(" 1. Run: grimoire venue morpho-blue vaults --chain 8453 --asset USDC --min-tvl 5000000 --format spell"));
|
|
220
|
+
console.log(chalk.white(" 2. Paste the params block into .grimoire/spells/vm-quickstart/spell.spell"));
|
|
221
|
+
console.log(chalk.white(" 3. Run in VM: spells/vm-quickstart/spell.spell (trigger manual, no side effects)"));
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
console.log(chalk.white(" 1. Edit your spell in .grimoire/spells/example-swap/spell.spell"));
|
|
225
|
+
console.log(chalk.white(" 2. Run: grimoire validate .grimoire/spells/example-swap/spell.spell"));
|
|
226
|
+
console.log(chalk.white(" 3. Run: grimoire simulate .grimoire/spells/example-swap/spell.spell"));
|
|
227
|
+
}
|
|
168
228
|
}
|
|
169
229
|
catch (error) {
|
|
170
230
|
spinner.fail(chalk.red(`Failed to initialize: ${error.message}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Venue Command
|
|
3
|
+
* Proxies venue metadata CLIs bundled in @grimoirelabs/venues
|
|
4
|
+
*/
|
|
5
|
+
export declare const VENUE_CLI_MAP: Record<string, string>;
|
|
6
|
+
export declare function normalizeAdapter(adapter: string): string;
|
|
7
|
+
export declare function resolveVenueCliPath(cliName: string): string;
|
|
8
|
+
export declare function venueCommand(adapter: string, args?: string[]): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=venue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venue.d.ts","sourceRoot":"","sources":["../../src/commands/venue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAShD,CAAC;AASF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG3D;AA2BD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Venue Command
|
|
3
|
+
* Proxies venue metadata CLIs bundled in @grimoirelabs/venues
|
|
4
|
+
*/
|
|
5
|
+
import { spawnSync } from "node:child_process";
|
|
6
|
+
import { existsSync } from "node:fs";
|
|
7
|
+
import { createRequire } from "node:module";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import { fileURLToPath } from "node:url";
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
11
|
+
export const VENUE_CLI_MAP = {
|
|
12
|
+
aave: "aave",
|
|
13
|
+
"aave-v3": "aave",
|
|
14
|
+
uniswap: "uniswap",
|
|
15
|
+
"uniswap-v3": "uniswap",
|
|
16
|
+
"uniswap-v4": "uniswap",
|
|
17
|
+
"morpho-blue": "morpho-blue",
|
|
18
|
+
morpho: "morpho-blue",
|
|
19
|
+
hyperliquid: "hyperliquid",
|
|
20
|
+
};
|
|
21
|
+
const PRIMARY_ADAPTERS = [
|
|
22
|
+
{ name: "aave", aliases: ["aave-v3"] },
|
|
23
|
+
{ name: "uniswap", aliases: ["uniswap-v3", "uniswap-v4"] },
|
|
24
|
+
{ name: "morpho-blue", aliases: ["morpho"] },
|
|
25
|
+
{ name: "hyperliquid", aliases: [] },
|
|
26
|
+
];
|
|
27
|
+
export function normalizeAdapter(adapter) {
|
|
28
|
+
return adapter
|
|
29
|
+
.toLowerCase()
|
|
30
|
+
.replace(/^grimoire-/, "")
|
|
31
|
+
.replace(/_/g, "-");
|
|
32
|
+
}
|
|
33
|
+
export function resolveVenueCliPath(cliName) {
|
|
34
|
+
const venuesRoot = resolveVenuesRoot();
|
|
35
|
+
return path.join(venuesRoot, "dist", "cli", `${cliName}.js`);
|
|
36
|
+
}
|
|
37
|
+
function resolveVenuesRoot() {
|
|
38
|
+
try {
|
|
39
|
+
const venuesPkg = require.resolve("@grimoirelabs/venues/package.json");
|
|
40
|
+
return path.dirname(venuesPkg);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
const workspaceRoot = findWorkspaceVenuesRoot();
|
|
44
|
+
if (workspaceRoot)
|
|
45
|
+
return workspaceRoot;
|
|
46
|
+
throw new Error("Unable to resolve @grimoirelabs/venues. Is it installed?");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function findWorkspaceVenuesRoot() {
|
|
50
|
+
let current = path.dirname(fileURLToPath(import.meta.url));
|
|
51
|
+
for (let i = 0; i < 6; i++) {
|
|
52
|
+
const candidate = path.join(current, "packages", "venues", "package.json");
|
|
53
|
+
if (existsSync(candidate)) {
|
|
54
|
+
return path.dirname(candidate);
|
|
55
|
+
}
|
|
56
|
+
const parent = path.dirname(current);
|
|
57
|
+
if (parent === current)
|
|
58
|
+
break;
|
|
59
|
+
current = parent;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
export async function venueCommand(adapter, args = []) {
|
|
64
|
+
if (!adapter || adapter === "--help" || adapter === "-h") {
|
|
65
|
+
printUsage();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const normalized = normalizeAdapter(adapter);
|
|
69
|
+
const cliName = VENUE_CLI_MAP[normalized];
|
|
70
|
+
if (!cliName) {
|
|
71
|
+
const options = PRIMARY_ADAPTERS.map((adapter) => adapter.name).join(", ");
|
|
72
|
+
console.error(`Unknown venue adapter "${adapter}". Available: ${options}`);
|
|
73
|
+
console.error("Run `grimoire venue --help` or `grimoire venues` for a full list.");
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
const cliPath = resolveVenueCliPath(cliName);
|
|
77
|
+
if (!existsSync(cliPath)) {
|
|
78
|
+
console.error(`Venue CLI not found at ${cliPath}. Build @grimoirelabs/venues or reinstall @grimoirelabs/cli.`);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
const result = spawnSync(process.execPath, [cliPath, ...args], { stdio: "inherit" });
|
|
82
|
+
if (result.error) {
|
|
83
|
+
console.error(result.error instanceof Error ? result.error.message : String(result.error));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
const exitCode = result.status ?? (result.signal ? 1 : 0);
|
|
87
|
+
process.exit(exitCode);
|
|
88
|
+
}
|
|
89
|
+
function printUsage() {
|
|
90
|
+
const adapterLines = PRIMARY_ADAPTERS.map((adapter) => {
|
|
91
|
+
if (adapter.aliases.length === 0)
|
|
92
|
+
return ` - ${adapter.name}`;
|
|
93
|
+
return ` - ${adapter.name} (aliases: ${adapter.aliases.join(", ")})`;
|
|
94
|
+
}).join("\n");
|
|
95
|
+
console.log(`\nUsage:\n grimoire venue <adapter> [args...]\n\nAdapters:\n${adapterLines}\n\nExamples:\n grimoire venue morpho-blue vaults --chain 8453 --asset USDC --min-tvl 5000000 --format spell\n grimoire venue uniswap tokens --chain 1 --symbol USDC\n grimoire venue aave markets --chain 1\n`);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=venue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venue.js","sourceRoot":"","sources":["../../src/commands/venue.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,9 +12,11 @@ import { initCommand } from "./commands/init.js";
|
|
|
12
12
|
import { logCommand } from "./commands/log.js";
|
|
13
13
|
import { simulateCommand } from "./commands/simulate.js";
|
|
14
14
|
import { validateCommand } from "./commands/validate.js";
|
|
15
|
+
import { venueCommand } from "./commands/venue.js";
|
|
15
16
|
import { venuesCommand } from "./commands/venues.js";
|
|
16
17
|
import { walletCommand } from "./commands/wallet.js";
|
|
17
18
|
const program = new Command();
|
|
19
|
+
program.enablePositionalOptions();
|
|
18
20
|
program
|
|
19
21
|
.name("grimoire")
|
|
20
22
|
.description("A Portable Execution Language for Onchain Strategies")
|
|
@@ -24,6 +26,7 @@ program
|
|
|
24
26
|
.command("init")
|
|
25
27
|
.description("Initialize a new .grimoire directory")
|
|
26
28
|
.option("-f, --force", "Overwrite existing files")
|
|
29
|
+
.option("--vm", "Create a VM quickstart scaffold")
|
|
27
30
|
.action(initCommand);
|
|
28
31
|
// Compile command
|
|
29
32
|
program
|
|
@@ -83,6 +86,14 @@ program
|
|
|
83
86
|
.description("List available venue adapters")
|
|
84
87
|
.option("--json", "Output results as JSON")
|
|
85
88
|
.action(venuesCommand);
|
|
89
|
+
// Venue metadata command (proxy)
|
|
90
|
+
program
|
|
91
|
+
.command("venue [adapter] [args...]")
|
|
92
|
+
.description("Run venue metadata commands (proxy to @grimoirelabs/venues CLIs)")
|
|
93
|
+
.allowUnknownOption(true)
|
|
94
|
+
.passThroughOptions()
|
|
95
|
+
.helpOption(false)
|
|
96
|
+
.action((adapter, args) => venueCommand(adapter, args));
|
|
86
97
|
// History command
|
|
87
98
|
program
|
|
88
99
|
.command("history [spell]")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grimoirelabs/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "CLI for Grimoire spell execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"grimoire": "
|
|
9
|
+
"grimoire": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/franalgaba/grimoire",
|
|
14
|
+
"directory": "packages/cli"
|
|
10
15
|
},
|
|
11
16
|
"scripts": {
|
|
12
17
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -15,7 +20,7 @@
|
|
|
15
20
|
},
|
|
16
21
|
"dependencies": {
|
|
17
22
|
"@grimoirelabs/core": "0.1.0",
|
|
18
|
-
"@grimoirelabs/venues": "0.
|
|
23
|
+
"@grimoirelabs/venues": "0.2.0",
|
|
19
24
|
"chalk": "^5.3.0",
|
|
20
25
|
"commander": "^12.1.0",
|
|
21
26
|
"ora": "^8.1.0"
|