gooseworks 0.4.4 → 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 (120) hide show
  1. package/README.md +42 -11
  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.map +1 -1
  27. package/dist/commands/doctor.js +17 -8
  28. package/dist/commands/doctor.js.map +1 -1
  29. package/dist/commands/formats.js +2 -2
  30. package/dist/commands/formats.js.map +1 -1
  31. package/dist/commands/graphics/publish-flow.js +1 -1
  32. package/dist/commands/graphics/publish-flow.js.map +1 -1
  33. package/dist/commands/install.d.ts.map +1 -1
  34. package/dist/commands/install.js +101 -34
  35. package/dist/commands/install.js.map +1 -1
  36. package/dist/commands/launch.d.ts +3 -0
  37. package/dist/commands/launch.d.ts.map +1 -0
  38. package/dist/commands/launch.js +35 -0
  39. package/dist/commands/launch.js.map +1 -0
  40. package/dist/commands/login.d.ts +21 -1
  41. package/dist/commands/login.d.ts.map +1 -1
  42. package/dist/commands/login.js +106 -29
  43. package/dist/commands/login.js.map +1 -1
  44. package/dist/commands/logout.d.ts.map +1 -1
  45. package/dist/commands/logout.js +7 -1
  46. package/dist/commands/logout.js.map +1 -1
  47. package/dist/commands/skills.d.ts +16 -0
  48. package/dist/commands/skills.d.ts.map +1 -1
  49. package/dist/commands/skills.js +52 -1
  50. package/dist/commands/skills.js.map +1 -1
  51. package/dist/commands/styles.js +2 -2
  52. package/dist/commands/styles.js.map +1 -1
  53. package/dist/commands/tool.d.ts +17 -0
  54. package/dist/commands/tool.d.ts.map +1 -0
  55. package/dist/commands/tool.js +239 -0
  56. package/dist/commands/tool.js.map +1 -0
  57. package/dist/commands/update.d.ts.map +1 -1
  58. package/dist/commands/update.js +20 -0
  59. package/dist/commands/update.js.map +1 -1
  60. package/dist/commands/video-local.d.ts.map +1 -1
  61. package/dist/commands/video-local.js +2 -2
  62. package/dist/commands/video-local.js.map +1 -1
  63. package/dist/config.d.ts.map +1 -1
  64. package/dist/config.js +14 -3
  65. package/dist/config.js.map +1 -1
  66. package/dist/environment.d.ts +9 -0
  67. package/dist/environment.d.ts.map +1 -0
  68. package/dist/environment.js +105 -0
  69. package/dist/environment.js.map +1 -0
  70. package/dist/index.js +12 -45
  71. package/dist/index.js.map +1 -1
  72. package/dist/lib/graphics-cache.d.ts.map +1 -1
  73. package/dist/lib/graphics-cache.js +2 -2
  74. package/dist/lib/graphics-cache.js.map +1 -1
  75. package/dist/lib/mcp-client.d.ts +53 -0
  76. package/dist/lib/mcp-client.d.ts.map +1 -0
  77. package/dist/lib/mcp-client.js +196 -0
  78. package/dist/lib/mcp-client.js.map +1 -0
  79. package/dist/program.d.ts +2 -0
  80. package/dist/program.d.ts.map +1 -0
  81. package/dist/program.js +56 -0
  82. package/dist/program.js.map +1 -0
  83. package/dist/skills/custom-video-skill.d.ts +1 -1
  84. package/dist/skills/custom-video-skill.d.ts.map +1 -1
  85. package/dist/skills/custom-video-skill.js +1 -1
  86. package/dist/skills/custom-video-skill.js.map +1 -1
  87. package/dist/skills/installer.d.ts.map +1 -1
  88. package/dist/skills/installer.js +42 -24
  89. package/dist/skills/installer.js.map +1 -1
  90. package/dist/skills/master-skill.d.ts +12 -9
  91. package/dist/skills/master-skill.d.ts.map +1 -1
  92. package/dist/skills/master-skill.js +857 -372
  93. package/dist/skills/master-skill.js.map +1 -1
  94. package/dist/skills/releases.d.ts +1 -1
  95. package/dist/skills/releases.d.ts.map +1 -1
  96. package/dist/skills/releases.js +8 -5
  97. package/dist/skills/releases.js.map +1 -1
  98. package/dist/skills/routes.js +8 -8
  99. package/dist/skills/routes.js.map +1 -1
  100. package/dist/skills/staging-content.d.ts +3 -0
  101. package/dist/skills/staging-content.d.ts.map +1 -0
  102. package/dist/skills/staging-content.js +12 -0
  103. package/dist/skills/staging-content.js.map +1 -0
  104. package/dist/utils/http.d.ts +7 -1
  105. package/dist/utils/http.d.ts.map +1 -1
  106. package/dist/utils/http.js +5 -1
  107. package/dist/utils/http.js.map +1 -1
  108. package/package.json +12 -4
  109. package/skills/goose-ads/SKILL.md +386 -224
  110. package/skills/goose-product-photos/SKILL.md +107 -58
  111. package/skills/goose-video/SKILL.md +300 -36
  112. package/skills/goose-video-local/SKILL.md +239 -31
  113. package/skills/gooseworks/SKILL.md +133 -26
  114. package/skills/make-custom-video/SKILL.md +256 -11
  115. package/skills/manifest.json +7 -7
  116. package/skills/routes.json +8 -8
  117. package/dist/skills/fetcher.d.ts +0 -18
  118. package/dist/skills/fetcher.d.ts.map +0 -1
  119. package/dist/skills/fetcher.js +0 -118
  120. package/dist/skills/fetcher.js.map +0 -1
@@ -47,15 +47,16 @@ const path = __importStar(require("path"));
47
47
  const os = __importStar(require("os"));
48
48
  const names_1 = require("./names");
49
49
  const releases_1 = require("./releases");
50
- const SKILLS_BASE = path.join(os.homedir(), '.agents', 'skills');
51
- const GOOSE_SKILLS_TREE_URL = 'https://api.github.com/repos/gooseworks-ai/goose-skills/git/trees/main?recursive=1';
52
- const GOOSE_SKILLS_RAW_BASE = 'https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main';
50
+ const environment_1 = require("../environment");
51
+ const staging_content_1 = require("./staging-content");
52
+ // Production keeps its existing discovery path. Staging is never auto-discovered.
53
+ function skillsBase() { return (0, environment_1.getEnvironment)() === 'staging' ? path.join((0, environment_1.profileRoot)(), 'skills') : path.join(os.homedir(), '.agents', 'skills'); }
53
54
  const DOWNLOAD_CONCURRENCY = 6;
54
55
  function getSkillsBasePath() {
55
- return SKILLS_BASE;
56
+ return skillsBase();
56
57
  }
57
58
  function installMasterSkill(masterSkillMd) {
58
- const masterDir = path.join(SKILLS_BASE, 'gooseworks');
59
+ const masterDir = path.join(skillsBase(), 'gooseworks');
59
60
  fs.mkdirSync(masterDir, { recursive: true });
60
61
  fs.writeFileSync(path.join(masterDir, 'SKILL.md'), masterSkillMd, 'utf-8');
61
62
  }
@@ -74,7 +75,7 @@ function hasLinkedEntryPath(dir) {
74
75
  .some((file) => fs.lstatSync(file, { throwIfNoEntry: false })?.isSymbolicLink());
75
76
  }
76
77
  function inspectEntrySkill(name) {
77
- const dir = path.join(SKILLS_BASE, name);
78
+ const dir = path.join(skillsBase(), name);
78
79
  try {
79
80
  if (hasLinkedEntryPath(dir))
80
81
  return { modified: true, missing: !fs.existsSync(path.join(dir, 'SKILL.md')) };
@@ -98,7 +99,7 @@ function isEntrySkillFresh(name, content) {
98
99
  }
99
100
  /** Write one entry skill + its freshness stamp. */
100
101
  function installEntrySkill(skill) {
101
- const dir = path.join(SKILLS_BASE, skill.name);
102
+ const dir = path.join(skillsBase(), skill.name);
102
103
  if (hasLinkedEntryPath(dir))
103
104
  throw new Error(`Linked ${skill.name} entry preserved; replace the link yourself before installing.`);
104
105
  fs.mkdirSync(dir, { recursive: true });
@@ -126,27 +127,28 @@ async function installStandaloneSkill(slug, options = {}) {
126
127
  if (!/^[a-z0-9][a-z0-9-]*$/.test(slug)) {
127
128
  throw new Error(`invalid skill slug '${slug}'. Use a slug like goose-graphics.`);
128
129
  }
129
- const targetDir = path.join(SKILLS_BASE, slug);
130
+ const targetDir = path.join(skillsBase(), slug);
130
131
  if (fs.lstatSync(targetDir, { throwIfNoEntry: false }) && !options.overwriteModified) {
131
132
  // Legacy standalone stamps contain no file hashes. Do not guess whether a
132
133
  // saved recipe was edited; explicit replacement is required for those too.
133
134
  throw new Error(`Existing ${slug} package preserved. Back it up and pass --overwrite-modified to replace it; approved projects keep their pinned package.`);
134
135
  }
135
- const tree = await fetchGooseSkillsTree();
136
+ const { tree, revision } = await fetchGooseSkillsTree();
136
137
  const { prefix, files } = findSkillFiles(tree, slug);
137
138
  if (files.length === 0) {
138
139
  const available = getAvailableSkillSlugs(tree);
139
140
  const suffix = available.length > 0 ? ` Available: ${available.join(', ')}` : '';
140
141
  throw new Error(`skill '${slug}' not found.${suffix}`);
141
142
  }
142
- const stagingDir = path.join(SKILLS_BASE, `.${slug}.installing`);
143
+ const stagingDir = path.join(skillsBase(), `.${slug}.installing`);
143
144
  fs.rmSync(stagingDir, { recursive: true, force: true });
144
145
  let completed = 0;
145
146
  try {
146
147
  await withConcurrency(files, DOWNLOAD_CONCURRENCY, async (filePath) => {
147
148
  const relativePath = filePath.slice(prefix.length);
148
149
  const targetPath = path.join(stagingDir, relativePath);
149
- const buffer = await fetchRawSkillFile(filePath);
150
+ const downloaded = await fetchRawSkillFile(filePath, revision);
151
+ const buffer = (0, environment_1.getEnvironment)() === 'staging' && relativePath.endsWith('.md') ? Buffer.from((0, staging_content_1.stagingContent)(downloaded.toString('utf8'))) : downloaded;
150
152
  fs.mkdirSync(path.dirname(targetPath), { recursive: true });
151
153
  fs.writeFileSync(targetPath, buffer);
152
154
  completed++;
@@ -157,6 +159,7 @@ async function installStandaloneSkill(slug, options = {}) {
157
159
  // stamp `removeAllSkills()` leaves it alone — safe, but it then goes stale
158
160
  // until the user re-installs it.
159
161
  fs.writeFileSync(path.join(stagingDir, names_1.STAMP_FILE), `standalone:${slug}`, 'utf-8');
162
+ fs.writeFileSync(path.join(stagingDir, '.gooseworks-source.json'), JSON.stringify({ environment: (0, environment_1.getEnvironment)(), repository: 'gooseworks-ai/goose-skills', branch: (0, environment_1.sourceBranch)(), revision }) + '\n');
160
163
  fs.rmSync(targetDir, { recursive: true, force: true });
161
164
  fs.renameSync(stagingDir, targetDir);
162
165
  }
@@ -199,12 +202,12 @@ function findSkillFiles(tree, slug) {
199
202
  return { prefix: `${slug}/`, files: [] };
200
203
  }
201
204
  function getInstalledSkills() {
202
- if (!fs.existsSync(SKILLS_BASE))
205
+ if (!fs.existsSync(skillsBase()))
203
206
  return [];
204
- return fs.readdirSync(SKILLS_BASE)
205
- .filter((entry) => (0, names_1.isManagedGooseworksSkill)(entry, SKILLS_BASE))
207
+ return fs.readdirSync(skillsBase())
208
+ .filter((entry) => (0, names_1.isManagedGooseworksSkill)(entry, skillsBase()))
206
209
  .filter((entry) => {
207
- const skillMd = path.join(SKILLS_BASE, entry, 'SKILL.md');
210
+ const skillMd = path.join(skillsBase(), entry, 'SKILL.md');
208
211
  return fs.existsSync(skillMd);
209
212
  });
210
213
  }
@@ -218,17 +221,27 @@ function getInstalledSkills() {
218
221
  * An unstamped directory that isn't a known entry slug is NEVER removed.
219
222
  */
220
223
  function removeAllSkills() {
221
- if (!fs.existsSync(SKILLS_BASE))
224
+ if (!fs.existsSync(skillsBase()))
222
225
  return;
223
- const entries = fs.readdirSync(SKILLS_BASE);
226
+ const entries = fs.readdirSync(skillsBase());
224
227
  for (const entry of entries) {
225
- if (!(0, names_1.isManagedGooseworksSkill)(entry, SKILLS_BASE))
228
+ if (!(0, names_1.isManagedGooseworksSkill)(entry, skillsBase()))
226
229
  continue;
227
- fs.rmSync(path.join(SKILLS_BASE, entry), { recursive: true, force: true });
230
+ fs.rmSync(path.join(skillsBase(), entry), { recursive: true, force: true });
228
231
  }
229
232
  }
230
233
  async function fetchGooseSkillsTree() {
231
- const response = await fetch(GOOSE_SKILLS_TREE_URL);
234
+ // A tree SHA is not a commit SHA: raw.githubusercontent requires the commit.
235
+ const commitResponse = await fetch(`https://api.github.com/repos/gooseworks-ai/goose-skills/commits/${(0, environment_1.sourceBranch)()}`);
236
+ if (!commitResponse.ok) {
237
+ if (commitResponse.status === 403 && commitResponse.headers.get('x-ratelimit-remaining') === '0')
238
+ throw new Error(`GitHub API rate-limited this IP.${formatRateLimitWait(commitResponse.headers.get('x-ratelimit-reset'))} Set GITHUB_TOKEN to raise the limit.`);
239
+ throw new Error(`could not resolve standalone skill revision (${commitResponse.status})`);
240
+ }
241
+ const commit = await commitResponse.json();
242
+ if (!commit.sha || !/^[a-f0-9]{40}$/.test(commit.sha))
243
+ throw new Error('Invalid standalone skill commit');
244
+ const response = await fetch(`https://api.github.com/repos/gooseworks-ai/goose-skills/git/trees/${commit.sha}?recursive=1`);
232
245
  if (!response.ok) {
233
246
  if (response.status === 403 && response.headers.get('x-ratelimit-remaining') === '0') {
234
247
  throw new Error(`GitHub API rate-limited this IP.${formatRateLimitWait(response.headers.get('x-ratelimit-reset'))} Set GITHUB_TOKEN to raise the limit.`);
@@ -236,7 +249,9 @@ async function fetchGooseSkillsTree() {
236
249
  throw new Error(`could not list standalone skills from goose-skills (${response.status})`);
237
250
  }
238
251
  const data = await response.json();
239
- return data.tree || [];
252
+ if (data.truncated)
253
+ throw new Error('Incomplete standalone skill tree');
254
+ return { tree: data.tree || [], revision: commit.sha };
240
255
  }
241
256
  function formatRateLimitWait(resetHeader) {
242
257
  if (!resetHeader)
@@ -247,13 +262,16 @@ function formatRateLimitWait(resetHeader) {
247
262
  const minutes = Math.max(1, Math.ceil((resetMs - Date.now()) / 60_000));
248
263
  return ` Try again in about ${minutes} minute${minutes === 1 ? '' : 's'}.`;
249
264
  }
250
- async function fetchRawSkillFile(filePath) {
251
- const url = `${GOOSE_SKILLS_RAW_BASE}/${filePath.split('/').map(encodeURIComponent).join('/')}`;
265
+ async function fetchRawSkillFile(filePath, revision) {
266
+ const url = `https://raw.githubusercontent.com/gooseworks-ai/goose-skills/${revision}/${filePath.split('/').map(encodeURIComponent).join('/')}`;
252
267
  const response = await fetch(url);
253
268
  if (!response.ok) {
254
269
  throw new Error(`could not download ${filePath} from goose-skills (${response.status})`);
255
270
  }
256
- return Buffer.from(await response.arrayBuffer());
271
+ const buffer = Buffer.from(await response.arrayBuffer());
272
+ if (buffer.subarray(0, 100).toString().startsWith('version https://git-lfs.github.com/spec/v1'))
273
+ throw new Error(`Unresolved Git LFS asset in ${filePath}`);
274
+ return buffer;
257
275
  }
258
276
  function getAvailableSkillSlugs(tree) {
259
277
  const slugs = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,8CAEC;AAED,gDAQC;AAmBD,8CAYC;AAGD,8CAEC;AAGD,8CAMC;AAWD,8DAeC;AAED,wDAiDC;AA0CD,gDASC;AAWD,0CAQC;AAtOD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,mCAA+D;AAE/D,yCAA8C;AAE9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACjE,MAAM,qBAAqB,GAAG,oFAAoF,CAAC;AACnH,MAAM,qBAAqB,GAAG,mEAAmE,CAAC;AAClG,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAgB/B,SAAgB,iBAAiB;IAC/B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,kBAAkB,CAAC,aAAqB;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACvD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAChC,aAAa,EACb,OAAO,CACR,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,8EAA8E;AAC9E,qCAAqC;AACrC,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,sFAAsF;AAEtF,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAU,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,IAAI,kBAAkB,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QAC5G,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvG,MAAM,IAAI,GAAG,IAAA,2BAAgB,EAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAU,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;QAC/G,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAgB,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,mDAAmD;AACnD,SAAgB,iBAAiB,CAAC,KAAiB;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,kBAAkB,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,gEAAgE,CAAC,CAAC;IACnI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAU,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACzF,CAAC;AAOD;;;GAGG;AACH,SAAgB,yBAAyB,CACvC,MAAoB,EACpB,EAAE,KAAK,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,KAAuD,EAAE;IAEnG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,IAAA,2BAAgB,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClF,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACjD,CAAC;QACD,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,UAAyC,EAAE;IAE3C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,oCAAoC,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrF,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,0HAA0H,CAAC,CAAC;IAC9J,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAErD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,eAAe,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,aAAa,CAAC,CAAC;IACjE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACjD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACrC,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,iCAAiC;QACjC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAU,CAAC,EAAE,cAAc,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QACnF,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,KAAU,EACV,WAAmB,EACnB,MAAkC;IAElC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAClG,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,GAAG,GAAG,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,OAAO,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,IAAuB,EAAE,IAAY;IAC3D,MAAM,WAAW,GAAG,GAAG,IAAI,WAAW,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACrC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAChG,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO;YACL,MAAM;YACN,KAAK,EAAE,IAAI;iBACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACzE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,SAAgB,kBAAkB;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gCAAwB,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC/D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO;IAExC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAA,gCAAwB,EAAC,KAAK,EAAE,WAAW,CAAC;YAAE,SAAS;QAC5D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,GAAG,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CACb,mCAAmC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,uCAAuC,CACzI,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAwB,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAAC,WAA0B;IACrD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACxE,OAAO,uBAAuB,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAAG,GAAG,qBAAqB,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,uBAAuB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAuB;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QAEzE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"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"}
@@ -32,15 +32,14 @@ export declare function getMasterSkillContent(): string;
32
32
  * formerly `ads-remix`).
33
33
  *
34
34
  * This is the ads domain skill and a THIN WRAPPER over the backend's single ad
35
- * generation workflow (adRemixBatchesService, exposed via the new
36
- * mcp__gooseworks__*_remix_batch / regenerate_creative tools — the SAME workflow
37
- * the ads frontend uses). The skill no longer generates images, manages renders,
38
- * or uploads files itself; the backend reserves credits, runs the cloud pipeline,
39
- * and bills. The skill ALSO routes ad analytics/intelligence to recipe skills
40
- * fetched on demand from goose-skills. It is SEPARATE from the `gooseworks` GTM
41
- * skill — different domain, different tools — and Claude loads it (or the
42
- * `gooseworks` parent router hands off to it) when the user wants to make/edit an
43
- * ad, research a brand for ads, or analyze ad performance.
35
+ * generation workflow (adRemixBatchesService, exposed on the connector as
36
+ * `ads_generate` / `ads_creative_edit` — the SAME workflow the ads frontend
37
+ * uses). The skill never generates images, manages renders, or uploads files
38
+ * itself; the backend reserves credits, runs the cloud pipeline, and bills. The
39
+ * skill ALSO routes ad analytics/intelligence to recipe skills fetched on demand
40
+ * from goose-skills. Chat apps reach it through `catalog_fetch`, so every tool it
41
+ * names must be one the connector lists (QA-26 / VWR14; guarded by
42
+ * tests/skills/master-skill.test.ts against tests/fixtures/connector-tool-names.json).
44
43
  */
45
44
  export declare function getGooseAdsSkillContent(): string;
46
45
  /** Card-aware video entry. Shell execution and widget display are independent. */
@@ -79,6 +78,10 @@ export declare function getGooseVideoLocalSkillContent(): string;
79
78
  * never regenerated it and `install` / `update` / login-refresh never wrote or
80
79
  * refreshed it on a user's machine. Moving the body here makes the registry the
81
80
  * one source: one command emits all four entry skills.
81
+ *
82
+ * QA-26 / VWR14: chat apps fetch it with `catalog_fetch`, so it names only the
83
+ * tools the connector lists (`photos_generate` / `photos_read` / `photos_update`,
84
+ * `brand_read`, `brand_update`, `job_get`).
82
85
  */
83
86
  export declare function getGooseProductPhotosSkillContent(): string;
84
87
  /** Thin GooseWorks connection to the catalog-published production harness. */
@@ -1 +1 @@
1
- {"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqMD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAS7C;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAoT9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAmWhD;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,IAAI,MAAM,CAqMlD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,gBAAgB,mBAAiB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAysCvD;AAGD;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAqI1D;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD"}
1
+ {"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA4XD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAS7C;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgV9C;AA0BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAkbhD;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,IAAI,MAAM,CAiTlD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,gBAAgB,mBAAiB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CA6vCvD;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAmJ1D;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD"}