@usenaive-sdk/cli 0.15.1 → 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 (281) hide show
  1. package/README.md +43 -402
  2. package/dist/index.js +51775 -502
  3. package/package.json +22 -18
  4. package/dist/client.d.ts +0 -108
  5. package/dist/client.js +0 -458
  6. package/dist/client.js.map +0 -1
  7. package/dist/commands/account-kits.d.ts +0 -2
  8. package/dist/commands/account-kits.js +0 -71
  9. package/dist/commands/account-kits.js.map +0 -1
  10. package/dist/commands/aeo.d.ts +0 -2
  11. package/dist/commands/aeo.js +0 -451
  12. package/dist/commands/aeo.js.map +0 -1
  13. package/dist/commands/agent-profiles.d.ts +0 -11
  14. package/dist/commands/agent-profiles.js +0 -120
  15. package/dist/commands/agent-profiles.js.map +0 -1
  16. package/dist/commands/agents.d.ts +0 -2
  17. package/dist/commands/agents.js +0 -916
  18. package/dist/commands/agents.js.map +0 -1
  19. package/dist/commands/app-data.d.ts +0 -2
  20. package/dist/commands/app-data.js +0 -445
  21. package/dist/commands/app-data.js.map +0 -1
  22. package/dist/commands/approvals.d.ts +0 -2
  23. package/dist/commands/approvals.js +0 -242
  24. package/dist/commands/approvals.js.map +0 -1
  25. package/dist/commands/apps.d.ts +0 -9
  26. package/dist/commands/apps.js +0 -844
  27. package/dist/commands/apps.js.map +0 -1
  28. package/dist/commands/audio.d.ts +0 -9
  29. package/dist/commands/audio.js +0 -391
  30. package/dist/commands/audio.js.map +0 -1
  31. package/dist/commands/auth.d.ts +0 -31
  32. package/dist/commands/auth.js +0 -428
  33. package/dist/commands/auth.js.map +0 -1
  34. package/dist/commands/billing.d.ts +0 -2
  35. package/dist/commands/billing.js +0 -250
  36. package/dist/commands/billing.js.map +0 -1
  37. package/dist/commands/brain.d.ts +0 -2
  38. package/dist/commands/brain.js +0 -1300
  39. package/dist/commands/brain.js.map +0 -1
  40. package/dist/commands/browser.d.ts +0 -2
  41. package/dist/commands/browser.js +0 -378
  42. package/dist/commands/browser.js.map +0 -1
  43. package/dist/commands/business.d.ts +0 -2
  44. package/dist/commands/business.js +0 -566
  45. package/dist/commands/business.js.map +0 -1
  46. package/dist/commands/cards.d.ts +0 -2
  47. package/dist/commands/cards.js +0 -419
  48. package/dist/commands/cards.js.map +0 -1
  49. package/dist/commands/ceo.d.ts +0 -2
  50. package/dist/commands/ceo.js +0 -369
  51. package/dist/commands/ceo.js.map +0 -1
  52. package/dist/commands/clone.d.ts +0 -2
  53. package/dist/commands/clone.js +0 -203
  54. package/dist/commands/clone.js.map +0 -1
  55. package/dist/commands/companies.d.ts +0 -10
  56. package/dist/commands/companies.js +0 -283
  57. package/dist/commands/companies.js.map +0 -1
  58. package/dist/commands/company-data.d.ts +0 -2
  59. package/dist/commands/company-data.js +0 -168
  60. package/dist/commands/company-data.js.map +0 -1
  61. package/dist/commands/compute.d.ts +0 -2
  62. package/dist/commands/compute.js +0 -498
  63. package/dist/commands/compute.js.map +0 -1
  64. package/dist/commands/config.d.ts +0 -2
  65. package/dist/commands/config.js +0 -36
  66. package/dist/commands/config.js.map +0 -1
  67. package/dist/commands/connections.d.ts +0 -8
  68. package/dist/commands/connections.js +0 -137
  69. package/dist/commands/connections.js.map +0 -1
  70. package/dist/commands/cron-jobs.d.ts +0 -2
  71. package/dist/commands/cron-jobs.js +0 -245
  72. package/dist/commands/cron-jobs.js.map +0 -1
  73. package/dist/commands/domains.d.ts +0 -2
  74. package/dist/commands/domains.js +0 -474
  75. package/dist/commands/domains.js.map +0 -1
  76. package/dist/commands/ecommerce.d.ts +0 -2
  77. package/dist/commands/ecommerce.js +0 -277
  78. package/dist/commands/ecommerce.js.map +0 -1
  79. package/dist/commands/email.d.ts +0 -2
  80. package/dist/commands/email.js +0 -336
  81. package/dist/commands/email.js.map +0 -1
  82. package/dist/commands/employees.d.ts +0 -2
  83. package/dist/commands/employees.js +0 -190
  84. package/dist/commands/employees.js.map +0 -1
  85. package/dist/commands/env.d.ts +0 -7
  86. package/dist/commands/env.js +0 -112
  87. package/dist/commands/env.js.map +0 -1
  88. package/dist/commands/formation.d.ts +0 -2
  89. package/dist/commands/formation.js +0 -273
  90. package/dist/commands/formation.js.map +0 -1
  91. package/dist/commands/identity.d.ts +0 -2
  92. package/dist/commands/identity.js +0 -110
  93. package/dist/commands/identity.js.map +0 -1
  94. package/dist/commands/images.d.ts +0 -2
  95. package/dist/commands/images.js +0 -371
  96. package/dist/commands/images.js.map +0 -1
  97. package/dist/commands/init.d.ts +0 -5
  98. package/dist/commands/init.js +0 -43
  99. package/dist/commands/init.js.map +0 -1
  100. package/dist/commands/jobs.d.ts +0 -2
  101. package/dist/commands/jobs.js +0 -144
  102. package/dist/commands/jobs.js.map +0 -1
  103. package/dist/commands/keys.d.ts +0 -2
  104. package/dist/commands/keys.js +0 -156
  105. package/dist/commands/keys.js.map +0 -1
  106. package/dist/commands/legacy-auth.d.ts +0 -27
  107. package/dist/commands/legacy-auth.js +0 -64
  108. package/dist/commands/legacy-auth.js.map +0 -1
  109. package/dist/commands/llm.d.ts +0 -2
  110. package/dist/commands/llm.js +0 -125
  111. package/dist/commands/llm.js.map +0 -1
  112. package/dist/commands/login.d.ts +0 -2
  113. package/dist/commands/login.js +0 -65
  114. package/dist/commands/login.js.map +0 -1
  115. package/dist/commands/logout.d.ts +0 -7
  116. package/dist/commands/logout.js +0 -55
  117. package/dist/commands/logout.js.map +0 -1
  118. package/dist/commands/logs.d.ts +0 -2
  119. package/dist/commands/logs.js +0 -42
  120. package/dist/commands/logs.js.map +0 -1
  121. package/dist/commands/loops.d.ts +0 -2
  122. package/dist/commands/loops.js +0 -260
  123. package/dist/commands/loops.js.map +0 -1
  124. package/dist/commands/media.d.ts +0 -2
  125. package/dist/commands/media.js +0 -183
  126. package/dist/commands/media.js.map +0 -1
  127. package/dist/commands/memory.d.ts +0 -2
  128. package/dist/commands/memory.js +0 -151
  129. package/dist/commands/memory.js.map +0 -1
  130. package/dist/commands/mobile.d.ts +0 -4
  131. package/dist/commands/mobile.js +0 -382
  132. package/dist/commands/mobile.js.map +0 -1
  133. package/dist/commands/module.d.ts +0 -8
  134. package/dist/commands/module.js +0 -48
  135. package/dist/commands/module.js.map +0 -1
  136. package/dist/commands/objectives.d.ts +0 -2
  137. package/dist/commands/objectives.js +0 -243
  138. package/dist/commands/objectives.js.map +0 -1
  139. package/dist/commands/payments.d.ts +0 -2
  140. package/dist/commands/payments.js +0 -131
  141. package/dist/commands/payments.js.map +0 -1
  142. package/dist/commands/people.d.ts +0 -2
  143. package/dist/commands/people.js +0 -197
  144. package/dist/commands/people.js.map +0 -1
  145. package/dist/commands/phone.d.ts +0 -2
  146. package/dist/commands/phone.js +0 -289
  147. package/dist/commands/phone.js.map +0 -1
  148. package/dist/commands/projects.d.ts +0 -13
  149. package/dist/commands/projects.js +0 -220
  150. package/dist/commands/projects.js.map +0 -1
  151. package/dist/commands/queue.d.ts +0 -2
  152. package/dist/commands/queue.js +0 -121
  153. package/dist/commands/queue.js.map +0 -1
  154. package/dist/commands/register.d.ts +0 -2
  155. package/dist/commands/register.js +0 -88
  156. package/dist/commands/register.js.map +0 -1
  157. package/dist/commands/report.d.ts +0 -17
  158. package/dist/commands/report.js +0 -109
  159. package/dist/commands/report.js.map +0 -1
  160. package/dist/commands/sandbox.d.ts +0 -2
  161. package/dist/commands/sandbox.js +0 -558
  162. package/dist/commands/sandbox.js.map +0 -1
  163. package/dist/commands/search.d.ts +0 -2
  164. package/dist/commands/search.js +0 -223
  165. package/dist/commands/search.js.map +0 -1
  166. package/dist/commands/seo.d.ts +0 -2
  167. package/dist/commands/seo.js +0 -528
  168. package/dist/commands/seo.js.map +0 -1
  169. package/dist/commands/sessions.d.ts +0 -6
  170. package/dist/commands/sessions.js +0 -109
  171. package/dist/commands/sessions.js.map +0 -1
  172. package/dist/commands/social-data.d.ts +0 -2
  173. package/dist/commands/social-data.js +0 -245
  174. package/dist/commands/social-data.js.map +0 -1
  175. package/dist/commands/social.d.ts +0 -2
  176. package/dist/commands/social.js +0 -407
  177. package/dist/commands/social.js.map +0 -1
  178. package/dist/commands/status.d.ts +0 -2
  179. package/dist/commands/status.js +0 -79
  180. package/dist/commands/status.js.map +0 -1
  181. package/dist/commands/support.d.ts +0 -2
  182. package/dist/commands/support.js +0 -134
  183. package/dist/commands/support.js.map +0 -1
  184. package/dist/commands/tasks.d.ts +0 -2
  185. package/dist/commands/tasks.js +0 -409
  186. package/dist/commands/tasks.js.map +0 -1
  187. package/dist/commands/teams.d.ts +0 -69
  188. package/dist/commands/teams.js +0 -503
  189. package/dist/commands/teams.js.map +0 -1
  190. package/dist/commands/trading.d.ts +0 -2
  191. package/dist/commands/trading.js +0 -333
  192. package/dist/commands/trading.js.map +0 -1
  193. package/dist/commands/up.d.ts +0 -551
  194. package/dist/commands/up.js +0 -1149
  195. package/dist/commands/up.js.map +0 -1
  196. package/dist/commands/usage.d.ts +0 -2
  197. package/dist/commands/usage.js +0 -73
  198. package/dist/commands/usage.js.map +0 -1
  199. package/dist/commands/use.d.ts +0 -12
  200. package/dist/commands/use.js +0 -96
  201. package/dist/commands/use.js.map +0 -1
  202. package/dist/commands/users.d.ts +0 -10
  203. package/dist/commands/users.js +0 -82
  204. package/dist/commands/users.js.map +0 -1
  205. package/dist/commands/vault.d.ts +0 -2
  206. package/dist/commands/vault.js +0 -101
  207. package/dist/commands/vault.js.map +0 -1
  208. package/dist/commands/verification.d.ts +0 -2
  209. package/dist/commands/verification.js +0 -152
  210. package/dist/commands/verification.js.map +0 -1
  211. package/dist/commands/verify-email.d.ts +0 -19
  212. package/dist/commands/verify-email.js +0 -130
  213. package/dist/commands/verify-email.js.map +0 -1
  214. package/dist/commands/video.d.ts +0 -2
  215. package/dist/commands/video.js +0 -417
  216. package/dist/commands/video.js.map +0 -1
  217. package/dist/commands/voice.d.ts +0 -2
  218. package/dist/commands/voice.js +0 -516
  219. package/dist/commands/voice.js.map +0 -1
  220. package/dist/commands/wallet.d.ts +0 -2
  221. package/dist/commands/wallet.js +0 -244
  222. package/dist/commands/wallet.js.map +0 -1
  223. package/dist/commands/webhooks.d.ts +0 -13
  224. package/dist/commands/webhooks.js +0 -119
  225. package/dist/commands/webhooks.js.map +0 -1
  226. package/dist/commands/whoami.d.ts +0 -2
  227. package/dist/commands/whoami.js +0 -53
  228. package/dist/commands/whoami.js.map +0 -1
  229. package/dist/config.d.ts +0 -42
  230. package/dist/config.js +0 -83
  231. package/dist/config.js.map +0 -1
  232. package/dist/index.d.ts +0 -3
  233. package/dist/index.js.map +0 -1
  234. package/dist/lib/brain-select.d.ts +0 -193
  235. package/dist/lib/brain-select.js +0 -403
  236. package/dist/lib/brain-select.js.map +0 -1
  237. package/dist/lib/cli-validation.d.ts +0 -12
  238. package/dist/lib/cli-validation.js +0 -46
  239. package/dist/lib/cli-validation.js.map +0 -1
  240. package/dist/lib/config-errors.d.ts +0 -4
  241. package/dist/lib/config-errors.js +0 -13
  242. package/dist/lib/config-errors.js.map +0 -1
  243. package/dist/lib/deprecation.d.ts +0 -158
  244. package/dist/lib/deprecation.js +0 -140
  245. package/dist/lib/deprecation.js.map +0 -1
  246. package/dist/lib/duration.d.ts +0 -8
  247. package/dist/lib/duration.js +0 -11
  248. package/dist/lib/duration.js.map +0 -1
  249. package/dist/lib/http-response.d.ts +0 -11
  250. package/dist/lib/http-response.js +0 -96
  251. package/dist/lib/http-response.js.map +0 -1
  252. package/dist/lib/llm-paywall.d.ts +0 -82
  253. package/dist/lib/llm-paywall.js +0 -231
  254. package/dist/lib/llm-paywall.js.map +0 -1
  255. package/dist/lib/pricing.d.ts +0 -132
  256. package/dist/lib/pricing.js +0 -148
  257. package/dist/lib/pricing.js.map +0 -1
  258. package/dist/lib/starter-config.d.ts +0 -13
  259. package/dist/lib/starter-config.js +0 -71
  260. package/dist/lib/starter-config.js.map +0 -1
  261. package/dist/lib/stream-frames.d.ts +0 -114
  262. package/dist/lib/stream-frames.js +0 -169
  263. package/dist/lib/stream-frames.js.map +0 -1
  264. package/dist/lib/teams-catalog.d.ts +0 -141
  265. package/dist/lib/teams-catalog.js +0 -841
  266. package/dist/lib/teams-catalog.js.map +0 -1
  267. package/dist/lib/unknown-command.d.ts +0 -71
  268. package/dist/lib/unknown-command.js +0 -132
  269. package/dist/lib/unknown-command.js.map +0 -1
  270. package/dist/lib/version-check.d.ts +0 -26
  271. package/dist/lib/version-check.js +0 -21
  272. package/dist/lib/version-check.js.map +0 -1
  273. package/dist/output.d.ts +0 -246
  274. package/dist/output.js +0 -539
  275. package/dist/output.js.map +0 -1
  276. package/dist/prompt.d.ts +0 -17
  277. package/dist/prompt.js +0 -70
  278. package/dist/prompt.js.map +0 -1
  279. package/dist/version.d.ts +0 -2
  280. package/dist/version.js +0 -14
  281. package/dist/version.js.map +0 -1
@@ -1,417 +0,0 @@
1
- import { Command, Option } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
3
- import { agentOutput, creditCostHint, creditEstimateHint } from "../output.js";
4
- import { parseDurationArg } from "../lib/duration.js";
5
- import { REFRAME_FEE_CREDITS } from "../lib/pricing.js";
6
- // Validate --duration (pure check in lib/duration.ts) and fail fast with a clear,
7
- // structured message rather than forwarding a bad value that would 422 at fal.
8
- function durationOrExit(raw) {
9
- const parsed = parseDurationArg(raw);
10
- if (!parsed.ok) {
11
- console.log(JSON.stringify({
12
- success: false,
13
- action: "video.generate",
14
- error: { code: "invalid_argument", message: parsed.message },
15
- recovery_steps: [
16
- { command: 'naive video generate "your prompt" --model <model> --duration 5', description: "Pass a numeric duration a Kling model accepts" },
17
- { command: "naive video models", description: "List models (note: some, e.g. minimax-video, have a fixed length)" },
18
- ],
19
- }, null, 2));
20
- process.exit(1);
21
- }
22
- return parsed.value;
23
- }
24
- export const videoCmd = new Command("video")
25
- .description("Generate AI videos and extract short-form clips")
26
- .addHelpText("after", `
27
- Subcommands:
28
- naive video generate <prompt> Generate a video from text or image
29
- naive video status <job_id> Check video generation status
30
- naive video models List available video models
31
- naive video clip <video_url> Auto-clip a long video into short clips
32
- naive video clip-status <id> Check clipping job status
33
-
34
- Examples:
35
- $ naive video generate "a rocket launching into space" --model fal-ai/kling-video/v3/pro/text-to-video
36
- $ naive video clip "https://example.com/video.mp4" --aspect-ratio 9:16
37
- $ naive video clip-status job-uuid-123
38
- $ naive video models
39
-
40
- Cost:
41
- - Video generation: dynamic, model/duration-dependent (run 'naive video pricing --model <id>' to preview)
42
- - Video clipping: metered per input minute
43
- - Credits deducted only on successful completion
44
- `);
45
- videoCmd
46
- .command("generate [prompt]")
47
- .description("Generate a video using AI models (async — returns job ID)")
48
- .requiredOption("--model <model>", "Video model ID (required)")
49
- .option("--input <json>", "Full input parameters as JSON (overrides other options)")
50
- .option("--duration <seconds>", "Video length in seconds — Kling models only (e.g. 5 or 10); some models have a fixed length and reject it")
51
- .option("--image-url <url>", "Source image URL for image-to-video models")
52
- .option("--wait", "Wait for job to complete (polls until done)")
53
- .addHelpText("after", `
54
- Examples:
55
- $ naive video generate "a timelapse of a flower blooming" --model fal-ai/kling-video/v3/pro/text-to-video
56
- $ naive video generate "product showcase" --model fal-ai/kling-video/v3/pro/text-to-video --duration 10 --wait
57
- $ naive video generate --model fal-ai/kling-video/v3/pro/image-to-video --image-url https://example.com/img.jpg --input '{"prompt":"zoom in slowly"}'
58
-
59
- Duration:
60
- --duration is accepted by Kling models (e.g. fal-ai/kling-video/v3/pro/*), which
61
- is why the example above pairs it with one. Fixed-length models such as
62
- fal-ai/minimax-video/video-01-live reject --duration — pass a numeric value only
63
- with a model that supports it, or omit it to use the model's default length.
64
-
65
- What this does:
66
- 1. Submits a video generation request
67
- 2. Returns a job ID (async processing, typically 30-120s)
68
- 3. Use --wait to block until done, or check with 'naive video status'
69
-
70
- Text-to-video:
71
- Provide a prompt describing the video. Models: kling-video text-to-video, minimax-video
72
-
73
- Image-to-video:
74
- Provide --image-url to animate a still image. Models: kling-video image-to-video
75
-
76
- Available models (use 'naive video models' for full list):
77
- fal-ai/kling-video/v3/pro/text-to-video Text-to-video, pro quality (~60s)
78
- fal-ai/kling-video/v3/pro/image-to-video Image-to-video, pro quality (~60s)
79
- fal-ai/kling-video/v3/standard/text-to-video Text-to-video, standard (~45s)
80
- fal-ai/minimax-video/video-01-live Text-to-video, fast (~45s)
81
- fal-ai/wan/v2.7/text-to-video Text-to-video (~60s)
82
- (Use 'naive video models' for the full dynamic list)
83
-
84
- Parameters (via --input JSON):
85
- prompt Text description of the video
86
- duration Length in seconds (Kling models only): "5" or "10". Fixed-length
87
- models (e.g. minimax-video) reject it — see the Duration note above.
88
- image_url Source image for image-to-video
89
- aspect_ratio "16:9", "9:16", "1:1" (model-dependent)
90
- negative_prompt Text describing what to avoid
91
- cfg_scale Guidance scale 0-1 (higher = more literal, default 0.5)
92
- generate_audio Enable native audio generation (boolean, default true for Kling v3)
93
-
94
- Reading the result (after completion, via 'naive video status <id>'):
95
- Submit returns the job under 'id' (job_id is a deprecated alias).
96
- The output URL is at result.media[0].url — a flat, model-independent path.
97
- (result.result.video.url is the raw provider payload; media[] is preferred.)
98
-
99
- Cost: dynamic — based on model pricing ($0.05/credit)
100
- Run 'naive video pricing --model <id> --duration <s>' to preview cost before generating.
101
- Credits deducted only on successful completion. Failed jobs are free.
102
- `)
103
- .action(async (prompt, opts) => {
104
- let input;
105
- if (opts.input) {
106
- input = JSON.parse(opts.input);
107
- }
108
- else if (prompt) {
109
- input = { prompt };
110
- if (opts.duration)
111
- input.duration = durationOrExit(opts.duration);
112
- if (opts.imageUrl)
113
- input.image_url = opts.imageUrl;
114
- }
115
- else if (opts.imageUrl) {
116
- input = { image_url: opts.imageUrl };
117
- if (opts.duration)
118
- input.duration = durationOrExit(opts.duration);
119
- }
120
- else {
121
- console.log(JSON.stringify({
122
- success: false,
123
- action: "video.generate",
124
- error: { code: "missing_argument", message: "Provide a prompt, --image-url, or --input JSON" },
125
- recovery_steps: [
126
- { command: 'naive video generate "your prompt" --model <model>', description: "Text-to-video generation" },
127
- { command: "naive video generate --model <model> --image-url <url>", description: "Image-to-video generation" },
128
- { command: "naive video models", description: "List available video models" },
129
- ],
130
- }, null, 2));
131
- process.exit(1);
132
- }
133
- const resp = await apiRequest("POST", "/v1/video/generate", {
134
- model: opts.model,
135
- input,
136
- });
137
- handleApiError("video.generate", resp);
138
- if (resp.status === 202) {
139
- const data = resp.data;
140
- if (opts.wait) {
141
- agentOutput({
142
- action: "video.generate.submitted",
143
- // Surface the estimate at submit so spend is visible before the wait (N6).
144
- result: { job_id: data.job_id, status: "polling", model: opts.model, estimated_credits: data.estimated_credits ?? null },
145
- next_steps: [],
146
- hints: [
147
- "Waiting for video generation to complete (typically 30-120s)...",
148
- ...(creditEstimateHint(resp.data) ? [creditEstimateHint(resp.data)] : []),
149
- ],
150
- });
151
- await pollJob(data.job_id);
152
- }
153
- else {
154
- agentOutput({
155
- action: "video.generate.submitted",
156
- result: { job_id: data.job_id, status: "queued", model: opts.model, estimated_credits: data.estimated_credits ?? null },
157
- next_steps: [
158
- { command: `naive video status ${data.job_id}`, description: "Check generation progress" },
159
- { command: `naive jobs get ${data.job_id}`, description: "Get full job details" },
160
- ],
161
- hints: [
162
- `Video generation submitted (model: ${opts.model})`,
163
- // Echoes the API's pre-flight estimate (same source that bills at completion) — N6.
164
- ...(creditEstimateHint(resp.data) ? [creditEstimateHint(resp.data)] : ["Credits deducted only on successful completion"]),
165
- "Typical time: 30-120 seconds depending on model and duration",
166
- ],
167
- related_commands: ["naive video status", "naive jobs get", "naive jobs"],
168
- });
169
- }
170
- }
171
- else {
172
- agentOutput({
173
- action: "video.generate",
174
- result: resp.data,
175
- next_steps: [
176
- { command: 'naive video generate "another prompt" --model <model>', description: "Generate another video" },
177
- ],
178
- hints: ["Video generated synchronously"],
179
- related_commands: ["naive video models"],
180
- });
181
- }
182
- });
183
- videoCmd
184
- .command("clip <video_url>")
185
- .description("Auto-clip a long video into short clips (async — returns job ID)")
186
- // Strict enum via commander's Option.choices — rejects anything outside
187
- // the two supported aspect ratios at parse time, so the API never sees a
188
- // typo'd value. Default "9:16" matches the REST POST handler's default
189
- // (vertical-first social baseline). "16:9" preserves the source aspect.
190
- .addOption(new Option("--aspect <ratio>", "Output aspect ratio for generated clips")
191
- .choices(["9:16", "16:9"])
192
- .default("9:16"))
193
- .addHelpText("after", `
194
- Examples:
195
- $ naive video clip https://example.com/podcast.mp4
196
- $ naive video clip https://example.com/podcast.mp4 --aspect 16:9
197
-
198
- What this does:
199
- 1. Submits a long video for AI auto-clipping
200
- 2. Returns a job ID (async processing)
201
- 3. Check progress with 'naive video clip-status <job_id>'
202
-
203
- Input:
204
- A public https URL to a video no longer than 90 minutes.
205
-
206
- Options:
207
- --aspect <ratio> "9:16" (default, vertical via SAM-3 smart-crop) or "16:9" (preserve source)
208
-
209
- Cost: per input minute — credits deducted only on successful completion.
210
- 9:16 reframe adds a flat ${REFRAME_FEE_CREDITS}-credit face-tracking fee per job.
211
- `)
212
- .action(async (videoUrl, opts) => {
213
- const resp = await apiRequest("POST", "/v1/video/clip", {
214
- video_url: videoUrl,
215
- aspect_ratio: opts.aspect ?? "9:16",
216
- });
217
- handleApiError("video.clip", resp);
218
- const data = resp.data;
219
- agentOutput({
220
- action: "video.clip.submitted",
221
- result: { job_id: data.job_id, status: data.status },
222
- next_steps: [
223
- { command: `naive video clip-status ${data.job_id}`, description: "Check clipping progress" },
224
- { command: `naive jobs get ${data.job_id}`, description: "Get full job details" },
225
- ],
226
- hints: [
227
- "Clip job submitted",
228
- "Input must be a public https URL to a video 90 minutes or shorter",
229
- "Credits deducted only on successful completion",
230
- ],
231
- related_commands: ["naive video clip-status", "naive jobs"],
232
- });
233
- });
234
- videoCmd
235
- .command("clip-status <job_id>")
236
- .description("Check the status of a video clipping job")
237
- .addHelpText("after", `
238
- Examples:
239
- $ naive video clip-status 550e8400-e29b-41d4-a716-446655440000
240
-
241
- When completed, the result includes the generated clip URLs.
242
- `)
243
- .action(async (jobId) => {
244
- const resp = await apiRequest("GET", `/v1/video/clip/${jobId}`);
245
- handleApiError("video.clip-status", resp);
246
- const data = resp.data;
247
- agentOutput({
248
- action: "video.clip-status",
249
- result: resp.data,
250
- next_steps: [
251
- ...(data.status === "queued" || data.status === "processing"
252
- ? [{ command: `naive video clip-status ${jobId}`, description: "Check again in 20-30 seconds" }]
253
- : []),
254
- { command: "naive video clip <video_url>", description: "Clip another video" },
255
- ],
256
- hints: [`Job status: ${data.status}`],
257
- related_commands: ["naive video clip", "naive jobs"],
258
- });
259
- });
260
- videoCmd
261
- .command("status <job_id>")
262
- .description("Check the status of a video generation job")
263
- .addHelpText("after", `
264
- Examples:
265
- $ naive video status 550e8400-e29b-41d4-a716-446655440000
266
-
267
- What this does:
268
- Returns the current status of a video generation job:
269
- - queued: waiting to be processed
270
- - processing: actively generating
271
- - completed: video ready (includes URL)
272
- - failed: generation failed (includes error message)
273
-
274
- When completed, the result includes a video URL.
275
- `)
276
- .action(async (jobId) => {
277
- const resp = await apiRequest("GET", `/v1/video/${jobId}`);
278
- handleApiError("video.status", resp);
279
- const data = resp.data;
280
- // N12: prefer the flat, model-independent media[] path; fall back to the raw
281
- // provider nesting for older API responses that predate media[].
282
- const videoUrl = data.media?.[0]?.url ?? data.result?.video?.url;
283
- agentOutput({
284
- action: "video.status",
285
- result: resp.data,
286
- next_steps: [
287
- ...(data.status === "completed" && videoUrl
288
- ? [{ command: `# Download: curl -o video.mp4 "${videoUrl}"`, description: "Download the generated video (result.media[0].url)" }]
289
- : []),
290
- ...(data.status === "queued" || data.status === "processing"
291
- ? [{ command: `naive video status ${jobId}`, description: "Check again in 10-30 seconds" }]
292
- : []),
293
- { command: 'naive video generate "new prompt" --model <model>', description: "Generate another video" },
294
- ],
295
- hints: [
296
- `Job status: ${data.status}`,
297
- ...(data.status === "processing" ? ["Video generation typically takes 30-120 seconds"] : []),
298
- // Post-hoc: on completion the job carries the ACTUAL credits_used — same
299
- // single source as the pre-flight estimate, so before/at/after agree (N6).
300
- ...(creditCostHint(resp.data) ? [creditCostHint(resp.data)] : []),
301
- ...(data.status === "failed" ? [`Failed (no credits deducted). Reason: ${data.error || "unknown"}`] : []),
302
- ],
303
- related_commands: ["naive video generate", "naive jobs"],
304
- });
305
- });
306
- videoCmd
307
- .command("models")
308
- .description("List available video generation models with pricing")
309
- .addHelpText("after", `
310
- Examples:
311
- $ naive video models
312
-
313
- What this does:
314
- Returns all supported video models with:
315
- - Model ID (use as --model parameter)
316
- - Type (text-to-video or image-to-video)
317
- - Approximate generation time
318
- - Credit cost per generation
319
- - Supported durations and parameters
320
- `)
321
- .action(async () => {
322
- const resp = await apiRequest("GET", "/v1/video/models");
323
- handleApiError("video.models", resp);
324
- agentOutput({
325
- action: "video.models",
326
- result: resp.data,
327
- next_steps: [
328
- { command: 'naive video generate "your prompt" --model <model_id>', description: "Generate a video with one of these models" },
329
- ],
330
- hints: [
331
- "Use the model 'id' field as the --model parameter in 'naive video generate'",
332
- "Text-to-video models accept a text prompt; image-to-video models require --image-url",
333
- "Each model includes credits_estimate (~5s clip; null when pricing is unavailable)",
334
- "For an exact quote at a given length: naive video pricing --model <id> --duration <s>",
335
- ],
336
- related_commands: ["naive video generate", "naive video pricing", "naive video status"],
337
- });
338
- });
339
- videoCmd
340
- .command("pricing")
341
- .description("Preview the estimated credit cost of a video model before generating")
342
- .requiredOption("--model <model>", "Video model ID (get IDs from 'naive video models')")
343
- .option("--duration <seconds>", "Clip length in seconds to price (default: 5)", "5")
344
- .addHelpText("after", `
345
- Examples:
346
- $ naive video pricing --model fal-ai/kling-video/v3/pro/text-to-video
347
- $ naive video pricing --model fal-ai/kling-video/v3/pro/text-to-video --duration 10
348
-
349
- What this does:
350
- Returns the ESTIMATED credit cost for one generation, derived from the model's
351
- live fal.ai price — the same source that bills the job on completion, so the
352
- estimate tracks the real charge. Nothing is spent by this command.
353
-
354
- Cost: free (this is a price preview; generation itself is charged on completion)
355
- `)
356
- .action(async (opts) => {
357
- const duration = parseInt(opts.duration ?? "5", 10);
358
- if (!Number.isFinite(duration) || duration <= 0) {
359
- console.log(JSON.stringify({
360
- success: false,
361
- action: "video.pricing",
362
- error: { code: "invalid_argument", message: "--duration must be a positive number of seconds" },
363
- recovery_steps: [
364
- { command: `naive video pricing --model ${opts.model} --duration 5`, description: "Price a 5-second clip" },
365
- ],
366
- }, null, 2));
367
- process.exit(1);
368
- }
369
- const params = new URLSearchParams({ model: opts.model, duration: String(duration) });
370
- const resp = await apiRequest("GET", `/v1/video/pricing?${params}`);
371
- handleApiError("video.pricing", resp);
372
- const data = resp.data;
373
- agentOutput({
374
- action: "video.pricing",
375
- result: resp.data,
376
- next_steps: [
377
- { command: `naive video generate "your prompt" --model ${opts.model}${duration ? ` --duration ${duration}` : ""}`, description: "Generate a video with this model" },
378
- { command: "naive video models", description: "Compare estimates across all models" },
379
- ],
380
- hints: [
381
- typeof data.estimated_credits === "number"
382
- ? `Estimated cost: ${data.estimated_credits} credits for a ${data.duration_seconds ?? duration}s clip (charged only on successful completion)`
383
- : "Pricing unavailable for this model",
384
- "This is an estimate; the exact charge is metered from the delivered video's duration",
385
- ],
386
- related_commands: ["naive video generate", "naive video models"],
387
- });
388
- });
389
- // Polls a job to completion for `video generate --wait`. Local helper mirroring
390
- // images.ts/search.ts; the prior copy lived in main's Submagic clip block that
391
- // was removed during the main->branch merge.
392
- async function pollJob(jobId) {
393
- while (true) {
394
- await new Promise((r) => setTimeout(r, 2000));
395
- const resp = await apiRequest("GET", `/v1/jobs/${jobId}`);
396
- handleApiError("video.generate.poll", resp);
397
- const data = resp.data;
398
- if (data.status === "completed" || data.status === "failed") {
399
- agentOutput({
400
- action: "video.generate.completed",
401
- result: resp.data,
402
- next_steps: [{ command: `naive jobs get ${jobId}`, description: "Get full job details" }],
403
- hints: [
404
- data.status === "completed"
405
- ? "Video generation complete"
406
- : `Generation failed — no credits deducted. Reason: ${data.error || "unknown"}`,
407
- // Actual charge, derived from the completed job's credits_used (N6/N7).
408
- ...(creditCostHint(resp.data) ? [creditCostHint(resp.data)] : []),
409
- ],
410
- related_commands: ["naive video generate", "naive video status", "naive jobs"],
411
- });
412
- return;
413
- }
414
- process.stderr.write(` Progress: ${data.progress ?? 0}% (${data.status})\n`);
415
- }
416
- }
417
- //# sourceMappingURL=video.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const voiceCmd: Command;