gooseworks 0.4.2 → 0.4.5-dev.15.facf60fb

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 (156) hide show
  1. package/README.md +84 -22
  2. package/dist/agents/staging.d.ts +38 -0
  3. package/dist/agents/staging.d.ts.map +1 -0
  4. package/dist/agents/staging.js +309 -0
  5. package/dist/agents/staging.js.map +1 -0
  6. package/dist/auth/credentials.d.ts +1 -0
  7. package/dist/auth/credentials.d.ts.map +1 -1
  8. package/dist/auth/credentials.js +26 -8
  9. package/dist/auth/credentials.js.map +1 -1
  10. package/dist/auth/device-flow.d.ts +79 -0
  11. package/dist/auth/device-flow.d.ts.map +1 -0
  12. package/dist/auth/device-flow.js +411 -0
  13. package/dist/auth/device-flow.js.map +1 -0
  14. package/dist/auth/login-mode.d.ts +25 -0
  15. package/dist/auth/login-mode.d.ts.map +1 -0
  16. package/dist/auth/login-mode.js +87 -0
  17. package/dist/auth/login-mode.js.map +1 -0
  18. package/dist/auth/oauth-server.d.ts +2 -2
  19. package/dist/auth/oauth-server.d.ts.map +1 -1
  20. package/dist/auth/oauth-server.js +28 -5
  21. package/dist/auth/oauth-server.js.map +1 -1
  22. package/dist/auth/paste-login.d.ts +27 -0
  23. package/dist/auth/paste-login.d.ts.map +1 -0
  24. package/dist/auth/paste-login.js +203 -0
  25. package/dist/auth/paste-login.js.map +1 -0
  26. package/dist/commands/doctor.d.ts +29 -5
  27. package/dist/commands/doctor.d.ts.map +1 -1
  28. package/dist/commands/doctor.js +116 -63
  29. package/dist/commands/doctor.js.map +1 -1
  30. package/dist/commands/fetch.d.ts +1 -0
  31. package/dist/commands/fetch.d.ts.map +1 -1
  32. package/dist/commands/fetch.js +64 -29
  33. package/dist/commands/fetch.js.map +1 -1
  34. package/dist/commands/formats.js +2 -2
  35. package/dist/commands/formats.js.map +1 -1
  36. package/dist/commands/graphics/publish-flow.js +1 -1
  37. package/dist/commands/graphics/publish-flow.js.map +1 -1
  38. package/dist/commands/install.d.ts.map +1 -1
  39. package/dist/commands/install.js +126 -26
  40. package/dist/commands/install.js.map +1 -1
  41. package/dist/commands/launch.d.ts +3 -0
  42. package/dist/commands/launch.d.ts.map +1 -0
  43. package/dist/commands/launch.js +35 -0
  44. package/dist/commands/launch.js.map +1 -0
  45. package/dist/commands/login.d.ts +21 -1
  46. package/dist/commands/login.d.ts.map +1 -1
  47. package/dist/commands/login.js +112 -30
  48. package/dist/commands/login.js.map +1 -1
  49. package/dist/commands/logout.d.ts.map +1 -1
  50. package/dist/commands/logout.js +7 -1
  51. package/dist/commands/logout.js.map +1 -1
  52. package/dist/commands/skills.d.ts +50 -0
  53. package/dist/commands/skills.d.ts.map +1 -0
  54. package/dist/commands/skills.js +160 -0
  55. package/dist/commands/skills.js.map +1 -0
  56. package/dist/commands/styles.js +2 -2
  57. package/dist/commands/styles.js.map +1 -1
  58. package/dist/commands/tool.d.ts +17 -0
  59. package/dist/commands/tool.d.ts.map +1 -0
  60. package/dist/commands/tool.js +239 -0
  61. package/dist/commands/tool.js.map +1 -0
  62. package/dist/commands/update.d.ts.map +1 -1
  63. package/dist/commands/update.js +37 -6
  64. package/dist/commands/update.js.map +1 -1
  65. package/dist/commands/video-local.d.ts +9 -0
  66. package/dist/commands/video-local.d.ts.map +1 -0
  67. package/dist/commands/video-local.js +83 -0
  68. package/dist/commands/video-local.js.map +1 -0
  69. package/dist/commands/video-save.d.ts +3 -0
  70. package/dist/commands/video-save.d.ts.map +1 -0
  71. package/dist/commands/video-save.js +83 -0
  72. package/dist/commands/video-save.js.map +1 -0
  73. package/dist/config.d.ts.map +1 -1
  74. package/dist/config.js +14 -3
  75. package/dist/config.js.map +1 -1
  76. package/dist/environment.d.ts +9 -0
  77. package/dist/environment.d.ts.map +1 -0
  78. package/dist/environment.js +105 -0
  79. package/dist/environment.js.map +1 -0
  80. package/dist/index.js +12 -38
  81. package/dist/index.js.map +1 -1
  82. package/dist/lib/graphics-cache.d.ts.map +1 -1
  83. package/dist/lib/graphics-cache.js +2 -2
  84. package/dist/lib/graphics-cache.js.map +1 -1
  85. package/dist/lib/mcp-client.d.ts +53 -0
  86. package/dist/lib/mcp-client.d.ts.map +1 -0
  87. package/dist/lib/mcp-client.js +196 -0
  88. package/dist/lib/mcp-client.js.map +1 -0
  89. package/dist/lib/video-local-captions.d.ts +83 -0
  90. package/dist/lib/video-local-captions.d.ts.map +1 -0
  91. package/dist/lib/video-local-captions.js +261 -0
  92. package/dist/lib/video-local-captions.js.map +1 -0
  93. package/dist/lib/video-local-runtime.d.ts +8 -0
  94. package/dist/lib/video-local-runtime.d.ts.map +1 -0
  95. package/dist/lib/video-local-runtime.js +201 -0
  96. package/dist/lib/video-local-runtime.js.map +1 -0
  97. package/dist/lib/video-save-mcp.d.ts +9 -0
  98. package/dist/lib/video-save-mcp.d.ts.map +1 -0
  99. package/dist/lib/video-save-mcp.js +162 -0
  100. package/dist/lib/video-save-mcp.js.map +1 -0
  101. package/dist/lib/video-save.d.ts +77 -0
  102. package/dist/lib/video-save.d.ts.map +1 -0
  103. package/dist/lib/video-save.js +440 -0
  104. package/dist/lib/video-save.js.map +1 -0
  105. package/dist/program.d.ts +2 -0
  106. package/dist/program.d.ts.map +1 -0
  107. package/dist/program.js +56 -0
  108. package/dist/program.js.map +1 -0
  109. package/dist/skills/custom-video-skill.d.ts +3 -0
  110. package/dist/skills/custom-video-skill.d.ts.map +1 -0
  111. package/dist/skills/custom-video-skill.js +6 -0
  112. package/dist/skills/custom-video-skill.js.map +1 -0
  113. package/dist/skills/installer.d.ts +12 -6
  114. package/dist/skills/installer.d.ts.map +1 -1
  115. package/dist/skills/installer.js +82 -38
  116. package/dist/skills/installer.js.map +1 -1
  117. package/dist/skills/master-skill.d.ts +34 -28
  118. package/dist/skills/master-skill.d.ts.map +1 -1
  119. package/dist/skills/master-skill.js +2264 -858
  120. package/dist/skills/master-skill.js.map +1 -1
  121. package/dist/skills/package-freshness.d.ts +16 -0
  122. package/dist/skills/package-freshness.d.ts.map +1 -0
  123. package/dist/skills/package-freshness.js +36 -0
  124. package/dist/skills/package-freshness.js.map +1 -0
  125. package/dist/skills/releases.d.ts +12 -0
  126. package/dist/skills/releases.d.ts.map +1 -0
  127. package/dist/skills/releases.js +155 -0
  128. package/dist/skills/releases.js.map +1 -0
  129. package/dist/skills/routes.d.ts.map +1 -1
  130. package/dist/skills/routes.js +12 -6
  131. package/dist/skills/routes.js.map +1 -1
  132. package/dist/skills/staging-content.d.ts +3 -0
  133. package/dist/skills/staging-content.d.ts.map +1 -0
  134. package/dist/skills/staging-content.js +12 -0
  135. package/dist/skills/staging-content.js.map +1 -0
  136. package/dist/utils/browser-preflight.d.ts +29 -0
  137. package/dist/utils/browser-preflight.d.ts.map +1 -0
  138. package/dist/utils/browser-preflight.js +338 -0
  139. package/dist/utils/browser-preflight.js.map +1 -0
  140. package/dist/utils/http.d.ts +7 -1
  141. package/dist/utils/http.d.ts.map +1 -1
  142. package/dist/utils/http.js +5 -1
  143. package/dist/utils/http.js.map +1 -1
  144. package/package.json +11 -3
  145. package/skills/goose-ads/SKILL.md +509 -239
  146. package/skills/goose-product-photos/SKILL.md +161 -60
  147. package/skills/goose-video/SKILL.md +592 -259
  148. package/skills/goose-video-local/SKILL.md +1409 -236
  149. package/skills/gooseworks/SKILL.md +327 -34
  150. package/skills/make-custom-video/SKILL.md +735 -0
  151. package/skills/manifest.json +12 -0
  152. package/skills/routes.json +13 -6
  153. package/dist/skills/fetcher.d.ts +0 -18
  154. package/dist/skills/fetcher.d.ts.map +0 -1
  155. package/dist/skills/fetcher.js +0 -118
  156. package/dist/skills/fetcher.js.map +0 -1
@@ -0,0 +1,440 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.digest = digest;
37
+ exports.writeCheckpoint = writeCheckpoint;
38
+ exports.loadCheckpoint = loadCheckpoint;
39
+ exports.prepareSave = prepareSave;
40
+ exports.resumeSave = resumeSave;
41
+ /** Finished-video recovery. No render-open, provider, or authentication operations. */
42
+ const crypto_1 = require("crypto");
43
+ const promises_1 = require("fs/promises");
44
+ const path = __importStar(require("path"));
45
+ const video_save_mcp_1 = require("./video-save-mcp");
46
+ const HASH = /^[a-f0-9]{64}$/;
47
+ const ID = /^[A-Za-z0-9_-]{1,160}$/;
48
+ const MAX_BYTES = 200 * 1024 * 1024;
49
+ const CHECKS = ['source', 'brand', 'product', 'hook_and_scene_order', 'voice_and_script',
50
+ 'captions', 'endcard_and_cta', 'duration_and_ratio', 'visual_artifacts'];
51
+ function fail(message) { throw new Error(message); }
52
+ function object(value) { return !!value && typeof value === 'object' && !Array.isArray(value); }
53
+ function keys(value, allowed) {
54
+ if (Object.keys(value).some(key => !allowed.includes(key)))
55
+ fail('Unexpected checkpoint or quality field');
56
+ }
57
+ function stable(value) {
58
+ if (Array.isArray(value))
59
+ return `[${value.map(stable).join(',')}]`;
60
+ if (object(value))
61
+ return `{${Object.keys(value).sort().map(k => `${JSON.stringify(k)}:${stable(value[k])}`).join(',')}}`;
62
+ return JSON.stringify(value);
63
+ }
64
+ function digest(value) { return (0, crypto_1.createHash)('sha256').update(stable(value)).digest('hex'); }
65
+ function sha(bytes) { return (0, crypto_1.createHash)('sha256').update(bytes).digest('hex'); }
66
+ function origin(value) {
67
+ if (typeof value !== 'string')
68
+ fail('Missing environment origin');
69
+ const url = new URL(value);
70
+ if (url.username || url.password || url.search || url.hash || url.pathname !== '/' ||
71
+ !['https:', 'http:'].includes(url.protocol))
72
+ fail('Invalid public environment origin');
73
+ if (url.protocol === 'http:' && !['127.0.0.1', 'localhost', '[::1]'].includes(url.hostname))
74
+ fail('Environment requires HTTPS');
75
+ return url.origin;
76
+ }
77
+ function identity(account) {
78
+ if (!object(account.environment) || !['production', 'staging', 'local'].includes(account.environment.name) ||
79
+ typeof account.user?.id !== 'string' || typeof account.organization?.id !== 'string' ||
80
+ !ID.test(account.user.id) || !ID.test(account.organization.id))
81
+ fail('Unknown account/environment; reconnect on the original connection');
82
+ return { environment: { name: account.environment.name, api_origin: origin(account.environment.api_origin) },
83
+ user_id: account.user.id, organization_id: account.organization.id };
84
+ }
85
+ function quality(report) {
86
+ if (!object(report))
87
+ fail('Missing quality report');
88
+ keys(report, ['version', 'summary', 'checks', 'detected_issues', 'repair_actions', 'checked_at']);
89
+ if (report.version !== 1 || typeof report.summary !== 'string' || !report.summary.trim() || report.summary.length > 2000 ||
90
+ !object(report.checks) || Object.keys(report.checks).length !== CHECKS.length)
91
+ fail('Invalid structured quality report');
92
+ for (const name of CHECKS) {
93
+ const check = report.checks[name];
94
+ if (!object(check))
95
+ fail(`Missing quality check: ${name}`);
96
+ keys(check, ['status', 'note']);
97
+ if (!['pass', 'not_applicable'].includes(check.status) ||
98
+ (check.note !== undefined && (typeof check.note !== 'string' || check.note.length > 1000)) ||
99
+ (check.status === 'not_applicable' && !check.note?.trim()))
100
+ fail(`Quality check has not passed: ${name}`);
101
+ }
102
+ for (const name of ['source', 'brand', 'hook_and_scene_order', 'endcard_and_cta', 'duration_and_ratio', 'visual_artifacts']) {
103
+ if (report.checks[name].status !== 'pass')
104
+ fail(`Always-required quality check has not passed: ${name}`);
105
+ }
106
+ for (const [key, limit] of [['detected_issues', 25], ['repair_actions', 10]]) {
107
+ if (report[key] !== undefined && (!Array.isArray(report[key]) || report[key].length > limit ||
108
+ report[key].some((v) => typeof v !== 'string' || v.length > 1000)))
109
+ fail('Invalid quality issue/action list');
110
+ }
111
+ if (report.checked_at !== undefined && (typeof report.checked_at !== 'string' ||
112
+ !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(report.checked_at) ||
113
+ !Number.isFinite(Date.parse(report.checked_at))))
114
+ fail('Invalid quality timestamp');
115
+ if (JSON.stringify(report).length > 32 * 1024)
116
+ fail('Quality report is too large');
117
+ return { ...report, detected_issues: report.detected_issues ?? [], repair_actions: report.repair_actions ?? [] };
118
+ }
119
+ async function file(filePath) {
120
+ if (typeof filePath !== 'string' || !path.isAbsolute(filePath))
121
+ fail('Use absolute local file paths');
122
+ const info = await (0, promises_1.stat)(filePath);
123
+ if (!info.isFile() || info.size < 1 || info.size > MAX_BYTES)
124
+ fail('Missing/empty/oversized finished file or quality evidence');
125
+ const bytes = await (0, promises_1.readFile)(filePath);
126
+ return { path: filePath, sha256: sha(bytes), bytes: bytes.length };
127
+ }
128
+ function validFile(value, saved = false) {
129
+ if (!object(value))
130
+ fail('Invalid file binding');
131
+ keys(value, ['path', 'sha256', 'bytes', ...(saved ? ['upload_path', 'ingredient_key', 'kind', 'mime'] : [])]);
132
+ if (typeof value.path !== 'string' || !path.isAbsolute(value.path) || !HASH.test(value.sha256) ||
133
+ !Number.isInteger(value.bytes) || value.bytes < 1 || value.bytes > MAX_BYTES)
134
+ fail('Invalid file fingerprint');
135
+ }
136
+ function validate(checkpoint) {
137
+ if (!object(checkpoint))
138
+ fail('Malformed save checkpoint');
139
+ // Report notes are free text. Do not let a copied auth error turn the otherwise
140
+ // credential-free checkpoint into a token or reusable signed-URL store.
141
+ if (/\bBearer\s+\S+|\bcal_[A-Za-z0-9_-]{16,}\b|[?&](?:X-Amz-(?:Signature|Credential|Security-Token)|token|api_key)=/i.test(JSON.stringify(checkpoint))) {
142
+ fail('Remove authorization or signed-URL material from checkpoint inputs; no credentials may be saved');
143
+ }
144
+ keys(checkpoint, ['version', 'binding', 'binding_sha256', 'progress']);
145
+ const b = checkpoint.binding;
146
+ if (checkpoint.version !== 1 || !object(b) || !object(checkpoint.progress) || digest(b) !== checkpoint.binding_sha256)
147
+ fail('Malformed or changed save checkpoint');
148
+ keys(b, ['environment', 'user_id', 'organization_id', 'brand_id', 'project_id', 'project_organization_id', 'render_id', 'input_digest',
149
+ 'final', 'poster', 'report', 'evidence', 'quality_report', 'review_digest', 'initial_final_render_id']);
150
+ identity({ environment: b.environment, user: { id: b.user_id }, organization: { id: b.organization_id } });
151
+ keys(b.environment, ['name', 'api_origin']);
152
+ if (![b.brand_id, b.project_id, b.project_organization_id, b.render_id].every(id => typeof id === 'string' && ID.test(id)) ||
153
+ !/^[a-f0-9]{8,128}$/.test(b.input_digest) || !HASH.test(b.review_digest) ||
154
+ !(b.initial_final_render_id === null || (typeof b.initial_final_render_id === 'string' && ID.test(b.initial_final_render_id))))
155
+ fail('Invalid render binding');
156
+ validFile(b.final, true);
157
+ validFile(b.poster, true);
158
+ validFile(b.report);
159
+ if (!Array.isArray(b.evidence) || b.evidence.length < 1 || b.evidence.length > 25)
160
+ fail('Missing quality evidence');
161
+ b.evidence.forEach((v) => validFile(v));
162
+ quality(b.quality_report);
163
+ for (const role of ['final', 'poster']) {
164
+ const f = b[role];
165
+ if (f.upload_path !== `working/final-${b.render_id}${role === 'final' ? '.mp4' : '-thumb.jpg'}` ||
166
+ f.ingredient_key !== (role === 'final' ? 'final' : 'final-thumb') ||
167
+ f.kind !== (role === 'final' ? 'render' : 'thumbnail') || f.mime !== (role === 'final' ? 'video/mp4' : 'image/jpeg'))
168
+ fail('Changed upload destination');
169
+ const receipt = checkpoint.progress[role];
170
+ if (receipt !== undefined) {
171
+ if (!object(receipt))
172
+ fail('Invalid stage receipt');
173
+ keys(receipt, ['media_id', 'stage']);
174
+ if (typeof receipt.media_id !== 'string' || !ID.test(receipt.media_id) || !['requested', 'put', 'confirmed'].includes(receipt.stage))
175
+ fail('Invalid stage receipt');
176
+ }
177
+ }
178
+ keys(checkpoint.progress, ['final', 'poster', 'completion', 'selection']);
179
+ if (!['pending', 'unknown', 'complete'].includes(checkpoint.progress.completion) ||
180
+ !['pending', 'unknown', 'selected'].includes(checkpoint.progress.selection))
181
+ fail('Invalid saving stage');
182
+ }
183
+ /** Same-directory rename + fsync: a process interruption leaves either full old or full new JSON. */
184
+ async function writeCheckpoint(target, checkpoint) {
185
+ validate(checkpoint);
186
+ await (0, promises_1.mkdir)(path.dirname(target), { recursive: true, mode: 0o700 });
187
+ const temp = `${target}.${(0, crypto_1.randomUUID)()}.pending`;
188
+ const handle = await (0, promises_1.open)(temp, 'wx', 0o600);
189
+ try {
190
+ await handle.writeFile(JSON.stringify(checkpoint, null, 2) + '\n');
191
+ await handle.sync();
192
+ }
193
+ finally {
194
+ await handle.close();
195
+ }
196
+ try {
197
+ await (0, promises_1.rename)(temp, target);
198
+ const directory = await (0, promises_1.open)(path.dirname(target), 'r');
199
+ try {
200
+ await directory.sync();
201
+ }
202
+ finally {
203
+ await directory.close();
204
+ }
205
+ }
206
+ finally {
207
+ await (0, promises_1.unlink)(temp).catch(() => undefined);
208
+ }
209
+ }
210
+ async function loadCheckpoint(target) {
211
+ const info = await (0, promises_1.stat)(target);
212
+ if (!info.isFile() || info.size > 1024 * 1024)
213
+ fail('Malformed save checkpoint');
214
+ const checkpoint = JSON.parse(await (0, promises_1.readFile)(target, 'utf8'));
215
+ validate(checkpoint);
216
+ return checkpoint;
217
+ }
218
+ function reviewDigest(p) { return digest({ script: p.script ?? null, script_drafts: p.script_drafts ?? null }); }
219
+ function inspectProject(state, ids) {
220
+ const project = state.project;
221
+ const render = Array.isArray(state.renders) && state.renders.find((r) => r.id === ids.render_id);
222
+ if (!object(project) || project.id !== ids.project_id || project.brand_id !== ids.brand_id ||
223
+ !object(render) || render.project_id !== ids.project_id)
224
+ fail('Project/render identity mismatch or missing render; no new render was opened');
225
+ if (state.order || state.creative_plan || project.custom_video_state?.mode === 'generate')
226
+ fail('This is not a client-side recipe render; use its existing order workflow');
227
+ if (!['queued', 'running', 'complete'].includes(render.status) || render.stop_requested_at ||
228
+ project.stop_requested_at || project.plan_status === 'stopped' || ['stopped', 'capped'].includes(project.status) ||
229
+ render.workflow_stage === 'blocked' || render.quality_status === 'blocked')
230
+ fail('Render is stopped, capped, failed or blocked; save-only recovery cannot reopen it');
231
+ return { project, render };
232
+ }
233
+ async function projectRead(transport, ids) {
234
+ return inspectProject(await transport.call('video_project_read', {
235
+ brand_id: ids.brand_id, project_id: ids.project_id, include: ['renders'],
236
+ }), ids);
237
+ }
238
+ async function prepareSave(target, manifest, transport) {
239
+ await (0, promises_1.mkdir)(path.dirname(target), { recursive: true, mode: 0o700 });
240
+ const lock = await (0, promises_1.open)(`${target}.lock`, 'wx', 0o600).catch(() => fail('Save checkpoint is locked by another process'));
241
+ try {
242
+ if (await (0, promises_1.stat)(target).catch(() => null))
243
+ fail('Checkpoint already exists; resume it instead of replacing finished-video evidence');
244
+ if (!manifest || ![manifest.brand_id, manifest.project_id, manifest.render_id].every(v => typeof v === 'string' && ID.test(v)) ||
245
+ !/^[a-f0-9]{8,128}$/.test(manifest.input_digest) || !object(manifest.qc) ||
246
+ !Array.isArray(manifest.qc.evidence_paths) || manifest.qc.evidence_paths.length < 1 || manifest.qc.evidence_paths.length > 25)
247
+ fail('Invalid finished-video manifest');
248
+ const owner = identity(await transport.call('account_whoami', {}));
249
+ const { project } = await projectRead(transport, manifest);
250
+ if (typeof project.organization_id !== 'string' || !ID.test(project.organization_id))
251
+ fail('Unknown project ownership');
252
+ const final = await file(manifest.final_path);
253
+ const poster = await file(manifest.poster_path);
254
+ if (final.sha256 !== manifest.qc.final_sha256 || poster.sha256 !== manifest.qc.poster_sha256)
255
+ fail('Finished bytes differ from the quality check; review these exact files first');
256
+ const report = await file(manifest.qc.report_path);
257
+ const qualityReport = quality(JSON.parse(await (0, promises_1.readFile)(report.path, 'utf8')));
258
+ const checkpoint = {
259
+ version: 1, binding: { ...owner, brand_id: manifest.brand_id, project_id: manifest.project_id, project_organization_id: project.organization_id,
260
+ render_id: manifest.render_id, input_digest: manifest.input_digest,
261
+ final: { ...final, upload_path: `working/final-${manifest.render_id}.mp4`, ingredient_key: 'final', kind: 'render', mime: 'video/mp4' },
262
+ poster: { ...poster, upload_path: `working/final-${manifest.render_id}-thumb.jpg`, ingredient_key: 'final-thumb', kind: 'thumbnail', mime: 'image/jpeg' },
263
+ report, evidence: await Promise.all(manifest.qc.evidence_paths.map(file)), quality_report: qualityReport,
264
+ review_digest: reviewDigest(project), initial_final_render_id: project.final_render_id ?? null,
265
+ }, binding_sha256: '', progress: { completion: 'pending', selection: 'pending' },
266
+ };
267
+ checkpoint.binding_sha256 = digest(checkpoint.binding);
268
+ await writeCheckpoint(target, checkpoint);
269
+ return checkpoint;
270
+ }
271
+ finally {
272
+ await lock.close();
273
+ await (0, promises_1.unlink)(`${target}.lock`);
274
+ }
275
+ }
276
+ function durableUrl(b, f) {
277
+ return `/api/ads/projects/${b.project_id}/render-file?path=${encodeURIComponent(f.upload_path)}`;
278
+ }
279
+ function sameUrl(actual, expected) {
280
+ if (typeof actual !== 'string' || !actual.startsWith('/'))
281
+ return false;
282
+ const a = new URL(actual, 'https://local.invalid');
283
+ const e = new URL(expected, 'https://local.invalid');
284
+ return a.origin === e.origin && !a.hash && a.pathname === e.pathname && a.searchParams.getAll('path').length === 1 && a.searchParams.get('path') === e.searchParams.get('path') &&
285
+ [...a.searchParams.keys()].every(k => k === 'path');
286
+ }
287
+ async function resumeSave(target, transport) {
288
+ // Exclusive local writer. A stale lock is reported, never silently stolen.
289
+ const lock = await (0, promises_1.open)(`${target}.lock`, 'wx', 0o600).catch(() => fail('Save checkpoint is locked; verify the prior process exited before removing its .lock file'));
290
+ try {
291
+ const checkpoint = await loadCheckpoint(target);
292
+ const b = checkpoint.binding;
293
+ const owner = identity(await transport.call('account_whoami', {}));
294
+ if (stable(owner) !== stable({ environment: b.environment, user_id: b.user_id, organization_id: b.organization_id }))
295
+ fail('Account/environment mismatch; reconnect to the original connection');
296
+ for (const expected of [b.final, b.poster, b.report, ...b.evidence]) {
297
+ const actual = await file(expected.path);
298
+ if (actual.sha256 !== expected.sha256 || actual.bytes !== expected.bytes)
299
+ fail('Finished file or quality evidence changed; saving stopped without generation');
300
+ }
301
+ if (digest(quality(JSON.parse(await (0, promises_1.readFile)(b.report.path, 'utf8')))) !== digest(b.quality_report))
302
+ fail('Quality report mismatch');
303
+ const read = async () => {
304
+ const state = await projectRead(transport, b);
305
+ if (state.project.organization_id !== b.project_organization_id)
306
+ fail('Project ownership changed');
307
+ if (reviewDigest(state.project) !== b.review_digest)
308
+ fail('The saved review set changed; diagnose before selecting this video');
309
+ const pin = state.project.final_render_id ?? null;
310
+ if (pin !== b.initial_final_render_id && pin !== b.render_id)
311
+ fail('Another version was selected; recovery will not overwrite that choice');
312
+ return state;
313
+ };
314
+ await read();
315
+ for (const role of ['final', 'poster']) {
316
+ const f = b[role];
317
+ const listed = await transport.call('media_list', { brand_id: b.brand_id, scope: 'video_project', scope_id: b.project_id,
318
+ ingredient_key: f.ingredient_key, input_digest: b.input_digest, limit: 100 });
319
+ if (!Array.isArray(listed.items) || listed.next_cursor)
320
+ fail('Uncertain media lookup; no upload was attempted');
321
+ let media = listed.items.find((m) => m.path === f.upload_path && m.input_digest === b.input_digest && m.ingredient_key === f.ingredient_key);
322
+ const receipt = checkpoint.progress[role];
323
+ if (receipt && (!media || media.id !== receipt.media_id))
324
+ fail('Saved media identity changed or disappeared; no upload was attempted');
325
+ if (media && (!ID.test(media.id) || !['pending', 'approved'].includes(media.status) || media.kind !== f.kind))
326
+ fail('Unexpected saved-media state');
327
+ if (media?.status === 'pending') {
328
+ // A PUT/confirm reply may have been lost. Inspect stored bytes first; a missing object
329
+ // is the only reason to request a fresh PUT. Never infer success from a local receipt.
330
+ const pendingId = media.id;
331
+ await read();
332
+ try {
333
+ const result = await transport.call('media_confirm', { brand_id: b.brand_id, media_id: pendingId });
334
+ if (result.media?.id !== pendingId || result.media?.status !== 'approved')
335
+ fail('Upload confirmation is incomplete');
336
+ }
337
+ catch (error) {
338
+ if (!(error instanceof video_save_mcp_1.SaveToolError) || error.code !== 'not_found')
339
+ throw error;
340
+ const again = await transport.call('media_list', { brand_id: b.brand_id, scope: 'video_project', scope_id: b.project_id,
341
+ ingredient_key: f.ingredient_key, input_digest: b.input_digest, limit: 100 });
342
+ if (again.next_cursor || !again.items?.some((m) => m.id === pendingId && m.path === f.upload_path && m.status === 'pending'))
343
+ fail('Pending media disappeared; diagnose before refreshing its upload');
344
+ // The scoped pending row still exists and storage has no object. A fresh URL/row
345
+ // at the identical render path is safe; this does not generate a replacement.
346
+ media = undefined;
347
+ delete checkpoint.progress[role];
348
+ await writeCheckpoint(target, checkpoint);
349
+ }
350
+ if (media) {
351
+ const refreshed = await transport.call('media_list', { brand_id: b.brand_id, scope: 'video_project', scope_id: b.project_id,
352
+ ingredient_key: f.ingredient_key, input_digest: b.input_digest, limit: 100 });
353
+ if (refreshed.next_cursor)
354
+ fail('Uncertain confirmed-media lookup');
355
+ media = refreshed.items?.find((m) => m.id === pendingId);
356
+ if (!media)
357
+ fail('Confirmed media disappeared');
358
+ }
359
+ }
360
+ if (!media) {
361
+ const state = await read();
362
+ if (state.render.status === 'complete')
363
+ fail('Completed render has missing media; diagnose without replacing its files');
364
+ const result = await transport.call('media_upload', { brand_id: b.brand_id, scope: 'video_project', scope_id: b.project_id,
365
+ kind: f.kind, path: f.upload_path, ingredient_key: f.ingredient_key, input_digest: b.input_digest,
366
+ source: { type: 'file', filename: path.basename(f.upload_path), content_type: f.mime } });
367
+ if (typeof result.media?.id !== 'string' || !ID.test(result.media.id) || result.upload?.method !== 'PUT' ||
368
+ !sameUrl(result.upload.render_file_url, durableUrl(b, f)) || !object(result.upload.required_headers))
369
+ fail('Invalid upload receipt');
370
+ checkpoint.progress[role] = { media_id: result.media.id, stage: 'requested' };
371
+ await writeCheckpoint(target, checkpoint);
372
+ const bytes = await (0, promises_1.readFile)(f.path);
373
+ if (bytes.length !== f.bytes || sha(bytes) !== f.sha256)
374
+ fail('Finished file changed before upload');
375
+ await read();
376
+ await transport.put(result.upload.url, result.upload.required_headers, bytes);
377
+ checkpoint.progress[role].stage = 'put';
378
+ await writeCheckpoint(target, checkpoint);
379
+ await read();
380
+ const confirmed = await transport.call('media_confirm', { brand_id: b.brand_id, media_id: result.media.id });
381
+ if (confirmed.media?.id !== result.media.id || confirmed.media?.status !== 'approved')
382
+ fail('Upload confirmation is incomplete');
383
+ const refreshed = await transport.call('media_list', { brand_id: b.brand_id, scope: 'video_project', scope_id: b.project_id,
384
+ ingredient_key: f.ingredient_key, input_digest: b.input_digest, limit: 100 });
385
+ if (refreshed.next_cursor)
386
+ fail('Uncertain confirmed-media lookup');
387
+ media = refreshed.items?.find((m) => m.id === result.media.id);
388
+ }
389
+ if (!media || media.status !== 'approved' || media.path !== f.upload_path || media.kind !== f.kind ||
390
+ media.input_digest !== b.input_digest || media.ingredient_key !== f.ingredient_key ||
391
+ media.bytes !== f.bytes || sha(await transport.download(media.url, MAX_BYTES)) !== f.sha256)
392
+ fail('Stored bytes do not match the quality-checked final/poster');
393
+ checkpoint.progress[role] = { media_id: media.id, stage: 'confirmed' };
394
+ await writeCheckpoint(target, checkpoint);
395
+ }
396
+ let state = await read();
397
+ if (state.render.status !== 'complete') {
398
+ checkpoint.progress.completion = 'unknown';
399
+ await writeCheckpoint(target, checkpoint);
400
+ await transport.call('video_render_run', { brand_id: b.brand_id, project_id: b.project_id,
401
+ render: { render_id: b.render_id, status: 'complete', workflow_stage: 'ready', quality_status: 'passed',
402
+ quality_report: b.quality_report, output_url: durableUrl(b, b.final), thumbnail_url: durableUrl(b, b.poster) } });
403
+ state = await read();
404
+ }
405
+ if (state.render.status !== 'complete' || state.render.quality_status !== 'passed' ||
406
+ digest(quality(state.render.quality_report)) !== digest(b.quality_report) ||
407
+ !sameUrl(state.render.render_file_path ?? state.render.output_url, durableUrl(b, b.final)) ||
408
+ !sameUrl(state.render.thumbnail_file_path ?? state.render.thumbnail_url, durableUrl(b, b.poster)))
409
+ fail('Completed render does not match this checkpoint');
410
+ checkpoint.progress.completion = 'complete';
411
+ await writeCheckpoint(target, checkpoint);
412
+ if (state.project.final_render_id !== b.render_id) {
413
+ checkpoint.progress.selection = 'unknown';
414
+ await writeCheckpoint(target, checkpoint);
415
+ try {
416
+ await transport.call('video_project_upsert', { brand_id: b.brand_id, project_id: b.project_id,
417
+ patch: { final_render_id: b.render_id, final_selection_guard: {
418
+ expected_final_render_id: state.project.final_render_id ?? null, expected_review_digest: b.review_digest,
419
+ } } });
420
+ }
421
+ catch (error) {
422
+ if (error instanceof video_save_mcp_1.SaveToolError && error.code === 'final_selection_conflict') {
423
+ fail('Another version was selected or the saved review changed; recovery stopped without overwriting that choice. Read the current project before continuing.');
424
+ }
425
+ throw error;
426
+ }
427
+ state = await read();
428
+ }
429
+ if (state.project.final_render_id !== b.render_id)
430
+ fail('Final selection was not saved; reconnect and resume the same checkpoint');
431
+ checkpoint.progress.selection = 'selected';
432
+ await writeCheckpoint(target, checkpoint);
433
+ return checkpoint;
434
+ }
435
+ finally {
436
+ await lock.close();
437
+ await (0, promises_1.unlink)(`${target}.lock`);
438
+ }
439
+ }
440
+ //# sourceMappingURL=video-save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-save.js","sourceRoot":"","sources":["../../src/lib/video-save.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function run(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAuBA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BvD"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = run;
4
+ const commander_1 = require("commander");
5
+ const install_1 = require("./commands/install");
6
+ const login_1 = require("./commands/login");
7
+ const logout_1 = require("./commands/logout");
8
+ const whoami_1 = require("./commands/whoami");
9
+ const update_1 = require("./commands/update");
10
+ const credits_1 = require("./commands/credits");
11
+ const search_1 = require("./commands/search");
12
+ const fetch_1 = require("./commands/fetch");
13
+ const env_1 = require("./commands/env");
14
+ const call_1 = require("./commands/call");
15
+ const tool_1 = require("./commands/tool");
16
+ const orthogonal_1 = require("./commands/orthogonal");
17
+ const styles_1 = require("./commands/styles");
18
+ const formats_1 = require("./commands/formats");
19
+ const doctor_1 = require("./commands/doctor");
20
+ const log_1 = require("./commands/log");
21
+ const video_local_1 = require("./commands/video-local");
22
+ const video_save_1 = require("./commands/video-save");
23
+ const version_1 = require("./version");
24
+ const skills_1 = require("./commands/skills");
25
+ const launch_1 = require("./commands/launch");
26
+ async function run(args) {
27
+ const program = new commander_1.Command();
28
+ program
29
+ .name('gooseworks')
30
+ .description('GooseWorks CLI — give your coding agent real data tools')
31
+ .version((0, version_1.getVersion)())
32
+ .option('--env <environment>', 'production (default) or staging; may appear before or after the command');
33
+ program.addCommand(install_1.installCommand);
34
+ program.addCommand(launch_1.launchCommand);
35
+ program.addCommand(login_1.loginCommand);
36
+ program.addCommand(logout_1.logoutCommand);
37
+ program.addCommand(whoami_1.whoamiCommand);
38
+ program.addCommand(update_1.updateCommand);
39
+ program.addCommand(skills_1.skillsCommand);
40
+ program.addCommand(credits_1.creditsCommand);
41
+ program.addCommand(search_1.searchCommand);
42
+ program.addCommand(fetch_1.fetchCommand);
43
+ program.addCommand(env_1.envCommand);
44
+ program.addCommand(call_1.callCommand);
45
+ program.addCommand(tool_1.toolCommand);
46
+ program.addCommand(orthogonal_1.orthogonalCommand);
47
+ program.addCommand(styles_1.stylesCommand);
48
+ program.addCommand(formats_1.formatsCommand);
49
+ program.addCommand(doctor_1.doctorCommand);
50
+ program.addCommand(log_1.logCommand);
51
+ // Hidden: serves only paused server video orders (see commands/video-local.ts).
52
+ program.addCommand(video_local_1.videoLocalCommand, { hidden: true });
53
+ program.addCommand(video_save_1.videoSaveCommand);
54
+ await program.parseAsync(args, { from: 'user' });
55
+ }
56
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":";;AAuBA,kBA+BC;AAtDD,yCAAoC;AACpC,gDAAoD;AACpD,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,0CAA8C;AAC9C,sDAA0D;AAC1D,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,wCAA4C;AAC5C,wDAA2D;AAC3D,sDAAyD;AACzD,uCAAuC;AACvC,8CAAkD;AAClD,8CAAkD;AAE3C,KAAK,UAAU,GAAG,CAAC,IAAc;IACxC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CAAC,yDAAyD,CAAC;SACtE,OAAO,CAAC,IAAA,oBAAU,GAAE,CAAC;SACrB,MAAM,CAAC,qBAAqB,EAAE,yEAAyE,CAAC,CAAC;IAE5G,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;IAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;IAC/B,gFAAgF;IAChF,OAAO,CAAC,UAAU,CAAC,+BAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,UAAU,CAAC,6BAAgB,CAAC,CAAC;IAErC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACjD,CAAC"}