@amaster.ai/pi-video-gen 0.1.2-beta.48

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 (85) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +196 -0
  3. package/dist/compose.d.ts +43 -0
  4. package/dist/compose.d.ts.map +1 -0
  5. package/dist/compose.js +308 -0
  6. package/dist/compose.js.map +1 -0
  7. package/dist/config.d.ts +29 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +305 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/errors.d.ts +50 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +99 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/ffmpeg.d.ts +64 -0
  16. package/dist/ffmpeg.d.ts.map +1 -0
  17. package/dist/ffmpeg.js +292 -0
  18. package/dist/ffmpeg.js.map +1 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +837 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/jobs/store.d.ts +124 -0
  24. package/dist/jobs/store.d.ts.map +1 -0
  25. package/dist/jobs/store.js +386 -0
  26. package/dist/jobs/store.js.map +1 -0
  27. package/dist/providers/ark.d.ts +26 -0
  28. package/dist/providers/ark.d.ts.map +1 -0
  29. package/dist/providers/ark.js +178 -0
  30. package/dist/providers/ark.js.map +1 -0
  31. package/dist/providers/dashscope.d.ts +28 -0
  32. package/dist/providers/dashscope.d.ts.map +1 -0
  33. package/dist/providers/dashscope.js +200 -0
  34. package/dist/providers/dashscope.js.map +1 -0
  35. package/dist/providers/kling.d.ts +46 -0
  36. package/dist/providers/kling.d.ts.map +1 -0
  37. package/dist/providers/kling.js +245 -0
  38. package/dist/providers/kling.js.map +1 -0
  39. package/dist/providers/models.d.ts +16 -0
  40. package/dist/providers/models.d.ts.map +1 -0
  41. package/dist/providers/models.js +152 -0
  42. package/dist/providers/models.js.map +1 -0
  43. package/dist/providers/newapi.d.ts +3 -0
  44. package/dist/providers/newapi.d.ts.map +1 -0
  45. package/dist/providers/newapi.js +203 -0
  46. package/dist/providers/newapi.js.map +1 -0
  47. package/dist/providers/openrouter.d.ts +21 -0
  48. package/dist/providers/openrouter.d.ts.map +1 -0
  49. package/dist/providers/openrouter.js +169 -0
  50. package/dist/providers/openrouter.js.map +1 -0
  51. package/dist/providers/request.d.ts +4 -0
  52. package/dist/providers/request.d.ts.map +1 -0
  53. package/dist/providers/request.js +20 -0
  54. package/dist/providers/request.js.map +1 -0
  55. package/dist/providers/task.d.ts +53 -0
  56. package/dist/providers/task.d.ts.map +1 -0
  57. package/dist/providers/task.js +209 -0
  58. package/dist/providers/task.js.map +1 -0
  59. package/dist/render.d.ts +53 -0
  60. package/dist/render.d.ts.map +1 -0
  61. package/dist/render.js +480 -0
  62. package/dist/render.js.map +1 -0
  63. package/dist/text-layer.d.ts +18 -0
  64. package/dist/text-layer.d.ts.map +1 -0
  65. package/dist/text-layer.js +168 -0
  66. package/dist/text-layer.js.map +1 -0
  67. package/dist/timeline-render.d.ts +33 -0
  68. package/dist/timeline-render.d.ts.map +1 -0
  69. package/dist/timeline-render.js +1051 -0
  70. package/dist/timeline-render.js.map +1 -0
  71. package/dist/timeline.d.ts +64 -0
  72. package/dist/timeline.d.ts.map +1 -0
  73. package/dist/timeline.js +246 -0
  74. package/dist/timeline.js.map +1 -0
  75. package/dist/tts/edge-tts.d.ts +22 -0
  76. package/dist/tts/edge-tts.d.ts.map +1 -0
  77. package/dist/tts/edge-tts.js +55 -0
  78. package/dist/tts/edge-tts.js.map +1 -0
  79. package/dist/types.d.ts +161 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +13 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +93 -0
  84. package/preview.png +0 -0
  85. package/skills/video-gen/SKILL.md +284 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import type { RemoteTaskHandle } from '../types.js';
2
+ export declare function assertSafeId(id: string, what: string): void;
3
+ export declare function newJobId(prefix: string): string;
4
+ export type RenderShotState = {
5
+ /** 'ambiguous' = submit outcome unknown (possible paid task); resume refuses until resolved. */
6
+ state: 'pending' | 'submitted' | 'done' | 'failed' | 'polling_stopped' | 'ambiguous';
7
+ /** Monotonic submit attempt, used to keep provider idempotency keys unique on retries. */
8
+ attempt?: number | undefined;
9
+ handle?: RemoteTaskHandle | undefined;
10
+ /** Orchestrator-computed identity for checking a persisted handle on resume. */
11
+ requestFingerprint?: string | undefined;
12
+ videoPath?: string | undefined;
13
+ error?: string | undefined;
14
+ };
15
+ export type RenderJobManifest = {
16
+ jobId: string;
17
+ kind: 'render';
18
+ state: 'rendering' | 'concatenating' | 'done' | 'failed' | 'polling_stopped';
19
+ /** Fingerprint over spec + model + provider baseUrl; drift ⇒ refuse resume. */
20
+ specFingerprint: string;
21
+ /** Snapshot-relative path → SHA-256 of the frozen frame content. */
22
+ frameHashes: Record<string, string>;
23
+ shots: Record<string, RenderShotState>;
24
+ finalVideoPath?: string | undefined;
25
+ error?: string | undefined;
26
+ updatedAt: string;
27
+ };
28
+ export type SingleJobManifest = {
29
+ jobId: string;
30
+ kind: 'single';
31
+ state: 'ambiguous' | 'submitted' | 'polling' | 'downloading' | 'done' | 'failed' | 'polling_stopped';
32
+ handle?: RemoteTaskHandle;
33
+ /** Orchestrator-computed identity for checking a persisted handle on resume. */
34
+ requestFingerprint?: string;
35
+ videoPath?: string;
36
+ error?: string;
37
+ /**
38
+ * Frozen task identity for safe resume: without these, a settings change
39
+ * between submit and resume would poll the old task on the wrong endpoint.
40
+ */
41
+ modelId?: string;
42
+ providerStyle?: string;
43
+ providerBaseUrl?: string;
44
+ /** Frozen content hashes of the submitted frame snapshots (decision 19②⑤⑧). */
45
+ frameHashes?: Record<string, string> | undefined;
46
+ updatedAt: string;
47
+ };
48
+ /**
49
+ * Write JSON to `path` atomically: EXCLUSIVELY-created temp file (O_EXCL via
50
+ * the 'wx' flag — a pre-placed symlink fails EEXIST instead of being
51
+ * followed) + atomic rename. PID alone is NOT unpredictable, so a pre-placed
52
+ * `${path}.tmp-${pid}` symlink is a real attack — this closes it.
53
+ */
54
+ export declare function writeJsonAtomic(path: string, data: unknown): void;
55
+ /**
56
+ * Read a JSON manifest. ONLY ENOENT means "does not exist". Corrupted JSON,
57
+ * permission errors, etc. must REFUSE — treating them as "absent" would
58
+ * re-initialize the job and re-submit every paid shot.
59
+ */
60
+ export declare function readJsonFile<T>(path: string): T | undefined;
61
+ /** Stream a potentially large artifact into SHA-256 without loading it into memory. */
62
+ export declare function hashFileSha256(path: string, signal?: AbortSignal): Promise<string>;
63
+ /** True only when the path is confirmed absent; other lookup failures remain unexpected. */
64
+ export declare function pathIsMissing(path: string): Promise<boolean>;
65
+ export declare function singleJobDir(outputDir: string, jobId: string): string;
66
+ /**
67
+ * Create a single-job directory only after the shared `single` parent has
68
+ * resolved inside outputDir. This prevents a pre-placed parent symlink from
69
+ * creating the job directory outside the configured root.
70
+ */
71
+ export declare function ensureSingleJobDir(outputDir: string, jobId: string): string;
72
+ /** Resolve an existing job to its canonical path and keep it below the configured output root. */
73
+ export declare function resolveJobDirInsideOutput(outputDir: string, jobDir: string): string;
74
+ export declare function manifestPathFor(jobDir: string): string;
75
+ export declare function loadSingleJob(outputDir: string, jobId: string): SingleJobManifest | undefined;
76
+ export type ComposeJobManifest = {
77
+ jobId: string;
78
+ kind: 'compose';
79
+ state: 'concatenating' | 'done' | 'failed' | 'cancelled';
80
+ /** Fingerprint over spec content + per-clip SHA-256. */
81
+ fingerprint: string;
82
+ clipHashes: Record<string, string>;
83
+ finalVideoPath?: string | undefined;
84
+ finalVideoHash?: string | undefined;
85
+ error?: string | undefined;
86
+ updatedAt: string;
87
+ };
88
+ export type TimelineSegmentState = {
89
+ narrationDurationSec?: number | undefined;
90
+ narrationDegraded?: boolean | undefined;
91
+ resolvedDurationSec?: number | undefined;
92
+ };
93
+ export type TimelineJobManifest = {
94
+ jobId: string;
95
+ kind: 'timeline';
96
+ state: 'working' | 'done' | 'failed' | 'cancelled';
97
+ /** Fingerprint over spec + per-image SHA-256 + voice/output params. */
98
+ fingerprint: string;
99
+ imageHashes: Record<string, string>;
100
+ artifactHashes: Record<string, string>;
101
+ segments: Record<string, TimelineSegmentState>;
102
+ finalVideoPath?: string | undefined;
103
+ finalVideoHash?: string | undefined;
104
+ error?: string | undefined;
105
+ updatedAt: string;
106
+ };
107
+ export declare function loadTimelineJob(jobDir: string): TimelineJobManifest | undefined;
108
+ export declare function saveTimelineJob(jobDir: string, manifest: TimelineJobManifest): void;
109
+ export declare function loadComposeJob(jobDir: string): ComposeJobManifest | undefined;
110
+ export declare function saveComposeJob(jobDir: string, manifest: ComposeJobManifest): void;
111
+ export declare function loadRenderJob(jobDir: string): RenderJobManifest | undefined;
112
+ export declare function saveRenderJob(jobDir: string, manifest: RenderJobManifest): void;
113
+ export declare function saveSingleJob(outputDir: string, manifest: SingleJobManifest): void;
114
+ /**
115
+ * Guard against concurrent writes to the same job directory. Process-local:
116
+ * two tool executions in one extension instance cannot interleave manifest
117
+ * updates for the same job.
118
+ */
119
+ export declare class ActiveJobs {
120
+ private readonly active;
121
+ /** Mark a job dir active; throws if already active. Returns a release fn. */
122
+ acquire(jobDir: string): () => void;
123
+ }
124
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/jobs/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,386 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { createReadStream, mkdirSync, readFileSync, realpathSync, renameSync, writeFileSync, } from 'node:fs';
3
+ import { lstat } from 'node:fs/promises';
4
+ import { join, sep } from 'node:path';
5
+ import { safeBasename, VideoGenError } from '../errors.js';
6
+ import { CancelledError } from '../providers/task.js';
7
+ /**
8
+ * Job directory layout + manifest persistence.
9
+ *
10
+ * Discipline (per design review):
11
+ * - ids are restricted to a safe alphabet — they become directory names, so
12
+ * separators and dot-segments are rejected outright;
13
+ * - manifest updates are single-writer and atomic (temp file + rename);
14
+ * - the manifest is the resume authority: remote task handles land here the
15
+ * moment submit() returns.
16
+ */
17
+ /** Safe id alphabet: alnum start, then alnum/dash/underscore, max 64. */
18
+ const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
19
+ export function assertSafeId(id, what) {
20
+ if (!SAFE_ID.test(id)) {
21
+ throw new VideoGenError(`Invalid ${what} id — use 1-64 chars of letters, digits, dash, underscore, starting with a letter or digit.`, `store: unsafe ${what} id`);
22
+ }
23
+ }
24
+ export function newJobId(prefix) {
25
+ const stamp = new Date().toISOString().replace(/[:.]/g, '-').replace('T', '_').slice(0, 19);
26
+ const rand = Math.random().toString(36).slice(2, 8);
27
+ return `${prefix}-${stamp}-${rand}`;
28
+ }
29
+ /**
30
+ * Write JSON to `path` atomically: EXCLUSIVELY-created temp file (O_EXCL via
31
+ * the 'wx' flag — a pre-placed symlink fails EEXIST instead of being
32
+ * followed) + atomic rename. PID alone is NOT unpredictable, so a pre-placed
33
+ * `${path}.tmp-${pid}` symlink is a real attack — this closes it.
34
+ */
35
+ export function writeJsonAtomic(path, data) {
36
+ const body = `${JSON.stringify(data, null, 2)}\n`;
37
+ for (let i = 0;; i++) {
38
+ const tmp = `${path}.tmp-${process.pid}-${i}`;
39
+ try {
40
+ writeFileSync(tmp, body, { encoding: 'utf-8', flag: 'wx' });
41
+ renameSync(tmp, path);
42
+ return;
43
+ }
44
+ catch (error) {
45
+ if (error.code === 'EEXIST')
46
+ continue;
47
+ throw error;
48
+ }
49
+ }
50
+ }
51
+ /**
52
+ * Read a JSON manifest. ONLY ENOENT means "does not exist". Corrupted JSON,
53
+ * permission errors, etc. must REFUSE — treating them as "absent" would
54
+ * re-initialize the job and re-submit every paid shot.
55
+ */
56
+ export function readJsonFile(path) {
57
+ let raw;
58
+ try {
59
+ raw = readFileSync(path, 'utf-8');
60
+ }
61
+ catch (error) {
62
+ if (error.code === 'ENOENT')
63
+ return undefined;
64
+ throw new VideoGenError(`Cannot read ${safeBasename(path)} — check permissions. Refusing to resume.`, 'store: manifest unreadable');
65
+ }
66
+ try {
67
+ return JSON.parse(raw);
68
+ }
69
+ catch {
70
+ throw new VideoGenError(`${safeBasename(path)} is corrupted (not valid JSON). Refusing to resume — move it aside and start a new job, or restore it from backup. Rerunning as-is would re-bill all shots.`, 'store: manifest corrupted');
71
+ }
72
+ }
73
+ /** Stream a potentially large artifact into SHA-256 without loading it into memory. */
74
+ export async function hashFileSha256(path, signal) {
75
+ const hash = createHash('sha256');
76
+ for await (const chunk of createReadStream(path)) {
77
+ if (signal?.aborted)
78
+ throw new CancelledError();
79
+ hash.update(chunk);
80
+ }
81
+ return hash.digest('hex');
82
+ }
83
+ /** True only when the path is confirmed absent; other lookup failures remain unexpected. */
84
+ export async function pathIsMissing(path) {
85
+ try {
86
+ await lstat(path);
87
+ return false;
88
+ }
89
+ catch (error) {
90
+ if (error.code === 'ENOENT')
91
+ return true;
92
+ throw error;
93
+ }
94
+ }
95
+ export function singleJobDir(outputDir, jobId) {
96
+ assertSafeId(jobId, 'job');
97
+ return join(outputDir, 'single', jobId);
98
+ }
99
+ /**
100
+ * Create a single-job directory only after the shared `single` parent has
101
+ * resolved inside outputDir. This prevents a pre-placed parent symlink from
102
+ * creating the job directory outside the configured root.
103
+ */
104
+ export function ensureSingleJobDir(outputDir, jobId) {
105
+ assertSafeId(jobId, 'job');
106
+ mkdirSync(outputDir, { recursive: true });
107
+ const realOutput = realpathSync(outputDir);
108
+ const singleRoot = join(realOutput, 'single');
109
+ mkdirSync(singleRoot, { recursive: true });
110
+ const realSingleRoot = realpathSync(singleRoot);
111
+ if (!realSingleRoot.startsWith(`${realOutput}${sep}`)) {
112
+ throw new VideoGenError('The single-job directory resolves outside the configured video-gen output directory. Refusing to write it.', 'store: single root escapes output');
113
+ }
114
+ const dir = join(realSingleRoot, jobId);
115
+ mkdirSync(dir, { recursive: true });
116
+ return resolveJobDirInsideOutput(realOutput, dir);
117
+ }
118
+ /** Resolve an existing job to its canonical path and keep it below the configured output root. */
119
+ export function resolveJobDirInsideOutput(outputDir, jobDir) {
120
+ let realOutput;
121
+ let realJob;
122
+ try {
123
+ realOutput = realpathSync(outputDir);
124
+ realJob = realpathSync(jobDir);
125
+ }
126
+ catch {
127
+ throw new VideoGenError('The job directory does not exist.', 'store: job path missing');
128
+ }
129
+ if (!realJob.startsWith(`${realOutput}${sep}`)) {
130
+ throw new VideoGenError('The job directory resolves outside the configured video-gen output directory. Refusing to read or write it.', 'store: job path escapes output');
131
+ }
132
+ return realJob;
133
+ }
134
+ export function manifestPathFor(jobDir) {
135
+ return join(jobDir, 'manifest.json');
136
+ }
137
+ export function loadSingleJob(outputDir, jobId) {
138
+ const path = manifestPathFor(singleJobDir(outputDir, jobId));
139
+ const manifest = readJsonFile(path);
140
+ if (manifest === undefined)
141
+ return undefined;
142
+ const m = manifest;
143
+ const validStates = new Set([
144
+ 'ambiguous',
145
+ 'submitted',
146
+ 'polling',
147
+ 'downloading',
148
+ 'done',
149
+ 'failed',
150
+ 'polling_stopped',
151
+ ]);
152
+ if (!m ||
153
+ m.kind !== 'single' ||
154
+ typeof m.jobId !== 'string' ||
155
+ typeof m.state !== 'string' ||
156
+ !validStates.has(m.state) ||
157
+ typeof m.updatedAt !== 'string') {
158
+ throw new VideoGenError('manifest.json is not a valid single manifest (wrong shape). Refusing to resume.', 'store: single manifest shape invalid');
159
+ }
160
+ // The manifest must belong to THIS directory's job: a mismatched embedded
161
+ // jobId would route locks, state updates and downloads into ANOTHER job.
162
+ if (m.jobId !== jobId) {
163
+ throw new VideoGenError(`manifest.json inside job "${jobId}" declares jobId "${m.jobId}" — the job is corrupted. Refusing to resume.`, 'store: jobId mismatch');
164
+ }
165
+ const handleRequired = new Set([
166
+ 'submitted',
167
+ 'polling',
168
+ 'downloading',
169
+ 'done',
170
+ 'polling_stopped',
171
+ ]);
172
+ if ((handleRequired.has(m.state) || m.handle !== undefined) &&
173
+ (!m.handle ||
174
+ typeof m.handle !== 'object' ||
175
+ typeof m.handle.taskId !== 'string' ||
176
+ typeof m.handle.submittedAt !== 'string' ||
177
+ typeof m.handle.requestFingerprint !== 'string')) {
178
+ throw new VideoGenError('manifest.json has a broken handle for the single job. Refusing to resume.', 'store: single manifest handle invalid');
179
+ }
180
+ if (m.handle &&
181
+ (typeof m.requestFingerprint !== 'string' ||
182
+ m.requestFingerprint === '' ||
183
+ m.handle.requestFingerprint !== m.requestFingerprint)) {
184
+ throw new VideoGenError('manifest.json has a task handle that does not match the frozen request fingerprint. Refusing to resume.', 'store: single handle fingerprint mismatch');
185
+ }
186
+ return m;
187
+ }
188
+ /**
189
+ * Structurally validate a parsed render manifest. Valid JSON with a broken
190
+ * SHAPE (wrong kind, missing fingerprint/hashes/shots) must refuse — the
191
+ * fresh branch would otherwise treat it as "no job" and re-bill every shot.
192
+ */
193
+ function validateRenderManifest(raw, path) {
194
+ const m = raw;
195
+ const broken = !m ||
196
+ m.kind !== 'render' ||
197
+ typeof m.jobId !== 'string' ||
198
+ typeof m.specFingerprint !== 'string' ||
199
+ m.specFingerprint === '' ||
200
+ typeof m.frameHashes !== 'object' ||
201
+ m.frameHashes == null ||
202
+ Array.isArray(m.frameHashes) ||
203
+ typeof m.shots !== 'object' ||
204
+ m.shots == null ||
205
+ Array.isArray(m.shots);
206
+ if (broken) {
207
+ throw new VideoGenError(`${safeBasename(path)} is not a valid render manifest (wrong shape). Refusing to resume — move it aside and start a new job. Rerunning as-is would re-bill all shots.`, 'store: manifest shape invalid');
208
+ }
209
+ // frameHashes must actually COVER the shots: an empty or sparse map lets
210
+ // resume skip every frozen-frame check and run paid requests on untrusted
211
+ // input. Every shot has at least a first frame.
212
+ const frameHashEntries = Object.entries(m.frameHashes);
213
+ const shotsCount = Object.keys(m.shots).length;
214
+ const hashesInvalid = frameHashEntries.length < shotsCount ||
215
+ frameHashEntries.some(([, hash]) => typeof hash !== 'string' || !/^[0-9a-f]{64}$/.test(hash));
216
+ if (hashesInvalid) {
217
+ throw new VideoGenError(`${safeBasename(path)} has incomplete frame hashes (${frameHashEntries.length} for ${shotsCount} shots). Refusing to resume — the frozen frames cannot be verified.`, 'store: frameHashes invalid');
218
+ }
219
+ // Per-shot validation: a shot marked 'submitted' WITHOUT its remote handle
220
+ // would be re-submitted on resume — a paid duplicate. Refuse truncated
221
+ // entries outright; the operator fixes or discards the manifest.
222
+ const VALID_STATES = new Set([
223
+ 'pending',
224
+ 'submitted',
225
+ 'done',
226
+ 'failed',
227
+ 'polling_stopped',
228
+ 'ambiguous',
229
+ ]);
230
+ const HANDLE_REQUIRED = new Set(['submitted', 'done', 'polling_stopped']);
231
+ for (const [shotId, shot] of Object.entries(m.shots)) {
232
+ const badShot = !shot ||
233
+ typeof shot !== 'object' ||
234
+ !VALID_STATES.has(shot.state) ||
235
+ (shot.attempt !== undefined && (!Number.isSafeInteger(shot.attempt) || shot.attempt < 1)) ||
236
+ (HANDLE_REQUIRED.has(shot.state) && typeof shot.handle?.taskId !== 'string') ||
237
+ (shot.handle !== undefined &&
238
+ (typeof shot.requestFingerprint !== 'string' ||
239
+ (shot.requestFingerprint !== 'manual-adopt' &&
240
+ shot.handle.requestFingerprint !== shot.requestFingerprint)));
241
+ if (badShot) {
242
+ throw new VideoGenError(`${safeBasename(path)} has a broken entry for shot "${shotId}" (invalid state, attempt, or task handle). Refusing to resume — fix or discard the manifest.`, 'store: manifest shot invalid');
243
+ }
244
+ }
245
+ return m;
246
+ }
247
+ function isRecord(value) {
248
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
249
+ }
250
+ function hasSha256Values(value) {
251
+ return (isRecord(value) &&
252
+ Object.values(value).every((hash) => typeof hash === 'string' && /^[0-9a-f]{64}$/.test(hash)));
253
+ }
254
+ export function loadTimelineJob(jobDir) {
255
+ const path = join(jobDir, 'manifest.json');
256
+ const raw = readJsonFile(path);
257
+ if (raw === undefined)
258
+ return undefined;
259
+ if (!isRecord(raw) || raw.kind !== 'timeline') {
260
+ throw new VideoGenError(`This directory already holds a "${isRecord(raw) ? (raw.kind ?? 'unknown') : 'unknown'}" job manifest. Choose a different job directory.`, 'store: foreign manifest');
261
+ }
262
+ const manifest = raw;
263
+ const validStates = new Set(['working', 'done', 'failed', 'cancelled']);
264
+ const segmentsValid = isRecord(manifest.segments) &&
265
+ Object.values(manifest.segments).every((segment) => isRecord(segment) &&
266
+ (segment.narrationDurationSec === undefined ||
267
+ (typeof segment.narrationDurationSec === 'number' &&
268
+ Number.isFinite(segment.narrationDurationSec) &&
269
+ segment.narrationDurationSec >= 0)) &&
270
+ (segment.resolvedDurationSec === undefined ||
271
+ (typeof segment.resolvedDurationSec === 'number' &&
272
+ Number.isFinite(segment.resolvedDurationSec) &&
273
+ segment.resolvedDurationSec >= 0)) &&
274
+ (segment.narrationDegraded === undefined || typeof segment.narrationDegraded === 'boolean'));
275
+ if (typeof manifest.jobId !== 'string' ||
276
+ typeof manifest.state !== 'string' ||
277
+ !validStates.has(manifest.state) ||
278
+ typeof manifest.fingerprint !== 'string' ||
279
+ manifest.fingerprint === '' ||
280
+ !hasSha256Values(manifest.imageHashes) ||
281
+ !hasSha256Values(manifest.artifactHashes) ||
282
+ !segmentsValid ||
283
+ (manifest.finalVideoHash !== undefined &&
284
+ (typeof manifest.finalVideoHash !== 'string' ||
285
+ !/^[0-9a-f]{64}$/.test(manifest.finalVideoHash))) ||
286
+ (manifest.state === 'done' &&
287
+ (typeof manifest.finalVideoPath !== 'string' ||
288
+ typeof manifest.finalVideoHash !== 'string')) ||
289
+ typeof manifest.updatedAt !== 'string') {
290
+ throw new VideoGenError('manifest.json is not a valid timeline manifest (wrong shape). Refusing to resume.', 'store: timeline manifest shape invalid');
291
+ }
292
+ if (manifest.jobId !== jobDir.split(/[\\/]/).pop()) {
293
+ throw new VideoGenError(`manifest.json declares jobId "${manifest.jobId}" but lives in "${jobDir.split(/[\\/]/).pop()}" — refusing to resume.`, 'store: timeline jobId mismatch');
294
+ }
295
+ return manifest;
296
+ }
297
+ export function saveTimelineJob(jobDir, manifest) {
298
+ mkdirSync(jobDir, { recursive: true });
299
+ writeJsonAtomic(join(jobDir, 'manifest.json'), {
300
+ ...manifest,
301
+ updatedAt: new Date().toISOString(),
302
+ });
303
+ }
304
+ export function loadComposeJob(jobDir) {
305
+ const path = join(jobDir, 'manifest.json');
306
+ const raw = readJsonFile(path);
307
+ if (raw === undefined)
308
+ return undefined;
309
+ // FAIL CLOSED: a directory that already holds a render/single manifest (or
310
+ // any non-compose kind) is NOT a fresh compose job — treating it as one
311
+ // would overwrite and destroy paid task recovery state.
312
+ if (!isRecord(raw) || raw.kind !== 'compose') {
313
+ throw new VideoGenError(`This directory already holds a "${isRecord(raw) ? (raw.kind ?? 'unknown') : 'unknown'}" job manifest. Choose a different job directory for compose — refusing to overwrite another job's state.`, 'store: foreign manifest');
314
+ }
315
+ const manifest = raw;
316
+ const validStates = new Set(['concatenating', 'done', 'failed', 'cancelled']);
317
+ if (typeof manifest.jobId !== 'string' ||
318
+ typeof manifest.state !== 'string' ||
319
+ !validStates.has(manifest.state) ||
320
+ typeof manifest.fingerprint !== 'string' ||
321
+ manifest.fingerprint === '' ||
322
+ !hasSha256Values(manifest.clipHashes) ||
323
+ (manifest.finalVideoHash !== undefined &&
324
+ (typeof manifest.finalVideoHash !== 'string' ||
325
+ !/^[0-9a-f]{64}$/.test(manifest.finalVideoHash))) ||
326
+ (manifest.state === 'done' &&
327
+ (typeof manifest.finalVideoPath !== 'string' ||
328
+ typeof manifest.finalVideoHash !== 'string')) ||
329
+ typeof manifest.updatedAt !== 'string') {
330
+ throw new VideoGenError('manifest.json is not a valid compose manifest (wrong shape). Refusing to resume.', 'store: compose manifest shape invalid');
331
+ }
332
+ if (manifest.jobId !== jobDir.split(/[\\/]/).pop()) {
333
+ throw new VideoGenError(`manifest.json declares jobId "${manifest.jobId}" but lives in "${jobDir.split(/[\\/]/).pop()}" — refusing to resume.`, 'store: compose jobId mismatch');
334
+ }
335
+ return manifest;
336
+ }
337
+ export function saveComposeJob(jobDir, manifest) {
338
+ mkdirSync(jobDir, { recursive: true });
339
+ writeJsonAtomic(join(jobDir, 'manifest.json'), {
340
+ ...manifest,
341
+ updatedAt: new Date().toISOString(),
342
+ });
343
+ }
344
+ export function loadRenderJob(jobDir) {
345
+ const path = join(jobDir, 'manifest.json');
346
+ const raw = readJsonFile(path);
347
+ if (raw === undefined)
348
+ return undefined;
349
+ const manifest = validateRenderManifest(raw, path);
350
+ // The parent directory IS the job identity: a manifest copied here from
351
+ // another job would hijack the original job's remote handles.
352
+ const dirName = jobDir.split(/[\\/]/).pop();
353
+ if (manifest.jobId !== dirName) {
354
+ throw new VideoGenError(`manifest.json declares jobId "${manifest.jobId}" but lives in "${dirName}" — the job is corrupted or misplaced. Refusing to resume.`, 'store: render jobId mismatch');
355
+ }
356
+ return manifest;
357
+ }
358
+ export function saveRenderJob(jobDir, manifest) {
359
+ writeJsonAtomic(join(jobDir, 'manifest.json'), {
360
+ ...manifest,
361
+ updatedAt: new Date().toISOString(),
362
+ });
363
+ }
364
+ export function saveSingleJob(outputDir, manifest) {
365
+ const realDir = ensureSingleJobDir(outputDir, manifest.jobId);
366
+ writeJsonAtomic(manifestPathFor(realDir), { ...manifest, updatedAt: new Date().toISOString() });
367
+ }
368
+ /**
369
+ * Guard against concurrent writes to the same job directory. Process-local:
370
+ * two tool executions in one extension instance cannot interleave manifest
371
+ * updates for the same job.
372
+ */
373
+ export class ActiveJobs {
374
+ active = new Set();
375
+ /** Mark a job dir active; throws if already active. Returns a release fn. */
376
+ acquire(jobDir) {
377
+ if (this.active.has(jobDir)) {
378
+ throw new VideoGenError('That job is already running in this session. Wait for it to finish (or cancel it) before rerunning.', 'store: job already active');
379
+ }
380
+ this.active.add(jobDir);
381
+ return () => {
382
+ this.active.delete(jobDir);
383
+ };
384
+ }
385
+ }
386
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/jobs/store.ts"],"names":[],"mappings":"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"}