@remixmate/cli 0.9.49 → 0.9.50
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.50",
|
|
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",
|
|
@@ -1873,6 +1873,11 @@ def _persist_plan_checkpoint(render_plan: dict, job_id: Optional[int], private_t
|
|
|
1873
1873
|
LogPrint(f" ⚠️ RenderPlan checkpoint failed (jobId={job_id}): {exc}", file=sys.stderr)
|
|
1874
1874
|
|
|
1875
1875
|
|
|
1876
|
+
|
|
1877
|
+
def _builtin_dynamic_render_enabled() -> bool:
|
|
1878
|
+
"""内置模板是否也走 /renderDraft(Phase 3b 路由翻转开关,默认关)。"""
|
|
1879
|
+
return os.environ.get("REMIXMATE_BUILTIN_DYNAMIC_RENDER", "").strip().lower() in {"1", "true", "yes", "on"}
|
|
1880
|
+
|
|
1876
1881
|
def render_with_remote_api(
|
|
1877
1882
|
render_plan: dict,
|
|
1878
1883
|
output_path: str,
|
|
@@ -1941,6 +1946,13 @@ def render_with_remote_api(
|
|
|
1941
1946
|
status_path = "/renderStatus"
|
|
1942
1947
|
|
|
1943
1948
|
source_oss_key = None
|
|
1949
|
+
# 内置模板是否也走动态渲染(Phase 3b 路由翻转,ab-platform/docs/
|
|
1950
|
+
# template-authoring-page-review.md §7.2)。默认关:翻转依赖 ab-render 以服务身份取
|
|
1951
|
+
# 内置源码(DRAFT_BUILTIN_SOURCE_TOKEN ↔ ab-api ab_render.service_token),服务端没配好
|
|
1952
|
+
# 就打开,普通用户渲染内置模板会全部失败。服务端就绪后设 REMIXMATE_BUILTIN_DYNAMIC_RENDER=1;
|
|
1953
|
+
# 回退 = 取消该变量,内置模板回到 /render。
|
|
1954
|
+
builtin_dynamic = _builtin_dynamic_render_enabled()
|
|
1955
|
+
is_builtin_dynamic = False
|
|
1944
1956
|
template_id = render_plan.get("templateId", "")
|
|
1945
1957
|
if template_id:
|
|
1946
1958
|
try:
|
|
@@ -1950,8 +1962,12 @@ def render_with_remote_api(
|
|
|
1950
1962
|
# 是另一个模板的画面。
|
|
1951
1963
|
_meta = get_template(template_id, include_all_statuses=True)
|
|
1952
1964
|
if _meta and not _meta.get("isBuiltin"):
|
|
1953
|
-
|
|
1954
|
-
|
|
1965
|
+
source_oss_key = _meta.get("hasSource")
|
|
1966
|
+
elif _meta and builtin_dynamic:
|
|
1967
|
+
# 内置模板:客户端拿不到也不需要 sourceOssKey(源码保护),只要知道
|
|
1968
|
+
# 它在 registry 里;ab-render 按 templateKey 以服务身份取包。
|
|
1969
|
+
source_oss_key = True
|
|
1970
|
+
is_builtin_dynamic = True
|
|
1955
1971
|
except Exception:
|
|
1956
1972
|
source_oss_key = None
|
|
1957
1973
|
|
|
@@ -1970,6 +1986,10 @@ def render_with_remote_api(
|
|
|
1970
1986
|
# 不传则 ab-render 退回截首帧 / 不渲。
|
|
1971
1987
|
if cover_composition_id:
|
|
1972
1988
|
payload["coverCompositionId"] = cover_composition_id
|
|
1989
|
+
if is_builtin_dynamic:
|
|
1990
|
+
# 与预构建 /render 的 MainVideo 语义对齐:不把 entry.props 摊平到顶层
|
|
1991
|
+
# (摊平会让同名键覆盖平台注入的 typography / variantId 等)。
|
|
1992
|
+
payload["spreadEntryProps"] = False
|
|
1973
1993
|
render_path = "/renderDraft"
|
|
1974
1994
|
status_path = "/renderDraftStatus"
|
|
1975
1995
|
else:
|
|
@@ -1988,6 +2008,8 @@ def render_with_remote_api(
|
|
|
1988
2008
|
if pending_resume:
|
|
1989
2009
|
# 续跑:下面那堆"正在提交"的日志会误导人,跳过
|
|
1990
2010
|
LogPrint(f"🎬 Remote render task already exists, will resume polling", file=sys.stderr)
|
|
2011
|
+
elif is_builtin_dynamic:
|
|
2012
|
+
LogPrint(f" Builtin template (dynamic bundle): {template_id}", file=sys.stderr)
|
|
1991
2013
|
elif source_oss_key:
|
|
1992
2014
|
LogPrint(f" Private template (OSS dynamic bundle): {template_id}", file=sys.stderr)
|
|
1993
2015
|
else:
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"skillName": "render-video",
|
|
3
3
|
"repoName": "agent-skill-media-maker",
|
|
4
4
|
"skillId": "473",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "V30",
|
|
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
|
}
|