@lingjingai/scriptctl 0.65.4 → 0.65.7
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 +7 -4
- package/changes/0.65.5.md +32 -0
- package/changes/0.65.7.md +13 -0
- package/dist/bin.js +1 -1
- package/dist/{chunk-LT747D45.js → chunk-OC2YTU5O.js} +151 -149
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +1 -1
- package/dist/review-agent.js +263 -229
- package/package.json +1 -1
- package/skills/scriptctl/SKILL.md +9 -5
- package/skills/scriptctl/references/ingest-workflow.md +7 -4
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`
|
|
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>`。
|
|
149
|
-
|
|
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
|
-
|
|
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 设置
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# 0.65.5
|
|
2
|
+
|
|
3
|
+
## Added
|
|
4
|
+
- `synopsis generate --model <profile>` keeps an explicitly selected model profile across chunk, episode, arc and whole-script summaries.
|
|
5
|
+
|
|
6
|
+
## Changed
|
|
7
|
+
- Final reskin review saves the current plan version before independent readback so the audit content hash binds the delivered script.
|
|
8
|
+
- Planning tools apply explicit episode assignments to sourced beats and reorder existing events through `after`, preserving their identities and source mappings. Revision instructions route these structural changes to the owning planning stages.
|
|
9
|
+
- Reskin convergence independently reads the actual manuscript in continuous stage groups, repairs substantive findings, and reads back the result in fresh contexts. Its review agent can return evidence to the saved planning flow; changed design rechecks dependent events and beats, then reviews affected episodes and their downstream ledgers in order. Revision work and independent reading reports persist for continuation.
|
|
10
|
+
- Planning rechecks can amend upstream design; user decisions are reserved for conflicting requirements and creative choices that the supplied brief cannot resolve. Automatic review retains unfinished evidence when its bounded revision rounds do not converge.
|
|
11
|
+
- `reskin direction` reports its current suitability assessment, and `reskin plan` independently reviews target-market identities and new-world causal rules before completing the overall checkpoint. Source facts and candidate suggestions are interpreted through the target world's rules; structural checks remain distinct from content review.
|
|
12
|
+
- Reskin planning treats candidate actions and numbers as design proposals, derives the final implementation from the selected setting and user requirements, and preserves genre-appropriate spectacle while keeping the basic causal process coherent. A separate call derives basic domain knowledge from the target setting without reading proposed story rules. Independent critique identifies substantive causal errors before the editor revises the overall plan or verifies the finished events. Source mapping stays with the adaptation planning stages.
|
|
13
|
+
- `reskin write` runs one ordered chain per plan stage, with up to 6 chains at once by default. `--review-model <profile>` reviews each written episode and passes its cumulative ledger to the next; continuation skips completed writing and review, and stops only the chain whose episode fails. Progress reports `prepared.chains` and `episode-reviewed` alongside writing and review events.
|
|
14
|
+
- `reskin review --converge-only` checks stage-opening seams and reconciles the series using stage-end ledgers. Episode and series checks include estimated duration and quoted Chinese screen text for Latin-script dialogue plans.
|
|
15
|
+
- `reskin write` fills main-character roles from the planned character identities.
|
|
16
|
+
- Character design carries the source character's dramatic appeal and romantic function into the target-market appearance, alongside their profession and story circumstances.
|
|
17
|
+
- Reskin domain references and causal critique distinguish the deadline to start an action from the time allowed to finish it, and derive last-chance stakes from the target setting's actual remaining opportunities.
|
|
18
|
+
- Independent critique of a finished reskin plan reads each stage's detailed beats through a read-only tool, so causal errors in scene-level actions and character judgments are visible alongside event summaries.
|
|
19
|
+
- Planning, writing and review carry culturally specific forms of address through their relationship and emotional roles, with consistent target-language phrasing from setup to payoff.
|
|
20
|
+
|
|
21
|
+
## Fixed
|
|
22
|
+
- Official Gemini text and structured-tool requests use its OpenAI compatibility endpoint, and count cached input within total prompt tokens.
|
|
23
|
+
- Reskin CLI and batch completion retain failed global units even when earlier convergence units passed.
|
|
24
|
+
- Episode review uses planned beats for neighbours that have not been rewritten yet, keeping source placeholder synopses out of new-story continuity context.
|
|
25
|
+
- Character references preserve look names containing parentheses, so writing binds the existing character rather than creating a blank duplicate.
|
|
26
|
+
|
|
27
|
+
## Breaking
|
|
28
|
+
- None.
|
|
29
|
+
## 审核续跑
|
|
30
|
+
|
|
31
|
+
- `review --resume-log <日志>` 读取同一剧本已落盘的审核单元记录,支持按时间先后传入多份日志。已完成分集与未受影响的资产单元保留,失败单元及未解决的全剧交接继续执行;身份回改涉及的资产重新核对。
|
|
32
|
+
- 全剧身份核对按同一问题汇总跨集上报,在身份阶段完成新人物、造型状态及引用迁移。
|
package/dist/bin.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{b as s}from"./chunk-
|
|
2
|
+
import{b as s}from"./chunk-OC2YTU5O.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});
|