@lingjingai/scriptctl 0.52.0 → 0.53.1

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.53.0.md +13 -0
  2. package/changes/0.53.1.md +13 -0
  3. package/dist/bin.js +0 -0
  4. package/dist/domain/ingest/environment.d.ts +4 -0
  5. package/dist/domain/ingest/environment.js +35 -0
  6. package/dist/domain/ingest/environment.js.map +1 -0
  7. package/dist/domain/ingest/jsonl-parser.js +14 -1
  8. package/dist/domain/ingest/jsonl-parser.js.map +1 -1
  9. package/dist/domain/ingest/markdown-parser.js +4 -3
  10. package/dist/domain/ingest/markdown-parser.js.map +1 -1
  11. package/dist/domain/ingest/video-apply.js +2 -2
  12. package/dist/domain/ingest/video-apply.js.map +1 -1
  13. package/dist/domain/script/v3/validation.js +14 -0
  14. package/dist/domain/script/v3/validation.js.map +1 -1
  15. package/dist/domain/script/v4/validation.js +14 -5
  16. package/dist/domain/script/v4/validation.js.map +1 -1
  17. package/dist/infra/llm/anthropic-model.js +13 -11
  18. package/dist/infra/llm/anthropic-model.js.map +1 -1
  19. package/dist/infra/llm/doubao-video-model.js +8 -7
  20. package/dist/infra/llm/doubao-video-model.js.map +1 -1
  21. package/dist/infra/llm/gemini-video-model.js +9 -8
  22. package/dist/infra/llm/gemini-video-model.js.map +1 -1
  23. package/dist/infra/llm/openai-compatible-model.js +51 -31
  24. package/dist/infra/llm/openai-compatible-model.js.map +1 -1
  25. package/dist/infra/llm/retry.d.ts +3 -0
  26. package/dist/infra/llm/retry.js +22 -1
  27. package/dist/infra/llm/retry.js.map +1 -1
  28. package/dist/llm/router.d.ts +7 -3
  29. package/dist/llm/router.js +112 -28
  30. package/dist/llm/router.js.map +1 -1
  31. package/dist/llm/tasks/ingest/text-normalize.js +2 -2
  32. package/dist/llm/tasks/ingest/text-normalize.js.map +1 -1
  33. package/dist/llm/tasks/ingest/video-serial.js +2 -1
  34. package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
  35. package/dist/llm/tasks/schemas.js +5 -1
  36. package/dist/llm/tasks/schemas.js.map +1 -1
  37. package/dist/llm/types.d.ts +22 -0
  38. package/dist/llm/types.js +4 -0
  39. package/dist/llm/types.js.map +1 -1
  40. package/dist/usecases/ingest/pipeline.js +257 -220
  41. package/dist/usecases/ingest/pipeline.js.map +1 -1
  42. package/dist/usecases/ingest/serial-govern.js +4 -1
  43. package/dist/usecases/ingest/serial-govern.js.map +1 -1
  44. package/dist/usecases/ingest/usage-report.d.ts +112 -4
  45. package/dist/usecases/ingest/usage-report.js +242 -45
  46. package/dist/usecases/ingest/usage-report.js.map +1 -1
  47. package/dist/usecases/ingest/video-pipeline.js +157 -117
  48. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  49. package/dist/usecases/ingest/view-server.d.ts +2 -22
  50. package/dist/usecases/ingest/view-server.js +14 -8
  51. package/dist/usecases/ingest/view-server.js.map +1 -1
  52. package/package.json +15 -16
  53. package/skills/scriptctl/SKILL.md +3 -3
  54. package/skills/scriptctl/references/ingest-workflow.md +2 -0
@@ -94,13 +94,13 @@ export async function runSerialGovern(body, opts) {
94
94
  if (cached !== undefined) {
95
95
  delta = toDelta(parseRaw(cached));
96
96
  reused++;
97
+ opts.executor.recordReuse("ingest.episode-assets");
97
98
  }
98
99
  else {
99
100
  const produced = await windowUpdate(opts.executor, startEp, endEp, promptCtx, bodyMd, opts.signal);
100
101
  delta = produced.delta;
101
102
  opts.checkpoint?.writeStep(startEp, endEp, contextMd, produced.raw);
102
103
  }
103
- opts.onWindow?.({ startEp, endEp, ms: Date.now() - t0, cached: cached !== undefined, index, total: windows.length, totalEpisodes: episodes.length });
104
104
  applyDelta(ctx, delta, startEp, endEp);
105
105
  // Name-fix repair, IN THIS WINDOW (whichever window meets an unregistered name
106
106
  // fixes it here, not in a giant final pass). After applying this window's delta,
@@ -114,6 +114,7 @@ export async function runSerialGovern(body, opts) {
114
114
  if (cachedFix !== undefined) {
115
115
  applyDelta(ctx, nameFixToDelta(parseRaw(cachedFix)), startEp, endEp);
116
116
  reused++;
117
+ opts.executor.recordReuse("ingest.name-fix");
117
118
  }
118
119
  else {
119
120
  try {
@@ -135,6 +136,7 @@ export async function runSerialGovern(body, opts) {
135
136
  if (cachedArc !== undefined) {
136
137
  summary = cachedArc;
137
138
  reused++;
139
+ opts.executor.recordReuse("ingest.arc-summary");
138
140
  }
139
141
  else {
140
142
  const foldedText = group.map((g) => `${synopsisLabel(g)}:${g.line}`).join("\n");
@@ -143,6 +145,7 @@ export async function runSerialGovern(body, opts) {
143
145
  }
144
146
  applyArcFold(ctx, summary);
145
147
  }
148
+ opts.onWindow?.({ startEp, endEp, ms: Date.now() - t0, cached: cached !== undefined, index, total: windows.length, totalEpisodes: episodes.length });
146
149
  }
147
150
  const finalized = finalize(body, ctx);
148
151
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"serial-govern.js","sourceRoot":"","sources":["../../../src/usecases/ingest/serial-govern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serial-govern.js","sourceRoot":"","sources":["../../../src/usecases/ingest/serial-govern.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,125 @@
1
- import type { LlmTaskExecutor, LlmRouteUsage } from "../../llm/types.js";
1
+ import type { LlmProtocol, LlmTaskExecutor, LlmTaskId, LlmUsageEvent } from "../../llm/types.js";
2
2
  import type { WorkspaceStore } from "../../infra/ingest/workspace-store.js";
3
3
  export interface UsageTotals {
4
4
  calls: number;
5
+ succeeded: number;
6
+ failed: number;
5
7
  reused: number;
8
+ attempts: number;
9
+ durationMs: number;
6
10
  inputTokens: number;
7
11
  outputTokens: number;
8
12
  cachedInputTokens: number;
9
13
  cacheCreationTokens: number;
10
14
  totalTokens: number;
11
15
  }
16
+ export type UsageScope = {
17
+ kind: "episode";
18
+ episode: number;
19
+ } | {
20
+ kind: "episode-range";
21
+ startEpisode: number;
22
+ endEpisode: number;
23
+ } | {
24
+ kind: "phase";
25
+ phase: string;
26
+ } | {
27
+ kind: "run";
28
+ };
29
+ export interface UsageRecord extends LlmUsageEvent {
30
+ id: string;
31
+ runId: string;
32
+ scope: UsageScope;
33
+ }
34
+ export interface UsageModelIdentity {
35
+ provider: string;
36
+ protocol: LlmProtocol;
37
+ model: string;
38
+ }
39
+ export interface UsageModelBreakdown extends UsageModelIdentity {
40
+ profiles: string[];
41
+ fingerprints: string[];
42
+ totals: UsageTotals;
43
+ }
44
+ export interface UsageTaskSummary {
45
+ task: LlmTaskId;
46
+ totals: UsageTotals;
47
+ byModel: UsageModelBreakdown[];
48
+ }
49
+ export interface UsageModelSummary extends UsageModelBreakdown {
50
+ byTask: Array<{
51
+ task: LlmTaskId;
52
+ totals: UsageTotals;
53
+ }>;
54
+ }
55
+ export interface EpisodeStageTiming {
56
+ transcodeMs?: number;
57
+ uploadMs?: number;
58
+ generateMs?: number;
59
+ uploadBytes?: number;
60
+ transcoded?: boolean;
61
+ note?: string;
62
+ }
63
+ export type UsageUnitStatus = "succeeded" | "failed" | "reused";
64
+ export type UsageRunStatus = "running" | "succeeded" | "failed" | "interrupted";
65
+ export interface EpisodeUsageRun {
66
+ runId: string;
67
+ status: UsageUnitStatus;
68
+ startedAt: string;
69
+ endedAt: string;
70
+ durationMs: number;
71
+ stages: EpisodeStageTiming;
72
+ recordIds: string[];
73
+ }
74
+ export interface EpisodeUsageSummary {
75
+ episode: number;
76
+ totals: UsageTotals;
77
+ byTask: UsageTaskSummary[];
78
+ byModel: UsageModelSummary[];
79
+ durationMs: number;
80
+ runs: EpisodeUsageRun[];
81
+ }
82
+ export interface UsageRun {
83
+ id: string;
84
+ status: UsageRunStatus;
85
+ startedAt: string;
86
+ endedAt: string | null;
87
+ durationMs: number;
88
+ }
12
89
  export interface UsageReport {
90
+ version: 2;
91
+ createdAt: string;
92
+ updatedAt: string;
13
93
  totals: UsageTotals;
14
- byTask: LlmRouteUsage[];
94
+ byTask: UsageTaskSummary[];
95
+ byModel: UsageModelSummary[];
96
+ episodes: EpisodeUsageSummary[];
97
+ runs: UsageRun[];
98
+ records: UsageRecord[];
99
+ timing: {
100
+ totalDurationMs: number;
101
+ modelDurationMs: number;
102
+ episodeDurationMs: number;
103
+ };
104
+ }
105
+ export interface UsageFlush {
106
+ scope: UsageScope;
107
+ status?: UsageUnitStatus;
108
+ startedAtMs?: number;
109
+ endedAtMs?: number;
110
+ stages?: EpisodeStageTiming;
111
+ }
112
+ export declare class UsageLedger {
113
+ private readonly store;
114
+ private readonly executor;
115
+ private readonly now;
116
+ private readonly runId;
117
+ private readonly startedAtMs;
118
+ private cursor;
119
+ private report;
120
+ constructor(store: WorkspaceStore, executor: LlmTaskExecutor, now?: () => number);
121
+ flush(input: UsageFlush): void;
122
+ finish(status: Exclude<UsageRunStatus, "running" | "interrupted">): void;
123
+ private toRecord;
124
+ private write;
15
125
  }
16
- export declare function buildUsageReport(executor: LlmTaskExecutor): UsageReport;
17
- export declare function writeUsage(store: WorkspaceStore, executor: LlmTaskExecutor): void;
@@ -1,51 +1,248 @@
1
- // cachedInputTokens/cacheCreationTokens are subsets of inputTokens (see TokenUsage),
2
- // so totalTokens = inputTokens + outputTokens — the cache buckets are NOT added again.
3
- function sumTotals(byTask) {
4
- const totals = { calls: 0, reused: 0, inputTokens: 0, outputTokens: 0, cachedInputTokens: 0, cacheCreationTokens: 0, totalTokens: 0 };
5
- for (const u of byTask) {
6
- totals.calls += u.calls;
7
- totals.reused += u.reused;
8
- totals.inputTokens += u.inputTokens;
9
- totals.outputTokens += u.outputTokens;
10
- totals.cachedInputTokens += u.cachedInputTokens ?? 0;
11
- totals.cacheCreationTokens += u.cacheCreationTokens ?? 0;
12
- }
13
- totals.totalTokens = totals.inputTokens + totals.outputTokens;
14
- return totals;
1
+ // Streaming LLM cost ledger workspace/usage.json.
2
+ //
3
+ // ModelRouter emits one immutable event per actual routed model execution. This
4
+ // ledger appends those events after each ingest unit and derives every aggregate
5
+ // from the event list, so task/model/global totals cannot drift or double-count.
6
+ import * as crypto from "node:crypto";
7
+ function emptyTotals() {
8
+ return {
9
+ calls: 0,
10
+ succeeded: 0,
11
+ failed: 0,
12
+ reused: 0,
13
+ attempts: 0,
14
+ durationMs: 0,
15
+ inputTokens: 0,
16
+ outputTokens: 0,
17
+ cachedInputTokens: 0,
18
+ cacheCreationTokens: 0,
19
+ totalTokens: 0,
20
+ };
15
21
  }
16
- export function buildUsageReport(executor) {
17
- const byTask = executor.usage();
18
- return { totals: sumTotals(byTask), byTask };
19
- }
20
- // Merge this run's spend into any existing usage.json. A run can be resumed across
21
- // several process invocations (the driver retries); cached work is `reused` (no tokens),
22
- // so only genuinely-spent tokens are added. Accumulating gives true cumulative spend
23
- // — the tokens actually billed across every attempt, not just the final process.
24
- export function writeUsage(store, executor) {
25
- const run = buildUsageReport(executor);
26
- const prior = store.has("usage.json") ? store.readJson("usage.json") : null;
27
- if (!prior) {
28
- store.writeJson("usage.json", run);
22
+ function addEvent(total, event) {
23
+ if (event.status === "reused") {
24
+ total.reused += 1;
29
25
  return;
30
26
  }
31
- const merged = new Map();
32
- for (const u of prior.byTask)
33
- merged.set(u.task, { ...u });
34
- for (const u of run.byTask) {
35
- const p = merged.get(u.task);
36
- if (!p) {
37
- merged.set(u.task, { ...u });
38
- continue;
27
+ total.calls += 1;
28
+ if (event.status === "succeeded")
29
+ total.succeeded += 1;
30
+ else
31
+ total.failed += 1;
32
+ total.attempts += event.attempts;
33
+ total.durationMs += event.durationMs;
34
+ total.inputTokens += event.inputTokens;
35
+ total.outputTokens += event.outputTokens;
36
+ total.cachedInputTokens += event.cachedInputTokens;
37
+ total.cacheCreationTokens += event.cacheCreationTokens;
38
+ total.totalTokens = total.inputTokens + total.outputTokens;
39
+ }
40
+ function totalsOf(records) {
41
+ const totals = emptyTotals();
42
+ for (const record of records)
43
+ addEvent(totals, record);
44
+ return totals;
45
+ }
46
+ const modelKey = (record) => `${record.provider}\u0000${record.protocol}\u0000${record.model}`;
47
+ function modelBreakdowns(records) {
48
+ const groups = new Map();
49
+ for (const record of records) {
50
+ const key = modelKey(record);
51
+ const group = groups.get(key) ?? {
52
+ identity: { provider: record.provider, protocol: record.protocol, model: record.model },
53
+ profiles: new Set(),
54
+ fingerprints: new Set(),
55
+ records: [],
56
+ };
57
+ group.profiles.add(record.profile);
58
+ group.fingerprints.add(record.fingerprint);
59
+ group.records.push(record);
60
+ groups.set(key, group);
61
+ }
62
+ return [...groups.values()]
63
+ .map((group) => ({
64
+ ...group.identity,
65
+ profiles: [...group.profiles].sort(),
66
+ fingerprints: [...group.fingerprints].sort(),
67
+ totals: totalsOf(group.records),
68
+ }))
69
+ .sort((left, right) => modelKey(left).localeCompare(modelKey(right)));
70
+ }
71
+ function taskSummaries(records) {
72
+ const groups = new Map();
73
+ for (const record of records) {
74
+ const group = groups.get(record.task) ?? [];
75
+ group.push(record);
76
+ groups.set(record.task, group);
77
+ }
78
+ return [...groups.entries()]
79
+ .map(([task, taskRecords]) => ({
80
+ task,
81
+ totals: totalsOf(taskRecords),
82
+ byModel: modelBreakdowns(taskRecords),
83
+ }))
84
+ .sort((left, right) => left.task.localeCompare(right.task));
85
+ }
86
+ function modelSummaries(records) {
87
+ return modelBreakdowns(records).map((model) => {
88
+ const modelRecords = records.filter((record) => modelKey(record) === modelKey(model));
89
+ return {
90
+ ...model,
91
+ byTask: taskSummaries(modelRecords).map(({ task, totals }) => ({ task, totals })),
92
+ };
93
+ });
94
+ }
95
+ function rebuild(report) {
96
+ const updatedAt = report.updatedAt;
97
+ const episodes = new Map();
98
+ for (const episode of report.episodes)
99
+ episodes.set(episode.episode, episode.runs);
100
+ const episodeSummaries = [...episodes.entries()]
101
+ .map(([episode, runs]) => {
102
+ const ids = new Set(runs.flatMap((run) => run.recordIds));
103
+ const records = report.records.filter((record) => ids.has(record.id));
104
+ return {
105
+ episode,
106
+ totals: totalsOf(records),
107
+ byTask: taskSummaries(records),
108
+ byModel: modelSummaries(records),
109
+ durationMs: runs.reduce((sum, run) => sum + run.durationMs, 0),
110
+ runs,
111
+ };
112
+ })
113
+ .sort((left, right) => left.episode - right.episode);
114
+ const totals = totalsOf(report.records);
115
+ return {
116
+ ...report,
117
+ updatedAt,
118
+ totals,
119
+ byTask: taskSummaries(report.records),
120
+ byModel: modelSummaries(report.records),
121
+ episodes: episodeSummaries,
122
+ timing: {
123
+ totalDurationMs: report.runs.reduce((sum, run) => sum + run.durationMs, 0),
124
+ modelDurationMs: totals.durationMs,
125
+ episodeDurationMs: episodeSummaries.reduce((sum, episode) => sum + episode.durationMs, 0),
126
+ },
127
+ };
128
+ }
129
+ function newReport(now) {
130
+ return {
131
+ version: 2,
132
+ createdAt: now,
133
+ updatedAt: now,
134
+ totals: emptyTotals(),
135
+ byTask: [],
136
+ byModel: [],
137
+ episodes: [],
138
+ runs: [],
139
+ records: [],
140
+ timing: { totalDurationMs: 0, modelDurationMs: 0, episodeDurationMs: 0 },
141
+ };
142
+ }
143
+ function iso(ms) {
144
+ return new Date(ms).toISOString();
145
+ }
146
+ // Owns one process run. `flush` advances an in-memory cursor over executor events;
147
+ // an event can therefore be persisted exactly once even though usage.json is
148
+ // rewritten after every episode/phase boundary.
149
+ export class UsageLedger {
150
+ store;
151
+ executor;
152
+ now;
153
+ runId = crypto.randomUUID();
154
+ startedAtMs;
155
+ cursor;
156
+ report;
157
+ constructor(store, executor, now = () => Date.now()) {
158
+ this.store = store;
159
+ this.executor = executor;
160
+ this.now = now;
161
+ this.startedAtMs = this.now();
162
+ this.cursor = executor.usageEvents().length;
163
+ const nowIso = iso(this.startedAtMs);
164
+ this.report = store.has("usage.json") ? store.readJson("usage.json") : newReport(nowIso);
165
+ if (this.report.version !== 2) {
166
+ throw new Error("workspace/usage.json uses an incompatible schema; rerun ingest with --force to rebuild the workspace.");
167
+ }
168
+ for (const run of this.report.runs) {
169
+ if (run.status !== "running")
170
+ continue;
171
+ run.status = "interrupted";
172
+ run.endedAt = this.report.updatedAt;
173
+ run.durationMs = Math.max(0, Date.parse(this.report.updatedAt) - Date.parse(run.startedAt));
174
+ }
175
+ this.report.runs.push({
176
+ id: this.runId,
177
+ status: "running",
178
+ startedAt: nowIso,
179
+ endedAt: null,
180
+ durationMs: 0,
181
+ });
182
+ this.write(this.startedAtMs);
183
+ }
184
+ flush(input) {
185
+ const endedAtMs = input.endedAtMs ?? this.now();
186
+ const startedAtMs = input.startedAtMs ?? endedAtMs;
187
+ const events = this.executor.usageEvents();
188
+ const current = events.slice(this.cursor);
189
+ const records = current.map((event) => this.toRecord(event, input.scope));
190
+ this.cursor = events.length;
191
+ this.report.records.push(...records);
192
+ if (input.scope.kind === "episode") {
193
+ const episodeNumber = input.scope.episode;
194
+ const existing = this.report.episodes.find((episode) => episode.episode === episodeNumber);
195
+ const runs = existing?.runs ?? [];
196
+ runs.push({
197
+ runId: this.runId,
198
+ status: input.status ?? "succeeded",
199
+ startedAt: iso(startedAtMs),
200
+ endedAt: iso(endedAtMs),
201
+ durationMs: Math.max(0, endedAtMs - startedAtMs),
202
+ stages: input.stages ?? {},
203
+ recordIds: records.map((record) => record.id),
204
+ });
205
+ if (!existing) {
206
+ this.report.episodes.push({
207
+ episode: episodeNumber,
208
+ totals: emptyTotals(),
209
+ byTask: [],
210
+ byModel: [],
211
+ durationMs: 0,
212
+ runs,
213
+ });
214
+ }
215
+ }
216
+ this.write(endedAtMs);
217
+ }
218
+ finish(status) {
219
+ const endedAtMs = this.now();
220
+ if (this.executor.usageEvents().length > this.cursor) {
221
+ this.flush({ scope: { kind: "run" }, status: status === "succeeded" ? "succeeded" : "failed", endedAtMs });
222
+ }
223
+ const run = this.report.runs.find((candidate) => candidate.id === this.runId);
224
+ if (run) {
225
+ run.status = status;
226
+ run.endedAt = iso(endedAtMs);
227
+ run.durationMs = Math.max(0, endedAtMs - this.startedAtMs);
39
228
  }
40
- p.calls += u.calls;
41
- p.reused += u.reused;
42
- p.attempts += u.attempts;
43
- p.inputTokens += u.inputTokens;
44
- p.outputTokens += u.outputTokens;
45
- p.cachedInputTokens = (p.cachedInputTokens ?? 0) + (u.cachedInputTokens ?? 0);
46
- p.cacheCreationTokens = (p.cacheCreationTokens ?? 0) + (u.cacheCreationTokens ?? 0);
47
- }
48
- const byTask = [...merged.values()];
49
- store.writeJson("usage.json", { totals: sumTotals(byTask), byTask });
229
+ this.write(endedAtMs);
230
+ }
231
+ toRecord(event, scope) {
232
+ return {
233
+ ...event,
234
+ id: `${this.runId}:${event.sequence}`,
235
+ runId: this.runId,
236
+ scope,
237
+ };
238
+ }
239
+ write(atMs) {
240
+ const run = this.report.runs.find((candidate) => candidate.id === this.runId);
241
+ if (run?.status === "running")
242
+ run.durationMs = Math.max(0, atMs - this.startedAtMs);
243
+ this.report.updatedAt = iso(atMs);
244
+ this.report = rebuild(this.report);
245
+ this.store.writeJson("usage.json", this.report);
246
+ }
50
247
  }
51
248
  //# sourceMappingURL=usage-report.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-report.js","sourceRoot":"","sources":["../../../src/usecases/ingest/usage-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-report.js","sourceRoot":"","sources":["../../../src/usecases/ingest/usage-report.ts"],"names":[],"mappings":"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"}