gooseworks 0.3.15 → 0.4.0
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.
- package/README.md +58 -8
- package/dist/agents/claude.js +1 -1
- package/dist/agents/claude.js.map +1 -1
- package/dist/agents/codex.js +1 -1
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/skill-links.d.ts +7 -2
- package/dist/agents/skill-links.d.ts.map +1 -1
- package/dist/agents/skill-links.js +10 -5
- package/dist/agents/skill-links.js.map +1 -1
- package/dist/auth/attribution.d.ts +14 -0
- package/dist/auth/attribution.d.ts.map +1 -0
- package/dist/auth/attribution.js +37 -0
- package/dist/auth/attribution.js.map +1 -0
- package/dist/auth/oauth-server.d.ts +4 -4
- package/dist/auth/oauth-server.d.ts.map +1 -1
- package/dist/auth/oauth-server.js +8 -8
- package/dist/auth/oauth-server.js.map +1 -1
- package/dist/commands/call.d.ts.map +1 -1
- package/dist/commands/call.js +6 -5
- package/dist/commands/call.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +11 -7
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +13 -27
- package/dist/commands/login.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/skills/installer.d.ts +9 -0
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +20 -6
- package/dist/skills/installer.js.map +1 -1
- package/dist/skills/master-skill.d.ts +24 -22
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +392 -149
- package/dist/skills/master-skill.js.map +1 -1
- package/dist/skills/names.d.ts +53 -1
- package/dist/skills/names.d.ts.map +1 -1
- package/dist/skills/names.js +107 -7
- package/dist/skills/names.js.map +1 -1
- package/dist/skills/routes.d.ts +68 -0
- package/dist/skills/routes.d.ts.map +1 -0
- package/dist/skills/routes.js +124 -0
- package/dist/skills/routes.js.map +1 -0
- package/package.json +1 -1
- package/skills/goose-ads/SKILL.md +124 -104
- package/skills/goose-product-photos/SKILL.md +129 -0
- package/skills/gooseworks/SKILL.md +100 -41
- package/skills/routes.json +157 -0
package/dist/commands/login.js
CHANGED
|
@@ -32,14 +32,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.loginCommand = void 0;
|
|
40
37
|
exports.ensureLoggedIn = ensureLoggedIn;
|
|
41
38
|
const commander_1 = require("commander");
|
|
42
|
-
const open_1 = __importDefault(require("open"));
|
|
43
39
|
const credentials_1 = require("../auth/credentials");
|
|
44
40
|
const oauth_server_1 = require("../auth/oauth-server");
|
|
45
41
|
const installer_1 = require("../skills/installer");
|
|
@@ -49,6 +45,7 @@ const claude_mcp_1 = require("../agents/claude-mcp");
|
|
|
49
45
|
const detect_1 = require("../agents/detect");
|
|
50
46
|
const logger = __importStar(require("../utils/logger"));
|
|
51
47
|
const config_1 = require("../config");
|
|
48
|
+
const attribution_1 = require("../auth/attribution");
|
|
52
49
|
/**
|
|
53
50
|
* Refresh vendored entry skills on login for users who have already set up
|
|
54
51
|
* (`gooseworks` skill present). This is the "update skills on login": it picks up
|
|
@@ -82,31 +79,20 @@ function syncMcpRegistration() {
|
|
|
82
79
|
logger.info(`Synced the gooseworks MCP → ${creds?.mcp_server_url ?? 'the configured server'}`);
|
|
83
80
|
}
|
|
84
81
|
}
|
|
85
|
-
/**
|
|
86
|
-
* After a FRESH login, open the onboarding page so the user lands on a "get
|
|
87
|
-
* started" experience and is nudged to run `/gooseworks onboard me` (GOOSE-2596).
|
|
88
|
-
* The `?onboard=true` param is analytics-only today. Only fires on a genuine new
|
|
89
|
-
* login — never when reusing existing creds — so the browser opens at most once.
|
|
90
|
-
* Best-effort: a headless / CI box that can't open a browser just prints the URL.
|
|
91
|
-
*/
|
|
92
|
-
function openOnboarding() {
|
|
93
|
-
const url = `${config_1.HUB_URL}/?onboard=true`;
|
|
94
|
-
(0, open_1.default)(url).catch(() => logger.info(`Get started: ${url}`));
|
|
95
|
-
}
|
|
96
|
-
/** Two focused next-steps after auth: onboard, or jump straight into an ad. */
|
|
82
|
+
/** The first request automatically starts or resumes shared onboarding. */
|
|
97
83
|
function showNextSteps() {
|
|
98
|
-
logger.info('Open Claude/Codex and
|
|
99
|
-
logger.info('
|
|
100
|
-
logger.info(' • Or make an ad now: /goose-ads make an ad for <your brand>');
|
|
84
|
+
logger.info('Open Claude/Codex and ask for the work you want done.');
|
|
85
|
+
logger.info('Your first request automatically starts or resumes onboarding.');
|
|
101
86
|
}
|
|
102
87
|
exports.loginCommand = new commander_1.Command('login')
|
|
103
88
|
.description('Sign in to GooseWorks with Google')
|
|
104
89
|
.option('--api-base <url>', 'API base URL', config_1.API_BASE)
|
|
105
|
-
.option('--ref <code>', '
|
|
90
|
+
.option('--ref <code>', 'Referral or marketing campaign code for attribution')
|
|
106
91
|
.action(async (opts) => {
|
|
107
92
|
const existing = (0, credentials_1.getCredentials)();
|
|
108
93
|
if (existing) {
|
|
109
94
|
logger.success(`Already logged in as ${existing.email}`);
|
|
95
|
+
await (0, attribution_1.recordAttributionRef)(existing.api_base || opts.apiBase, opts.ref, existing.api_key);
|
|
110
96
|
refreshEntrySkillsOnLogin();
|
|
111
97
|
syncMcpRegistration();
|
|
112
98
|
logger.info('Run "gooseworks logout" first to switch accounts.');
|
|
@@ -114,10 +100,10 @@ exports.loginCommand = new commander_1.Command('login')
|
|
|
114
100
|
}
|
|
115
101
|
try {
|
|
116
102
|
const result = await (0, oauth_server_1.runOAuthFlow)(opts.apiBase, opts.ref);
|
|
103
|
+
await (0, attribution_1.recordAttributionRef)(opts.apiBase, opts.ref, result.api_key);
|
|
117
104
|
logger.success(`Logged in as ${result.email}`);
|
|
118
105
|
refreshEntrySkillsOnLogin();
|
|
119
106
|
syncMcpRegistration();
|
|
120
|
-
openOnboarding();
|
|
121
107
|
showNextSteps();
|
|
122
108
|
}
|
|
123
109
|
catch (err) {
|
|
@@ -130,19 +116,19 @@ exports.loginCommand = new commander_1.Command('login')
|
|
|
130
116
|
* Ensures the user is logged in, running OAuth if needed.
|
|
131
117
|
* Returns credentials or exits the process.
|
|
132
118
|
*/
|
|
133
|
-
async function ensureLoggedIn(apiBase = config_1.API_BASE,
|
|
119
|
+
async function ensureLoggedIn(apiBase = config_1.API_BASE, ref) {
|
|
134
120
|
const existing = (0, credentials_1.getCredentials)();
|
|
135
|
-
if (existing)
|
|
121
|
+
if (existing) {
|
|
122
|
+
await (0, attribution_1.recordAttributionRef)(existing.api_base || apiBase, ref, existing.api_key);
|
|
136
123
|
return existing;
|
|
137
|
-
|
|
124
|
+
}
|
|
125
|
+
const result = await (0, oauth_server_1.runOAuthFlow)(apiBase, ref);
|
|
138
126
|
const creds = (0, credentials_1.getCredentials)();
|
|
139
127
|
if (!creds) {
|
|
140
128
|
logger.error('Failed to save credentials after login');
|
|
141
129
|
process.exit(1);
|
|
142
130
|
}
|
|
143
|
-
|
|
144
|
-
// `gooseworks install --all` on a logged-out machine also opens the page.
|
|
145
|
-
openOnboarding();
|
|
131
|
+
await (0, attribution_1.recordAttributionRef)(apiBase, ref, creds.api_key);
|
|
146
132
|
return creds;
|
|
147
133
|
}
|
|
148
134
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Defaults to production. Override with env vars for local development:
|
|
5
5
|
* GOOSEWORKS_API_BASE=http://localhost:5999
|
|
6
|
-
* GOOSEWORKS_FRONTEND_URL=http://localhost:
|
|
6
|
+
* GOOSEWORKS_FRONTEND_URL=http://localhost:4000
|
|
7
7
|
* GOOSEWORKS_HUB_URL=http://localhost:3998
|
|
8
8
|
*/
|
|
9
9
|
export declare const API_BASE: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ,QAAiE,CAAC;
|
|
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"}
|
package/dist/config.js
CHANGED
|
@@ -4,13 +4,17 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Defaults to production. Override with env vars for local development:
|
|
6
6
|
* GOOSEWORKS_API_BASE=http://localhost:5999
|
|
7
|
-
* GOOSEWORKS_FRONTEND_URL=http://localhost:
|
|
7
|
+
* GOOSEWORKS_FRONTEND_URL=http://localhost:4000
|
|
8
8
|
* GOOSEWORKS_HUB_URL=http://localhost:3998
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.HUB_URL = exports.FRONTEND_URL = exports.API_BASE = void 0;
|
|
12
12
|
exports.API_BASE = process.env.GOOSEWORKS_API_BASE || 'https://api.gooseworks.ai';
|
|
13
|
-
|
|
13
|
+
// The GTM web app (app.gooseworks.ai) is being sunset; `gw auth` now opens the
|
|
14
|
+
// Goose Growth app (ads-frontend) at make.gooseworks.ai/cli/auth, which is a
|
|
15
|
+
// straight port of the old CLI login page. Old published CLI versions still hit
|
|
16
|
+
// app.gooseworks.ai and are handled by the sunset redirect layer.
|
|
17
|
+
exports.FRONTEND_URL = process.env.GOOSEWORKS_FRONTEND_URL || 'https://make.gooseworks.ai';
|
|
14
18
|
// Public graphics hub (skills + formats catalog). Distinct host from FRONTEND_URL:
|
|
15
19
|
// `app.gooseworks.ai` has no /styles or /formats routes — those live on skills.gooseworks.ai.
|
|
16
20
|
exports.HUB_URL = process.env.GOOSEWORKS_HUB_URL || 'https://skills.gooseworks.ai';
|
package/dist/config.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -25,5 +25,14 @@ export declare function installManagedEntrySkills(skills: EntrySkill[], { force
|
|
|
25
25
|
}): EntrySkillInstallResult[];
|
|
26
26
|
export declare function installStandaloneSkill(slug: string, options?: InstallStandaloneSkillOptions): Promise<void>;
|
|
27
27
|
export declare function getInstalledSkills(): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Delete every skill directory the CLI itself installed.
|
|
30
|
+
*
|
|
31
|
+
* GOOSE-3191: this used to delete ANY `goose-*` / `gooseworks-*` directory, so a
|
|
32
|
+
* user's own third-party skill (e.g. `goose-notes`) was destroyed on every
|
|
33
|
+
* install / update / login. It now deletes only known entry-skill slugs and
|
|
34
|
+
* directories carrying our `.gooseworks-version` stamp — see `names.ts`.
|
|
35
|
+
* An unstamped directory that isn't a known entry slug is NEVER removed.
|
|
36
|
+
*/
|
|
28
37
|
export declare function removeAllSkills(): void;
|
|
29
38
|
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgBjD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAQ9D;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgBjD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAQ9D;AAcD,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQxE;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAKzD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,EAAE,EACpB,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,uBAAuB,EAAE,CAQ3B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAyCf;AA0CD,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAS7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAQtC"}
|
package/dist/skills/installer.js
CHANGED
|
@@ -59,12 +59,12 @@ function installMasterSkill(masterSkillMd) {
|
|
|
59
59
|
fs.writeFileSync(path.join(masterDir, 'SKILL.md'), masterSkillMd, 'utf-8');
|
|
60
60
|
}
|
|
61
61
|
// ── Vendored entry-skill freshness ──────────────────────────────────────────
|
|
62
|
-
// Entry skills (gooseworks, goose-ads) are
|
|
62
|
+
// Entry skills (gooseworks, goose-ads, goose-video, goose-product-photos) are
|
|
63
|
+
// vendored in the CLI and written to
|
|
63
64
|
// ~/.agents/skills/<name>/. We stamp each install with a content hash so we can
|
|
64
65
|
// skip rewriting an unchanged skill ("already local → don't call") and rewrite
|
|
65
66
|
// only when the vendored content changed ("updated → call again"). Recipe skills
|
|
66
67
|
// are fetched live via `gooseworks fetch`, so they need no stamping.
|
|
67
|
-
const STAMP_FILE = '.gooseworks-version';
|
|
68
68
|
function entryContentHash(content) {
|
|
69
69
|
return crypto.createHash('sha256').update(content, 'utf-8').digest('hex').slice(0, 16);
|
|
70
70
|
}
|
|
@@ -74,7 +74,7 @@ function isEntrySkillFresh(name, content) {
|
|
|
74
74
|
if (!fs.existsSync(path.join(dir, 'SKILL.md')))
|
|
75
75
|
return false;
|
|
76
76
|
try {
|
|
77
|
-
return fs.readFileSync(path.join(dir, STAMP_FILE), 'utf-8').trim() === entryContentHash(content);
|
|
77
|
+
return fs.readFileSync(path.join(dir, names_1.STAMP_FILE), 'utf-8').trim() === entryContentHash(content);
|
|
78
78
|
}
|
|
79
79
|
catch {
|
|
80
80
|
return false;
|
|
@@ -85,7 +85,7 @@ function installEntrySkill(skill) {
|
|
|
85
85
|
const dir = path.join(SKILLS_BASE, skill.name);
|
|
86
86
|
fs.mkdirSync(dir, { recursive: true });
|
|
87
87
|
fs.writeFileSync(path.join(dir, 'SKILL.md'), skill.content, 'utf-8');
|
|
88
|
-
fs.writeFileSync(path.join(dir, STAMP_FILE), entryContentHash(skill.content), 'utf-8');
|
|
88
|
+
fs.writeFileSync(path.join(dir, names_1.STAMP_FILE), entryContentHash(skill.content), 'utf-8');
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Install all vendored entry skills. With `force` (explicit install/update) each
|
|
@@ -126,6 +126,11 @@ async function installStandaloneSkill(slug, options = {}) {
|
|
|
126
126
|
completed++;
|
|
127
127
|
options.onProgress?.({ downloaded: completed, total: files.length });
|
|
128
128
|
});
|
|
129
|
+
// Stamp the staged tree BEFORE it becomes the live dir, so a standalone
|
|
130
|
+
// skill is recognisably ours on the next install (GOOSE-3191). Without a
|
|
131
|
+
// stamp `removeAllSkills()` leaves it alone — safe, but it then goes stale
|
|
132
|
+
// until the user re-installs it.
|
|
133
|
+
fs.writeFileSync(path.join(stagingDir, names_1.STAMP_FILE), `standalone:${slug}`, 'utf-8');
|
|
129
134
|
fs.rmSync(targetDir, { recursive: true, force: true });
|
|
130
135
|
fs.renameSync(stagingDir, targetDir);
|
|
131
136
|
}
|
|
@@ -171,18 +176,27 @@ function getInstalledSkills() {
|
|
|
171
176
|
if (!fs.existsSync(SKILLS_BASE))
|
|
172
177
|
return [];
|
|
173
178
|
return fs.readdirSync(SKILLS_BASE)
|
|
174
|
-
.filter(names_1.isManagedGooseworksSkill)
|
|
179
|
+
.filter((entry) => (0, names_1.isManagedGooseworksSkill)(entry, SKILLS_BASE))
|
|
175
180
|
.filter((entry) => {
|
|
176
181
|
const skillMd = path.join(SKILLS_BASE, entry, 'SKILL.md');
|
|
177
182
|
return fs.existsSync(skillMd);
|
|
178
183
|
});
|
|
179
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Delete every skill directory the CLI itself installed.
|
|
187
|
+
*
|
|
188
|
+
* GOOSE-3191: this used to delete ANY `goose-*` / `gooseworks-*` directory, so a
|
|
189
|
+
* user's own third-party skill (e.g. `goose-notes`) was destroyed on every
|
|
190
|
+
* install / update / login. It now deletes only known entry-skill slugs and
|
|
191
|
+
* directories carrying our `.gooseworks-version` stamp — see `names.ts`.
|
|
192
|
+
* An unstamped directory that isn't a known entry slug is NEVER removed.
|
|
193
|
+
*/
|
|
180
194
|
function removeAllSkills() {
|
|
181
195
|
if (!fs.existsSync(SKILLS_BASE))
|
|
182
196
|
return;
|
|
183
197
|
const entries = fs.readdirSync(SKILLS_BASE);
|
|
184
198
|
for (const entry of entries) {
|
|
185
|
-
if (!(0, names_1.isManagedGooseworksSkill)(entry))
|
|
199
|
+
if (!(0, names_1.isManagedGooseworksSkill)(entry, SKILLS_BASE))
|
|
186
200
|
continue;
|
|
187
201
|
fs.rmSync(path.join(SKILLS_BASE, entry), { recursive: true, force: true });
|
|
188
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,8CAEC;AAED,gDAQC;
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,22 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The CLI installs two vendored ENTRY skills into ~/.agents/skills/:
|
|
3
|
-
* - `gooseworks` — the PARENT router (getMasterSkillContent): GTM/data toolkit
|
|
4
|
-
* PLUS a domain router that hands ads/graphics/video work to the dedicated
|
|
5
|
-
* `goose-*` skills below.
|
|
6
|
-
* - `goose-ads` — the ads entry/contract (getGooseAdsSkillContent): ad creative
|
|
7
|
-
* (remix, brand research) AND ad analytics/intelligence. Formerly `ads-remix`.
|
|
8
|
-
* Each is a separate Claude Code skill; Claude auto-loads whichever matches the
|
|
9
|
-
* task by its description. They are domain-scoped on purpose — do NOT merge them.
|
|
10
|
-
*
|
|
11
|
-
* Sibling domain skills NOT vendored here (fetched live from goose-skills):
|
|
12
|
-
* - `goose-graphics` — charts/slides/infographics/branded visuals. Installed via
|
|
13
|
-
* `gooseworks install --with goose-graphics` or fetched on demand.
|
|
14
|
-
* - `goose-video` — video ad remix: fetches the per-format recipe by slug,
|
|
15
|
-
* renders LOCALLY (Playwright + ffmpeg + media proxies), mirrors a script for
|
|
16
|
-
* in-app review, saves the MP4 back over MCP (getGooseVideoSkillContent).
|
|
17
|
-
*
|
|
18
|
-
* Recipe skills (remix-graphic-ad-from-reference, brand-research, meta-ads-analyzer,
|
|
19
|
-
* …) are NOT vendored here — they live in goose-skills and are fetched live on
|
|
20
|
-
* demand via `gooseworks fetch <slug>`, so they're always current.
|
|
21
|
-
*/
|
|
22
1
|
export interface EntrySkill {
|
|
23
2
|
/** Install dir name under ~/.agents/skills/ AND the skill `name`. */
|
|
24
3
|
name: string;
|
|
25
4
|
content: string;
|
|
26
5
|
}
|
|
27
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* THE registry of entry skills (GOOSE-3190) — one list, four consumers:
|
|
8
|
+
* - `gooseworks install` / `update` / login-refresh write exactly these dirs,
|
|
9
|
+
* - `npm run generate:skills` regenerates exactly these `skills/<name>/SKILL.md`,
|
|
10
|
+
* - `skills/names.ts` derives which dirs the CLI is allowed to delete,
|
|
11
|
+
* - the backend raw-fetches these paths for hosted connectors.
|
|
12
|
+
*
|
|
13
|
+
* `goose-product-photos` used to be a hand-maintained `skills/…/SKILL.md` that
|
|
14
|
+
* was on disk and served by the backend but absent here — so it was never
|
|
15
|
+
* regenerated and never refreshed on install. Adding it closes that drift.
|
|
16
|
+
*/
|
|
28
17
|
export declare function getEntrySkills(): EntrySkill[];
|
|
18
|
+
/** Just the directory names, for callers that don't need the bodies. */
|
|
19
|
+
export declare function getEntrySkillNames(): string[];
|
|
29
20
|
/**
|
|
30
21
|
* Returns the GTM master SKILL.md content (the `gooseworks` entry skill).
|
|
31
22
|
* It teaches the coding agent how to discover and use GooseWorks skills on
|
|
@@ -65,4 +56,15 @@ export declare function getGooseAdsSkillContent(): string;
|
|
|
65
56
|
* also loads it by description.
|
|
66
57
|
*/
|
|
67
58
|
export declare function getGooseVideoSkillContent(): string;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the goose-product-photos entry SKILL.md content.
|
|
61
|
+
*
|
|
62
|
+
* GOOSE-3190: this skill already existed on disk (`skills/goose-product-photos/
|
|
63
|
+
* SKILL.md`, hand-maintained) and was already served by the backend to hosted
|
|
64
|
+
* connectors — but it was NOT in `getEntrySkills()`, so `npm run generate:skills`
|
|
65
|
+
* never regenerated it and `install` / `update` / login-refresh never wrote or
|
|
66
|
+
* refreshed it on a user's machine. Moving the body here makes the registry the
|
|
67
|
+
* one source: one command emits all four entry skills.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getGooseProductPhotosSkillContent(): string;
|
|
68
70
|
//# sourceMappingURL=master-skill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAO7C;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAwQ9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA8VhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA2blD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAmI1D"}
|