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
@@ -0,0 +1,105 @@
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
+ // Staging's customer MCP (the one `cal_` keys use) is app-mcp.staging; mcp.staging
98
+ // is its internal sandbox MCP. Production names them the other way round.
99
+ : ['mcp.gooseworks.ai', 'sandbox-mcp.gooseworks.ai', 'mcp.staging.gooseworks.ai', 'app-mcp.staging.gooseworks.ai'];
100
+ if (!allowed.includes(url.hostname))
101
+ throw new Error(`Unrecognized ${kind} connection host: ${url.hostname}`);
102
+ if (kind === 'api' && url.pathname !== '/' && url.pathname !== '')
103
+ throw new Error('API base must be an origin');
104
+ }
105
+ //# 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,49 +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 video_local_1 = require("./commands/video-local");
21
- const video_save_1 = require("./commands/video-save");
22
- const version_1 = require("./version");
23
- const skills_1 = require("./commands/skills");
24
- const program = new commander_1.Command();
25
- program
26
- .name('gooseworks')
27
- .description('GooseWorks CLI — give your coding agent real data tools')
28
- .version((0, version_1.getVersion)());
29
- program.addCommand(install_1.installCommand);
30
- program.addCommand(login_1.loginCommand);
31
- program.addCommand(logout_1.logoutCommand);
32
- program.addCommand(whoami_1.whoamiCommand);
33
- program.addCommand(update_1.updateCommand);
34
- program.addCommand(skills_1.skillsCommand);
35
- program.addCommand(credits_1.creditsCommand);
36
- program.addCommand(search_1.searchCommand);
37
- program.addCommand(fetch_1.fetchCommand);
38
- program.addCommand(env_1.envCommand);
39
- program.addCommand(call_1.callCommand);
40
- program.addCommand(orthogonal_1.orthogonalCommand);
41
- program.addCommand(styles_1.stylesCommand);
42
- program.addCommand(formats_1.formatsCommand);
43
- program.addCommand(doctor_1.doctorCommand);
44
- program.addCommand(log_1.logCommand);
45
- // Hidden: serves only paused server video orders (see commands/video-local.ts).
46
- program.addCommand(video_local_1.videoLocalCommand, { hidden: true });
47
- program.addCommand(video_save_1.videoSaveCommand);
48
- 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();
49
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,wDAA2D;AAC3D,sDAAyD;AACzD,uCAAuC;AACvC,8CAAkD;AAElD,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,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;AAC/B,gFAAgF;AAChF,OAAO,CAAC,UAAU,CAAC,+BAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,OAAO,CAAC,UAAU,CAAC,6BAAgB,CAAC,CAAC;AAErC,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,53 @@
1
+ /**
2
+ * A small MCP client for the GooseWorks MCP server (Streamable HTTP), using
3
+ * the saved CLI sign-in. It lets an agent that has a shell but no MCP
4
+ * connector (a cloud agent's sandbox: ChatGPT agent, Meta AI, Grok) call the
5
+ * same GooseWorks tools a connected agent calls (GOOSE-3937).
6
+ *
7
+ * One connection per CLI run: initialize → tools/list or tools/call → DELETE
8
+ * the session. The endpoint is `<mcp_server_url>/mcp`, the same one the CLI
9
+ * registers for Claude Code and Codex.
10
+ */
11
+ import type { Credentials } from '../auth/credentials';
12
+ export declare const LOGIN_HINT = "Run `npx gooseworks login` (cloud sandbox or SSH: `npx gooseworks login --device --no-wait`).";
13
+ export interface McpTool {
14
+ name: string;
15
+ description?: string;
16
+ inputSchema?: unknown;
17
+ }
18
+ export interface McpContentBlock {
19
+ type: string;
20
+ text?: string;
21
+ mimeType?: string;
22
+ uri?: string;
23
+ resource?: {
24
+ uri?: string;
25
+ mimeType?: string;
26
+ text?: string;
27
+ };
28
+ }
29
+ export interface McpToolResult {
30
+ content?: McpContentBlock[];
31
+ structuredContent?: unknown;
32
+ isError?: boolean;
33
+ [key: string]: unknown;
34
+ }
35
+ export interface McpConnection {
36
+ /** The server's own usage rules (paid work, approvals), if it sends any. */
37
+ instructions: string | null;
38
+ listTools(): Promise<McpTool[]>;
39
+ callTool(name: string, args: Record<string, unknown>): Promise<McpToolResult>;
40
+ close(): Promise<void>;
41
+ }
42
+ export declare class McpError extends Error {
43
+ readonly status?: number | undefined;
44
+ constructor(message: string, status?: number | undefined);
45
+ }
46
+ /** `<mcp_server_url>/mcp`; HTTPS only, except a local dev server. */
47
+ export declare function mcpEndpoint(mcpServerUrl: string): URL;
48
+ export declare function connectMcp(creds: Credentials, opts?: {
49
+ timeoutMs?: number;
50
+ clientName?: string;
51
+ version?: string;
52
+ }): Promise<McpConnection>;
53
+ //# sourceMappingURL=mcp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,eAAO,MAAM,UAAU,kGAC0E,CAAC;AAElG,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,QAAS,SAAQ,KAAK;IACJ,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAAzC,OAAO,EAAE,MAAM,EAAW,MAAM,CAAC,EAAE,MAAM,YAAA;CAItD;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAUrD;AAiDD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvE,OAAO,CAAC,aAAa,CAAC,CA2GxB"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.McpError = exports.LOGIN_HINT = void 0;
4
+ exports.mcpEndpoint = mcpEndpoint;
5
+ exports.connectMcp = connectMcp;
6
+ const MAX_RESPONSE_BYTES = 8 * 1024 * 1024;
7
+ const DEFAULT_TIMEOUT_MS = 5 * 60_000;
8
+ const PROTOCOL_VERSION = '2025-03-26';
9
+ exports.LOGIN_HINT = 'Run `npx gooseworks login` (cloud sandbox or SSH: `npx gooseworks login --device --no-wait`).';
10
+ class McpError extends Error {
11
+ status;
12
+ constructor(message, status) {
13
+ super(message);
14
+ this.status = status;
15
+ this.name = 'McpError';
16
+ }
17
+ }
18
+ exports.McpError = McpError;
19
+ /** `<mcp_server_url>/mcp`; HTTPS only, except a local dev server. */
20
+ function mcpEndpoint(mcpServerUrl) {
21
+ const url = new URL(mcpServerUrl);
22
+ const local = ['127.0.0.1', 'localhost', '[::1]'].includes(url.hostname);
23
+ if (url.username || url.password || url.hash || url.search ||
24
+ (url.protocol !== 'https:' && !(url.protocol === 'http:' && local))) {
25
+ throw new McpError('The saved GooseWorks MCP address is not a plain HTTPS URL. ' + exports.LOGIN_HINT);
26
+ }
27
+ const path = url.pathname.replace(/\/+$/, '');
28
+ url.pathname = path.endsWith('/mcp') ? path : `${path}/mcp`;
29
+ return url;
30
+ }
31
+ async function readBounded(response) {
32
+ const length = Number(response.headers.get('content-length'));
33
+ if (length > MAX_RESPONSE_BYTES)
34
+ throw new McpError('The GooseWorks reply is too large (over 8 MB).');
35
+ if (!response.body)
36
+ return '';
37
+ const reader = response.body.getReader();
38
+ const chunks = [];
39
+ let size = 0;
40
+ try {
41
+ for (;;) {
42
+ const { value, done } = await reader.read();
43
+ if (done)
44
+ break;
45
+ size += value.length;
46
+ if (size > MAX_RESPONSE_BYTES)
47
+ throw new McpError('The GooseWorks reply is too large (over 8 MB).');
48
+ chunks.push(Buffer.from(value));
49
+ }
50
+ }
51
+ finally {
52
+ await reader.cancel().catch(() => undefined);
53
+ }
54
+ return Buffer.concat(chunks).toString('utf8');
55
+ }
56
+ /** The JSON-RPC message with `id` from a JSON or SSE (text/event-stream) body. */
57
+ function pickMessage(body, contentType, id) {
58
+ if (contentType?.includes('text/event-stream')) {
59
+ let found;
60
+ for (const event of body.split(/\r?\n\r?\n/)) {
61
+ const data = event.split(/\r?\n/)
62
+ .filter((line) => line.startsWith('data:'))
63
+ .map((line) => line.slice(5).trimStart())
64
+ .join('\n');
65
+ if (!data)
66
+ continue;
67
+ try {
68
+ const parsed = JSON.parse(data);
69
+ if (parsed?.id === id)
70
+ found = parsed;
71
+ }
72
+ catch {
73
+ // Ignore non-JSON keep-alive events.
74
+ }
75
+ }
76
+ return found;
77
+ }
78
+ try {
79
+ return JSON.parse(body);
80
+ }
81
+ catch {
82
+ return undefined;
83
+ }
84
+ }
85
+ async function connectMcp(creds, opts = {}) {
86
+ if (!creds.mcp_server_url) {
87
+ throw new McpError('This sign-in has no GooseWorks MCP address. ' + exports.LOGIN_HINT);
88
+ }
89
+ const endpoint = mcpEndpoint(creds.mcp_server_url);
90
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
91
+ let session;
92
+ let protocol = PROTOCOL_VERSION;
93
+ let sequence = 0;
94
+ const headers = () => ({
95
+ Authorization: `Bearer ${creds.api_key}`,
96
+ 'Content-Type': 'application/json',
97
+ Accept: 'application/json, text/event-stream',
98
+ 'MCP-Protocol-Version': protocol,
99
+ ...(session ? { 'Mcp-Session-Id': session } : {}),
100
+ });
101
+ const rpc = async (method, params, notification = false) => {
102
+ const id = ++sequence;
103
+ let response;
104
+ try {
105
+ response = await fetch(endpoint, {
106
+ method: 'POST',
107
+ redirect: 'error',
108
+ signal: AbortSignal.timeout(timeoutMs),
109
+ headers: headers(),
110
+ body: JSON.stringify({ jsonrpc: '2.0', ...(notification ? {} : { id }), method, params }),
111
+ });
112
+ }
113
+ catch (err) {
114
+ const timedOut = err instanceof Error && (err.name === 'TimeoutError' || err.name === 'AbortError');
115
+ throw new McpError(timedOut
116
+ ? `GooseWorks did not answer within ${Math.round(timeoutMs / 1000)} seconds. Try again, or pass --timeout.`
117
+ : `Could not reach GooseWorks at ${endpoint.origin}. Check the connection and try again.`);
118
+ }
119
+ if (response.status === 401 || response.status === 403) {
120
+ await response.body?.cancel();
121
+ throw new McpError('GooseWorks did not accept this sign-in. ' + exports.LOGIN_HINT, response.status);
122
+ }
123
+ if (!response.ok) {
124
+ await response.body?.cancel();
125
+ throw new McpError(`GooseWorks answered HTTP ${response.status}. Try again in a moment.`, response.status);
126
+ }
127
+ session = response.headers.get('mcp-session-id') ?? session;
128
+ if (notification) {
129
+ await response.body?.cancel();
130
+ return undefined;
131
+ }
132
+ const message = pickMessage(await readBounded(response), response.headers.get('content-type'), id);
133
+ if (!message || message.id !== id)
134
+ throw new McpError('GooseWorks sent an unexpected reply.');
135
+ if (message.error) {
136
+ const text = typeof message.error.message === 'string' ? message.error.message : 'unknown error';
137
+ throw new McpError(`GooseWorks refused the request: ${text}`);
138
+ }
139
+ return message.result;
140
+ };
141
+ const initialized = await rpc('initialize', {
142
+ protocolVersion: protocol,
143
+ capabilities: {},
144
+ clientInfo: { name: opts.clientName ?? 'gooseworks-cli', version: opts.version ?? '1' },
145
+ });
146
+ if (typeof initialized?.protocolVersion === 'string')
147
+ protocol = initialized.protocolVersion;
148
+ await rpc('notifications/initialized', {}, true);
149
+ const instructions = typeof initialized?.instructions === 'string' && initialized.instructions.trim()
150
+ ? initialized.instructions.trim()
151
+ : null;
152
+ return {
153
+ instructions,
154
+ async listTools() {
155
+ const tools = [];
156
+ const seen = new Set();
157
+ let cursor;
158
+ do {
159
+ const page = await rpc('tools/list', cursor ? { cursor } : {});
160
+ for (const tool of Array.isArray(page?.tools) ? page.tools : []) {
161
+ if (tool && typeof tool.name === 'string')
162
+ tools.push(tool);
163
+ }
164
+ const next = page?.nextCursor;
165
+ if (next !== undefined && next !== null && (typeof next !== 'string' || seen.has(next) || seen.size >= 100)) {
166
+ throw new McpError('GooseWorks sent an unexpected tool list.');
167
+ }
168
+ if (next)
169
+ seen.add(next);
170
+ cursor = next || undefined;
171
+ } while (cursor);
172
+ return tools;
173
+ },
174
+ async callTool(name, args) {
175
+ const result = await rpc('tools/call', { name, arguments: args });
176
+ return (result ?? {});
177
+ },
178
+ async close() {
179
+ if (!session)
180
+ return;
181
+ try {
182
+ const response = await fetch(endpoint, {
183
+ method: 'DELETE',
184
+ redirect: 'error',
185
+ signal: AbortSignal.timeout(10_000),
186
+ headers: headers(),
187
+ });
188
+ await response.body?.cancel();
189
+ }
190
+ catch {
191
+ // The server also cleans up idle sessions.
192
+ }
193
+ },
194
+ };
195
+ }
196
+ //# sourceMappingURL=mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/lib/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function run(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAuBA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BvD"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = run;
4
+ const commander_1 = require("commander");
5
+ const install_1 = require("./commands/install");
6
+ const login_1 = require("./commands/login");
7
+ const logout_1 = require("./commands/logout");
8
+ const whoami_1 = require("./commands/whoami");
9
+ const update_1 = require("./commands/update");
10
+ const credits_1 = require("./commands/credits");
11
+ const search_1 = require("./commands/search");
12
+ const fetch_1 = require("./commands/fetch");
13
+ const env_1 = require("./commands/env");
14
+ const call_1 = require("./commands/call");
15
+ const tool_1 = require("./commands/tool");
16
+ const orthogonal_1 = require("./commands/orthogonal");
17
+ const styles_1 = require("./commands/styles");
18
+ const formats_1 = require("./commands/formats");
19
+ const doctor_1 = require("./commands/doctor");
20
+ const log_1 = require("./commands/log");
21
+ const video_local_1 = require("./commands/video-local");
22
+ const video_save_1 = require("./commands/video-save");
23
+ const version_1 = require("./version");
24
+ const skills_1 = require("./commands/skills");
25
+ const launch_1 = require("./commands/launch");
26
+ async function run(args) {
27
+ const program = new commander_1.Command();
28
+ program
29
+ .name('gooseworks')
30
+ .description('GooseWorks CLI — give your coding agent real data tools')
31
+ .version((0, version_1.getVersion)())
32
+ .option('--env <environment>', 'production (default) or staging; may appear before or after the command');
33
+ program.addCommand(install_1.installCommand);
34
+ program.addCommand(launch_1.launchCommand);
35
+ program.addCommand(login_1.loginCommand);
36
+ program.addCommand(logout_1.logoutCommand);
37
+ program.addCommand(whoami_1.whoamiCommand);
38
+ program.addCommand(update_1.updateCommand);
39
+ program.addCommand(skills_1.skillsCommand);
40
+ program.addCommand(credits_1.creditsCommand);
41
+ program.addCommand(search_1.searchCommand);
42
+ program.addCommand(fetch_1.fetchCommand);
43
+ program.addCommand(env_1.envCommand);
44
+ program.addCommand(call_1.callCommand);
45
+ program.addCommand(tool_1.toolCommand);
46
+ program.addCommand(orthogonal_1.orthogonalCommand);
47
+ program.addCommand(styles_1.stylesCommand);
48
+ program.addCommand(formats_1.formatsCommand);
49
+ program.addCommand(doctor_1.doctorCommand);
50
+ program.addCommand(log_1.logCommand);
51
+ // Hidden: serves only paused server video orders (see commands/video-local.ts).
52
+ program.addCommand(video_local_1.videoLocalCommand, { hidden: true });
53
+ program.addCommand(video_save_1.videoSaveCommand);
54
+ await program.parseAsync(args, { from: 'user' });
55
+ }
56
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":";;AAuBA,kBA+BC;AAtDD,yCAAoC;AACpC,gDAAoD;AACpD,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,0CAA8C;AAC9C,sDAA0D;AAC1D,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,wCAA4C;AAC5C,wDAA2D;AAC3D,sDAAyD;AACzD,uCAAuC;AACvC,8CAAkD;AAClD,8CAAkD;AAE3C,KAAK,UAAU,GAAG,CAAC,IAAc;IACxC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CAAC,yDAAyD,CAAC;SACtE,OAAO,CAAC,IAAA,oBAAU,GAAE,CAAC;SACrB,MAAM,CAAC,qBAAqB,EAAE,yEAAyE,CAAC,CAAC;IAE5G,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;IAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;IAC/B,gFAAgF;IAChF,OAAO,CAAC,UAAU,CAAC,+BAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,UAAU,CAAC,6BAAgB,CAAC,CAAC;IAErC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACjD,CAAC"}