@lingjingai/scriptctl 0.65.5 → 0.65.8

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
@@ -116,12 +116,13 @@ Gemini 接收左侧带时间戳、行锚点的亚洲格式剧本正文,以及
116
116
  | `PROJECT_LITELLM_GATEWAY_BASE_URL` | 内置配置的 gateway endpoint;OpenAI-compatible synopsis 必须配置 |
117
117
  | `SCRIPTCTL_LLM_CONFIG` | LLM 路由 YAML;优先级低于 `--llm-config` |
118
118
  | `NNYYAI_API_KEY` | 内置视频与漫画拉片 provider 的 API key |
119
+ | `GRSAI_API_KEY` | 视频拉片在主渠道 Gemini 模型耗尽后使用的 GrsAI 渠道密钥 |
119
120
  | `AWB_BASE_URL` | script-output gateway URL |
120
121
  | `LINGJING_AWB_ACCESS_KEY` | gateway 访问凭证 |
121
122
  | `SANDBOX_PROJECT_GROUP_NO` | 项目组号(也可用 `--project-group-no`) |
122
123
  | `SCRIPTCTL_NO_DOTENV` | 设为 `1` 跳过 `.env` 加载 |
123
124
 
124
- LLM 配置按 `--llm-config` → `SCRIPTCTL_LLM_CONFIG` → `$XDG_CONFIG_HOME/scriptctl/llm.yaml` → `~/.config/scriptctl/llm.yaml` 解析。固定位置文件不存在时使用类型化内置配置;显式文件缺失或任一已选文件非法时直接失败,不做合并或运行时 provider 切换。YAML 只允许通过 `apiKey.env` 引用密钥,路由格式如下:
125
+ LLM 配置按 `--llm-config` → `SCRIPTCTL_LLM_CONFIG` → `$XDG_CONFIG_HOME/scriptctl/llm.yaml` → `~/.config/scriptctl/llm.yaml` 解析。固定位置文件不存在时使用类型化内置配置;显式文件缺失或任一已选文件非法时直接失败,所选文件不与内置配置合并。YAML 只允许通过 `apiKey.env` 引用密钥,路由格式如下:
125
126
 
126
127
  ```yaml
127
128
  version: 1
@@ -145,8 +146,10 @@ Gemini provider 可设置 `videoResponseSchemaField: responseSchema`,用于 GR
145
146
 
146
147
  内置 `ingest.video-serial` 与 `ingest.comic-serial` 使用 NNYYAI 的 `gemini-3.8-flash`(`https://api.nnyyai.com`),
147
148
  从 `NNYYAI_API_KEY` 读取密钥,使用 base64 视频或 PDF 输入(Schema 字段为 `responseSchema`)。设置密钥后直接运行
148
- `scriptctl ingest -s <视频或PDF文件或目录> -w <workspace>`。Gemini 型号切换始终使用同一 NNYYAI 渠道;配置了 `ARK_API_KEY` 时保留豆包最终兜底。文本任务与 `review-agent` 保持原有路由。
149
- 显式 LLM 配置仍完全按所选文件执行;GrsAI、Google Vertex 等 provider 可继续使用。
149
+ `scriptctl ingest -s <视频或PDF文件或目录> -w <workspace>`。
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` 保持原有路由。
152
+ 显式 LLM 配置决定主渠道和模型,支持 GrsAI、Google Vertex 等 provider;视频同样按主渠道 → GrsAI → 豆包的顺序恢复。显式选择豆包时只调用豆包。
150
153
 
151
154
  Gemini provider 的 `videoUploadMode: base64` 可指定视频默认传输方式;未设置时为 `file-api`,
152
155
  显式 `--upload-mode` 优先于 provider 默认值。PDF 对应的配置为 `documentUploadMode` 和 `documentResponseSchemaField`,默认分别为 `file-api` 和 `responseJsonSchema`。自定义配置中的 NNYYAI provider 可写为:
@@ -206,7 +209,7 @@ MIT
206
209
 
207
210
  ### 指定视频理解服务
208
211
 
209
- Gemini 文本、结构化工具和视频请求先使用配置的主模型,再按 `gemini-3.8-flash → gemini-3.7-flash → gemini-3.6-flash` 尝试尚未调用的模型,全部失败后使用豆包。每个 Gemini 模型按 provider 的 `maxAttempts` 重试暂时性错误,豆包最多尝试 3 次;审核拒绝等不可重试错误直接进入下一模型,用户取消立即停止。切换 Gemini 模型保留服务地址、凭据和同一份视频;公共 Files API 上传重试耗尽时,由豆包读取本地视频。豆包使用 `ARK_API_KEY`,`ARK_MODEL` 可指定已开通的视频理解端点,默认 `ep-20260721150136-98dj9`。完整模型链耗尽后才汇总报错,调用和用量逐模型记录。直接选择豆包时只调用豆包:
212
+ 视频请求先使用配置的主模型,再按 `gemini-3.8-flash → gemini-3.7-flash → gemini-3.6-flash` 在同渠道补齐未试型号。主渠道耗尽或上传失败后,依次尝试已配置 `GRSAI_API_KEY` 的 GrsAI 三个型号,最后进入豆包;具体渠道、媒体传输和重试规则见上方环境变量说明。豆包使用 `ARK_API_KEY`,`ARK_MODEL` 可指定已开通的视频理解端点,默认 `ep-20260721150136-98dj9`。完整模型链耗尽后才汇总报错,调用和用量按实际渠道、模型记录。直接选择豆包时只调用豆包:
210
213
 
211
214
  ```bash
212
215
  # 豆包:默认读取 ARK_API_KEY;模型也可通过 ARK_MODEL 设置
@@ -228,3 +231,7 @@ scriptctl ingest --source-path ./video.mp4 --video-provider gemini
228
231
  ### Official Gemini via Vertex AI
229
232
 
230
233
  The built-in official Gemini provider uses `google-vertex` with Google Application Default Credentials (ADC). Set `GOOGLE_CLOUD_PROJECT` and configure ADC on each execution machine. All official calls use the global location; tokens refresh automatically. Video requests send inline media; text requests use the Vertex OpenAI-compatible API. A custom provider can declare `protocol: google-vertex`, `timeoutMs` and `maxAttempts` without an `apiKey` field. Custom Gemini gateways retain the `google-gemini` protocol and their own credentials.
234
+
235
+ ### 已授权的跨语言台词检查
236
+
237
+ 仅在已核实并授权的跨语言审核任务中设置 `SCRIPTCTL_ALLOW_DIALOGUE_MISMATCH=1`。该开关只允许超过10%的字符差异继续进入ASR校时和模型审核,仍写入原始差异报告,不修改剧本;未设置时保留硬拦截。它不跳过梗概必填检查或模型审核。
@@ -0,0 +1,13 @@
1
+ # 0.65.7
2
+
3
+ ## Added
4
+ - None.
5
+
6
+ ## Changed
7
+ - 视频 `ingest` 在主渠道 Gemini 型号耗尽后,先依次尝试 GrsAI 的 `gemini-3.8-flash`、`gemini-3.7-flash`、`gemini-3.6-flash`,再进入豆包;使用 `GRSAI_API_KEY`,主渠道视频上传失败时也按此顺序恢复。
8
+
9
+ ## Fixed
10
+ - None.
11
+
12
+ ## Breaking
13
+ - None.
@@ -0,0 +1,7 @@
1
+ # 0.65.8
2
+
3
+ ## Fixed
4
+ - 梗概解析识别繁体结构标题(單句梗概、關鍵事件等),保留正文和必填非空检查,避免有效模型响应被误判缺失。
5
+
6
+ ## Added
7
+ - 显式环境开关 SCRIPTCTL_ALLOW_DIALOGUE_MISMATCH=1,供已授权跨语言任务保留差异报告并继续ASR校时及模型审核;默认仍保留10%硬拦截。
package/dist/bin.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{b as s}from"./chunk-AMHE5YHV.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-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});