@lingjingai/scriptctl 0.54.0 → 0.56.0

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.
Files changed (54) hide show
  1. package/changes/0.55.0.md +22 -0
  2. package/changes/0.56.0.md +13 -0
  3. package/dist/cli/register-workflows.js +6 -0
  4. package/dist/cli/register-workflows.js.map +1 -1
  5. package/dist/domain/ingest/video-context.d.ts +1 -1
  6. package/dist/domain/ingest/video-context.js +77 -44
  7. package/dist/domain/ingest/video-context.js.map +1 -1
  8. package/dist/domain/ingest/video-serial-md.d.ts +6 -5
  9. package/dist/domain/ingest/video-serial-md.js +7 -7
  10. package/dist/domain/ingest/video-serial-md.js.map +1 -1
  11. package/dist/failures.d.ts +58 -0
  12. package/dist/failures.js +96 -0
  13. package/dist/failures.js.map +1 -0
  14. package/dist/infra/llm/doubao-video-model.js +25 -24
  15. package/dist/infra/llm/doubao-video-model.js.map +1 -1
  16. package/dist/infra/llm/failure-mapping.d.ts +6 -0
  17. package/dist/infra/llm/failure-mapping.js +146 -0
  18. package/dist/infra/llm/failure-mapping.js.map +1 -0
  19. package/dist/infra/llm/gemini-upload.d.ts +4 -0
  20. package/dist/infra/llm/gemini-upload.js +63 -19
  21. package/dist/infra/llm/gemini-upload.js.map +1 -1
  22. package/dist/infra/llm/gemini-video-model.d.ts +9 -10
  23. package/dist/infra/llm/gemini-video-model.js +175 -52
  24. package/dist/infra/llm/gemini-video-model.js.map +1 -1
  25. package/dist/llm/composition.d.ts +2 -2
  26. package/dist/llm/config.d.ts +1 -0
  27. package/dist/llm/config.js +4 -1
  28. package/dist/llm/config.js.map +1 -1
  29. package/dist/llm/router.d.ts +11 -7
  30. package/dist/llm/router.js +89 -27
  31. package/dist/llm/router.js.map +1 -1
  32. package/dist/llm/tasks/ingest/video-serial.d.ts +2 -2
  33. package/dist/llm/tasks/ingest/video-serial.js +26 -21
  34. package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
  35. package/dist/llm/tasks/schemas.js +16 -16
  36. package/dist/llm/tasks/schemas.js.map +1 -1
  37. package/dist/llm/types.d.ts +45 -12
  38. package/dist/llm/types.js +27 -0
  39. package/dist/llm/types.js.map +1 -1
  40. package/dist/usecases/ingest/command.js +91 -2
  41. package/dist/usecases/ingest/command.js.map +1 -1
  42. package/dist/usecases/ingest/failure.d.ts +26 -0
  43. package/dist/usecases/ingest/failure.js +149 -0
  44. package/dist/usecases/ingest/failure.js.map +1 -0
  45. package/dist/usecases/ingest/status.d.ts +13 -5
  46. package/dist/usecases/ingest/status.js +103 -17
  47. package/dist/usecases/ingest/status.js.map +1 -1
  48. package/dist/usecases/ingest/video-pipeline.d.ts +9 -1
  49. package/dist/usecases/ingest/video-pipeline.js +85 -26
  50. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  51. package/package.json +1 -1
  52. package/skills/scriptctl/SKILL.md +1 -1
  53. package/skills/scriptctl/references/ingest-workflow.md +52 -5
  54. package/skills/scriptctl/references/production-writing-standard.md +5 -0
@@ -1,10 +1,11 @@
1
1
  import * as crypto from "node:crypto";
2
2
  import { CliError, EXIT_INPUT, EXIT_RUNTIME } from "../common.js";
3
+ import { aggregateFailures, classificationOf, contextOf, createOperationalFailure, formatFailure, } from "../failures.js";
3
4
  import { AnthropicModel } from "../infra/llm/anthropic-model.js";
4
- import { DoubaoVideoModel } from "../infra/llm/doubao-video-model.js";
5
+ import { DoubaoVideoModel, } from "../infra/llm/doubao-video-model.js";
5
6
  import { GeminiVideoModel } from "../infra/llm/gemini-video-model.js";
6
7
  import { OpenAiCompatibleModel } from "../infra/llm/openai-compatible-model.js";
7
- import { loadLlmConfig } from "./config.js";
8
+ import { loadLlmConfig, normalizeProviderBaseUrl, } from "./config.js";
8
9
  import { LLM_TASK_IDS, LLM_TASK_REGISTRY } from "./registry.js";
9
10
  import { LlmTransportError } from "./types.js";
10
11
  // Video serial fallback chain: when the routed model fails a whole episode (after
@@ -58,15 +59,34 @@ function credentialError(provider) {
58
59
  data: { expected: ["credential environment variable referenced by the selected provider"], actual: [`provider: ${provider}`, "credential: missing"] },
59
60
  });
60
61
  }
62
+ function routedFailure(error, route) {
63
+ if (error instanceof LlmTransportError) {
64
+ return createOperationalFailure(classificationOf(error.failure), {
65
+ ...contextOf(error.failure),
66
+ provider: route.provider,
67
+ model: route.model,
68
+ retryable: error.failure.retryable,
69
+ message: error.failure.message,
70
+ });
71
+ }
72
+ return createOperationalFailure({ failure_type: "unknown", failure_code: "unknown" }, {
73
+ provider: route.provider,
74
+ model: route.model,
75
+ retryable: false,
76
+ message: error instanceof Error ? error.message : String(error),
77
+ });
78
+ }
61
79
  export class ModelRouter {
62
80
  config;
81
+ options;
63
82
  adapters = new Map();
64
83
  videoAdapters = new Map();
65
84
  doubaoAdapters = new Map();
66
85
  resolvedRoutes = new Map();
67
86
  usageLog = [];
68
- constructor(config) {
87
+ constructor(config, options = {}) {
69
88
  this.config = config;
89
+ this.options = options;
70
90
  }
71
91
  get configSource() {
72
92
  return this.config.source;
@@ -93,17 +113,28 @@ export class ModelRouter {
93
113
  if (modelConfig.thinkingBudgetTokens !== undefined && modelConfig.thinkingBudgetTokens >= spec.maxOutputTokens) {
94
114
  throw configRuntimeError("The thinking token budget must be smaller than the task output budget.", [`thinking budget < ${spec.maxOutputTokens}`], [`task: ${task}`, `thinking budget: ${modelConfig.thinkingBudgetTokens}`]);
95
115
  }
116
+ const videoOverrides = spec.mode === "video" ? this.options.videoProvider : undefined;
117
+ const overriddenProvider = videoOverrides?.baseUrl
118
+ ? { ...providerConfig, baseUrl: normalizeProviderBaseUrl(videoOverrides.baseUrl, "--provider-base-url") }
119
+ : providerConfig;
120
+ const overriddenModel = videoOverrides?.model
121
+ ? { ...modelConfig, model: videoOverrides.model.trim() }
122
+ : modelConfig;
123
+ if (videoOverrides?.model !== undefined && !overriddenModel.model) {
124
+ throw configRuntimeError("The video provider model cannot be empty.", ["non-empty --provider-model"], ["model: empty"]);
125
+ }
96
126
  const resolved = {
97
127
  info: {
98
128
  task,
99
129
  profile,
100
130
  provider: modelConfig.provider,
101
- protocol: providerConfig.protocol,
102
- model: modelConfig.model,
103
- fingerprint: routeFingerprint(task, providerConfig, modelConfig),
131
+ protocol: overriddenProvider.protocol,
132
+ baseUrl: overriddenProvider.baseUrl,
133
+ model: overriddenModel.model,
134
+ fingerprint: routeFingerprint(task, overriddenProvider, overriddenModel),
104
135
  },
105
- providerConfig,
106
- modelConfig,
136
+ providerConfig: overriddenProvider,
137
+ modelConfig: overriddenModel,
107
138
  };
108
139
  this.resolvedRoutes.set(task, resolved);
109
140
  return resolved;
@@ -141,6 +172,7 @@ export class ModelRouter {
141
172
  profile: event.profile,
142
173
  provider: event.provider,
143
174
  protocol: event.protocol,
175
+ baseUrl: event.baseUrl,
144
176
  model: event.model,
145
177
  fingerprint: event.fingerprint,
146
178
  ...this.emptyUsage(),
@@ -218,6 +250,7 @@ export class ModelRouter {
218
250
  profile: "doubao-fallback",
219
251
  provider: "doubao",
220
252
  protocol: provider.protocol,
253
+ baseUrl: provider.baseUrl,
221
254
  model: model.model,
222
255
  fingerprint: routeFingerprint(task, provider, model),
223
256
  };
@@ -247,7 +280,7 @@ export class ModelRouter {
247
280
  const cached = this.videoAdapters.get(key);
248
281
  if (cached)
249
282
  return cached;
250
- const apiKey = (process.env[route.providerConfig.apiKeyEnv] ?? "").trim();
283
+ const apiKey = this.videoCredential(route);
251
284
  if (!apiKey)
252
285
  throw credentialError(route.info.provider);
253
286
  const modelConfig = model ? { ...route.modelConfig, model } : route.modelConfig;
@@ -255,22 +288,37 @@ export class ModelRouter {
255
288
  this.videoAdapters.set(key, adapter);
256
289
  return adapter;
257
290
  }
291
+ videoCredential(route) {
292
+ const override = this.options.videoProvider?.apiKey;
293
+ const apiKey = override?.kind === "literal"
294
+ ? override.value.trim()
295
+ : override?.kind === "env"
296
+ ? (process.env[override.name] ?? "").trim()
297
+ : (process.env[route.providerConfig.apiKeyEnv] ?? "").trim();
298
+ if (!apiKey)
299
+ throw credentialError(route.info.provider);
300
+ return apiKey;
301
+ }
258
302
  videoPort(task) {
259
303
  const spec = LLM_TASK_REGISTRY[task];
260
304
  if (spec.mode !== "video")
261
305
  throw configRuntimeError("The task does not support video generation.", ["video task"], [`task: ${task}`]);
262
306
  const route = this.resolve(task);
263
- const port = this.videoAdapter(route); // routed model owns upload/delete (Files handle is model-agnostic)
307
+ const port = this.videoAdapter(route); // routed model owns media preparation/release
264
308
  // Try the routed model first, then the fallback peers (deduped against it).
265
- const chain = [route.info.model, ...VIDEO_FALLBACK_MODELS.filter((m) => m !== route.info.model)];
309
+ const chain = this.options.videoProvider
310
+ ? [route.info.model]
311
+ : [route.info.model, ...VIDEO_FALLBACK_MODELS.filter((m) => m !== route.info.model)];
266
312
  return {
267
- upload: (localPath, mimeType, signal) => port.upload(localPath, mimeType, signal),
268
- delete: (handle, signal) => port.delete(handle, signal),
313
+ prepare: (localPath, mimeType, mode, signal) => port.prepare(localPath, mimeType, mode, signal),
314
+ release: (media, signal) => port.release(media, signal),
269
315
  generate: async (request) => {
270
316
  const failures = [];
271
- for (const model of chain) {
317
+ const skipped = [];
318
+ for (const [index, model] of chain.entries()) {
319
+ const attemptRoute = this.videoRoute(route, model);
272
320
  try {
273
- const response = await this.tracked(this.videoRoute(route, model), () => this.videoAdapter(route, model).generate({ ...request, maxOutputTokens: spec.maxOutputTokens }));
321
+ const response = await this.tracked(attemptRoute, () => this.videoAdapter(route, model).generate({ ...request, maxOutputTokens: spec.maxOutputTokens }));
274
322
  if (model !== chain[0])
275
323
  process.stderr.write(`↪️ 已回退到备用模型 ${model}\n`);
276
324
  return response;
@@ -279,18 +327,24 @@ export class ModelRouter {
279
327
  // Abort is the caller's decision, not a model failure — stop the whole chain.
280
328
  if (request.signal?.aborted)
281
329
  throw error;
282
- const detail = error instanceof LlmTransportError ? `${error.message} [${error.code}]` : error instanceof Error ? error.message : String(error);
283
- failures.push(`${model}: ${detail}`);
284
- process.stderr.write(`⚠️ 模型 ${model} 失败,尝试下一个… (${detail})\n`);
330
+ const failure = routedFailure(error, attemptRoute);
331
+ failures.push(failure);
332
+ const detail = formatFailure(failure);
333
+ if (index < chain.length - 1) {
334
+ process.stderr.write(`⚠️ 模型 ${model} 失败,尝试下一个… (${detail})\n`);
335
+ }
285
336
  }
286
337
  }
287
338
  // Cross-provider last resort: Doubao (Ark). Needs ARK_API_KEY + the local file.
288
- const doubao = this.doubaoAdapter();
339
+ const doubao = this.options.videoProvider || request.media.kind === "base64"
340
+ ? null
341
+ : this.doubaoAdapter();
289
342
  const localPath = request.localPath;
290
343
  if (doubao && localPath) {
344
+ const attemptRoute = this.doubaoRoute(task);
291
345
  try {
292
346
  process.stderr.write(`↪️ Gemini 全部失败,回退到豆包 ${this.doubaoModel()}\n`);
293
- const response = await this.tracked(this.doubaoRoute(task), () => doubao.run({
347
+ const response = await this.tracked(attemptRoute, () => doubao.run({
294
348
  localPath,
295
349
  localMime: request.localMime ?? "video/mp4",
296
350
  user: request.user,
@@ -305,17 +359,25 @@ export class ModelRouter {
305
359
  catch (error) {
306
360
  if (request.signal?.aborted)
307
361
  throw error;
308
- const detail = error instanceof LlmTransportError ? `${error.message} [${error.code}]` : error instanceof Error ? error.message : String(error);
309
- failures.push(`${this.doubaoModel()}: ${detail}`);
362
+ failures.push(routedFailure(error, attemptRoute));
310
363
  }
311
364
  }
312
365
  else if (!doubao) {
313
- failures.push("doubao: skipped (ARK_API_KEY not set)");
366
+ if (!this.options.videoProvider && request.media.kind !== "base64") {
367
+ skipped.push("doubao: skipped (ARK_API_KEY not set)");
368
+ }
314
369
  }
315
370
  else {
316
- failures.push("doubao: skipped (no local file to re-upload)");
371
+ skipped.push("doubao: skipped (no local file to re-upload)");
317
372
  }
318
- throw new LlmTransportError("request_failed", "All video models failed (Gemini chain + Doubao).", { details: failures });
373
+ const aggregate = aggregateFailures(failures, "All configured video model attempts failed.");
374
+ throw new LlmTransportError("request_failed", aggregate.message, {
375
+ retryable: aggregate.retryable,
376
+ classification: classificationOf(aggregate),
377
+ context: contextOf(aggregate),
378
+ modelFailures: failures,
379
+ details: [...failures.map(formatFailure), ...skipped],
380
+ });
319
381
  },
320
382
  };
321
383
  }
@@ -355,7 +417,7 @@ export class ModelRouter {
355
417
  return this.tracked(route.info, () => adapter.generateTool({ ...request, maxOutputTokens: spec.maxOutputTokens }));
356
418
  }
357
419
  }
358
- export function createLlmExecutor(explicitConfigPath) {
359
- return new ModelRouter(loadLlmConfig(explicitConfigPath));
420
+ export function createLlmExecutor(explicitConfigPath, options) {
421
+ return new ModelRouter(loadLlmConfig(explicitConfigPath), options);
360
422
  }
361
423
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/llm/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/llm/router.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { SerialOutput } from "../../../domain/ingest/video-serial-md.js";
2
- import type { TaskVideoPort, VideoFileHandle } from "../../types.js";
2
+ import type { TaskVideoPort, VideoMediaInput } from "../../types.js";
3
3
  export type { SerialOutput, SerialScene, SerialEntity } from "../../../domain/ingest/video-serial-md.js";
4
4
  export declare const VIDEO_SERIAL_SYSTEM: string;
5
5
  export declare function buildSerialUser(episodeNo: number, contextText: string): string;
6
6
  export declare function toSerialOutput(input: unknown): SerialOutput;
7
- export declare function runVideoSerial(port: TaskVideoPort, file: VideoFileHandle, episodeNo: number, contextText: string, fps: number, signal?: AbortSignal, local?: {
7
+ export declare function runVideoSerial(port: TaskVideoPort, media: VideoMediaInput, episodeNo: number, contextText: string, fps: number, signal?: AbortSignal, local?: {
8
8
  path: string;
9
9
  mime: string;
10
10
  }): Promise<{
@@ -2,41 +2,46 @@
2
2
  // pipeline: it watches ONE episode's video WITH the running cross-episode context
3
3
  // (registry + plot digest + open threads) and returns ONE structured JSON object
4
4
  // (responseMimeType application/json + VIDEO_SERIAL_SCHEMA) carrying both (a) the
5
- // episode's high-fidelity screenplay (scenes → per-shot anchors) and (b) incremental
6
- // registry maintenance (new_entities / enrich / resolve) + open threads. This
5
+ // episode's production screenplay (scenes → performance/sound anchors) and (b) incremental
6
+ // registry maintenance (new_entities / enrich / canonicalize) + open threads. This
7
7
  // replaces the old "emit markdown → parseSerialMd" contract: structured output
8
8
  // removes a whole fragile text-parsing layer and lets the schema forbid the outfit-
9
9
  // name pollution (parens/slashes) at the source. Because it parses in order with
10
10
  // full plot context, identity is resolved by story — reusing canonical names,
11
- // registering anchored provisionals for unknowns, and issuing a `还原` once a later
12
- // episode reveals a provisional's real identity.
11
+ // registering anchored provisionals for unknowns, and canonicalizing an existing
12
+ // identity when direct written/spoken evidence reveals a better name.
13
13
  import { CliError, EXIT_RUNTIME } from "../../../common.js";
14
14
  import { isCrowdName } from "../../../domain/ingest/serial-context.js";
15
15
  import { normalizeSceneTime } from "../../../domain/ingest/environment.js";
16
16
  import { VIDEO_SERIAL_SCHEMA } from "../schemas.js";
17
17
  export const VIDEO_SERIAL_SYSTEM = "你是短剧视频转剧本的串行解析器。输入是**某一集**竖屏短剧视频(1-2 分钟)+ 一份到上一集为止累积的**已知设定**(人物花名册/剧情进展/未闭合线索)。" +
18
- "你要输出**一个结构化 JSON 对象**(严格符合系统给定的输出 schema),同时包含:①这一集**逐镜头、高保真**的剧本(scenes);②对已知设定的**增量维护**(registry_delta:人物花名册带状态标注、身份还原)+ 剧情线索(open_threads)。**只输出该 JSON,不要任何额外文字、解释或代码块包裹。**\n" +
19
- "核心要求:不漏镜头、动作/对白/实体准确、不脑补、时间戳对齐画面。\n" +
18
+ "你要输出**一个结构化 JSON 对象**(严格符合系统给定的输出 schema),同时包含:①这一集面向后续制作、按**生产行为节拍**组织的剧本(scenes);②对已知设定的**增量维护**(registry_delta:人物花名册带状态标注、规范名升级)+ 剧情线索(open_threads)。**只输出该 JSON,不要任何额外文字、解释或代码块包裹。**\n" +
19
+ "核心要求:可见行为与声音完整,动作/对白/实体准确,空间连续,不脑补,时间戳对齐画面。\n" +
20
+ "【单次解析顺序——必须依次完成】第一步,从视频开头到结尾完整听一遍音轨,按时间顺序盘点所有可辨识人声;第二步,从视频开头到结尾扫描每个新发生的可见行为节拍;第三步,才把两份盘点组织成 scenes 与 anchors。完成 JSON 前再次逐项复核人声、可见节拍和视频最后十秒,确认插入画面、手机/屏幕画面、回忆、蒙太奇、重复画面以及片尾前的反应都没有造成漏写。盘点和复核只在内部完成,不另增输出字段。\n" +
20
21
  "【身份归属——本任务重点】带着已知设定看这一集:\n" +
21
22
  "- 出现的人先判断**是不是花名册里已有的某个人**(比对锚点:发型/眼镜/脸型/体型/年龄段 + 剧情关系)。是 ⇒ 直接沿用其**规范名**,不要另起新名。\n" +
22
23
  "- 认不出、也没听到本名的人 ⇒ **不要硬猜、不要编带姓的假名**。用不含姓氏的描述名(如「湿发中年男」),status 标 `provisional`,写清锚点与作用。\n" +
23
- "- 已知设定里标了 ·待定 的 provisional 人物,若这一集剧情让你看清了他是谁 ⇒ 在 registry_delta.resolve 里写 {provisional_name, canonical_name, reason}。\n" +
24
+ "- 描述名、简称或不完整姓名只有在本集出现**书面正式姓名或台词直接说出本名**时才能升级规范名;在 registry_delta.canonicalize 写 {from_name, canonical_name, evidence},evidence 必须写明时间戳和当时可见的原文或听到的原话。剧情关系只能帮助判断是不是同一个人,不能单独作为改名证据。\n" +
25
+ "- scenes 的 characters、dlg/think speaker 使用的新人物名若不在已知设定中,必须同时出现在本集 new_entities;规范名升级后立即使用 canonical_name,不让正文人物名脱离花名册。\n" +
24
26
  "【说话人——用剧情锁定,别只看脸】短剧常有几个长相相似的中老年男性高管,单帧人脸会认错。先从台词内容、彼此称呼(谁叫谁「哥」「X总」)、场景关系(谁求谁、谁训谁、谁下跪)推断这场在场是谁、谁对谁说,再定说话人。剧情锁定优先于外貌。\n" +
25
27
  "【命名优先级】书面正式姓名(人物介绍条/工牌/来电显示)> 台词喊出的本名 > 纯描述名。有书面正式姓名就用它当规范名,哪怕全集只喊职务。绝不凭空捏造带姓氏的假名。\n" +
26
- "【声音完整性——先听完再拆画面】先完整听一遍本集音轨,按时间顺序盘点所有可辨识的人声,再逐场逐镜头解析画面。每段可辨识的人声都必须在 anchors 中出现且只出现一次,包括人物出镜对白、画外对白、角色内心独白/自述、客观旁白、电话/广播/设备声、耳语、群体声和跨画面连续讲述。说话时画面切换、人物未出镜、只出现回忆/蒙太奇或口型不可见,都不是省略声音的理由。连续讲述跨 scene 时按自然语句在对应画面时间点拆分,原话完整保留、不重不漏。\n" +
28
+ "【声音完整性】每段可辨识的人声都必须在 anchors 中出现且只出现一次,包括人物出镜对白、画外对白、角色内心独白/自述、客观旁白、电话/广播/设备声、耳语、群体声和跨画面连续讲述。说话时画面切换、人物未出镜、只显示流程图/地图/手机/屏幕、进入回忆或蒙太奇、重复某段画面、口型不可见,都不是省略声音的理由。连续讲述跨 scene 时按自然语句在对应画面时间点拆分,原话完整保留、不重不漏;用同语言对白字幕逐句核对音轨,尤其检查短句和插入画面上的连续声音。\n" +
27
29
  "【原声语言铁律】dlg/think 的 content 逐字保留音轨实际使用的语言、文字和夹杂语言,不翻译、不改写、不用中文字幕替换外语原声。英文音轨配中文字幕时写英文原词;印尼语、泰语或其他语言音轨写对应语言原词;同一句发生 code-switch 时按听到的顺序原样保留。证据优先级是原始音轨 > 与音轨同语言的对白字幕 > 翻译字幕。字幕只能辅助辨清同语言原词,不能改变台词语言;听不清时保留可确认部分并在 parenthetical 标『听辨待复核』,不要用翻译字幕猜台词。\n" +
28
- "【画面字幕】底部对白字幕是声音台词的冗余证据,不单独写成 act;用它核对对应 dlg/think 是否完整。只有承载新信息的画面文字(人物介绍条/身份头衔/时间地点交代/系统提示/关键道具上的字)才写进 act。\n" +
30
+ "【画面文字与嵌套画面】底部对白字幕是声音台词的冗余证据,不单独写成 act;用它逐句核对 dlg/think 是否完整。只有承载新信息的画面文字(人物介绍条/身份头衔/时间地点交代/系统提示/关键道具上的字)才写进 act。手机、监控、屏幕、照片和回忆画面只写实际可见的人物动作、物体和可读文字;没有画面、台词或文字直接证明时,不推断人物身体状态、事件原因、前后关系或结果。\n" +
29
31
  "【状态=造型】state / states = 一个角色一整套稳定扮相(着装+发型+持续妆造,如「深灰西装」),不是情绪/姿态,也不是单件衣服。给某角色标造型前,先看已知设定里他名下的「已知造型」清单——只要本集是他已列过的某套扮相(哪怕只拍到上半身/换了角度/光线不同/多看到少看到一件单品),**逐字照抄清单里那个造型名**,只有整套换装才新建。**造型名只填档位名本身,绝不带括号、斜杠、逗号或任何描述文字**(描述放实体 appearance,不要塞进造型名)。\n" +
30
- "【场界与地点】一场是地点、连续时段和叙事线连续的生产单元。客厅、卧室、卫生间、大厅、广场、舞台、后台分别使用独立 location;相关空间统一命名为『豪宅·客厅』『豪宅·卧室』。人物跨过门槛进入另一空间、镜头切到另一空间、明显跳时、切换叙事线或明确转场时建立新 scene。一个 scene 只写一个主 location;同一连续场内的人物造型变化不是分场理由。\n" +
32
+ "【场界与地点】一场是地点、连续时段和叙事线连续的生产单元。客厅、卧室、卫生间、大厅、广场、舞台、后台分别使用独立 location;相关空间统一命名为『豪宅·客厅』『豪宅·卧室』。人物跨过门槛进入另一空间、叙事进入另一稳定空间、明显跳时、切换叙事线或明确转场时建立新 scene。一个 scene 只写一个主 location;同一连续场内的人物造型变化不是分场理由。\n" +
31
33
  "【状态变化与场内资产】人物换整套服装、变身、脱衣形成可持续新外观时,把变化动作写入当前 scene 的 anchors。characters 中同一规范名只出现一次;该条的 states 是本场出现过的全部稳定造型集合,不能漏掉变化前或变化后状态,也不按先后拆成重复人物。地点被毁或关键道具明显变形时登记对应新 state。情绪、姿态和一次性动作保留在 anchor,不建立 state。\n" +
32
- "【动作】act 使用人物规范名,写清行动者、动作、作用对象、空间方向和可见结果;画面允许时补景别、机位、镜头运动和焦点。用画面可见的表情、肢体、道具或环境反应表达抽象心理。\n" +
33
- "【对白、内心独白、旁白与群体】人物对他人说出的声音写 dlg;音轨里实际听到、明确属于某角色的内心独白或第一人称自述写 think,speaker 使用该角色规范名,parenthetical 可标『内心独白』或『画外音』;客观叙述者或身份无法确认的旁白写 dlg,speaker 写『broadcast:旁白』;电话、广播或设备中的明确说话人也写 dlg,并在 parenthetical 标明声源。只记录音轨实际表达的内心,不根据表情或画面脑补未说出的心理。dlg/think 保留原话;parenthetical 可写可确认的语气、情绪、反应和紧贴台词的短促伴随动作。影响走位、道具或连续性的动作另写 act。两人同时说话时输出相邻两条 dlg,第二条 parenthetical 以『同时』开头。具体单人使用规范名;无法区分成员的众人、群众、路人等共同发声时 speaker 写『group:群体名』,不列入 characters 和 registry_delta。\n" +
34
+ "【生产行为节拍】anchors 按行为节拍与声音事件的发生顺序排列,不按镜头切换拆分。一个行为节拍是会改变可见表演或制作状态的最小事件:新动作、动作完成后的新反应、人物接触或分开、道具操作及结果、进出场、移动、姿势/朝向/视线或空间关系变化,都各自保留为 act。只把不同镜头或不同角度**重复展示的同一个节拍**去重;同时发生或无法拆开的微动作可以写在同一 act。不得把先后发生的多个节拍压缩为一条剧情概述,也不得因为它们属于同一目的或同一连续行为就合并。去重镜头不等于删除不同事件。全程不写摄影调度(远景、近景、特写、机位、运镜、构图、焦点)。\n" +
35
+ "【位置与持续状态】每场开头先用 act 建立画面可确认的人物位置、姿态、面向、视线和正在进行的行为。人物进出、移动、转身、改变姿势、改变注视对象、接触或分开时,用 act 写清变化后的关系。对白开始前先建立说话者和听者的可见状态;状态未变时由前文持续生效,不为每句对白虚构新动作。\n" +
36
+ "【动作写法】act 使用人物规范名,写清行动者、动作、作用对象、空间方向和可见结果。只写可制作的表情、视线、肢体、声音、道具或环境变化,例如写『Leo坐在后排,身体前倾,皱着眉看向驾驶座的Adrian』,不写『Leo哀求』『Leo很焦虑』『Leo情绪激动』『Leo神情突变』。不要用愤怒、焦虑、委屈、绝望、震惊、无言以对等情绪或心理判断替代画面事实;把能看到的眉眼、嘴部、呼吸、手势、姿态和移动直接写出来。只写画面能够确认的事实;看不清的位置、朝向、表情或动作不写,不补造。synopsis 可以概括剧情,anchors 不得写成剧情梗概。\n" +
37
+ "【正文与造型】角色的既有服装由 characters.states 和人物资产承载,act 不重复描述。只有画面中发生的换装、脱衣、服装破损、沾染泥污等可见变化,或确有必要区分人物/时段时才写入 act。\n" +
38
+ "【对白、内心独白、旁白与群体】人物对他人说出的声音写 dlg;音轨里实际听到、明确属于某角色的内心独白或第一人称自述写 think,speaker 使用该角色规范名,parenthetical 可标『内心独白』或『画外音』;客观叙述者或身份无法确认的旁白写 dlg,speaker 写『broadcast:旁白』;电话、广播或设备中的明确说话人也写 dlg,并在 parenthetical 标明声源。只记录音轨实际表达的内心,不根据表情或画面脑补未说出的心理。dlg/think 保留原话;parenthetical 是可选字段,只在确有信息时写可确认的发声方式、声音来源,或与台词同时发生的短促可见动作,例如『压低声音』『声音发颤』『皱眉看向Adrian』。没有提示就省略,不为每句对白填充。走位、姿势变化、人物接触、道具操作或影响连续性的动作另写 act;不得用抽象情绪或心理标签代替可见表演。两人同时说话时输出相邻两条 dlg,第二条 parenthetical 以『同时』开头。具体单人使用规范名;无法区分成员的众人、群众、路人等共同发声时 speaker 写『group:群体名』,不列入 characters 和 registry_delta。\n" +
34
39
  "【蒙太奇】同地点连续蒙太奇保留一场;跨地点蒙太奇按剪辑顺序拆成多个短 scene,每场绑定自己的 location、characters、props 和 state,并用 act 明确蒙太奇开始、切换和结束。";
35
40
  export function buildSerialUser(episodeNo, contextText) {
36
41
  const ctx = contextText.trim()
37
42
  ? `========== 已知设定(到上一集为止,规范名以此为准) ==========\n${contextText}\n`
38
43
  : "(这是第一集,暂无已知设定。)\n";
39
- return `解析第 ${episodeNo} 集:对照本集原视频,按输出 schema 返回 JSON 对象。scenes 逐场逐镜头覆盖全集;registry_delta 只报增量(已知且无新信息的实体不要写)。\n\n${ctx}`;
44
+ return `解析第 ${episodeNo} 集:对照本集原视频,按输出 schema 返回 JSON 对象。scenes 逐场覆盖全集,anchors 以生产行为节拍和声音事件组织,不按镜头切分;只去重重复展示的同一节拍,不合并先后发生的不同节拍。registry_delta 只报增量(已知且无新信息的实体不要写)。完成前复核全部人声、可见节拍和视频最后十秒。\n\n${ctx}`;
40
45
  }
41
46
  function serialError(message, received) {
42
47
  return new CliError(message, {
@@ -79,7 +84,7 @@ const cleanStates = (raw) => [...new Set(asArr(raw).map(cleanState).filter(Boole
79
84
  // state through cleanState and re-nests space/time into `environment` the way
80
85
  // applyDelta / deltaToDoc expect.
81
86
  export function toSerialOutput(input) {
82
- const out = { synopsis: "", scenes: [], registry_delta: { new_entities: [], enrich: [], resolve: [] }, open_threads: { opened: [], closed: [] } };
87
+ const out = { synopsis: "", scenes: [], registry_delta: { new_entities: [], enrich: [], canonicalize: [] }, open_threads: { opened: [], closed: [] } };
83
88
  if (!isObj(input))
84
89
  return out;
85
90
  out.synopsis = asStr(input.synopsis);
@@ -198,13 +203,13 @@ export function toSerialOutput(input) {
198
203
  if (Object.keys(en).length > 1)
199
204
  out.registry_delta.enrich.push(en);
200
205
  }
201
- for (const r of asArr(rd.resolve)) {
206
+ for (const r of asArr(rd.canonicalize)) {
202
207
  if (!isObj(r))
203
208
  continue;
204
- const p = asStr(r.provisional_name);
205
- const c = asStr(r.canonical_name);
206
- if (p && c)
207
- out.registry_delta.resolve.push({ provisional_name: p, canonical_name: c, reason: asStr(r.reason) });
209
+ const from = asStr(r.from_name);
210
+ const canonical = asStr(r.canonical_name);
211
+ if (from && canonical)
212
+ out.registry_delta.canonicalize.push({ from_name: from, canonical_name: canonical, evidence: asStr(r.evidence) });
208
213
  }
209
214
  const ot = isObj(input.open_threads) ? input.open_threads : {};
210
215
  for (const o of asArr(ot.opened)) {
@@ -225,9 +230,9 @@ export function toSerialOutput(input) {
225
230
  }
226
231
  // Returns the raw JSON text (pretty-printed, persisted for human review) alongside
227
232
  // the parsed SerialOutput the pipeline folds into context.
228
- export async function runVideoSerial(port, file, episodeNo, contextText, fps, signal, local) {
233
+ export async function runVideoSerial(port, media, episodeNo, contextText, fps, signal, local) {
229
234
  const response = await port.generate({
230
- file,
235
+ media,
231
236
  system: VIDEO_SERIAL_SYSTEM,
232
237
  user: buildSerialUser(episodeNo, contextText),
233
238
  fps,
@@ -1 +1 @@
1
- {"version":3,"file":"video-serial.js","sourceRoot":"","sources":["../../../../src/llm/tasks/ingest/video-serial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-serial.js","sourceRoot":"","sources":["../../../../src/llm/tasks/ingest/video-serial.ts"],"names":[],"mappings":"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"}
@@ -233,10 +233,10 @@ export const SERIAL_DELTA_SCHEMA = {
233
233
  },
234
234
  };
235
235
  // Serial VIDEO-pass structured output (§10.2, ingest.video-serial). Replaces the
236
- // old "emit one markdown doc → parseSerialMd" contract: Gemini returns THIS object
236
+ // prior "emit one markdown doc → parseSerialMd" contract: Gemini returns THIS object
237
237
  // directly (responseMimeType application/json + responseJsonSchema). It carries
238
- // both the episode screenplay (scenes → per-shot anchors) and incremental registry
239
- // maintenance (new_entities / enrich / resolve) + open threads. Mirrors the
238
+ // both the episode screenplay (scenes → performance/sound anchors) and incremental registry
239
+ // maintenance (new_entities / enrich / canonicalize) + open threads. Mirrors the
240
240
  // SerialOutput interface, with environment flattened to space/time. `state`/`states`
241
241
  // descriptions forbid parens/slashes at the source — the drift that fragmented one
242
242
  // outfit into 「黑丝短裙(身穿收银短袖」/「黑丝短裙/绷带短裙」under the md format —
@@ -251,7 +251,7 @@ export const VIDEO_SERIAL_SCHEMA = {
251
251
  synopsis: { type: "string", description: "本集剧情梗概,按发生顺序,200-300 字纯文本" },
252
252
  scenes: {
253
253
  type: "array",
254
- description: "本集所有生产场,按时间顺序逐场逐镜头。地点、明显时段或叙事线变化时拆场;同一连续场内的人物造型变化保留在同一场;跨地点蒙太奇拆成多个短场",
254
+ description: "本集所有生产场,按时间顺序排列。场内按生产行为节拍与声音事件组织,不按镜头切换拆分;只去重重复展示的同一个节拍,先后发生的不同动作、反应、接触、道具结果和空间变化分别保留;地点、明显时段或叙事线变化时拆场;同一连续场内的人物造型变化保留在同一场;跨地点蒙太奇拆成多个短场",
255
255
  items: {
256
256
  type: "object",
257
257
  required: ["space", "time", "timeRange", "location", "characters", "props", "anchors"],
@@ -281,17 +281,17 @@ export const VIDEO_SERIAL_SCHEMA = {
281
281
  props: { type: "array", items: { type: "string" }, description: "本场在场的关键道具名" },
282
282
  anchors: {
283
283
  type: "array",
284
- description: "本场逐镜头与声音锚点,按时间顺序,不漏镜头,也不漏出镜对白、画外对白、角色内心独白/自述、客观旁白、电话/广播/设备声、群体声或跨画面连续讲述",
284
+ description: "本场表演与声音锚点,按时间顺序排列。不同镜头重复展示的同一个行为节拍只写一次;每个新动作、反应、人物接触或分开、道具操作及结果、进出场和空间关系变化分别保留,不把先后节拍压缩为剧情概述。完整保留出镜对白、画外对白、角色内心独白/自述、客观旁白、电话/广播/设备声、群体声和跨画面连续讲述",
285
285
  items: {
286
286
  type: "object",
287
- required: ["kind", "speaker", "parenthetical", "ts", "content"],
287
+ required: ["kind", "speaker", "ts", "content"],
288
288
  additionalProperties: false,
289
289
  properties: {
290
290
  kind: { type: "string", enum: ["act", "dlg", "think"], description: "act=动作/环境;dlg=人物对他人说出的声音或客观旁白;think=音轨实际包含、明确属于某角色的内心独白/第一人称自述" },
291
291
  speaker: { type: "string", description: "dlg/think 的说话人规范名;客观叙述者或身份不明旁白用『broadcast:旁白』,广播用『broadcast:名』,无法区分成员的群体共同发声用『group:群体名』;act 填空串" },
292
- parenthetical: { type: "string", description: "仅 dlg/think:标准剧本的括号表演提示,可标内心独白、画外音、电话/广播/设备声、听辨待复核,以及可确认的语气、情绪、反应和紧贴台词的短促伴随动作;影响走位、道具或连续性的动作另写 act。只记录音轨实际表达的内心,不从画面脑补心理。两人同时说话时第二句以『同时』开头;act 填空串" },
292
+ parenthetical: { type: "string", description: "可选,仅 dlg/think 在确有信息时填写:内心独白、画外音、电话/广播/设备声、听辨待复核、可确认的发声方式,或与台词同时发生的短促可见动作。没有提示就省略,不为每句对白填充;不得用抽象情绪或心理标签代替表演。走位、姿势变化、人物接触、道具操作或影响连续性的动作另写 act。只记录音轨实际表达的内心,不从画面脑补心理。两人同时说话时第二句以『同时』开头" },
293
293
  ts: { type: "string", description: "本条时间戳 MM:SS(分:秒)" },
294
- content: { type: "string", description: "act=使用人物规范名的具体动作链,写清行动者、对象、方向和可见结果,并保留可见景别/机位;dlg/think=逐字保留音轨实际语言和夹杂语言,不翻译、不改写、不用翻译字幕替换外语原声" },
294
+ content: { type: "string", description: "act=使用人物规范名写生产行为节拍:场景开头建立可确认的位置、姿态、面向、视线和当前行为,之后写清行动者、对象、方向、空间关系及可见结果;只去重重复展示的同一节拍,先后发生的不同节拍分别写 act,不写摄影调度或剧情概述。角色既有服装由 characters.states 承载,只写换装、破损、泥污等现场变化或必要区分。只写具体表情、视线、肢体、声音、道具和环境事实,不用情绪心理判断替代可见表演。手机、屏幕、照片和回忆只描述实际可见内容与可读文字,不推断未直接证明的状态、原因或结果。dlg/think=逐字保留音轨实际语言和夹杂语言,不翻译、不改写、不用翻译字幕替换外语原声" },
295
295
  },
296
296
  },
297
297
  },
@@ -301,7 +301,7 @@ export const VIDEO_SERIAL_SCHEMA = {
301
301
  registry_delta: {
302
302
  type: "object",
303
303
  description: "对已知设定的增量维护。已有且无新信息的实体一个字都别写",
304
- required: ["new_entities", "enrich", "resolve"],
304
+ required: ["new_entities", "enrich", "canonicalize"],
305
305
  additionalProperties: false,
306
306
  properties: {
307
307
  new_entities: {
@@ -314,7 +314,7 @@ export const VIDEO_SERIAL_SCHEMA = {
314
314
  properties: {
315
315
  name: { type: "string", description: "规范名;认不出且无本名的人用不含姓的描述名(如『湿发中年男』),绝不编带姓假名" },
316
316
  kind: KIND3,
317
- status: { type: "string", enum: ["canonical", "provisional"], description: "canonical=身份已确认;provisional=认不出/未点名,待后续还原" },
317
+ status: { type: "string", enum: ["canonical", "provisional"], description: "canonical=身份已确认;provisional=认不出/未点名,待后续用直接命名证据升级规范名" },
318
318
  importance: { type: "string", enum: ["featured", "background"] },
319
319
  anchor: { type: "string", description: "1-3 个跨集重新指认的视觉特征" },
320
320
  appearance: { type: "string", description: "跨集恒定长相:性别+年龄段+脸型+发型+固定标记,不含服饰;认不出填空串" },
@@ -341,17 +341,17 @@ export const VIDEO_SERIAL_SCHEMA = {
341
341
  },
342
342
  },
343
343
  },
344
- resolve: {
344
+ canonicalize: {
345
345
  type: "array",
346
- description: "把已知设定里 provisional(待定)的人凭本集剧情还原成真身",
346
+ description: "仅凭本集直接出现的书面正式姓名或台词本名,把已知人物的描述名、简称或不完整姓名升级为更准确的规范名;剧情推断不能单独作为改名证据",
347
347
  items: {
348
348
  type: "object",
349
- required: ["provisional_name", "canonical_name", "reason"],
349
+ required: ["from_name", "canonical_name", "evidence"],
350
350
  additionalProperties: false,
351
351
  properties: {
352
- provisional_name: { type: "string", description: "之前登记的描述名" },
353
- canonical_name: { type: "string", description: "本集看清后的真名" },
354
- reason: { type: "string", description: "剧情依据一句话" },
352
+ from_name: { type: "string", description: "已知设定中的当前规范名或既有别名" },
353
+ canonical_name: { type: "string", description: "书面正式姓名或台词直接说出的本名" },
354
+ evidence: { type: "string", description: "直接命名证据,必须包含 MM:SS 时间戳以及画面原文或听到的原话" },
355
355
  },
356
356
  },
357
357
  },