@remixmate/cli 0.9.33 → 0.9.35

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/http.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  * 1. opts.apiBaseUrl — caller override
17
17
  * 2. process.env.MM_API_BASE_URL — process env (point at local/staging here)
18
18
  * 3. process.env.MM_BACKEND_API_URL — ab-agent's convention (back-compat)
19
- * 4. https://api.remixmate.com/api — production default (zero-config)
19
+ * 4. https://api.remixmate.ai/api — production default (zero-config)
20
20
  */
21
21
  import { type Billing } from './billing.js';
22
22
  export { SkillError, EXIT } from './errors.js';
package/dist/http.js CHANGED
@@ -16,14 +16,14 @@
16
16
  * 1. opts.apiBaseUrl — caller override
17
17
  * 2. process.env.MM_API_BASE_URL — process env (point at local/staging here)
18
18
  * 3. process.env.MM_BACKEND_API_URL — ab-agent's convention (back-compat)
19
- * 4. https://api.remixmate.com/api — production default (zero-config)
19
+ * 4. https://api.remixmate.ai/api — production default (zero-config)
20
20
  */
21
21
  import { traceHeaders, cleanDiagnosticText } from './diagnostics.js';
22
22
  import { recordBilling } from './billing.js';
23
23
  import { resolvePrivToken, NOT_AUTHENTICATED_HINT } from './auth/resolve.js';
24
24
  import { attemptAutoLogin } from './auth/auto-login.js';
25
25
  import { EXIT, SkillError } from './errors.js';
26
- const DEFAULT_API_BASE_URL = 'https://api.remixmate.com/api';
26
+ const DEFAULT_API_BASE_URL = 'https://api.remixmate.ai/api';
27
27
  // Re-exported so the many `import { SkillError } from '../http.js'` call sites
28
28
  // stay valid; the definition moved to errors.ts to break an import cycle with
29
29
  // the auth gateway (see errors.ts).
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.9.33",
4
- "generatedAt": "2026-09-16T01:00:58.193Z",
3
+ "version": "0.9.35",
4
+ "generatedAt": "2026-09-18T05:50:52.540Z",
5
5
  "skills": [
6
6
  {
7
7
  "id": "export-jianying",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remixmate/cli",
3
- "version": "0.9.33",
3
+ "version": "0.9.35",
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",
@@ -37,7 +37,7 @@ There is no dedicated env file; the **process environment** variables of the cal
37
37
  | Env var | Description | Default |
38
38
  |---------|-------------|---------|
39
39
  | `PRIV_TOKEN` | Tianyan token; overridable with `--priv-token`. | (none) |
40
- | `MM_API_BASE_URL` | API root URL. | `https://api-agent.remixmate.com/api` |
40
+ | `MM_API_BASE_URL` | API root URL. | `https://api-agent.remixmate.ai/api` |
41
41
  | `AGENT_NAME` | Optional, sent as the `x-invoke-agent` request header. | (none) |
42
42
 
43
43
  ## Steps
@@ -13,7 +13,7 @@
13
13
  python gen_jianying_draft.py --title "测试" --scenes scenes.json --download -o draft.zip
14
14
 
15
15
  环境变量:
16
- MM_API_BASE_URL - 后端 API 地址(默认: https://api-agent.remixmate.com/api)
16
+ MM_API_BASE_URL - 后端 API 地址(默认: https://api-agent.remixmate.ai/api)
17
17
  PRIV_TOKEN - PrivToken(优先读取;未配置时提示手动输入)
18
18
  """
19
19
 
@@ -30,7 +30,7 @@ import urllib.request
30
30
  import uuid
31
31
  import zipfile
32
32
 
33
- API_BASE_URL = os.environ.get("MM_API_BASE_URL", "https://api-agent.remixmate.com/api")
33
+ API_BASE_URL = os.environ.get("MM_API_BASE_URL", "https://api-agent.remixmate.ai/api")
34
34
  PRIVATE_TOKEN = "" # 在 main() 中通过 resolve_token() 初始化
35
35
  SKILL_NAME = "export-jianying"
36
36
  AGENT_NAME = os.environ.get("AGENT_NAME", "")
@@ -44,7 +44,7 @@ No skill-local env file — the executing process inherits the system environmen
44
44
  | Env var | Description | Default |
45
45
  |---------|-------------|---------|
46
46
  | `PRIV_TOKEN` | Tianyan token; `--priv-token` overrides | none |
47
- | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.com/api` |
47
+ | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.ai/api` |
48
48
  | `AGENT_NAME` | Optional `x-invoke-agent` header | none |
49
49
 
50
50
  ## Operations
@@ -52,7 +52,7 @@ No skill-local env file — the executing process inherits the system environmen
52
52
  |---------|-------------|---------|
53
53
  | `PRIV_TOKEN` | Tianyan token; `--priv-token` overrides | none |
54
54
  | `MM_IMAGE_MODEL` | Default model, as a `--model` value | backend default (`seedream`) |
55
- | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.com/api` |
55
+ | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.ai/api` |
56
56
  | `AGENT_NAME` | Optional `x-invoke-agent` header | none |
57
57
 
58
58
  ## Operations
@@ -93,7 +93,7 @@ No skill-local env file — the executing process inherits the system environmen
93
93
  |---------|-------------|---------|
94
94
  | `PRIV_TOKEN` | Tianyan token; `--priv-token` overrides | none |
95
95
  | `MM_VIDEO_MODEL` | Default model id or shortcut | catalog default (`seedance-mini`) |
96
- | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.com/api` |
96
+ | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.ai/api` |
97
97
  | `AGENT_NAME` | Optional `x-invoke-agent` header | none |
98
98
 
99
99
  ## Operations
@@ -29,7 +29,7 @@ There is no skill-local env file — the executing process inherits the system e
29
29
  | Env var | Description | Default |
30
30
  |---------|-------------|---------|
31
31
  | `PRIV_TOKEN` | Tianyan token; `--priv-token` overrides | none |
32
- | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.com/api` |
32
+ | `MM_API_BASE_URL` | API root; `--api-base-url` overrides | `https://api.remixmate.ai/api` |
33
33
  | `AGENT_NAME` | Optional `x-invoke-agent` header | none |
34
34
 
35
35
  ## Operations
@@ -64,8 +64,8 @@ The asset resolver invokes the following skills based on `AssetRef` declarations
64
64
  | Env var | Description | Default |
65
65
  |---------|-------------|---------|
66
66
  | `PRIV_TOKEN` | Tianyan token (needed for asset generation + DB persist). | (none) |
67
- | `MM_API_BASE_URL` | Asset-generation API root (ab-agent proxy). | `https://api-agent.remixmate.com/api` |
68
- | `MM_BACKEND_API_URL` | Backend API root (RenderPlan persistence). | `https://api.remixmate.com/api` |
67
+ | `MM_API_BASE_URL` | Asset-generation API root (ab-agent proxy). | `https://api-agent.remixmate.ai/api` |
68
+ | `MM_BACKEND_API_URL` | Backend API root (RenderPlan persistence). | `https://api.remixmate.ai/api` |
69
69
  | `ASSET_CACHE_DIR` | Asset cache directory. | `./.asset-cache/` |
70
70
 
71
71
  ## Canonical usage (inline DSL JSON, no temp files)
@@ -62,8 +62,8 @@ Rendering supports two modes:
62
62
  | Env var | Description | Default |
63
63
  |---------|-------------|---------|
64
64
  | `PRIV_TOKEN` | Tianyan token (needed to load the RenderPlan from the DB and to upload). | (none) |
65
- | `MM_BACKEND_API_URL` | Backend API root URL (RenderPlan / VOD lookups). | `https://api.remixmate.com/api` |
66
- | `REMOTION_RENDER_API_URL` | Remote renderer base URL (ab-render). Falls back to `RENDER_API_URL` (same value across skills). | `https://api-render.remixmate.com` |
65
+ | `MM_BACKEND_API_URL` | Backend API root URL (RenderPlan / VOD lookups). | `https://api.remixmate.ai/api` |
66
+ | `REMOTION_RENDER_API_URL` | Remote renderer base URL (ab-render). Falls back to `RENDER_API_URL` (same value across skills). | `https://api-render.remixmate.ai` |
67
67
  | `REMOTION_RENDER_MODE` | Default render mode (`remote` / `local`); CLI `--renderer` overrides it. | `remote` |
68
68
  | `REMOTION_OUTPUT_DIR` | Render output directory. | `./output/` |
69
69
  | `REMOTION_CONCURRENCY` | Local Remotion render concurrency. | `2` |
@@ -217,7 +217,7 @@ If the remote service is unreachable or auth fails, the script exits with a deta
217
217
  The Remotion render project lives at the monorepo root under `<monorepo-root>/remotion-renderer/` and is deployed as a **standalone HTTP service**. The client script in this skill only sends POST requests and does not participate in server-side code sync.
218
218
 
219
219
  - Server code + deployment docs: `<monorepo-root>/remotion-renderer/README.md`.
220
- - Production (default): the client uses `https://api-render.remixmate.com` when `REMOTION_RENDER_API_URL` is unset — no config needed.
220
+ - Production (default): the client uses `https://api-render.remixmate.ai` when `REMOTION_RENDER_API_URL` is unset — no config needed.
221
221
  - Local debugging: in the renderer directory run `npm install && npm run server:dev`, then point the client at it with `REMOTION_RENDER_API_URL=http://localhost:3000`.
222
222
 
223
223
  ## Credits
@@ -61,7 +61,7 @@ def _query_duration_from_api(url: str) -> Optional[float]:
61
61
 
62
62
  api_base = os.environ.get(
63
63
  "MM_API_BASE_URL",
64
- os.environ.get("MM_BACKEND_API_URL", "https://api.remixmate.com/api"),
64
+ os.environ.get("MM_BACKEND_API_URL", "https://api.remixmate.ai/api"),
65
65
  ).rstrip("/")
66
66
  if not api_base:
67
67
  return None
@@ -42,7 +42,7 @@ def poll_vod_playback_url(
42
42
  """
43
43
  api_base = os.environ.get(
44
44
  "MM_API_BASE_URL",
45
- os.environ.get("MM_BACKEND_API_URL", "https://api.remixmate.com/api"),
45
+ os.environ.get("MM_BACKEND_API_URL", "https://api.remixmate.ai/api"),
46
46
  ).rstrip("/")
47
47
  url = f"{api_base}/file/get"
48
48
  headers = {
@@ -19,7 +19,7 @@
19
19
  Base URL 优先级:
20
20
  1. 调用方显式传入 base_url
21
21
  2. 环境变量 REMOTION_RENDER_API_URL(指向本地/staging 时在此覆盖)
22
- 3. 默认 https://api-render.remixmate.com(生产,零配置可用)
22
+ 3. 默认 https://api-render.remixmate.ai(生产,零配置可用)
23
23
 
24
24
  本模块只负责 HTTP 层;调用方(render_video.py)负责把结果写回 render_plan。
25
25
  """
@@ -38,7 +38,7 @@ from pathlib import Path
38
38
  sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "template-registry" / "scripts"))
39
39
  from log_diagnostics import trace_headers
40
40
 
41
- DEFAULT_API_BASE_URL = "https://api-render.remixmate.com"
41
+ DEFAULT_API_BASE_URL = "https://api-render.remixmate.ai"
42
42
  API_BASE_URL = (
43
43
  os.environ.get("REMOTION_RENDER_API_URL")
44
44
  or os.environ.get("RENDER_API_URL")
@@ -13,7 +13,7 @@
13
13
  python3 upload_video.py --file output/video.mp4 --json-output
14
14
 
15
15
  环境变量:
16
- MM_API_BASE_URL - API 根地址(默认 MM_API_BASE_URL 环境变量或 https://api-agent.remixmate.com/api)
16
+ MM_API_BASE_URL - API 根地址(默认 MM_API_BASE_URL 环境变量或 https://api-agent.remixmate.ai/api)
17
17
 
18
18
  注意:
19
19
  - `uploadMediaFile` 接口视频大小限制 ≤ 50MB,音频 ≤ 15MB
@@ -31,7 +31,7 @@ import urllib.parse
31
31
  import urllib.request
32
32
  import uuid
33
33
 
34
- DEFAULT_API_BASE_URL = "https://api-agent.remixmate.com/api"
34
+ DEFAULT_API_BASE_URL = "https://api-agent.remixmate.ai/api"
35
35
 
36
36
 
37
37
  def _guess_content_type(file_path: str) -> str:
@@ -164,7 +164,7 @@ def main():
164
164
  parser.add_argument(
165
165
  "--api-base-url",
166
166
  default=None,
167
- help="API root URL (defaults to MM_API_BASE_URL env var or https://api-agent.remixmate.com/api)",
167
+ help="API root URL (defaults to MM_API_BASE_URL env var or https://api-agent.remixmate.ai/api)",
168
168
  )
169
169
  parser.add_argument("--timeout", type=int, default=600, help="Upload timeout in seconds (default 600)")
170
170
  parser.add_argument("--json-output", action="store_true", help="Emit the full response as JSON on stdout")
@@ -9,7 +9,7 @@ CLI 暴露面是「列出可用模板」(`--list-templates`)。把 Video DSL 场
9
9
  | 来源 | 触发条件 | 适用场景 |
10
10
  |---|---|---|
11
11
  | 显式 `VIDEO_TEMPLATE_REGISTRY_URL`(ab-api 接口) | 环境变量非空 + `PRIV_TOKEN` 有效 | 指定后端 |
12
- | 派生默认 URL `<MM_API_BASE_URL>/remotionTemplate/registry` | `VIDEO_TEMPLATE_REGISTRY_URL` 未设置 | 默认(含独立安装 codex / `npm i -g`,默认 `https://api.remixmate.com/api`) |
12
+ | 派生默认 URL `<MM_API_BASE_URL>/remotionTemplate/registry` | `VIDEO_TEMPLATE_REGISTRY_URL` 未设置 | 默认(含独立安装 codex / `npm i -g`,默认 `https://api.remixmate.ai/api`) |
13
13
 
14
14
  只从 ab-api 取数,是为了避免「本地文件 / monorepo 源码 / 数据库」多源并存导致的不一致——私有 / 多租户模板只存在于 ab-api,本地源永远不全。默认 URL **内置在 remixmate-cli 自身**(按 CLI 后端约定 `MM_API_BASE_URL` 推导),不再依赖 ab-agent 等宿主在 spawn 时注入,独立运行即可找到 registry。指向你自己的 ab-api 只需设 `MM_API_BASE_URL`(或直接设 `VIDEO_TEMPLATE_REGISTRY_URL`)并配置 `PRIV_TOKEN`。
15
15
 
@@ -63,12 +63,12 @@ The skill itself only reads the registry; whether a token is needed depends on t
63
63
  | Env var | Description | Default |
64
64
  |---------|-------------|---------|
65
65
  | `VIDEO_TEMPLATE_REGISTRY_URL` | ab-api endpoint returning the registry (the single source of truth). | derived from `MM_API_BASE_URL` |
66
- | `MM_API_BASE_URL` | ab-api base URL the CLI talks to. When `VIDEO_TEMPLATE_REGISTRY_URL` is unset, the registry endpoint is derived as `<base>/remotionTemplate/registry`. | `https://api.remixmate.com/api` |
66
+ | `MM_API_BASE_URL` | ab-api base URL the CLI talks to. When `VIDEO_TEMPLATE_REGISTRY_URL` is unset, the registry endpoint is derived as `<base>/remotionTemplate/registry`. | `https://api.remixmate.ai/api` |
67
67
  | `PRIV_TOKEN` | Sent as `X-Priv-Token` when hitting the registry endpoint. Falls back to `~/.config/remixmate/credentials.json`. | unset |
68
68
  | `VIDEO_TEMPLATE_REGISTRY_HTTP_METHOD` | `POST` (default) or `GET`. POST shape matches ab-api `{code,msg,data}`. | `POST` |
69
69
 
70
70
  Resolution (single source — see `scripts/registry_loader.py` for the canonical implementation):
71
- the registry is loaded **only** from the ab-api HTTP endpoint — explicit `VIDEO_TEMPLATE_REGISTRY_URL`, otherwise `<MM_API_BASE_URL>/remotionTemplate/registry` (default `https://api.remixmate.com/api/...`). There is no local-file / monorepo / PREFER_LOCAL fallback: those multi-source paths were removed to avoid registry skew (private/multi-tenant templates only exist on ab-api). On a transient HTTP failure the loader degrades to the on-disk cache of the same URL; with no cache it fails loud. A standalone install (Codex / `npm i -g`) just needs `MM_API_BASE_URL` (or `VIDEO_TEMPLATE_REGISTRY_URL`) pointed at your ab-api plus a valid `PRIV_TOKEN`.
71
+ the registry is loaded **only** from the ab-api HTTP endpoint — explicit `VIDEO_TEMPLATE_REGISTRY_URL`, otherwise `<MM_API_BASE_URL>/remotionTemplate/registry` (default `https://api.remixmate.ai/api/...`). There is no local-file / monorepo / PREFER_LOCAL fallback: those multi-source paths were removed to avoid registry skew (private/multi-tenant templates only exist on ab-api). On a transient HTTP failure the loader degrades to the on-disk cache of the same URL; with no cache it fails loud. A standalone install (Codex / `npm i -g`) just needs `MM_API_BASE_URL` (or `VIDEO_TEMPLATE_REGISTRY_URL`) pointed at your ab-api plus a valid `PRIV_TOKEN`.
72
72
 
73
73
  ## Steps
74
74
 
@@ -15,7 +15,7 @@
15
15
  1. 显式 VIDEO_TEMPLATE_REGISTRY_URL(若设置则直接用)
16
16
  2. 否则按 CLI 后端约定推导:
17
17
  <MM_API_BASE_URL>/remotionTemplate/registry
18
- MM_API_BASE_URL 默认 https://api.remixmate.com/api(与 src/http.ts 一致),
18
+ MM_API_BASE_URL 默认 https://api.remixmate.ai/api(与 src/http.ts 一致),
19
19
  兼容 ab-agent 注入的 MM_BACKEND_API_URL。默认值内置在 CLI 自身,独立安装
20
20
  (codex / npm i -g)开箱即用,无需宿主在 spawn 时注入。
21
21
 
@@ -92,7 +92,7 @@ _CACHE_DIR = os.environ.get(
92
92
 
93
93
 
94
94
  # CLI 默认后端 base,与 remixmate-cli/src/http.ts 的 DEFAULT_API_BASE_URL 保持一致。
95
- _DEFAULT_API_BASE_URL = "https://api.remixmate.com/api"
95
+ _DEFAULT_API_BASE_URL = "https://api.remixmate.ai/api"
96
96
 
97
97
 
98
98
  def _default_registry_url() -> str:
@@ -104,7 +104,7 @@ def _default_registry_url() -> str:
104
104
  base 解析顺序与 CLI / ab-agent 对齐:
105
105
  MM_API_BASE_URL(CLI ``src/http.ts`` 约定)
106
106
  → MM_BACKEND_API_URL(ab-agent 约定,向后兼容)
107
- → https://api.remixmate.com/api(生产默认,零配置)
107
+ → https://api.remixmate.ai/api(生产默认,零配置)
108
108
  路径段固定为 ``/remotionTemplate/registry``(POST,返回 ``{code,msg,data}``)。
109
109
  """
110
110
  base = (
@@ -7,7 +7,7 @@ gen_jianying_draft.py 使用。
7
7
 
8
8
  认证方式: X-Priv-Token header(与其他 skill 脚本一致)
9
9
  接口地址: 优先读 MM_API_BASE_URL(executor 显式转发、全链路标准名),
10
- 回退 MM_BACKEND_API_URL,再回退默认 https://api.remixmate.com/api。
10
+ 回退 MM_BACKEND_API_URL,再回退默认 https://api.remixmate.ai/api。
11
11
  两个变量语义相同,保留回退是为兼容只配了其中一个的部署环境。
12
12
  """
13
13
 
@@ -22,7 +22,7 @@ import urllib.request
22
22
  def _api_base() -> str:
23
23
  return os.environ.get(
24
24
  "MM_API_BASE_URL",
25
- os.environ.get("MM_BACKEND_API_URL", "https://api.remixmate.com/api"),
25
+ os.environ.get("MM_BACKEND_API_URL", "https://api.remixmate.ai/api"),
26
26
  ).rstrip("/")
27
27
 
28
28
 
@@ -93,6 +93,18 @@ def create_job(priv_token: str, dsl: str = "", dsl_meta: dict = None) -> int:
93
93
  """
94
94
  创建渲染任务。
95
95
 
96
+ 会话归属:本函数会自动带上环境变量 CONVERSATION_ID(若已设置),让服务端在
97
+ 创建时就把 job 挂到该会话的 take 上。
98
+
99
+ 为什么要在这里传:渲染任务过去出生就是孤儿——归属全靠事后一次独立的补绑调用,
100
+ 而那条路上有四个静默盲区(CLI 的 take 绑定在 job 出生前就跑完了;云端因为
101
+ CONVERSATION_ID 已被注入而整段跳过它;兜底补绑的 jobId 末位来源是从 stdout
102
+ 正则抠的)。归属断了,成片在旁白面板里就查不到已生成的音频。
103
+ 而 CONVERSATION_ID 在这一刻本来就已经在环境里了——信息在场,以前只是没传。
104
+ 见 ab-platform/docs/render-job-binding-fix.md。
105
+
106
+ 服务端对该字段是软失败:绑不上只记日志,不影响任务创建。
107
+
96
108
  Args:
97
109
  priv_token: PrivToken
98
110
  dsl: 完整 DSL JSON 字符串(可选)
@@ -107,6 +119,10 @@ def create_job(priv_token: str, dsl: str = "", dsl_meta: dict = None) -> int:
107
119
  if dsl_meta:
108
120
  payload["dslMeta"] = dsl_meta
109
121
 
122
+ conversation_id = os.environ.get("CONVERSATION_ID", "").strip()
123
+ if conversation_id:
124
+ payload["conversationId"] = conversation_id
125
+
110
126
  data = _post("/renderJob/create", payload, priv_token)
111
127
  job_id = data.get("jobId")
112
128
  if not job_id:
@@ -30,7 +30,7 @@ No skill-local env file — the executing process inherits the system environmen
30
30
 
31
31
  | Env var | Description | Default |
32
32
  |---------|-------------|---------|
33
- | `RENDER_API_URL` | ab-render service base URL. Falls back to `REMOTION_RENDER_API_URL` (same value across skills), then the default. | `https://api-render.remixmate.com` |
33
+ | `RENDER_API_URL` | ab-render service base URL. Falls back to `REMOTION_RENDER_API_URL` (same value across skills), then the default. | `https://api-render.remixmate.ai` |
34
34
  | `PRIV_TOKEN` | Tianyan token, sent as `X-Priv-Token`. | (none) |
35
35
  | `CONVERSATION_ID` | Optional, sent as `x-conversation-id` for file association. | (none) |
36
36
 
@@ -13,7 +13,7 @@
13
13
  python deconstruct_video.py --url "https://example.com/video.mp4" --json-output
14
14
 
15
15
  环境变量:
16
- MM_API_BASE_URL - 后端 API 地址(默认: https://api-agent.remixmate.com/api)
16
+ MM_API_BASE_URL - 后端 API 地址(默认: https://api-agent.remixmate.ai/api)
17
17
  PRIV_TOKEN - PrivToken 认证令牌
18
18
  """
19
19
 
@@ -27,7 +27,7 @@ import time
27
27
  import urllib.error
28
28
  import urllib.request
29
29
 
30
- API_BASE_URL = os.environ.get("MM_API_BASE_URL", "https://api-agent.remixmate.com/api")
30
+ API_BASE_URL = os.environ.get("MM_API_BASE_URL", "https://api-agent.remixmate.ai/api")
31
31
 
32
32
  PRIVATE_TOKEN = "" # 在 main() 中通过 resolve_token() 初始化
33
33
  SKILL_NAME = "video-parser"
@@ -7,7 +7,7 @@
7
7
  POST $RENDER_API_URL/parseStatus → { status, progress, result?, error? }
8
8
 
9
9
  必要环境变量(由 ab-agent 自动注入):
10
- RENDER_API_URL ab-render 服务地址(默认 https://api-render.remixmate.com;指向本地/staging 时覆盖)
10
+ RENDER_API_URL ab-render 服务地址(默认 https://api-render.remixmate.ai;指向本地/staging 时覆盖)
11
11
  PRIV_TOKEN ab-api 私有 token
12
12
 
13
13
  可选环境变量:
@@ -27,7 +27,7 @@ import urllib.request
27
27
  RENDER_API_URL = (
28
28
  os.environ.get("RENDER_API_URL")
29
29
  or os.environ.get("REMOTION_RENDER_API_URL")
30
- or "https://api-render.remixmate.com"
30
+ or "https://api-render.remixmate.ai"
31
31
  ).rstrip("/")
32
32
  PRIV_TOKEN = os.environ.get("PRIV_TOKEN", "")
33
33
  CONVERSATION_ID = os.environ.get("CONVERSATION_ID", "")
@@ -26,7 +26,7 @@ import urllib.request
26
26
  from pathlib import Path
27
27
  from typing import Callable, Optional
28
28
 
29
- DEFAULT_API_BASE_URL = "https://api-render.remixmate.com"
29
+ DEFAULT_API_BASE_URL = "https://api-render.remixmate.ai"
30
30
  SKILL_NAME = "web-record"
31
31
 
32
32
  TERMINAL_SUCCESS = {"succeeded", "succeed", "completed"}