agent-media-cli 1.0.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 (139) hide show
  1. package/LICENSE +199 -0
  2. package/README.md +59 -0
  3. package/dist/commands/alias.d.ts +3 -0
  4. package/dist/commands/alias.d.ts.map +1 -0
  5. package/dist/commands/alias.js +245 -0
  6. package/dist/commands/alias.js.map +1 -0
  7. package/dist/commands/apikey.d.ts +3 -0
  8. package/dist/commands/apikey.d.ts.map +1 -0
  9. package/dist/commands/apikey.js +282 -0
  10. package/dist/commands/apikey.js.map +1 -0
  11. package/dist/commands/cancel.d.ts +9 -0
  12. package/dist/commands/cancel.d.ts.map +1 -0
  13. package/dist/commands/cancel.js +101 -0
  14. package/dist/commands/cancel.js.map +1 -0
  15. package/dist/commands/completions.d.ts +15 -0
  16. package/dist/commands/completions.d.ts.map +1 -0
  17. package/dist/commands/completions.js +293 -0
  18. package/dist/commands/completions.js.map +1 -0
  19. package/dist/commands/config.d.ts +3 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js +327 -0
  22. package/dist/commands/config.js.map +1 -0
  23. package/dist/commands/credits.d.ts +18 -0
  24. package/dist/commands/credits.d.ts.map +1 -0
  25. package/dist/commands/credits.js +459 -0
  26. package/dist/commands/credits.js.map +1 -0
  27. package/dist/commands/debug.d.ts +20 -0
  28. package/dist/commands/debug.d.ts.map +1 -0
  29. package/dist/commands/debug.js +291 -0
  30. package/dist/commands/debug.js.map +1 -0
  31. package/dist/commands/delete.d.ts +3 -0
  32. package/dist/commands/delete.d.ts.map +1 -0
  33. package/dist/commands/delete.js +273 -0
  34. package/dist/commands/delete.js.map +1 -0
  35. package/dist/commands/doctor.d.ts +14 -0
  36. package/dist/commands/doctor.d.ts.map +1 -0
  37. package/dist/commands/doctor.js +468 -0
  38. package/dist/commands/doctor.js.map +1 -0
  39. package/dist/commands/download.d.ts +3 -0
  40. package/dist/commands/download.d.ts.map +1 -0
  41. package/dist/commands/download.js +165 -0
  42. package/dist/commands/download.js.map +1 -0
  43. package/dist/commands/generate.d.ts +3 -0
  44. package/dist/commands/generate.d.ts.map +1 -0
  45. package/dist/commands/generate.js +358 -0
  46. package/dist/commands/generate.js.map +1 -0
  47. package/dist/commands/inspect.d.ts +10 -0
  48. package/dist/commands/inspect.d.ts.map +1 -0
  49. package/dist/commands/inspect.js +376 -0
  50. package/dist/commands/inspect.js.map +1 -0
  51. package/dist/commands/list.d.ts +13 -0
  52. package/dist/commands/list.d.ts.map +1 -0
  53. package/dist/commands/list.js +198 -0
  54. package/dist/commands/list.js.map +1 -0
  55. package/dist/commands/login.d.ts +15 -0
  56. package/dist/commands/login.d.ts.map +1 -0
  57. package/dist/commands/login.js +123 -0
  58. package/dist/commands/login.js.map +1 -0
  59. package/dist/commands/logout.d.ts +12 -0
  60. package/dist/commands/logout.d.ts.map +1 -0
  61. package/dist/commands/logout.js +85 -0
  62. package/dist/commands/logout.js.map +1 -0
  63. package/dist/commands/models.d.ts +10 -0
  64. package/dist/commands/models.d.ts.map +1 -0
  65. package/dist/commands/models.js +137 -0
  66. package/dist/commands/models.js.map +1 -0
  67. package/dist/commands/plan.d.ts +13 -0
  68. package/dist/commands/plan.d.ts.map +1 -0
  69. package/dist/commands/plan.js +134 -0
  70. package/dist/commands/plan.js.map +1 -0
  71. package/dist/commands/pricing.d.ts +14 -0
  72. package/dist/commands/pricing.d.ts.map +1 -0
  73. package/dist/commands/pricing.js +166 -0
  74. package/dist/commands/pricing.js.map +1 -0
  75. package/dist/commands/profile.d.ts +9 -0
  76. package/dist/commands/profile.d.ts.map +1 -0
  77. package/dist/commands/profile.js +236 -0
  78. package/dist/commands/profile.js.map +1 -0
  79. package/dist/commands/retry.d.ts +3 -0
  80. package/dist/commands/retry.d.ts.map +1 -0
  81. package/dist/commands/retry.js +424 -0
  82. package/dist/commands/retry.js.map +1 -0
  83. package/dist/commands/status.d.ts +9 -0
  84. package/dist/commands/status.d.ts.map +1 -0
  85. package/dist/commands/status.js +182 -0
  86. package/dist/commands/status.js.map +1 -0
  87. package/dist/commands/subscribe.d.ts +3 -0
  88. package/dist/commands/subscribe.d.ts.map +1 -0
  89. package/dist/commands/subscribe.js +263 -0
  90. package/dist/commands/subscribe.js.map +1 -0
  91. package/dist/commands/text.d.ts +3 -0
  92. package/dist/commands/text.d.ts.map +1 -0
  93. package/dist/commands/text.js +263 -0
  94. package/dist/commands/text.js.map +1 -0
  95. package/dist/commands/update.d.ts +13 -0
  96. package/dist/commands/update.d.ts.map +1 -0
  97. package/dist/commands/update.js +211 -0
  98. package/dist/commands/update.js.map +1 -0
  99. package/dist/commands/usage.d.ts +13 -0
  100. package/dist/commands/usage.d.ts.map +1 -0
  101. package/dist/commands/usage.js +344 -0
  102. package/dist/commands/usage.js.map +1 -0
  103. package/dist/commands/version.d.ts +8 -0
  104. package/dist/commands/version.d.ts.map +1 -0
  105. package/dist/commands/version.js +26 -0
  106. package/dist/commands/version.js.map +1 -0
  107. package/dist/commands/whoami.d.ts +9 -0
  108. package/dist/commands/whoami.d.ts.map +1 -0
  109. package/dist/commands/whoami.js +76 -0
  110. package/dist/commands/whoami.js.map +1 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +85 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/lib/api.d.ts +518 -0
  116. package/dist/lib/api.d.ts.map +1 -0
  117. package/dist/lib/api.js +582 -0
  118. package/dist/lib/api.js.map +1 -0
  119. package/dist/lib/config.d.ts +33 -0
  120. package/dist/lib/config.d.ts.map +1 -0
  121. package/dist/lib/config.js +91 -0
  122. package/dist/lib/config.js.map +1 -0
  123. package/dist/lib/credentials.d.ts +60 -0
  124. package/dist/lib/credentials.d.ts.map +1 -0
  125. package/dist/lib/credentials.js +152 -0
  126. package/dist/lib/credentials.js.map +1 -0
  127. package/dist/lib/errors.d.ts +20 -0
  128. package/dist/lib/errors.d.ts.map +1 -0
  129. package/dist/lib/errors.js +77 -0
  130. package/dist/lib/errors.js.map +1 -0
  131. package/dist/lib/output.d.ts +33 -0
  132. package/dist/lib/output.d.ts.map +1 -0
  133. package/dist/lib/output.js +77 -0
  134. package/dist/lib/output.js.map +1 -0
  135. package/dist/types.d.ts +12 -0
  136. package/dist/types.d.ts.map +1 -0
  137. package/dist/types.js +3 -0
  138. package/dist/types.js.map +1 -0
  139. package/package.json +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkMzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgR9D"}
@@ -0,0 +1,358 @@
1
+ // Copyright 2026 agent-media contributors. Apache-2.0 license.
2
+ /**
3
+ * `agent-media generate <model>` command.
4
+ *
5
+ * Submits an AI video or image generation job. Flow:
6
+ * 1. Load API key from the credential store.
7
+ * 2. If --input is provided, upload the file via a presigned URL.
8
+ * 3. Perform a dry-run cost estimate and show a confirmation prompt.
9
+ * 4. On confirmation, submit the job to the server.
10
+ * 5. Display the job ID, status, and estimated duration.
11
+ * 6. Optionally wait for completion (--wait) and download output (--download).
12
+ *
13
+ * Supports human, JSON, and quiet output modes.
14
+ */
15
+ import { createInterface } from 'node:readline';
16
+ import { readFileSync, existsSync, statSync } from 'node:fs';
17
+ import { basename, extname } from 'node:path';
18
+ import chalk from 'chalk';
19
+ import { detectOutputMode, printJson, printQuiet, createSpinner, } from '../lib/output.js';
20
+ import { getApiKey, resolveProfileName } from '../lib/credentials.js';
21
+ import { AgentMediaAPI, } from '../lib/api.js';
22
+ import { CLIError, handleError } from '../lib/errors.js';
23
+ /** MIME type lookup by file extension for common media types. */
24
+ const MIME_TYPES = {
25
+ '.png': 'image/png',
26
+ '.jpg': 'image/jpeg',
27
+ '.jpeg': 'image/jpeg',
28
+ '.webp': 'image/webp',
29
+ '.gif': 'image/gif',
30
+ '.mp4': 'video/mp4',
31
+ '.webm': 'video/webm',
32
+ '.mov': 'video/quicktime',
33
+ };
34
+ // ── Watch / download helper constants ─────────────────────────────────
35
+ /** Poll interval for --wait mode, in milliseconds. */
36
+ const POLL_INTERVAL_MS = 3_000;
37
+ /** Terminal job statuses that end the polling loop. */
38
+ const TERMINAL_STATUSES = new Set(['completed', 'failed', 'canceled']);
39
+ /** Status labels with color coding (mirrors status.ts). */
40
+ const STATUS_COLORS = {
41
+ pending: chalk.yellow,
42
+ processing: chalk.blue,
43
+ completed: chalk.green,
44
+ failed: chalk.red,
45
+ canceled: chalk.dim,
46
+ };
47
+ // ── Watch helpers ─────────────────────────────────────────────────────
48
+ /**
49
+ * Format a status string with color.
50
+ */
51
+ function formatStatus(status) {
52
+ const colorize = STATUS_COLORS[status] ?? chalk.white;
53
+ return colorize(status.toUpperCase());
54
+ }
55
+ /**
56
+ * Format elapsed seconds as a human-readable duration (e.g., "1m 23s").
57
+ */
58
+ function formatElapsed(seconds) {
59
+ if (seconds < 60)
60
+ return `${seconds}s`;
61
+ const mins = Math.floor(seconds / 60);
62
+ const secs = seconds % 60;
63
+ return `${mins}m ${secs}s`;
64
+ }
65
+ /**
66
+ * Poll a generation job until it reaches a terminal state.
67
+ *
68
+ * Calls the poll-provider edge function which checks the actual provider
69
+ * (e.g. Kie.ai) for the real status, downloads media on completion,
70
+ * and updates the DB. This is critical because provider webhooks are
71
+ * unreliable.
72
+ *
73
+ * Returns the final job state, or `null` if interrupted by SIGINT.
74
+ */
75
+ async function waitForJob(api, jobId, mode) {
76
+ const startTime = Date.now();
77
+ let interrupted = false;
78
+ const onSigint = () => {
79
+ interrupted = true;
80
+ };
81
+ process.on('SIGINT', onSigint);
82
+ const spinner = createSpinner('Waiting for job to complete...');
83
+ if (mode === 'human')
84
+ spinner.start();
85
+ try {
86
+ while (!interrupted) {
87
+ // Call poll-provider which actively checks the provider API
88
+ const poll = await api.pollProvider(jobId);
89
+ const elapsed = Math.floor((Date.now() - startTime) / 1000);
90
+ const status = poll.status;
91
+ if (mode === 'human') {
92
+ const progress = poll.progress ? ` ${poll.progress}%` : '';
93
+ spinner.text = `${formatStatus(status)}${progress} elapsed ${formatElapsed(elapsed)} (Ctrl+C to stop)`;
94
+ }
95
+ if (TERMINAL_STATUSES.has(status)) {
96
+ // Fetch the full job record for the final state
97
+ const job = await api.getJob(jobId);
98
+ if (mode === 'human') {
99
+ if (status === 'completed') {
100
+ spinner.succeed(`Job ${chalk.cyan(jobId)} completed in ${formatElapsed(elapsed)}`);
101
+ }
102
+ else if (status === 'failed') {
103
+ spinner.fail(`Job ${chalk.cyan(jobId)} failed after ${formatElapsed(elapsed)}` +
104
+ (job.error_message ? `: ${job.error_message}` : ''));
105
+ }
106
+ else {
107
+ spinner.warn(`Job ${chalk.cyan(jobId)} was canceled after ${formatElapsed(elapsed)}`);
108
+ }
109
+ }
110
+ return job;
111
+ }
112
+ // Wait before next poll, allowing early exit on SIGINT
113
+ await new Promise((resolve) => {
114
+ const earlyExit = () => {
115
+ clearTimeout(timer);
116
+ resolve();
117
+ };
118
+ const timer = setTimeout(() => {
119
+ process.removeListener('SIGINT', earlyExit);
120
+ resolve();
121
+ }, POLL_INTERVAL_MS);
122
+ process.once('SIGINT', earlyExit);
123
+ });
124
+ }
125
+ // Interrupted by SIGINT
126
+ if (mode === 'human') {
127
+ spinner.stop();
128
+ console.log();
129
+ console.log(chalk.dim(' Stopped waiting.'));
130
+ }
131
+ return null;
132
+ }
133
+ finally {
134
+ process.removeListener('SIGINT', onSigint);
135
+ }
136
+ }
137
+ /**
138
+ * Ask a yes/no question on stdin and return the result.
139
+ * Defaults to "yes" if the user presses Enter without typing.
140
+ */
141
+ function askConfirmation(question) {
142
+ return new Promise((resolve) => {
143
+ const rl = createInterface({
144
+ input: process.stdin,
145
+ output: process.stdout,
146
+ });
147
+ rl.question(question, (answer) => {
148
+ rl.close();
149
+ const trimmed = answer.trim().toLowerCase();
150
+ resolve(trimmed === '' || trimmed === 'y' || trimmed === 'yes');
151
+ });
152
+ });
153
+ }
154
+ /**
155
+ * Resolve the MIME type for a file path based on its extension.
156
+ */
157
+ function resolveContentType(filePath) {
158
+ const ext = extname(filePath).toLowerCase();
159
+ return MIME_TYPES[ext] ?? 'application/octet-stream';
160
+ }
161
+ export function registerGenerateCommand(program) {
162
+ program
163
+ .command('generate <model>')
164
+ .description('Submit an AI generation job\n\n' +
165
+ 'Examples:\n' +
166
+ ' $ agent-media generate seedance1.5 -p "A cat skateboarding through Tokyo"\n' +
167
+ ' $ agent-media generate flux2-pro -p "Cyberpunk cityscape at sunset"\n' +
168
+ ' $ agent-media generate kling3.0 -p "Ocean waves" --duration 10 --sync\n' +
169
+ ' $ agent-media generate seedance1.5 -p "Animate this" --input photo.jpg -s\n\n' +
170
+ 'Run "agent-media models" to see available models and pricing.')
171
+ .requiredOption('-p, --prompt <text>', 'Text prompt describing the desired output')
172
+ .option('--duration <seconds>', 'Video duration in seconds (default: model-specific)')
173
+ .option('--resolution <res>', 'Output resolution (720p, 1080p)')
174
+ .option('--aspect-ratio <ratio>', 'Aspect ratio (16:9, 9:16, 1:1)')
175
+ .option('--seed <number>', 'Deterministic seed for reproducible output')
176
+ .option('--input <file>', 'Reference image for image-to-video generation')
177
+ .option('--no-confirm', 'Skip the cost confirmation prompt')
178
+ .option('-s, --sync', 'Wait for completion and download the result')
179
+ .action(async (model, cmdOpts) => {
180
+ const globalOpts = program.opts();
181
+ const mode = detectOutputMode(globalOpts);
182
+ const profileName = resolveProfileName(globalOpts.profile);
183
+ const apiKey = getApiKey(profileName);
184
+ if (!apiKey) {
185
+ throw new CLIError('Not logged in.', {
186
+ code: 'NOT_AUTHENTICATED',
187
+ suggestion: "Run 'agent-media login' to authenticate.",
188
+ });
189
+ }
190
+ // --sync implies wait for completion
191
+ const shouldWait = !!cmdOpts.sync;
192
+ try {
193
+ const api = new AgentMediaAPI(apiKey);
194
+ let inputMediaUrl;
195
+ // ── Step 1: Upload input file if provided ───────────────────────
196
+ if (cmdOpts.input) {
197
+ const filePath = cmdOpts.input;
198
+ if (!existsSync(filePath)) {
199
+ throw new CLIError(`Input file not found: ${filePath}`, {
200
+ code: 'FILE_NOT_FOUND',
201
+ suggestion: 'Check the file path and try again.',
202
+ });
203
+ }
204
+ const stat = statSync(filePath);
205
+ const maxSize = 100 * 1024 * 1024; // 100 MB
206
+ if (stat.size > maxSize) {
207
+ throw new CLIError(`Input file is too large (${(stat.size / 1024 / 1024).toFixed(1)} MB). Maximum is 100 MB.`, {
208
+ code: 'FILE_TOO_LARGE',
209
+ suggestion: 'Compress or resize the file and try again.',
210
+ });
211
+ }
212
+ const fileName = basename(filePath);
213
+ const contentType = resolveContentType(filePath);
214
+ const uploadSpinner = createSpinner(`Uploading ${fileName}...`);
215
+ if (mode === 'human')
216
+ uploadSpinner.start();
217
+ const { uploadUrl, storagePath } = await api.getUploadUrl(fileName, contentType);
218
+ const nodeBuffer = readFileSync(filePath);
219
+ const arrayBuffer = nodeBuffer.buffer.slice(nodeBuffer.byteOffset, nodeBuffer.byteOffset + nodeBuffer.byteLength);
220
+ await api.uploadFile(uploadUrl, arrayBuffer, contentType);
221
+ if (mode === 'human')
222
+ uploadSpinner.succeed(`Uploaded ${fileName}`);
223
+ inputMediaUrl = storagePath;
224
+ }
225
+ // ── Step 2: Get cost estimate (dry run) ─────────────────────────
226
+ const estimateSpinner = createSpinner('Calculating cost...');
227
+ if (mode === 'human')
228
+ estimateSpinner.start();
229
+ const estimate = (await api.submitGeneration({
230
+ modelSlug: model,
231
+ prompt: cmdOpts.prompt,
232
+ duration: cmdOpts.duration ? parseInt(cmdOpts.duration, 10) : undefined,
233
+ resolution: cmdOpts.resolution,
234
+ aspectRatio: cmdOpts.aspectRatio,
235
+ seed: cmdOpts.seed ? parseInt(cmdOpts.seed, 10) : undefined,
236
+ inputMediaUrl,
237
+ dryRun: true,
238
+ }));
239
+ if (mode === 'human')
240
+ estimateSpinner.stop();
241
+ // ── Step 3: Confirm cost with user ──────────────────────────────
242
+ if (!estimate.canAfford) {
243
+ throw new CLIError(`Insufficient credits. This generation costs ${estimate.credits} credits but you only have ${estimate.availableCredits}.`, {
244
+ code: 'INSUFFICIENT_CREDITS',
245
+ suggestion: 'Buy more credits at https://agent-media.ai/billing or choose a cheaper model/resolution.',
246
+ });
247
+ }
248
+ if (cmdOpts.confirm && mode === 'human') {
249
+ console.log();
250
+ console.log(` ${chalk.bold('Model:')} ${estimate.modelDisplayName}`);
251
+ console.log(` ${chalk.bold('Cost:')} ${chalk.yellow(String(estimate.credits))} credits` +
252
+ ` (${chalk.dim(`$${estimate.costUsd.toFixed(2)}`)})`);
253
+ console.log(` ${chalk.bold('Balance:')} ${estimate.availableCredits} credits available`);
254
+ console.log();
255
+ const confirmed = await askConfirmation(` This will cost ${chalk.yellow(String(estimate.credits))} credits` +
256
+ ` (you have ${chalk.green(String(estimate.availableCredits))}). Continue? [Y/n] `);
257
+ if (!confirmed) {
258
+ console.log(chalk.dim(' Generation cancelled.'));
259
+ return;
260
+ }
261
+ }
262
+ // ── Step 4: Submit generation ───────────────────────────────────
263
+ const submitSpinner = createSpinner('Submitting generation...');
264
+ if (mode === 'human')
265
+ submitSpinner.start();
266
+ const result = (await api.submitGeneration({
267
+ modelSlug: model,
268
+ prompt: cmdOpts.prompt,
269
+ duration: cmdOpts.duration ? parseInt(cmdOpts.duration, 10) : undefined,
270
+ resolution: cmdOpts.resolution,
271
+ aspectRatio: cmdOpts.aspectRatio,
272
+ seed: cmdOpts.seed ? parseInt(cmdOpts.seed, 10) : undefined,
273
+ inputMediaUrl,
274
+ }));
275
+ if (mode === 'human')
276
+ submitSpinner.succeed('Generation submitted');
277
+ // ── Step 5: Display result ──────────────────────────────────────
278
+ if (!shouldWait) {
279
+ // Standard output when not waiting
280
+ switch (mode) {
281
+ case 'json':
282
+ printJson({
283
+ job_id: result.job_id,
284
+ status: result.status,
285
+ credits_deducted: result.credits_deducted,
286
+ estimated_duration: result.estimated_duration,
287
+ });
288
+ break;
289
+ case 'quiet':
290
+ printQuiet(result.job_id);
291
+ break;
292
+ default: {
293
+ console.log();
294
+ console.log(` ${chalk.bold('Job ID:')} ${chalk.cyan(result.job_id)}`);
295
+ console.log(` ${chalk.bold('Status:')} ${chalk.yellow(result.status)}`);
296
+ console.log(` ${chalk.bold('Credits:')} ${result.credits_deducted} deducted`);
297
+ if (result.estimated_duration) {
298
+ console.log(` ${chalk.bold('ETA:')} ~${result.estimated_duration}s`);
299
+ }
300
+ console.log();
301
+ console.log(chalk.dim(` Run 'agent-media status ${result.job_id}' to check progress`));
302
+ console.log();
303
+ break;
304
+ }
305
+ }
306
+ return;
307
+ }
308
+ // ── Step 6: Wait for completion (--sync) ───────────────────────
309
+ if (mode === 'human') {
310
+ console.log();
311
+ console.log(` ${chalk.bold('Job ID:')} ${chalk.cyan(result.job_id)}`);
312
+ console.log(` ${chalk.bold('Credits:')} ${result.credits_deducted} deducted`);
313
+ console.log();
314
+ }
315
+ const finishedJob = await waitForJob(api, result.job_id, mode);
316
+ // SIGINT interrupted the wait -- exit without downloading
317
+ if (!finishedJob) {
318
+ return;
319
+ }
320
+ // In JSON mode, emit the final job state
321
+ if (mode === 'json') {
322
+ const payload = {
323
+ job_id: finishedJob.id,
324
+ status: finishedJob.status,
325
+ credits_deducted: result.credits_deducted,
326
+ estimated_duration: result.estimated_duration,
327
+ };
328
+ if (finishedJob.status === 'failed') {
329
+ payload['error'] = finishedJob.error_message ?? 'Unknown error';
330
+ }
331
+ if (finishedJob.output_media_url) {
332
+ payload['output_url'] = finishedJob.output_media_url;
333
+ }
334
+ printJson(payload);
335
+ return;
336
+ }
337
+ if (mode === 'quiet') {
338
+ printQuiet(finishedJob.output_media_url ?? finishedJob.id);
339
+ return;
340
+ }
341
+ // ── Step 7: Print public URL (--sync) ─────────────────────────
342
+ if (finishedJob.status === 'completed' && finishedJob.output_media_url) {
343
+ console.log();
344
+ console.log(` ${chalk.bold('URL:')} ${chalk.cyan(finishedJob.output_media_url)}`);
345
+ console.log();
346
+ }
347
+ else if (finishedJob.status !== 'completed') {
348
+ console.log();
349
+ console.log(chalk.yellow(' No output -- job did not complete successfully.'));
350
+ console.log();
351
+ }
352
+ }
353
+ catch (error) {
354
+ handleError(error);
355
+ }
356
+ });
357
+ }
358
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `agent-media inspect <job-id>` command.
3
+ *
4
+ * Displays a detailed inspection view of a generation job including prompt,
5
+ * parameters, timeline, cost breakdown, provider details, and output URLs.
6
+ * Supports --watch mode for live polling, plus JSON and quiet output modes.
7
+ */
8
+ import type { Command } from 'commander';
9
+ export declare function registerInspectCommand(program: Command): void;
10
+ //# sourceMappingURL=inspect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8XzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkG7D"}