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
@@ -37,6 +37,8 @@ exports.installCommand = void 0;
37
37
  exports.createInstallCommand = createInstallCommand;
38
38
  const commander_1 = require("commander");
39
39
  const login_1 = require("./login");
40
+ const credentials_1 = require("../auth/credentials");
41
+ const device_flow_1 = require("../auth/device-flow");
40
42
  const installer_1 = require("../skills/installer");
41
43
  const claude_1 = require("../agents/claude");
42
44
  const claude_mcp_1 = require("../agents/claude-mcp");
@@ -49,6 +51,8 @@ const config_1 = require("../config");
49
51
  const version_1 = require("../version");
50
52
  const doctor_1 = require("./doctor");
51
53
  const skills_1 = require("./skills");
54
+ const environment_1 = require("../environment");
55
+ const staging_1 = require("../agents/staging");
52
56
  function createInstallCommand() {
53
57
  return new commander_1.Command('install')
54
58
  .description(`Install GooseWorks data tools into your coding agent
@@ -65,9 +69,32 @@ Examples:
65
69
  .option('--with <skill-slug>', 'Also install a standalone GooseWorks skill (repeatable)', collectSkillSlug, [])
66
70
  .option('--api-base <url>', 'API base URL', config_1.API_BASE)
67
71
  .option('--ref <code>', 'Referral or marketing campaign code for attribution')
72
+ .option('--project <folder>', 'Required staging test folder; used only by gooseworks launch')
73
+ .option('--skills-only', 'Sign in and install GooseWorks skills to ~/.agents/skills only; configure no agents (cloud sandboxes)')
68
74
  .action(async (opts) => {
69
75
  logger.banner((0, version_1.getVersion)());
76
+ if (opts.skillsOnly) {
77
+ await installSkillsOnly(opts);
78
+ return;
79
+ }
70
80
  const targetAgents = resolveTargetAgents(opts);
81
+ if ((0, environment_1.getEnvironment)() === 'staging') {
82
+ if (targetAgents.some(agent => agent === 'cursor'))
83
+ throw new Error('Cursor staging isolation is not verified. Use --claude or --codex.');
84
+ (0, staging_1.assertCleanProject)((0, staging_1.projectProfile)(opts.project || '').project);
85
+ await (0, login_1.ensureLoggedIn)(opts.apiBase, opts.ref);
86
+ const entries = (0, master_skill_1.getEntrySkills)().map(skill => ({ ...skill, content: (0, staging_1.stagingContent)(skill.content) }));
87
+ const results = (0, installer_1.installManagedEntrySkills)(entries, { overwriteModified: opts.overwriteModified });
88
+ if (results.some(result => result.action === 'preserved'))
89
+ throw new Error('Staging entry has edits. Review/back up the files before --overwrite-modified.');
90
+ for (const slug of opts.with || [])
91
+ await (0, installer_1.installStandaloneSkill)(slug, { overwriteModified: opts.overwriteModified });
92
+ (0, staging_1.installStagingProject)(opts.project, targetAgents);
93
+ logger.done(`Staging installed. Start a new isolated session: gooseworks --env staging launch --agent ${targetAgents[0]} --project ${JSON.stringify(opts.project)}`);
94
+ return;
95
+ }
96
+ if (opts.project)
97
+ throw new Error('--project is for isolated staging installs; omit it for the normal production install');
71
98
  if (targetAgents.length === 0) {
72
99
  logger.error('No agent specified. Use --claude, --codex, --cursor, or --all');
73
100
  process.exit(1);
@@ -79,41 +106,8 @@ Examples:
79
106
  const creds = await (0, login_1.ensureLoggedIn)(opts.apiBase, opts.ref);
80
107
  logger.success(`Logged in as ${creds.email}`);
81
108
  // Step 2: Refresh bundled entries; preserve standalone and edited copies.
82
- const freshness = await (0, skills_1.readEntryFreshnessReport)();
83
- await (0, skills_1.reportEntrySkillFreshness)(freshness);
84
- if (freshness.cli === 'outdated') {
85
- logger.error('Entry refresh refused: upgrade this CLI before installing its bundled instructions. No skill files were changed.');
86
- process.exit(1);
109
+ if (!(await installSkillFiles(opts, 2, 3)))
87
110
  return;
88
- }
89
- logger.step(2, 3, 'Installing GooseWorks skills...');
90
- for (const r of (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)(), { overwriteModified: opts.overwriteModified })) {
91
- if (r.action === 'preserved')
92
- logger.warn(`Preserved edited or untracked ${r.name}; review/back up before --overwrite-modified.`);
93
- else
94
- logger.success(`${r.action === 'installed' ? 'Installed' : 'Kept'} ${r.name} skill at ~/.agents/skills/${r.name}/`);
95
- }
96
- for (const slug of opts.with || []) {
97
- try {
98
- logger.info(`Installing standalone skill ${slug}...`);
99
- let lastReported = 0;
100
- await (0, installer_1.installStandaloneSkill)(slug, {
101
- overwriteModified: opts.overwriteModified,
102
- onProgress: ({ downloaded, total }) => {
103
- const step = Math.max(1, Math.min(5, Math.ceil(total / 10)));
104
- if (downloaded === total || downloaded - lastReported >= step) {
105
- logger.info(` Downloaded ${downloaded}/${total} files for ${slug}`);
106
- lastReported = downloaded;
107
- }
108
- },
109
- });
110
- logger.success(`Installed standalone skill ${slug} to ~/.agents/skills/${slug}/`);
111
- }
112
- catch (error) {
113
- const message = error instanceof Error ? error.message : String(error);
114
- logger.error(`Could not install standalone skill ${slug}: ${message}`);
115
- }
116
- }
117
111
  // Step 3: Configure agents
118
112
  logger.step(3, 3, 'Configuring agents...');
119
113
  for (const agent of targetAgents) {
@@ -214,6 +208,79 @@ Examples:
214
208
  });
215
209
  }
216
210
  exports.installCommand = createInstallCommand();
211
+ /**
212
+ * Refreshes the bundled entry skills (after the freshness check) and installs
213
+ * any `--with` standalone skills into ~/.agents/skills. Returns false when the
214
+ * refresh was refused (the process has been told to exit).
215
+ */
216
+ async function installSkillFiles(opts, step, totalSteps) {
217
+ const freshness = await (0, skills_1.readEntryFreshnessReport)();
218
+ await (0, skills_1.reportEntrySkillFreshness)(freshness);
219
+ if (freshness.cli === 'outdated') {
220
+ logger.error('Entry refresh refused: upgrade this CLI before installing its bundled instructions. No skill files were changed.');
221
+ process.exit(1);
222
+ return false;
223
+ }
224
+ logger.step(step, totalSteps, 'Installing GooseWorks skills...');
225
+ for (const r of (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)(), { overwriteModified: opts.overwriteModified })) {
226
+ if (r.action === 'preserved')
227
+ logger.warn(`Preserved edited or untracked ${r.name}; review/back up before --overwrite-modified.`);
228
+ else
229
+ logger.success(`${r.action === 'installed' ? 'Installed' : 'Kept'} ${r.name} skill at ~/.agents/skills/${r.name}/`);
230
+ }
231
+ for (const slug of opts.with || []) {
232
+ try {
233
+ logger.info(`Installing standalone skill ${slug}...`);
234
+ let lastReported = 0;
235
+ await (0, installer_1.installStandaloneSkill)(slug, {
236
+ overwriteModified: opts.overwriteModified,
237
+ onProgress: ({ downloaded, total }) => {
238
+ const step = Math.max(1, Math.min(5, Math.ceil(total / 10)));
239
+ if (downloaded === total || downloaded - lastReported >= step) {
240
+ logger.info(` Downloaded ${downloaded}/${total} files for ${slug}`);
241
+ lastReported = downloaded;
242
+ }
243
+ },
244
+ });
245
+ logger.success(`Installed standalone skill ${slug} to ~/.agents/skills/${slug}/`);
246
+ }
247
+ catch (error) {
248
+ const message = error instanceof Error ? error.message : String(error);
249
+ logger.error(`Could not install standalone skill ${slug}: ${message}`);
250
+ }
251
+ }
252
+ return true;
253
+ }
254
+ /**
255
+ * `install --skills-only` (GOOSE-3937): for cloud sandboxes. Signs in (resuming
256
+ * a pending `login --device --no-wait`) and installs skills only — no agent
257
+ * configs, no MCP files, no toolchain report.
258
+ */
259
+ async function installSkillsOnly(opts) {
260
+ if (opts.claude || opts.codex || opts.cursor || opts.all || opts.mcp) {
261
+ throw new Error('--skills-only installs skills only. Drop the agent flags.');
262
+ }
263
+ if ((0, environment_1.getEnvironment)() === 'staging')
264
+ throw new Error('Use --claude or --codex with --project for staging');
265
+ if (opts.project)
266
+ throw new Error('--project is for isolated staging installs; omit it for the normal production install');
267
+ logger.step(1, 2, 'Authenticating...');
268
+ if (!(0, credentials_1.getCredentials)() && !(0, device_flow_1.readPendingDeviceLogin)(opts.apiBase || config_1.API_BASE)) {
269
+ // No sign-in in progress. Start one and stop here: a cloud agent's shell
270
+ // only shows output when the command ends, so waiting would hide the link.
271
+ const outcome = await (0, login_1.signIn)(opts.apiBase || config_1.API_BASE, opts.ref, { wait: false });
272
+ if (outcome.status === 'pending') {
273
+ logger.warn('Not signed in yet. After you approve, run this command again to finish.');
274
+ process.exitCode = 2;
275
+ return;
276
+ }
277
+ }
278
+ const creds = await (0, login_1.ensureLoggedIn)(opts.apiBase, opts.ref);
279
+ logger.success(`Logged in as ${creds.email}`);
280
+ if (!(await installSkillFiles(opts, 2, 2)))
281
+ return;
282
+ logger.done('Skills installed in ~/.agents/skills. Read ~/.agents/skills/gooseworks/SKILL.md to use GooseWorks.');
283
+ }
217
284
  function resolveTargetAgents(opts) {
218
285
  if (opts.all) {
219
286
  const detected = (0, detect_1.detectAgents)();
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const launchCommand: Command;
3
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAqBtB,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.launchCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const node_child_process_1 = require("node:child_process");
6
+ const environment_1 = require("../environment");
7
+ const staging_1 = require("../agents/staging");
8
+ exports.launchCommand = new commander_1.Command('launch')
9
+ .description('Start a fresh agent session that can load only staging GooseWorks skills and MCP')
10
+ .requiredOption('--project <folder>', 'The clean folder to test in')
11
+ .requiredOption('--agent <name>', 'claude or codex')
12
+ .option('--inspect', 'Check isolation and print a token-free inventory without starting an AI request')
13
+ .option('--login', 'Sign in to the agent provider inside the isolated profile')
14
+ .action(async (options) => {
15
+ try {
16
+ if ((0, environment_1.getEnvironment)() !== 'staging')
17
+ throw new Error('Use gooseworks --env staging launch; use your normal agent command for production');
18
+ const launch = (0, staging_1.stagingLaunch)(options.project, options.agent);
19
+ const skills = options.agent === 'codex' ? await (0, staging_1.inspectCodexSkills)(launch) : await (0, staging_1.inspectClaudeSkills)(launch);
20
+ if (options.inspect) {
21
+ console.log(JSON.stringify({ environment: 'staging', project: launch.cwd, agent: launch.command, version: launch.manifest.version, skills, mcp: 'gooseworks-staging' }, null, 2));
22
+ return;
23
+ }
24
+ console.log(`Starting ${launch.command} with staging GooseWorks only. This profile has its own agent-provider login.`);
25
+ const args = options.login ? (options.agent === 'codex' ? ['login'] : ['auth', 'login']) : launch.args;
26
+ const child = (0, node_child_process_1.spawn)(launch.command, args, { cwd: launch.cwd, env: launch.env, stdio: 'inherit' });
27
+ child.on('error', () => { console.error(`Could not start ${launch.command}. Install that agent CLI first.`); process.exitCode = 1; });
28
+ child.on('exit', (code, signal) => { process.exitCode = code ?? (signal ? 1 : 0); });
29
+ }
30
+ catch (error) {
31
+ console.error(error instanceof Error ? error.message : 'Staging launch failed');
32
+ process.exitCode = 1;
33
+ }
34
+ });
35
+ //# sourceMappingURL=launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,2DAA2C;AAC3C,gDAAgD;AAChD,+CAA2F;AAE9E,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kFAAkF,CAAC;KAC/F,cAAc,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;KACnE,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,iFAAiF,CAAC;KACtG,MAAM,CAAC,SAAS,EAAE,2DAA2D,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAA+E,EAAE,EAAE;IAChG,IAAI,CAAC;QACH,IAAI,IAAA,4BAAc,GAAE,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACzI,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,IAAA,4BAAkB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAmB,EAAC,MAAM,CAAC,CAAC;QAChH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClL,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,+EAA+E,CAAC,CAAC;QACvH,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACvG,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,OAAO,iCAAiC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtI,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAAC,CAAC;AAC5H,CAAC,CAAC,CAAC"}
@@ -1,7 +1,27 @@
1
1
  import { Command } from 'commander';
2
+ import { type OAuthResult } from '../auth/oauth-server';
3
+ export interface SignInFlags {
4
+ device?: boolean;
5
+ browser?: boolean;
6
+ /** false with `--no-wait`: print the device link and return without waiting. */
7
+ wait?: boolean;
8
+ }
9
+ export type SignInOutcome = {
10
+ status: 'done';
11
+ result: OAuthResult;
12
+ } | {
13
+ status: 'pending';
14
+ };
15
+ /**
16
+ * Signs in with the browser (localhost callback) or device (code + link) flow,
17
+ * picked by `chooseLoginMode`. An auto-chosen device sign-in falls back to the
18
+ * browser when the server predates it; an explicit `--device` does not.
19
+ */
20
+ export declare function signIn(apiBase: string, ref: string | undefined, flags?: SignInFlags): Promise<SignInOutcome>;
21
+ export declare function createLoginCommand(): Command;
2
22
  export declare const loginCommand: Command;
3
23
  /**
4
- * Ensures the user is logged in, running OAuth if needed.
24
+ * Ensures the user is logged in, signing in (browser or device) if needed.
5
25
  * Returns credentials or exits the process.
6
26
  */
7
27
  export declare function ensureLoggedIn(apiBase?: string, ref?: string): Promise<import("../auth/credentials").Credentials>;
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuDpC,eAAO,MAAM,YAAY,SA2BrB,CAAC;AAEL;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,MAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,sDAe5E"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA8DtE,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE5F;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBtH;AAUD,wBAAgB,kBAAkB,IAAI,OAAO,CAmD5C;AAED,eAAO,MAAM,YAAY,SAAuB,CAAC;AAEjD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,MAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,sDAkB5E"}
@@ -34,10 +34,15 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.loginCommand = void 0;
37
+ exports.signIn = signIn;
38
+ exports.createLoginCommand = createLoginCommand;
37
39
  exports.ensureLoggedIn = ensureLoggedIn;
38
40
  const commander_1 = require("commander");
39
41
  const credentials_1 = require("../auth/credentials");
40
42
  const oauth_server_1 = require("../auth/oauth-server");
43
+ const device_flow_1 = require("../auth/device-flow");
44
+ const login_mode_1 = require("../auth/login-mode");
45
+ const paste_login_1 = require("../auth/paste-login");
41
46
  const installer_1 = require("../skills/installer");
42
47
  const master_skill_1 = require("../skills/master-skill");
43
48
  const claude_1 = require("../agents/claude");
@@ -47,6 +52,7 @@ const logger = __importStar(require("../utils/logger"));
47
52
  const config_1 = require("../config");
48
53
  const attribution_1 = require("../auth/attribution");
49
54
  const skills_1 = require("./skills");
55
+ const environment_1 = require("../environment");
50
56
  /**
51
57
  * Refresh vendored entry skills on login for users who have already set up
52
58
  * (`gooseworks` skill present). This is the "update skills on login": it picks up
@@ -55,6 +61,8 @@ const skills_1 = require("./skills");
55
61
  * Bootstrapping a first-time install stays the job of `gooseworks install`.
56
62
  */
57
63
  async function refreshEntrySkillsOnLogin() {
64
+ if ((0, environment_1.getEnvironment)() === 'staging')
65
+ return;
58
66
  if (!(0, installer_1.getInstalledSkills)().includes('gooseworks'))
59
67
  return;
60
68
  const freshness = await (0, skills_1.readEntryFreshnessReport)();
@@ -79,6 +87,12 @@ async function refreshEntrySkillsOnLogin() {
79
87
  * call, while `doctor` (creds-only) still passes — a confusing trap.
80
88
  */
81
89
  function syncMcpRegistration() {
90
+ if ((0, environment_1.getEnvironment)() === 'staging')
91
+ return;
92
+ // Only re-point a Claude Code that is here. Without it (a cloud agent's
93
+ // sandbox, GOOSE-3937) this would create ~/.claude.json holding the key.
94
+ if (!(0, detect_1.isAgentInstalled)('claude'))
95
+ return;
82
96
  if ((0, claude_mcp_1.configureClaudeMcp)()) {
83
97
  const creds = (0, credentials_1.getCredentials)();
84
98
  logger.info(`Synced the gooseworks MCP → ${creds?.mcp_server_url ?? 'the configured server'}`);
@@ -90,45 +104,108 @@ function showNextSteps() {
90
104
  logger.example('Set up GooseWorks for https://yourcompany.com');
91
105
  logger.info('The agent preserves that request while it completes any missing company setup.');
92
106
  }
93
- exports.loginCommand = new commander_1.Command('login')
94
- .description('Sign in to GooseWorks with Google')
95
- .option('--api-base <url>', 'API base URL', config_1.API_BASE)
96
- .option('--ref <code>', 'Referral or marketing campaign code for attribution')
97
- .action(async (opts) => {
98
- const existing = (0, credentials_1.getCredentials)();
99
- if (existing) {
100
- logger.success(`Already logged in as ${existing.email}`);
101
- await (0, attribution_1.recordAttributionRef)(existing.api_base || opts.apiBase, opts.ref, existing.api_key);
102
- await refreshEntrySkillsOnLogin();
103
- syncMcpRegistration();
104
- logger.info('Run "gooseworks logout" first to switch accounts.');
105
- return;
106
- }
107
- try {
108
- const result = await (0, oauth_server_1.runOAuthFlow)(opts.apiBase, opts.ref);
109
- await (0, attribution_1.recordAttributionRef)(opts.apiBase, opts.ref, result.api_key);
110
- logger.success(`Logged in as ${result.email}`);
111
- await refreshEntrySkillsOnLogin();
112
- syncMcpRegistration();
113
- showNextSteps();
114
- }
115
- catch (err) {
116
- const message = err instanceof Error ? err.message : 'Login failed';
117
- logger.error(message);
118
- process.exit(1);
107
+ /**
108
+ * Signs in with the browser (localhost callback) or device (code + link) flow,
109
+ * picked by `chooseLoginMode`. An auto-chosen device sign-in falls back to the
110
+ * browser when the server predates it; an explicit `--device` does not.
111
+ */
112
+ async function signIn(apiBase, ref, flags = {}) {
113
+ const noWait = flags.wait === false;
114
+ const { mode } = (0, login_mode_1.chooseLoginMode)({
115
+ device: flags.device,
116
+ browser: flags.browser,
117
+ noWait,
118
+ pendingLogin: (0, device_flow_1.readPendingDeviceLogin)(apiBase) !== null,
119
+ });
120
+ if (mode === 'device') {
121
+ try {
122
+ const outcome = await (0, device_flow_1.runDeviceFlow)(apiBase, { ref, wait: !noWait });
123
+ return outcome.status === 'done' ? outcome : { status: 'pending' };
124
+ }
125
+ catch (err) {
126
+ if (!(err instanceof device_flow_1.DeviceFlowUnavailableError))
127
+ throw err;
128
+ if (flags.device || noWait) {
129
+ throw new Error("Device sign-in isn't available on this server yet. Run gooseworks login --browser instead.");
130
+ }
131
+ logger.warn("Device sign-in isn't available on this server yet; using browser sign-in.");
132
+ }
119
133
  }
120
- });
134
+ return { status: 'done', result: await (0, oauth_server_1.runOAuthFlow)(apiBase, ref) };
135
+ }
136
+ async function finishLogin(apiBase, ref, result) {
137
+ await (0, attribution_1.recordAttributionRef)(apiBase, ref, result.api_key);
138
+ logger.success(`Logged in as ${result.email}`);
139
+ await refreshEntrySkillsOnLogin();
140
+ syncMcpRegistration();
141
+ showNextSteps();
142
+ }
143
+ function createLoginCommand() {
144
+ return new commander_1.Command('login')
145
+ .description('Sign in to GooseWorks with Google')
146
+ .option('--api-base <url>', 'API base URL', config_1.API_BASE)
147
+ .option('--ref <code>', 'Referral or marketing campaign code for attribution')
148
+ .option('--device', 'Sign in from any device with a code (for cloud agents, SSH)')
149
+ .option('--browser', 'Sign in with a browser on this computer')
150
+ .option('--no-wait', 'With --device: print the link and exit; run the command again to finish')
151
+ .option('--paste [value]', 'Finish sign-in from the address your browser showed, or a GooseWorks key')
152
+ .action(async (opts) => {
153
+ (0, environment_1.assertConnection)(opts.apiBase, 'api');
154
+ if (opts.browser && (opts.device || opts.wait === false)) {
155
+ logger.error('--browser signs in on this computer; it cannot be combined with --device or --no-wait.');
156
+ process.exit(1);
157
+ return;
158
+ }
159
+ if (opts.paste !== undefined) {
160
+ try {
161
+ const result = await (0, paste_login_1.pasteLogin)(typeof opts.paste === 'string' ? opts.paste : undefined, opts.apiBase);
162
+ await finishLogin(opts.apiBase, opts.ref, result);
163
+ }
164
+ catch (err) {
165
+ logger.error(err instanceof Error ? err.message : 'Login failed');
166
+ process.exit(1);
167
+ }
168
+ return;
169
+ }
170
+ const existing = (0, credentials_1.getCredentials)();
171
+ if (existing) {
172
+ logger.success(`Already logged in as ${existing.email}`);
173
+ await (0, attribution_1.recordAttributionRef)(existing.api_base || opts.apiBase, opts.ref, existing.api_key);
174
+ await refreshEntrySkillsOnLogin();
175
+ syncMcpRegistration();
176
+ logger.info('Run "gooseworks logout" first to switch accounts.');
177
+ return;
178
+ }
179
+ try {
180
+ const outcome = await signIn(opts.apiBase, opts.ref, { device: opts.device, browser: opts.browser, wait: opts.wait });
181
+ if (outcome.status === 'pending') {
182
+ logger.info('After you approve, run this command again (without --no-wait) to finish.');
183
+ return;
184
+ }
185
+ await finishLogin(opts.apiBase, opts.ref, outcome.result);
186
+ }
187
+ catch (err) {
188
+ const message = err instanceof Error ? err.message : 'Login failed';
189
+ logger.error(message);
190
+ process.exit(1);
191
+ }
192
+ });
193
+ }
194
+ exports.loginCommand = createLoginCommand();
121
195
  /**
122
- * Ensures the user is logged in, running OAuth if needed.
196
+ * Ensures the user is logged in, signing in (browser or device) if needed.
123
197
  * Returns credentials or exits the process.
124
198
  */
125
199
  async function ensureLoggedIn(apiBase = config_1.API_BASE, ref) {
200
+ (0, environment_1.assertConnection)(apiBase, 'api');
126
201
  const existing = (0, credentials_1.getCredentials)();
127
202
  if (existing) {
128
203
  await (0, attribution_1.recordAttributionRef)(existing.api_base || apiBase, ref, existing.api_key);
129
204
  return existing;
130
205
  }
131
- const result = await (0, oauth_server_1.runOAuthFlow)(apiBase, ref);
206
+ // No flags: a pending `login --device --no-wait` is resumed here, which is
207
+ // how `install --skills-only` finishes what that command started.
208
+ await signIn(apiBase, ref);
132
209
  const creds = (0, credentials_1.getCredentials)();
133
210
  if (!creds) {
134
211
  logger.error('Failed to save credentials after login');
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAgBtB,CAAC"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAmBtB,CAAC"}
@@ -36,11 +36,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.logoutCommand = void 0;
37
37
  const commander_1 = require("commander");
38
38
  const credentials_1 = require("../auth/credentials");
39
+ const device_flow_1 = require("../auth/device-flow");
39
40
  const claude_mcp_1 = require("../agents/claude-mcp");
40
41
  const logger = __importStar(require("../utils/logger"));
42
+ const environment_1 = require("../environment");
41
43
  exports.logoutCommand = new commander_1.Command('logout')
42
44
  .description('Sign out and clear saved credentials')
43
45
  .action(async () => {
46
+ // An unfinished device sign-in (`login --device --no-wait`) is dropped too,
47
+ // even when no account is signed in yet.
48
+ (0, device_flow_1.clearPendingDeviceLogin)();
44
49
  const existing = (0, credentials_1.getCredentials)();
45
50
  if (!existing) {
46
51
  logger.info('Not currently logged in.');
@@ -51,7 +56,8 @@ exports.logoutCommand = new commander_1.Command('logout')
51
56
  // it lingers pointing at the logged-out backend with a now-dead token — the
52
57
  // classic "project not found" / wrong-org trap when you later log into a
53
58
  // different backend (e.g. local dev) without re-registering.
54
- (0, claude_mcp_1.removeClaudeMcp)();
59
+ if ((0, environment_1.getEnvironment)() === 'production')
60
+ (0, claude_mcp_1.removeClaudeMcp)();
55
61
  logger.success(`Logged out (was ${existing.email}) — cleared credentials + MCP registration`);
56
62
  });
57
63
  //# sourceMappingURL=logout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,qDAAuE;AACvE,qDAAuD;AACvD,wDAA0C;AAE7B,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,IAAA,4BAAc,GAAE,CAAC;IAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAA,8BAAgB,GAAE,CAAC;IACnB,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,6DAA6D;IAC7D,IAAA,4BAAe,GAAE,CAAC;IAClB,MAAM,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,4CAA4C,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,qDAAuE;AACvE,qDAA8D;AAC9D,qDAAuD;AACvD,wDAA0C;AAC1C,gDAAgD;AAEnC,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,4EAA4E;IAC5E,yCAAyC;IACzC,IAAA,qCAAuB,GAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAA,4BAAc,GAAE,CAAC;IAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAA,8BAAgB,GAAE,CAAC;IACnB,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,6DAA6D;IAC7D,IAAI,IAAA,4BAAc,GAAE,KAAK,YAAY;QAAE,IAAA,4BAAe,GAAE,CAAC;IACzD,MAAM,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,4CAA4C,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC"}
@@ -13,6 +13,14 @@ export declare function entryFreshnessReport(skills: EntrySkill[], runningVersio
13
13
  releasedHash: string | null;
14
14
  local: string;
15
15
  published: string;
16
+ hosts: {
17
+ local: string;
18
+ published: string;
19
+ host: string;
20
+ path: string;
21
+ hash: string | null;
22
+ location: "managed_link" | "linked_elsewhere" | "independent" | "unreadable";
23
+ }[];
16
24
  }[];
17
25
  };
18
26
  export declare function readEntryFreshnessReport(): Promise<{
@@ -27,6 +35,14 @@ export declare function readEntryFreshnessReport(): Promise<{
27
35
  releasedHash: string | null;
28
36
  local: string;
29
37
  published: string;
38
+ hosts: {
39
+ local: string;
40
+ published: string;
41
+ host: string;
42
+ path: string;
43
+ hash: string | null;
44
+ location: "managed_link" | "linked_elsewhere" | "independent" | "unreadable";
45
+ }[];
30
46
  }[];
31
47
  }>;
32
48
  export declare function reportEntrySkillFreshness(existing?: Awaited<ReturnType<typeof readEntryFreshnessReport>>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAA8D,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIrH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;EAoB1G;AAED,wBAAsB,wBAAwB;;;;;;;;;;;;;GAI7C;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9H;AAED,eAAO,MAAM,aAAa,SAC8C,CAAC"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAA8D,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAkCrH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;;;kBAxB/E,MAAM;kBAAQ,MAAM;kBAAQ,MAAM,GAAG,IAAI;sBAAY,cAAc,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY;;;EAiDlJ;AAED,wBAAsB,wBAAwB;;;;;;;;;;;;;;;kBAnDlB,MAAM;kBAAQ,MAAM;kBAAQ,MAAM,GAAG,IAAI;sBAAY,cAAc,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY;;;GAwDlJ;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9H;AAED,eAAO,MAAM,aAAa,SAC8C,CAAC"}