@lingjingai/scriptctl 0.53.7 → 0.53.9
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/changes/0.53.8.md +14 -0
- package/changes/0.53.9.md +13 -0
- package/dist/domain/ingest/video-source-evolution.d.ts +21 -0
- package/dist/domain/ingest/video-source-evolution.js +43 -0
- package/dist/domain/ingest/video-source-evolution.js.map +1 -0
- package/dist/infra/ingest/video-source-snapshot.d.ts +4 -0
- package/dist/infra/ingest/video-source-snapshot.js +24 -0
- package/dist/infra/ingest/video-source-snapshot.js.map +1 -0
- package/dist/infra/ingest/video-transcode.js +1 -0
- package/dist/infra/ingest/video-transcode.js.map +1 -1
- package/dist/llm/tasks/ingest/episode-assets.d.ts +20 -0
- package/dist/llm/tasks/ingest/episode-assets.js +130 -10
- package/dist/llm/tasks/ingest/episode-assets.js.map +1 -1
- package/dist/llm/tasks/ingest/name-fix.js +4 -4
- package/dist/llm/tasks/ingest/name-fix.js.map +1 -1
- package/dist/usecases/ingest/command.js +3 -1
- package/dist/usecases/ingest/command.js.map +1 -1
- package/dist/usecases/ingest/serial-govern.js +68 -28
- package/dist/usecases/ingest/serial-govern.js.map +1 -1
- package/dist/usecases/ingest/video-pipeline.d.ts +1 -0
- package/dist/usecases/ingest/video-pipeline.js +68 -31
- package/dist/usecases/ingest/video-pipeline.js.map +1 -1
- package/dist/usecases/script/working-copy.js +5 -0
- package/dist/usecases/script/working-copy.js.map +1 -1
- package/package.json +1 -1
- package/skills/scriptctl/SKILL.md +1 -1
- package/skills/scriptctl/references/ingest-workflow.md +28 -6
|
@@ -3,7 +3,7 @@ name: scriptctl
|
|
|
3
3
|
description: "剧本 script.json 的本地查询、文件化批量写作、原子精修、素材 ingest 与 revision publish CLI。处理 Script v3/v4、两个 script.json、剧本资产/state、Action、场景引用或 authoring 时使用。"
|
|
4
4
|
metadata:
|
|
5
5
|
version: "0.27.11"
|
|
6
|
-
scriptctl_version: "0.53.
|
|
6
|
+
scriptctl_version: "0.53.9"
|
|
7
7
|
author: "official"
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -7,7 +7,7 @@ ingest -s <file|dir> → 标准化复核 → view / ingest status →
|
|
|
7
7
|
(抽取,产 workspace/script.json) (内容完成门) (自查/看进度) (校验+入库)
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
- 支持输入:**文本** txt / md / docx;**视频** 单个正片文件或**分集目录**(需 `GEMINI_API_KEY
|
|
10
|
+
- 支持输入:**文本** txt / md / docx;**视频** 单个正片文件或**分集目录**(需 `GEMINI_API_KEY`)。编号分集目录必须组成从第 1 集开始、无缺集的 `1..N` 连续序列。pdf/json/xlsx 会被拒。
|
|
11
11
|
- `ingest` **不入库**:只产 `workspace/script.json`(默认工作区 `workspace`,可 `-w` 改)。入库是独立的 `publish`。
|
|
12
12
|
- 产物随后就是普通剧本:任何读写动词加 `-p workspace/script.json` 即可精修。
|
|
13
13
|
|
|
@@ -20,15 +20,36 @@ scriptctl ingest -s uploads/剧本.docx
|
|
|
20
20
|
scriptctl ingest -s uploads/正片/
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
### 视频分批追加
|
|
24
|
+
|
|
25
|
+
分集目录可以只放前几集先跑;后续把连续的新集加到同一目录,再对同一 workspace
|
|
26
|
+
重复原命令:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 首批目录内为第 1~3 集
|
|
30
|
+
scriptctl ingest -s uploads/正片/ -w workspaces/正片
|
|
31
|
+
|
|
32
|
+
# 加入第 4~6 集后继续;复用前 3 集,只处理新增集
|
|
33
|
+
scriptctl ingest -s uploads/正片/ -w workspaces/正片
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
workspace 把已经接受的分集视为不可变前缀。允许的 source 变化只有在尾部加入连续集号;
|
|
37
|
+
旧集内容改变、删除、改名、移动,或新增集造成断档时,返回
|
|
38
|
+
`INGEST_SOURCE_MISMATCH` / `INGEST_VIDEO_SEQUENCE`,不会复用不可信的跨集 context。
|
|
39
|
+
一次追加中断后仍运行同一条命令,继续补未完成的新集。
|
|
40
|
+
|
|
41
|
+
每次追加会从全部逐集 checkpoint 重建 `script.json`。先用前几集试跑和复核抽取质量,
|
|
42
|
+
等最后一批完成后再精修 `script.json`;批次之间直接修改成稿会在下一次重建时被覆盖。
|
|
43
|
+
|
|
23
44
|
常用 flag:
|
|
24
45
|
- `-w <dir>`:工作区根(manifest + 各 pass 目录 + 产物)。**不传默认 `<cwd>/workspace`**;显式传可放别处。`view` / `ingest status` 使用同一 workspace;publish 用 `-p <workspace>/script.json`。
|
|
25
46
|
- `--concurrency <n>`:文本 fanout 并发,默认 30。视频逐集串行。
|
|
26
47
|
- `--fps <n>`:视频采样帧率(>1 解锁亚秒级时间码)。默认 3。
|
|
27
|
-
- `--force
|
|
48
|
+
- `--force`:当前视频 pipeline 的**同源**工作区可清掉产物重跑(**不能换源,也不能升级旧 pipeline workspace**)。
|
|
28
49
|
|
|
29
50
|
管线(了解即可,产物都在 `workspace/`):
|
|
30
51
|
- **文本**:正文起点定位 → 切块 → 生产化归一 → 合并组装 `body.json` → 串行资产/身份/state 治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。
|
|
31
|
-
- **视频**:逐集串行观看原视频并维护跨集人物、剧情和造型上下文 → 确定性治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。时间戳写入 `extend.timestamp
|
|
52
|
+
- **视频**:逐集串行观看原视频并维护跨集人物、剧情和造型上下文 → 确定性治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。时间戳写入 `extend.timestamp`;逐集内容身份、`ep/*.json`、`context.json` 和身份映射共同支持断点续跑与严格尾部追加。
|
|
32
53
|
- **用量账本**:`usage.json` 在每集/处理单元成功或失败后立即原子更新。`records` 保存实际 task/provider/model 的逐次调用、失败、重试、token 与耗时;`episodes`、`byTask[].byModel`、全局 `byModel`、`totals` 和 `timing` 都从明细聚合,可用于按模型价格精确核算成本。
|
|
33
54
|
|
|
34
55
|
### 提取与解析原则
|
|
@@ -70,8 +91,9 @@ scriptctl summary -p workspace/script.json # 抽完当普通剧本读
|
|
|
70
91
|
|---|---|---|
|
|
71
92
|
| `INGEST_NORMALIZE_INCOMPLETE`(文本)<br>`INGEST_TRANSCRIBE_/CORRECT_/SPEAKER_INCOMPLETE`(视频) | 部分单元失败,留下 `passN/*.error.json` sidecar | **直接重跑 `scriptctl ingest`(同 source、同 workspace)**——从 checkpoint 续,只补失败单元。跑完 `ingest status` 看还剩几个,多跑几次到收敛 |
|
|
72
93
|
| `INGEST_SERIAL_FAILED`(文本串行 govern) | 某集串行解析连试几次仍失败(模型抖动) | **直接重跑**,从该集续——前面各集已缓存不重跑 |
|
|
73
|
-
| `INGEST_PIPELINE_MISMATCH` | 工作区的管线版本与当前版本不同 |
|
|
74
|
-
| `INGEST_SOURCE_MISMATCH` | 工作区是别的 source
|
|
94
|
+
| `INGEST_PIPELINE_MISMATCH` | 工作区的管线版本与当前版本不同 | 视频使用新的 `-w` 重新 ingest;文本按错误提示处理 |
|
|
95
|
+
| `INGEST_SOURCE_MISMATCH` | 工作区是别的 source,或已接受的视频分集前缀发生变化 | 恢复原分集前缀;确实要换源时使用新的 `-w`,**别 `--force` 硬覆盖** |
|
|
96
|
+
| `INGEST_VIDEO_SEQUENCE` | 视频集号没有组成从 1 开始的连续序列 | 补齐缺集或修正文件名后重跑 |
|
|
75
97
|
| `INGEST_VALIDATION_FAILED` | 最终校验没过 | 看 `workspace/validation.json` 的具体报错,修复后再 `publish` |
|
|
76
98
|
| 持续 401/403/404 / 模型路由错 | 网关/密钥/模型环境问题(不是抖动,重跑也不好) | 如实告诉用户,别反复空跑、别编造成功。视频需 `GEMINI_API_KEY` |
|
|
77
99
|
|
|
@@ -94,7 +116,7 @@ scriptctl publish -p workspace/script.json --project-group-no 123
|
|
|
94
116
|
- **转完先精修再入库**:`ingest` → 用 `-p workspace/script.json` 跑读写动词修(改归属、并角色、标龙套、补造型……)→ `publish`。
|
|
95
117
|
- **入库后再改**:继续编辑同一个受管本地文件再 publish;若工作副本不在,先 checkout,不能直接对 DB 跑原子命令。
|
|
96
118
|
- **视频复核**:`view` 出的 `review.html` 视频版支持点击台词跳到对应画面时间码,逐场核对发声源/造型。
|
|
97
|
-
-
|
|
119
|
+
- **超大剧集(几十集)**:可以按连续尾部分批加入同一 source 目录并重复 ingest;失败就重跑到 `ingest status` 显示 `ready`。已完成集和跨集 context 会复用。
|
|
98
120
|
- **归并质量**:跨集角色归并靠文字锚点,相似角色可能误合/合过头。用 `roster.review.md`(视频)核对归并决策;发现误合,入库后用 `merge` 拆分/改名修正。
|
|
99
121
|
|
|
100
122
|
## 七、抽完后的读写
|