veogent 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -98,20 +98,23 @@ veogent create-scene --project <projectId> --chapter <chapterId> \
98
98
  --lang English --material CINEMATIC --scenes 5 --wait
99
99
  ```
100
100
 
101
- #### Phase 3: Generate Images + Videos
101
+ #### Phase 3: Generate Images + Videos (Async Polling)
102
102
 
103
103
  ```bash
104
- # Generate all images
104
+ # 1. Trigger generation (without --wait) to avoid locking your terminal
105
105
  veogent batch-request --type GENERATE_IMAGES \
106
- --project <projectId> --chapter <chapterId> --all \
107
- --orientation VERTICAL --wait
106
+ --project <projectId> --chapter <chapterId> --all --orientation VERTICAL
108
107
 
109
- # Generate all videos
110
- veogent batch-request --type GENERATE_VIDEO \
111
- --project <projectId> --chapter <chapterId> --all \
112
- --orientation VERTICAL --wait
108
+ # 2. Extract `requestId` from the output
109
+ # 3. Poll status asynchronously:
110
+ veogent request-status --id <requestId>
111
+ # ... loop until requestStatus === "COMPLETED"
112
+
113
+ # Repeat for GENERATE_VIDEO once images are ready
113
114
  ```
114
115
 
116
+ > **Tip for Agents:** While the `--wait` flag exists, using `request-status` is recommended so you don't lock your main process for the 5-10 minutes it takes to render a video.
117
+
115
118
  #### Phase 4: QA + Fix Loop
116
119
 
117
120
  ```bash
@@ -187,7 +190,7 @@ veogent request --type GENERATE_VIDEO \
187
190
 
188
191
  | Command | Description |
189
192
  |---------|-------------|
190
- | `request` | Create a single generation job (`GENERATE_IMAGES` / `GENERATE_VIDEO` / `VIDEO_UPSCALE`) |
193
+ | `request` | Create a single generation job (`GENERATE_IMAGES` / `GENERATE_VIDEO` / `UPSCALE_VIDEO`) |
191
194
  | `batch-request` | Batch generation for multiple/all scenes (`--all`) |
192
195
  | `requests` | List existing generation jobs |
193
196
  | `request-status` | Check a specific job by request ID (includes asset URL) |
@@ -252,7 +255,7 @@ Uses sceneA's image as start frame, sceneB's image as end frame. Both scenes mus
252
255
 
253
256
  ```bash
254
257
  # 1. Trigger upscale
255
- veogent request --type VIDEO_UPSCALE \
258
+ veogent request --type UPSCALE_VIDEO \
256
259
  --project X --chapter Y --scene Z \
257
260
  --orientation VERTICAL --resolution VIDEO_RESOLUTION_4K
258
261
 
package/index.js CHANGED
@@ -747,8 +747,8 @@ program
747
747
  // --- Execution Request (Generate Image / Video) ---
748
748
  program
749
749
  .command('request')
750
- .description('Create a job request (GENERATE_IMAGES, GENERATE_VIDEO, VIDEO_UPSCALE). Use VIDEO_UPSCALE to upscale a rendered video to 4K resolution.')
751
- .requiredOption('--type <type>', 'Request type (e.g., GENERATE_IMAGES, GENERATE_VIDEO, VIDEO_UPSCALE)')
750
+ .description('Create a job request (GENERATE_IMAGES, GENERATE_VIDEO, UPSCALE_VIDEO). Use UPSCALE_VIDEO to upscale a rendered video to 4K resolution.')
751
+ .requiredOption('--type <type>', 'Request type (e.g., GENERATE_IMAGES, GENERATE_VIDEO, UPSCALE_VIDEO)')
752
752
  .requiredOption('--project <project>', 'Project ID')
753
753
  .requiredOption('--chapter <chapter>', 'Chapter ID')
754
754
  .requiredOption('--scene <scene>', 'Scene ID')
@@ -757,7 +757,7 @@ program
757
757
  .option('--videomodel <videomodel>', 'Video Model (veo_3_1_fast, veo_3_1_fast_r2v). Default: veo_3_1_fast', 'veo_3_1_fast')
758
758
  .option('--speed <speed>', 'Video Speed (normal, timelapse, slowmotion)', 'normal')
759
759
  .option('--endscene <endscene>', 'End Scene ID for continuous video generation')
760
- .option('--resolution <resolution>', 'Resolution for VIDEO_UPSCALE (e.g. VIDEO_RESOLUTION_4K)', 'VIDEO_RESOLUTION_4K')
760
+ .option('--resolution <resolution>', 'Resolution for UPSCALE_VIDEO (e.g. VIDEO_RESOLUTION_4K)', 'VIDEO_RESOLUTION_4K')
761
761
  .option('--wait', 'Wait for request to complete before returning')
762
762
  .action(async (options) => {
763
763
  try {
@@ -805,7 +805,7 @@ program
805
805
  payload.orientation = options.orientation || 'HORIZONTAL';
806
806
  payload.imageModel = options.imagemodel;
807
807
  }
808
- if (['VIDEO_UPSCALE'].includes(options.type)) {
808
+ if (['UPSCALE_VIDEO'].includes(options.type)) {
809
809
  payload.orientation = options.orientation || 'VERTICAL'; // Upscale defaults to VERTICAL
810
810
  payload.resolution = options.resolution || 'VIDEO_RESOLUTION_4K';
811
811
  }
@@ -1059,7 +1059,7 @@ program
1059
1059
 
1060
1060
  program
1061
1061
  .command('request-status')
1062
- .description('Get status of a specific request by ID. For GENERATE_VIDEO/GENERATE_IMAGES, falls back to assets endpoint for output URL. VIDEO_UPSCALE output URL is read directly from the request object.')
1062
+ .description('Get status of a specific request by ID. For GENERATE_VIDEO/GENERATE_IMAGES, falls back to assets endpoint for output URL. UPSCALE_VIDEO output URL is read directly from the request object.')
1063
1063
  .requiredOption('--id <requestId>', 'Request ID to check')
1064
1064
  .action(async (options) => {
1065
1065
  try {
@@ -1078,7 +1078,7 @@ program
1078
1078
  const sceneId = found?.sceneId || found?.scene_id || null;
1079
1079
 
1080
1080
  let imageAsset = { url: found?.imageVerticalUri || found?.imageHorizontalUri || found?.imageUrl || null };
1081
- // VIDEO_UPSCALE: output URL lives directly on the request object (not in assets endpoint)
1081
+ // UPSCALE_VIDEO: output URL lives directly on the request object (not in assets endpoint)
1082
1082
  let videoAsset = { url: found?.videoVerticalUri || found?.videoHorizontalUri || found?.videoUrl || found?.outputUrl || null };
1083
1083
 
1084
1084
  // For GENERATE_VIDEO only: fallback to assets endpoint if URL not on request object
@@ -1150,7 +1150,7 @@ program
1150
1150
  .option('--out <path>', 'Output file path (default: ./<sceneId>_upscale.mp4)')
1151
1151
  .action(async (options) => {
1152
1152
  try {
1153
- const orientation = options.orientation.toUpperCase();
1153
+ const orientation = options.orientation.toLowerCase(); // Backend expects lowercase (e.g. 'vertical')
1154
1154
  humanLog(`⏳ Fetching upscaled video from flow-media...`);
1155
1155
 
1156
1156
  const data = await api.get(`/app/scene/flow-media/${options.project}/${options.chapter}/${options.scene}/${orientation}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veogent",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "The official CLI to interact with the VEOGENT API - AI Video and Image generation platform",
5
5
  "main": "index.js",
6
6
  "bin": {
package/skills/SKILL.md CHANGED
@@ -57,15 +57,20 @@ veogent characters <projectId> # poll until allReady === true
57
57
 
58
58
  NEVER skip `create-chapter-content` — always let VEOGENT AI generate the storyboard.
59
59
 
60
- ### Phase 3: Generate Images + Videos
60
+ ### Phase 3: Generate Images + Videos (Async)
61
61
 
62
62
  ```bash
63
- veogent batch-request --type GENERATE_IMAGES \
64
- --project X --chapter Y --all --orientation VERTICAL --wait
65
- veogent batch-request --type GENERATE_VIDEO \
66
- --project X --chapter Y --all --orientation VERTICAL --wait
63
+ # 1. Trigger batch generation (without --wait)
64
+ veogent batch-request --type GENERATE_IMAGES --project X --chapter Y --all --orientation VERTICAL
65
+
66
+ # 2. Extract the request IDs from the output
67
+ # 3. Poll their status asynchronously without blocking your main process
68
+ veogent request-status --id <requestId>
69
+ # ... loop until requestStatus === "COMPLETED"
67
70
  ```
68
71
 
72
+ *Note: You CAN use the `--wait` flag to make the CLI block until finished, but using `request-status` is better for true asynchronous agent pipelines so you don't lock your process.*
73
+
69
74
  ### Phase 4: QA + Fix Loop
70
75
 
71
76
  ```bash
@@ -200,7 +205,7 @@ Uses sceneA image → sceneB image as start/end frames. Both must have successfu
200
205
 
201
206
  ```bash
202
207
  # 1. Trigger upscale
203
- veogent request --type VIDEO_UPSCALE \
208
+ veogent request --type UPSCALE_VIDEO \
204
209
  --project X --chapter Y --scene Z \
205
210
  --orientation VERTICAL --resolution VIDEO_RESOLUTION_4K
206
211
 
@@ -237,7 +242,7 @@ veogent download-upscale \
237
242
 
238
243
  1. Verify auth before any command (`veogent status`).
239
244
  2. Wait for character readiness (`allReady`) before requesting images.
240
- 3. Use `--wait` flag on `request`/`batch-request`/`edit-scene` to block until completion.
245
+ 3. **Polling vs Blocking:** For true asynchronous workflows, trigger jobs *without* `--wait`, capture the `requestId`, and poll `request-status --id <requestId>`. Only use `--wait` if you are okay with the CLI locking the process for 5-10 minutes.
241
246
  4. Use `workflow-status` as the main status view.
242
247
  5. Respect queue limits (max 5 concurrent). `queue-status` to check.
243
248
  6. **QA image BEFORE video** — bad image = bad video. Each video gen costs 8-10 min.
@@ -379,7 +384,7 @@ veogent request --type GENERATE_VIDEO --project X --chapter Y --scene Z \
379
384
 
380
385
  | Command | Description | Key Options |
381
386
  |---------|-------------|-------------|
382
- | `request` | Single generation job | `--type` (GENERATE_IMAGES, GENERATE_VIDEO, VIDEO_UPSCALE), `--project`, `--chapter`, `--scene`, `--orientation`, `--speed`, `--endscene`, `--resolution` (upscale), `--wait` |
387
+ | `request` | Single generation job | `--type` (GENERATE_IMAGES, GENERATE_VIDEO, UPSCALE_VIDEO), `--project`, `--chapter`, `--scene`, `--orientation`, `--speed`, `--endscene`, `--resolution` (upscale), `--wait` |
383
388
  | `batch-request` | Batch generation | `--type`, `--project`, `--chapter`, `--all`/`--scenes`, `--orientation`, `--speed`, `--wait` |
384
389
  | `download-upscale` | Download 4K upscaled video as .mp4 | `--project`, `--chapter`, `--scene`, `--orientation`, `--out` |
385
390