@grimoirelabs/cli 0.3.0 → 0.5.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.
@@ -27,6 +27,12 @@ interface CastOptions {
27
27
  json?: boolean;
28
28
  stateDir?: string;
29
29
  noState?: boolean;
30
+ dataReplay?: string;
31
+ dataMaxAge?: string;
32
+ onStale?: string;
33
+ ensName?: string;
34
+ ensRpcUrl?: string;
35
+ state?: boolean;
30
36
  }
31
37
  export declare function castCommand(spellPath: string, options: CastOptions): Promise<void>;
32
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../src/commands/cast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgCH,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;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,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"}
1
+ {"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../src/commands/cast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2CH,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;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,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;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+HxF"}
@@ -11,14 +11,16 @@ import { compileFile, createProvider, createWalletFromConfig, execute, formatWei
11
11
  import { adapters, createHyperliquidAdapter } from "@grimoirelabs/venues";
12
12
  import chalk from "chalk";
13
13
  import ora from "ora";
14
+ import { hydrateParamsFromEnsProfile, resolveEnsProfile } from "../lib/ens-profile.js";
14
15
  import { resolveAdvisorSkillsDirs } from "./advisor-skill-helpers.js";
15
16
  import { resolveAdvisoryHandler } from "./advisory-handlers.js";
17
+ import { buildRuntimeProvenanceManifest, enforceFreshnessPolicy, resolveDataPolicy, resolveReplayParams, } from "./data-provenance.js";
18
+ import { buildRunReportEnvelope, formatRunReportText } from "./run-report.js";
16
19
  import { withStatePersistence } from "./state-helpers.js";
17
20
  const DEFAULT_KEYSTORE_PATH = join(homedir(), ".grimoire", "keystore.json");
18
21
  export async function castCommand(spellPath, options) {
19
22
  const spinner = ora(`Loading ${spellPath}...`).start();
20
23
  try {
21
- // Parse params
22
24
  let params = {};
23
25
  if (options.params) {
24
26
  try {
@@ -29,7 +31,12 @@ export async function castCommand(spellPath, options) {
29
31
  process.exit(1);
30
32
  }
31
33
  }
32
- // Compile spell
34
+ if (options.ensName) {
35
+ spinner.text = `Resolving ENS profile ${options.ensName}...`;
36
+ const profile = await resolveEnsProfile(options.ensName, { rpcUrl: options.ensRpcUrl });
37
+ params = hydrateParamsFromEnsProfile(params, profile);
38
+ console.log(chalk.dim(`ENS profile ${profile.name} -> ${profile.address ?? "unresolved"} (risk=${profile.riskProfile ?? "n/a"}, slippage=${profile.maxSlippageBps ?? "n/a"})`));
39
+ }
33
40
  spinner.text = "Compiling spell...";
34
41
  const compileResult = await compileFile(spellPath);
35
42
  if (!compileResult.success || !compileResult.ir) {
@@ -41,23 +48,36 @@ export async function castCommand(spellPath, options) {
41
48
  }
42
49
  const spell = compileResult.ir;
43
50
  spinner.succeed(chalk.green("Spell compiled successfully"));
44
- // Determine execution mode
51
+ const noState = resolveNoState(options);
45
52
  const hasExplicitKey = !!(options.privateKey || options.mnemonic || options.keystore);
46
53
  const hasEnvKey = !!(options.keyEnv && process.env[options.keyEnv]);
47
54
  const hasDefaultKeystore = !hasExplicitKey && !hasEnvKey && existsSync(DEFAULT_KEYSTORE_PATH);
48
55
  const hasKey = hasExplicitKey || hasEnvKey || hasDefaultKeystore;
49
56
  const mode = options.dryRun ? "dry-run" : hasKey ? "execute" : "simulate";
57
+ const defaultReplay = mode === "execute" ? "off" : "auto";
58
+ const dataPolicy = resolveDataPolicy({
59
+ defaultReplay,
60
+ dataReplay: options.dataReplay,
61
+ dataMaxAge: options.dataMaxAge,
62
+ onStale: options.onStale,
63
+ });
64
+ const replayResolution = await resolveReplayParams({
65
+ spellId: spell.id,
66
+ params,
67
+ stateDir: options.stateDir,
68
+ noState,
69
+ policy: dataPolicy,
70
+ });
71
+ params = replayResolution.params;
50
72
  if (options.privateKey || options.mnemonic) {
51
73
  console.log(chalk.yellow("⚠️ Avoid passing secrets via CLI arguments. Use --key-env or env vars instead."));
52
74
  }
53
- // Show spell info
54
75
  console.log();
55
76
  console.log(chalk.cyan("📜 Spell Info:"));
56
77
  console.log(` ${chalk.dim("Name:")} ${spell.meta.name}`);
57
78
  console.log(` ${chalk.dim("Version:")} ${spell.version}`);
58
79
  console.log(` ${chalk.dim("Steps:")} ${spell.steps.length}`);
59
80
  console.log(` ${chalk.dim("Mode:")} ${mode}`);
60
- // Show params being used
61
81
  if (spell.params.length > 0) {
62
82
  console.log();
63
83
  console.log(chalk.cyan("📊 Parameters:"));
@@ -73,13 +93,12 @@ export async function castCommand(spellPath, options) {
73
93
  console.log(chalk.cyan("🔗 Network:"));
74
94
  console.log(` ${chalk.dim("Chain:")} ${chainName} (${chainId})`);
75
95
  console.log(` ${chalk.dim("Testnet:")} ${isTest ? "Yes" : "No"}`);
76
- // If we have a key, set up wallet execution
77
96
  if (hasKey && mode !== "simulate") {
78
- await executeWithWallet(spell, params, options, chainId, isTest);
97
+ await executeWithWallet(spell, params, options, noState, chainId, isTest, dataPolicy, replayResolution);
79
98
  }
80
99
  else {
81
- // Simulation mode (existing behavior)
82
- await executeSimulation(spell, params, options, chainId);
100
+ const runtimeFlow = mode === "dry-run" ? "cast_dry_run" : "simulate";
101
+ await executeSimulation(spell, params, options, noState, chainId, runtimeFlow, dataPolicy, replayResolution);
83
102
  }
84
103
  }
85
104
  catch (error) {
@@ -90,12 +109,8 @@ export async function castCommand(spellPath, options) {
90
109
  process.exit(1);
91
110
  }
92
111
  }
93
- /**
94
- * Execute spell with wallet (live execution)
95
- */
96
- async function executeWithWallet(spell, params, options, chainId, isTest) {
112
+ async function executeWithWallet(spell, params, options, noState, chainId, isTest, dataPolicy, replayResolution) {
97
113
  const spinner = ora("Setting up wallet...").start();
98
- // Load wallet
99
114
  let keyConfig;
100
115
  if (options.privateKey) {
101
116
  keyConfig = { type: "raw", source: options.privateKey };
@@ -107,7 +122,6 @@ async function executeWithWallet(spell, params, options, chainId, isTest) {
107
122
  keyConfig = { type: "mnemonic", source: options.mnemonic };
108
123
  }
109
124
  else {
110
- // Resolve keystore: explicit --keystore or default path
111
125
  const keystorePath = options.keystore ?? DEFAULT_KEYSTORE_PATH;
112
126
  if (!existsSync(keystorePath)) {
113
127
  spinner.fail(chalk.red(`No key provided and no keystore found at ${keystorePath}`));
@@ -122,48 +136,43 @@ async function executeWithWallet(spell, params, options, chainId, isTest) {
122
136
  const keystoreJson = readFileSync(keystorePath, "utf-8");
123
137
  keyConfig = { type: "keystore", source: keystoreJson, password };
124
138
  }
125
- // Wire Hyperliquid adapter with extracted private key
126
139
  let configuredAdapters = adapters;
127
140
  try {
128
141
  const rawKey = loadPrivateKey(keyConfig);
129
- configuredAdapters = adapters.map((a) => {
130
- if (a.meta.name === "hyperliquid") {
142
+ configuredAdapters = adapters.map((adapter) => {
143
+ if (adapter.meta.name === "hyperliquid") {
131
144
  return createHyperliquidAdapter({
132
145
  privateKey: rawKey,
133
146
  assetMap: { ETH: 4 },
134
147
  });
135
148
  }
136
- return a;
149
+ return adapter;
137
150
  });
138
151
  }
139
152
  catch {
140
- // If key extraction fails (e.g. mnemonic), keep default adapters
153
+ // Keep default adapters if key extraction fails.
141
154
  }
142
- // Get RPC URL
143
155
  const rpcUrl = options.rpcUrl ?? process.env.RPC_URL;
144
156
  if (!rpcUrl) {
145
157
  spinner.warn(chalk.yellow("No RPC URL provided, using default public RPC"));
146
158
  }
147
- // Create provider and wallet
148
159
  const provider = createProvider(chainId, rpcUrl);
149
160
  const wallet = createWalletFromConfig(keyConfig, chainId, provider.rpcUrl);
150
161
  spinner.succeed(chalk.green(`Wallet loaded: ${wallet.address}`));
151
- // Check wallet balance
152
162
  const balance = await provider.getBalance(wallet.address);
153
163
  console.log(` ${chalk.dim("Balance:")} ${formatWei(balance)} ${getNativeCurrencySymbol(chainId)}`);
154
164
  if (balance === 0n) {
155
165
  console.log(chalk.yellow(` ⚠️ Wallet has no ${getNativeCurrencySymbol(chainId)} for gas`));
156
166
  }
157
- // Vault address (use wallet address if not provided)
158
167
  const vault = (options.vault ?? wallet.address);
159
168
  console.log(` ${chalk.dim("Vault:")} ${vault}`);
160
- // Mainnet warning
161
169
  if (!isTest) {
162
170
  console.log();
163
171
  console.log(chalk.red("⚠️ WARNING: This is MAINNET"));
164
172
  console.log(chalk.red(" Real funds will be used!"));
165
173
  }
166
174
  const executionMode = options.dryRun ? "dry-run" : "execute";
175
+ const runtimeMode = executionMode === "dry-run" ? "cast_dry_run" : "cast_execute";
167
176
  const gasMultiplier = options.gasMultiplier ? Number.parseFloat(options.gasMultiplier) : 1.1;
168
177
  const advisorSkillsDirs = resolveAdvisorSkillsDirs(options.advisorSkillsDir) ?? [];
169
178
  const onAdvisory = await resolveAdvisoryHandler(spell.id, {
@@ -175,10 +184,23 @@ async function executeWithWallet(spell, params, options, chainId, isTest) {
175
184
  advisoryTools: options.advisoryTools,
176
185
  advisorSkillsDirs,
177
186
  stateDir: options.stateDir,
178
- noState: options.noState,
187
+ noState,
179
188
  agentDir: options.piAgentDir,
180
189
  cwd: process.cwd(),
181
190
  });
191
+ const provenance = buildRuntimeProvenanceManifest({
192
+ runtimeMode,
193
+ chainId,
194
+ policy: dataPolicy,
195
+ replay: replayResolution,
196
+ params,
197
+ blockNumber: await safeGetBlockNumber(provider),
198
+ rpcUrl: provider.rpcUrl,
199
+ });
200
+ const freshnessWarnings = enforceFreshnessPolicy(provenance);
201
+ for (const warning of freshnessWarnings) {
202
+ console.log(chalk.yellow(`Warning: ${warning}`));
203
+ }
182
204
  const confirmCallback = options.skipConfirm || isTest
183
205
  ? async () => true
184
206
  : async (message) => {
@@ -187,7 +209,11 @@ async function executeWithWallet(spell, params, options, chainId, isTest) {
187
209
  };
188
210
  console.log();
189
211
  console.log(chalk.cyan(`🚀 Executing spell (${executionMode})...`));
190
- const execResult = await withStatePersistence(spell.id, { stateDir: options.stateDir, noState: options.noState }, async (persistentState) => {
212
+ const execResult = await withStatePersistence(spell.id, {
213
+ stateDir: options.stateDir,
214
+ noState,
215
+ buildRunProvenance: () => provenance,
216
+ }, async (persistentState) => {
191
217
  return execute({
192
218
  spell,
193
219
  vault,
@@ -215,29 +241,35 @@ async function executeWithWallet(spell, params, options, chainId, isTest) {
215
241
  else {
216
242
  console.log(chalk.red(`Execution failed: ${execResult.error}`));
217
243
  }
218
- // Show execution summary
244
+ const report = buildRunReportEnvelope({
245
+ spellName: spell.meta.name,
246
+ result: execResult,
247
+ provenance,
248
+ });
219
249
  console.log();
220
- console.log(chalk.cyan("📊 Execution Summary:"));
221
- console.log(` ${chalk.dim("Run ID:")} ${execResult.runId}`);
222
- console.log(` ${chalk.dim("Duration:")} ${execResult.duration}ms`);
223
- console.log(` ${chalk.dim("Steps executed:")} ${execResult.metrics.stepsExecuted}`);
224
- console.log(` ${chalk.dim("Actions executed:")} ${execResult.metrics.actionsExecuted}`);
225
- if (execResult.metrics.gasUsed > 0n) {
226
- console.log(` ${chalk.dim("Gas used:")} ${execResult.metrics.gasUsed.toString()}`);
250
+ if (options.json) {
251
+ console.log(JSON.stringify(report, null, 2));
227
252
  }
228
- if (execResult.metrics.errors > 0) {
229
- console.log(` ${chalk.red("Errors:")} ${execResult.metrics.errors}`);
253
+ else {
254
+ console.log(formatRunReportText(report));
230
255
  }
231
- showFinalState(execResult.finalState);
232
256
  if (!execResult.success) {
233
257
  process.exit(1);
234
258
  }
235
259
  }
236
- /**
237
- * Execute spell in simulation mode (no wallet)
238
- */
239
- async function executeSimulation(spell, params, options, chainId) {
260
+ async function executeSimulation(spell, params, options, noState, chainId, runtimeMode, dataPolicy, replayResolution) {
240
261
  const spinner = ora("Running simulation...").start();
262
+ const provenance = buildRuntimeProvenanceManifest({
263
+ runtimeMode,
264
+ chainId,
265
+ policy: dataPolicy,
266
+ replay: replayResolution,
267
+ params,
268
+ });
269
+ const freshnessWarnings = enforceFreshnessPolicy(provenance);
270
+ for (const warning of freshnessWarnings) {
271
+ console.log(chalk.yellow(`Warning: ${warning}`));
272
+ }
241
273
  const vault = (options.vault ?? "0x0000000000000000000000000000000000000000");
242
274
  const advisorSkillsDirs = resolveAdvisorSkillsDirs(options.advisorSkillsDir) ?? [];
243
275
  const onAdvisory = await resolveAdvisoryHandler(spell.id, {
@@ -249,11 +281,15 @@ async function executeSimulation(spell, params, options, chainId) {
249
281
  advisoryTools: options.advisoryTools,
250
282
  advisorSkillsDirs,
251
283
  stateDir: options.stateDir,
252
- noState: options.noState,
284
+ noState,
253
285
  agentDir: options.piAgentDir,
254
286
  cwd: process.cwd(),
255
287
  });
256
- const result = await withStatePersistence(spell.id, { stateDir: options.stateDir, noState: options.noState }, async (persistentState) => {
288
+ const result = await withStatePersistence(spell.id, {
289
+ stateDir: options.stateDir,
290
+ noState,
291
+ buildRunProvenance: () => provenance,
292
+ }, async (persistentState) => {
257
293
  return execute({
258
294
  spell,
259
295
  vault,
@@ -272,39 +308,30 @@ async function executeSimulation(spell, params, options, chainId) {
272
308
  else {
273
309
  spinner.fail(chalk.red(`Simulation failed: ${result.error}`));
274
310
  }
275
- // Show execution summary
311
+ const report = buildRunReportEnvelope({
312
+ spellName: spell.meta.name,
313
+ result,
314
+ provenance,
315
+ });
276
316
  console.log();
277
- console.log(chalk.cyan("📊 Execution Summary:"));
278
- console.log(` ${chalk.dim("Run ID:")} ${result.runId}`);
279
- console.log(` ${chalk.dim("Duration:")} ${result.duration}ms`);
280
- console.log(` ${chalk.dim("Steps executed:")} ${result.metrics.stepsExecuted}`);
281
- console.log(` ${chalk.dim("Actions executed:")} ${result.metrics.actionsExecuted}`);
282
- if (result.metrics.gasUsed > 0n) {
283
- console.log(` ${chalk.dim("Gas used:")} ${result.metrics.gasUsed.toString()}`);
317
+ if (options.json) {
318
+ console.log(JSON.stringify(report, null, 2));
284
319
  }
285
- if (result.metrics.errors > 0) {
286
- console.log(` ${chalk.red("Errors:")} ${result.metrics.errors}`);
320
+ else {
321
+ console.log(formatRunReportText(report));
287
322
  }
288
- showFinalState(result.finalState);
289
323
  if (!result.success) {
290
324
  process.exit(1);
291
325
  }
292
326
  }
293
- /**
294
- * Show final state if any
295
- */
296
- function showFinalState(finalState) {
297
- if (Object.keys(finalState).length > 0) {
298
- console.log();
299
- console.log(chalk.cyan("📦 Final State:"));
300
- for (const [key, value] of Object.entries(finalState)) {
301
- console.log(` ${chalk.dim(key)}: ${JSON.stringify(value)}`);
302
- }
327
+ async function safeGetBlockNumber(provider) {
328
+ try {
329
+ return await provider.getBlockNumber();
330
+ }
331
+ catch {
332
+ return undefined;
303
333
  }
304
334
  }
305
- /**
306
- * Resolve keystore password from env, interactive prompt, or error
307
- */
308
335
  async function resolveKeystorePassword(options, spinner) {
309
336
  const envName = options.passwordEnv ?? "KEYSTORE_PASSWORD";
310
337
  const envValue = process.env[envName];
@@ -321,9 +348,6 @@ async function resolveKeystorePassword(options, spinner) {
321
348
  process.exit(1);
322
349
  return null;
323
350
  }
324
- /**
325
- * Prompt for a password interactively (hides input)
326
- */
327
351
  async function promptPassword(message) {
328
352
  return new Promise((resolve) => {
329
353
  process.stdout.write(message);
@@ -344,9 +368,6 @@ async function promptPassword(message) {
344
368
  });
345
369
  });
346
370
  }
347
- /**
348
- * Prompt for confirmation
349
- */
350
371
  async function confirmPrompt(message) {
351
372
  const rl = readline.createInterface({
352
373
  input: process.stdin,
@@ -360,4 +381,11 @@ async function confirmPrompt(message) {
360
381
  });
361
382
  });
362
383
  }
384
+ function resolveNoState(options) {
385
+ if (typeof options.noState === "boolean")
386
+ return options.noState;
387
+ if (options.state === false)
388
+ return true;
389
+ return false;
390
+ }
363
391
  //# sourceMappingURL=cast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cast.js","sourceRoot":"","sources":["../../src/commands/cast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cast.js","sourceRoot":"","sources":["../../src/commands/cast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ export type OnStalePolicy = "fail" | "warn";
2
+ export type RuntimeFlow = "simulate" | "cast_dry_run" | "cast_execute";
3
+ type ReplayMode = "off" | "auto" | "explicit";
4
+ interface DataPolicyInput {
5
+ defaultReplay: "off" | "auto";
6
+ dataReplay?: string;
7
+ dataMaxAge?: string;
8
+ onStale?: string;
9
+ }
10
+ export interface RuntimeDataPolicy {
11
+ replayMode: ReplayMode;
12
+ replayKey?: string;
13
+ dataMaxAgeSec: number;
14
+ onStale: OnStalePolicy;
15
+ }
16
+ export interface ReplayResolution {
17
+ params: Record<string, unknown>;
18
+ replayUsed: boolean;
19
+ replayMatchType?: "run_id" | "snapshot_id";
20
+ replaySourceRunId?: string;
21
+ replaySourceSnapshotId?: string;
22
+ }
23
+ export interface RuntimeDataSource {
24
+ path: string;
25
+ snapshot_id?: string;
26
+ snapshot_at: string;
27
+ snapshot_age_sec: number;
28
+ snapshot_source?: string;
29
+ venue?: string;
30
+ dataset?: string;
31
+ chain_id?: number;
32
+ asset?: string;
33
+ filters?: Record<string, unknown>;
34
+ units?: Record<string, string>;
35
+ source_hash?: string;
36
+ status?: string;
37
+ record_count?: number;
38
+ warnings: string[];
39
+ stale: boolean;
40
+ }
41
+ export interface RuntimeProvenanceManifest {
42
+ schema_version: "grimoire.runtime.provenance.v1";
43
+ generated_at: string;
44
+ runtime_mode: RuntimeFlow;
45
+ chain_id: number;
46
+ block_number?: string;
47
+ rpc_url?: string;
48
+ data_replay: ReplayMode;
49
+ data_replay_key?: string;
50
+ data_replay_resolved_run_id?: string;
51
+ data_replay_resolved_snapshot_id?: string;
52
+ data_max_age_sec: number;
53
+ on_stale: OnStalePolicy;
54
+ input_params_hash: string;
55
+ snapshot_hash?: string;
56
+ unit_map: Record<string, string>;
57
+ source_count: number;
58
+ stale_source_count: number;
59
+ selection_policy: string;
60
+ fallback_used: "none";
61
+ rejected_count: number;
62
+ sources: RuntimeDataSource[];
63
+ resolved_params: Record<string, unknown>;
64
+ }
65
+ export declare function resolveDataPolicy(input: DataPolicyInput): RuntimeDataPolicy;
66
+ export declare function resolveReplayParams(options: {
67
+ spellId: string;
68
+ params: Record<string, unknown>;
69
+ stateDir?: string;
70
+ noState?: boolean;
71
+ policy: RuntimeDataPolicy;
72
+ }): Promise<ReplayResolution>;
73
+ export declare function buildRuntimeProvenanceManifest(input: {
74
+ runtimeMode: RuntimeFlow;
75
+ chainId: number;
76
+ policy: RuntimeDataPolicy;
77
+ replay: ReplayResolution;
78
+ params: Record<string, unknown>;
79
+ blockNumber?: bigint;
80
+ rpcUrl?: string;
81
+ now?: Date;
82
+ }): RuntimeProvenanceManifest;
83
+ export declare function enforceFreshnessPolicy(manifest: RuntimeProvenanceManifest): string[];
84
+ export {};
85
+ //# sourceMappingURL=data-provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-provenance.d.ts","sourceRoot":"","sources":["../../src/commands/data-provenance.ts"],"names":[],"mappings":"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"}