claude-autopm 1.12.3 → 1.13.1

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.
@@ -0,0 +1,175 @@
1
+ /**
2
+ * MCP Command for autopm CLI
3
+ * Manages Model Context Protocol servers, agents, and configuration
4
+ */
5
+
6
+ const path = require('path');
7
+ const MCPHandler = require('../../scripts/mcp-handler.js');
8
+
9
+ module.exports = {
10
+ command: 'mcp <action> [options]',
11
+ describe: 'Manage MCP (Model Context Protocol) servers and configuration',
12
+
13
+ builder: (yargs) => {
14
+ return yargs
15
+ .positional('action', {
16
+ describe: 'MCP action to perform',
17
+ type: 'string',
18
+ choices: [
19
+ 'list', 'add', 'remove', 'enable', 'disable', 'sync', 'validate', 'info',
20
+ 'agents', 'agent', 'usage', 'setup', 'check', 'diagnose', 'test', 'tree', 'status'
21
+ ]
22
+ })
23
+ .option('server', {
24
+ alias: 's',
25
+ describe: 'Server name',
26
+ type: 'string'
27
+ })
28
+ .option('agent', {
29
+ alias: 'a',
30
+ describe: 'Agent name',
31
+ type: 'string'
32
+ })
33
+ .option('by-server', {
34
+ describe: 'Group agents by MCP server',
35
+ type: 'boolean',
36
+ default: false
37
+ })
38
+ .example('autopm mcp list', 'List all available MCP servers')
39
+ .example('autopm mcp enable context7-docs', 'Enable context7 documentation server')
40
+ .example('autopm mcp agents', 'List all agents using MCP')
41
+ .example('autopm mcp agent react-frontend-engineer', 'Show MCP config for specific agent')
42
+ .example('autopm mcp usage', 'Show MCP usage statistics')
43
+ .example('autopm mcp setup', 'Interactive API key setup')
44
+ .example('autopm mcp check', 'Quick MCP configuration check')
45
+ .example('autopm mcp diagnose', 'Run MCP diagnostics')
46
+ .example('autopm mcp test context7-docs', 'Test MCP server connection')
47
+ .example('autopm mcp tree', 'Show agent-MCP dependency tree')
48
+ .example('autopm mcp status', 'Show MCP servers status');
49
+ },
50
+
51
+ handler: async (argv) => {
52
+ const handler = new MCPHandler();
53
+ const action = argv.action;
54
+
55
+ try {
56
+ switch (action) {
57
+ // Basic commands
58
+ case 'list':
59
+ handler.list();
60
+ break;
61
+
62
+ case 'add':
63
+ await handler.add();
64
+ break;
65
+
66
+ case 'remove':
67
+ if (!argv.server && !argv._[2]) {
68
+ console.error('❌ Please specify a server name: autopm mcp remove <server-name>');
69
+ process.exit(1);
70
+ }
71
+ handler.remove(argv.server || argv._[2]);
72
+ break;
73
+
74
+ case 'enable':
75
+ if (!argv.server && !argv._[2]) {
76
+ console.error('❌ Please specify a server name: autopm mcp enable <server-name>');
77
+ process.exit(1);
78
+ }
79
+ handler.enable(argv.server || argv._[2]);
80
+ break;
81
+
82
+ case 'disable':
83
+ if (!argv.server && !argv._[2]) {
84
+ console.error('❌ Please specify a server name: autopm mcp disable <server-name>');
85
+ process.exit(1);
86
+ }
87
+ handler.disable(argv.server || argv._[2]);
88
+ break;
89
+
90
+ case 'sync':
91
+ handler.sync();
92
+ break;
93
+
94
+ case 'validate':
95
+ handler.validate();
96
+ break;
97
+
98
+ case 'info':
99
+ if (!argv.server && !argv._[2]) {
100
+ console.error('❌ Please specify a server name: autopm mcp info <server-name>');
101
+ process.exit(1);
102
+ }
103
+ handler.info(argv.server || argv._[2]);
104
+ break;
105
+
106
+ // Agent analysis commands
107
+ case 'agents':
108
+ handler.mcpAgents(argv.byServer ? { groupBy: 'server' } : {});
109
+ break;
110
+
111
+ case 'agent':
112
+ if (!argv.agent && !argv._[2]) {
113
+ console.error('❌ Please specify an agent name: autopm mcp agent <agent-name>');
114
+ process.exit(1);
115
+ }
116
+ handler.mcpAgent(argv.agent || argv._[2]);
117
+ break;
118
+
119
+ case 'usage':
120
+ handler.mcpUsage();
121
+ break;
122
+
123
+ // Configuration commands
124
+ case 'setup':
125
+ await handler.setupWizard();
126
+ break;
127
+
128
+ case 'check':
129
+ handler.check();
130
+ break;
131
+
132
+ case 'diagnose':
133
+ handler.diagnose();
134
+ break;
135
+
136
+ case 'test':
137
+ if (!argv.server && !argv._[2]) {
138
+ console.error('❌ Please specify a server name: autopm mcp test <server-name>');
139
+ process.exit(1);
140
+ }
141
+ const result = await handler.testServer(argv.server || argv._[2]);
142
+ if (result.success) {
143
+ console.log(`✅ ${result.message}`);
144
+ } else {
145
+ console.error(`❌ ${result.message}`);
146
+ process.exit(1);
147
+ }
148
+ break;
149
+
150
+ // Visualization commands
151
+ case 'tree':
152
+ handler.showTree();
153
+ break;
154
+
155
+ case 'status':
156
+ handler.showStatus();
157
+ break;
158
+
159
+ default:
160
+ console.error(`❌ Unknown action: ${action}`);
161
+ console.log('\nAvailable actions:');
162
+ console.log(' list, add, remove, enable, disable, sync, validate, info');
163
+ console.log(' agents, agent, usage, setup, check, diagnose, test, tree, status');
164
+ console.log('\nUse "autopm mcp --help" for more information');
165
+ process.exit(1);
166
+ }
167
+ } catch (error) {
168
+ console.error(`❌ Error: ${error.message}`);
169
+ if (argv.debug) {
170
+ console.error(error.stack);
171
+ }
172
+ process.exit(1);
173
+ }
174
+ }
175
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-autopm",
3
- "version": "1.12.3",
3
+ "version": "1.13.1",
4
4
  "description": "Autonomous Project Management Framework for Claude Code - Advanced AI-powered development automation",
5
5
  "main": "bin/autopm.js",
6
6
  "bin": {
@@ -9,8 +9,8 @@
9
9
  "scripts": {
10
10
  "postinstall": "echo '🎉 ClaudeAutoPM installed! Run: autopm --help'",
11
11
  "test:old": "node scripts/test.js",
12
- "test": "jest --config jest.config.clean.js",
13
- "test:full": "jest",
12
+ "test": "jest --config jest.config.quick.js --forceExit",
13
+ "test:full": "jest --config jest.config.clean.js --forceExit",
14
14
  "test:watch": "jest --watch",
15
15
  "test:coverage": "c8 npm test",
16
16
  "test:clean": "jest --config jest.config.clean.js",
@@ -48,8 +48,8 @@
48
48
  "test:comprehensive:quick": "TEST_TIMEOUT=30000 node test/run-all-tests.js",
49
49
  "test:comprehensive:ci": "CI=true CI_TEST_TIMEOUT=600000 node test/run-all-tests.js",
50
50
  "test:azure": "node --test test/providers/azure/*.test.js",
51
- "test:unit": "node --test test/unit/**/*.test.js",
52
- "test:unit:coverage": "c8 node --test test/unit/**/*.test.js",
51
+ "test:unit": "node --test $(find test/unit -name '*.test.js' ! -name '*-jest.test.js')",
52
+ "test:unit:coverage": "c8 node --test $(find test/unit -name '*.test.js' ! -name '*-jest.test.js')",
53
53
  "test:e2e": "jest test/e2e",
54
54
  "test:e2e:legacy": "node --test test/e2e/*.test.js",
55
55
  "setup:hooks": "bash scripts/setup-hooks.sh",