@lingjingai/scriptctl 0.66.18 → 0.66.19

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": "@lingjingai/scriptctl",
3
- "version": "0.66.18",
3
+ "version": "0.66.19",
4
4
  "description": "剧本阶段统一 CLI:素材转 Script v4,并兼容 Script v3 的本地写作、精修、校验和发布。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,6 +22,20 @@
22
22
  "engines": {
23
23
  "node": ">=22.22.0"
24
24
  },
25
+ "scripts": {
26
+ "build": "pnpm run clean && pnpm --filter @lingjingai/screenplay build && pnpm --filter @lingjingai/review-agent build && tsc && node scripts/bundle.mjs",
27
+ "clean": "rm -rf dist packages/screenplay/dist packages/review-agent/dist",
28
+ "postinstall": "node scripts/install-skill.mjs",
29
+ "install-skill": "node scripts/install-skill.mjs",
30
+ "prepublishOnly": "pnpm run build",
31
+ "pretest": "pnpm run build",
32
+ "test": "vitest run",
33
+ "pretest:coverage": "pnpm run build",
34
+ "test:coverage": "c8 --reporter=text --reporter=html --reporter=lcov --report-dir=coverage vitest run",
35
+ "test:watch": "vitest",
36
+ "typecheck": "tsc --noEmit",
37
+ "surface:snapshot": "node scripts/scriptctl-surface-snapshot.mjs"
38
+ },
25
39
  "dependencies": {
26
40
  "@anthropic-ai/sdk": "^0.111.0",
27
41
  "@google/genai": "^2.11.0",
@@ -39,8 +53,8 @@
39
53
  "zod": "^4.5.4"
40
54
  },
41
55
  "devDependencies": {
42
- "@lingjingai/review-agent": "0.1.0",
43
- "@lingjingai/screenplay": "0.1.0",
56
+ "@lingjingai/review-agent": "workspace:*",
57
+ "@lingjingai/screenplay": "workspace:*",
44
58
  "@types/jsdom": "^30.0.0",
45
59
  "@types/node": "^20.14.0",
46
60
  "@types/proper-lockfile": "^4.1.4",
@@ -68,18 +82,5 @@
68
82
  "@ai-sdk/openai-compatible": "^3.0.48",
69
83
  "@ai-sdk/provider": "^4.0.4",
70
84
  "@mastra/core": "^1.64.0"
71
- },
72
- "scripts": {
73
- "build": "pnpm run clean && pnpm --filter @lingjingai/screenplay build && pnpm --filter @lingjingai/review-agent build && tsc && node scripts/bundle.mjs",
74
- "clean": "rm -rf dist packages/screenplay/dist packages/review-agent/dist",
75
- "postinstall": "node scripts/install-skill.mjs",
76
- "install-skill": "node scripts/install-skill.mjs",
77
- "pretest": "pnpm run build",
78
- "test": "vitest run",
79
- "pretest:coverage": "pnpm run build",
80
- "test:coverage": "c8 --reporter=text --reporter=html --reporter=lcov --report-dir=coverage vitest run",
81
- "test:watch": "vitest",
82
- "typecheck": "tsc --noEmit",
83
- "surface:snapshot": "node scripts/scriptctl-surface-snapshot.mjs"
84
85
  }
85
- }
86
+ }
@@ -2,8 +2,8 @@
2
2
  name: scriptctl
3
3
  description: "剧本 script.json 的本地阅读、定位、原子修改、整场整集回写、素材 ingest 与 revision publish CLI。处理 Script v3/v4、剧本资产与 state、Action、场景引用或视频证据核对时使用。"
4
4
  metadata:
5
- version: "0.32.3"
6
- scriptctl_version: "0.66.17"
5
+ version: "0.32.4"
6
+ scriptctl_version: "0.66.19"
7
7
  author: "official"
8
8
  ---
9
9
 
@@ -240,7 +240,7 @@ ASR 返回有效语句后,程序将整集对白与心声按顺序拼接,与
240
240
 
241
241
  `.review/asr/episode-N/` 保存成功 ASR 缓存及每次对比的正文、原始响应、前后时间与缺漏报告。源视频经 ffprobe 确认无音轨时,发出 `asr-skipped`(`reason=source_no_audio`),保留台词与时间并继续画面审核;分集结果保留“ASR 校时未执行”的未解决项,说明无法核验实际发声时间、漏词或无字幕画外音。探测、解码及服务错误仍作为失败集处理。`asr-compared` 仅表示对比完成,带 `episode_number` 的 `asr-applied` 表示本集校时已落盘,不等于 Agent 审核完成。`--episodes` 只重跑指定集的 ASR 和审核,`--converge-only` 只做全剧收敛。纯剧本和原文对照审核不执行 ASR;`--check` 不发模型请求。
242
242
 
243
- 视频和纯剧本审核使用 `review-agent`,文本和漫画使用 `review-text`、`review-comic`;主 Agent 默认共用 MSUICODE Vertex → MSUICODE GCP → MSUICODE T3 → NNYYAI(均为 `gemini-3.8-flash`)→ LiteLLM `grok-4.7-packy` → `grok-4.6-packy` → `grok-4.5-packy`。MSUICODE 地址为 `http://15.204.107.123:3000`,三个来源分别读取 `MSUICODE_VERTEX_API_KEY`、`MSUICODE_GCP_API_KEY`、`MSUICODE_T3_API_KEY`;NNYYAI 读取 `NNYYAI_API_KEY`。主渠道密钥必需,额外渠道仅在配置对应密钥时参与。Grok 读取 `PROJECT_LITELLM_GATEWAY_BASE_URL` 和 `PROJECT_LITELLM_GATEWAY_API_KEY`。普通服务错误按配置顺序切换;Gemini 返回明确的内容拦截时,本轮 Agent 跳过所有剩余 Gemini 渠道,直接进入 Grok;这一状态只作用于当前 Agent 会话。各模型沿用 provider 的 `maxAttempts`,内置最多三次。模型切换发生在当前调用内,保留成功的工具操作;用量记录实际渠道和模型,Gemini 思考签名只在生成它的渠道内复用。自定义 profile 的 `fallbacks` 按声明顺序执行。`--no-fallback` 或 `SCRIPTCTL_REVIEW_SINGLE_MODEL=1` 仅使用选定模型。
243
+ 视频和纯剧本审核使用 `review-agent`,文本和漫画使用 `review-text`、`review-comic`;主 Agent 的每次模型请求独立以 50% 概率选择 MSUICODE 或 NNYYAI 优先(均为 `gemini-3.8-flash`):MSUICODE 优先时按 Vertex → GCP → T3 → NNYYAI;NNYYAI 优先时按 NNYYAI → MSUICODE Vertex → GCP → T3。全部 Gemini 渠道耗尽后进入 LiteLLM `grok-4.7-packy` → `grok-4.6-packy` → `grok-4.5-packy`。分配按请求进行,重试不重新抽选;长期首选比例约为 50/50,不保证每两次各一次。MSUICODE 地址为 `http://15.204.107.123:3000`,三个来源分别读取 `MSUICODE_VERTEX_API_KEY`、`MSUICODE_GCP_API_KEY`、`MSUICODE_T3_API_KEY`;NNYYAI 读取 `NNYYAI_API_KEY`。主渠道密钥必需,额外渠道仅在配置对应密钥时参与。Grok 读取 `PROJECT_LITELLM_GATEWAY_BASE_URL` 和 `PROJECT_LITELLM_GATEWAY_API_KEY`。普通服务错误按配置顺序切换;Gemini 返回明确的内容拦截时,本轮 Agent 跳过所有剩余 Gemini 渠道,直接进入 Grok;这一状态只作用于当前 Agent 会话。各模型沿用 provider 的 `maxAttempts`,内置最多三次。模型切换发生在当前调用内,保留成功的工具操作;用量记录实际渠道和模型,Gemini 思考签名只在生成它的渠道内复用。自定义 profile 同时以这两个渠道的 Gemini 3.8 为主链时也按上述策略分配,其他 profile 的 `fallbacks` 按声明顺序执行。`--no-fallback` 或 `SCRIPTCTL_REVIEW_SINGLE_MODEL=1` 仅使用选定模型。
244
244
 
245
245
  独立的 ASR JSON 比对和原片视频核验使用 `review-media`:NNYYAI Gemini 3.8 → 3.7 → 3.6 Flash → 豆包,凭据为 `NNYYAI_API_KEY`、`ARK_API_KEY`,`ARK_MODEL` 可指定豆包端点。显式 `--model` 或自定义配置仍决定媒体主渠道。豆包 Flash ASR 继续读取 `SD_AUDIO_APIKEY`。
246
246