@lingjingai/scriptctl 0.54.0 → 0.55.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 (42) hide show
  1. package/changes/0.55.0.md +22 -0
  2. package/dist/cli/register-workflows.js +6 -0
  3. package/dist/cli/register-workflows.js.map +1 -1
  4. package/dist/domain/ingest/video-context.d.ts +1 -1
  5. package/dist/domain/ingest/video-context.js +77 -44
  6. package/dist/domain/ingest/video-context.js.map +1 -1
  7. package/dist/domain/ingest/video-serial-md.d.ts +6 -5
  8. package/dist/domain/ingest/video-serial-md.js +7 -7
  9. package/dist/domain/ingest/video-serial-md.js.map +1 -1
  10. package/dist/infra/llm/gemini-upload.d.ts +4 -0
  11. package/dist/infra/llm/gemini-upload.js +54 -15
  12. package/dist/infra/llm/gemini-upload.js.map +1 -1
  13. package/dist/infra/llm/gemini-video-model.d.ts +5 -3
  14. package/dist/infra/llm/gemini-video-model.js +49 -18
  15. package/dist/infra/llm/gemini-video-model.js.map +1 -1
  16. package/dist/llm/composition.d.ts +2 -2
  17. package/dist/llm/config.d.ts +1 -0
  18. package/dist/llm/config.js +4 -1
  19. package/dist/llm/config.js.map +1 -1
  20. package/dist/llm/router.d.ts +11 -7
  21. package/dist/llm/router.js +54 -20
  22. package/dist/llm/router.js.map +1 -1
  23. package/dist/llm/tasks/ingest/video-serial.d.ts +2 -2
  24. package/dist/llm/tasks/ingest/video-serial.js +26 -21
  25. package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
  26. package/dist/llm/tasks/schemas.js +16 -16
  27. package/dist/llm/tasks/schemas.js.map +1 -1
  28. package/dist/llm/types.d.ts +31 -5
  29. package/dist/llm/types.js +1 -0
  30. package/dist/llm/types.js.map +1 -1
  31. package/dist/usecases/ingest/command.js +91 -2
  32. package/dist/usecases/ingest/command.js.map +1 -1
  33. package/dist/usecases/ingest/status.d.ts +4 -0
  34. package/dist/usecases/ingest/status.js +39 -4
  35. package/dist/usecases/ingest/status.js.map +1 -1
  36. package/dist/usecases/ingest/video-pipeline.d.ts +9 -1
  37. package/dist/usecases/ingest/video-pipeline.js +73 -13
  38. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  39. package/package.json +1 -1
  40. package/skills/scriptctl/SKILL.md +1 -1
  41. package/skills/scriptctl/references/ingest-workflow.md +42 -4
  42. package/skills/scriptctl/references/production-writing-standard.md +5 -0
@@ -0,0 +1,22 @@
1
+ # 0.55.0
2
+
3
+ ## Added
4
+ - `scriptctl ingest --step` processes only the next unfinished video episode and reports `completed`, `remaining`, `complete`, and `next_episode` for external orchestration.
5
+ - `scriptctl ingest` supports `--upload-mode file-api|base64` and runtime Gemini provider overrides for base URL, API key, and model.
6
+
7
+ ## Changed
8
+ - `scriptctl ingest status` keeps a validated partial video script in `incomplete` state until every source episode is complete.
9
+ - `scriptctl ingest` 视频解析按生产行为节拍保留每个新动作、反应、接触、道具结果和空间变化,只去重重复展示的同一节拍,并在单次解析结束前复核全部人声与视频尾段。
10
+ - `scriptctl ingest` 视频解析仅在书面姓名或台词本名提供直接证据时逐步升级人物规范名,历史描述名与简称统一成为同一资产的 aliases。
11
+ - 视频 Action 只描述可见表演和嵌套画面的字面事实;`parenthetical` 仅在确有声音或同时发生的短动作提示时输出。
12
+ - 视频串行上下文只携带最近三集剧情摘要;长期连续性继续由人物 registry 和未闭合线索承载,避免旧剧情无限累积干扰当前集解析。
13
+ - `scriptctl ingest` 视频解析的内置默认模型现在是 `gemini-3.6-flash`。
14
+
15
+ ## Fixed
16
+ - `scriptctl ingest` keeps both phases of Gemini Files API uploads on an explicitly configured provider base URL.
17
+ - `scriptctl ingest` rejects explicitly empty video provider options instead of silently selecting the default provider and fallback chain.
18
+ - Video provider credentials are redacted from transport errors and ingest error sidecars.
19
+ - `scriptctl ingest status` derives completed video episodes from the accepted `context.json` prefix and requires `script.json` to contain the same prefix before reporting finalization complete.
20
+
21
+ ## Breaking
22
+ - 视频 ingest workspace 现在使用 pipeline version 12;version 11 及更早 workspace 需改用新的 `-w` 重新 ingest。
@@ -23,6 +23,12 @@ export function registerWorkflowCommands(program, state, llm) {
23
23
  .option("--llm-config <path>", "LLM configuration file")
24
24
  .option("--concurrency <n>", "Maximum concurrent model calls")
25
25
  .option("--fps <n>", "Video sampling rate")
26
+ .option("--upload-mode <mode>", "Video transport: file-api (default) or base64")
27
+ .option("--provider-base-url <url>", "Gemini-compatible provider service root")
28
+ .option("--provider-api-key <key>", "Provider API key (visible in process arguments; prefer --provider-api-key-env)")
29
+ .option("--provider-api-key-env <name>", "Environment variable containing the provider API key")
30
+ .option("--provider-model <model>", "Gemini-compatible provider model")
31
+ .option("--step", "Process only the next unfinished video episode")
26
32
  .option("--force", "Rebuild completed stages")
27
33
  .addHelpText("after", "\nExample:\n scriptctl ingest --source-path ./draft.md --workspace-path ./workspace\n")
28
34
  .action(dispatch((options) => commandIngest(options, llm), state));
@@ -1 +1 @@
1
- {"version":3,"file":"register-workflows.js","sourceRoot":"","sources":["../../src/cli/register-workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-workflows.js","sourceRoot":"","sources":["../../src/cli/register-workflows.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { SerialOutput } from "./video-serial-md.js";
2
2
  import type { VideoEpisodeDoc } from "./video-records.js";
3
3
  export type EntityKind = "actor" | "location" | "prop";
4
4
  export interface RegistryEntity {
5
+ identitySeed: string;
5
6
  name: string;
6
7
  kind: EntityKind;
7
8
  status: "canonical" | "provisional";
@@ -13,7 +14,6 @@ export interface RegistryEntity {
13
14
  states: string[];
14
15
  firstEpisode: number;
15
16
  lastEpisode: number;
16
- resolvesTo?: string;
17
17
  }
18
18
  export interface EpisodeDigest {
19
19
  episode: number;
@@ -4,15 +4,21 @@
4
4
  // known outfit states) plus a compacting plot digest and open story threads.
5
5
  // renderContext() serializes it into the markdown block fed back into the next
6
6
  // episode's parse so the model resolves identity by plot — not by re-matching
7
- // faces in isolation. Provisional identities carry an anchor until a later,
8
- // better-informed episode reveals who they are (resolve → resolvesTo), which the
9
- // deterministic finalize sweep (buildAliasMap → renameDocs) folds into real ids.
7
+ // faces in isolation. identitySeed stays fixed while direct naming evidence may
8
+ // upgrade the current canonical name; previous names accumulate as aliases for
9
+ // the deterministic finalize sweep (buildAliasMap → renameDocs).
10
10
  import { isCrowdName } from "./serial-context.js";
11
11
  export function emptyContext() {
12
12
  return { lastEpisode: 0, registry: [], digests: [], openThreads: [] };
13
13
  }
14
14
  const norm = (s) => s.normalize("NFC").replace(/\s+/g, " ").trim();
15
15
  const clip = (s, n) => (s.length > n ? `${s.slice(0, n)}…` : s);
16
+ function findRegistryEntity(registry, name) {
17
+ const key = norm(name);
18
+ return registry.find((entity) => norm(entity.name) === key
19
+ || norm(entity.identitySeed) === key
20
+ || entity.aliases.some((alias) => norm(alias) === key));
21
+ }
16
22
  const RECENT_N = 3; // recent episodes kept with full synopsis
17
23
  const CHAR_BUDGET = 12000; // renderContext output ceiling; shrink the window to fit
18
24
  function pushUniq(arr, v) {
@@ -47,7 +53,7 @@ function enrichEntity(e, d, episode, overwrite = false) {
47
53
  // Fold one episode's serial output into the context. Mutates and returns ctx
48
54
  // (called once per episode in the serial loop).
49
55
  export function applyDelta(ctx, out, episode) {
50
- const find = (name) => ctx.registry.find((e) => norm(e.name) === norm(name));
56
+ const find = (name) => findRegistryEntity(ctx.registry, name);
51
57
  for (const ne of out.registry_delta.new_entities) {
52
58
  const name = ne.name.trim();
53
59
  if (!name)
@@ -66,6 +72,7 @@ export function applyDelta(ctx, out, episode) {
66
72
  for (const a of ne.aliases ?? [])
67
73
  pushUniq(aliases, a);
68
74
  ctx.registry.push({
75
+ identitySeed: name,
69
76
  name,
70
77
  kind: ne.kind,
71
78
  status: ne.status,
@@ -86,11 +93,50 @@ export function applyDelta(ctx, out, episode) {
86
93
  continue;
87
94
  enrichEntity(e, en, episode, true);
88
95
  }
89
- for (const rs of out.registry_delta.resolve) {
90
- const e = find(rs.provisional_name);
91
- const to = rs.canonical_name.trim();
92
- if (e && to && norm(to) !== norm(e.name))
93
- e.resolvesTo = to;
96
+ for (const change of out.registry_delta.canonicalize) {
97
+ const source = find(change.from_name);
98
+ const canonicalName = change.canonical_name.trim();
99
+ if (!source || !canonicalName || norm(canonicalName) === norm(source.name))
100
+ continue;
101
+ const target = find(canonicalName);
102
+ if (target && target !== source) {
103
+ // Preserve the identity that entered the story first; on a tie, prefer the
104
+ // already-canonical target. Display metadata comes from the named target,
105
+ // while lists and appearance history are combined without loss.
106
+ const stable = source.firstEpisode < target.firstEpisode ? source : target;
107
+ const other = stable === source ? target : source;
108
+ const stableStates = [...stable.states];
109
+ const aliases = new Set([
110
+ ...source.aliases,
111
+ ...target.aliases,
112
+ source.identitySeed,
113
+ target.identitySeed,
114
+ source.name,
115
+ target.name,
116
+ change.from_name,
117
+ ].map((name) => name.trim()).filter(Boolean));
118
+ stable.name = canonicalName;
119
+ stable.status = "canonical";
120
+ stable.importance = source.importance === "featured" || target.importance === "featured" ? "featured" : "background";
121
+ stable.anchor = target.anchor || source.anchor;
122
+ if (target.appearance || source.appearance)
123
+ stable.appearance = target.appearance || source.appearance;
124
+ stable.role = target.role || source.role;
125
+ stable.states = [];
126
+ for (const state of [...stableStates, ...other.states])
127
+ pushUniq(stable.states, state);
128
+ stable.aliases = [...aliases].filter((alias) => norm(alias) !== norm(canonicalName));
129
+ stable.firstEpisode = Math.min(source.firstEpisode, target.firstEpisode);
130
+ stable.lastEpisode = Math.max(source.lastEpisode, target.lastEpisode, episode);
131
+ ctx.registry.splice(ctx.registry.indexOf(other), 1);
132
+ continue;
133
+ }
134
+ pushUniq(source.aliases, source.name);
135
+ pushUniq(source.aliases, change.from_name);
136
+ source.name = canonicalName;
137
+ source.status = "canonical";
138
+ source.aliases = source.aliases.filter((alias) => norm(alias) !== norm(canonicalName));
139
+ source.lastEpisode = episode;
94
140
  }
95
141
  let seq = 0;
96
142
  for (const op of out.open_threads.opened) {
@@ -124,7 +170,7 @@ function renderActor(e, hard) {
124
170
  L.push(`- 已知造型: ${e.states.join(" / ")}`);
125
171
  L.push(`- 出现: ep ${e.firstEpisode}–${e.lastEpisode}`);
126
172
  if (e.status === "provisional")
127
- L.push(`- 身份未确认:本集若看清他是谁,用 resolve 回填 {provisional_name:"${e.name}", canonical_name:"真名"}`);
173
+ L.push(`- 身份未确认:本集若出现书面姓名或台词本名,用 canonicalize 从「${e.name}」升级规范名`);
128
174
  return L;
129
175
  }
130
176
  function renderAsset(e, hard) {
@@ -151,11 +197,11 @@ function render(ctx, recentN, hard) {
151
197
  L.push(renderAsset(e, hard));
152
198
  L.push("");
153
199
  }
154
- if (ctx.digests.length) {
200
+ const recentDigests = ctx.digests.filter((digest) => digest.episode > ctx.lastEpisode - recentN);
201
+ if (recentDigests.length) {
155
202
  L.push("## 剧情进展", "");
156
- for (const d of [...ctx.digests].sort((a, b) => a.episode - b.episode)) {
157
- const detailed = d.episode > ctx.lastEpisode - recentN;
158
- L.push(detailed ? `第${d.episode}集:${d.synopsis}` : `第${d.episode}集:${clip(d.synopsis, hard ? 40 : 80)}`);
203
+ for (const d of [...recentDigests].sort((a, b) => a.episode - b.episode)) {
204
+ L.push(`第${d.episode}集:${hard ? clip(d.synopsis, 40) : d.synopsis}`);
159
205
  }
160
206
  L.push("");
161
207
  }
@@ -168,8 +214,9 @@ function render(ctx, recentN, hard) {
168
214
  return L.join("\n");
169
215
  }
170
216
  // Serialize the context for the next episode's prompt. Registry + open threads
171
- // are load-bearing identity anchors and are NEVER compacted; only the plot
172
- // digest window shrinks to fit CHAR_BUDGET (recent N full, older one-lined).
217
+ // are load-bearing identity anchors and are NEVER compacted. Plot history is a
218
+ // rolling window: older resolved events would otherwise grow without bound and
219
+ // compete with the current episode's audio/visual evidence.
173
220
  export function renderContext(ctx) {
174
221
  for (let n = RECENT_N; n >= 1; n--) {
175
222
  const out = render(ctx, n, false);
@@ -178,34 +225,23 @@ export function renderContext(ctx) {
178
225
  }
179
226
  return render(ctx, 1, true); // n==1 still over budget → hard-trim digests/appearance
180
227
  }
181
- // ===== provisional → real name backfill (finalize) =====
182
- // Flatten resolve chains (湿发男→A→江总→江文博 ⇒ 湿发男→江文博) into a one-hop
183
- // alias map. Mirrors video-pass3 resolveFinal's transitive closure.
228
+ // ===== historical surface name → current canonical name (finalize) =====
184
229
  export function buildAliasMap(registry) {
185
- const direct = new Map();
186
- for (const e of registry)
187
- if (e.resolvesTo && norm(e.resolvesTo) !== norm(e.name))
188
- direct.set(e.name, e.resolvesTo);
189
- const resolve = (n, seen = new Set()) => {
190
- if (!direct.has(n) || seen.has(n))
191
- return n;
192
- seen.add(n);
193
- return resolve(direct.get(n), seen);
194
- };
195
- const flat = new Map();
196
- for (const k of direct.keys()) {
197
- const v = resolve(k);
198
- if (v !== k)
199
- flat.set(k, v);
230
+ const aliases = new Map();
231
+ for (const entity of registry) {
232
+ for (const surface of [entity.identitySeed, ...entity.aliases]) {
233
+ if (norm(surface) !== norm(entity.name))
234
+ aliases.set(surface, entity.name);
235
+ }
200
236
  }
201
- return flat;
237
+ return aliases;
202
238
  }
203
239
  // The video path bypasses runGovern (which used to inject importance + aliases),
204
240
  // so stamp both deterministically from the registry before governDeterministic.
205
241
  // Importance: unmatched assets default to "featured" (never silently hidden),
206
- // matching apply-plan. Aliases: registry surface names + resolved provisional
207
- // descriptors are folded onto the canonical asset (renameDocs collapsed them to
208
- // one name, so assignProvisionalIds saw no aliases).
242
+ // matching apply-plan. Historical names from identitySeed + aliases are folded
243
+ // onto the canonical asset (renameDocs collapsed them to one name, so
244
+ // assignProvisionalIds saw no aliases).
209
245
  export function stampImportance(script, registry) {
210
246
  const imp = new Map();
211
247
  const surfaceFor = new Map(); // canonical norm name → surface aliases
@@ -218,16 +254,13 @@ export function stampImportance(script, registry) {
218
254
  surfaceFor.set(k, new Set());
219
255
  surfaceFor.get(k).add(a);
220
256
  };
221
- const flat = buildAliasMap(registry); // provisional name → resolved real name
222
257
  for (const e of registry) {
223
258
  imp.set(norm(e.name), e.importance);
224
259
  for (const a of e.aliases)
225
260
  imp.set(norm(a), e.importance);
226
- const canon = flat.get(e.name) ?? e.name;
227
- for (const a of e.aliases)
228
- addSurface(canon, a);
229
- if (e.resolvesTo)
230
- addSurface(canon, e.name); // provisional descriptor → alias of the real one
261
+ imp.set(norm(e.identitySeed), e.importance);
262
+ for (const alias of new Set([e.identitySeed, ...e.aliases]))
263
+ addSurface(e.name, alias);
231
264
  }
232
265
  const stamp = (list, nameKey) => {
233
266
  for (const a of list ?? []) {
@@ -1 +1 @@
1
- {"version":3,"file":"video-context.js","sourceRoot":"","sources":["../../../src/domain/ingest/video-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-context.js","sourceRoot":"","sources":["../../../src/domain/ingest/video-context.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,iEAAiE;AAIjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqClD,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACnF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAExF,SAAS,kBAAkB,CAAC,QAA0B,EAAE,IAAY;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG;WACtB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG;WACjC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,0CAA0C;AAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,yDAAyD;AAEpF,SAAS,QAAQ,CAAC,GAAa,EAAE,CAAU;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,kFAAkF;AAClF,iFAAiF;AACjF,oCAAoC;AACpC,gFAAgF;AAChF,6DAA6D;AAC7D,SAAS,YAAY,CACnB,CAAiB,EACjB,CAAyG,EACzG,OAAe,EACf,SAAS,GAAG,KAAK;IAEjB,MAAM,GAAG,GAAG,CAAC,GAAuB,EAAE,GAAuB,EAAsB,EAAE;QACnF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACnB,OAAO,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC,CAAC;IACF,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,UAAU;QAAE,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;IAC1C,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,GAAe,EAAE,GAAiB,EAAE,OAAe;IAC5E,MAAM,IAAI,GAAG,CAAC,IAAY,EAA8B,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAElG,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC;YAAE,SAAS;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,QAAQ,EAAE,CAAC;YACb,YAAY,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACjJ,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChB,YAAY,EAAE,IAAI;YAClB,IAAI;YACJ,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAChC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC5B,OAAO;YACP,MAAM;YACN,YAAY,EAAE,OAAO;YACrB,WAAW,EAAE,OAAO;SACrB,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,SAAS;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnC,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAChC,2EAA2E;YAC3E,0EAA0E;YAC1E,gEAAgE;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3E,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAClD,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;gBACtB,GAAG,MAAM,CAAC,OAAO;gBACjB,GAAG,MAAM,CAAC,OAAO;gBACjB,MAAM,CAAC,YAAY;gBACnB,MAAM,CAAC,YAAY;gBACnB,MAAM,CAAC,IAAI;gBACX,MAAM,CAAC,IAAI;gBACX,MAAM,CAAC,SAAS;aACjB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAE9C,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;YAC5B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;YAC5B,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;YACrH,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAC/C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;gBAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YACvG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrF,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACzE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;QAC5B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI;YAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,GAAG;YAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mDAAmD;AAEnD,SAAS,WAAW,CAAC,CAAiB,EAAE,IAAa;IACnD,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IACtE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,IAAI;QAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,UAAU;QAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa;QAAE,CAAC,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;IAClG,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,CAAiB,EAAE,IAAa;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,MAAM,CAAC,GAAe,EAAE,OAAe,EAAE,IAAa;IAC7D,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,WAAW,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAE5D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;IACjG,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW;YAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,GAAe;IAC3C,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,IAAI,WAAW;YAAE,OAAO,GAAG,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,wDAAwD;AACvF,CAAC;AAED,0EAA0E;AAE1E,MAAM,UAAU,aAAa,CAAC,QAA0B;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,sEAAsE;AACtE,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAAwB,MAAS,EAAE,QAA0B;IAC1F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC,CAAC,wCAAwC;IAC3F,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAa,EAAQ,EAAE;QACxD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,IAAyB,EAAE,OAAoB,EAAQ,EAAE;QACtE,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,KAA4C,CAAC;YACjD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,EAAE,CAAC;oBAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;YAC9B,CAAC;YACD,CAAC,CAAC,UAAU,GAAG,KAAK,IAAI,UAAU,CAAC;YACnC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE,IAAI;gBAAE,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sDAAsD;AAEtD,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,GAAiB,EAAE,OAAe;IAC3D,MAAM,MAAM,GAAiB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnD,MAAM,GAAG,GAAsC,EAAE,CAAC;QAClD,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;QAC1D,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAkB,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;SACzB,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,WAAW,EAAE,GAAG;YAChB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5G,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACtC,OAAO;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACrC,MAAM;QACN,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC"}
@@ -30,6 +30,11 @@ export interface SerialEntity {
30
30
  states?: string[];
31
31
  aliases?: string[];
32
32
  }
33
+ export interface SerialCanonicalization {
34
+ from_name: string;
35
+ canonical_name: string;
36
+ evidence: string;
37
+ }
33
38
  export interface SerialOutput {
34
39
  synopsis: string;
35
40
  scenes: SerialScene[];
@@ -43,11 +48,7 @@ export interface SerialOutput {
43
48
  add_aliases?: string[];
44
49
  add_states?: string[];
45
50
  }>;
46
- resolve: Array<{
47
- provisional_name: string;
48
- canonical_name: string;
49
- reason: string;
50
- }>;
51
+ canonicalize: SerialCanonicalization[];
51
52
  };
52
53
  open_threads: {
53
54
  opened: Array<{
@@ -2,7 +2,7 @@
2
2
  // The serial Gemini pass emits ONE markdown document carrying both the episode
3
3
  // screenplay (梗概 + 剧本 with MM:SS timestamps + typed-speaker anchors) and
4
4
  // the registry-maintenance block in a fixed syntax (资产 roster with status /
5
- // importance / 造型 / 别名, 还原 for provisional→real, 线索 for open threads).
5
+ // importance / 造型 / 别名, canonicalization, 线索 for open threads).
6
6
  // This parser turns it into the SerialOutput contract that applyDelta / deltaToDoc
7
7
  // consume. Lenient by design — never throws on a malformed line; runVideoSerial
8
8
  // rejects an empty/scene-less transcript upstream.
@@ -58,7 +58,7 @@ export function parseSerialMd(md, _episode) {
58
58
  const out = {
59
59
  synopsis: "",
60
60
  scenes: [],
61
- registry_delta: { new_entities: [], enrich: [], resolve: [] },
61
+ registry_delta: { new_entities: [], enrich: [], canonicalize: [] },
62
62
  open_threads: { opened: [], closed: [] },
63
63
  };
64
64
  let section = null;
@@ -77,7 +77,7 @@ export function parseSerialMd(md, _episode) {
77
77
  const t = raw.replace(/\s+$/, "").trim();
78
78
  // Section headers. "# 资产维护" (or legacy "# 资产") closes the script region;
79
79
  // the roster is now incremental: 新增* register unknowns, 修正 enriches known
80
- // entities in-place, 还原 resolves provisionals. Legacy full-roster headers
80
+ // entities in-place, 还原 canonicalizes known identities. Legacy full-roster headers
81
81
  // (## 人物 / ## 场景 / ## 道具 without 新增) still parse as new entities.
82
82
  if (/^#\s*剧本/.test(t)) {
83
83
  section = "script";
@@ -110,7 +110,7 @@ export function parseSerialMd(md, _episode) {
110
110
  continue;
111
111
  }
112
112
  if (/^##\s*(还原|身份还原)/.test(t)) {
113
- section = "resolve";
113
+ section = "canonicalize";
114
114
  pushCur();
115
115
  continue;
116
116
  }
@@ -253,11 +253,11 @@ export function parseSerialMd(md, _episode) {
253
253
  }
254
254
  continue;
255
255
  }
256
- // 还原: `- 湿发男 => 陈默 | 依据: ...`
257
- if (section === "resolve" && /^-/.test(t)) {
256
+ // 规范名升级: `- 湿发男 => 陈默 | 依据: ...`
257
+ if (section === "canonicalize" && /^-/.test(t)) {
258
258
  const m = t.replace(/^-\s*/, "").match(/^(.+?)\s*(?:=>|→|➡|=>)\s*(.+?)(?:\s*[||]\s*(?:依据|理由)?[::]?\s*(.*))?$/);
259
259
  if (m && m[1] && m[2])
260
- out.registry_delta.resolve.push({ provisional_name: m[1].trim(), canonical_name: m[2].trim(), reason: (m[3] ?? "").trim() });
260
+ out.registry_delta.canonicalize.push({ from_name: m[1].trim(), canonical_name: m[2].trim(), evidence: (m[3] ?? "").trim() });
261
261
  continue;
262
262
  }
263
263
  // 线索: `+ 新悬念` opened; `- [id]` closed.
@@ -1 +1 @@
1
- {"version":3,"file":"video-serial-md.js","sourceRoot":"","sources":["../../../src/domain/ingest/video-serial-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-serial-md.js","sourceRoot":"","sources":["../../../src/domain/ingest/video-serial-md.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import type { GeminiFile } from "./gemini-video-model.js";
2
+ export declare function geminiUploadStartUrl(baseUrl: string | null | undefined, apiKey: string): URL;
3
+ export declare function geminiUploadTransferUrl(uploadUrl: string, baseUrl: string | null | undefined): URL;
4
+ export declare function redactCredential(value: string, credential: string): string;
2
5
  export declare function resumableUpload(params: {
3
6
  apiKey: string;
4
7
  filePath: string;
5
8
  mimeType: string;
6
9
  timeoutMs: number;
7
10
  proxyUrl?: string;
11
+ baseUrl?: string | null;
8
12
  signal?: AbortSignal;
9
13
  }): Promise<GeminiFile>;
@@ -5,16 +5,53 @@
5
5
  // this — files.get/delete and generateContent are plain requests the SDK's fetch
6
6
  // handles fine. The file body is streamed (never fully buffered).
7
7
  import * as fs from "node:fs";
8
+ import * as http from "node:http";
8
9
  import * as https from "node:https";
9
10
  import { HttpsProxyAgent } from "https-proxy-agent";
10
11
  import { LlmTransportError } from "../../llm/types.js";
11
- const HOST = "generativelanguage.googleapis.com";
12
+ const DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com";
13
+ export function geminiUploadStartUrl(baseUrl, apiKey) {
14
+ const root = new URL(baseUrl ?? DEFAULT_BASE_URL);
15
+ root.pathname = `${root.pathname.replace(/\/+$/, "")}/upload/v1beta/files`;
16
+ root.searchParams.set("key", apiKey);
17
+ return root;
18
+ }
19
+ export function geminiUploadTransferUrl(uploadUrl, baseUrl) {
20
+ const root = new URL(baseUrl ?? DEFAULT_BASE_URL);
21
+ const transfer = new URL(uploadUrl, root);
22
+ if (!baseUrl)
23
+ return transfer;
24
+ transfer.protocol = root.protocol;
25
+ transfer.host = root.host;
26
+ const rootPath = root.pathname.replace(/\/+$/, "");
27
+ if (rootPath && transfer.pathname !== rootPath && !transfer.pathname.startsWith(`${rootPath}/`)) {
28
+ transfer.pathname = `${rootPath}/${transfer.pathname.replace(/^\/+/, "")}`;
29
+ }
30
+ return transfer;
31
+ }
32
+ export function redactCredential(value, credential) {
33
+ if (!credential)
34
+ return value;
35
+ let redacted = value.split(credential).join("[REDACTED]");
36
+ const encoded = encodeURIComponent(credential);
37
+ if (encoded !== credential)
38
+ redacted = redacted.split(encoded).join("[REDACTED]");
39
+ return redacted;
40
+ }
12
41
  function proxyAgent(proxyUrl) {
13
42
  return proxyUrl ? new HttpsProxyAgent(proxyUrl) : undefined;
14
43
  }
15
- function request(opts, body, signal) {
44
+ function request(target, opts, body, signal) {
16
45
  return new Promise((resolve, reject) => {
17
- const req = https.request(opts, (res) => {
46
+ const transport = target.protocol === "http:" ? http : https;
47
+ const req = transport.request({
48
+ ...opts,
49
+ agent: target.protocol === "https:" ? opts.agent : undefined,
50
+ protocol: target.protocol,
51
+ hostname: target.hostname,
52
+ port: target.port || undefined,
53
+ path: `${target.pathname}${target.search}`,
54
+ }, (res) => {
18
55
  let data = "";
19
56
  res.on("data", (c) => (data += c));
20
57
  res.on("end", () => resolve({ status: res.statusCode ?? 0, headers: res.headers, body: data }));
@@ -44,10 +81,12 @@ export async function resumableUpload(params) {
44
81
  const size = fs.statSync(params.filePath).size;
45
82
  const agent = proxyAgent(params.proxyUrl ?? "");
46
83
  const common = { agent, timeout: params.timeoutMs };
84
+ const root = geminiUploadStartUrl(params.baseUrl, params.apiKey);
85
+ const safe = (value) => redactCredential(value, params.apiKey);
47
86
  let start;
48
87
  try {
49
- start = await request({
50
- ...common, method: "POST", host: HOST, path: `/upload/v1beta/files?key=${params.apiKey}`,
88
+ start = await request(root, {
89
+ ...common, method: "POST",
51
90
  headers: {
52
91
  "X-Goog-Upload-Protocol": "resumable", "X-Goog-Upload-Command": "start",
53
92
  "X-Goog-Upload-Header-Content-Length": String(size), "X-Goog-Upload-Header-Content-Type": params.mimeType,
@@ -56,39 +95,39 @@ export async function resumableUpload(params) {
56
95
  }, JSON.stringify({ file: {} }), params.signal);
57
96
  }
58
97
  catch (e) {
59
- throw new LlmTransportError("request_failed", "Gemini upload start failed.", { retryable: !params.signal?.aborted, details: [e instanceof Error ? e.message : String(e)] });
98
+ throw new LlmTransportError("request_failed", "Gemini upload start failed.", { retryable: !params.signal?.aborted, details: [safe(e instanceof Error ? e.message : String(e))] });
60
99
  }
61
100
  if (start.status === 401 || start.status === 403)
62
- throw new LlmTransportError("auth", "Gemini upload unauthorized.", { details: [start.body.slice(0, 300)] });
101
+ throw new LlmTransportError("auth", "Gemini upload unauthorized.", { details: [safe(start.body).slice(0, 300)] });
63
102
  const uploadUrl = header(start.headers, "x-goog-upload-url");
64
103
  if (start.status < 200 || start.status >= 300 || !uploadUrl) {
65
104
  const retryable = start.status === 429 || start.status >= 500;
66
- throw new LlmTransportError("request_failed", "Gemini upload start returned no upload URL.", { retryable, details: [`status: ${start.status}`, start.body.slice(0, 300)] });
105
+ throw new LlmTransportError("request_failed", "Gemini upload start returned no upload URL.", { retryable, details: [`status: ${start.status}`, safe(start.body).slice(0, 300)] });
67
106
  }
68
- const u = new URL(uploadUrl);
107
+ const u = geminiUploadTransferUrl(uploadUrl, params.baseUrl);
69
108
  let up;
70
109
  try {
71
- up = await request({
72
- ...common, method: "POST", host: u.hostname, path: u.pathname + u.search,
110
+ up = await request(u, {
111
+ ...common, method: "POST",
73
112
  headers: { "Content-Length": String(size), "X-Goog-Upload-Offset": "0", "X-Goog-Upload-Command": "upload, finalize" },
74
113
  }, fs.createReadStream(params.filePath), params.signal);
75
114
  }
76
115
  catch (e) {
77
- throw new LlmTransportError("request_failed", "Gemini upload transfer failed.", { retryable: !params.signal?.aborted, details: [e instanceof Error ? e.message : String(e)] });
116
+ throw new LlmTransportError("request_failed", "Gemini upload transfer failed.", { retryable: !params.signal?.aborted, details: [safe(e instanceof Error ? e.message : String(e))] });
78
117
  }
79
118
  if (up.status < 200 || up.status >= 300) {
80
119
  const retryable = up.status === 429 || up.status >= 500;
81
- throw new LlmTransportError("request_failed", "Gemini upload transfer failed.", { retryable, details: [`status: ${up.status}`, up.body.slice(0, 300)] });
120
+ throw new LlmTransportError("request_failed", "Gemini upload transfer failed.", { retryable, details: [`status: ${up.status}`, safe(up.body).slice(0, 300)] });
82
121
  }
83
122
  let parsed;
84
123
  try {
85
124
  parsed = JSON.parse(up.body);
86
125
  }
87
126
  catch {
88
- throw new LlmTransportError("invalid_response", "Gemini upload returned invalid JSON.", { details: [up.body.slice(0, 300)] });
127
+ throw new LlmTransportError("invalid_response", "Gemini upload returned invalid JSON.", { details: [safe(up.body).slice(0, 300)] });
89
128
  }
90
129
  if (!parsed.file)
91
- throw new LlmTransportError("invalid_response", "Gemini upload returned no file.", { details: [up.body.slice(0, 300)] });
130
+ throw new LlmTransportError("invalid_response", "Gemini upload returned no file.", { details: [safe(up.body).slice(0, 300)] });
92
131
  return parsed.file;
93
132
  }
94
133
  //# sourceMappingURL=gemini-upload.js.map