@lingjingai/scriptctl 0.65.8 → 0.66.10

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
- 审核 Agent、ASR 文本比对和原片视频核对均使用所选 Gemini → 其余 3.8 / 3.7 / 3.6 Flash → 豆包的恢复顺序。Gemini 沿用 provider 的 `maxAttempts`,豆包最多尝试三次;明确内容过滤进入下一模型。Mastra 在当前模型调用内切换,已执行成功的工具不重放。豆包使用 `ARK_API_KEY`,端点可通过 `ARK_MODEL` 指定。
85
+ 视频和纯剧本审核默认使用 `review-agent`:NNYYAI 的 Gemini 3.8 → 3.7 → 3.6 Flash,再尝试 GrsAI(`https://grsai.dakka.com.cn`)的 Gemini 3.8 → 3.7 → 3.6 Flash,最后进入火山方舟豆包。逐集审核、全剧收敛、ASR 文本比对和原片视频核对共用这条链。主渠道需要 `NNYYAI_API_KEY`;GrsAI 使用 `GRSAI_API_KEY`,未配置时跳过;豆包使用 `ARK_API_KEY`,端点可通过 `ARK_MODEL` 指定。Gemini 沿用各 provider 的 `maxAttempts`,豆包最多尝试三次;明确内容过滤进入下一模型。Mastra 在当前模型调用内切换,已执行成功的工具不重放,日志和用量记录实际渠道及模型。自定义 profile 可用 `fallbacks` 指定额外模型 profile,它们在主渠道 Gemini 型号耗尽后、豆包之前依次尝试。
86
86
 
87
87
  `asr-started` / `asr-transcribed` / `asr-compared` NDJSON 按集报告进度与证据;`asr-compared` 不代表修改已落盘,带 `episode_number` 的 `asr-applied` 表示本集校时已经保存。之后的 `episode` 报告本集完成或失败,已有修改已保存;`done.statistics.fixed` 包含自动校时条数,`usage_total` 汇总对比与审核 Gemini 用量。
88
88
 
@@ -115,8 +115,8 @@ Gemini 接收左侧带时间戳、行锚点的亚洲格式剧本正文,以及
115
115
  | `PROJECT_LITELLM_GATEWAY_API_KEY` | 内置 LLM 配置引用的 gateway key |
116
116
  | `PROJECT_LITELLM_GATEWAY_BASE_URL` | 内置配置的 gateway endpoint;OpenAI-compatible synopsis 必须配置 |
117
117
  | `SCRIPTCTL_LLM_CONFIG` | LLM 路由 YAML;优先级低于 `--llm-config` |
118
- | `NNYYAI_API_KEY` | 内置视频与漫画拉片 provider 的 API key |
119
- | `GRSAI_API_KEY` | 视频拉片在主渠道 Gemini 模型耗尽后使用的 GrsAI 渠道密钥 |
118
+ | `NNYYAI_API_KEY` | 内置视频与漫画拉片、默认 `review-agent` 和 `review-comic` 的渠道密钥 |
119
+ | `GRSAI_API_KEY` | 视频拉片及默认 `review-agent` 在主渠道 Gemini 模型耗尽后使用的 GrsAI 渠道密钥 |
120
120
  | `AWB_BASE_URL` | script-output gateway URL |
121
121
  | `LINGJING_AWB_ACCESS_KEY` | gateway 访问凭证 |
122
122
  | `SANDBOX_PROJECT_GROUP_NO` | 项目组号(也可用 `--project-group-no`) |
@@ -148,7 +148,7 @@ Gemini provider 可设置 `videoResponseSchemaField: responseSchema`,用于 GR
148
148
  从 `NNYYAI_API_KEY` 读取密钥,使用 base64 视频或 PDF 输入(Schema 字段为 `responseSchema`)。设置密钥后直接运行
149
149
  `scriptctl ingest -s <视频或PDF文件或目录> -w <workspace>`。
150
150
  视频请求先尝试配置的主模型,再在主渠道按 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` 可覆盖默认端点。
151
- PDF 的 Gemini 型号切换使用同一主渠道,随后由已配置的豆包兜底。文本任务与 `review-agent` 保持原有路由。
151
+ PDF 的 Gemini 型号切换使用同一主渠道,随后由已配置的豆包兜底。`review-agent` 默认使用上述 NNYYAI → GrsAI → 豆包审核链;文本任务按各自 profile 路由。
152
152
  显式 LLM 配置决定主渠道和模型,支持 GrsAI、Google Vertex 等 provider;视频同样按主渠道 → GrsAI → 豆包的顺序恢复。显式选择豆包时只调用豆包。
153
153
 
154
154
  Gemini provider 的 `videoUploadMode: base64` 可指定视频默认传输方式;未设置时为 `file-api`,
@@ -0,0 +1,6 @@
1
+ # 0.66.10
2
+
3
+ - 全剧资产审核按绑定场景去重读取证据,保留全部场景正文并复用已完成结论。
4
+ - 独立保存全剧身份和资产审核检查点,以剧本 SHA256 校验;续跑不重复计入已完成单元的用量。
5
+ - 失败请求在剧本旁保存输入、响应及单元身份,文件权限 0600,不包含凭据,便于定位内容拒绝与输入超限。
6
+ - 保留当前审核路由、ASR 显式开关和梗概必填检查。
@@ -0,0 +1,13 @@
1
+ # 0.66.9
2
+
3
+ ## Added
4
+ - None.
5
+
6
+ ## Changed
7
+ - `scriptctl review` 的默认视频和纯剧本审核改用 NNYYAI → GrsAI → 豆包;前两个渠道均按 Gemini 3.8 / 3.7 / 3.6 Flash 尝试,逐集审核、全剧收敛、ASR 比对和原片核对共用该链,日志及用量标明实际渠道。
8
+
9
+ ## Fixed
10
+ - None.
11
+
12
+ ## Breaking
13
+ - None.
package/dist/bin.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{b as s}from"./chunk-T7ZYKPXV.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-4MGRUUNV.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});