agentinit 1.4.1 → 1.5.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 (173) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +209 -0
  3. package/dist/agentinit-1.5.0.tgz +0 -0
  4. package/dist/agents/Agent.d.ts +110 -0
  5. package/dist/agents/Agent.d.ts.map +1 -0
  6. package/dist/agents/Agent.js +174 -0
  7. package/dist/agents/Agent.js.map +1 -0
  8. package/dist/agents/ClaudeAgent.d.ts +50 -0
  9. package/dist/agents/ClaudeAgent.d.ts.map +1 -0
  10. package/dist/agents/ClaudeAgent.js +249 -0
  11. package/dist/agents/ClaudeAgent.js.map +1 -0
  12. package/dist/agents/ClaudeDesktopAgent.d.ts +49 -0
  13. package/dist/agents/ClaudeDesktopAgent.d.ts.map +1 -0
  14. package/dist/agents/ClaudeDesktopAgent.js +143 -0
  15. package/dist/agents/ClaudeDesktopAgent.js.map +1 -0
  16. package/dist/agents/CodexCliAgent.d.ts +48 -0
  17. package/dist/agents/CodexCliAgent.d.ts.map +1 -0
  18. package/dist/agents/CodexCliAgent.js +262 -0
  19. package/dist/agents/CodexCliAgent.js.map +1 -0
  20. package/dist/agents/CursorAgent.d.ts +44 -0
  21. package/dist/agents/CursorAgent.d.ts.map +1 -0
  22. package/dist/agents/CursorAgent.js +231 -0
  23. package/dist/agents/CursorAgent.js.map +1 -0
  24. package/dist/agents/GeminiCliAgent.d.ts +40 -0
  25. package/dist/agents/GeminiCliAgent.d.ts.map +1 -0
  26. package/dist/agents/GeminiCliAgent.js +195 -0
  27. package/dist/agents/GeminiCliAgent.js.map +1 -0
  28. package/dist/cli.d.ts +3 -0
  29. package/dist/cli.d.ts.map +1 -0
  30. package/dist/cli.js +33191 -0
  31. package/dist/cli.js.map +1 -0
  32. package/dist/commands/apply.d.ts +2 -0
  33. package/dist/commands/apply.d.ts.map +1 -0
  34. package/dist/commands/apply.js +468 -0
  35. package/dist/commands/apply.js.map +1 -0
  36. package/dist/commands/config.d.ts +8 -0
  37. package/dist/commands/config.d.ts.map +1 -0
  38. package/dist/commands/config.js +6 -0
  39. package/dist/commands/config.js.map +1 -0
  40. package/dist/commands/detect.d.ts +6 -0
  41. package/dist/commands/detect.d.ts.map +1 -0
  42. package/dist/commands/detect.js +55 -0
  43. package/dist/commands/detect.js.map +1 -0
  44. package/dist/commands/init.d.ts +7 -0
  45. package/dist/commands/init.d.ts.map +1 -0
  46. package/dist/commands/init.js +105 -0
  47. package/dist/commands/init.js.map +1 -0
  48. package/dist/commands/mcp.d.ts +8 -0
  49. package/dist/commands/mcp.d.ts.map +1 -0
  50. package/dist/commands/mcp.js +127 -0
  51. package/dist/commands/mcp.js.map +1 -0
  52. package/dist/commands/subagents.d.ts +9 -0
  53. package/dist/commands/subagents.d.ts.map +1 -0
  54. package/dist/commands/subagents.js +6 -0
  55. package/dist/commands/subagents.js.map +1 -0
  56. package/dist/commands/sync.d.ts +7 -0
  57. package/dist/commands/sync.d.ts.map +1 -0
  58. package/dist/commands/sync.js +49 -0
  59. package/dist/commands/sync.js.map +1 -0
  60. package/dist/commands/verifyMcp.d.ts +2 -0
  61. package/dist/commands/verifyMcp.d.ts.map +1 -0
  62. package/dist/commands/verifyMcp.js +215 -0
  63. package/dist/commands/verifyMcp.js.map +1 -0
  64. package/dist/constants/index.d.ts +3 -0
  65. package/dist/constants/index.d.ts.map +1 -0
  66. package/dist/constants/index.js +3 -0
  67. package/dist/constants/index.js.map +1 -0
  68. package/dist/constants/mcp.d.ts +9 -0
  69. package/dist/constants/mcp.d.ts.map +1 -0
  70. package/dist/constants/mcp.js +28 -0
  71. package/dist/constants/mcp.js.map +1 -0
  72. package/dist/constants/tokens.d.ts +6 -0
  73. package/dist/constants/tokens.d.ts.map +1 -0
  74. package/dist/constants/tokens.js +5 -0
  75. package/dist/constants/tokens.js.map +1 -0
  76. package/dist/core/agentDetector.d.ts +9 -0
  77. package/dist/core/agentDetector.d.ts.map +1 -0
  78. package/dist/core/agentDetector.js +51 -0
  79. package/dist/core/agentDetector.js.map +1 -0
  80. package/dist/core/agentManager.d.ts +55 -0
  81. package/dist/core/agentManager.d.ts.map +1 -0
  82. package/dist/core/agentManager.js +111 -0
  83. package/dist/core/agentManager.js.map +1 -0
  84. package/dist/core/configMerger.d.ts +49 -0
  85. package/dist/core/configMerger.d.ts.map +1 -0
  86. package/dist/core/configMerger.js +180 -0
  87. package/dist/core/configMerger.js.map +1 -0
  88. package/dist/core/mcpClient.d.ts +38 -0
  89. package/dist/core/mcpClient.d.ts.map +1 -0
  90. package/dist/core/mcpClient.js +416 -0
  91. package/dist/core/mcpClient.js.map +1 -0
  92. package/dist/core/mcpFilter.d.ts +44 -0
  93. package/dist/core/mcpFilter.d.ts.map +1 -0
  94. package/dist/core/mcpFilter.js +126 -0
  95. package/dist/core/mcpFilter.js.map +1 -0
  96. package/dist/core/mcpParser.d.ts +25 -0
  97. package/dist/core/mcpParser.d.ts.map +1 -0
  98. package/dist/core/mcpParser.js +297 -0
  99. package/dist/core/mcpParser.js.map +1 -0
  100. package/dist/core/propagator.d.ts +25 -0
  101. package/dist/core/propagator.d.ts.map +1 -0
  102. package/dist/core/propagator.js +154 -0
  103. package/dist/core/propagator.js.map +1 -0
  104. package/dist/core/rulesApplicator.d.ts +29 -0
  105. package/dist/core/rulesApplicator.d.ts.map +1 -0
  106. package/dist/core/rulesApplicator.js +181 -0
  107. package/dist/core/rulesApplicator.js.map +1 -0
  108. package/dist/core/rulesParser.d.ts +41 -0
  109. package/dist/core/rulesParser.d.ts.map +1 -0
  110. package/dist/core/rulesParser.js +260 -0
  111. package/dist/core/rulesParser.js.map +1 -0
  112. package/dist/core/rulesTemplateLoader.d.ts +31 -0
  113. package/dist/core/rulesTemplateLoader.d.ts.map +1 -0
  114. package/dist/core/rulesTemplateLoader.js +75 -0
  115. package/dist/core/rulesTemplateLoader.js.map +1 -0
  116. package/dist/core/stackDetector.d.ts +16 -0
  117. package/dist/core/stackDetector.d.ts.map +1 -0
  118. package/dist/core/stackDetector.js +234 -0
  119. package/dist/core/stackDetector.js.map +1 -0
  120. package/dist/core/templateEngine.d.ts +15 -0
  121. package/dist/core/templateEngine.d.ts.map +1 -0
  122. package/dist/core/templateEngine.js +260 -0
  123. package/dist/core/templateEngine.js.map +1 -0
  124. package/dist/core/tomlGenerator.d.ts +24 -0
  125. package/dist/core/tomlGenerator.d.ts.map +1 -0
  126. package/dist/core/tomlGenerator.js +185 -0
  127. package/dist/core/tomlGenerator.js.map +1 -0
  128. package/dist/index.d.ts +21 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +21 -33195
  131. package/dist/index.js.map +1 -0
  132. package/dist/lib/index.d.ts +39 -0
  133. package/dist/lib/index.d.ts.map +1 -0
  134. package/dist/lib/index.js +40 -0
  135. package/dist/lib/index.js.map +1 -0
  136. package/dist/lib/types/index.d.ts +23 -0
  137. package/dist/lib/types/index.d.ts.map +1 -0
  138. package/dist/lib/types/index.js +23 -0
  139. package/dist/lib/types/index.js.map +1 -0
  140. package/dist/lib/utils/index.d.ts +18 -0
  141. package/dist/lib/utils/index.d.ts.map +1 -0
  142. package/dist/lib/utils/index.js +21 -0
  143. package/dist/lib/utils/index.js.map +1 -0
  144. package/dist/lib/verifier/index.d.ts +22 -0
  145. package/dist/lib/verifier/index.d.ts.map +1 -0
  146. package/dist/lib/verifier/index.js +22 -0
  147. package/dist/lib/verifier/index.js.map +1 -0
  148. package/dist/registry/mcpRegistry.d.ts +12 -0
  149. package/dist/registry/mcpRegistry.d.ts.map +1 -0
  150. package/dist/registry/mcpRegistry.js +114 -0
  151. package/dist/registry/mcpRegistry.js.map +1 -0
  152. package/dist/types/index.d.ts +180 -0
  153. package/dist/types/index.d.ts.map +1 -0
  154. package/dist/types/index.js +21 -0
  155. package/dist/types/index.js.map +1 -0
  156. package/dist/types/rules.d.ts +51 -0
  157. package/dist/types/rules.d.ts.map +1 -0
  158. package/dist/types/rules.js +2 -0
  159. package/dist/types/rules.js.map +1 -0
  160. package/dist/utils/fs.d.ts +12 -0
  161. package/dist/utils/fs.d.ts.map +1 -0
  162. package/dist/utils/fs.js +91 -0
  163. package/dist/utils/fs.js.map +1 -0
  164. package/dist/utils/logger.d.ts +14 -0
  165. package/dist/utils/logger.d.ts.map +1 -0
  166. package/dist/utils/logger.js +36 -0
  167. package/dist/utils/logger.js.map +1 -0
  168. package/dist/utils/paths.d.ts +77 -0
  169. package/dist/utils/paths.d.ts.map +1 -0
  170. package/dist/utils/paths.js +140 -0
  171. package/dist/utils/paths.js.map +1 -0
  172. package/package.json +30 -6
  173. package/dist/agentinit-1.4.1.tgz +0 -0
@@ -0,0 +1,105 @@
1
+ import { resolve } from 'path';
2
+ import ora from 'ora';
3
+ import prompts from 'prompts';
4
+ import { logger } from '../utils/logger.js';
5
+ import { fileExists, writeFile } from '../utils/fs.js';
6
+ import { AgentDetector } from '../core/agentDetector.js';
7
+ import { StackDetector } from '../core/stackDetector.js';
8
+ import { TemplateEngine } from '../core/templateEngine.js';
9
+ export async function initCommand(options) {
10
+ const cwd = process.cwd();
11
+ const agentsPath = resolve(cwd, 'agents.md');
12
+ logger.title('🚀 AgentInit - Initialize Project');
13
+ // Check if agents.md already exists
14
+ if (!options.force && await fileExists(agentsPath)) {
15
+ const response = await prompts({
16
+ type: 'confirm',
17
+ name: 'overwrite',
18
+ message: 'agents.md already exists. Do you want to overwrite it?',
19
+ initial: false
20
+ });
21
+ if (!response.overwrite) {
22
+ logger.info('Initialization cancelled');
23
+ return;
24
+ }
25
+ }
26
+ const spinner = ora('Analyzing project...').start();
27
+ try {
28
+ // Detect existing agents and stack
29
+ const agentDetector = new AgentDetector();
30
+ const stackDetector = new StackDetector();
31
+ const [agents, stack] = await Promise.all([
32
+ agentDetector.detectAgents(cwd),
33
+ stackDetector.detectStack(cwd)
34
+ ]);
35
+ spinner.succeed('Project analysis complete');
36
+ // Show detection results
37
+ if (agents.length > 0) {
38
+ logger.info(`Found existing agents: ${agents.map(a => a.name).join(', ')}`);
39
+ }
40
+ logger.info(`Detected stack: ${stack.language}${stack.framework ? ` with ${stack.framework}` : ''}`);
41
+ // Get project template preference
42
+ let template = options.template;
43
+ if (!template) {
44
+ const response = await prompts({
45
+ type: 'select',
46
+ name: 'template',
47
+ message: 'What type of project is this?',
48
+ choices: [
49
+ { title: 'Web Application', value: 'web' },
50
+ { title: 'Command Line Tool', value: 'cli' },
51
+ { title: 'Library/Package', value: 'library' },
52
+ { title: 'Full Stack Application', value: 'fullstack' },
53
+ { title: 'Mobile Application', value: 'mobile' },
54
+ { title: 'Custom', value: 'custom' }
55
+ ],
56
+ initial: stack.framework ? 0 : 1
57
+ });
58
+ template = response.template;
59
+ }
60
+ if (!template) {
61
+ logger.error('Template selection is required');
62
+ return;
63
+ }
64
+ // Generate project config
65
+ const projectConfig = {
66
+ name: getProjectName(cwd),
67
+ stack,
68
+ agents,
69
+ preferences: {
70
+ alwaysUseGit: true,
71
+ alwaysWriteTests: true,
72
+ testFramework: stack.testFramework || 'jest',
73
+ commitStyle: 'conventional',
74
+ runDevServer: true
75
+ }
76
+ };
77
+ // Generate agents.md content
78
+ const templateEngine = new TemplateEngine();
79
+ const agentsContent = await templateEngine.generateAgentsFile(projectConfig, template);
80
+ // Write agents.md
81
+ const writeSpinner = ora('Creating agents.md...').start();
82
+ await writeFile(agentsPath, agentsContent);
83
+ writeSpinner.succeed('agents.md created successfully');
84
+ logger.success('✨ Project initialized successfully!');
85
+ logger.info('Next steps:');
86
+ logger.info(' 1. Review and customize agents.md');
87
+ logger.info(' 2. Run `agentinit sync` to apply configuration');
88
+ logger.info(' 3. Run `agentinit mcp --interactive` to install MCPs');
89
+ }
90
+ catch (error) {
91
+ spinner.fail('Failed to analyze project');
92
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
93
+ }
94
+ }
95
+ function getProjectName(cwd) {
96
+ try {
97
+ const packageJsonPath = resolve(cwd, 'package.json');
98
+ const packageJson = require(packageJsonPath);
99
+ return packageJson.name || cwd.split('/').pop() || 'project';
100
+ }
101
+ catch {
102
+ return cwd.split('/').pop() || 'project';
103
+ }
104
+ }
105
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAElD,oCAAoC;IACpC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;YAC7B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,wDAAwD;YACjE,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAE1C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC;YAC/B,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC;SAC/B,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAE7C,yBAAyB;QACzB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErG,kCAAkC;QAClC,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAC7B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,+BAA+B;gBACxC,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE;oBAC1C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE;oBAC5C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;oBAC9C,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;oBACvD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;iBACrC;gBACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACjC,CAAC,CAAC;YAEH,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC;YACzB,KAAK;YACL,MAAM;YACN,WAAW,EAAE;gBACX,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;gBACtB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM;gBAC5C,WAAW,EAAE,cAAc;gBAC3B,YAAY,EAAE,IAAI;aACnB;SACF,CAAC;QAEF,6BAA6B;QAC7B,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEvF,kBAAkB;QAClB,MAAM,YAAY,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC3C,YAAY,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAExE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface MCPOptions {
2
+ interactive?: boolean;
3
+ search?: string;
4
+ install?: string;
5
+ }
6
+ export declare function mcpCommand(options: MCPOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAWA,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBnE"}
@@ -0,0 +1,127 @@
1
+ import ora from 'ora';
2
+ import prompts from 'prompts';
3
+ import { exec } from 'child_process';
4
+ import { promisify } from 'util';
5
+ import { logger } from '../utils/logger.js';
6
+ import { MCPRegistryManager } from '../registry/mcpRegistry.js';
7
+ import { StackDetector } from '../core/stackDetector.js';
8
+ const execAsync = promisify(exec);
9
+ export async function mcpCommand(options) {
10
+ const cwd = process.cwd();
11
+ logger.title('📦 AgentInit - MCP Management');
12
+ const registryManager = new MCPRegistryManager();
13
+ if (options.search) {
14
+ await searchMCPs(registryManager, options.search);
15
+ return;
16
+ }
17
+ if (options.install) {
18
+ await installMCP(registryManager, options.install);
19
+ return;
20
+ }
21
+ if (options.interactive) {
22
+ await interactiveMCPSelection(registryManager, cwd);
23
+ return;
24
+ }
25
+ // Default: show top MCPs
26
+ showTopMCPs(registryManager);
27
+ }
28
+ async function searchMCPs(registry, query) {
29
+ const results = registry.searchMCPs(query);
30
+ if (results.length === 0) {
31
+ logger.info(`No MCPs found matching "${query}"`);
32
+ return;
33
+ }
34
+ logger.success(`Found ${results.length} MCPs matching "${query}":`);
35
+ results.forEach(mcp => displayMCP(mcp));
36
+ }
37
+ async function installMCP(registry, name) {
38
+ const mcp = registry.getMCPByName(name);
39
+ if (!mcp) {
40
+ logger.error(`MCP "${name}" not found in registry`);
41
+ return;
42
+ }
43
+ const spinner = ora(`Installing ${mcp.name}...`).start();
44
+ try {
45
+ await execAsync(mcp.installCommand);
46
+ spinner.succeed(`${mcp.name} installed successfully`);
47
+ logger.info('Agent Instructions:');
48
+ logger.info(mcp.agentInstructions);
49
+ }
50
+ catch (error) {
51
+ spinner.fail(`Failed to install ${mcp.name}`);
52
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
53
+ }
54
+ }
55
+ async function interactiveMCPSelection(registry, projectPath) {
56
+ // Detect stack to show relevant MCPs
57
+ const stackDetector = new StackDetector();
58
+ const stack = await stackDetector.detectStack(projectPath);
59
+ logger.info(`Detected stack: ${stack.language}${stack.framework ? ` with ${stack.framework}` : ''}`);
60
+ // Get recommendations based on stack
61
+ const stackMCPs = registry.getMCPsForStack(stack.language);
62
+ const topMCPs = registry.getTopMCPs(4);
63
+ // Combine and deduplicate
64
+ const recommendedMCPs = [...new Set([...stackMCPs, ...topMCPs])].slice(0, 6);
65
+ const choices = recommendedMCPs.map(mcp => ({
66
+ title: `${mcp.name} - ${mcp.description}`,
67
+ value: mcp,
68
+ selected: false
69
+ }));
70
+ choices.push({
71
+ title: '🔍 Search for more MCPs',
72
+ value: 'search',
73
+ selected: false
74
+ });
75
+ const response = await prompts({
76
+ type: 'multiselect',
77
+ name: 'mcps',
78
+ message: '🔥 Select MCPs to install:',
79
+ choices,
80
+ hint: 'Space to select, Enter to confirm'
81
+ });
82
+ if (!response.mcps || response.mcps.length === 0) {
83
+ logger.info('No MCPs selected');
84
+ return;
85
+ }
86
+ // Handle search option
87
+ if (response.mcps.includes('search')) {
88
+ const searchResponse = await prompts({
89
+ type: 'text',
90
+ name: 'query',
91
+ message: 'Search MCPs:'
92
+ });
93
+ if (searchResponse.query) {
94
+ await searchMCPs(registry, searchResponse.query);
95
+ }
96
+ return;
97
+ }
98
+ // Install selected MCPs
99
+ for (const mcp of response.mcps) {
100
+ if (typeof mcp === 'object') {
101
+ await installMCP(registry, mcp.name);
102
+ }
103
+ }
104
+ logger.success('✨ MCP installation complete!');
105
+ logger.info('Next steps:');
106
+ logger.info(' 1. Update your agents.md with MCP-specific instructions');
107
+ logger.info(' 2. Run `agentinit sync` to apply changes to agent configs');
108
+ }
109
+ function showTopMCPs(registry) {
110
+ const topMCPs = registry.getTopMCPs(5);
111
+ logger.subtitle('🔥 Top Recommended MCPs:');
112
+ topMCPs.forEach(mcp => displayMCP(mcp));
113
+ logger.info('');
114
+ logger.info('Commands:');
115
+ logger.info(' agentinit mcp --interactive Interactive MCP selection');
116
+ logger.info(' agentinit mcp --search <query> Search for MCPs');
117
+ logger.info(' agentinit mcp --install <name> Install specific MCP');
118
+ }
119
+ function displayMCP(mcp) {
120
+ const verification = mcp.verified ? '✓' : '?';
121
+ logger.info(` ${verification} ${mcp.name} (${mcp.category})`);
122
+ logger.info(` ${mcp.description}`);
123
+ logger.info(` Install: ${mcp.installCommand}`);
124
+ logger.info(` Stack: ${mcp.stackCompatibility.join(', ')}`);
125
+ logger.info('');
126
+ }
127
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface SubagentsOptions {
2
+ list?: boolean;
3
+ run?: string;
4
+ chain?: string;
5
+ parallel?: string;
6
+ }
7
+ export declare function subagentsCommand(options: SubagentsOptions): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=subagents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents.d.ts","sourceRoot":"","sources":["../../src/commands/subagents.ts"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/E"}
@@ -0,0 +1,6 @@
1
+ import { logger } from '../utils/logger.js';
2
+ export async function subagentsCommand(options) {
3
+ logger.title('🤖 AgentInit - Sub-agents');
4
+ logger.info('Sub-agent management coming soon...');
5
+ }
6
+ //# sourceMappingURL=subagents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents.js","sourceRoot":"","sources":["../../src/commands/subagents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAS5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC9D,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface SyncOptions {
2
+ dryRun?: boolean;
3
+ backup?: boolean;
4
+ }
5
+ export declare function syncCommand(options: SyncOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDrE"}
@@ -0,0 +1,49 @@
1
+ import ora from 'ora';
2
+ import { logger } from '../utils/logger.js';
3
+ import { Propagator } from '../core/propagator.js';
4
+ export async function syncCommand(options) {
5
+ const cwd = process.cwd();
6
+ logger.title('🔄 AgentInit - Sync Configuration');
7
+ if (options.dryRun) {
8
+ logger.info('Running in dry-run mode - no files will be modified');
9
+ }
10
+ const spinner = ora('Syncing agents.md with agent configurations...').start();
11
+ try {
12
+ const propagator = new Propagator();
13
+ const result = await propagator.syncAgentsFile(cwd, options);
14
+ if (result.success) {
15
+ spinner.succeed('Synchronization complete');
16
+ if (result.changes.length === 0) {
17
+ logger.info('No changes needed - all configurations are up to date');
18
+ }
19
+ else {
20
+ logger.success(`Applied ${result.changes.length} changes:`);
21
+ for (const change of result.changes) {
22
+ const action = change.action === 'created' ? '➕' :
23
+ change.action === 'updated' ? '📝' : '💾';
24
+ logger.info(` ${action} ${change.agent}: ${change.file}`);
25
+ }
26
+ if (options.backup && result.changes.some(c => c.action === 'backed_up')) {
27
+ logger.info('💾 Backup files created with .agentinit.backup extension');
28
+ }
29
+ }
30
+ }
31
+ else {
32
+ spinner.fail('Synchronization failed');
33
+ for (const error of result.errors) {
34
+ logger.error(error);
35
+ }
36
+ if (result.changes.length > 0) {
37
+ logger.warning('Partial sync completed. Some changes were applied:');
38
+ for (const change of result.changes) {
39
+ logger.info(` - ${change.agent}: ${change.file}`);
40
+ }
41
+ }
42
+ }
43
+ }
44
+ catch (error) {
45
+ spinner.fail('Sync failed');
46
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
47
+ }
48
+ }
49
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,gDAAgD,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAE5C,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;gBAE5D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACpC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;oBACzE,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;gBACrE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function verifyMcpCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=verifyMcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyMcp.d.ts","sourceRoot":"","sources":["../../src/commands/verifyMcp.ts"],"names":[],"mappings":"AAcA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4OpE"}
@@ -0,0 +1,215 @@
1
+ import ora from 'ora';
2
+ import { logger } from '../utils/logger.js';
3
+ import { MCPVerifier } from '../core/mcpClient.js';
4
+ import { DEFAULT_CONNECTION_TIMEOUT_MS } from '../constants/index.js';
5
+ import { MCPParser, MCPParseError } from '../core/mcpParser.js';
6
+ import { AgentManager } from '../core/agentManager.js';
7
+ export async function verifyMcpCommand(args) {
8
+ const cwd = process.cwd();
9
+ logger.title('🔍 AgentInit - MCP Verification');
10
+ // Parse command line options
11
+ const hasAll = args.includes('--all');
12
+ const mcpNameIndex = args.findIndex(arg => arg === '--mcp-name');
13
+ const mcpName = mcpNameIndex >= 0 && mcpNameIndex + 1 < args.length ? args[mcpNameIndex + 1] : null;
14
+ const timeoutIndex = args.findIndex(arg => arg === '--timeout');
15
+ const timeoutArg = timeoutIndex >= 0 && timeoutIndex + 1 < args.length ? args[timeoutIndex + 1] : null;
16
+ const parsedTimeout = timeoutArg ? parseInt(timeoutArg, 10) : NaN;
17
+ const timeout = timeoutArg && Number.isFinite(parsedTimeout) && parsedTimeout > 0 ? parsedTimeout : undefined;
18
+ // Check if MCP configuration arguments are present
19
+ const hasMcpArgs = args.some(arg => arg.startsWith('--mcp-'));
20
+ // Validate options
21
+ if (mcpName && hasAll) {
22
+ logger.error('Cannot use --mcp-name and --all together. Choose one option.');
23
+ process.exit(1);
24
+ }
25
+ if (hasMcpArgs && (mcpName || hasAll)) {
26
+ logger.error('Cannot mix direct MCP configuration with --mcp-name or --all. Choose one approach.');
27
+ process.exit(1);
28
+ }
29
+ if (!mcpName && !hasAll && !hasMcpArgs) {
30
+ logger.info('Usage: agentinit verify_mcp [options]');
31
+ logger.info('');
32
+ logger.info('Verify existing configurations:');
33
+ logger.info(' --mcp-name <name> Verify specific MCP server by name');
34
+ logger.info(' --all Verify all configured MCP servers');
35
+ logger.info(` --timeout <ms> Connection timeout in milliseconds (default: ${DEFAULT_CONNECTION_TIMEOUT_MS})`);
36
+ logger.info('');
37
+ logger.info('Verify direct MCP configuration:');
38
+ logger.info(' --mcp-stdio <name> <command> Verify STDIO MCP server');
39
+ logger.info(' --mcp-http <name> <url> Verify HTTP MCP server');
40
+ logger.info(' --mcp-sse <name> <url> Verify SSE MCP server');
41
+ logger.info(' --args <args> Additional arguments for server');
42
+ logger.info(' --env <env_vars> Environment variables for server');
43
+ logger.info(' --auth <token> Authentication token for HTTP/SSE');
44
+ logger.info('');
45
+ logger.info('Examples:');
46
+ logger.info(' # Verify existing configurations');
47
+ logger.info(' agentinit verify_mcp --all');
48
+ logger.info(' agentinit verify_mcp --mcp-name exa');
49
+ logger.info('');
50
+ logger.info(' # Verify direct configuration');
51
+ logger.info(' agentinit verify_mcp --mcp-stdio everything "npx -y @modelcontextprotocol/server-everything"');
52
+ logger.info(' agentinit verify_mcp --mcp-http github "https://api.github.com/mcp" --auth "Bearer token"');
53
+ return;
54
+ }
55
+ let spinner;
56
+ let serversToVerify = [];
57
+ let filteredSources = [];
58
+ try {
59
+ if (hasMcpArgs) {
60
+ // Handle direct MCP configuration
61
+ spinner = ora('Parsing MCP configuration...').start();
62
+ // Filter out non-MCP arguments
63
+ const mcpArgs = args.filter((arg, index) => {
64
+ if (arg === '--mcp-name' || arg === '--all' || arg === '--timeout')
65
+ return false;
66
+ if (index > 0 && (args[index - 1] === '--mcp-name' || args[index - 1] === '--timeout'))
67
+ return false;
68
+ return true;
69
+ });
70
+ // Parse MCP configuration
71
+ const mcpParsed = MCPParser.parseArguments(mcpArgs);
72
+ serversToVerify = mcpParsed.servers;
73
+ if (serversToVerify.length === 0) {
74
+ spinner.warn('No MCP servers found in arguments');
75
+ logger.info('Use --mcp-stdio, --mcp-http, or --mcp-sse to specify servers');
76
+ return;
77
+ }
78
+ spinner.text = `Verifying ${serversToVerify.length} MCP server(s) from arguments...`;
79
+ }
80
+ else {
81
+ // Handle existing configuration verification
82
+ spinner = ora('Detecting agents and MCP configurations...').start();
83
+ // Initialize agent manager and detect agents
84
+ const agentManager = new AgentManager();
85
+ const detectedAgents = await agentManager.detectAgents(cwd);
86
+ if (detectedAgents.length === 0) {
87
+ spinner.warn('No AI coding agents detected in this project');
88
+ logger.info('Run `agentinit detect` to see which agents are supported');
89
+ return;
90
+ }
91
+ // Collect all MCP servers from detected agents
92
+ const allMcpServers = [];
93
+ const serverSources = [];
94
+ for (const detection of detectedAgents) {
95
+ const { agent } = detection;
96
+ // Get MCP configuration for this agent
97
+ try {
98
+ const mcpServers = await agent.getMCPServers(cwd);
99
+ for (const server of mcpServers) {
100
+ allMcpServers.push(server);
101
+ serverSources.push({
102
+ server,
103
+ agent: agent.name,
104
+ configPath: agent.getNativeMcpPath(cwd)
105
+ });
106
+ }
107
+ }
108
+ catch (error) {
109
+ // Agent might not have MCP configuration, continue
110
+ continue;
111
+ }
112
+ }
113
+ if (allMcpServers.length === 0) {
114
+ spinner.warn('No MCP servers found in any agent configuration');
115
+ logger.info('Use `agentinit apply` to add MCP servers to your project');
116
+ return;
117
+ }
118
+ // Filter servers based on options
119
+ if (hasAll) {
120
+ serversToVerify = allMcpServers;
121
+ filteredSources = serverSources;
122
+ spinner.text = `Verifying ${serversToVerify.length} MCP server(s)...`;
123
+ }
124
+ else if (mcpName) {
125
+ const matchingServers = allMcpServers.filter(server => server.name.toLowerCase() === mcpName.toLowerCase());
126
+ if (matchingServers.length === 0) {
127
+ spinner.fail(`MCP server "${mcpName}" not found`);
128
+ logger.info('Available MCP servers:');
129
+ allMcpServers.forEach(server => {
130
+ const source = serverSources.find(s => s.server.name === server.name);
131
+ logger.info(` • ${server.name} (${server.type}) - ${source?.agent || 'unknown'}`);
132
+ });
133
+ return;
134
+ }
135
+ serversToVerify = matchingServers;
136
+ filteredSources = serverSources.filter(s => matchingServers.some(server => server.name === s.server.name));
137
+ spinner.text = `Verifying MCP server "${mcpName}"...`;
138
+ }
139
+ }
140
+ // Initialize verifier and verify servers
141
+ const verifier = new MCPVerifier(timeout);
142
+ const results = await verifier.verifyServers(serversToVerify, timeout);
143
+ // Count results
144
+ const successCount = results.filter(r => r.status === 'success').length;
145
+ const errorCount = results.filter(r => r.status === 'error').length;
146
+ const timeoutCount = results.filter(r => r.status === 'timeout').length;
147
+ // Update spinner based on results
148
+ if (successCount === results.length) {
149
+ spinner.succeed(`All ${results.length} MCP server(s) verified successfully!`);
150
+ }
151
+ else if (successCount > 0) {
152
+ spinner.warn(`${successCount}/${results.length} MCP server(s) verified successfully`);
153
+ }
154
+ else {
155
+ spinner.fail(`Failed to verify any MCP servers`);
156
+ }
157
+ logger.info('');
158
+ logger.info('Verification Results:');
159
+ logger.info('');
160
+ // Display formatted results
161
+ const formattedOutput = verifier.formatResults(results);
162
+ console.log(formattedOutput);
163
+ // Show summary
164
+ if (results.length > 1) {
165
+ logger.info('Summary:');
166
+ logger.info(` ✅ Successful: ${successCount}`);
167
+ if (errorCount > 0) {
168
+ logger.info(` ❌ Failed: ${errorCount}`);
169
+ }
170
+ if (timeoutCount > 0) {
171
+ logger.info(` ⏱️ Timeout: ${timeoutCount}`);
172
+ }
173
+ logger.info('');
174
+ }
175
+ // Show source information for failed servers (only for existing configuration mode)
176
+ if (!hasMcpArgs) {
177
+ const failedServers = results.filter(r => r.status !== 'success');
178
+ if (failedServers.length > 0) {
179
+ logger.info('Configuration Sources:');
180
+ failedServers.forEach(result => {
181
+ const source = filteredSources.find(s => s.server.name === result.server.name);
182
+ if (source) {
183
+ logger.info(` • ${result.server.name}: ${source.configPath} (${source.agent})`);
184
+ }
185
+ });
186
+ logger.info('');
187
+ }
188
+ }
189
+ // Show next steps for failed verifications
190
+ if (successCount < results.length) {
191
+ logger.info('Troubleshooting Tips:');
192
+ logger.info(' 1. Ensure MCP server packages are installed');
193
+ logger.info(' 2. Check environment variables are set correctly');
194
+ logger.info(' 3. Verify network connectivity for HTTP/SSE servers');
195
+ logger.info(' 4. Try increasing timeout with --timeout <ms>');
196
+ logger.info(' 5. Check agent configuration files for syntax errors');
197
+ }
198
+ }
199
+ catch (error) {
200
+ if (spinner) {
201
+ spinner.fail('Failed to verify MCP servers');
202
+ }
203
+ if (error instanceof MCPParseError) {
204
+ logger.error('MCP Configuration Error:');
205
+ logger.error(error.message);
206
+ logger.info('');
207
+ logger.info('For help with the correct syntax, run: agentinit verify_mcp');
208
+ }
209
+ else {
210
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
211
+ }
212
+ process.exit(1);
213
+ }
214
+ }
215
+ //# sourceMappingURL=verifyMcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyMcp.js","sourceRoot":"","sources":["../../src/commands/verifyMcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { DEFAULT_CONNECTION_TIMEOUT_MS, MCP_VERIFIER_CONFIG, TimeoutError } from './mcp.js';
2
+ export { TOKEN_COUNT_THRESHOLDS, type TokenCountThreshold } from './tokens.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DEFAULT_CONNECTION_TIMEOUT_MS, MCP_VERIFIER_CONFIG, TimeoutError } from './mcp.js';
2
+ export { TOKEN_COUNT_THRESHOLDS } from './tokens.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAA4B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const DEFAULT_CONNECTION_TIMEOUT_MS = 30000;
2
+ export declare const MCP_VERIFIER_CONFIG: {
3
+ readonly name: "agentinit-verifier";
4
+ readonly version: string;
5
+ };
6
+ export declare class TimeoutError extends Error {
7
+ constructor(message: string);
8
+ }
9
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/constants/mcp.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAenD,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B"}