@lingjingai/scriptctl 0.69.0 → 0.69.1

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
@@ -140,7 +140,8 @@ Gemini 接收左侧带时间戳、行锚点的亚洲格式剧本正文,以及
140
140
  | `PROJECT_LITELLM_GATEWAY_API_KEY` | 内置 LLM 配置引用的 gateway key |
141
141
  | `PROJECT_LITELLM_GATEWAY_BASE_URL` | 内置配置的 gateway endpoint;OpenAI-compatible synopsis 必须配置 |
142
142
  | `SCRIPTCTL_LLM_CONFIG` | LLM 路由 YAML;优先级低于 `--llm-config` |
143
- | `NNYYAI_API_KEY` | 内置视频与漫画拉片、ASR 比对与独立媒体核验的 NNYYAI 渠道密钥 |
143
+ | `NNYYAI_CI_API_KEY` | 内置视频 ingest 首选 NNYYAI 次卡 `gemini-3.8-flash-anci` 的密钥 |
144
+ | `NNYYAI_API_KEY` | 视频 ingest 普通 NNYYAI 后备渠道,以及漫画拉片、ASR 比对与独立媒体核验的密钥 |
144
145
  | `TUZI_API_KEY` | 审核 Agent 的兔子 Gemini 渠道密钥 |
145
146
  | `MSUICODE_VERTEX_API_KEY` | 默认审核 Agent 的 MSUICODE Vertex 主渠道密钥 |
146
147
  | `MSUICODE_GCP_API_KEY` / `MSUICODE_T3_API_KEY` | 审核 Agent 的 MSUICODE GCP / T3 后续渠道密钥 |
@@ -172,10 +173,10 @@ tasks:
172
173
  Gemini provider 可设置 `videoResponseSchemaField: responseSchema`,用于 GRSAI 等仅接受该字段的视频接口;默认仍为 `responseJsonSchema`。
173
174
  `responseSchema` 由 Google SDK 转换字段定义,保留类型、必填字段和描述,但不发送 `additionalProperties` 约束。
174
175
 
175
- 内置 `ingest.video-serial` 与 `ingest.comic-serial` 使用 NNYYAI 的 `gemini-3.8-flash`(`https://api.nnyyai.com`),
176
- 从 `NNYYAI_API_KEY` 读取密钥,使用 base64 视频或 PDF 输入(Schema 字段为 `responseSchema`)。设置密钥后直接运行
176
+ 内置 `ingest.video-serial` 首选 NNYYAI 次卡 `gemini-3.8-flash-anci`,读取 `NNYYAI_CI_API_KEY`;
177
+ `ingest.comic-serial` 使用普通 NNYYAI `gemini-3.8-flash`,读取 `NNYYAI_API_KEY`。两者地址均为 `https://api.nnyyai.com`,使用 base64 视频或 PDF 输入(Schema 字段为 `responseSchema`)。设置密钥后直接运行
177
178
  `scriptctl ingest -s <视频或PDF文件或目录> -w <workspace>`。
178
- 视频请求先尝试配置的主模型,再在主渠道按 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` 可覆盖默认端点。
179
+ 默认视频请求先尝试次卡模型,然后切换到使用 `NNYYAI_API_KEY` 的普通 NNYYAI Gemini 3.8 / 3.7 / 3.6 Flash,随后使用 GrsAI(`https://grsai.dakka.com.cn`)的同三个型号,最后进入火山方舟豆包。GrsAI 使用独立的 `GRSAI_API_KEY`、base64 视频与 `responseSchema`,每个型号最多尝试 3 次;未配置密钥或主渠道已为该 GrsAI 地址时跳过此段。普通 NNYYAI 后备段仅在配置其密钥时启用。次卡视频上传失败时,从普通 NNYYAI 开始使用本地视频继续请求;自定义主渠道上传失败时从 GrsAI 开始。豆包需要 `ARK_API_KEY`,`ARK_MODEL` 可覆盖默认端点。
179
180
  PDF 的 Gemini 型号切换使用同一主渠道,随后由已配置的豆包兜底。`review-agent` 主循环默认使用上述 MSUICODE → 兔子 → 豆包审核链;文本任务按各自 profile 路由。
180
181
  显式 LLM 配置决定主渠道和模型,支持 GrsAI、Google Vertex 等 provider;视频同样按主渠道 → GrsAI → 豆包的顺序恢复。显式选择豆包时只调用豆包。
181
182
 
@@ -237,7 +238,7 @@ MIT
237
238
 
238
239
  ### 指定视频理解服务
239
240
 
240
- 视频请求先使用配置的主模型,再按 `gemini-3.8-flash → gemini-3.7-flash → gemini-3.6-flash` 在同渠道补齐未试型号。主渠道耗尽或上传失败后,依次尝试已配置 `GRSAI_API_KEY` 的 GrsAI 三个型号,最后进入豆包;具体渠道、媒体传输和重试规则见上方环境变量说明。豆包使用 `ARK_API_KEY`,`ARK_MODEL` 可指定已开通的视频理解端点,默认 `ep-20260721150136-98dj9`。完整模型链耗尽后才汇总报错,调用和用量按实际渠道、模型记录。直接选择豆包时只调用豆包:
241
+ 默认视频请求按 NNYYAI 次卡 → 普通 NNYYAI 3.8 / 3.7 / 3.6 Flash → GrsAI 3.8 / 3.7 / 3.6 Flash → 豆包调用,各渠道使用自己的密钥。自定义主渠道先调用选定模型并补齐普通 Gemini Flash 型号,再进入 GrsAI 和豆包;具体渠道、媒体传输和重试规则见上方环境变量说明。豆包使用 `ARK_API_KEY`,`ARK_MODEL` 可指定已开通的视频理解端点,默认 `ep-20260721150136-98dj9`。完整模型链耗尽后才汇总报错,调用和用量按实际渠道、模型记录。直接选择豆包时只调用豆包:
241
242
 
242
243
  ```bash
243
244
  # 豆包:默认读取 ARK_API_KEY;模型也可通过 ARK_MODEL 设置
@@ -0,0 +1,13 @@
1
+ # 0.69.1
2
+
3
+ ## Added
4
+ - None.
5
+
6
+ ## Changed
7
+ - 视频 ingest 默认首选 NNYYAI 次卡 `gemini-3.8-flash-anci`,使用 `NNYYAI_CI_API_KEY`;失败后依次尝试普通 NNYYAI Gemini 3.8 / 3.7 / 3.6 Flash(`NNYYAI_API_KEY`)、GrsAI 同三个型号(`GRSAI_API_KEY`)和豆包(`ARK_API_KEY`)。后备渠道仅在配置对应密钥时参与,切换保留同一视频和请求上下文,调用与用量记录实际渠道。漫画 ingest 与审核路由保持各自配置。
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-VMVTBWD3.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-T7IEGJGQ.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});