@claudetools/cli 0.13.13 → 0.13.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/factories.d.ts +173 -0
- package/dist/__tests__/factories.d.ts.map +1 -0
- package/dist/__tests__/factories.js +150 -0
- package/dist/__tests__/factories.js.map +1 -0
- package/dist/__tests__/helpers.d.ts +36 -0
- package/dist/__tests__/helpers.d.ts.map +1 -0
- package/dist/__tests__/helpers.js +52 -0
- package/dist/__tests__/helpers.js.map +1 -0
- package/dist/analytics/index.d.ts +14 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +259 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/session.d.ts +17 -0
- package/dist/analytics/session.d.ts.map +1 -0
- package/dist/analytics/session.js +130 -0
- package/dist/analytics/session.js.map +1 -0
- package/dist/analytics/token-tracker.d.ts +48 -0
- package/dist/analytics/token-tracker.d.ts.map +1 -0
- package/dist/analytics/token-tracker.js +269 -0
- package/dist/analytics/token-tracker.js.map +1 -0
- package/dist/analytics/tracker.d.ts +33 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +210 -0
- package/dist/analytics/tracker.js.map +1 -0
- package/dist/api-keys/index.d.ts +15 -0
- package/dist/api-keys/index.d.ts.map +1 -0
- package/dist/api-keys/index.js +228 -0
- package/dist/api-keys/index.js.map +1 -0
- package/dist/auth/config.d.ts +15 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +67 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +299 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/keychain.d.ts +21 -0
- package/dist/auth/keychain.d.ts.map +1 -0
- package/dist/auth/keychain.js +256 -0
- package/dist/auth/keychain.js.map +1 -0
- package/dist/billing/index.d.ts +7 -0
- package/dist/billing/index.d.ts.map +1 -0
- package/dist/billing/index.js +233 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/cli.js +291 -43
- package/dist/cli.js.map +1 -1
- package/dist/commands/hook.d.ts +12 -0
- package/dist/commands/hook.d.ts.map +1 -0
- package/dist/commands/hook.js +190 -0
- package/dist/commands/hook.js.map +1 -0
- package/dist/commands/keys.d.ts +4 -0
- package/dist/commands/keys.d.ts.map +1 -0
- package/dist/commands/keys.js +43 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/mcp.d.ts +4 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +43 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/project.d.ts +4 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +68 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/skill.d.ts +4 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +37 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/stacks.d.ts +4 -0
- package/dist/commands/stacks.d.ts.map +1 -0
- package/dist/commands/stacks.js +103 -0
- package/dist/commands/stacks.js.map +1 -0
- package/dist/commands/stats.d.ts +4 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +6 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/sync.d.ts +4 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +60 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/update.d.ts +4 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +63 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/daemon/client.d.ts +107 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +250 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/health.d.ts +38 -0
- package/dist/daemon/health.d.ts.map +1 -0
- package/dist/daemon/health.js +212 -0
- package/dist/daemon/health.js.map +1 -0
- package/dist/daemon/index.d.ts +34 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +197 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/protocol.d.ts +144 -0
- package/dist/daemon/protocol.d.ts.map +1 -0
- package/dist/daemon/protocol.js +5 -0
- package/dist/daemon/protocol.js.map +1 -0
- package/dist/gamification/index.d.ts +13 -0
- package/dist/gamification/index.d.ts.map +1 -0
- package/dist/gamification/index.js +120 -0
- package/dist/gamification/index.js.map +1 -0
- package/dist/gamification/types.d.ts +34 -0
- package/dist/gamification/types.d.ts.map +1 -0
- package/dist/gamification/types.js +5 -0
- package/dist/gamification/types.js.map +1 -0
- package/dist/hooks/index.d.ts +65 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +403 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/lib/api.d.ts +29 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +213 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/browser.d.ts +6 -0
- package/dist/lib/browser.d.ts.map +1 -0
- package/dist/lib/browser.js +14 -0
- package/dist/lib/browser.js.map +1 -0
- package/dist/lib/channel-config.d.ts +10 -0
- package/dist/lib/channel-config.d.ts.map +1 -0
- package/dist/lib/channel-config.js +48 -0
- package/dist/lib/channel-config.js.map +1 -0
- package/dist/lib/command-runner.d.ts +16 -0
- package/dist/lib/command-runner.d.ts.map +1 -0
- package/dist/lib/command-runner.js +59 -0
- package/dist/lib/command-runner.js.map +1 -0
- package/dist/lib/command-utils.d.ts +22 -0
- package/dist/lib/command-utils.d.ts.map +1 -0
- package/dist/lib/command-utils.js +88 -0
- package/dist/lib/command-utils.js.map +1 -0
- package/dist/lib/error-handler.d.ts +13 -0
- package/dist/lib/error-handler.d.ts.map +1 -0
- package/dist/lib/error-handler.js +70 -0
- package/dist/lib/error-handler.js.map +1 -0
- package/dist/lib/errors.d.ts +35 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +70 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/exit.d.ts +10 -0
- package/dist/lib/exit.d.ts.map +1 -0
- package/dist/lib/exit.js +21 -0
- package/dist/lib/exit.js.map +1 -0
- package/dist/lib/formatters.d.ts +65 -0
- package/dist/lib/formatters.d.ts.map +1 -0
- package/dist/lib/formatters.js +180 -0
- package/dist/lib/formatters.js.map +1 -0
- package/dist/lib/hybrid-data.d.ts +47 -0
- package/dist/lib/hybrid-data.d.ts.map +1 -0
- package/dist/lib/hybrid-data.js +326 -0
- package/dist/lib/hybrid-data.js.map +1 -0
- package/dist/lib/local-store.d.ts +113 -0
- package/dist/lib/local-store.d.ts.map +1 -0
- package/dist/lib/local-store.js +220 -0
- package/dist/lib/local-store.js.map +1 -0
- package/dist/lib/machine-id.d.ts +8 -0
- package/dist/lib/machine-id.d.ts.map +1 -0
- package/dist/lib/machine-id.js +39 -0
- package/dist/lib/machine-id.js.map +1 -0
- package/dist/lib/network.d.ts +15 -0
- package/dist/lib/network.d.ts.map +1 -0
- package/dist/lib/network.js +46 -0
- package/dist/lib/network.js.map +1 -0
- package/dist/lib/theme.d.ts +77 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/lib/theme.js +137 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/lib/tool-availability.d.ts +13 -0
- package/dist/lib/tool-availability.d.ts.map +1 -0
- package/dist/lib/tool-availability.js +48 -0
- package/dist/lib/tool-availability.js.map +1 -0
- package/dist/lib/update-checker.d.ts +21 -0
- package/dist/lib/update-checker.d.ts.map +1 -0
- package/dist/lib/update-checker.js +110 -0
- package/dist/lib/update-checker.js.map +1 -0
- package/dist/lib/validation.d.ts +30 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +82 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/lib/validators.d.ts +18 -0
- package/dist/lib/validators.d.ts.map +1 -0
- package/dist/lib/validators.js +30 -0
- package/dist/lib/validators.js.map +1 -0
- package/dist/marketplace/api.d.ts +24 -0
- package/dist/marketplace/api.d.ts.map +1 -0
- package/dist/marketplace/api.js +92 -0
- package/dist/marketplace/api.js.map +1 -0
- package/dist/marketplace/index.d.ts +13 -0
- package/dist/marketplace/index.d.ts.map +1 -0
- package/dist/marketplace/index.js +155 -0
- package/dist/marketplace/index.js.map +1 -0
- package/dist/marketplace/installer.d.ts +18 -0
- package/dist/marketplace/installer.d.ts.map +1 -0
- package/dist/marketplace/installer.js +184 -0
- package/dist/marketplace/installer.js.map +1 -0
- package/dist/mcp/api.d.ts +93 -0
- package/dist/mcp/api.d.ts.map +1 -0
- package/dist/mcp/api.js +106 -0
- package/dist/mcp/api.js.map +1 -0
- package/dist/mcp/config.d.ts +72 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +156 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/index.d.ts +54 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +381 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/prompt.clean.d.ts +25 -0
- package/dist/mcp/prompt.clean.d.ts.map +1 -0
- package/dist/mcp/prompt.clean.js +206 -0
- package/dist/mcp/prompt.clean.js.map +1 -0
- package/dist/mcp/prompt.d.ts +52 -0
- package/dist/mcp/prompt.d.ts.map +1 -0
- package/dist/mcp/prompt.js +210 -0
- package/dist/mcp/prompt.js.map +1 -0
- package/dist/mcp/secrets.clean.d.ts +18 -0
- package/dist/mcp/secrets.clean.d.ts.map +1 -0
- package/dist/mcp/secrets.clean.js +357 -0
- package/dist/mcp/secrets.clean.js.map +1 -0
- package/dist/mcp/secrets.d.ts +46 -0
- package/dist/mcp/secrets.d.ts.map +1 -0
- package/dist/mcp/secrets.js +339 -0
- package/dist/mcp/secrets.js.map +1 -0
- package/dist/memory/index.d.ts +14 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +98 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/onboard/agents-md-builder.d.ts.map +1 -1
- package/dist/onboard/agents-md-builder.js +45 -0
- package/dist/onboard/agents-md-builder.js.map +1 -1
- package/dist/onboard/claude-inference.d.ts.map +1 -1
- package/dist/onboard/claude-inference.js +15 -4
- package/dist/onboard/claude-inference.js.map +1 -1
- package/dist/onboard/context7-fetcher.d.ts +1 -1
- package/dist/onboard/context7-fetcher.d.ts.map +1 -1
- package/dist/onboard/context7-fetcher.js +50 -16
- package/dist/onboard/context7-fetcher.js.map +1 -1
- package/dist/onboard/docs-builder.d.ts.map +1 -1
- package/dist/onboard/docs-builder.js +523 -50
- package/dist/onboard/docs-builder.js.map +1 -1
- package/dist/onboard/index.d.ts.map +1 -1
- package/dist/onboard/index.js +74 -25
- package/dist/onboard/index.js.map +1 -1
- package/dist/onboard/stack-detector.d.ts.map +1 -1
- package/dist/onboard/stack-detector.js +5 -55
- package/dist/onboard/stack-detector.js.map +1 -1
- package/dist/project/constants.d.ts +21 -0
- package/dist/project/constants.d.ts.map +1 -0
- package/dist/project/constants.js +21 -0
- package/dist/project/constants.js.map +1 -0
- package/dist/project/format.d.ts +16 -0
- package/dist/project/format.d.ts.map +1 -0
- package/dist/project/format.js +40 -0
- package/dist/project/format.js.map +1 -0
- package/dist/project/git.d.ts +28 -0
- package/dist/project/git.d.ts.map +1 -0
- package/dist/project/git.js +93 -0
- package/dist/project/git.js.map +1 -0
- package/dist/project/index.d.ts +36 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +272 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/mapper.d.ts +27 -0
- package/dist/project/mapper.d.ts.map +1 -0
- package/dist/project/mapper.js +64 -0
- package/dist/project/mapper.js.map +1 -0
- package/dist/project/storage.d.ts +71 -0
- package/dist/project/storage.d.ts.map +1 -0
- package/dist/project/storage.js +274 -0
- package/dist/project/storage.js.map +1 -0
- package/dist/project/sync-bridge.d.ts +33 -0
- package/dist/project/sync-bridge.d.ts.map +1 -0
- package/dist/project/sync-bridge.js +155 -0
- package/dist/project/sync-bridge.js.map +1 -0
- package/dist/project/types.d.ts +107 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +77 -0
- package/dist/project/types.js.map +1 -0
- package/dist/publish/index.d.ts +4 -0
- package/dist/publish/index.d.ts.map +1 -0
- package/dist/publish/index.js +92 -0
- package/dist/publish/index.js.map +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +29 -10
- package/dist/setup.js.map +1 -1
- package/dist/skills/index.d.ts +51 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +509 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/stacks/check.d.ts +2 -0
- package/dist/stacks/check.d.ts.map +1 -0
- package/dist/stacks/check.js +144 -0
- package/dist/stacks/check.js.map +1 -0
- package/dist/stacks/diff.d.ts +11 -0
- package/dist/stacks/diff.d.ts.map +1 -0
- package/dist/stacks/diff.js +123 -0
- package/dist/stacks/diff.js.map +1 -0
- package/dist/stacks/index.d.ts +17 -0
- package/dist/stacks/index.d.ts.map +1 -0
- package/dist/stacks/index.js +525 -0
- package/dist/stacks/index.js.map +1 -0
- package/dist/stacks/index.refactored.d.ts.map +1 -0
- package/dist/stacks/index.refactored.js.map +1 -0
- package/dist/stacks/io.d.ts +11 -0
- package/dist/stacks/io.d.ts.map +1 -0
- package/dist/stacks/io.js +179 -0
- package/dist/stacks/io.js.map +1 -0
- package/dist/stacks/rollback.d.ts +5 -0
- package/dist/stacks/rollback.d.ts.map +1 -0
- package/dist/stacks/rollback.js +162 -0
- package/dist/stacks/rollback.js.map +1 -0
- package/dist/stacks/types.d.ts +70 -0
- package/dist/stacks/types.d.ts.map +1 -0
- package/dist/stacks/types.js +6 -0
- package/dist/stacks/types.js.map +1 -0
- package/dist/stacks/utils.d.ts +9 -0
- package/dist/stacks/utils.d.ts.map +1 -0
- package/dist/stacks/utils.js +11 -0
- package/dist/stacks/utils.js.map +1 -0
- package/dist/start/index.d.ts +23 -0
- package/dist/start/index.d.ts.map +1 -0
- package/dist/start/index.js +386 -0
- package/dist/start/index.js.map +1 -0
- package/dist/sync/index.d.ts +49 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +207 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync-engine/__tests__/test-helpers.d.ts +14 -0
- package/dist/sync-engine/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/sync-engine/__tests__/test-helpers.js +73 -0
- package/dist/sync-engine/__tests__/test-helpers.js.map +1 -0
- package/dist/sync-engine/client.d.ts +128 -0
- package/dist/sync-engine/client.d.ts.map +1 -0
- package/dist/sync-engine/client.js +289 -0
- package/dist/sync-engine/client.js.map +1 -0
- package/dist/sync-engine/health.d.ts +38 -0
- package/dist/sync-engine/health.d.ts.map +1 -0
- package/dist/sync-engine/health.js +259 -0
- package/dist/sync-engine/health.js.map +1 -0
- package/dist/sync-engine/index.d.ts +34 -0
- package/dist/sync-engine/index.d.ts.map +1 -0
- package/dist/sync-engine/index.js +197 -0
- package/dist/sync-engine/index.js.map +1 -0
- package/dist/sync-engine/protocol.d.ts +153 -0
- package/dist/sync-engine/protocol.d.ts.map +1 -0
- package/dist/sync-engine/protocol.js +5 -0
- package/dist/sync-engine/protocol.js.map +1 -0
- package/dist/tasks/index.d.ts +14 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +109 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/team/index.d.ts +12 -0
- package/dist/team/index.d.ts.map +1 -0
- package/dist/team/index.js +151 -0
- package/dist/team/index.js.map +1 -0
- package/dist/updater.d.ts +5 -5
- package/dist/updater.d.ts.map +1 -1
- package/dist/updater.js +24 -88
- package/dist/updater.js.map +1 -1
- package/dist/usage/index.d.ts +10 -0
- package/dist/usage/index.d.ts.map +1 -0
- package/dist/usage/index.js +104 -0
- package/dist/usage/index.js.map +1 -0
- package/dist/webhooks/index.d.ts +7 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +81 -0
- package/dist/webhooks/index.js.map +1 -0
- package/package.json +26 -15
- package/scripts/postinstall.js +282 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { runKeysList, runKeysCreate, runKeysRevoke } from '../api-keys/index.js';
|
|
2
|
+
import { executeCommand, requireArg, getBool } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleKeysCommand(positionals, values) {
|
|
4
|
+
const subcommand = positionals[1];
|
|
5
|
+
switch (subcommand) {
|
|
6
|
+
case 'list':
|
|
7
|
+
await executeCommand('Keys list', () => runKeysList());
|
|
8
|
+
break;
|
|
9
|
+
case 'create': {
|
|
10
|
+
const keyName = requireArg(positionals, 2, 'key name', 'claudetools keys create <name>');
|
|
11
|
+
await executeCommand('Keys create', () => runKeysCreate(keyName));
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case 'revoke': {
|
|
15
|
+
const keyId = requireArg(positionals, 2, 'key ID', 'claudetools keys revoke <id>');
|
|
16
|
+
await executeCommand('Keys revoke', () => runKeysRevoke(keyId, { force: getBool(values, 'force') }));
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
default:
|
|
20
|
+
console.log(`
|
|
21
|
+
claudetools keys - Manage API keys
|
|
22
|
+
|
|
23
|
+
Usage:
|
|
24
|
+
claudetools keys list List all your API keys
|
|
25
|
+
claudetools keys create <name> Create a new API key
|
|
26
|
+
claudetools keys revoke <id> Revoke an API key
|
|
27
|
+
|
|
28
|
+
Options:
|
|
29
|
+
-f, --force Skip confirmation prompt (with revoke)
|
|
30
|
+
|
|
31
|
+
Examples:
|
|
32
|
+
claudetools keys list # List all API keys
|
|
33
|
+
claudetools keys create "CI/CD" # Create a new key
|
|
34
|
+
claudetools keys revoke abc123 # Revoke a key (with prompt)
|
|
35
|
+
claudetools keys revoke abc123 -f # Revoke without prompt
|
|
36
|
+
`);
|
|
37
|
+
if (subcommand) {
|
|
38
|
+
console.error(`Unknown keys command: ${subcommand}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAI9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAqB,EACrB,MAAoB;IAEpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACvD,MAAM;QAER,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,UAAU,CACxB,WAAW,EACX,CAAC,EACD,UAAU,EACV,gCAAgC,CACjC,CAAC;YACF,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,UAAU,CACtB,WAAW,EACX,CAAC,EACD,QAAQ,EACR,8BAA8B,CAC/B,CAAC;YACF,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CACvC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAC1D,CAAC;YACF,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;CAgBjB,CAAC,CAAC;YACG,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAYA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAyEf"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { runMcpAdd, runMcpList, runMcpShow, runMcpRemove, runMcpEnv, runMcpSearch, runMcpSubmit, showMcpHelp, } from '../mcp/index.js';
|
|
2
|
+
import { executeCommand, requireArg, getBool } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleMcpCommand(positionals, values) {
|
|
4
|
+
const subcommand = positionals[1];
|
|
5
|
+
switch (subcommand) {
|
|
6
|
+
case 'add': {
|
|
7
|
+
const serverName = requireArg(positionals, 2, 'MCP server name', 'claudetools mcp add <name>');
|
|
8
|
+
await executeCommand('MCP add', () => runMcpAdd(serverName));
|
|
9
|
+
break;
|
|
10
|
+
}
|
|
11
|
+
case 'list':
|
|
12
|
+
await executeCommand('MCP list', () => runMcpList({ json: getBool(values, 'json') }));
|
|
13
|
+
break;
|
|
14
|
+
case 'show': {
|
|
15
|
+
const serverName = requireArg(positionals, 2, 'MCP server name', 'claudetools mcp show <name>');
|
|
16
|
+
await executeCommand('MCP show', () => runMcpShow(serverName));
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
case 'remove': {
|
|
20
|
+
const serverName = requireArg(positionals, 2, 'MCP server name', 'claudetools mcp remove <name>');
|
|
21
|
+
await executeCommand('MCP remove', () => runMcpRemove(serverName, { force: getBool(values, 'force') }));
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
case 'env': {
|
|
25
|
+
const serverName = requireArg(positionals, 2, 'MCP server name', 'claudetools mcp env <name>');
|
|
26
|
+
await executeCommand('MCP env', () => runMcpEnv(serverName));
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
case 'search':
|
|
30
|
+
await executeCommand('MCP search', () => runMcpSearch(positionals[2], { json: getBool(values, 'json') }));
|
|
31
|
+
break;
|
|
32
|
+
case 'submit':
|
|
33
|
+
await executeCommand('MCP submit', () => runMcpSubmit());
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
showMcpHelp();
|
|
37
|
+
if (subcommand) {
|
|
38
|
+
console.error(`Unknown mcp command: ${subcommand}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAI9E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAqB,EACrB,MAAoB;IAEpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,UAAU,GAAG,UAAU,CAC3B,WAAW,EACX,CAAC,EACD,iBAAiB,EACjB,4BAA4B,CAC7B,CAAC;YACF,MAAM,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7D,MAAM;QACR,CAAC;QAED,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,CACpC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAC9C,CAAC;YACF,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,UAAU,GAAG,UAAU,CAC3B,WAAW,EACX,CAAC,EACD,iBAAiB,EACjB,6BAA6B,CAC9B,CAAC;YACF,MAAM,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/D,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,UAAU,GAAG,UAAU,CAC3B,WAAW,EACX,CAAC,EACD,iBAAiB,EACjB,+BAA+B,CAChC,CAAC;YACF,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,CACtC,YAAY,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAC9D,CAAC;YACF,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,UAAU,GAAG,UAAU,CAC3B,WAAW,EACX,CAAC,EACD,iBAAiB,EACjB,4BAA4B,CAC7B,CAAC;YACF,MAAM,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7D,MAAM;QACR,CAAC;QAED,KAAK,QAAQ;YACX,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,CACtC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAChE,CAAC;YACF,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YACzD,MAAM;QAER;YACE,WAAW,EAAE,CAAC;YACd,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AASA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { runProjectList, runProjectShow, runProjectAdd, runProjectUpdate, runProjectRemove, } from '../project/index.js';
|
|
2
|
+
import { executeCommand, requireArg, getString } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleProjectCommand(positionals, values) {
|
|
4
|
+
const subcommand = positionals[1];
|
|
5
|
+
switch (subcommand) {
|
|
6
|
+
case 'list':
|
|
7
|
+
await executeCommand('Project list', () => runProjectList({ team: positionals[2] }));
|
|
8
|
+
break;
|
|
9
|
+
case 'show': {
|
|
10
|
+
const projectId = requireArg(positionals, 2, 'project name or ID', 'claudetools project show <name|id>');
|
|
11
|
+
await executeCommand('Project show', () => runProjectShow(projectId));
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case 'add':
|
|
15
|
+
await executeCommand('Project add', () => runProjectAdd(positionals[2], {
|
|
16
|
+
name: getString(values, 'name'),
|
|
17
|
+
description: getString(values, 'description'),
|
|
18
|
+
team: getString(values, 'team'),
|
|
19
|
+
}));
|
|
20
|
+
break;
|
|
21
|
+
case 'update': {
|
|
22
|
+
const projectId = requireArg(positionals, 2, 'project name or ID', 'claudetools project update <name|id> [options]');
|
|
23
|
+
const visibility = getString(values, 'visibility');
|
|
24
|
+
await executeCommand('Project update', () => runProjectUpdate(projectId, {
|
|
25
|
+
name: getString(values, 'name'),
|
|
26
|
+
description: getString(values, 'description'),
|
|
27
|
+
team: getString(values, 'team'),
|
|
28
|
+
visibility: visibility === 'personal' || visibility === 'team'
|
|
29
|
+
? visibility
|
|
30
|
+
: undefined,
|
|
31
|
+
}));
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case 'remove': {
|
|
35
|
+
const projectId = requireArg(positionals, 2, 'project name or ID', 'claudetools project remove <name|id>');
|
|
36
|
+
await executeCommand('Project remove', () => runProjectRemove(projectId));
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
default:
|
|
40
|
+
console.log(`
|
|
41
|
+
claudetools project - Manage registered projects
|
|
42
|
+
|
|
43
|
+
Usage:
|
|
44
|
+
claudetools project list [--team <name>] List all registered projects
|
|
45
|
+
claudetools project add [path] Register a project
|
|
46
|
+
claudetools project show <name|id> Show project details
|
|
47
|
+
claudetools project update <name|id> Update project metadata
|
|
48
|
+
claudetools project remove <name|id> Unregister a project
|
|
49
|
+
|
|
50
|
+
Options:
|
|
51
|
+
--name <name> Set project name
|
|
52
|
+
--description <desc> Set project description
|
|
53
|
+
--team <team> Associate with team
|
|
54
|
+
--visibility <type> Set visibility (personal|team)
|
|
55
|
+
|
|
56
|
+
Examples:
|
|
57
|
+
claudetools project add # Register current directory
|
|
58
|
+
claudetools project add ./my-project # Register specific path
|
|
59
|
+
claudetools project show "My Project" # Show project details
|
|
60
|
+
claudetools project update "My Project" --name "New Name"
|
|
61
|
+
`);
|
|
62
|
+
if (subcommand) {
|
|
63
|
+
console.error(`Unknown project command: ${subcommand}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIhF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAqB,EACrB,MAAoB;IAEpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE,CACxC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CACzC,CAAC;YACF,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,UAAU,CAC1B,WAAW,EACX,CAAC,EACD,oBAAoB,EACpB,oCAAoC,CACrC,CAAC;YACF,MAAM,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;YACtE,MAAM;QACR,CAAC;QAED,KAAK,KAAK;YACR,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CACvC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBAC5B,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC/B,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;gBAC7C,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CACH,CAAC;YACF,MAAM;QAER,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,UAAU,CAC1B,WAAW,EACX,CAAC,EACD,oBAAoB,EACpB,gDAAgD,CACjD,CAAC;YACF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACnD,MAAM,cAAc,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAC1C,gBAAgB,CAAC,SAAS,EAAE;gBAC1B,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC/B,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;gBAC7C,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC/B,UAAU,EACR,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,MAAM;oBAChD,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,SAAS;aAChB,CAAC,CACH,CAAC;YACF,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,UAAU,CAC1B,WAAW,EACX,CAAC,EACD,oBAAoB,EACpB,sCAAsC,CACvC,CAAC;YACF,MAAM,cAAc,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBjB,CAAC,CAAC;YACG,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAUA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { runSkillsList, runSkillAdd, runSkillRemove, runSkillShow, runSkillValidate, showSkillHelp, } from '../skills/index.js';
|
|
2
|
+
import { executeCommand, getBool } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleSkillCommand(positionals, values) {
|
|
4
|
+
const subcommand = positionals[1];
|
|
5
|
+
switch (subcommand) {
|
|
6
|
+
case 'list':
|
|
7
|
+
await executeCommand('Skill list', () => runSkillsList({ json: getBool(values, 'json') }));
|
|
8
|
+
break;
|
|
9
|
+
case 'add': {
|
|
10
|
+
const reference = positionals[2];
|
|
11
|
+
await executeCommand('Skill add', () => runSkillAdd(reference));
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case 'remove': {
|
|
15
|
+
const skillName = positionals[2];
|
|
16
|
+
await executeCommand('Skill remove', () => runSkillRemove(skillName));
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
case 'show': {
|
|
20
|
+
const skillName = positionals[2];
|
|
21
|
+
await executeCommand('Skill show', () => runSkillShow(skillName));
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
case 'validate': {
|
|
25
|
+
const skillPath = positionals[2];
|
|
26
|
+
await executeCommand('Skill validate', () => runSkillValidate(skillPath));
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
default:
|
|
30
|
+
showSkillHelp();
|
|
31
|
+
if (subcommand) {
|
|
32
|
+
console.error(`Unknown skill command: ${subcommand}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAqB,EACrB,MAAoB;IAEpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,CACtC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CACjD,CAAC;YACF,MAAM;QAER,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YAChE,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;YACtE,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YAClE,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,MAAM;QACR,CAAC;QAED;YACE,aAAa,EAAE,CAAC;YAChB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/commands/stacks.ts"],"names":[],"mappings":"AAiBA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAuMf"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { runStacksList, runStacksCreate, runStacksShow, runStacksAdd, runStacksRemove, runStacksDelete, runStacksApply, runStacksInstall, runStacksRollback, runStacksCheck, runStacksDiff, runStacksExport, runStacksImport, } from '../stacks/index.js';
|
|
2
|
+
import { executeCommand, requireArg, getBool } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleStacksCommand(positionals, values) {
|
|
4
|
+
const subcommand = positionals[1];
|
|
5
|
+
switch (subcommand) {
|
|
6
|
+
case 'list':
|
|
7
|
+
await executeCommand('Stacks list', () => runStacksList());
|
|
8
|
+
break;
|
|
9
|
+
case 'create': {
|
|
10
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks create <name>');
|
|
11
|
+
await executeCommand('Stacks create', () => runStacksCreate(stackName));
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case 'show': {
|
|
15
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks show <name>');
|
|
16
|
+
await executeCommand('Stacks show', () => runStacksShow(stackName));
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
case 'add': {
|
|
20
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks add <stack> <extension>');
|
|
21
|
+
const extSlug = requireArg(positionals, 3, 'extension slug', 'claudetools stacks add <stack> <extension>');
|
|
22
|
+
await executeCommand('Stacks add', () => runStacksAdd(stackName, extSlug));
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case 'remove': {
|
|
26
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks remove <stack> <extension>');
|
|
27
|
+
const extSlug = requireArg(positionals, 3, 'extension slug', 'claudetools stacks remove <stack> <extension>');
|
|
28
|
+
await executeCommand('Stacks remove', () => runStacksRemove(stackName, extSlug));
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
case 'delete': {
|
|
32
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks delete <name>');
|
|
33
|
+
await executeCommand('Stacks delete', () => runStacksDelete(stackName, { force: getBool(values, 'force') }));
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case 'install': {
|
|
37
|
+
const stackRef = requireArg(positionals, 2, 'stack reference (@owner/slug)', 'claudetools stacks install @owner/slug');
|
|
38
|
+
await executeCommand('Stacks install', () => runStacksInstall(stackRef));
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case 'apply': {
|
|
42
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks apply <name>');
|
|
43
|
+
await executeCommand('Stacks apply', () => runStacksApply(stackName, { force: getBool(values, 'force') }));
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case 'rollback': {
|
|
47
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks rollback <name>');
|
|
48
|
+
await executeCommand('Stacks rollback', () => runStacksRollback(stackName));
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case 'check': {
|
|
52
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks check <name>');
|
|
53
|
+
await executeCommand('Stacks check', () => runStacksCheck(stackName));
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case 'diff': {
|
|
57
|
+
const stack1 = requireArg(positionals, 2, 'stack name', 'claudetools stacks diff <stack1> [stack2]');
|
|
58
|
+
await executeCommand('Stacks diff', () => runStacksDiff(stack1, positionals[3], { local: !positionals[3] }));
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case 'export': {
|
|
62
|
+
const stackName = requireArg(positionals, 2, 'stack name', 'claudetools stacks export <name> [output.yaml]');
|
|
63
|
+
await executeCommand('Stacks export', () => runStacksExport(stackName, positionals[3]));
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case 'import': {
|
|
67
|
+
const inputFile = requireArg(positionals, 2, 'input file', 'claudetools stacks import <file.yaml> [--update]');
|
|
68
|
+
await executeCommand('Stacks import', () => runStacksImport(inputFile, { update: getBool(values, 'force') }));
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
default:
|
|
72
|
+
console.log(`
|
|
73
|
+
claudetools stacks - Manage extension stacks
|
|
74
|
+
|
|
75
|
+
Usage:
|
|
76
|
+
claudetools stacks list List all your stacks
|
|
77
|
+
claudetools stacks create <name> Create a new stack
|
|
78
|
+
claudetools stacks show <name> Show stack details
|
|
79
|
+
claudetools stacks add <stack> <ext> Add extension to stack
|
|
80
|
+
claudetools stacks remove <stack> <ext> Remove extension from stack
|
|
81
|
+
claudetools stacks delete <name> Delete a stack
|
|
82
|
+
claudetools stacks install @owner/slug Install a public stack
|
|
83
|
+
claudetools stacks apply <name> Apply your own stack locally
|
|
84
|
+
claudetools stacks check <name> Check stack for conflicts
|
|
85
|
+
claudetools stacks diff <stack1> [stack2] Compare stacks or stack vs local
|
|
86
|
+
claudetools stacks export <name> [file] Export stack to YAML file
|
|
87
|
+
claudetools stacks import <file> Import stack from YAML file
|
|
88
|
+
claudetools stacks rollback <name> Rollback stack to previous version (Pro/Team)
|
|
89
|
+
|
|
90
|
+
Examples:
|
|
91
|
+
claudetools stacks install @claudetools/starter # Install a public stack
|
|
92
|
+
claudetools stacks create my-stack # Create a new stack
|
|
93
|
+
claudetools stacks add my-stack skill-1 # Add extension to stack
|
|
94
|
+
claudetools stacks apply my-stack # Install your own stack
|
|
95
|
+
claudetools stacks check my-stack # Check for conflicts
|
|
96
|
+
`);
|
|
97
|
+
if (subcommand) {
|
|
98
|
+
console.error(`Unknown stacks command: ${subcommand}`);
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=stacks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stacks.js","sourceRoot":"","sources":["../../src/commands/stacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAGA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { runStats } from '../gamification/index.js';
|
|
2
|
+
import { executeCommand, getBool } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleStatsCommand(_positionals, values) {
|
|
4
|
+
await executeCommand('Stats', () => runStats({ json: getBool(values, 'json') }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAsB,EACtB,MAAoB;IAEpB,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,CACjC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAUA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { runSyncEngineStart, runSyncEngineStop, runSyncEngineStatus, runSyncEnginePool, runSyncEngineReload, runSyncEngineLogs, } from '../sync-engine/index.js';
|
|
2
|
+
import { executeCommand, getBool, getString } from '../lib/command-utils.js';
|
|
3
|
+
export async function handleSyncCommand(positionals, values) {
|
|
4
|
+
const subcommand = positionals[1];
|
|
5
|
+
switch (subcommand) {
|
|
6
|
+
case 'start':
|
|
7
|
+
await executeCommand('Sync start', () => runSyncEngineStart());
|
|
8
|
+
break;
|
|
9
|
+
case 'stop':
|
|
10
|
+
await executeCommand('Sync stop', () => runSyncEngineStop());
|
|
11
|
+
break;
|
|
12
|
+
case 'status':
|
|
13
|
+
await executeCommand('Sync status', () => runSyncEngineStatus());
|
|
14
|
+
break;
|
|
15
|
+
case 'pool':
|
|
16
|
+
await executeCommand('Sync pool', () => runSyncEnginePool());
|
|
17
|
+
break;
|
|
18
|
+
case 'reload':
|
|
19
|
+
await executeCommand('Sync reload', () => runSyncEngineReload());
|
|
20
|
+
break;
|
|
21
|
+
case 'logs':
|
|
22
|
+
await executeCommand('Sync logs', () => runSyncEngineLogs({
|
|
23
|
+
follow: getBool(values, 'follow'),
|
|
24
|
+
lines: getString(values, 'lines') ? parseInt(getString(values, 'lines'), 10) : undefined,
|
|
25
|
+
}));
|
|
26
|
+
break;
|
|
27
|
+
default: {
|
|
28
|
+
// No subcommand or unknown subcommand: fall back to legacy stack sync
|
|
29
|
+
if (!subcommand) {
|
|
30
|
+
const { runSync } = await import('../sync/index.js');
|
|
31
|
+
await runSync();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
console.log(`
|
|
35
|
+
claudetools sync - Manage the sync engine
|
|
36
|
+
|
|
37
|
+
Usage:
|
|
38
|
+
claudetools sync Show cloud sync status (stacks)
|
|
39
|
+
claudetools sync start Start the sync engine in the background
|
|
40
|
+
claudetools sync stop Stop the running sync engine
|
|
41
|
+
claudetools sync status Show sync engine status
|
|
42
|
+
claudetools sync pool Show MCP process pool status
|
|
43
|
+
claudetools sync reload Reload sync engine configuration
|
|
44
|
+
claudetools sync logs Tail the sync engine log file
|
|
45
|
+
|
|
46
|
+
Options (for logs):
|
|
47
|
+
--follow, -f Follow log output (like tail -f)
|
|
48
|
+
--lines <n> Number of lines to show (default: 50)
|
|
49
|
+
|
|
50
|
+
Examples:
|
|
51
|
+
claudetools sync start # Start the sync engine
|
|
52
|
+
claudetools sync pool # View active MCP processes
|
|
53
|
+
claudetools sync logs -f # Follow log output
|
|
54
|
+
`);
|
|
55
|
+
console.error(`Unknown sync command: ${subcommand}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAI7E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAqB,EACrB,MAAoB;IAEpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC/D,MAAM;QAER,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC7D,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACjE,MAAM;QAER,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC7D,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACjE,MAAM;QAER,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,CACrC,iBAAiB,CAAC;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;gBACjC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aAC1F,CAAC,CACH,CAAC;YACF,MAAM;QAER,OAAO,CAAC,CAAC,CAAC;YACR,sEAAsE;YACtE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACrD,MAAM,OAAO,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBjB,CAAC,CAAC;YACG,OAAO,CAAC,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AA2BA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAEhE,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Update Command
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// claudetools update [--channel stable|beta|nightly]
|
|
5
|
+
//
|
|
6
|
+
// Checks the npm registry for the latest version on the configured release
|
|
7
|
+
// channel, then runs `npm install -g @claudetools/cli@<version>`.
|
|
8
|
+
import { execSync } from 'node:child_process';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import ora from 'ora';
|
|
11
|
+
import { executeCommand, getString } from '../lib/command-utils.js';
|
|
12
|
+
import { getChannel, setChannel, CHANNEL_DIST_TAGS, } from '../lib/channel-config.js';
|
|
13
|
+
import { getVersionForTag, isNewerVersion, } from '../lib/update-checker.js';
|
|
14
|
+
const PACKAGE_NAME = '@claudetools/cli';
|
|
15
|
+
const VALID_CHANNELS = ['stable', 'beta', 'nightly'];
|
|
16
|
+
export async function handleUpdateCommand(positionals, values, currentVersion) {
|
|
17
|
+
await executeCommand('Update', async () => {
|
|
18
|
+
// Handle --channel flag to switch channel
|
|
19
|
+
const channelArg = getString(values, 'channel');
|
|
20
|
+
if (channelArg) {
|
|
21
|
+
if (!VALID_CHANNELS.includes(channelArg)) {
|
|
22
|
+
console.error(chalk.red(`Invalid channel: ${channelArg}`));
|
|
23
|
+
console.log(chalk.dim(` Valid channels: ${VALID_CHANNELS.join(', ')}`));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
setChannel(channelArg);
|
|
27
|
+
console.log(chalk.green(`✓ Release channel set to ${chalk.bold(channelArg)}`));
|
|
28
|
+
}
|
|
29
|
+
const channel = getChannel();
|
|
30
|
+
const distTag = CHANNEL_DIST_TAGS[channel];
|
|
31
|
+
console.log('');
|
|
32
|
+
console.log(chalk.bold(' ClaudeTools Update'));
|
|
33
|
+
console.log(chalk.dim(` Channel: ${channel} (npm dist-tag: ${distTag})`));
|
|
34
|
+
console.log('');
|
|
35
|
+
// Check registry for latest version
|
|
36
|
+
const spinner = ora({ text: 'Checking for updates...', indent: 2 }).start();
|
|
37
|
+
const targetVersion = await getVersionForTag(distTag);
|
|
38
|
+
if (!targetVersion) {
|
|
39
|
+
spinner.fail('Could not reach npm registry');
|
|
40
|
+
console.log(chalk.dim(' Check your network connection and try again.'));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (!isNewerVersion(currentVersion, targetVersion)) {
|
|
44
|
+
spinner.succeed(`Already on the latest version ${chalk.green(`v${currentVersion}`)} (${channel})`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
spinner.text = `Updating v${currentVersion} → v${targetVersion}...`;
|
|
48
|
+
try {
|
|
49
|
+
execSync(`npm install -g ${PACKAGE_NAME}@${targetVersion}`, {
|
|
50
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
51
|
+
timeout: 60_000,
|
|
52
|
+
});
|
|
53
|
+
spinner.succeed(`Updated to ${chalk.green(`v${targetVersion}`)} (${channel})`);
|
|
54
|
+
console.log(chalk.dim(' Restart your terminal to use the new version.'));
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
spinner.fail('Update failed');
|
|
58
|
+
console.log(chalk.dim(` Try manually: npm install -g ${PACKAGE_NAME}@${targetVersion}`));
|
|
59
|
+
}
|
|
60
|
+
console.log('');
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|