@remixmate/cli 0.12.0 → 0.12.1

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.12.0",
4
- "generatedAt": "2026-10-09T05:51:49.567Z",
3
+ "version": "0.12.1",
4
+ "generatedAt": "2026-10-12T11:13:40.014Z",
5
5
  "skills": [
6
6
  {
7
7
  "id": "doc-parse",
@@ -590,6 +590,14 @@
590
590
  "type": "string",
591
591
  "description": "Scene background preset, one of the template's customPayloadSchema.background.preset values. Written to every scene's customPayload.background.preset. **Must** pass when the user picked a background: the replicate card shows `背景样式: 纯色(solid)` → pass `solid`. Without it the scene keeps the template default. Requires template_id; unsupported values are rejected. `image` / `video` also need customPayload.background.assetRef on each scene."
592
592
  },
593
+ "font_id": {
594
+ "type": "string",
595
+ "description": "Font library key (font.uniq_id) for the on-screen text and subtitles. Written to global.font.fontId; match_template folds it into the binding's typography and ab-render resolves and installs the real font before rendering. **Must** pass when the user picked a font: the replicate card shows it as `名字(id)`, e.g. `字体: <名字>(<uniqId>)` → pass the id in the parentheses. Pass the opaque key, never a CSS family name or the display name — those fall back to the template font with no error. Without it the choice is silently dropped and the video renders in the template's own font. Omit to follow the template's font pairing."
596
+ },
597
+ "font_name": {
598
+ "type": "string",
599
+ "description": "Display name of the font picked in font_id (the text before the parentheses on the card). Stored at global.font.fontName for display only; never used for rendering. Pass it together with font_id."
600
+ },
593
601
  "template_id": {
594
602
  "type": "string",
595
603
  "description": "Template id (from template_registry). The template owns outputLanguage and may also declare a defaultVoiceId; both flow into the produced DSL."
@@ -681,6 +689,8 @@
681
689
  "speed",
682
690
  "variant",
683
691
  "background_preset",
692
+ "font_id",
693
+ "font_name",
684
694
  "template_id",
685
695
  "template_source",
686
696
  "template_candidates",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remixmate/cli",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "AI media generation skills for Claude Code / Codex — 12 skills covering image, video, voice, digital human, web screenshot, web recording, script, template registry, rendering, Jianying export, and video deconstruction.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -475,6 +475,8 @@ python3 <SkillDir>/scripts/gen_script.py \
475
475
  | `--speed` | Narration speech rate (0.5–2.0), written to `global.narration.speed` and applied when `prepare_video_assets` calls gen-voice. Pass it whenever the user picked a speed (the replicate form's 语速 field sends one). Above ~1.3 subtitle alignment drifts and the delivery turns mechanical — shorten the script instead. | `1.0` |
476
476
  | `--variant` | Template visual variant id (a key of the template's `variants`; `template-registry --list-templates` prints them as `variantIds`). Written to `meta.templateVariant`, which takes precedence over the fuzzy `--style` match. Pass it whenever the user picked a style — the replicate card shows it as `名字(id)`, e.g. `视觉风格: 紫色科技(tech-purple)`; pass the id in the parentheses. Requires `--template-id`; unknown ids are rejected. | template default |
477
477
  | `--background-preset` | Scene background preset, one of the template's `customPayloadSchema.background.preset` values. Written to every scene's `customPayload.background.preset` (other keys of the template's default background are kept). Pass it whenever the user picked a background, e.g. `背景样式: 纯色(solid)` → `solid`. `image` / `video` also need `customPayload.background.assetRef`. Requires `--template-id`; unsupported values are rejected. | template default |
478
+ | `--font-id` | Font library key (`font.uniq_id`), written to `global.font.fontId`; ab-render resolves and installs the real font at render time. Pass it whenever the user picked a font — the replicate card shows it as `名字(id)`, e.g. `字体: <名字>(<uniqId>)`; pass the id in the parentheses. Never pass a CSS family or the display name: an unknown key falls back to the template font with no error. | template font |
479
+ | `--font-name` | Display name of the picked font → `global.font.fontName` (display only, never used for rendering). Pass it with `--font-id`. | — |
478
480
  | `--template-source` | How `--template-id` was chosen: `user-explicit` / `user-confirmed` / `auto`, written to `meta.templateSelection.source`. `auto` is refused — confirm with the user first (see "Agent behavior: template selection comes before the script"). Omitted = not recorded, with a stderr notice. Requires `--template-id`. | — |
479
481
  | `--template-candidates` | Repeatable. Template ids offered to the user, recommended first → `meta.templateSelection.candidates`. With `user-confirmed`, `--template-id` must be one of them. | — |
480
482
  | `--allow-digital-human` | Whether to allow digital-human assets. | off |
@@ -2011,9 +2011,9 @@ def build_dsl(
2011
2011
  f"is only a placeholder.\n"
2012
2012
  f" Write the full DSL yourself from the user's material (scenes, assets, visuals, "
2013
2013
  f"customPayload) and submit all of it to prepare_video_assets — it is used as-is, "
2014
- f"not merged onto this skeleton. Keep meta.templateId, and copy meta.templateVariant and "
2015
- f"each scene's customPayload.background from this skeleton when present (they carry the "
2016
- f"user's --variant / --background-preset choice).",
2014
+ f"not merged onto this skeleton. Keep meta.templateId, and copy meta.templateVariant, "
2015
+ f"global.font and each scene's customPayload.background from this skeleton when present "
2016
+ f"(they carry the user's --variant / --font-id / --background-preset choice).",
2017
2017
  file=sys.stderr,
2018
2018
  )
2019
2019
 
@@ -52,6 +52,14 @@
52
52
  "type": "string",
53
53
  "description": "Scene background preset, one of the template's customPayloadSchema.background.preset values. Written to every scene's customPayload.background.preset. **Must** pass when the user picked a background: the replicate card shows `背景样式: 纯色(solid)` → pass `solid`. Without it the scene keeps the template default. Requires template_id; unsupported values are rejected. `image` / `video` also need customPayload.background.assetRef on each scene."
54
54
  },
55
+ "font_id": {
56
+ "type": "string",
57
+ "description": "Font library key (font.uniq_id) for the on-screen text and subtitles. Written to global.font.fontId; match_template folds it into the binding's typography and ab-render resolves and installs the real font before rendering. **Must** pass when the user picked a font: the replicate card shows it as `名字(id)`, e.g. `字体: <名字>(<uniqId>)` → pass the id in the parentheses. Pass the opaque key, never a CSS family name or the display name — those fall back to the template font with no error. Without it the choice is silently dropped and the video renders in the template's own font. Omit to follow the template's font pairing."
58
+ },
59
+ "font_name": {
60
+ "type": "string",
61
+ "description": "Display name of the font picked in font_id (the text before the parentheses on the card). Stored at global.font.fontName for display only; never used for rendering. Pass it together with font_id."
62
+ },
55
63
  "template_id": {
56
64
  "type": "string",
57
65
  "description": "Template id (from template_registry). The template owns outputLanguage and may also declare a defaultVoiceId; both flow into the produced DSL."
@@ -137,6 +145,8 @@
137
145
  "speed",
138
146
  "variant",
139
147
  "background_preset",
148
+ "font_id",
149
+ "font_name",
140
150
  "template_id",
141
151
  "template_source",
142
152
  "template_candidates",
@@ -2,6 +2,6 @@
2
2
  "skillName": "gen-script",
3
3
  "repoName": "agent-skill-media-maker",
4
4
  "skillId": "474",
5
- "version": "V19",
5
+ "version": "V20",
6
6
  "skillDescription": "Video-script generation skill. Turns a user-supplied topic into a structured Video DSL (JSON) that describes the full video — scene structure, asset requirements, and narrative flow.\n\nUse this skill as soon as the user mentions any of these intents:\n- Write a video script, generate a video script, plan a video, write storyboards\n- Create a short video, plan video content, generate a Video DSL\n- Turn a topic into a video structure / video content plan\n\nEven when the user does not say \"generate the DSL\", use this skill whenever they want to turn a topic into a structured video plan.\n\n⚠️ Stop-and-confirm gate: after this skill returns a DSL, show the full script and wait for the user's explicit confirmation. Never call `prepare_video_assets` in the same turn."
7
7
  }