@scenerok/cli 2.11.0 → 2.13.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scenerok/cli",
3
- "version": "2.11.0",
3
+ "version": "2.13.0",
4
4
  "description": "SceneRok CLI - Create videos from your terminal and agent workflows",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,9 +13,9 @@ import animations from "@scenerok/animations"
13
13
  | `blend_caption` | lower-third | yes | 5s | positional: `text` · named: `text, color` |
14
14
  | `blue_sweater_intro_video` | other | yes | 12s | positional: `creatorName` · named: `headline, creatorName, creatorHandle, creatorBio, avatarUrl` |
15
15
  | `code_3d_extrude` | code-anim | yes | 8s | positional: `code` · named: `code, lang, theme, filename` |
16
- | `code_diff` | code-anim | yes | 6s | positional: `from, to` · named: `from, to, lang, theme` |
16
+ | `code_diff` | code-anim | yes | 6s | positional: `from, to` · named: `from, to, lang, theme, filename, label, keep_removed` |
17
17
  | `code_highlight` | code-anim | yes | 5s | positional: `code` · named: `code, lang, theme, filename` |
18
- | `code_morph` | code-anim | yes | 7s | positional: `from, to` · named: `from, to, lang, theme` |
18
+ | `code_morph` | code-anim | yes | 7s | positional: `from, to` · named: `from, to, lang, theme, filename, label, keep_removed` |
19
19
  | `code_particle_assemble` | code-anim | yes | 8s | positional: `code` · named: `code, lang, theme, filename` |
20
20
  | `code_scroll` | code-anim | yes | 6s | positional: `code` · named: `code, lang, theme, filename` |
21
21
  | `code_shader_dissolve` | code-anim | yes | 7s | positional: `code` · named: `code, lang, theme, filename` |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "https://scenerok.com/catalog-index/v1",
3
- "generatedAt": "2026-10-23T04:21:13.537Z",
3
+ "generatedAt": "2026-10-25T06:13:24.500Z",
4
4
  "cdnBase": "https://assets-public.scenerok.com/catalog",
5
5
  "categories": [
6
6
  {
@@ -23,7 +23,8 @@ match, and prefer a plugin whenever the user pasted structured source data.
23
23
  4. **Draft** — for anything a person will look at before it renders:
24
24
  `scenerok_draft_plugin` with the **pinned integer ref**
25
25
  (`scenerok://plugin/<slug>@<int>`), the inputs object, `maxTokens` and an
26
- `idempotencyKey`. It runs the plugin, fills the template, charges the
26
+ `idempotencyKey` (one per attempt — the tool generates one when you omit it
27
+ and echoes it back, so reuse that value on a retry). It runs the plugin, fills the template, charges the
27
28
  provider calls plus the plugin fee, and returns `{ draftId, vidscript,
28
29
  preview, estimate }` with **no render**. Show the user the preview and the
29
30
  script; then `scenerok_render_draft` (`{ draftId }`, or `{ draftId,
@@ -75,7 +76,9 @@ estimate → draft (providers + plugin fee) → preview + edit → render (rende
75
76
 
76
77
  **MCP**
77
78
 
78
- 1. `scenerok_draft_plugin` — `{ ref, inputs, maxTokens, idempotencyKey }`.
79
+ 1. `scenerok_draft_plugin` — `{ ref, inputs, maxTokens, idempotencyKey }`
80
+ (`idempotencyKey` is generated per call when omitted and returned, so a retry
81
+ can replay the same draft instead of paying again).
79
82
  Returns `vidscript`, `preview` (the compiled timeline the web player uses,
80
83
  plus a summary) and an `estimate` that splits **what was just charged**
81
84
  (`estimate.draft`) from **what a render will cost** (`estimate.render`).
@@ -489,6 +489,7 @@ Audio sources can be MP3 inputs, audio plugin results, or the embedded audio str
489
489
  | `pan` | number | -1 (left) to 1 (right) |
490
490
  | `duck_under` | name | Lower this track while the named track plays |
491
491
  | `loudness` | string | `"ebu-r128"` normalizes an imported file |
492
+ | `enabled` | boolean | `false` skips the placement entirely — for a sound whose url is empty when the step that makes it was skipped |
492
493
  | `animate` | object | `{ type: "volume", from: { volume: 0 }, to: { volume: 1 } }` automates the level |
493
494
 
494
495
  Mixing recipes (J- and L-cuts, ducking, automation): `editing-actions.md` → Sound.