gooseworks 0.4.2 → 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 (156) hide show
  1. package/README.md +84 -22
  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 +29 -5
  27. package/dist/commands/doctor.d.ts.map +1 -1
  28. package/dist/commands/doctor.js +116 -63
  29. package/dist/commands/doctor.js.map +1 -1
  30. package/dist/commands/fetch.d.ts +1 -0
  31. package/dist/commands/fetch.d.ts.map +1 -1
  32. package/dist/commands/fetch.js +64 -29
  33. package/dist/commands/fetch.js.map +1 -1
  34. package/dist/commands/formats.js +2 -2
  35. package/dist/commands/formats.js.map +1 -1
  36. package/dist/commands/graphics/publish-flow.js +1 -1
  37. package/dist/commands/graphics/publish-flow.js.map +1 -1
  38. package/dist/commands/install.d.ts.map +1 -1
  39. package/dist/commands/install.js +126 -26
  40. package/dist/commands/install.js.map +1 -1
  41. package/dist/commands/launch.d.ts +3 -0
  42. package/dist/commands/launch.d.ts.map +1 -0
  43. package/dist/commands/launch.js +35 -0
  44. package/dist/commands/launch.js.map +1 -0
  45. package/dist/commands/login.d.ts +21 -1
  46. package/dist/commands/login.d.ts.map +1 -1
  47. package/dist/commands/login.js +112 -30
  48. package/dist/commands/login.js.map +1 -1
  49. package/dist/commands/logout.d.ts.map +1 -1
  50. package/dist/commands/logout.js +7 -1
  51. package/dist/commands/logout.js.map +1 -1
  52. package/dist/commands/skills.d.ts +50 -0
  53. package/dist/commands/skills.d.ts.map +1 -0
  54. package/dist/commands/skills.js +160 -0
  55. package/dist/commands/skills.js.map +1 -0
  56. package/dist/commands/styles.js +2 -2
  57. package/dist/commands/styles.js.map +1 -1
  58. package/dist/commands/tool.d.ts +17 -0
  59. package/dist/commands/tool.d.ts.map +1 -0
  60. package/dist/commands/tool.js +239 -0
  61. package/dist/commands/tool.js.map +1 -0
  62. package/dist/commands/update.d.ts.map +1 -1
  63. package/dist/commands/update.js +37 -6
  64. package/dist/commands/update.js.map +1 -1
  65. package/dist/commands/video-local.d.ts +9 -0
  66. package/dist/commands/video-local.d.ts.map +1 -0
  67. package/dist/commands/video-local.js +83 -0
  68. package/dist/commands/video-local.js.map +1 -0
  69. package/dist/commands/video-save.d.ts +3 -0
  70. package/dist/commands/video-save.d.ts.map +1 -0
  71. package/dist/commands/video-save.js +83 -0
  72. package/dist/commands/video-save.js.map +1 -0
  73. package/dist/config.d.ts.map +1 -1
  74. package/dist/config.js +14 -3
  75. package/dist/config.js.map +1 -1
  76. package/dist/environment.d.ts +9 -0
  77. package/dist/environment.d.ts.map +1 -0
  78. package/dist/environment.js +105 -0
  79. package/dist/environment.js.map +1 -0
  80. package/dist/index.js +12 -38
  81. package/dist/index.js.map +1 -1
  82. package/dist/lib/graphics-cache.d.ts.map +1 -1
  83. package/dist/lib/graphics-cache.js +2 -2
  84. package/dist/lib/graphics-cache.js.map +1 -1
  85. package/dist/lib/mcp-client.d.ts +53 -0
  86. package/dist/lib/mcp-client.d.ts.map +1 -0
  87. package/dist/lib/mcp-client.js +196 -0
  88. package/dist/lib/mcp-client.js.map +1 -0
  89. package/dist/lib/video-local-captions.d.ts +83 -0
  90. package/dist/lib/video-local-captions.d.ts.map +1 -0
  91. package/dist/lib/video-local-captions.js +261 -0
  92. package/dist/lib/video-local-captions.js.map +1 -0
  93. package/dist/lib/video-local-runtime.d.ts +8 -0
  94. package/dist/lib/video-local-runtime.d.ts.map +1 -0
  95. package/dist/lib/video-local-runtime.js +201 -0
  96. package/dist/lib/video-local-runtime.js.map +1 -0
  97. package/dist/lib/video-save-mcp.d.ts +9 -0
  98. package/dist/lib/video-save-mcp.d.ts.map +1 -0
  99. package/dist/lib/video-save-mcp.js +162 -0
  100. package/dist/lib/video-save-mcp.js.map +1 -0
  101. package/dist/lib/video-save.d.ts +77 -0
  102. package/dist/lib/video-save.d.ts.map +1 -0
  103. package/dist/lib/video-save.js +440 -0
  104. package/dist/lib/video-save.js.map +1 -0
  105. package/dist/program.d.ts +2 -0
  106. package/dist/program.d.ts.map +1 -0
  107. package/dist/program.js +56 -0
  108. package/dist/program.js.map +1 -0
  109. package/dist/skills/custom-video-skill.d.ts +3 -0
  110. package/dist/skills/custom-video-skill.d.ts.map +1 -0
  111. package/dist/skills/custom-video-skill.js +6 -0
  112. package/dist/skills/custom-video-skill.js.map +1 -0
  113. package/dist/skills/installer.d.ts +12 -6
  114. package/dist/skills/installer.d.ts.map +1 -1
  115. package/dist/skills/installer.js +82 -38
  116. package/dist/skills/installer.js.map +1 -1
  117. package/dist/skills/master-skill.d.ts +34 -28
  118. package/dist/skills/master-skill.d.ts.map +1 -1
  119. package/dist/skills/master-skill.js +2264 -858
  120. package/dist/skills/master-skill.js.map +1 -1
  121. package/dist/skills/package-freshness.d.ts +16 -0
  122. package/dist/skills/package-freshness.d.ts.map +1 -0
  123. package/dist/skills/package-freshness.js +36 -0
  124. package/dist/skills/package-freshness.js.map +1 -0
  125. package/dist/skills/releases.d.ts +12 -0
  126. package/dist/skills/releases.d.ts.map +1 -0
  127. package/dist/skills/releases.js +155 -0
  128. package/dist/skills/releases.js.map +1 -0
  129. package/dist/skills/routes.d.ts.map +1 -1
  130. package/dist/skills/routes.js +12 -6
  131. package/dist/skills/routes.js.map +1 -1
  132. package/dist/skills/staging-content.d.ts +3 -0
  133. package/dist/skills/staging-content.d.ts.map +1 -0
  134. package/dist/skills/staging-content.js +12 -0
  135. package/dist/skills/staging-content.js.map +1 -0
  136. package/dist/utils/browser-preflight.d.ts +29 -0
  137. package/dist/utils/browser-preflight.d.ts.map +1 -0
  138. package/dist/utils/browser-preflight.js +338 -0
  139. package/dist/utils/browser-preflight.js.map +1 -0
  140. package/dist/utils/http.d.ts +7 -1
  141. package/dist/utils/http.d.ts.map +1 -1
  142. package/dist/utils/http.js +5 -1
  143. package/dist/utils/http.js.map +1 -1
  144. package/package.json +11 -3
  145. package/skills/goose-ads/SKILL.md +509 -239
  146. package/skills/goose-product-photos/SKILL.md +161 -60
  147. package/skills/goose-video/SKILL.md +592 -259
  148. package/skills/goose-video-local/SKILL.md +1409 -236
  149. package/skills/gooseworks/SKILL.md +327 -34
  150. package/skills/make-custom-video/SKILL.md +735 -0
  151. package/skills/manifest.json +12 -0
  152. package/skills/routes.json +13 -6
  153. package/dist/skills/fetcher.d.ts +0 -18
  154. package/dist/skills/fetcher.d.ts.map +0 -1
  155. package/dist/skills/fetcher.js +0 -118
  156. package/dist/skills/fetcher.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ import { Command } from 'commander';
2
+ import { type EntrySkill } from '../skills/master-skill';
3
+ import { type ReleasedSkills } from '../skills/releases';
4
+ export declare function entryFreshnessReport(skills: EntrySkill[], runningVersion: string, release?: ReleasedSkills): {
5
+ runningVersion: string;
6
+ releasedVersion: string | null;
7
+ cli: string;
8
+ releaseSource: string | null;
9
+ entries: {
10
+ name: string;
11
+ installedHash: string | null;
12
+ bundledHash: string;
13
+ releasedHash: string | null;
14
+ local: string;
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
+ }[];
24
+ }[];
25
+ };
26
+ export declare function readEntryFreshnessReport(): Promise<{
27
+ runningVersion: string;
28
+ releasedVersion: string | null;
29
+ cli: string;
30
+ releaseSource: string | null;
31
+ entries: {
32
+ name: string;
33
+ installedHash: string | null;
34
+ bundledHash: string;
35
+ releasedHash: string | null;
36
+ local: string;
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
+ }[];
46
+ }[];
47
+ }>;
48
+ export declare function reportEntrySkillFreshness(existing?: Awaited<ReturnType<typeof readEntryFreshnessReport>>): Promise<void>;
49
+ export declare const skillsCommand: Command;
50
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,160 @@
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.skillsCommand = void 0;
37
+ exports.entryFreshnessReport = entryFreshnessReport;
38
+ exports.readEntryFreshnessReport = readEntryFreshnessReport;
39
+ exports.reportEntrySkillFreshness = reportEntrySkillFreshness;
40
+ const commander_1 = require("commander");
41
+ const master_skill_1 = require("../skills/master-skill");
42
+ const installer_1 = require("../skills/installer");
43
+ const releases_1 = require("../skills/releases");
44
+ const version_1 = require("../version");
45
+ const logger = __importStar(require("../utils/logger"));
46
+ const fs = __importStar(require("node:fs"));
47
+ const os = __importStar(require("os"));
48
+ const path = __importStar(require("node:path"));
49
+ const installer_2 = require("../skills/installer");
50
+ const environment_1 = require("../environment");
51
+ const staging_content_1 = require("../skills/staging-content");
52
+ /** A host can load a preserved real folder instead of our shared managed entry. */
53
+ function inspectHostEntries(name) {
54
+ if ((0, environment_1.getEnvironment)() === 'staging')
55
+ return [];
56
+ return ['codex', 'claude'].flatMap((host) => {
57
+ const dir = path.join(os.homedir(), `.${host}`, 'skills', name);
58
+ const file = path.join(dir, 'SKILL.md');
59
+ try {
60
+ if (!fs.lstatSync(dir, { throwIfNoEntry: false }))
61
+ return [];
62
+ if (!fs.statSync(file).isFile())
63
+ throw new Error('Not a skill file');
64
+ const isLink = fs.lstatSync(dir).isSymbolicLink();
65
+ let managed = false;
66
+ if (isLink) {
67
+ try {
68
+ managed = fs.realpathSync(dir) === fs.realpathSync(path.join((0, installer_2.getSkillsBasePath)(), name));
69
+ }
70
+ catch { /* A separate host link can exist without a shared install. */ }
71
+ }
72
+ return [{ host, path: file, hash: (0, releases_1.skillContentHash)(fs.readFileSync(file)), location: managed ? 'managed_link' : isLink ? 'linked_elsewhere' : 'independent' }];
73
+ }
74
+ catch {
75
+ return [{ host, path: file, hash: null, location: 'unreadable' }];
76
+ }
77
+ });
78
+ }
79
+ function entryFreshnessReport(skills, runningVersion, release) {
80
+ return {
81
+ runningVersion,
82
+ releasedVersion: release?.version ?? null,
83
+ cli: release ? (0, releases_1.compareReleaseVersion)(runningVersion, release.version) : 'unavailable',
84
+ releaseSource: release?.source ?? null,
85
+ entries: skills.map((skill) => {
86
+ const installed = (0, installer_1.inspectEntrySkill)(skill.name);
87
+ const bundledHash = (0, releases_1.skillContentHash)(skill.content);
88
+ const releasedHash = release?.hashes[skill.name] ?? null;
89
+ return {
90
+ name: skill.name,
91
+ installedHash: installed.hash ?? null,
92
+ bundledHash,
93
+ releasedHash,
94
+ local: installed.modified ? 'modified_or_untracked' : installed.missing ? 'missing' : installed.hash === bundledHash ? 'bundled' : 'different_from_bundle',
95
+ published: !release ? 'unavailable' : !releasedHash ? 'not_in_release' : installed.hash === releasedHash ? 'current' : installed.missing ? 'missing' : 'different_from_release',
96
+ hosts: inspectHostEntries(skill.name).map((host) => ({
97
+ ...host,
98
+ local: host.hash === bundledHash ? 'bundled' : host.hash ? 'different_from_bundle' : 'unreadable',
99
+ published: !release ? 'unavailable' : !releasedHash ? 'not_in_release' : host.hash === releasedHash ? 'current' : 'different_from_release',
100
+ })),
101
+ };
102
+ }),
103
+ };
104
+ }
105
+ async function readEntryFreshnessReport() {
106
+ let release;
107
+ try {
108
+ release = await (0, releases_1.getReleasedSkills)();
109
+ }
110
+ catch { /* offline is unknown, never current */ }
111
+ const skills = (0, master_skill_1.getEntrySkills)().map(skill => (0, environment_1.getEnvironment)() === 'staging' ? { ...skill, content: (0, staging_content_1.stagingContent)(skill.content) } : skill);
112
+ return entryFreshnessReport(skills, (0, version_1.getVersion)(), release);
113
+ }
114
+ async function reportEntrySkillFreshness(existing) {
115
+ const report = existing ?? await readEntryFreshnessReport();
116
+ if (report.cli === 'unavailable')
117
+ logger.warn('Published skill freshness could not be checked. Local setup can continue; run `gooseworks skills status` when online.');
118
+ else if (report.cli === 'outdated')
119
+ logger.warn(`CLI ${report.runningVersion} is older than published ${report.releasedVersion}. Run npm install -g gooseworks@latest, then gooseworks update; this CLI can only install its bundled instructions.`);
120
+ else if (report.cli === 'current')
121
+ logger.success(`CLI ${report.runningVersion} matches the latest published version.`);
122
+ else if (report.cli === 'unreleased')
123
+ logger.info(`CLI ${report.runningVersion} differs from published ${report.releasedVersion}; this may be an unreleased build. Do not downgrade an approved run.`);
124
+ for (const entry of report.entries) {
125
+ if (entry.local === 'modified_or_untracked')
126
+ logger.warn(`${entry.name}: local edits or unknown install provenance; preserved. Review/back up before gooseworks update --overwrite-modified.`);
127
+ else if (entry.local === 'missing')
128
+ logger.info(`${entry.name}: not installed.`);
129
+ else if (entry.local === 'different_from_bundle')
130
+ logger.warn(`${entry.name}: installed instructions differ from this CLI. Run gooseworks update after checking the published CLI version.`);
131
+ else if (entry.published === 'different_from_release')
132
+ logger.warn(`${entry.name}: installed instructions differ from the published package. Run gooseworks skills status --json to compare the release, bundle and local file.`);
133
+ for (const host of entry.hosts) {
134
+ if (host.location === 'managed_link')
135
+ continue;
136
+ if (host.local !== 'bundled' || host.published === 'different_from_release') {
137
+ logger.warn(`${entry.name}: ${host.host} loads a separate or unreadable copy at ${host.path}; preserved. Review/back up that host copy before replacing it. Shared entry updates do not replace independent host files.`);
138
+ }
139
+ }
140
+ }
141
+ if (report.entries.some((entry) => ['goose-video', 'goose-video-local', 'make-custom-video'].includes(entry.name)
142
+ && (entry.local !== 'bundled' || entry.published === 'different_from_release'
143
+ || entry.hosts.some((host) => host.local !== 'bundled' || host.published === 'different_from_release')))) {
144
+ logger.info('New video work can load the current matching entry with catalog_fetch on the selected GooseWorks connection. Save it in a new run folder; preserve edited local files and approved project packages.');
145
+ }
146
+ }
147
+ exports.skillsCommand = new commander_1.Command('skills')
148
+ .description('Inspect installed entry skills without replacing files');
149
+ exports.skillsCommand.command('status')
150
+ .description('Compare local instructions and this CLI with the latest published npm package')
151
+ .option('--json', 'Print hashes and release provenance as JSON')
152
+ .action(async (options) => {
153
+ if (options.json)
154
+ console.log(JSON.stringify(await readEntryFreshnessReport(), null, 2));
155
+ else {
156
+ await reportEntrySkillFreshness();
157
+ logger.info('This check covers bundled entry skills. Saved recipe packages use their connected server catalog hashes; MCP tool schemas have a separate host cache. Approved runs keep their pinned package.');
158
+ }
159
+ });
160
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
@@ -106,7 +106,7 @@ const publishCmd = new commander_1.Command('publish')
106
106
  await (0, publish_flow_1.runPublishFlow)({
107
107
  manifestFilename: graphics_manifest_1.STYLE_MANIFEST_FILENAME,
108
108
  validate: graphics_manifest_1.validateStyleManifest,
109
- hubUrl: (slug) => `${config_1.HUB_URL}/styles/${slug}`,
109
+ hubUrl: (slug) => config_1.HUB_URL ? `${config_1.HUB_URL}/styles/${slug}` : '',
110
110
  searchHint: (slug) => `gooseworks styles search ${slug}`,
111
111
  label: 'style',
112
112
  upload: (manifest, files) => (0, graphics_api_1.publishStyle)(auth, manifest, files),
@@ -121,7 +121,7 @@ const updateCmd = new commander_1.Command('update')
121
121
  await (0, publish_flow_1.runUpdateFlow)({
122
122
  manifestFilename: graphics_manifest_1.STYLE_MANIFEST_FILENAME,
123
123
  validate: graphics_manifest_1.validateStyleManifest,
124
- hubUrl: (s) => `${config_1.HUB_URL}/styles/${s}`,
124
+ hubUrl: (s) => config_1.HUB_URL ? `${config_1.HUB_URL}/styles/${s}` : '',
125
125
  searchHint: (s) => `gooseworks styles search ${s}`,
126
126
  label: 'style',
127
127
  upload: (manifest, files) => (0, graphics_api_1.updateStyle)(auth, slug, manifest, files),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/commands/styles.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,sCAAoC;AACpC,gEAGkC;AAClC,sDAS6B;AAC7B,8CAS2B;AAC3B,0DAAwE;AACxE,kDAAiD;AAYjD,SAAS,eAAe,CAAC,IAA+C;IACtE,OAAO,IAAA,oBAAW,EAAC,IAAI,EAAE;QACvB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAQ,EAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QACpD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QACtC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE;QACjD,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC3D,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE;KACvD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAChC,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;KAC5C,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC;KACxC,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC;KAC3C,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;KAC/C,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,IAAiB,EAAE,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAU,EAAC,IAAA,mBAAU,GAAE,EAAE;YACzC,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;YACzB,KAAK,EAAE,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YACvC,MAAM,EAAE,IAAA,oBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;SAC3C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,8BAAqB,EAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,SAAS,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACpC,WAAW,CAAC,sDAAsD,CAAC;KACnE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;KACnC,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;KACtD,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC;KAC3C,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAyD,EAAE,EAAE;IACzF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAU,EAAC,IAAA,mBAAU,GAAE,EAAE;YACzC,CAAC,EAAE,KAAK;YACR,KAAK,EAAE,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YACvC,MAAM,EAAE,IAAA,oBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;SAC3C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,MAAM,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,8BAAqB,EAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,MAAM,GAAG,IAAI,mBAAO,CAAC,KAAK,CAAC;KAC9B,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;KAChC,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC;KAC/D,MAAM,CAAC,oBAAoB,EAAE,2CAA2C,CAAC;KACzE,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;KAC/C,MAAM,CAAC,KAAK,EACX,IAAY,EACZ,IAAoE,EACpE,EAAE;IACF,MAAM,GAAG,GAAG,IAAA,mBAAU,GAAE,CAAC;IACzB,MAAM,IAAA,qBAAU,EACd;QACE,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAgB,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;QAC1D,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,6BAAc,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;KACvD,EACD,IAAI,EACJ;QACE,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,gDAAgD;QAChD,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;KAC9B,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACtC,WAAW,CAAC,mEAAmE,CAAC;KAChF,QAAQ,CAAC,QAAQ,EAAE,mCAAmC,EAAE,GAAG,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;KACrD,MAAM,CAAC,OAAO,EAAE,0DAA0D,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,IAAsC,EAAE,EAAE;IACpE,MAAM,IAAI,GAAG,IAAA,yBAAgB,GAAE,CAAC;IAChC,MAAM,IAAA,6BAAc,EAClB;QACE,gBAAgB,EAAE,2CAAuB;QACzC,QAAQ,EAAE,yCAAqB;QAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,gBAAO,WAAW,IAAI,EAAE;QAC7C,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,IAAI,EAAE;QACxD,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,2BAAY,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC;KACjE,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CACxC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,MAAM,SAAS,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACpC,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,QAAQ,CAAC,QAAQ,EAAE,mCAAmC,EAAE,GAAG,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,GAAW,EAAE,EAAE;IAC1C,MAAM,IAAI,GAAG,IAAA,yBAAgB,GAAE,CAAC;IAChC,MAAM,IAAA,4BAAa,EACjB;QACE,gBAAgB,EAAE,2CAAuB;QACzC,QAAQ,EAAE,yCAAqB;QAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,gBAAO,WAAW,CAAC,EAAE;QACvC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE;QAClD,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,0BAAW,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC;KACtE,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CACzB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,MAAM,SAAS,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACpC,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,OAAO,EAAE,8BAA8B,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAuB,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,IAAA,yBAAgB,GAAE,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,MAAM,IAAA,oBAAW,EAAC,iBAAiB,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAA,0BAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,8BAAqB,EAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC,CAAC;AAEQ,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,mCAAmC,CAAC;KAChD,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,SAAS,CAAC;KACrB,UAAU,CAAC,MAAM,CAAC;KAClB,UAAU,CAAC,UAAU,CAAC;KACtB,UAAU,CAAC,SAAS,CAAC;KACrB,UAAU,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/commands/styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Command } from 'commander';
2
+ import { type McpToolResult } from '../lib/mcp-client';
3
+ /** `mcp__gooseworks__account_whoami` → `account_whoami` (the name a coding agent shows). */
4
+ export declare function normalizeToolName(raw: string): string;
5
+ /** The call's arguments: inline JSON, `-` for stdin, or `--file`; `{}` when none. */
6
+ export declare function readToolArgs(inline: string | undefined, file: string | undefined, stdin?: () => string): Record<string, unknown>;
7
+ /**
8
+ * What the agent reads. A JSON text block is the server's model view of the
9
+ * result, so it is printed (pretty) and is enough. When the text is only a
10
+ * sentence, the fields an agent acts on (`next_step`, ids, statuses) are in
11
+ * `structuredContent.result`, so that is printed after it as "Data:".
12
+ * Images and resources are described, never dumped.
13
+ */
14
+ export declare function formatToolResult(result: McpToolResult): string;
15
+ export declare function createToolCommand(): Command;
16
+ export declare const toolCommand: Command;
17
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/commands/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAsE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAsB3H,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAE,MAAM,MAA0C,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAcnK;AASD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA8B9D;AA2BD,wBAAgB,iBAAiB,IAAI,OAAO,CAyF3C;AAED,eAAO,MAAM,WAAW,SAAsB,CAAC"}
@@ -0,0 +1,239 @@
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.toolCommand = void 0;
37
+ exports.normalizeToolName = normalizeToolName;
38
+ exports.readToolArgs = readToolArgs;
39
+ exports.formatToolResult = formatToolResult;
40
+ exports.createToolCommand = createToolCommand;
41
+ const fs = __importStar(require("fs"));
42
+ const commander_1 = require("commander");
43
+ const credentials_1 = require("../auth/credentials");
44
+ const mcp_client_1 = require("../lib/mcp-client");
45
+ const version_1 = require("../version");
46
+ const logger = __importStar(require("../utils/logger"));
47
+ /** `mcp__gooseworks__account_whoami` → `account_whoami` (the name a coding agent shows). */
48
+ function normalizeToolName(raw) {
49
+ const prefixed = /^mcp__[^_]+(?:_[^_]+)*?__(.+)$/.exec(raw.trim());
50
+ return (prefixed ? prefixed[1] : raw).trim();
51
+ }
52
+ /** The call's arguments: inline JSON, `-` for stdin, or `--file`; `{}` when none. */
53
+ function readToolArgs(inline, file, stdin = () => fs.readFileSync(0, 'utf-8')) {
54
+ if (inline !== undefined && file !== undefined)
55
+ throw new Error('Pass the arguments inline or with --file, not both.');
56
+ const raw = file !== undefined ? fs.readFileSync(file, 'utf-8') : inline === '-' ? stdin() : inline;
57
+ if (raw === undefined || !raw.trim())
58
+ return {};
59
+ let parsed;
60
+ try {
61
+ parsed = JSON.parse(raw);
62
+ }
63
+ catch (err) {
64
+ throw new Error(`Tool arguments must be a JSON object: ${err.message}`);
65
+ }
66
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
67
+ throw new Error('Tool arguments must be a JSON object, for example \'{"brand_id":"…"}\'.');
68
+ }
69
+ return parsed;
70
+ }
71
+ function firstSentence(text) {
72
+ if (!text)
73
+ return '';
74
+ const line = text.trim().split(/\r?\n/)[0];
75
+ const match = /^(.{1,200}?[.!?])(\s|$)/.exec(line);
76
+ return (match ? match[1] : line.slice(0, 200)).trim();
77
+ }
78
+ /**
79
+ * What the agent reads. A JSON text block is the server's model view of the
80
+ * result, so it is printed (pretty) and is enough. When the text is only a
81
+ * sentence, the fields an agent acts on (`next_step`, ids, statuses) are in
82
+ * `structuredContent.result`, so that is printed after it as "Data:".
83
+ * Images and resources are described, never dumped.
84
+ */
85
+ function formatToolResult(result) {
86
+ const blocks = Array.isArray(result.content) ? result.content : [];
87
+ const parts = [];
88
+ let sawJsonText = false;
89
+ for (const block of blocks) {
90
+ if (block.type === 'text' && typeof block.text === 'string') {
91
+ try {
92
+ parts.push(JSON.stringify(JSON.parse(block.text), null, 2));
93
+ sawJsonText = true;
94
+ }
95
+ catch {
96
+ parts.push(block.text);
97
+ }
98
+ }
99
+ else if (block.type === 'image') {
100
+ parts.push(`[image${block.mimeType ? ` ${block.mimeType}` : ''}]`);
101
+ }
102
+ else if (block.type === 'resource' || block.type === 'resource_link') {
103
+ const uri = block.uri ?? block.resource?.uri;
104
+ parts.push(`[resource${uri ? ` ${uri}` : ''}]`);
105
+ }
106
+ else {
107
+ parts.push(`[${block.type}]`);
108
+ }
109
+ }
110
+ const structured = result.structuredContent;
111
+ if (!sawJsonText && structured !== undefined && structured !== null) {
112
+ // The server wraps the data as { result }; print just the data then.
113
+ const keys = typeof structured === 'object' && !Array.isArray(structured) ? Object.keys(structured) : [];
114
+ const data = keys.length === 1 && keys[0] === 'result' ? structured.result : structured;
115
+ const json = JSON.stringify(data, null, 2);
116
+ parts.push(parts.length ? `\nData:\n${json}` : json);
117
+ }
118
+ return parts.join('\n');
119
+ }
120
+ function suggest(name, tools) {
121
+ const close = tools
122
+ .map((t) => t.name)
123
+ .filter((n) => n.includes(name) || name.includes(n) || n.split('_')[0] === name.split('_')[0])
124
+ .slice(0, 5);
125
+ return close.length ? ` Did you mean: ${close.join(', ')}?` : ' Run `npx gooseworks tool --list` to see them.';
126
+ }
127
+ async function withConnection(timeoutSeconds, work) {
128
+ const creds = (0, credentials_1.getCredentials)();
129
+ if (!creds)
130
+ throw new mcp_client_1.McpError('Not logged in. ' + mcp_client_1.LOGIN_HINT);
131
+ const seconds = timeoutSeconds === undefined ? undefined : Number(timeoutSeconds);
132
+ if (seconds !== undefined && (!Number.isFinite(seconds) || seconds <= 0))
133
+ throw new Error('--timeout must be a number of seconds.');
134
+ const mcp = await (0, mcp_client_1.connectMcp)(creds, {
135
+ clientName: 'gooseworks-cli-tool',
136
+ version: (0, version_1.getVersion)(),
137
+ ...(seconds ? { timeoutMs: seconds * 1000 } : {}),
138
+ });
139
+ try {
140
+ return await work(mcp);
141
+ }
142
+ finally {
143
+ await mcp.close();
144
+ }
145
+ }
146
+ function createToolCommand() {
147
+ return new commander_1.Command('tool')
148
+ .description('Call a GooseWorks tool (the same tools as the GooseWorks MCP connector) with your saved sign-in')
149
+ .argument('[name]', 'Tool name, e.g. account_whoami or brand_onboarding')
150
+ .argument('[args]', 'Arguments as a JSON object, or - to read them from stdin')
151
+ .option('--list', 'List the tools, with the server\'s rules for using them')
152
+ .option('--schema', 'Show the tool\'s description and input schema instead of calling it')
153
+ .option('--file <path>', 'Read the arguments (a JSON object) from a file')
154
+ .option('--json', 'Print the raw result (or list) as JSON')
155
+ .option('--timeout <seconds>', 'Give up waiting after this many seconds (default 300)')
156
+ .addHelpText('after', `
157
+ Examples:
158
+ $ gooseworks tool --list
159
+ $ gooseworks tool brand_onboarding --schema
160
+ $ gooseworks tool account_whoami
161
+ $ gooseworks tool brand_onboarding '{"action":"status"}'
162
+
163
+ Use this when GooseWorks tools are not connected to your agent (for example
164
+ a cloud sandbox). The server's rules still apply: paid work needs the user's
165
+ yes first.`)
166
+ .action(async (rawName, rawArgs, opts) => {
167
+ try {
168
+ if (opts.list) {
169
+ await withConnection(opts.timeout, async (mcp) => {
170
+ const tools = await mcp.listTools();
171
+ if (opts.json) {
172
+ console.log(JSON.stringify({ instructions: mcp.instructions, tools }, null, 2));
173
+ return;
174
+ }
175
+ if (mcp.instructions) {
176
+ console.log('Rules from GooseWorks for using these tools:\n');
177
+ console.log(mcp.instructions);
178
+ console.log('');
179
+ }
180
+ console.log(`${tools.length} tools. Call one with: npx gooseworks tool <name> '<json arguments>'\n`);
181
+ for (const tool of [...tools].sort((a, b) => a.name.localeCompare(b.name))) {
182
+ const summary = firstSentence(tool.description);
183
+ console.log(summary ? `${tool.name} — ${summary}` : tool.name);
184
+ }
185
+ });
186
+ return;
187
+ }
188
+ if (!rawName) {
189
+ logger.error('Name a tool, or run `npx gooseworks tool --list`.');
190
+ process.exit(1);
191
+ return;
192
+ }
193
+ const name = normalizeToolName(rawName);
194
+ if (opts.schema) {
195
+ await withConnection(opts.timeout, async (mcp) => {
196
+ const tool = (await mcp.listTools()).find((t) => t.name === name);
197
+ if (!tool)
198
+ throw new mcp_client_1.McpError(`There is no GooseWorks tool named ${name}.`);
199
+ if (opts.json) {
200
+ console.log(JSON.stringify(tool, null, 2));
201
+ return;
202
+ }
203
+ console.log(`${tool.name}\n`);
204
+ if (tool.description)
205
+ console.log(`${tool.description.trim()}\n`);
206
+ console.log('Input schema:');
207
+ console.log(JSON.stringify(tool.inputSchema ?? {}, null, 2));
208
+ });
209
+ return;
210
+ }
211
+ const args = readToolArgs(rawArgs, opts.file);
212
+ let failed = false;
213
+ await withConnection(opts.timeout, async (mcp) => {
214
+ let result;
215
+ try {
216
+ result = await mcp.callTool(name, args);
217
+ }
218
+ catch (err) {
219
+ // An unknown tool comes back as a JSON-RPC error; name the close ones.
220
+ if (err instanceof mcp_client_1.McpError && /not found|unknown tool/i.test(err.message)) {
221
+ const tools = await mcp.listTools().catch(() => []);
222
+ throw new mcp_client_1.McpError(`There is no GooseWorks tool named ${name}.${suggest(name, tools)}`);
223
+ }
224
+ throw err;
225
+ }
226
+ console.log(opts.json ? JSON.stringify(result, null, 2) : formatToolResult(result));
227
+ failed = result.isError === true;
228
+ });
229
+ if (failed)
230
+ process.exit(1);
231
+ }
232
+ catch (err) {
233
+ logger.error(err instanceof Error ? err.message : String(err));
234
+ process.exit(1);
235
+ }
236
+ });
237
+ }
238
+ exports.toolCommand = createToolCommand();
239
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/commands/tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,aAAa,SAqDtB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,aAAa,SA2EtB,CAAC"}
@@ -44,18 +44,49 @@ const cursor_1 = require("../agents/cursor");
44
44
  const detect_1 = require("../agents/detect");
45
45
  const master_skill_1 = require("../skills/master-skill");
46
46
  const logger = __importStar(require("../utils/logger"));
47
+ const skills_1 = require("./skills");
48
+ const environment_1 = require("../environment");
49
+ const staging_1 = require("../agents/staging");
47
50
  exports.updateCommand = new commander_1.Command('update')
48
- .description('Update GooseWorks skill to the latest version')
49
- .action(async () => {
51
+ .description('Refresh entry skills from this installed CLI; preserve edited files and saved recipes')
52
+ .option('--overwrite-modified', 'Replace edited or untracked managed entry files after you back them up')
53
+ .option('--project <folder>', 'Required for the staging installation to refresh')
54
+ .action(async (opts) => {
55
+ if ((0, environment_1.getEnvironment)() === 'staging') {
56
+ if (!opts.project)
57
+ throw new Error('Staging update requires --project <folder>');
58
+ const { projectProfile } = await Promise.resolve().then(() => __importStar(require('../agents/staging')));
59
+ const fs = await Promise.resolve().then(() => __importStar(require('node:fs')));
60
+ const manifest = JSON.parse(fs.readFileSync(projectProfile(opts.project).manifest, 'utf8'));
61
+ for (const agent of manifest.agents)
62
+ (0, staging_1.stagingLaunch)(opts.project, agent);
63
+ const results = (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)().map(skill => ({ ...skill, content: (0, staging_1.stagingContent)(skill.content) })), { overwriteModified: opts.overwriteModified });
64
+ if (results.some(result => result.action === 'preserved'))
65
+ throw new Error('Review/back up edited staging entry files before --overwrite-modified');
66
+ (0, staging_1.installStagingProject)(opts.project, manifest.agents);
67
+ logger.done('Staging updated. Close the previous staging session and launch a fresh one.');
68
+ return;
69
+ }
70
+ if (opts.project)
71
+ throw new Error('This is a staging project install. Pass --env staging update --project <folder>.');
50
72
  const creds = (0, credentials_1.getCredentials)();
51
73
  if (!creds) {
52
74
  logger.error('Not logged in. Run "gooseworks login" first.');
53
75
  process.exit(1);
54
76
  }
77
+ const freshness = await (0, skills_1.readEntryFreshnessReport)();
78
+ await (0, skills_1.reportEntrySkillFreshness)(freshness);
79
+ if (freshness.cli === 'outdated') {
80
+ logger.error('Entry refresh refused: upgrade this CLI before installing its bundled instructions. No skill files were changed.');
81
+ process.exit(1);
82
+ return;
83
+ }
55
84
  logger.step(1, 2, 'Updating skills...');
56
- (0, installer_1.removeAllSkills)();
57
- for (const r of (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)(), { force: true })) {
58
- logger.success(`Updated ${r.name} skill`);
85
+ for (const r of (0, installer_1.installManagedEntrySkills)((0, master_skill_1.getEntrySkills)(), { overwriteModified: opts.overwriteModified })) {
86
+ if (r.action === 'preserved')
87
+ logger.warn(`Preserved edited or untracked ${r.name}; review/back up before --overwrite-modified.`);
88
+ else
89
+ logger.success(`${r.action === 'installed' ? 'Updated' : 'Kept'} ${r.name} skill`);
59
90
  }
60
91
  logger.step(2, 2, 'Reconfiguring agents...');
61
92
  if ((0, detect_1.isAgentInstalled)('claude')) {
@@ -90,6 +121,6 @@ exports.updateCommand = new commander_1.Command('update')
90
121
  logger.info('Cursor installed but MCP was not previously configured — skipped');
91
122
  }
92
123
  }
93
- logger.done('Update complete!');
124
+ logger.done('Bundled entry refresh complete. Standalone recipes and project-pinned packages were preserved.');
94
125
  });
95
126
  //# sourceMappingURL=update.js.map