@lingjingai/scriptctl 0.66.18 → 0.66.20

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/README.md CHANGED
@@ -82,7 +82,7 @@ Gemini 接收左侧带时间戳、行锚点的亚洲格式剧本正文,以及
82
82
 
83
83
  剧本旁 `.review/asr/episode-N/` 保存按音频 SHA-256 复用的成功 ASR 响应,以及每次对比的 `script.txt`、`asr.txt`、`prompt.txt`、逐模型逐次响应和 `report.json`(含前后时间、台词、缺漏线索)。当前剧本每次重新对比,不缓存对比结论。
84
84
 
85
- 视频和纯剧本审核使用 `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` 仅使用选定模型。
85
+ 视频和纯剧本审核使用 `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` 仅使用选定模型。
86
86
 
87
87
  独立的 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`。
88
88
 
@@ -96,7 +96,7 @@ Gemini 接收左侧带时间戳、行锚点的亚洲格式剧本正文,以及
96
96
 
97
97
  `scriptctl review -p <workspace/script.json> -s <漫画 ingest 工作区>` 对照原 PDF 逐话审核并修正。也可以把 `-s` 指向原 PDF 或 PDF 目录,此时 `manifest.json` 必须位于剧本旁。来源通过 `document_id` 和 manifest 中的 PDF SHA-256 匹配,不按文件名重新配话;文件移动或改名后可以显式传入内容相同的 PDF。`--episodes 1,3` 只要求所选话的来源可用。缺少 manifest、来源映射或原文件内容变化时停止并报错。
98
98
 
99
- 漫画使用独立的 `review-comic` profile,默认采用上述 MSUICODE → NNYYAI → Grok 主 Agent 渠道链。自定义 LLM 配置需要定义该 profile,或用 `--model` 选择有显式服务地址的 profile。视频和纯剧本仍使用 `review-agent`。
99
+ 漫画使用独立的 `review-comic` profile,默认采用上述 MSUICODE / NNYYAI 均分首选、再接 Grok 的主 Agent 渠道链。自定义 LLM 配置需要定义该 profile,或用 `--model` 选择有显式服务地址的 profile。视频和纯剧本仍使用 `review-agent`。
100
100
 
101
101
  漫画 Agent 逐页看原稿并反向核对 action,使用 `source` 定位、`pages` 看完整原页、`region` 看清晰局部,核对遗漏、重复、文字、人物、心声类型及阅读顺序。需要 Poppler(`pdftoppm`);局部图按显示页的 CropBox/旋转归一化坐标渲染。正文修改保留来源;插入遗漏内容必须同时提供 `extend.scriptctl.source` 页码及区域。跨页内容使用同一条 action 的多个来源区域,不添加时间戳。
102
102
 
@@ -154,7 +154,7 @@ Gemini provider 可设置 `videoResponseSchemaField: responseSchema`,用于 GR
154
154
  从 `NNYYAI_API_KEY` 读取密钥,使用 base64 视频或 PDF 输入(Schema 字段为 `responseSchema`)。设置密钥后直接运行
155
155
  `scriptctl ingest -s <视频或PDF文件或目录> -w <workspace>`。
156
156
  视频请求先尝试配置的主模型,再在主渠道按 Gemini 3.8 / 3.7 / 3.6 Flash 补齐未试型号,随后使用 GrsAI(`https://grsai.dakka.com.cn`)的同三个型号,最后进入火山方舟豆包。GrsAI 使用独立的 `GRSAI_API_KEY`、base64 视频与 `responseSchema`,每个型号最多尝试 3 次;未配置密钥或主渠道已为该 GrsAI 地址时跳过此段。主渠道视频上传失败时,从 GrsAI 开始使用本地视频继续请求。豆包需要 `ARK_API_KEY`,`ARK_MODEL` 可覆盖默认端点。
157
- PDF 的 Gemini 型号切换使用同一主渠道,随后由已配置的豆包兜底。`review-agent` 主循环默认使用 MSUICODE → NNYYAI → LiteLLM Grok 审核链;文本任务按各自 profile 路由。
157
+ PDF 的 Gemini 型号切换使用同一主渠道,随后由已配置的豆包兜底。`review-agent` 主循环默认使用 MSUICODE / NNYYAI 均分首选、再接 LiteLLM Grok 的审核链;文本任务按各自 profile 路由。
158
158
  显式 LLM 配置决定主渠道和模型,支持 GrsAI、Google Vertex 等 provider;视频同样按主渠道 → GrsAI → 豆包的顺序恢复。显式选择豆包时只调用豆包。
159
159
 
160
160
  Gemini provider 的 `videoUploadMode: base64` 可指定视频默认传输方式;未设置时为 `file-api`,
@@ -0,0 +1,5 @@
1
+ # 0.66.19
2
+
3
+ - review 主 Agent 的每次模型请求按 50% 概率选择 MSUICODE 或 NNYYAI 优先;MSUICODE 内部保持 Vertex → GCP → T3,失败后进入另一渠道,再接 Grok 4.7 / 4.6 / 4.5 Packy。
4
+ - 同次请求的重试保持选定顺序,跨步骤切换保留工具结果、渠道独立的思考签名及实际用量。
5
+ - Gemini 明确返回内容拦截时,继续直接跳过全部 Gemini 进入 Grok;拉片视频核验、ASR、换壳写作和显式单模型模式保持原有路由。
@@ -0,0 +1,5 @@
1
+ # 0.66.20
2
+
3
+ - 视频审核增加可选 `--review-strategy batch`,将整集正文、相关人物状态与 ASR 建议一起审核,支持批量补读、关联修改与最终回读,默认使用 legacy 方式。批量方式减少工具往返;成本与证据冲突处理需按样本复核。
4
+ - 声画存在实质冲突时,可在媒体预算内对短窗口声音重新识别,按本集绝对词级时间核实起音,保留画面证据精度与心声归属。
5
+ - 实际采纳的 ASR 校时在单集落盘后报告;审核结果增加各工具调用次数,便于检查执行开销。
package/dist/bin.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{b as s}from"./chunk-QCTGU6FJ.js";import{Console as r}from"node:console";var o=new r({stdout:process.stderr,stderr:process.stderr});console.debug=o.debug.bind(o);console.info=o.info.bind(o);console.log=o.log.bind(o);s(process.argv.slice(2)).then(e=>{process.exitCode=e}).catch(e=>{console.error(e),process.exitCode=70});
2
+ import{b as s}from"./chunk-BJXWAWKW.js";import{Console as r}from"node:console";var o=new r({stdout:process.stderr,stderr:process.stderr});console.debug=o.debug.bind(o);console.info=o.info.bind(o);console.log=o.log.bind(o);s(process.argv.slice(2)).then(e=>{process.exitCode=e}).catch(e=>{console.error(e),process.exitCode=70});