@autonomee/gohub 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +57 -0
  3. package/bin/clawdhub.js +2 -0
  4. package/bin/gohub.js +2 -0
  5. package/dist/browserAuth.d.ts +20 -0
  6. package/dist/browserAuth.js +156 -0
  7. package/dist/browserAuth.js.map +1 -0
  8. package/dist/browserAuth.test.d.ts +1 -0
  9. package/dist/browserAuth.test.js +83 -0
  10. package/dist/browserAuth.test.js.map +1 -0
  11. package/dist/cli/authToken.d.ts +2 -0
  12. package/dist/cli/authToken.js +13 -0
  13. package/dist/cli/authToken.js.map +1 -0
  14. package/dist/cli/autonomeeConfig.d.ts +1 -0
  15. package/dist/cli/autonomeeConfig.js +2 -0
  16. package/dist/cli/autonomeeConfig.js.map +1 -0
  17. package/dist/cli/buildInfo.d.ts +3 -0
  18. package/dist/cli/buildInfo.js +104 -0
  19. package/dist/cli/buildInfo.js.map +1 -0
  20. package/dist/cli/clawdbotConfig.d.ts +6 -0
  21. package/dist/cli/clawdbotConfig.js +155 -0
  22. package/dist/cli/clawdbotConfig.js.map +1 -0
  23. package/dist/cli/clawdbotConfig.test.d.ts +1 -0
  24. package/dist/cli/clawdbotConfig.test.js +199 -0
  25. package/dist/cli/clawdbotConfig.test.js.map +1 -0
  26. package/dist/cli/commands/auth.d.ts +9 -0
  27. package/dist/cli/commands/auth.js +74 -0
  28. package/dist/cli/commands/auth.js.map +1 -0
  29. package/dist/cli/commands/auth.test.d.ts +1 -0
  30. package/dist/cli/commands/auth.test.js +50 -0
  31. package/dist/cli/commands/auth.test.js.map +1 -0
  32. package/dist/cli/commands/delete.d.ts +28 -0
  33. package/dist/cli/commands/delete.js +94 -0
  34. package/dist/cli/commands/delete.js.map +1 -0
  35. package/dist/cli/commands/delete.test.d.ts +1 -0
  36. package/dist/cli/commands/delete.test.js +61 -0
  37. package/dist/cli/commands/delete.test.js.map +1 -0
  38. package/dist/cli/commands/inspect.d.ts +12 -0
  39. package/dist/cli/commands/inspect.js +281 -0
  40. package/dist/cli/commands/inspect.js.map +1 -0
  41. package/dist/cli/commands/inspect.test.d.ts +1 -0
  42. package/dist/cli/commands/inspect.test.js +151 -0
  43. package/dist/cli/commands/inspect.test.js.map +1 -0
  44. package/dist/cli/commands/moderation.d.ts +19 -0
  45. package/dist/cli/commands/moderation.js +161 -0
  46. package/dist/cli/commands/moderation.js.map +1 -0
  47. package/dist/cli/commands/moderation.test.d.ts +1 -0
  48. package/dist/cli/commands/moderation.test.js +147 -0
  49. package/dist/cli/commands/moderation.test.js.map +1 -0
  50. package/dist/cli/commands/ownership.d.ts +15 -0
  51. package/dist/cli/commands/ownership.js +76 -0
  52. package/dist/cli/commands/ownership.js.map +1 -0
  53. package/dist/cli/commands/ownership.test.d.ts +1 -0
  54. package/dist/cli/commands/ownership.test.js +68 -0
  55. package/dist/cli/commands/ownership.test.js.map +1 -0
  56. package/dist/cli/commands/publish.d.ts +9 -0
  57. package/dist/cli/commands/publish.js +85 -0
  58. package/dist/cli/commands/publish.js.map +1 -0
  59. package/dist/cli/commands/publish.test.d.ts +1 -0
  60. package/dist/cli/commands/publish.test.js +105 -0
  61. package/dist/cli/commands/publish.test.js.map +1 -0
  62. package/dist/cli/commands/skills.d.ts +26 -0
  63. package/dist/cli/commands/skills.js +394 -0
  64. package/dist/cli/commands/skills.js.map +1 -0
  65. package/dist/cli/commands/skills.test.d.ts +1 -0
  66. package/dist/cli/commands/skills.test.js +402 -0
  67. package/dist/cli/commands/skills.test.js.map +1 -0
  68. package/dist/cli/commands/star.d.ts +8 -0
  69. package/dist/cli/commands/star.js +31 -0
  70. package/dist/cli/commands/star.js.map +1 -0
  71. package/dist/cli/commands/sync.d.ts +3 -0
  72. package/dist/cli/commands/sync.js +157 -0
  73. package/dist/cli/commands/sync.js.map +1 -0
  74. package/dist/cli/commands/sync.test.d.ts +1 -0
  75. package/dist/cli/commands/sync.test.js +277 -0
  76. package/dist/cli/commands/sync.test.js.map +1 -0
  77. package/dist/cli/commands/syncHelpers.d.ts +76 -0
  78. package/dist/cli/commands/syncHelpers.js +350 -0
  79. package/dist/cli/commands/syncHelpers.js.map +1 -0
  80. package/dist/cli/commands/syncHelpers.test.d.ts +1 -0
  81. package/dist/cli/commands/syncHelpers.test.js +22 -0
  82. package/dist/cli/commands/syncHelpers.test.js.map +1 -0
  83. package/dist/cli/commands/syncTypes.d.ts +24 -0
  84. package/dist/cli/commands/syncTypes.js +2 -0
  85. package/dist/cli/commands/syncTypes.js.map +1 -0
  86. package/dist/cli/commands/transfer.d.ts +50 -0
  87. package/dist/cli/commands/transfer.js +131 -0
  88. package/dist/cli/commands/transfer.js.map +1 -0
  89. package/dist/cli/commands/transfer.test.d.ts +1 -0
  90. package/dist/cli/commands/transfer.test.js +90 -0
  91. package/dist/cli/commands/transfer.test.js.map +1 -0
  92. package/dist/cli/commands/unstar.d.ts +8 -0
  93. package/dist/cli/commands/unstar.js +31 -0
  94. package/dist/cli/commands/unstar.js.map +1 -0
  95. package/dist/cli/helpStyle.d.ts +13 -0
  96. package/dist/cli/helpStyle.js +38 -0
  97. package/dist/cli/helpStyle.js.map +1 -0
  98. package/dist/cli/registry.d.ts +7 -0
  99. package/dist/cli/registry.js +42 -0
  100. package/dist/cli/registry.js.map +1 -0
  101. package/dist/cli/registry.test.d.ts +1 -0
  102. package/dist/cli/registry.test.js +48 -0
  103. package/dist/cli/registry.test.js.map +1 -0
  104. package/dist/cli/scanSkills.d.ts +7 -0
  105. package/dist/cli/scanSkills.js +91 -0
  106. package/dist/cli/scanSkills.js.map +1 -0
  107. package/dist/cli/scanSkills.test.d.ts +1 -0
  108. package/dist/cli/scanSkills.test.js +62 -0
  109. package/dist/cli/scanSkills.test.js.map +1 -0
  110. package/dist/cli/slug.d.ts +2 -0
  111. package/dist/cli/slug.js +16 -0
  112. package/dist/cli/slug.js.map +1 -0
  113. package/dist/cli/types.d.ts +15 -0
  114. package/dist/cli/types.js +2 -0
  115. package/dist/cli/types.js.map +1 -0
  116. package/dist/cli/ui.d.ts +7 -0
  117. package/dist/cli/ui.js +82 -0
  118. package/dist/cli/ui.js.map +1 -0
  119. package/dist/cli/ui.test.d.ts +1 -0
  120. package/dist/cli/ui.test.js +45 -0
  121. package/dist/cli/ui.test.js.map +1 -0
  122. package/dist/cli.d.ts +2 -0
  123. package/dist/cli.js +419 -0
  124. package/dist/cli.js.map +1 -0
  125. package/dist/config.d.ts +4 -0
  126. package/dist/config.js +77 -0
  127. package/dist/config.js.map +1 -0
  128. package/dist/config.test.d.ts +1 -0
  129. package/dist/config.test.js +56 -0
  130. package/dist/config.test.js.map +1 -0
  131. package/dist/discovery.d.ts +5 -0
  132. package/dist/discovery.js +25 -0
  133. package/dist/discovery.js.map +1 -0
  134. package/dist/discovery.test.d.ts +1 -0
  135. package/dist/discovery.test.js +46 -0
  136. package/dist/discovery.test.js.map +1 -0
  137. package/dist/homedir.d.ts +7 -0
  138. package/dist/homedir.js +29 -0
  139. package/dist/homedir.js.map +1 -0
  140. package/dist/http.bun.test.d.ts +1 -0
  141. package/dist/http.bun.test.js +231 -0
  142. package/dist/http.bun.test.js.map +1 -0
  143. package/dist/http.d.ts +43 -0
  144. package/dist/http.js +498 -0
  145. package/dist/http.js.map +1 -0
  146. package/dist/http.test.d.ts +1 -0
  147. package/dist/http.test.js +322 -0
  148. package/dist/http.test.js.map +1 -0
  149. package/dist/schema/ark.d.ts +4 -0
  150. package/dist/schema/ark.js +26 -0
  151. package/dist/schema/ark.js.map +1 -0
  152. package/dist/schema/index.d.ts +6 -0
  153. package/dist/schema/index.js +6 -0
  154. package/dist/schema/index.js.map +1 -0
  155. package/dist/schema/license.d.ts +4 -0
  156. package/dist/schema/license.js +5 -0
  157. package/dist/schema/license.js.map +1 -0
  158. package/dist/schema/routes.d.ts +22 -0
  159. package/dist/schema/routes.js +23 -0
  160. package/dist/schema/routes.js.map +1 -0
  161. package/dist/schema/schemas.d.ts +353 -0
  162. package/dist/schema/schemas.js +318 -0
  163. package/dist/schema/schemas.js.map +1 -0
  164. package/dist/schema/textFiles.d.ts +5 -0
  165. package/dist/schema/textFiles.js +66 -0
  166. package/dist/schema/textFiles.js.map +1 -0
  167. package/dist/schema/textFiles.test.d.ts +1 -0
  168. package/dist/schema/textFiles.test.js +20 -0
  169. package/dist/schema/textFiles.test.js.map +1 -0
  170. package/dist/skills.d.ts +43 -0
  171. package/dist/skills.js +178 -0
  172. package/dist/skills.js.map +1 -0
  173. package/dist/skills.test.d.ts +1 -0
  174. package/dist/skills.test.js +147 -0
  175. package/dist/skills.test.js.map +1 -0
  176. package/dist/types.d.ts +7 -0
  177. package/dist/types.js +2 -0
  178. package/dist/types.js.map +1 -0
  179. package/package.json +41 -0
package/dist/cli/ui.js ADDED
@@ -0,0 +1,82 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { stdin } from 'node:process';
3
+ import { confirm, isCancel } from '@clack/prompts';
4
+ import ora from 'ora';
5
+ export async function promptHidden(prompt) {
6
+ if (!stdin.isTTY)
7
+ return '';
8
+ process.stdout.write(prompt);
9
+ const chunks = [];
10
+ stdin.setRawMode(true);
11
+ stdin.resume();
12
+ return new Promise((resolvePromise) => {
13
+ function onData(data) {
14
+ const text = data.toString('utf8');
15
+ if (text === '\r' || text === '\n') {
16
+ stdin.setRawMode(false);
17
+ stdin.pause();
18
+ stdin.off('data', onData);
19
+ process.stdout.write('\n');
20
+ resolvePromise(Buffer.concat(chunks).toString('utf8').trim());
21
+ return;
22
+ }
23
+ if (text === '\u0003') {
24
+ stdin.setRawMode(false);
25
+ stdin.pause();
26
+ stdin.off('data', onData);
27
+ process.stdout.write('\n');
28
+ fail('Canceled');
29
+ }
30
+ if (text === '\u007f') {
31
+ chunks.pop();
32
+ return;
33
+ }
34
+ chunks.push(data);
35
+ }
36
+ stdin.on('data', onData);
37
+ });
38
+ }
39
+ export async function promptConfirm(prompt) {
40
+ const answer = await confirm({ message: prompt });
41
+ if (isCancel(answer))
42
+ return false;
43
+ return Boolean(answer);
44
+ }
45
+ export function openInBrowser(url) {
46
+ const args = process.platform === 'darwin'
47
+ ? ['open', url]
48
+ : process.platform === 'win32'
49
+ ? ['cmd', '/c', 'start', '', url]
50
+ : ['xdg-open', url];
51
+ const [command, ...commandArgs] = args;
52
+ if (!command)
53
+ return;
54
+ const child = spawn(command, commandArgs, { stdio: 'ignore', detached: true });
55
+ child.on('error', (err) => {
56
+ if (err.code === 'ENOENT') {
57
+ console.log('');
58
+ console.log('Could not open browser automatically.');
59
+ console.log('Please open this URL manually:');
60
+ console.log('');
61
+ console.log(` ${url}`);
62
+ console.log('');
63
+ }
64
+ });
65
+ child.unref();
66
+ }
67
+ export function isInteractive() {
68
+ return Boolean(process.stdout.isTTY && stdin.isTTY);
69
+ }
70
+ export function createSpinner(text) {
71
+ return ora({ text, spinner: 'dots', isEnabled: isInteractive() }).start();
72
+ }
73
+ export function formatError(error) {
74
+ if (error instanceof Error)
75
+ return error.message;
76
+ return String(error);
77
+ }
78
+ export function fail(message) {
79
+ console.error(`Error: ${message}`);
80
+ process.exit(1);
81
+ }
82
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ /* @vitest-environment node */
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ const mockSpawn = vi.fn();
4
+ vi.mock('node:child_process', () => ({
5
+ spawn: (...args) => mockSpawn(...args),
6
+ }));
7
+ const { openInBrowser } = await import('./ui');
8
+ function createMockChild() {
9
+ let onError = null;
10
+ const child = {
11
+ on: vi.fn((event, handler) => {
12
+ if (event === 'error')
13
+ onError = handler;
14
+ return child;
15
+ }),
16
+ unref: vi.fn(),
17
+ emitError: (error) => onError?.(error),
18
+ };
19
+ return child;
20
+ }
21
+ describe('openInBrowser', () => {
22
+ it('prints manual URL instructions when browser opener is missing', () => {
23
+ const child = createMockChild();
24
+ mockSpawn.mockReturnValueOnce(child);
25
+ const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
26
+ openInBrowser('https://gohub.ai');
27
+ child.emitError(Object.assign(new Error('not found'), { code: 'ENOENT' }));
28
+ expect(logSpy).toHaveBeenCalledWith('Could not open browser automatically.');
29
+ expect(logSpy).toHaveBeenCalledWith('Please open this URL manually:');
30
+ expect(logSpy).toHaveBeenCalledWith(' https://gohub.ai');
31
+ expect(child.unref).toHaveBeenCalledOnce();
32
+ logSpy.mockRestore();
33
+ });
34
+ it('does not print manual instructions for non-ENOENT errors', () => {
35
+ const child = createMockChild();
36
+ mockSpawn.mockReturnValueOnce(child);
37
+ const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
38
+ openInBrowser('https://gohub.ai');
39
+ child.emitError(Object.assign(new Error('permission denied'), { code: 'EACCES' }));
40
+ expect(logSpy).not.toHaveBeenCalledWith('Could not open browser automatically.');
41
+ expect(child.unref).toHaveBeenCalledOnce();
42
+ logSpy.mockRestore();
43
+ });
44
+ });
45
+ //# sourceMappingURL=ui.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.test.js","sourceRoot":"","sources":["../../src/cli/ui.test.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;AAEzB,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAClD,CAAC,CAAC,CAAA;AAEH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;AAI9C,SAAS,eAAe;IACtB,IAAI,OAAO,GAAwB,IAAI,CAAA;IACvC,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,OAAqB,EAAE,EAAE;YACjD,IAAI,KAAK,KAAK,OAAO;gBAAE,OAAO,GAAG,OAAO,CAAA;YACxC,OAAO,KAAK,CAAA;QACd,CAAC,CAAC;QACF,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,SAAS,EAAE,CAAC,KAA4B,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;KAC9D,CAAA;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;QAC/B,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEpE,aAAa,CAAC,kBAAkB,CAAC,CAAA;QACjC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1E,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,uCAAuC,CAAC,CAAA;QAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,gCAAgC,CAAC,CAAA;QACrE,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;QACzD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC1C,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;QAC/B,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEpE,aAAa,CAAC,kBAAkB,CAAC,CAAA;QACjC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAElF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,uCAAuC,CAAC,CAAA;QAChF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC1C,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,419 @@
1
+ #!/usr/bin/env node
2
+ import { stat } from 'node:fs/promises';
3
+ import { join, resolve } from 'node:path';
4
+ import { Command } from 'commander';
5
+ import { getCliBuildLabel, getCliVersion } from './cli/buildInfo.js';
6
+ import { resolveAutonomeeDefaultWorkspace } from './cli/autonomeeConfig.js';
7
+ import { cmdLoginFlow, cmdLogout, cmdWhoami } from './cli/commands/auth.js';
8
+ import { cmdDeleteSkill, cmdHideSkill, cmdUndeleteSkill, cmdUnhideSkill, } from './cli/commands/delete.js';
9
+ import { cmdInspect } from './cli/commands/inspect.js';
10
+ import { cmdBanUser, cmdSetRole } from './cli/commands/moderation.js';
11
+ import { cmdMergeSkill, cmdRenameSkill } from './cli/commands/ownership.js';
12
+ import { cmdPublish } from './cli/commands/publish.js';
13
+ import { cmdExplore, cmdInstall, cmdList, cmdSearch, cmdUninstall, cmdUpdate, } from './cli/commands/skills.js';
14
+ import { cmdStarSkill } from './cli/commands/star.js';
15
+ import { cmdSync } from './cli/commands/sync.js';
16
+ import { cmdTransferAccept, cmdTransferCancel, cmdTransferList, cmdTransferReject, cmdTransferRequest, } from './cli/commands/transfer.js';
17
+ import { cmdUnstarSkill } from './cli/commands/unstar.js';
18
+ import { configureCommanderHelp, styleEnvBlock, styleTitle } from './cli/helpStyle.js';
19
+ import { DEFAULT_REGISTRY, DEFAULT_SITE } from './cli/registry.js';
20
+ import { fail } from './cli/ui.js';
21
+ import { readGlobalConfig } from './config.js';
22
+ const program = new Command()
23
+ .name('gohub')
24
+ .description(`${styleTitle(`Go Hub CLI ${getCliBuildLabel()}`)}\n${styleEnvBlock('install, update, search, and publish agent skills.')}`)
25
+ .version(getCliVersion(), '-V, --cli-version', 'Show CLI version')
26
+ .option('--workdir <dir>', 'Working directory (default: cwd)')
27
+ .option('--dir <dir>', 'Skills directory (relative to workdir, default: skills)')
28
+ .option('--site <url>', 'Site base URL (for browser login)')
29
+ .option('--registry <url>', 'Registry API base URL')
30
+ .option('--no-input', 'Disable prompts')
31
+ .showHelpAfterError()
32
+ .showSuggestionAfterError()
33
+ .addHelpText('after', styleEnvBlock('\nEnv:\n GOHUB_SITE\n GOHUB_REGISTRY\n GOHUB_WORKDIR\n (CLAWDHUB_* supported)\n'));
34
+ configureCommanderHelp(program);
35
+ async function resolveGlobalOpts() {
36
+ const raw = program.opts();
37
+ const workdir = await resolveWorkdir(raw.workdir);
38
+ const dir = resolve(workdir, raw.dir ?? 'skills');
39
+ const site = raw.site ?? process.env.GOHUB_SITE ?? process.env.CLAWDHUB_SITE ?? DEFAULT_SITE;
40
+ const registrySource = raw.registry
41
+ ? 'cli'
42
+ : process.env.GOHUB_REGISTRY || process.env.CLAWDHUB_REGISTRY
43
+ ? 'env'
44
+ : 'default';
45
+ const registry = raw.registry ??
46
+ process.env.GOHUB_REGISTRY ??
47
+ process.env.CLAWDHUB_REGISTRY ??
48
+ DEFAULT_REGISTRY;
49
+ return { workdir, dir, site, registry, registrySource };
50
+ }
51
+ function isInputAllowed() {
52
+ const globalFlags = program.opts();
53
+ return globalFlags.input !== false;
54
+ }
55
+ async function resolveWorkdir(explicit) {
56
+ if (explicit?.trim())
57
+ return resolve(explicit.trim());
58
+ const envWorkdir = process.env.GOHUB_WORKDIR?.trim() ?? process.env.CLAWDHUB_WORKDIR?.trim();
59
+ if (envWorkdir)
60
+ return resolve(envWorkdir);
61
+ const cwd = resolve(process.cwd());
62
+ const hasMarker = await hasGohubMarker(cwd);
63
+ if (hasMarker)
64
+ return cwd;
65
+ const autonomeeWorkspace = await resolveAutonomeeDefaultWorkspace();
66
+ return autonomeeWorkspace ? resolve(autonomeeWorkspace) : cwd;
67
+ }
68
+ async function hasGohubMarker(workdir) {
69
+ const lockfile = join(workdir, '.gohub', 'lock.json');
70
+ if (await pathExists(lockfile))
71
+ return true;
72
+ const markerDir = join(workdir, '.gohub');
73
+ if (await pathExists(markerDir))
74
+ return true;
75
+ const legacyLockfile = join(workdir, '.clawhub', 'lock.json');
76
+ if (await pathExists(legacyLockfile))
77
+ return true;
78
+ const legacyMarkerDir = join(workdir, '.clawhub');
79
+ return pathExists(legacyMarkerDir);
80
+ }
81
+ async function pathExists(path) {
82
+ try {
83
+ await stat(path);
84
+ return true;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ program
91
+ .command('login')
92
+ .description('Log in (opens browser or stores token)')
93
+ .option('--token <token>', 'API token')
94
+ .option('--label <label>', 'Token label (browser flow only)', 'CLI token')
95
+ .option('--no-browser', 'Do not open browser (requires --token)')
96
+ .action(async (options) => {
97
+ const opts = await resolveGlobalOpts();
98
+ await cmdLoginFlow(opts, options, isInputAllowed());
99
+ });
100
+ program
101
+ .command('logout')
102
+ .description('Remove stored token')
103
+ .action(async () => {
104
+ const opts = await resolveGlobalOpts();
105
+ await cmdLogout(opts);
106
+ });
107
+ program
108
+ .command('whoami')
109
+ .description('Validate token')
110
+ .action(async () => {
111
+ const opts = await resolveGlobalOpts();
112
+ await cmdWhoami(opts);
113
+ });
114
+ const auth = program
115
+ .command('auth')
116
+ .description('Authentication commands')
117
+ .showHelpAfterError()
118
+ .showSuggestionAfterError();
119
+ auth
120
+ .command('login')
121
+ .description('Log in (opens browser or stores token)')
122
+ .option('--token <token>', 'API token')
123
+ .option('--label <label>', 'Token label (browser flow only)', 'CLI token')
124
+ .option('--no-browser', 'Do not open browser (requires --token)')
125
+ .action(async (options) => {
126
+ const opts = await resolveGlobalOpts();
127
+ await cmdLoginFlow(opts, options, isInputAllowed());
128
+ });
129
+ auth
130
+ .command('logout')
131
+ .description('Remove stored token')
132
+ .action(async () => {
133
+ const opts = await resolveGlobalOpts();
134
+ await cmdLogout(opts);
135
+ });
136
+ auth
137
+ .command('whoami')
138
+ .description('Validate token')
139
+ .action(async () => {
140
+ const opts = await resolveGlobalOpts();
141
+ await cmdWhoami(opts);
142
+ });
143
+ program
144
+ .command('search')
145
+ .description('Vector search skills')
146
+ .argument('<query...>', 'Query string')
147
+ .option('--limit <n>', 'Max results', (value) => Number.parseInt(value, 10))
148
+ .action(async (queryParts, options) => {
149
+ const opts = await resolveGlobalOpts();
150
+ const query = queryParts.join(' ').trim();
151
+ await cmdSearch(opts, query, options.limit);
152
+ });
153
+ program
154
+ .command('install')
155
+ .description('Install into <dir>/<slug>')
156
+ .argument('<slug>', 'Skill slug')
157
+ .option('--version <version>', 'Version to install')
158
+ .option('--force', 'Overwrite existing folder')
159
+ .action(async (slug, options) => {
160
+ const opts = await resolveGlobalOpts();
161
+ await cmdInstall(opts, slug, options.version, options.force);
162
+ });
163
+ program
164
+ .command('update')
165
+ .description('Update installed skills')
166
+ .argument('[slug]', 'Skill slug')
167
+ .option('--all', 'Update all installed skills')
168
+ .option('--version <version>', 'Update to specific version (single slug only)')
169
+ .option('--force', 'Overwrite when local files do not match any version')
170
+ .action(async (slug, options) => {
171
+ const opts = await resolveGlobalOpts();
172
+ await cmdUpdate(opts, slug, options, isInputAllowed());
173
+ });
174
+ program
175
+ .command('uninstall')
176
+ .description('Uninstall a skill')
177
+ .argument('<slug>', 'Skill slug')
178
+ .option('--yes', 'Skip confirmation')
179
+ .action(async (slug, options) => {
180
+ const opts = await resolveGlobalOpts();
181
+ await cmdUninstall(opts, slug, options, isInputAllowed());
182
+ });
183
+ program
184
+ .command('list')
185
+ .description('List installed skills (from lockfile)')
186
+ .action(async () => {
187
+ const opts = await resolveGlobalOpts();
188
+ await cmdList(opts);
189
+ });
190
+ program
191
+ .command('info')
192
+ .description('Browse latest updated skills from the registry')
193
+ .option('--limit <n>', 'Number of skills to show (max 200)', (value) => Number.parseInt(value, 10), 25)
194
+ .option('--sort <order>', 'Sort by newest, downloads, rating, installs, installsAllTime, or trending', 'newest')
195
+ .option('--json', 'Output JSON')
196
+ .action(async (options) => {
197
+ const opts = await resolveGlobalOpts();
198
+ const limit = typeof options.limit === 'number' && Number.isFinite(options.limit) ? options.limit : 25;
199
+ await cmdExplore(opts, { limit, sort: options.sort, json: options.json });
200
+ });
201
+ program
202
+ .command('inspect')
203
+ .description('Fetch skill metadata and files without installing')
204
+ .argument('<slug>', 'Skill slug')
205
+ .option('--version <version>', 'Version to inspect')
206
+ .option('--tag <tag>', 'Tag to inspect (default: latest)')
207
+ .option('--versions', 'List version history (first page)')
208
+ .option('--limit <n>', 'Max versions to list (1-200)', (value) => Number.parseInt(value, 10))
209
+ .option('--files', 'List files for the selected version')
210
+ .option('--file <path>', 'Fetch raw file content (text <= 200KB)')
211
+ .option('--json', 'Output JSON')
212
+ .action(async (slug, options) => {
213
+ const opts = await resolveGlobalOpts();
214
+ await cmdInspect(opts, slug, options);
215
+ });
216
+ program
217
+ .command('publish')
218
+ .description('Publish skill from folder')
219
+ .argument('<path>', 'Skill folder path')
220
+ .option('--slug <slug>', 'Skill slug')
221
+ .option('--name <name>', 'Display name')
222
+ .option('--version <version>', 'Version (semver)')
223
+ .option('--fork-of <slug[@version]>', 'Mark as a fork of an existing skill')
224
+ .option('--changelog <text>', 'Changelog text')
225
+ .option('--tags <tags>', 'Comma-separated tags', 'latest')
226
+ .action(async (folder, options) => {
227
+ const opts = await resolveGlobalOpts();
228
+ await cmdPublish(opts, folder, options);
229
+ });
230
+ program
231
+ .command('delete')
232
+ .description('Soft-delete a skill (owner, moderator, or admin)')
233
+ .argument('<slug>', 'Skill slug')
234
+ .option('--yes', 'Skip confirmation')
235
+ .action(async (slug, options) => {
236
+ const opts = await resolveGlobalOpts();
237
+ await cmdDeleteSkill(opts, slug, options, isInputAllowed());
238
+ });
239
+ program
240
+ .command('hide')
241
+ .description('Hide a skill (owner, moderator, or admin)')
242
+ .argument('<slug>', 'Skill slug')
243
+ .option('--yes', 'Skip confirmation')
244
+ .action(async (slug, options) => {
245
+ const opts = await resolveGlobalOpts();
246
+ await cmdHideSkill(opts, slug, options, isInputAllowed());
247
+ });
248
+ program
249
+ .command('undelete')
250
+ .description('Restore a hidden skill (owner, moderator, or admin)')
251
+ .argument('<slug>', 'Skill slug')
252
+ .option('--yes', 'Skip confirmation')
253
+ .action(async (slug, options) => {
254
+ const opts = await resolveGlobalOpts();
255
+ await cmdUndeleteSkill(opts, slug, options, isInputAllowed());
256
+ });
257
+ program
258
+ .command('unhide')
259
+ .description('Unhide a skill (owner, moderator, or admin)')
260
+ .argument('<slug>', 'Skill slug')
261
+ .option('--yes', 'Skip confirmation')
262
+ .action(async (slug, options) => {
263
+ const opts = await resolveGlobalOpts();
264
+ await cmdUnhideSkill(opts, slug, options, isInputAllowed());
265
+ });
266
+ const skill = program.command('skill').description('Manage published skills');
267
+ skill
268
+ .command('rename')
269
+ .description('Rename a published skill and keep the old slug as a redirect')
270
+ .argument('<slug>', 'Current skill slug')
271
+ .argument('<new-slug>', 'New canonical slug')
272
+ .option('--yes', 'Skip confirmation')
273
+ .action(async (slug, newSlug, options) => {
274
+ const opts = await resolveGlobalOpts();
275
+ await cmdRenameSkill(opts, slug, newSlug, options, isInputAllowed());
276
+ });
277
+ skill
278
+ .command('merge')
279
+ .description('Merge one owned skill into another and redirect the old slug')
280
+ .argument('<source-slug>', 'Source skill slug')
281
+ .argument('<target-slug>', 'Target canonical slug')
282
+ .option('--yes', 'Skip confirmation')
283
+ .action(async (sourceSlug, targetSlug, options) => {
284
+ const opts = await resolveGlobalOpts();
285
+ await cmdMergeSkill(opts, sourceSlug, targetSlug, options, isInputAllowed());
286
+ });
287
+ program
288
+ .command('ban-user')
289
+ .description('Ban a user and delete owned skills (moderator/admin only)')
290
+ .argument('<handleOrId>', 'User handle (default) or user id')
291
+ .option('--id', 'Treat argument as user id')
292
+ .option('--fuzzy', 'Resolve handle via fuzzy user search (admin only)')
293
+ .option('--reason <reason>', 'Ban reason (optional)')
294
+ .option('--yes', 'Skip confirmation')
295
+ .action(async (handleOrId, options) => {
296
+ const opts = await resolveGlobalOpts();
297
+ await cmdBanUser(opts, handleOrId, options, isInputAllowed());
298
+ });
299
+ program
300
+ .command('set-role')
301
+ .description('Change a user role (admin only)')
302
+ .argument('<handleOrId>', 'User handle (default) or user id')
303
+ .argument('<role>', 'user | moderator | admin')
304
+ .option('--id', 'Treat argument as user id')
305
+ .option('--fuzzy', 'Resolve handle via fuzzy user search (admin only)')
306
+ .option('--yes', 'Skip confirmation')
307
+ .action(async (handleOrId, role, options) => {
308
+ const opts = await resolveGlobalOpts();
309
+ await cmdSetRole(opts, handleOrId, role, options, isInputAllowed());
310
+ });
311
+ const transfer = program.command('transfer').description('Transfer skill ownership');
312
+ transfer
313
+ .command('request')
314
+ .description('Request skill transfer to another user')
315
+ .argument('<slug>', 'Skill slug')
316
+ .argument('<handle>', 'Recipient handle (e.g., @username)')
317
+ .option('--message <text>', 'Optional message for recipient')
318
+ .option('--yes', 'Skip confirmation')
319
+ .action(async (slug, handle, options) => {
320
+ const opts = await resolveGlobalOpts();
321
+ await cmdTransferRequest(opts, slug, handle, options, isInputAllowed());
322
+ });
323
+ transfer
324
+ .command('list')
325
+ .description('List pending transfer requests')
326
+ .option('--outgoing', 'Show outgoing transfer requests')
327
+ .action(async (options) => {
328
+ const opts = await resolveGlobalOpts();
329
+ await cmdTransferList(opts, options);
330
+ });
331
+ transfer
332
+ .command('accept')
333
+ .description('Accept incoming transfer for a skill')
334
+ .argument('<slug>', 'Skill slug')
335
+ .option('--yes', 'Skip confirmation')
336
+ .action(async (slug, options) => {
337
+ const opts = await resolveGlobalOpts();
338
+ await cmdTransferAccept(opts, slug, options, isInputAllowed());
339
+ });
340
+ transfer
341
+ .command('reject')
342
+ .description('Reject incoming transfer for a skill')
343
+ .argument('<slug>', 'Skill slug')
344
+ .option('--yes', 'Skip confirmation')
345
+ .action(async (slug, options) => {
346
+ const opts = await resolveGlobalOpts();
347
+ await cmdTransferReject(opts, slug, options, isInputAllowed());
348
+ });
349
+ transfer
350
+ .command('cancel')
351
+ .description('Cancel outgoing transfer for a skill')
352
+ .argument('<slug>', 'Skill slug')
353
+ .option('--yes', 'Skip confirmation')
354
+ .action(async (slug, options) => {
355
+ const opts = await resolveGlobalOpts();
356
+ await cmdTransferCancel(opts, slug, options, isInputAllowed());
357
+ });
358
+ program
359
+ .command('star')
360
+ .description('Add a skill to your highlights')
361
+ .argument('<slug>', 'Skill slug')
362
+ .option('--yes', 'Skip confirmation')
363
+ .action(async (slug, options) => {
364
+ const opts = await resolveGlobalOpts();
365
+ await cmdStarSkill(opts, slug, options, isInputAllowed());
366
+ });
367
+ program
368
+ .command('unstar')
369
+ .description('Remove a skill from your highlights')
370
+ .argument('<slug>', 'Skill slug')
371
+ .option('--yes', 'Skip confirmation')
372
+ .action(async (slug, options) => {
373
+ const opts = await resolveGlobalOpts();
374
+ await cmdUnstarSkill(opts, slug, options, isInputAllowed());
375
+ });
376
+ program
377
+ .command('sync')
378
+ .description('Scan local skills and publish new/updated ones')
379
+ .option('--root <dir...>', 'Extra scan roots (one or more)')
380
+ .option('--all', 'Upload all new/updated skills without prompting')
381
+ .option('--dry-run', 'Show what would be uploaded')
382
+ .option('--bump <type>', 'Version bump for updates (patch|minor|major)', 'patch')
383
+ .option('--changelog <text>', 'Changelog to use for updates (non-interactive)')
384
+ .option('--tags <tags>', 'Comma-separated tags', 'latest')
385
+ .option('--concurrency <n>', 'Concurrent registry checks (default: 4)', '4')
386
+ .action(async (options) => {
387
+ const opts = await resolveGlobalOpts();
388
+ const bump = String(options.bump ?? 'patch');
389
+ if (!['patch', 'minor', 'major'].includes(bump))
390
+ fail('--bump must be patch|minor|major');
391
+ const concurrencyRaw = Number(options.concurrency ?? 4);
392
+ const concurrency = Number.isFinite(concurrencyRaw) ? Math.round(concurrencyRaw) : 4;
393
+ if (concurrency < 1 || concurrency > 32)
394
+ fail('--concurrency must be between 1 and 32');
395
+ await cmdSync(opts, {
396
+ root: options.root,
397
+ all: options.all,
398
+ dryRun: options.dryRun,
399
+ bump,
400
+ changelog: options.changelog,
401
+ tags: options.tags,
402
+ concurrency,
403
+ }, isInputAllowed());
404
+ });
405
+ program.action(async () => {
406
+ const opts = await resolveGlobalOpts();
407
+ const cfg = await readGlobalConfig();
408
+ if (cfg?.token) {
409
+ await cmdSync(opts, {}, isInputAllowed());
410
+ return;
411
+ }
412
+ program.outputHelp();
413
+ process.exitCode = 0;
414
+ });
415
+ void program.parseAsync(process.argv).catch((error) => {
416
+ const message = error instanceof Error ? error.message : String(error);
417
+ fail(message);
418
+ });
419
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type GlobalConfig } from './schema/index.js';
2
+ export declare function getGlobalConfigPath(): string;
3
+ export declare function readGlobalConfig(): Promise<GlobalConfig | null>;
4
+ export declare function writeGlobalConfig(config: GlobalConfig): Promise<void>;