@remixmate/cli 0.9.68 → 0.9.69
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/dist/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remixmate/cli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.69",
|
|
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",
|
|
@@ -117,14 +117,28 @@ python3 <SkillDir>/scripts/render_video.py --job-id 42 --upload-title "My video"
|
|
|
117
117
|
After rendering, the script auto-uploads by default; `render-manifest.json` then contains an
|
|
118
118
|
`upload.fileUrl` field, and `upload.playbackUrl` (transcoded) once VOD processing finishes.
|
|
119
119
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
120
|
+
On success the script prints these lines on stdout:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
🎬 Video playback URL: <videoUrl>
|
|
124
|
+
🖼️ Cover image URL: <coverUrl> # only when the template ships a cover
|
|
125
|
+
__render_video_asset__ {"url": "...", "coverUrl": "...", "durationSec": ...}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
How to report the result depends on the host:
|
|
129
|
+
|
|
130
|
+
- **Host with a built-in player** (the RemixMate web app; the env has `REMIXMATE_HOST=workbuddy`):
|
|
131
|
+
do **not** retype the URLs. The host reads `__render_video_asset__` and renders the player and
|
|
132
|
+
cover itself. Just tell the user the video is ready.
|
|
133
|
+
- **Any other host** (Codex, Claude Code, other CLIs): nothing renders a player, so the links in
|
|
134
|
+
your reply are the only way the user can get to the result. You **must** output both:
|
|
135
|
+
- the video link (from `🎬 Video playback URL`)
|
|
136
|
+
- the cover link (from `🖼️ Cover image URL`, or `coverUrl` in `__render_video_asset__`).
|
|
137
|
+
If neither is printed, say the template has no cover rather than leaving it out silently.
|
|
138
|
+
|
|
139
|
+
Copy each URL **verbatim from the stdout line**, character for character. Never retype one
|
|
140
|
+
from memory: on 2026-08-30 a single character was dropped (`…c1c20102` → `…c1c2012`), and the
|
|
141
|
+
user got a 404 while the file sat fine on the CDN.
|
|
128
142
|
|
|
129
143
|
### Render but skip the upload
|
|
130
144
|
|
|
@@ -3059,6 +3059,10 @@ Examples:
|
|
|
3059
3059
|
effective_playback = playback_url or remote_url
|
|
3060
3060
|
if effective_playback and not effective_playback.startswith("vod://"):
|
|
3061
3061
|
print(f"\n🎬 Video playback URL: {effective_playback}")
|
|
3062
|
+
# 封面也走 stdout:Codex / Claude Code 等没有内联播放器的宿主只能从
|
|
3063
|
+
# 这里拿到封面地址(之前只打到 stderr,模型回复里因此只有视频没有封面)。
|
|
3064
|
+
if upload_info.get("coverUrl"):
|
|
3065
|
+
print(f"🖼️ Cover image URL: {upload_info['coverUrl']}")
|
|
3062
3066
|
|
|
3063
3067
|
# 结构化资产标记 —— 宿主(ab-agent)据此把权威 URL 作为 attachment
|
|
3064
3068
|
# 下发前端渲染播放器,绕开模型正文。
|
|
@@ -3113,6 +3117,9 @@ Examples:
|
|
|
3113
3117
|
# ab-api 保存 manifest 时按 fileId 给成片建语义卡 / 片段 / 血缘
|
|
3114
3118
|
"fileId": upload_result.get("fileId"),
|
|
3115
3119
|
}
|
|
3120
|
+
# 本地渲染 + 上传成功时同样把地址放到 stdout,供无播放器的宿主回显给用户
|
|
3121
|
+
if upload_result.get("fileUrl"):
|
|
3122
|
+
print(f"\n🎬 Video playback URL: {upload_result['fileUrl']}")
|
|
3116
3123
|
if manifest_path:
|
|
3117
3124
|
save_json(manifest, manifest_path)
|
|
3118
3125
|
LogPrint(f" Manifest updated: {manifest_path}", file=sys.stderr)
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"skillName": "render-video",
|
|
3
3
|
"repoName": "agent-skill-media-maker",
|
|
4
4
|
"skillId": "473",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "V36",
|
|
6
6
|
"skillDescription": "Final-render skill: loads a persisted RenderPlan by `job_id` and drives the Remotion engine to produce the final video.\n\nUse this skill as soon as the user mentions any of these intents (after assets are already prepared):\n- Render the video, composite the video, export the video\n- Turn the prepared assets into the final clip\n- Render with Remotion\n\nPrerequisite: assets must already be generated via `prepare_video_assets`. This skill never resolves or regenerates assets — pass it a `job_id` from a previous `prepare_video_assets` call.\n\n⚠️ Stop-and-confirm gate: never call this skill until the user has explicitly confirmed the assets prepared by `prepare_video_assets`. If those assets were prepared in the current turn and the user has not replied since, stop and ask instead of rendering."
|
|
7
7
|
}
|