blitzreels 0.1.5 → 0.1.7

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 (129) hide show
  1. package/README.md +41 -8
  2. package/dist/agent-context.d.ts +26 -1
  3. package/dist/agent-context.d.ts.map +1 -1
  4. package/dist/agent-context.js +45 -1
  5. package/dist/agent-context.js.map +1 -1
  6. package/dist/cli-command-routing.d.ts.map +1 -1
  7. package/dist/cli-command-routing.js +18 -3
  8. package/dist/cli-command-routing.js.map +1 -1
  9. package/dist/cli-errors.d.ts +3 -1
  10. package/dist/cli-errors.d.ts.map +1 -1
  11. package/dist/cli-errors.js +3 -1
  12. package/dist/cli-errors.js.map +1 -1
  13. package/dist/cli-presenter.d.ts +2 -1
  14. package/dist/cli-presenter.d.ts.map +1 -1
  15. package/dist/cli-presenter.js +75 -31
  16. package/dist/cli-presenter.js.map +1 -1
  17. package/dist/cli-runtime.d.ts +1 -2
  18. package/dist/cli-runtime.d.ts.map +1 -1
  19. package/dist/cli-runtime.js +20 -2
  20. package/dist/cli-runtime.js.map +1 -1
  21. package/dist/cli-types.d.ts +2 -1
  22. package/dist/cli-types.d.ts.map +1 -1
  23. package/dist/cli-value-parsers.d.ts +4 -4
  24. package/dist/cli-value-parsers.d.ts.map +1 -1
  25. package/dist/cli-value-parsers.js +11 -6
  26. package/dist/cli-value-parsers.js.map +1 -1
  27. package/dist/command-metadata.d.ts +9 -3
  28. package/dist/command-metadata.d.ts.map +1 -1
  29. package/dist/command-metadata.js +33 -4
  30. package/dist/command-metadata.js.map +1 -1
  31. package/dist/command-registry.d.ts.map +1 -1
  32. package/dist/command-registry.js +10 -0
  33. package/dist/command-registry.js.map +1 -1
  34. package/dist/commands/ai-edit.js +7 -5
  35. package/dist/commands/ai-edit.js.map +1 -1
  36. package/dist/commands/audio.d.ts +3 -3
  37. package/dist/commands/audio.d.ts.map +1 -1
  38. package/dist/commands/audio.js +5 -2
  39. package/dist/commands/audio.js.map +1 -1
  40. package/dist/commands/caption-dry-run.js +20 -0
  41. package/dist/commands/caption-dry-run.js.map +1 -1
  42. package/dist/commands/caption-selection.d.ts +2 -1
  43. package/dist/commands/caption-selection.d.ts.map +1 -1
  44. package/dist/commands/caption-style-flags.d.ts.map +1 -1
  45. package/dist/commands/caption-style-flags.js +58 -0
  46. package/dist/commands/caption-style-flags.js.map +1 -1
  47. package/dist/commands/captions-specs.d.ts.map +1 -1
  48. package/dist/commands/captions-specs.js +23 -1
  49. package/dist/commands/captions-specs.js.map +1 -1
  50. package/dist/commands/captions.js +23 -1
  51. package/dist/commands/captions.js.map +1 -1
  52. package/dist/commands/clip-runtime.d.ts +2 -5
  53. package/dist/commands/clip-runtime.d.ts.map +1 -1
  54. package/dist/commands/clip-runtime.js +36 -111
  55. package/dist/commands/clip-runtime.js.map +1 -1
  56. package/dist/commands/clips.d.ts +12 -5
  57. package/dist/commands/clips.d.ts.map +1 -1
  58. package/dist/commands/clips.js +466 -83
  59. package/dist/commands/clips.js.map +1 -1
  60. package/dist/commands/effects.d.ts.map +1 -1
  61. package/dist/commands/effects.js +6 -0
  62. package/dist/commands/effects.js.map +1 -1
  63. package/dist/commands/exports.d.ts +1 -8
  64. package/dist/commands/exports.d.ts.map +1 -1
  65. package/dist/commands/exports.js +69 -7
  66. package/dist/commands/exports.js.map +1 -1
  67. package/dist/commands/faceless.d.ts +44 -0
  68. package/dist/commands/faceless.d.ts.map +1 -0
  69. package/dist/commands/faceless.js +587 -0
  70. package/dist/commands/faceless.js.map +1 -0
  71. package/dist/commands/formats.d.ts +41 -0
  72. package/dist/commands/formats.d.ts.map +1 -0
  73. package/dist/commands/formats.js +140 -0
  74. package/dist/commands/formats.js.map +1 -0
  75. package/dist/commands/generation.d.ts +25 -0
  76. package/dist/commands/generation.d.ts.map +1 -0
  77. package/dist/commands/generation.js +494 -0
  78. package/dist/commands/generation.js.map +1 -0
  79. package/dist/commands/jobs.d.ts +20 -0
  80. package/dist/commands/jobs.d.ts.map +1 -0
  81. package/dist/commands/jobs.js +40 -0
  82. package/dist/commands/jobs.js.map +1 -0
  83. package/dist/commands/media-assets.d.ts.map +1 -1
  84. package/dist/commands/media-assets.js +81 -9
  85. package/dist/commands/media-assets.js.map +1 -1
  86. package/dist/commands/media-overlays.d.ts.map +1 -1
  87. package/dist/commands/media-overlays.js +50 -6
  88. package/dist/commands/media-overlays.js.map +1 -1
  89. package/dist/commands/media-runtime.js +19 -1
  90. package/dist/commands/media-runtime.js.map +1 -1
  91. package/dist/commands/onboarding.d.ts +51 -0
  92. package/dist/commands/onboarding.d.ts.map +1 -0
  93. package/dist/commands/onboarding.js +452 -0
  94. package/dist/commands/onboarding.js.map +1 -0
  95. package/dist/commands/project-read.d.ts.map +1 -1
  96. package/dist/commands/project-read.js +32 -3
  97. package/dist/commands/project-read.js.map +1 -1
  98. package/dist/commands/projects.d.ts +1 -6
  99. package/dist/commands/projects.d.ts.map +1 -1
  100. package/dist/commands/projects.js +24 -4
  101. package/dist/commands/projects.js.map +1 -1
  102. package/dist/commands/system.d.ts.map +1 -1
  103. package/dist/commands/system.js +56 -14
  104. package/dist/commands/system.js.map +1 -1
  105. package/dist/commands/text-overlay-spec.d.ts +6 -0
  106. package/dist/commands/text-overlay-spec.d.ts.map +1 -1
  107. package/dist/commands/text-overlay-spec.js +59 -0
  108. package/dist/commands/text-overlay-spec.js.map +1 -1
  109. package/dist/commands/text-overlays.d.ts +6 -0
  110. package/dist/commands/text-overlays.d.ts.map +1 -1
  111. package/dist/commands/text-overlays.js +74 -1
  112. package/dist/commands/text-overlays.js.map +1 -1
  113. package/dist/commands/timeline-runtime.d.ts +3 -0
  114. package/dist/commands/timeline-runtime.d.ts.map +1 -1
  115. package/dist/commands/timeline-runtime.js +102 -9
  116. package/dist/commands/timeline-runtime.js.map +1 -1
  117. package/dist/commands/timeline.d.ts +4 -0
  118. package/dist/commands/timeline.d.ts.map +1 -1
  119. package/dist/commands/timeline.js +119 -47
  120. package/dist/commands/timeline.js.map +1 -1
  121. package/dist/index.js +59 -3
  122. package/dist/index.js.map +1 -1
  123. package/dist/preview-first-edit.d.ts +3 -1
  124. package/dist/preview-first-edit.d.ts.map +1 -1
  125. package/dist/preview-first-edit.js +2 -2
  126. package/dist/preview-first-edit.js.map +1 -1
  127. package/dist/update-notifier.d.ts +2 -1
  128. package/dist/update-notifier.d.ts.map +1 -1
  129. package/package.json +2 -2
@@ -0,0 +1,587 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { CliUsageError } from "../cli-errors.js";
4
+ import { commandSpec } from "../command-metadata.js";
5
+ export const FACELESS_COMMAND_SPECS = [
6
+ commandSpec({
7
+ command: ["faceless", "plans", "create"],
8
+ usage: "blitzreels faceless plans create --project-id ID (--script TEXT | --script-file ./script.txt) [--target-duration-seconds 45] [--planner-model-id MODEL] [--image-model-id MODEL] [--video-model MODEL] [--idempotency-key KEY] [--json]",
9
+ description: "Create an immutable generated-only 9:16 faceless production plan revision.",
10
+ dryRunSupported: true,
11
+ flags: [
12
+ "project-id",
13
+ "script",
14
+ "script-file",
15
+ "target-duration-seconds",
16
+ "visual-style",
17
+ "planner-model-id",
18
+ "image-model-id",
19
+ "video-model",
20
+ "voice-id",
21
+ { name: "include-captions", type: "boolean" },
22
+ "caption-style-id",
23
+ { name: "generate-background-music", type: "boolean" },
24
+ { name: "generate-sound-effects", type: "boolean" },
25
+ {
26
+ name: "idempotency-key",
27
+ description: "Stable retry key; reuse only with identical inputs.",
28
+ },
29
+ ],
30
+ }),
31
+ commandSpec({
32
+ command: ["faceless", "plans", "get"],
33
+ usage: "blitzreels faceless plans get --project-id ID --revision-id ID [--json]",
34
+ description: "Get one faceless plan revision and its approval state.",
35
+ flags: ["project-id", "revision-id"],
36
+ }),
37
+ commandSpec({
38
+ command: ["faceless", "plans", "approve"],
39
+ usage: "blitzreels faceless plans approve --project-id ID --revision-id ID --idempotency-key KEY [--json]",
40
+ description: "Approve one plan revision and start style-anchor, character-anchor, and keyframe generation.",
41
+ mutates: true,
42
+ dryRunSupported: true,
43
+ flags: [
44
+ "project-id",
45
+ "revision-id",
46
+ { name: "idempotency-key", required: true },
47
+ ],
48
+ }),
49
+ commandSpec({
50
+ command: ["faceless", "plans", "revise"],
51
+ usage: "blitzreels faceless plans revise --project-id ID --revision-id ID (--changes-json JSON | --changes-file changes.json) --idempotency-key KEY [--dry-run] [--json]",
52
+ description: "Create a new draft revision from explicit scene, character, or model changes.",
53
+ mutates: true,
54
+ dryRunSupported: true,
55
+ flags: [
56
+ "project-id",
57
+ "revision-id",
58
+ "changes-json",
59
+ "changes-file",
60
+ { name: "idempotency-key", required: true },
61
+ ],
62
+ }),
63
+ commandSpec({
64
+ command: ["faceless", "assets", "list"],
65
+ usage: "blitzreels faceless assets list --project-id ID --revision-id ID [--json]",
66
+ description: "List bounded scene and character choices with their current asset IDs.",
67
+ flags: ["project-id", "revision-id"],
68
+ }),
69
+ commandSpec({
70
+ command: ["faceless", "assets", "regenerate"],
71
+ usage: "blitzreels faceless assets regenerate --project-id ID --revision-id ID (--style-anchor | --character-id ID | --scene-index N) --idempotency-key KEY [--dry-run] [--json]",
72
+ description: "Regenerate the style anchor, one character anchor, or one scene keyframe.",
73
+ mutates: true,
74
+ dryRunSupported: true,
75
+ flags: [
76
+ "project-id",
77
+ "revision-id",
78
+ {
79
+ name: "style-anchor",
80
+ type: "boolean",
81
+ description: "Regenerate the shared style reference frame and every scene keyframe that depends on it.",
82
+ },
83
+ "character-id",
84
+ "scene-index",
85
+ { name: "idempotency-key", required: true },
86
+ ],
87
+ }),
88
+ commandSpec({
89
+ command: ["faceless", "assets", "approve"],
90
+ usage: "blitzreels faceless assets approve --project-id ID --revision-id ID --idempotency-key KEY [--json]",
91
+ description: "Approve reviewed anchors and keyframes, then start scene animation.",
92
+ mutates: true,
93
+ dryRunSupported: true,
94
+ flags: [
95
+ "project-id",
96
+ "revision-id",
97
+ { name: "idempotency-key", required: true },
98
+ ],
99
+ }),
100
+ ];
101
+ function optionalString({ value, field, }) {
102
+ if (value === undefined)
103
+ return undefined;
104
+ if (typeof value !== "string" || value.trim().length === 0) {
105
+ throw new CliUsageError({
106
+ code: "invalid_flag_value",
107
+ message: `${field} must be a non-empty string.`,
108
+ });
109
+ }
110
+ return value;
111
+ }
112
+ function resolvePlanChanges({ flags, helpers, }) {
113
+ const changes = helpers.parseJsonObjectFlag({
114
+ flags,
115
+ name: "changes-json",
116
+ });
117
+ if (!changes) {
118
+ throw new CliUsageError({
119
+ code: "missing_required_flag",
120
+ message: "Provide --changes-json or --changes-file.",
121
+ });
122
+ }
123
+ const rawSceneUpdates = changes.scene_updates;
124
+ const rawCharacterUpdates = changes.character_updates;
125
+ if (rawSceneUpdates !== undefined && !Array.isArray(rawSceneUpdates)) {
126
+ throw new CliUsageError({
127
+ code: "invalid_flag_value",
128
+ message: "scene_updates must be an array.",
129
+ });
130
+ }
131
+ if (rawCharacterUpdates !== undefined &&
132
+ !Array.isArray(rawCharacterUpdates)) {
133
+ throw new CliUsageError({
134
+ code: "invalid_flag_value",
135
+ message: "character_updates must be an array.",
136
+ });
137
+ }
138
+ const sceneUpdates = rawSceneUpdates?.map((item, index) => {
139
+ if (!item || typeof item !== "object" || Array.isArray(item)) {
140
+ throw new CliUsageError({
141
+ code: "invalid_flag_value",
142
+ message: `scene_updates[${index}] must be an object.`,
143
+ });
144
+ }
145
+ const update = item;
146
+ const sceneIndex = Number(update.scene_index);
147
+ if (!Number.isInteger(sceneIndex) || sceneIndex < 0) {
148
+ throw new CliUsageError({
149
+ code: "invalid_flag_value",
150
+ message: `scene_updates[${index}].scene_index must be a non-negative integer.`,
151
+ });
152
+ }
153
+ if (update.character_ids !== undefined &&
154
+ (!Array.isArray(update.character_ids) ||
155
+ update.character_ids.some((value) => typeof value !== "string"))) {
156
+ throw new CliUsageError({
157
+ code: "invalid_flag_value",
158
+ message: `scene_updates[${index}].character_ids must be a string array.`,
159
+ });
160
+ }
161
+ return {
162
+ sceneIndex,
163
+ title: optionalString({
164
+ value: update.title,
165
+ field: `scene_updates[${index}].title`,
166
+ }),
167
+ characterIds: update.character_ids,
168
+ imagePrompt: optionalString({
169
+ value: update.image_prompt,
170
+ field: `scene_updates[${index}].image_prompt`,
171
+ }),
172
+ motionPrompt: optionalString({
173
+ value: update.motion_prompt,
174
+ field: `scene_updates[${index}].motion_prompt`,
175
+ }),
176
+ };
177
+ });
178
+ const characterUpdates = rawCharacterUpdates?.map((item, index) => {
179
+ if (!item || typeof item !== "object" || Array.isArray(item)) {
180
+ throw new CliUsageError({
181
+ code: "invalid_flag_value",
182
+ message: `character_updates[${index}] must be an object.`,
183
+ });
184
+ }
185
+ const update = item;
186
+ const characterId = optionalString({
187
+ value: update.character_id,
188
+ field: `character_updates[${index}].character_id`,
189
+ });
190
+ if (!characterId) {
191
+ throw new CliUsageError({
192
+ code: "invalid_flag_value",
193
+ message: `character_updates[${index}].character_id is required.`,
194
+ });
195
+ }
196
+ return {
197
+ characterId,
198
+ name: optionalString({
199
+ value: update.name,
200
+ field: `character_updates[${index}].name`,
201
+ }),
202
+ canonicalDescription: optionalString({
203
+ value: update.canonical_description,
204
+ field: `character_updates[${index}].canonical_description`,
205
+ }),
206
+ anchorPrompt: optionalString({
207
+ value: update.anchor_prompt,
208
+ field: `character_updates[${index}].anchor_prompt`,
209
+ }),
210
+ };
211
+ });
212
+ const result = {
213
+ sceneUpdates,
214
+ characterUpdates,
215
+ styleAnchorPrompt: optionalString({
216
+ value: changes.style_anchor_prompt,
217
+ field: "style_anchor_prompt",
218
+ }),
219
+ imageModelId: optionalString({
220
+ value: changes.image_model_id,
221
+ field: "image_model_id",
222
+ }),
223
+ videoModel: optionalString({
224
+ value: changes.video_model,
225
+ field: "video_model",
226
+ }),
227
+ };
228
+ if (!result.sceneUpdates?.length &&
229
+ !result.characterUpdates?.length &&
230
+ !result.styleAnchorPrompt &&
231
+ !result.imageModelId &&
232
+ !result.videoModel) {
233
+ throw new CliUsageError({
234
+ code: "invalid_flag_value",
235
+ message: "The changes document contains no plan changes.",
236
+ });
237
+ }
238
+ return result;
239
+ }
240
+ function resolveRegenerationTarget({ flags, helpers, }) {
241
+ const styleAnchor = helpers.getOptionalBooleanFlag({ flags, name: "style-anchor" }) ?? false;
242
+ const characterId = helpers.getStringFlag({ flags, name: "character-id" });
243
+ const sceneIndex = helpers.getNumberFlag({ flags, name: "scene-index" });
244
+ const selectedTargets = [
245
+ styleAnchor,
246
+ Boolean(characterId),
247
+ sceneIndex !== undefined,
248
+ ].filter(Boolean).length;
249
+ if (selectedTargets !== 1) {
250
+ throw new CliUsageError({
251
+ code: "invalid_flag_value",
252
+ message: "Provide exactly one of --style-anchor, --character-id, or --scene-index.",
253
+ });
254
+ }
255
+ if (styleAnchor) {
256
+ return { assetType: "style_anchor" };
257
+ }
258
+ if (characterId) {
259
+ return { assetType: "character_anchor", characterId };
260
+ }
261
+ if (!Number.isInteger(sceneIndex) || Number(sceneIndex) < 0) {
262
+ throw new CliUsageError({
263
+ code: "invalid_flag_value",
264
+ message: "--scene-index must be a non-negative integer.",
265
+ });
266
+ }
267
+ return {
268
+ assetType: "scene_keyframe",
269
+ sceneIndex: Number(sceneIndex),
270
+ };
271
+ }
272
+ function resolveScript({ flags, helpers, }) {
273
+ const inline = helpers.getStringFlag({ flags, name: "script" });
274
+ const file = helpers.getStringFlag({ flags, name: "script-file" });
275
+ if ((inline && file) || (!inline && !file)) {
276
+ throw new CliUsageError({
277
+ code: "invalid_flag_value",
278
+ message: "Provide exactly one of --script or --script-file.",
279
+ usage: "blitzreels faceless plans create --project-id ID (--script TEXT | --script-file ./script.txt)",
280
+ });
281
+ }
282
+ return inline ?? readFileSync(resolve(String(file)), "utf8");
283
+ }
284
+ function buildCreateBody({ context, helpers, }) {
285
+ const flags = context.args.flags;
286
+ return {
287
+ script: resolveScript({ flags, helpers }),
288
+ target_duration_seconds: helpers.getNumberFlag({
289
+ flags,
290
+ name: "target-duration-seconds",
291
+ }),
292
+ visual_style: helpers.getStringFlag({ flags, name: "visual-style" }),
293
+ planner_model_id: helpers.getStringFlag({
294
+ flags,
295
+ name: "planner-model-id",
296
+ }),
297
+ image_model_id: helpers.getStringFlag({ flags, name: "image-model-id" }),
298
+ video_model: helpers.getStringFlag({ flags, name: "video-model" }),
299
+ voice_id: helpers.getStringFlag({ flags, name: "voice-id" }),
300
+ include_captions: helpers.getOptionalBooleanFlag({
301
+ flags,
302
+ name: "include-captions",
303
+ }),
304
+ caption_style_id: helpers.getStringFlag({
305
+ flags,
306
+ name: "caption-style-id",
307
+ }),
308
+ generate_background_music: helpers.getOptionalBooleanFlag({
309
+ flags,
310
+ name: "generate-background-music",
311
+ }),
312
+ generate_sound_effects: helpers.getOptionalBooleanFlag({
313
+ flags,
314
+ name: "generate-sound-effects",
315
+ }),
316
+ };
317
+ }
318
+ export function createFacelessCommandOperation({ helpers, }) {
319
+ return {
320
+ name: "faceless",
321
+ matches: ({ command }) => command[0] === "faceless",
322
+ handle: async ({ context }) => {
323
+ const [domain, action] = context.args.command.slice(1);
324
+ const flags = context.args.flags;
325
+ const projectId = helpers.requireStringFlag({
326
+ flags,
327
+ name: "project-id",
328
+ });
329
+ if (domain === "plans" && action === "create") {
330
+ const result = await context.client.faceless.plans.create({
331
+ projectId,
332
+ script: resolveScript({ flags, helpers }),
333
+ targetDurationSeconds: helpers.getNumberFlag({
334
+ flags,
335
+ name: "target-duration-seconds",
336
+ }),
337
+ visualStyle: helpers.getStringFlag({ flags, name: "visual-style" }),
338
+ plannerModelId: helpers.getStringFlag({
339
+ flags,
340
+ name: "planner-model-id",
341
+ }),
342
+ imageModelId: helpers.getStringFlag({
343
+ flags,
344
+ name: "image-model-id",
345
+ }),
346
+ videoModel: helpers.getStringFlag({ flags, name: "video-model" }),
347
+ voiceId: helpers.getStringFlag({ flags, name: "voice-id" }),
348
+ includeCaptions: helpers.getOptionalBooleanFlag({
349
+ flags,
350
+ name: "include-captions",
351
+ }),
352
+ captionStyleId: helpers.getStringFlag({
353
+ flags,
354
+ name: "caption-style-id",
355
+ }),
356
+ generateBackgroundMusic: helpers.getOptionalBooleanFlag({
357
+ flags,
358
+ name: "generate-background-music",
359
+ }),
360
+ generateSoundEffects: helpers.getOptionalBooleanFlag({
361
+ flags,
362
+ name: "generate-sound-effects",
363
+ }),
364
+ idempotencyKey: helpers.getStringFlag({
365
+ flags,
366
+ name: "idempotency-key",
367
+ }),
368
+ });
369
+ helpers.printResult({
370
+ json: context.json,
371
+ value: result,
372
+ human: [
373
+ `Revision: ${result.id} (v${result.revision})`,
374
+ `Status: ${result.status}`,
375
+ `Scenes: ${result.plan.scenes.length}`,
376
+ `Characters: ${result.plan.characters.length}`,
377
+ `Estimated total: ${result.plan.costEstimate.total} credits`,
378
+ ],
379
+ });
380
+ return true;
381
+ }
382
+ const revisionId = helpers.requireStringFlag({
383
+ flags,
384
+ name: "revision-id",
385
+ });
386
+ if (domain === "plans" && action === "get") {
387
+ const result = await context.client.faceless.plans.get({
388
+ projectId,
389
+ revisionId,
390
+ });
391
+ helpers.printResult({
392
+ json: context.json,
393
+ value: result,
394
+ human: [
395
+ `Revision: ${result.id} (v${result.revision})`,
396
+ `Status: ${result.status}`,
397
+ `Preproduction job: ${result.preproduction_job_id ?? "none"}`,
398
+ `Generation job: ${result.generation_job_id ?? "none"}`,
399
+ `Keyframes: ${result.preproduction_assets?.keyframes.length ?? 0}`,
400
+ ...(result.error ? [`Error: ${result.error}`] : []),
401
+ ],
402
+ });
403
+ return true;
404
+ }
405
+ if (domain === "assets" && action === "list") {
406
+ const result = await context.client.faceless.plans.get({
407
+ projectId,
408
+ revisionId,
409
+ });
410
+ helpers.printResult({
411
+ json: context.json,
412
+ value: result.review_options,
413
+ human: [
414
+ ...(result.review_options.style_anchor
415
+ ? [
416
+ `style_anchor | ${result.review_options.style_anchor.label} | asset=${result.review_options.style_anchor.current_asset_id ?? "missing"} | scenes=${result.review_options.style_anchor.dependent_scene_indexes.join(",") || "none"} | cost=${result.review_options.style_anchor.estimated_regeneration_credits} credits`,
417
+ ]
418
+ : []),
419
+ ...result.review_options.scenes.map((scene) => `scene:${scene.scene_index} | ${scene.label} | asset=${scene.current_asset_id ?? "missing"} | cost=${scene.estimated_regeneration_credits} credits`),
420
+ ...result.review_options.characters.map((character) => `character:${character.character_id} | ${character.label} | asset=${character.current_asset_id ?? "missing"} | scenes=${character.dependent_scene_indexes.join(",") || "none"} | cost=${character.estimated_regeneration_credits} credits`),
421
+ ],
422
+ });
423
+ return true;
424
+ }
425
+ const idempotencyKey = helpers.requireStringFlag({
426
+ flags,
427
+ name: "idempotency-key",
428
+ });
429
+ if (domain === "plans" && action === "approve") {
430
+ const result = await context.client.faceless.plans.approve({
431
+ projectId,
432
+ revisionId,
433
+ idempotencyKey,
434
+ });
435
+ helpers.printResult({
436
+ json: context.json,
437
+ value: result,
438
+ human: [
439
+ `Revision: ${result.revision_id}`,
440
+ `Status: ${result.status}`,
441
+ `Job: ${result.job_id}`,
442
+ ],
443
+ });
444
+ return true;
445
+ }
446
+ if (domain === "plans" && action === "revise") {
447
+ const changes = resolvePlanChanges({ flags, helpers });
448
+ const result = await context.client.faceless.plans.revise({
449
+ projectId,
450
+ revisionId,
451
+ ...changes,
452
+ idempotencyKey,
453
+ });
454
+ helpers.printResult({
455
+ json: context.json,
456
+ value: result,
457
+ human: [
458
+ `Revision: ${result.id} (v${result.revision})`,
459
+ `Source revision: ${revisionId}`,
460
+ `Status: ${result.status}`,
461
+ `Scenes changed: ${changes.sceneUpdates?.length ?? 0}`,
462
+ `Characters changed: ${changes.characterUpdates?.length ?? 0}`,
463
+ ],
464
+ });
465
+ return true;
466
+ }
467
+ if (domain === "assets" && action === "regenerate") {
468
+ const target = resolveRegenerationTarget({ flags, helpers });
469
+ const result = await context.client.faceless.assets.regenerate({
470
+ projectId,
471
+ revisionId,
472
+ target,
473
+ idempotencyKey,
474
+ });
475
+ helpers.printResult({
476
+ json: context.json,
477
+ value: result,
478
+ human: [
479
+ `Revision: ${result.revision_id}`,
480
+ `Status: ${result.status}`,
481
+ `Job: ${result.job_id}`,
482
+ `Asset type: ${result.asset_type}`,
483
+ `Scenes refreshed: ${result.scene_indexes.join(",") || "none"}`,
484
+ ],
485
+ });
486
+ return true;
487
+ }
488
+ if (domain === "assets" && action === "approve") {
489
+ const result = await context.client.faceless.assets.approve({
490
+ projectId,
491
+ revisionId,
492
+ idempotencyKey,
493
+ });
494
+ helpers.printResult({
495
+ json: context.json,
496
+ value: result,
497
+ human: [
498
+ `Revision: ${result.revision_id}`,
499
+ `Status: ${result.status}`,
500
+ `Job: ${result.job_id}`,
501
+ ],
502
+ });
503
+ return true;
504
+ }
505
+ return false;
506
+ },
507
+ buildDryRun: ({ context, spec }) => {
508
+ const [domain, action] = context.args.command.slice(1);
509
+ const flags = context.args.flags;
510
+ const projectId = helpers.requireStringFlag({
511
+ flags,
512
+ name: "project-id",
513
+ });
514
+ if (domain === "plans" && action === "create") {
515
+ return helpers.dryRunRequest({
516
+ spec,
517
+ method: "POST",
518
+ path: `/projects/${encodeURIComponent(projectId)}/faceless/plans`,
519
+ body: buildCreateBody({ context, helpers }),
520
+ notes: [
521
+ "No anchors, keyframes, or clips are generated by this call.",
522
+ ],
523
+ });
524
+ }
525
+ const revisionId = helpers.requireStringFlag({
526
+ flags,
527
+ name: "revision-id",
528
+ });
529
+ if (domain === "plans" && action === "revise") {
530
+ const changes = resolvePlanChanges({ flags, helpers });
531
+ return helpers.dryRunRequest({
532
+ spec,
533
+ method: "POST",
534
+ path: `/projects/${encodeURIComponent(projectId)}/faceless/plans/${encodeURIComponent(revisionId)}/revise`,
535
+ body: {
536
+ scene_updates: changes.sceneUpdates?.map((update) => ({
537
+ scene_index: update.sceneIndex,
538
+ title: update.title,
539
+ character_ids: update.characterIds,
540
+ image_prompt: update.imagePrompt,
541
+ motion_prompt: update.motionPrompt,
542
+ })),
543
+ character_updates: changes.characterUpdates?.map((update) => ({
544
+ character_id: update.characterId,
545
+ name: update.name,
546
+ canonical_description: update.canonicalDescription,
547
+ anchor_prompt: update.anchorPrompt,
548
+ })),
549
+ style_anchor_prompt: changes.styleAnchorPrompt,
550
+ image_model_id: changes.imageModelId,
551
+ video_model: changes.videoModel,
552
+ },
553
+ notes: ["Creates a new draft revision and does not generate media."],
554
+ });
555
+ }
556
+ if (domain === "assets" && action === "regenerate") {
557
+ const target = resolveRegenerationTarget({ flags, helpers });
558
+ return helpers.dryRunRequest({
559
+ spec,
560
+ method: "POST",
561
+ path: `/projects/${encodeURIComponent(projectId)}/faceless/plans/${encodeURIComponent(revisionId)}/regenerate-assets`,
562
+ body: target.assetType === "style_anchor"
563
+ ? { asset_type: target.assetType }
564
+ : target.assetType === "character_anchor"
565
+ ? {
566
+ asset_type: target.assetType,
567
+ character_id: target.characterId,
568
+ }
569
+ : {
570
+ asset_type: target.assetType,
571
+ scene_index: target.sceneIndex,
572
+ },
573
+ });
574
+ }
575
+ if (action !== "approve")
576
+ return undefined;
577
+ const suffix = domain === "assets" ? "approve-assets" : "approve";
578
+ return helpers.dryRunRequest({
579
+ spec,
580
+ method: "POST",
581
+ path: `/projects/${encodeURIComponent(projectId)}/faceless/plans/${encodeURIComponent(revisionId)}/${suffix}`,
582
+ body: {},
583
+ });
584
+ },
585
+ };
586
+ }
587
+ //# sourceMappingURL=faceless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faceless.js","sourceRoot":"","sources":["../../src/commands/faceless.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { Flags } from "../cli-types.js";
2
+ import { type CommandSpec } from "../command-metadata.js";
3
+ import type { DryRunPreview } from "../preview-first-edit.js";
4
+ import type { CommandOperation } from "./command-operation.js";
5
+ export declare const FORMATS_COMMAND_SPECS: CommandSpec[];
6
+ export type FormatsCommandHelpers = {
7
+ dryRunRequest: (params: {
8
+ spec: CommandSpec;
9
+ method: string;
10
+ path: string;
11
+ body: unknown;
12
+ followUpRequests: DryRunPreview["follow_up_requests"] | undefined;
13
+ notes: string[] | undefined;
14
+ }) => DryRunPreview;
15
+ getBooleanFlag: (params: {
16
+ flags: Flags;
17
+ name: string;
18
+ }) => boolean;
19
+ getNumberFlag: (params: {
20
+ flags: Flags;
21
+ name: string;
22
+ }) => number | undefined;
23
+ getStringFlag: (params: {
24
+ flags: Flags;
25
+ name: string;
26
+ }) => string | undefined;
27
+ printResult: (params: {
28
+ json: boolean;
29
+ value: unknown;
30
+ human: string[];
31
+ fields: string[] | undefined;
32
+ }) => void;
33
+ requireStringFlag: (params: {
34
+ flags: Flags;
35
+ name: string;
36
+ }) => string;
37
+ };
38
+ export declare function createFormatsCommandOperation({ helpers, }: {
39
+ helpers: FormatsCommandHelpers;
40
+ }): CommandOperation;
41
+ //# sourceMappingURL=formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/commands/formats.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAqC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,CAAC;QACd,gBAAgB,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC;QAClE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;KAC7B,KAAK,aAAa,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;KAC9B,KAAK,IAAI,CAAC;IACX,iBAAiB,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CACvE,CAAC;AAyCF,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,GACR,EAAE;IACD,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,gBAAgB,CA4EnB"}