gooseworks 0.4.2 → 0.5.0-dev.3.8661ef81

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 (130) hide show
  1. package/README.md +69 -21
  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/oauth-server.d.ts.map +1 -1
  11. package/dist/auth/oauth-server.js +18 -2
  12. package/dist/auth/oauth-server.js.map +1 -1
  13. package/dist/commands/doctor.d.ts +29 -5
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +117 -63
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/fetch.d.ts +1 -0
  18. package/dist/commands/fetch.d.ts.map +1 -1
  19. package/dist/commands/fetch.js +64 -29
  20. package/dist/commands/fetch.js.map +1 -1
  21. package/dist/commands/formats.js +2 -2
  22. package/dist/commands/formats.js.map +1 -1
  23. package/dist/commands/graphics/publish-flow.js +1 -1
  24. package/dist/commands/graphics/publish-flow.js.map +1 -1
  25. package/dist/commands/install.d.ts.map +1 -1
  26. package/dist/commands/install.js +57 -4
  27. package/dist/commands/install.js.map +1 -1
  28. package/dist/commands/launch.d.ts +3 -0
  29. package/dist/commands/launch.d.ts.map +1 -0
  30. package/dist/commands/launch.js +35 -0
  31. package/dist/commands/launch.js.map +1 -0
  32. package/dist/commands/login.d.ts.map +1 -1
  33. package/dist/commands/login.js +15 -3
  34. package/dist/commands/login.js.map +1 -1
  35. package/dist/commands/logout.d.ts.map +1 -1
  36. package/dist/commands/logout.js +3 -1
  37. package/dist/commands/logout.js.map +1 -1
  38. package/dist/commands/skills.d.ts +50 -0
  39. package/dist/commands/skills.d.ts.map +1 -0
  40. package/dist/commands/skills.js +160 -0
  41. package/dist/commands/skills.js.map +1 -0
  42. package/dist/commands/styles.js +2 -2
  43. package/dist/commands/styles.js.map +1 -1
  44. package/dist/commands/update.d.ts.map +1 -1
  45. package/dist/commands/update.js +37 -6
  46. package/dist/commands/update.js.map +1 -1
  47. package/dist/commands/video-local.d.ts +9 -0
  48. package/dist/commands/video-local.d.ts.map +1 -0
  49. package/dist/commands/video-local.js +83 -0
  50. package/dist/commands/video-local.js.map +1 -0
  51. package/dist/commands/video-save.d.ts +3 -0
  52. package/dist/commands/video-save.d.ts.map +1 -0
  53. package/dist/commands/video-save.js +83 -0
  54. package/dist/commands/video-save.js.map +1 -0
  55. package/dist/config.d.ts.map +1 -1
  56. package/dist/config.js +11 -3
  57. package/dist/config.js.map +1 -1
  58. package/dist/environment.d.ts +9 -0
  59. package/dist/environment.d.ts.map +1 -0
  60. package/dist/environment.js +103 -0
  61. package/dist/environment.js.map +1 -0
  62. package/dist/index.js +12 -38
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/graphics-cache.d.ts.map +1 -1
  65. package/dist/lib/graphics-cache.js +2 -2
  66. package/dist/lib/graphics-cache.js.map +1 -1
  67. package/dist/lib/video-local-captions.d.ts +83 -0
  68. package/dist/lib/video-local-captions.d.ts.map +1 -0
  69. package/dist/lib/video-local-captions.js +261 -0
  70. package/dist/lib/video-local-captions.js.map +1 -0
  71. package/dist/lib/video-local-runtime.d.ts +8 -0
  72. package/dist/lib/video-local-runtime.d.ts.map +1 -0
  73. package/dist/lib/video-local-runtime.js +201 -0
  74. package/dist/lib/video-local-runtime.js.map +1 -0
  75. package/dist/lib/video-save-mcp.d.ts +9 -0
  76. package/dist/lib/video-save-mcp.d.ts.map +1 -0
  77. package/dist/lib/video-save-mcp.js +162 -0
  78. package/dist/lib/video-save-mcp.js.map +1 -0
  79. package/dist/lib/video-save.d.ts +77 -0
  80. package/dist/lib/video-save.d.ts.map +1 -0
  81. package/dist/lib/video-save.js +440 -0
  82. package/dist/lib/video-save.js.map +1 -0
  83. package/dist/program.d.ts +2 -0
  84. package/dist/program.d.ts.map +1 -0
  85. package/dist/program.js +54 -0
  86. package/dist/program.js.map +1 -0
  87. package/dist/skills/custom-video-skill.d.ts +3 -0
  88. package/dist/skills/custom-video-skill.d.ts.map +1 -0
  89. package/dist/skills/custom-video-skill.js +6 -0
  90. package/dist/skills/custom-video-skill.js.map +1 -0
  91. package/dist/skills/installer.d.ts +12 -6
  92. package/dist/skills/installer.d.ts.map +1 -1
  93. package/dist/skills/installer.js +82 -38
  94. package/dist/skills/installer.js.map +1 -1
  95. package/dist/skills/master-skill.d.ts +34 -28
  96. package/dist/skills/master-skill.d.ts.map +1 -1
  97. package/dist/skills/master-skill.js +2181 -858
  98. package/dist/skills/master-skill.js.map +1 -1
  99. package/dist/skills/package-freshness.d.ts +16 -0
  100. package/dist/skills/package-freshness.d.ts.map +1 -0
  101. package/dist/skills/package-freshness.js +36 -0
  102. package/dist/skills/package-freshness.js.map +1 -0
  103. package/dist/skills/releases.d.ts +12 -0
  104. package/dist/skills/releases.d.ts.map +1 -0
  105. package/dist/skills/releases.js +155 -0
  106. package/dist/skills/releases.js.map +1 -0
  107. package/dist/skills/routes.d.ts.map +1 -1
  108. package/dist/skills/routes.js +12 -6
  109. package/dist/skills/routes.js.map +1 -1
  110. package/dist/skills/staging-content.d.ts +3 -0
  111. package/dist/skills/staging-content.d.ts.map +1 -0
  112. package/dist/skills/staging-content.js +12 -0
  113. package/dist/skills/staging-content.js.map +1 -0
  114. package/dist/utils/browser-preflight.d.ts +29 -0
  115. package/dist/utils/browser-preflight.d.ts.map +1 -0
  116. package/dist/utils/browser-preflight.js +338 -0
  117. package/dist/utils/browser-preflight.js.map +1 -0
  118. package/package.json +11 -3
  119. package/skills/goose-ads/SKILL.md +486 -239
  120. package/skills/goose-product-photos/SKILL.md +138 -60
  121. package/skills/goose-video/SKILL.md +537 -259
  122. package/skills/goose-video-local/SKILL.md +1372 -236
  123. package/skills/gooseworks/SKILL.md +300 -32
  124. package/skills/make-custom-video/SKILL.md +697 -0
  125. package/skills/manifest.json +12 -0
  126. package/skills/routes.json +13 -6
  127. package/dist/skills/fetcher.d.ts +0 -18
  128. package/dist/skills/fetcher.d.ts.map +0 -1
  129. package/dist/skills/fetcher.js +0 -118
  130. package/dist/skills/fetcher.js.map +0 -1
@@ -44,18 +44,49 @@ const cursor_1 = require("../agents/cursor");
44
44
  const detect_1 = require("../agents/detect");
45
45
  const master_skill_1 = require("../skills/master-skill");
46
46
  const logger = __importStar(require("../utils/logger"));
47
+ const skills_1 = require("./skills");
48
+ const environment_1 = require("../environment");
49
+ const staging_1 = require("../agents/staging");
47
50
  exports.updateCommand = new commander_1.Command('update')
48
- .description('Update GooseWorks skill to the latest version')
49
- .action(async () => {
51
+ .description('Refresh entry skills from this installed CLI; preserve edited files and saved recipes')
52
+ .option('--overwrite-modified', 'Replace edited or untracked managed entry files after you back them up')
53
+ .option('--project <folder>', 'Required for the staging installation to refresh')
54
+ .action(async (opts) => {
55
+ if ((0, environment_1.getEnvironment)() === 'staging') {
56
+ if (!opts.project)
57
+ throw new Error('Staging update requires --project <folder>');
58
+ const { projectProfile } = await Promise.resolve().then(() => __importStar(require('../agents/staging')));
59
+ const fs = await Promise.resolve().then(() => __importStar(require('node:fs')));
60
+ const manifest = JSON.parse(fs.readFileSync(projectProfile(opts.project).manifest, 'utf8'));
61
+ for (const agent of manifest.agents)
62
+ (0, staging_1.stagingLaunch)(opts.project, agent);
63
+ const results = (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)().map(skill => ({ ...skill, content: (0, staging_1.stagingContent)(skill.content) })), { overwriteModified: opts.overwriteModified });
64
+ if (results.some(result => result.action === 'preserved'))
65
+ throw new Error('Review/back up edited staging entry files before --overwrite-modified');
66
+ (0, staging_1.installStagingProject)(opts.project, manifest.agents);
67
+ logger.done('Staging updated. Close the previous staging session and launch a fresh one.');
68
+ return;
69
+ }
70
+ if (opts.project)
71
+ throw new Error('This is a staging project install. Pass --env staging update --project <folder>.');
50
72
  const creds = (0, credentials_1.getCredentials)();
51
73
  if (!creds) {
52
74
  logger.error('Not logged in. Run "gooseworks login" first.');
53
75
  process.exit(1);
54
76
  }
77
+ const freshness = await (0, skills_1.readEntryFreshnessReport)();
78
+ await (0, skills_1.reportEntrySkillFreshness)(freshness);
79
+ if (freshness.cli === 'outdated') {
80
+ logger.error('Entry refresh refused: upgrade this CLI before installing its bundled instructions. No skill files were changed.');
81
+ process.exit(1);
82
+ return;
83
+ }
55
84
  logger.step(1, 2, 'Updating skills...');
56
- (0, installer_1.removeAllSkills)();
57
- for (const r of (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)(), { force: true })) {
58
- logger.success(`Updated ${r.name} skill`);
85
+ for (const r of (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)(), { overwriteModified: opts.overwriteModified })) {
86
+ if (r.action === 'preserved')
87
+ logger.warn(`Preserved edited or untracked ${r.name}; review/back up before --overwrite-modified.`);
88
+ else
89
+ logger.success(`${r.action === 'installed' ? 'Updated' : 'Kept'} ${r.name} skill`);
59
90
  }
60
91
  logger.step(2, 2, 'Reconfiguring agents...');
61
92
  if ((0, detect_1.isAgentInstalled)('claude')) {
@@ -90,6 +121,6 @@ exports.updateCommand = new commander_1.Command('update')
90
121
  logger.info('Cursor installed but MCP was not previously configured — skipped');
91
122
  }
92
123
  }
93
- logger.done('Update complete!');
124
+ logger.done('Bundled entry refresh complete. Standalone recipes and project-pinned packages were preserved.');
94
125
  });
95
126
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,qDAAqD;AACrD,mDAAiF;AACjF,6CAAmD;AACnD,qDAA0D;AAC1D,2CAAoE;AACpE,6CAA8E;AAC9E,6CAAoD;AACpD,yDAAwD;AACxD,wDAA0C;AAE7B,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,GAAG,IAAA,4BAAc,GAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACxC,IAAA,2BAAe,GAAE,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,IAAA,qCAAyB,EAAC,IAAA,6BAAc,GAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAE7C,IAAI,IAAA,yBAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,IAAA,wBAAe,GAAE,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAE/C,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,IAAA,+BAAkB,GAAE,EAAE,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAA,yBAAgB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,IAAA,sBAAc,GAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,IAAA,yBAAiB,GAAE,EAAE,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAA,yBAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,IAAI,IAAA,kCAAyB,GAAE,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,wBAAe,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Narrow local worker for server-rendered video orders (GOOSE-3718). Those
4
+ * orders are paused (gooseworks-app server-video-orders.ts) and goose-video no
5
+ * longer runs this, so the command is hidden from --help. Kept so it works again
6
+ * if server orders are turned back on; client formats never use it.
7
+ */
8
+ export declare const videoLocalCommand: Command;
9
+ //# sourceMappingURL=video-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-local.d.ts","sourceRoot":"","sources":["../../src/commands/video-local.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,SACuC,CAAC"}
@@ -0,0 +1,83 @@
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.videoLocalCommand = void 0;
37
+ const crypto_1 = require("crypto");
38
+ const path = __importStar(require("path"));
39
+ const commander_1 = require("commander");
40
+ const credentials_1 = require("../auth/credentials");
41
+ const video_local_captions_1 = require("../lib/video-local-captions");
42
+ const video_local_runtime_1 = require("../lib/video-local-runtime");
43
+ const logger = __importStar(require("../utils/logger"));
44
+ const environment_1 = require("../environment");
45
+ /**
46
+ * Narrow local worker for server-rendered video orders (GOOSE-3718). Those
47
+ * orders are paused (gooseworks-app server-video-orders.ts) and goose-video no
48
+ * longer runs this, so the command is hidden from --help. Kept so it works again
49
+ * if server orders are turned back on; client formats never use it.
50
+ */
51
+ exports.videoLocalCommand = new commander_1.Command('video-local')
52
+ .description('Run a server-vetted local video node (experimental)');
53
+ exports.videoLocalCommand.command('captions')
54
+ .description('Claim and run one approved local captions node for a CreativeSpec project')
55
+ .requiredOption('--project-id <id>', 'Existing video project ID')
56
+ .action(async ({ projectId }) => {
57
+ const creds = (0, credentials_1.getCredentials)();
58
+ if (!creds) {
59
+ logger.error('Not logged in. Run "gooseworks login" first.');
60
+ process.exitCode = 1;
61
+ return;
62
+ }
63
+ try {
64
+ const result = await (0, video_local_captions_1.executeNextCaptionClaim)({
65
+ projectId,
66
+ workerId: (0, crypto_1.randomUUID)(),
67
+ workRoot: path.join((0, environment_1.profileRoot)(), 'video-local'),
68
+ transport: (0, video_local_runtime_1.createCaptionTransport)(creds.api_base, creds.api_key),
69
+ runtime: (0, video_local_runtime_1.createCaptionRuntime)(),
70
+ });
71
+ if (!result) {
72
+ logger.info('No eligible captions node is offered for this project. Nothing was rendered or charged.');
73
+ return;
74
+ }
75
+ logger.success(`Completed local captions claim ${result.claimId}. Recovery journal: ${result.journalPath}`);
76
+ }
77
+ catch (error) {
78
+ logger.error(error instanceof Error ? error.message : 'Local captions failed');
79
+ logger.error('Any claimed lease and output remain in the private video-local journal for recovery.');
80
+ process.exitCode = 1;
81
+ }
82
+ });
83
+ //# sourceMappingURL=video-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-local.js","sourceRoot":"","sources":["../../src/commands/video-local.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAoC;AAEpC,2CAA6B;AAC7B,yCAAoC;AACpC,qDAAqD;AACrD,sEAAsE;AACtE,oEAA0F;AAC1F,wDAA0C;AAC1C,gDAA6C;AAE7C;;;;;GAKG;AACU,QAAA,iBAAiB,GAAG,IAAI,mBAAO,CAAC,aAAa,CAAC;KACxD,WAAW,CAAC,qDAAqD,CAAC,CAAC;AAEtE,yBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;KAClC,WAAW,CAAC,2EAA2E,CAAC;KACxF,cAAc,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAyB,EAAE,EAAE;IACrD,MAAM,KAAK,GAAG,IAAA,4BAAc,GAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,8CAAuB,EAAC;YAC3C,SAAS;YACT,QAAQ,EAAE,IAAA,mBAAU,GAAE;YACtB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAA,yBAAW,GAAE,EAAE,aAAa,CAAC;YACjD,SAAS,EAAE,IAAA,4CAAsB,EAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YAChE,OAAO,EAAE,IAAA,0CAAoB,GAAE;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,kCAAkC,MAAM,CAAC,OAAO,uBAAuB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;QACrG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const videoSaveCommand: Command;
3
+ //# sourceMappingURL=video-save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-save.d.ts","sourceRoot":"","sources":["../../src/commands/video-save.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,gBAAgB,SAC6E,CAAC"}
@@ -0,0 +1,83 @@
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.videoSaveCommand = void 0;
37
+ const commander_1 = require("commander");
38
+ const promises_1 = require("fs/promises");
39
+ const path = __importStar(require("path"));
40
+ const credentials_1 = require("../auth/credentials");
41
+ const video_save_1 = require("../lib/video-save");
42
+ const video_save_mcp_1 = require("../lib/video-save-mcp");
43
+ const logger = __importStar(require("../utils/logger"));
44
+ exports.videoSaveCommand = new commander_1.Command('video-save')
45
+ .description('Save an already checked local video; resume interrupted uploads without generating media');
46
+ async function run(checkpoint, manifest) {
47
+ try {
48
+ const creds = (0, credentials_1.getCredentials)();
49
+ if (!creds)
50
+ throw new Error('Run "gooseworks login" and reconnect to the original account before saving');
51
+ const transport = await (0, video_save_mcp_1.createSaveTransport)(creds);
52
+ const target = path.resolve(checkpoint);
53
+ if (manifest) {
54
+ const input = JSON.parse(await (0, promises_1.readFile)(path.resolve(manifest), 'utf8'));
55
+ await (0, video_save_1.prepareSave)(target, input, transport);
56
+ logger.success(`Finished-video checkpoint saved: ${target}. Run gooseworks video-save resume --checkpoint "${target}".`);
57
+ }
58
+ else {
59
+ const result = await (0, video_save_1.resumeSave)(target, transport);
60
+ logger.success(`Saved and selected the same render ${result.binding.render_id}. Local video: ${result.binding.final.path}`);
61
+ }
62
+ }
63
+ catch (error) {
64
+ logger.error(error instanceof Error ? error.message : 'Finished-video saving was interrupted');
65
+ logger.info('Keep the finished files and checkpoint. No video generation was requested.');
66
+ const saved = await (0, video_save_1.loadCheckpoint)(path.resolve(checkpoint)).catch(() => null);
67
+ if (saved) {
68
+ logger.info(`Local final recorded in the checkpoint: ${saved.binding.final.path}`);
69
+ logger.info(`Recovery checkpoint: ${path.resolve(checkpoint)}`);
70
+ }
71
+ process.exitCode = 1;
72
+ }
73
+ }
74
+ exports.videoSaveCommand.command('prepare')
75
+ .description('Bind the completed final/poster and existing passing quality evidence before uploading')
76
+ .requiredOption('--manifest <file>', 'Finished-video manifest JSON (no credentials)')
77
+ .requiredOption('--checkpoint <file>', 'Durable local checkpoint path')
78
+ .action((opts) => run(opts.checkpoint, opts.manifest));
79
+ exports.videoSaveCommand.command('resume')
80
+ .description('Read current state, then finish only missing save steps on the same render')
81
+ .requiredOption('--checkpoint <file>', 'Existing finished-video checkpoint')
82
+ .action((opts) => run(opts.checkpoint));
83
+ //# sourceMappingURL=video-save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-save.js","sourceRoot":"","sources":["../../src/commands/video-save.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,0CAAuC;AACvC,2CAA6B;AAC7B,qDAAqD;AACrD,kDAA+F;AAC/F,0DAA4D;AAC5D,wDAA0C;AAE7B,QAAA,gBAAgB,GAAG,IAAI,mBAAO,CAAC,YAAY,CAAC;KACtD,WAAW,CAAC,0FAA0F,CAAC,CAAC;AAE3G,KAAK,UAAU,GAAG,CAAC,UAAkB,EAAE,QAAiB;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,4BAAc,GAAE,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC1G,MAAM,SAAS,GAAG,MAAM,IAAA,oCAAmB,EAAC,KAAK,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAiB,CAAC;YACzF,MAAM,IAAA,wBAAW,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,oCAAoC,MAAM,oDAAoD,MAAM,IAAI,CAAC,CAAC;QAC3H,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,sCAAsC,MAAM,CAAC,OAAO,CAAC,SAAS,kBAAkB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,IAAA,2BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,2CAA2C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AACD,wBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;KAChC,WAAW,CAAC,wFAAwF,CAAC;KACrG,cAAc,CAAC,mBAAmB,EAAE,+CAA+C,CAAC;KACpF,cAAc,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KACtE,MAAM,CAAC,CAAC,IAA8C,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnG,wBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC/B,WAAW,CAAC,4EAA4E,CAAC;KACzF,cAAc,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KAC3E,MAAM,CAAC,CAAC,IAA4B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ,QAAiE,CAAC;AAKvF,eAAO,MAAM,YAAY,QAAsE,CAAC;AAGhG,eAAO,MAAM,OAAO,QAAmE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,QAAQ,QAA0I,CAAC;AAMhK,eAAO,MAAM,YAAY,QAA+I,CAAC;AAQzK,eAAO,MAAM,OAAO,QAA2G,CAAC"}
package/dist/config.js CHANGED
@@ -9,13 +9,21 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.HUB_URL = exports.FRONTEND_URL = exports.API_BASE = void 0;
12
- exports.API_BASE = process.env.GOOSEWORKS_API_BASE || 'https://api.gooseworks.ai';
12
+ const environment_1 = require("./environment");
13
+ exports.API_BASE = process.env.GOOSEWORKS_API_BASE || ((0, environment_1.getEnvironment)() === 'staging' ? 'https://api.staging.gooseworks.ai' : 'https://api.gooseworks.ai');
14
+ (0, environment_1.assertConnection)(exports.API_BASE, 'api');
13
15
  // The GTM web app (app.gooseworks.ai) is being sunset; `gw auth` now opens the
14
16
  // Goose Growth app (ads-frontend) at make.gooseworks.ai/cli/auth, which is a
15
17
  // straight port of the old CLI login page. Old published CLI versions still hit
16
18
  // app.gooseworks.ai and are handled by the sunset redirect layer.
17
- exports.FRONTEND_URL = process.env.GOOSEWORKS_FRONTEND_URL || 'https://make.gooseworks.ai';
19
+ exports.FRONTEND_URL = process.env.GOOSEWORKS_FRONTEND_URL || ((0, environment_1.getEnvironment)() === 'staging' ? 'https://app.staging.gooseworks.ai' : 'https://make.gooseworks.ai');
20
+ if ((0, environment_1.getEnvironment)() === 'staging') {
21
+ const url = new URL(exports.FRONTEND_URL);
22
+ if (url.protocol !== 'https:' || !url.hostname.endsWith('.staging.gooseworks.ai') || url.username || url.password)
23
+ throw new Error('Staging sign-in must use the staging frontend');
24
+ }
18
25
  // Public graphics hub (skills + formats catalog). Distinct host from FRONTEND_URL:
19
26
  // `app.gooseworks.ai` has no /styles or /formats routes — those live on skills.gooseworks.ai.
20
- exports.HUB_URL = process.env.GOOSEWORKS_HUB_URL || 'https://skills.gooseworks.ai';
27
+ // No staging public hub is deployed. Do not advertise a production catalog link.
28
+ exports.HUB_URL = (0, environment_1.getEnvironment)() === 'staging' ? '' : (process.env.GOOSEWORKS_HUB_URL || 'https://skills.gooseworks.ai');
21
29
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEU,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,2BAA2B,CAAC;AACvF,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,kEAAkE;AACrD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,4BAA4B,CAAC;AAChG,mFAAmF;AACnF,8FAA8F;AACjF,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,8BAA8B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,+CAAiE;AAEpD,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAA,4BAAc,GAAE,KAAK,SAAS,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;AAChK,IAAA,8BAAgB,EAAC,gBAAQ,EAAE,KAAK,CAAC,CAAC;AAClC,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,kEAAkE;AACrD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,IAAA,4BAAc,GAAE,KAAK,SAAS,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;AACzK,IAAI,IAAA,4BAAc,GAAE,KAAK,SAAS,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,oBAAY,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACtL,CAAC;AACD,mFAAmF;AACnF,8FAA8F;AAC9F,iFAAiF;AACpE,QAAA,OAAO,GAAG,IAAA,4BAAc,GAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type GooseEnvironment = 'production' | 'staging';
2
+ export declare function selectEnvironment(value: string): void;
3
+ export declare function getEnvironment(): GooseEnvironment;
4
+ export declare function profileRoot(): string;
5
+ export declare function sourceBranch(): 'main' | 'dev';
6
+ /** Bootstrap before importing command modules, whose defaults read config. */
7
+ export declare function consumeEnvironment(args: string[]): string[];
8
+ export declare function assertConnection(value: string, kind: 'api' | 'mcp'): void;
9
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AAGxD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGrD;AACD,wBAAgB,cAAc,IAAI,gBAAgB,CAAqB;AACvE,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AACD,wBAAgB,YAAY,IAAI,MAAM,GAAG,KAAK,CAAoD;AAElG,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgB3D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAazE"}
@@ -0,0 +1,103 @@
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.selectEnvironment = selectEnvironment;
37
+ exports.getEnvironment = getEnvironment;
38
+ exports.profileRoot = profileRoot;
39
+ exports.sourceBranch = sourceBranch;
40
+ exports.consumeEnvironment = consumeEnvironment;
41
+ exports.assertConnection = assertConnection;
42
+ const os = __importStar(require("os"));
43
+ const path = __importStar(require("node:path"));
44
+ let selected = 'production';
45
+ function selectEnvironment(value) {
46
+ if (value !== 'production' && value !== 'staging')
47
+ throw new Error('--env must be production or staging');
48
+ selected = value;
49
+ }
50
+ function getEnvironment() { return selected; }
51
+ function profileRoot() {
52
+ // A launched agent has a different home, but uses the same selected Goose login.
53
+ return path.join(process.env.GOOSEWORKS_USER_HOME || os.homedir(), '.gooseworks', 'profiles', selected);
54
+ }
55
+ function sourceBranch() { return selected === 'staging' ? 'dev' : 'main'; }
56
+ /** Bootstrap before importing command modules, whose defaults read config. */
57
+ function consumeEnvironment(args) {
58
+ const result = [];
59
+ let value;
60
+ for (let i = 0; i < args.length; i++) {
61
+ const arg = args[i];
62
+ if (arg === '--') {
63
+ result.push(...args.slice(i));
64
+ break;
65
+ }
66
+ if (arg === '--env' || arg.startsWith('--env=')) {
67
+ if (value !== undefined)
68
+ throw new Error('Pass --env only once');
69
+ value = arg === '--env' ? args[++i] : arg.slice(6);
70
+ if (!value)
71
+ throw new Error('--env requires production or staging');
72
+ }
73
+ else
74
+ result.push(arg);
75
+ }
76
+ // A staging launcher pins child commands too; an explicit production override is refused.
77
+ const pinned = process.env.GOOSEWORKS_SESSION_ENV;
78
+ if (pinned && value && value !== pinned)
79
+ throw new Error('This agent session is pinned to staging. Start a separate production session.');
80
+ selectEnvironment(value || pinned || 'production');
81
+ return result;
82
+ }
83
+ function assertConnection(value, kind) {
84
+ const url = new URL(value);
85
+ if (url.username || url.password || url.search || url.hash)
86
+ throw new Error(`Invalid ${kind} connection URL`);
87
+ const local = ['localhost', '127.0.0.1', '[::1]'].includes(url.hostname);
88
+ if (local && selected === 'production' && ['http:', 'https:'].includes(url.protocol))
89
+ return;
90
+ if (url.protocol !== 'https:')
91
+ throw new Error(`${kind} connection must use HTTPS`);
92
+ const staged = url.hostname.endsWith('.staging.gooseworks.ai');
93
+ if (selected === 'staging' ? !staged : staged)
94
+ throw new Error(`${kind} connection does not match --env ${selected}. Sign in to that environment again.`);
95
+ const allowed = kind === 'api'
96
+ ? ['api.gooseworks.ai', 'app.gooseworks.ai', 'api.staging.gooseworks.ai']
97
+ : ['mcp.gooseworks.ai', 'sandbox-mcp.gooseworks.ai', 'mcp.staging.gooseworks.ai'];
98
+ if (!allowed.includes(url.hostname))
99
+ throw new Error(`Unrecognized ${kind} connection host`);
100
+ if (kind === 'api' && url.pathname !== '/' && url.pathname !== '')
101
+ throw new Error('API base must be an origin');
102
+ }
103
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,42 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
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 orthogonal_1 = require("./commands/orthogonal");
16
- const styles_1 = require("./commands/styles");
17
- const formats_1 = require("./commands/formats");
18
- const doctor_1 = require("./commands/doctor");
19
- const log_1 = require("./commands/log");
20
- const version_1 = require("./version");
21
- const program = new commander_1.Command();
22
- program
23
- .name('gooseworks')
24
- .description('GooseWorks CLI — give your coding agent real data tools')
25
- .version((0, version_1.getVersion)());
26
- program.addCommand(install_1.installCommand);
27
- program.addCommand(login_1.loginCommand);
28
- program.addCommand(logout_1.logoutCommand);
29
- program.addCommand(whoami_1.whoamiCommand);
30
- program.addCommand(update_1.updateCommand);
31
- program.addCommand(credits_1.creditsCommand);
32
- program.addCommand(search_1.searchCommand);
33
- program.addCommand(fetch_1.fetchCommand);
34
- program.addCommand(env_1.envCommand);
35
- program.addCommand(call_1.callCommand);
36
- program.addCommand(orthogonal_1.orthogonalCommand);
37
- program.addCommand(styles_1.stylesCommand);
38
- program.addCommand(formats_1.formatsCommand);
39
- program.addCommand(doctor_1.doctorCommand);
40
- program.addCommand(log_1.logCommand);
41
- program.parse();
4
+ const environment_1 = require("./environment");
5
+ async function main() {
6
+ try {
7
+ const args = (0, environment_1.consumeEnvironment)(process.argv.slice(2));
8
+ await require('./program').run(args);
9
+ }
10
+ catch (error) {
11
+ console.error(error instanceof Error ? error.message : 'GooseWorks failed');
12
+ process.exitCode = 1;
13
+ }
14
+ }
15
+ void main();
42
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,gDAAoD;AACpD,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,sDAA0D;AAC1D,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,wCAA4C;AAC5C,uCAAuC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;AAEzB,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,+CAAmD;AAEnD,KAAK,UAAU,IAAI;IACnB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,gCAAkB,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC5E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACD,CAAC;AACD,KAAK,IAAI,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphics-cache.d.ts","sourceRoot":"","sources":["../../src/lib/graphics-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAsBpC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,UAAU,GAAG,IAAI,CAcnB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI,CAeN;AAQD,kEAAkE;AAClE,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"graphics-cache.d.ts","sourceRoot":"","sources":["../../src/lib/graphics-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAsBpC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,UAAU,GAAG,IAAI,CAcnB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI,CAeN;AAQD,kEAAkE;AAClE,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -51,11 +51,11 @@ exports.writeCache = writeCache;
51
51
  exports.getCacheRoot = getCacheRoot;
52
52
  const fs = __importStar(require("fs"));
53
53
  const path = __importStar(require("path"));
54
- const os = __importStar(require("os"));
55
54
  const graphics_manifest_1 = require("./graphics-manifest");
55
+ const environment_1 = require("../environment");
56
56
  function getCacheRootInternal() {
57
57
  return (process.env.GOOSEWORKS_GRAPHICS_CACHE_DIR ||
58
- path.join(os.homedir(), '.gooseworks', 'cache', 'graphics'));
58
+ path.join((0, environment_1.profileRoot)(), 'cache', 'graphics'));
59
59
  }
60
60
  /**
61
61
  * Returns the cache file path for a slug, or null if the slug fails the
@@ -1 +1 @@
1
- {"version":3,"file":"graphics-cache.js","sourceRoot":"","sources":["../../src/lib/graphics-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphics-cache.js","sourceRoot":"","sources":["../../src/lib/graphics-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ export declare const MAX_CAPTION_SOURCE_BYTES: number;
2
+ export interface CaptionsPackage {
3
+ version: 1;
4
+ operation: 'captions';
5
+ source_video_url: string;
6
+ source_video_sha256: string;
7
+ ass_text: string;
8
+ edl: {
9
+ width: number;
10
+ height: number;
11
+ segments: Array<{
12
+ dur_s: number;
13
+ }>;
14
+ };
15
+ [key: string]: unknown;
16
+ }
17
+ export interface CaptionClaim {
18
+ claim_id: string;
19
+ lease_token: string;
20
+ lease_expires_at: string;
21
+ package_digest: string;
22
+ package: CaptionsPackage;
23
+ }
24
+ export interface CaptionTransport {
25
+ next(projectId: string, workerId: string): Promise<CaptionClaim | null>;
26
+ status(claimId: string, leaseToken: string): Promise<CaptionClaimStatus>;
27
+ heartbeat(claimId: string, leaseToken: string): Promise<void>;
28
+ complete(claimId: string, leaseToken: string, outputPath: string, sha256: string): Promise<void>;
29
+ }
30
+ export type CaptionClaimStatus = {
31
+ status: 'claimed';
32
+ package_digest: string;
33
+ package: CaptionsPackage;
34
+ lease_expires_at: string;
35
+ } | {
36
+ status: 'completed';
37
+ output_sha256: string;
38
+ output_url: string;
39
+ } | {
40
+ status: 'offered' | 'fallback';
41
+ };
42
+ export interface MediaProbe {
43
+ width: number;
44
+ height: number;
45
+ duration_s: number;
46
+ }
47
+ export interface CaptionRuntime {
48
+ download(url: string, target: string, expectedSha256?: string): Promise<string>;
49
+ preflight(): Promise<string>;
50
+ render(source: string, ass: string, output: string): Promise<void>;
51
+ probe(output: string): Promise<MediaProbe>;
52
+ }
53
+ export type CaptionPhase = 'claimed' | 'downloaded' | 'rendered' | 'completed';
54
+ export interface CaptionJournal {
55
+ claim_id: string;
56
+ project_id: string;
57
+ package_digest: string;
58
+ lease_token: string;
59
+ lease_expires_at: string;
60
+ ffmpeg_version: string;
61
+ phase: CaptionPhase;
62
+ source_sha256?: string;
63
+ output_sha256?: string;
64
+ }
65
+ export declare function validateCaptionClaim(claim: CaptionClaim): {
66
+ expectedDuration: number;
67
+ };
68
+ export declare function sha256File(filePath: string): Promise<string>;
69
+ /** Recover the prior lease/output before asking for new work. Never silently rerender an
70
+ * uncertain completion or let /next hide a still-active claim. */
71
+ export declare function executeNextCaptionClaim(args: {
72
+ projectId: string;
73
+ workerId: string;
74
+ workRoot: string;
75
+ transport: CaptionTransport;
76
+ runtime: CaptionRuntime;
77
+ heartbeatMs?: number;
78
+ }): Promise<{
79
+ claimId: string;
80
+ outputSha256: string;
81
+ journalPath: string;
82
+ } | null>;
83
+ //# sourceMappingURL=video-local-captions.d.ts.map