@lingjingai/scriptctl 0.63.2 → 0.63.4

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.
@@ -34,11 +34,12 @@ export declare class ModelRouter implements LlmTaskExecutor {
34
34
  protected videoAdapter(route: ResolvedRoute): VideoUnderstandingPort;
35
35
  private videoCredential;
36
36
  videoPort(task: LlmTaskId): TaskVideoPort;
37
- protected doubaoAdapter(route: ResolvedRoute): DoubaoVideoRunner | null;
37
+ private generateDoubaoVideo;
38
+ protected doubaoAdapter(route?: ResolvedRoute): DoubaoVideoRunner | null;
38
39
  protected doubaoTextAdapter(): LlmAdapter | null;
39
40
  private arkAdapter;
40
41
  protected doubaoModel(): string;
41
- private withModerationFallback;
42
+ private withTextFallback;
42
43
  generateText(task: LlmTaskId, request: Omit<TextGenerationRequest, "maxOutputTokens">): Promise<TextGenerationResponse>;
43
44
  generateTool(task: LlmTaskId, request: Omit<ToolGenerationRequest, "maxOutputTokens">): Promise<ToolGenerationResponse>;
44
45
  }
@@ -1,5 +1,6 @@
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
5
  import { DoubaoModel, } from "../infra/llm/doubao-model.js";
5
6
  import { GeminiVideoModel } from "../infra/llm/gemini-video-model.js";
@@ -7,7 +8,7 @@ import { OpenAiCompatibleModel } from "../infra/llm/openai-compatible-model.js";
7
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
- // Ark defaults for explicitly selected Doubao video and text moderation recovery.
11
+ // Ark endpoint shared by Gemini recovery and explicitly selected Doubao video.
11
12
  const DOUBAO_FALLBACK = {
12
13
  model: "ep-20260721150136-98dj9",
13
14
  modelEnv: "ARK_MODEL",
@@ -16,6 +17,7 @@ const DOUBAO_FALLBACK = {
16
17
  timeoutMs: 600_000,
17
18
  maxAttempts: 3,
18
19
  };
20
+ const GEMINI_FLASH_MODELS = ["gemini-3.8-flash", "gemini-3.7-flash", "gemini-3.6-flash"];
19
21
  function normalizeBaseUrl(value) {
20
22
  return value?.trim().replace(/\/+$/, "") ?? "anthropic-sdk-default";
21
23
  }
@@ -47,6 +49,40 @@ function credentialError(provider) {
47
49
  data: { expected: ["credential environment variable referenced by the selected provider"], actual: [`provider: ${provider}`, "credential: missing"] },
48
50
  });
49
51
  }
52
+ function routedFailure(error, route) {
53
+ return createOperationalFailure(classificationOf(error.failure), {
54
+ ...contextOf(error.failure), provider: route.provider, model: route.model,
55
+ retryable: error.failure.retryable, message: error.message,
56
+ });
57
+ }
58
+ function exhaustedFailure(error, failures) {
59
+ if (failures.length === 1)
60
+ return error;
61
+ const aggregate = aggregateFailures(failures, "All configured model routes failed.");
62
+ return new LlmTransportError(error.code, aggregate.message, {
63
+ retryable: aggregate.retryable, classification: classificationOf(aggregate),
64
+ context: contextOf(aggregate), modelFailures: failures, details: failures.map(formatFailure),
65
+ });
66
+ }
67
+ function isGeminiRoute(route) {
68
+ return route.protocol === "google-gemini" || /(^|\/)gemini-/i.test(route.model);
69
+ }
70
+ function geminiRoutes(primary) {
71
+ const prefix = primary.info.model.slice(0, primary.info.model.lastIndexOf("/") + 1);
72
+ const models = new Set([primary.info.model, ...GEMINI_FLASH_MODELS.map((model) => prefix + model)]);
73
+ return [...models].map((model) => {
74
+ if (model === primary.info.model)
75
+ return primary;
76
+ const modelConfig = { ...primary.modelConfig, model };
77
+ return {
78
+ ...primary, modelConfig,
79
+ info: { ...primary.info, model, fingerprint: routeFingerprint(primary.info.task, primary.providerConfig, modelConfig) },
80
+ };
81
+ });
82
+ }
83
+ function canFallback(error, signal) {
84
+ return !signal?.aborted && error instanceof LlmTransportError && error.code !== "cancelled";
85
+ }
50
86
  export class ModelRouter {
51
87
  config;
52
88
  options;
@@ -322,14 +358,78 @@ export class ModelRouter {
322
358
  }
323
359
  const adapter = this.videoAdapter(route);
324
360
  return {
325
- prepare: (localPath, mimeType, mode, signal) => adapter.prepare(localPath, mimeType, mode, signal),
326
- release: (media, signal) => adapter.release(media, signal),
327
- generate: (request) => this.tracked(route.info, () => adapter.generate({
328
- ...request, maxOutputTokens: spec.maxOutputTokens,
329
- })),
361
+ prepare: async (localPath, mimeType, mode, signal) => {
362
+ const started = Date.now();
363
+ try {
364
+ return await adapter.prepare(localPath, mimeType, mode, signal);
365
+ }
366
+ catch (error) {
367
+ if (!canFallback(error, signal) || !this.doubaoAdapter())
368
+ throw error;
369
+ this.recordEvent(route.info, "failed", new Date(started).toISOString(), new Date().toISOString(), Date.now() - started, error.usage, error.attempts, error.code);
370
+ return { kind: "local-fallback", path: localPath, mimeType, primaryFailure: routedFailure(error, route.info) };
371
+ }
372
+ },
373
+ release: (media, signal) => media.kind === "local-fallback" ? Promise.resolve() : adapter.release(media, signal),
374
+ generate: async (request) => {
375
+ request.signal?.throwIfAborted();
376
+ if (request.media.kind === "local-fallback") {
377
+ return this.generateDoubaoVideo(task, request, [request.media.primaryFailure]);
378
+ }
379
+ const routes = geminiRoutes(route);
380
+ const failures = [];
381
+ for (const [index, candidate] of routes.entries()) {
382
+ request.signal?.throwIfAborted();
383
+ try {
384
+ return await this.tracked(candidate.info, () => this.videoAdapter(candidate).generate({
385
+ ...request, maxOutputTokens: spec.maxOutputTokens,
386
+ }));
387
+ }
388
+ catch (error) {
389
+ if (!canFallback(error, request.signal))
390
+ throw error;
391
+ const failure = routedFailure(error, candidate.info);
392
+ failures.push(failure);
393
+ const next = routes[index + 1];
394
+ if (next) {
395
+ process.stderr.write(`↪️ ${candidate.info.model} 请求失败,切换到 ${next.info.model} (${formatFailure(failure)})\n`);
396
+ continue;
397
+ }
398
+ if (!this.doubaoAdapter() || !request.localPath)
399
+ throw exhaustedFailure(error, failures);
400
+ return this.generateDoubaoVideo(task, request, failures);
401
+ }
402
+ }
403
+ throw new Error("Gemini model routes cannot be empty.");
404
+ },
330
405
  };
331
406
  }
332
- // Resolve explicitly selected Doubao video.
407
+ async generateDoubaoVideo(task, request, failures) {
408
+ const adapter = this.doubaoAdapter();
409
+ if (!adapter)
410
+ throw credentialError("doubao");
411
+ const localPath = request.media.kind === "local-fallback" ? request.media.path : request.localPath;
412
+ if (!localPath)
413
+ throw configRuntimeError("Doubao video fallback requires the local video.", ["localPath"], ["localPath: missing"]);
414
+ const localMime = request.localMime ?? (request.media.kind === "file-api" ? request.media.file.mimeType : request.media.mimeType);
415
+ const route = this.doubaoRoute(task);
416
+ process.stderr.write(`↪️ Gemini 路由已耗尽,回退到豆包 ${route.model}\n`);
417
+ try {
418
+ return await this.tracked(route, () => adapter.run({
419
+ localPath, localMime, user: request.user, fps: request.fps,
420
+ maxOutputTokens: LLM_TASK_REGISTRY[task].maxOutputTokens,
421
+ ...(request.system ? { system: request.system } : {}),
422
+ ...(request.responseJsonSchema ? { responseJsonSchema: request.responseJsonSchema } : {}),
423
+ ...(request.signal ? { signal: request.signal } : {}),
424
+ }));
425
+ }
426
+ catch (error) {
427
+ if (!canFallback(error, request.signal))
428
+ throw error;
429
+ throw exhaustedFailure(error, [...failures, routedFailure(error, route)]);
430
+ }
431
+ }
432
+ // Resolve the default fallback or explicitly selected Doubao video.
333
433
  // Overridable in tests to inject a fake Ark client.
334
434
  doubaoAdapter(route) {
335
435
  return this.arkAdapter(route);
@@ -355,33 +455,55 @@ export class ModelRouter {
355
455
  doubaoModel() {
356
456
  return (process.env[DOUBAO_FALLBACK.modelEnv] ?? "").trim() || DOUBAO_FALLBACK.model;
357
457
  }
358
- async withModerationFallback(task, signal, generate) {
458
+ async withTextFallback(task, signal, generate) {
359
459
  const route = this.resolve(task);
360
- const adapter = this.adapter(route);
361
- try {
362
- return await this.tracked(route.info, () => generate(adapter));
363
- }
364
- catch (error) {
365
- if (signal?.aborted || !(error instanceof LlmTransportError) || error.code !== "content_filtered")
366
- throw error;
367
- const doubao = this.doubaoTextAdapter();
368
- if (!doubao)
369
- throw error;
370
- process.stderr.write(`↪️ 文本内容审核拒绝,回退到豆包 ${this.doubaoModel()}\n`);
371
- return this.tracked(this.doubaoRoute(task), () => generate(doubao));
460
+ const gemini = isGeminiRoute(route.info);
461
+ const routes = gemini ? geminiRoutes(route) : [route];
462
+ const failures = [];
463
+ for (const [index, candidate] of routes.entries()) {
464
+ signal?.throwIfAborted();
465
+ const adapter = this.adapter(candidate);
466
+ try {
467
+ return await this.tracked(candidate.info, () => generate(adapter));
468
+ }
469
+ catch (error) {
470
+ if (!canFallback(error, signal) || (!gemini && error.code !== "content_filtered"))
471
+ throw error;
472
+ const failure = routedFailure(error, candidate.info);
473
+ failures.push(failure);
474
+ const next = routes[index + 1];
475
+ if (next) {
476
+ process.stderr.write(`↪️ ${candidate.info.model} 请求失败,切换到 ${next.info.model} (${formatFailure(failure)})\n`);
477
+ continue;
478
+ }
479
+ const doubao = this.doubaoTextAdapter();
480
+ if (!doubao)
481
+ throw exhaustedFailure(error, failures);
482
+ const fallback = this.doubaoRoute(task);
483
+ process.stderr.write(`↪️ 主模型路由已耗尽,回退到豆包 ${fallback.model}\n`);
484
+ try {
485
+ return await this.tracked(fallback, () => generate(doubao));
486
+ }
487
+ catch (fallbackError) {
488
+ if (!canFallback(fallbackError, signal))
489
+ throw fallbackError;
490
+ throw exhaustedFailure(fallbackError, [...failures, routedFailure(fallbackError, fallback)]);
491
+ }
492
+ }
372
493
  }
494
+ throw new Error("Text model routes cannot be empty.");
373
495
  }
374
496
  async generateText(task, request) {
375
497
  const spec = LLM_TASK_REGISTRY[task];
376
498
  if (spec.mode !== "text")
377
499
  throw configRuntimeError("The task does not support text generation.", ["text task"], [`task: ${task}`]);
378
- return this.withModerationFallback(task, request.signal, (adapter) => adapter.generateText({ ...request, maxOutputTokens: spec.maxOutputTokens }));
500
+ return this.withTextFallback(task, request.signal, (adapter) => adapter.generateText({ ...request, maxOutputTokens: spec.maxOutputTokens }));
379
501
  }
380
502
  async generateTool(task, request) {
381
503
  const spec = LLM_TASK_REGISTRY[task];
382
504
  if (spec.mode !== "tool")
383
505
  throw configRuntimeError("The task does not support tool generation.", ["tool task"], [`task: ${task}`]);
384
- return this.withModerationFallback(task, request.signal, (adapter) => adapter.generateTool({ ...request, maxOutputTokens: spec.maxOutputTokens }));
506
+ return this.withTextFallback(task, request.signal, (adapter) => adapter.generateTool({ ...request, maxOutputTokens: spec.maxOutputTokens }));
385
507
  }
386
508
  }
387
509
  export function createLlmExecutor(explicitConfigPath, options) {
@@ -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":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,wBAAwB,EAAE,aAAa,EAA2B,MAAM,gBAAgB,CAAC;AAClJ,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,WAAW,GAEZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EACL,aAAa,EACb,wBAAwB,GAIzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA8B/C,+EAA+E;AAC/E,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,yBAAyB;IAChC,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,0CAA0C;IACnD,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,MAAM,mBAAmB,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAEzF,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC;AACtE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAe,EAAE,QAA2B,EAAE,KAAqB;IAC3F,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,IAAI;KACzD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,QAAkB,EAAE,QAAkB;IACjF,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;QAC3B,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,oBAAoB;QAC/B,IAAI,EAAE,gEAAgE;QACtE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,IAAI,QAAQ,CAAC,yDAAyD,EAAE;QACtE,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,wBAAwB;QACnC,IAAI,EAAE,wDAAwD;QAC9D,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,qEAAqE,CAAC,EAAE,MAAM,EAAE,CAAC,aAAa,QAAQ,EAAE,EAAE,qBAAqB,CAAC,EAAE;KACtJ,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB,EAAE,KAAmB;IAClE,OAAO,wBAAwB,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC/D,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;QACzE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwB,EAAE,QAA8B;IAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;IACrF,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE;QAC1D,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAC;QAC3E,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;KAC7F,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACxC,OAAO,KAAK,CAAC,QAAQ,KAAK,eAAe,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC;QACjD,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;QACtD,OAAO;YACL,GAAG,OAAO,EAAE,WAAW;YACvB,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE;SACxH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,MAAoB;IACvD,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AAC9F,CAAC;AAED,MAAM,OAAO,WAAW;IAQH;IACA;IARF,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IACzC,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC1D,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,QAAQ,GAAoB,EAAE,CAAC;IAEhD,YACmB,MAAyB,EACzB,UAA8B,EAAE;QADhC,WAAM,GAAN,MAAM,CAAmB;QACzB,YAAO,GAAP,OAAO,CAAyB;IAChD,CAAC;IAEJ,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEO,OAAO,CAAC,IAAe;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW;YAAE,MAAM,kBAAkB,CAAC,oDAAoD,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/H,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,kBAAkB,CAAC,kDAAkD,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;QAChI,CAAC;QACD,IAAI,cAAc,CAAC,QAAQ,KAAK,mBAAmB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC/E,MAAM,kBAAkB,CACtB,sJAAsJ,EACtJ,CAAC,kBAAkB,CAAC,EACpB,CAAC,aAAa,WAAW,CAAC,QAAQ,EAAE,CAAC,CACtC,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,oBAAoB,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3E,MAAM,kBAAkB,CACtB,gEAAgE,EAChE,CAAC,2CAA2C,CAAC,EAC7C,CAAC,SAAS,IAAI,EAAE,EAAE,YAAY,OAAO,EAAE,CAAC,CACzC,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,oBAAoB,KAAK,SAAS,IAAI,WAAW,CAAC,oBAAoB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/G,MAAM,kBAAkB,CACtB,wEAAwE,EACxE,CAAC,qBAAqB,IAAI,CAAC,eAAe,EAAE,CAAC,EAC7C,CAAC,SAAS,IAAI,EAAE,EAAE,oBAAoB,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,kBAAkB,GAAG,cAAc,EAAE,OAAO;YAChD,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,wBAAwB,CAAC,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE;YACzG,CAAC,CAAC,cAAc,CAAC;QACnB,MAAM,eAAe,GAAG,cAAc,EAAE,KAAK;YAC3C,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;YACxD,CAAC,CAAC,WAAW,CAAC;QAChB,IAAI,cAAc,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAClE,MAAM,kBAAkB,CAAC,2CAA2C,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1H,CAAC;QACD,MAAM,QAAQ,GAAkB;YAC9B,IAAI,EAAE;gBACJ,IAAI;gBACJ,OAAO;gBACP,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;gBACrC,OAAO,EAAE,kBAAkB,CAAC,OAAO;gBACnC,KAAK,EAAE,eAAe,CAAC,KAAK;gBAC5B,WAAW,EAAE,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,eAAe,CAAC;aACzE;YACD,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,eAAe;SAC7B,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAe;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,UAAU;QAChB,OAAO;YACL,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,IAAe;QACzB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK;QACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;QACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC;YACxH,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,GAAG,IAAI,CAAC,UAAU,EAAE;aACrB,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;iBAC5C,CAAC;gBACJ,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBACjB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzB,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC;gBACjC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;gBACrC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;gBACvC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;gBACzC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC;gBACnD,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,mBAAmB,CAAC;YACzD,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,WAAW,CACjB,KAAmB,EACnB,MAA+B,EAC/B,SAAiB,EACjB,OAAe,EACf,UAAkB,EAClB,KAAiB,EACjB,QAAQ,GAAG,CAAC,EACZ,SAAsC;QAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,GAAG,KAAK;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClC,MAAM;YACN,QAAQ;YACR,SAAS;YACT,OAAO;YACP,UAAU;YACV,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC;YACnC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;YACrC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,CAAC;YAC/C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,CAAC;YACnD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,KAAmB,EACnB,SAA2B;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/I,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,YAAY,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,IAAI,CAAC,WAAW,CACd,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAC/B,OAAO,GAAG,SAAS,EACnB,SAAS,EAAE,KAAK,IAAI,EAAE,EACtB,SAAS,EAAE,QAAQ,IAAI,CAAC,EACxB,SAAS,EAAE,IAAI,CAChB,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,IAAe,EAAE,QAAiB;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC7D,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,kBAAkB,CAAC,gDAAgD,EAAE,CAAC,oCAAoC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACvI,CAAC;QACD,MAAM,cAAc,GAAsB;YACxC,QAAQ,EAAE,mBAAmB;YAC7B,OAAO,EAAE,SAAS,EAAE,OAAO;gBACzB,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC;gBACpE,CAAC,CAAC,eAAe,CAAC,OAAO;YAC3B,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,WAAW,EAAE,eAAe,CAAC,WAAW;SACzC,CAAC;QACF,MAAM,WAAW,GAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC7E,OAAO;YACL,IAAI,EAAE;gBACJ,IAAI;gBACJ,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB;gBAChD,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC;aACjE;YACD,cAAc;YACd,WAAW;SACZ,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,IAAe;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAEO,OAAO,CAAC,KAAoB;QAClC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,KAAK,CAAC,WAAW,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;QACnH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,MAAM;YAAE,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,WAAW;YAC3D,CAAC,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;YACrE,CAAC,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,YAAY,CAAC,KAAoB;QACzC,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;YACtD,MAAM,kBAAkB,CACtB,+CAA+C,EAC/C,CAAC,kCAAkC,CAAC,EACpC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CACnF,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,KAAoB;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,KAAK,SAAS;YACzC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,KAAK;gBACxB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBAC3C,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,IAAI,CAAC,MAAM;YAAE,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,IAAe;QACvB,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,kBAAkB,CAAC,6CAA6C,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QACtI,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO;gBAAE,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;oBACnD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;wBACxB,MAAM,kBAAkB,CAAC,uCAAuC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC1F,CAAC;oBACD,MAAM,EAAE,cAAc,EAAE,CAAC;oBACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;gBACtD,CAAC;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;oBACpB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACnC,MAAM,kBAAkB,CAAC,yCAAyC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7G,CAAC;oBACD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;oBACjC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;wBAChD,SAAS;wBACT,SAAS;wBACT,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,eAAe,EAAE,IAAI,CAAC,eAAe;wBACrC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrD,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtD,CAAC,CAAC,CAAC;gBACN,CAAC;gBACD,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACxB,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;YACtD,MAAM,kBAAkB,CACtB,+CAA+C,EAC/C,CAAC,kCAAkC,CAAC,EACpC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CACnF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;wBAAE,MAAM,KAAK,CAAC;oBACtE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC9F,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjH,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YAChH,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC1B,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAyB,EAAE,CAAC;gBAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBAClD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;4BACpF,GAAG,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe;yBAClD,CAAC,CAAC,CAAC;oBACN,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;4BAAE,MAAM,KAAK,CAAC;wBACrD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;wBACrD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC/B,IAAI,IAAI,EAAE,CAAC;4BACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BAC9G,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;4BAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACzF,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAe,EAAE,OAAwD,EACzG,QAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACnG,IAAI,CAAC,SAAS;YAAE,MAAM,kBAAkB,CAAC,iDAAiD,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnI,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjD,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG;gBAC1D,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,eAAe;gBACxD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;gBAAE,MAAM,KAAK,CAAC;YACrD,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,oDAAoD;IAC1C,aAAa,CAAC,KAAqB;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,KAAqB;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3G,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,EAAE,cAAc,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC;QACzE,MAAM,GAAG,GAAG,UAAU,OAAO,IAAI,KAAK,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mFAAmF;IACzE,WAAW;QACnB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAe,EAAE,MAA+B,EAChD,QAA6C;QAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAyB,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC/F,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC9G,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM;oBAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC/D,IAAI,CAAC;oBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC;wBAAE,MAAM,aAAa,CAAC;oBAC7D,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC,GAAG,QAAQ,EAAE,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAe,EAAE,OAAuD;QACzF,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,kBAAkB,CAAC,4CAA4C,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC/I,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAe,EAAE,OAAuD;QACzF,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,kBAAkB,CAAC,4CAA4C,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC/I,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,kBAA2B,EAAE,OAA4B;IACzF,OAAO,IAAI,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lingjingai/scriptctl",
3
- "version": "0.63.2",
3
+ "version": "0.63.4",
4
4
  "description": "剧本阶段统一 CLI:素材转 Script v4,并兼容 Script v3 的本地写作、精修、校验和发布。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -215,6 +215,12 @@ scriptctl checkout / status / publish # 远端工作副本
215
215
 
216
216
  `ingest` 见 [references/ingest-workflow.md](references/ingest-workflow.md)。
217
217
 
218
+ `ingest` 的 Gemini 文本、结构化工具和视频请求先用配置的主模型,再按 3.8 Flash →
219
+ 3.7 Flash → 3.6 Flash 补齐未试模型,全部失败后使用豆包。Gemini 按 provider 的
220
+ `maxAttempts` 重试暂时性错误,豆包最多尝试 3 次;明确拒绝时换模型,用户取消时停止。
221
+ 豆包需要 `ARK_API_KEY`,`ARK_MODEL` 可指定端点。
222
+ 已完成集和跨集 context 保留,同 source、同 workspace 重跑会从失败集续接。
223
+
218
224
  有原视频的 `review` 按集执行「豆包 Flash ASR → Gemini 对比 → 校时落盘 → Mastra 审核 → 落盘」,`--concurrency` 控制整集流程并发,默认 5。需要 `SD_AUDIO_APIKEY`、ffmpeg 和按集对应的视频。Gemini 阅读带时间戳、行锚点的亚洲格式正文及 ASR 句/词时间,选择整条台词开头对应的 ASR 起点;程序校时并落盘,保留原台词和其他字段。缺漏按集记录原话、时间与理由,随后交给本集 Agent 逐项 `watch` 核对原片再修复,并按窗口数增加看片预算;不确定项保留原样并记录待核对线索。单集服务或响应失败会记录为失败集,其他集继续执行。
219
225
 
220
226
  `.review/asr/episode-N/` 保存成功 ASR 缓存及每次对比的正文、原始响应、前后时间与缺漏报告。`asr-compared` 仅表示对比完成,带 `episode_number` 的 `asr-applied` 表示本集校时已落盘,不等于 Agent 审核完成。`--episodes` 只重跑指定集的 ASR 和审核,`--converge-only` 只做全剧收敛。无视频的纯文本审核不执行 ASR;`--check` 不发模型请求。
@@ -84,7 +84,7 @@ scriptctl ingest -s uploads/正片/ -w workspaces/正片 \
84
84
  - `--upload-mode file-api|base64`:默认 `file-api`;`base64` 把自动转码后的本地视频放入 Gemini `inlineData`,文件必须小于 100 MB。
85
85
  - `--provider-base-url`、`--provider-api-key` / `--provider-api-key-env`、`--provider-model`:只覆盖视频任务对应字段,其余字段继承 `--llm-config` 或内置配置。
86
86
  - provider 参数必须提供非空值;`--provider-api-key` 与 `--provider-api-key-env` 互斥。明文参数会暴露在进程参数和 shell history 中,常规调用使用环境变量方式;密钥不会写入 workspace、错误或命令输出。
87
- - 任一 provider 覆盖参数出现时严格使用指定后的 provider/model,不进入内置模型回退链。未覆盖 provider 时保留默认 Gemini 回退;base64 模式不会进入依赖 Files API 的跨 provider 回退。
87
+ - Gemini 文本、结构化工具和视频请求先使用配置的主模型,再按 `gemini-3.8-flash → gemini-3.7-flash → gemini-3.6-flash` 尝试尚未调用的模型,全部失败后才进入豆包。默认路由与显式 provider/model 覆盖均使用此顺序;Gemini 保留原服务地址、凭据和模型名前缀。每个 Gemini 模型按 provider 的 `maxAttempts` 重试暂时性错误,豆包最多尝试 3 次;明确拒绝时直接换模型,用户取消时立即停止。豆包使用 `ARK_API_KEY`;`ARK_MODEL` 可指定端点,默认 `ep-20260721150136-98dj9`。视频的 file-api 和 base64 在 Gemini 模型间复用同一媒体;公共 Files API 上传重试耗尽时交由豆包上传本地视频。直接选择豆包时只调用豆包。
88
88
  - `--provider-base-url` 指向 Gemini Developer API 兼容的服务根地址;`file-api` 模式要求该服务同时兼容 Files API。
89
89
 
90
90
  常用 flag:
@@ -142,8 +142,9 @@ scriptctl read -p workspace/script.json # 抽完当普通剧本读
142
142
 
143
143
  失败时 `status -j` 的 `errors[]` 按 `failure_type` / `failure_code` 给出稳定分类,并显式给出
144
144
  `retryable`。网络错误可含 `system_code`,HTTP 错误可含 `http_status`;Gemini 合规拦截可含
145
- `provider_source`、`provider_reason` 和 `safety_ratings`。视频请求使用选定的 provider 和 model,
146
- 在该路由内执行有限的传输重试,失败时保留其原始分类。`failure_summary` 汇总 retryable / terminal
145
+ `provider_source`、`provider_reason` 和 `safety_ratings`。Gemini 请求在当前路由内执行有限的传输
146
+ 重试,失败后继续下一 Gemini 模型,最后由已配置的豆包重试兜底;完整模型链都失败时,`attempts[]` 保留各自的 provider、model 和
147
+ 失败分类。`usage.json` 记录实际调用的模型和用量。`failure_summary` 汇总 retryable / terminal
147
148
  数量和 `by_type`。`state` 仍只表示管线生命周期,合规拦截表现为
148
149
  `state=failed` + `failure_type=policy`。
149
150
 
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- import { type RunState } from "./registry.js";
3
- export declare function registerBatchCommands(program: Command, state: RunState): void;
@@ -1,28 +0,0 @@
1
- import { commandDo } from "../usecases/script/do.js";
2
- import { commandScriptPatch } from "../usecases/script/script-patch.js";
3
- import { describeArguments, dispatch, withScriptOpts } from "./registry.js";
4
- export function registerBatchCommands(program, state) {
5
- const doCommand = withScriptOpts(program.command("do [file]"))
6
- .description("Run one CLI edit per line as one transaction")
7
- .option("--apply", "Apply the planned transaction")
8
- .option("--plan <digest>", "Exact plan digest to apply")
9
- .option("-n, --dry-run", "Preview the transaction without writing")
10
- .addHelpText("after", "\nExample:\n scriptctl do edits.txt\n scriptctl do edits.txt --apply --plan <digest>\n")
11
- .action(dispatch(commandDo, state));
12
- describeArguments(doCommand, ["Command file, or stdin when omitted"]);
13
- const patch = withScriptOpts(program.command("patch [file]"))
14
- .description("Apply structured JSON patch operations")
15
- .option("--schema [op]", "Show every operation schema or one named operation")
16
- .option("-n, --dry-run", "Preview patch operations without writing")
17
- .option("--apply", "Apply the exact planned patch")
18
- .option("--plan <digest>", "Exact plan digest to apply")
19
- .addHelpText("after", "\nExample:\n scriptctl patch --schema\n scriptctl patch changes.json --dry-run\n")
20
- .action(dispatch((opts) => {
21
- const args = opts["_args"] || [];
22
- if (args[0])
23
- opts["patch"] = args[0];
24
- return commandScriptPatch(opts);
25
- }, state));
26
- describeArguments(patch, ["Patch JSON file"]);
27
- }
28
- //# sourceMappingURL=register-batch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-batch.js","sourceRoot":"","sources":["../../src/cli/register-batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAiB,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3F,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,KAAe;IACrE,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC3D,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,yCAAyC,CAAC;SAClE,WAAW,CAAC,OAAO,EAAE,0FAA0F,CAAC;SAChH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACtC,iBAAiB,CAAC,SAAS,EAAE,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC1D,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;SAC7E,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,WAAW,CAAC,OAAO,EAAE,oFAAoF,CAAC;SAC1G,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,IAAI,GAAI,IAAI,CAAC,OAAO,CAAc,IAAI,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACb,iBAAiB,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Command } from "commander";
2
- import { type LlmComposition } from "../llm/composition.js";
3
- import { type RunState } from "./registry.js";
4
- export declare function registerEditCommands(program: Command, state: RunState, llm: LlmComposition): void;