agentinit 1.4.1 → 1.6.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 (177) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +209 -0
  3. package/dist/agentinit-1.6.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/DroidAgent.d.ts +52 -0
  25. package/dist/agents/DroidAgent.d.ts.map +1 -0
  26. package/dist/agents/DroidAgent.js +228 -0
  27. package/dist/agents/DroidAgent.js.map +1 -0
  28. package/dist/agents/GeminiCliAgent.d.ts +40 -0
  29. package/dist/agents/GeminiCliAgent.d.ts.map +1 -0
  30. package/dist/agents/GeminiCliAgent.js +195 -0
  31. package/dist/agents/GeminiCliAgent.js.map +1 -0
  32. package/dist/cli.d.ts +3 -0
  33. package/dist/cli.d.ts.map +1 -0
  34. package/dist/cli.js +33365 -0
  35. package/dist/cli.js.map +1 -0
  36. package/dist/commands/apply.d.ts +2 -0
  37. package/dist/commands/apply.d.ts.map +1 -0
  38. package/dist/commands/apply.js +468 -0
  39. package/dist/commands/apply.js.map +1 -0
  40. package/dist/commands/config.d.ts +8 -0
  41. package/dist/commands/config.d.ts.map +1 -0
  42. package/dist/commands/config.js +6 -0
  43. package/dist/commands/config.js.map +1 -0
  44. package/dist/commands/detect.d.ts +6 -0
  45. package/dist/commands/detect.d.ts.map +1 -0
  46. package/dist/commands/detect.js +55 -0
  47. package/dist/commands/detect.js.map +1 -0
  48. package/dist/commands/init.d.ts +7 -0
  49. package/dist/commands/init.d.ts.map +1 -0
  50. package/dist/commands/init.js +105 -0
  51. package/dist/commands/init.js.map +1 -0
  52. package/dist/commands/mcp.d.ts +8 -0
  53. package/dist/commands/mcp.d.ts.map +1 -0
  54. package/dist/commands/mcp.js +127 -0
  55. package/dist/commands/mcp.js.map +1 -0
  56. package/dist/commands/subagents.d.ts +9 -0
  57. package/dist/commands/subagents.d.ts.map +1 -0
  58. package/dist/commands/subagents.js +6 -0
  59. package/dist/commands/subagents.js.map +1 -0
  60. package/dist/commands/sync.d.ts +7 -0
  61. package/dist/commands/sync.d.ts.map +1 -0
  62. package/dist/commands/sync.js +49 -0
  63. package/dist/commands/sync.js.map +1 -0
  64. package/dist/commands/verifyMcp.d.ts +2 -0
  65. package/dist/commands/verifyMcp.d.ts.map +1 -0
  66. package/dist/commands/verifyMcp.js +215 -0
  67. package/dist/commands/verifyMcp.js.map +1 -0
  68. package/dist/constants/index.d.ts +3 -0
  69. package/dist/constants/index.d.ts.map +1 -0
  70. package/dist/constants/index.js +3 -0
  71. package/dist/constants/index.js.map +1 -0
  72. package/dist/constants/mcp.d.ts +9 -0
  73. package/dist/constants/mcp.d.ts.map +1 -0
  74. package/dist/constants/mcp.js +28 -0
  75. package/dist/constants/mcp.js.map +1 -0
  76. package/dist/constants/tokens.d.ts +6 -0
  77. package/dist/constants/tokens.d.ts.map +1 -0
  78. package/dist/constants/tokens.js +5 -0
  79. package/dist/constants/tokens.js.map +1 -0
  80. package/dist/core/agentDetector.d.ts +9 -0
  81. package/dist/core/agentDetector.d.ts.map +1 -0
  82. package/dist/core/agentDetector.js +51 -0
  83. package/dist/core/agentDetector.js.map +1 -0
  84. package/dist/core/agentManager.d.ts +55 -0
  85. package/dist/core/agentManager.d.ts.map +1 -0
  86. package/dist/core/agentManager.js +113 -0
  87. package/dist/core/agentManager.js.map +1 -0
  88. package/dist/core/configMerger.d.ts +49 -0
  89. package/dist/core/configMerger.d.ts.map +1 -0
  90. package/dist/core/configMerger.js +180 -0
  91. package/dist/core/configMerger.js.map +1 -0
  92. package/dist/core/mcpClient.d.ts +38 -0
  93. package/dist/core/mcpClient.d.ts.map +1 -0
  94. package/dist/core/mcpClient.js +416 -0
  95. package/dist/core/mcpClient.js.map +1 -0
  96. package/dist/core/mcpFilter.d.ts +44 -0
  97. package/dist/core/mcpFilter.d.ts.map +1 -0
  98. package/dist/core/mcpFilter.js +126 -0
  99. package/dist/core/mcpFilter.js.map +1 -0
  100. package/dist/core/mcpParser.d.ts +25 -0
  101. package/dist/core/mcpParser.d.ts.map +1 -0
  102. package/dist/core/mcpParser.js +297 -0
  103. package/dist/core/mcpParser.js.map +1 -0
  104. package/dist/core/propagator.d.ts +25 -0
  105. package/dist/core/propagator.d.ts.map +1 -0
  106. package/dist/core/propagator.js +154 -0
  107. package/dist/core/propagator.js.map +1 -0
  108. package/dist/core/rulesApplicator.d.ts +29 -0
  109. package/dist/core/rulesApplicator.d.ts.map +1 -0
  110. package/dist/core/rulesApplicator.js +181 -0
  111. package/dist/core/rulesApplicator.js.map +1 -0
  112. package/dist/core/rulesParser.d.ts +41 -0
  113. package/dist/core/rulesParser.d.ts.map +1 -0
  114. package/dist/core/rulesParser.js +260 -0
  115. package/dist/core/rulesParser.js.map +1 -0
  116. package/dist/core/rulesTemplateLoader.d.ts +31 -0
  117. package/dist/core/rulesTemplateLoader.d.ts.map +1 -0
  118. package/dist/core/rulesTemplateLoader.js +75 -0
  119. package/dist/core/rulesTemplateLoader.js.map +1 -0
  120. package/dist/core/stackDetector.d.ts +16 -0
  121. package/dist/core/stackDetector.d.ts.map +1 -0
  122. package/dist/core/stackDetector.js +234 -0
  123. package/dist/core/stackDetector.js.map +1 -0
  124. package/dist/core/templateEngine.d.ts +15 -0
  125. package/dist/core/templateEngine.d.ts.map +1 -0
  126. package/dist/core/templateEngine.js +260 -0
  127. package/dist/core/templateEngine.js.map +1 -0
  128. package/dist/core/tomlGenerator.d.ts +24 -0
  129. package/dist/core/tomlGenerator.d.ts.map +1 -0
  130. package/dist/core/tomlGenerator.js +185 -0
  131. package/dist/core/tomlGenerator.js.map +1 -0
  132. package/dist/index.d.ts +21 -0
  133. package/dist/index.d.ts.map +1 -0
  134. package/dist/index.js +21 -33195
  135. package/dist/index.js.map +1 -0
  136. package/dist/lib/index.d.ts +39 -0
  137. package/dist/lib/index.d.ts.map +1 -0
  138. package/dist/lib/index.js +40 -0
  139. package/dist/lib/index.js.map +1 -0
  140. package/dist/lib/types/index.d.ts +23 -0
  141. package/dist/lib/types/index.d.ts.map +1 -0
  142. package/dist/lib/types/index.js +23 -0
  143. package/dist/lib/types/index.js.map +1 -0
  144. package/dist/lib/utils/index.d.ts +18 -0
  145. package/dist/lib/utils/index.d.ts.map +1 -0
  146. package/dist/lib/utils/index.js +21 -0
  147. package/dist/lib/utils/index.js.map +1 -0
  148. package/dist/lib/verifier/index.d.ts +22 -0
  149. package/dist/lib/verifier/index.d.ts.map +1 -0
  150. package/dist/lib/verifier/index.js +22 -0
  151. package/dist/lib/verifier/index.js.map +1 -0
  152. package/dist/registry/mcpRegistry.d.ts +12 -0
  153. package/dist/registry/mcpRegistry.d.ts.map +1 -0
  154. package/dist/registry/mcpRegistry.js +114 -0
  155. package/dist/registry/mcpRegistry.js.map +1 -0
  156. package/dist/types/index.d.ts +180 -0
  157. package/dist/types/index.d.ts.map +1 -0
  158. package/dist/types/index.js +21 -0
  159. package/dist/types/index.js.map +1 -0
  160. package/dist/types/rules.d.ts +51 -0
  161. package/dist/types/rules.d.ts.map +1 -0
  162. package/dist/types/rules.js +2 -0
  163. package/dist/types/rules.js.map +1 -0
  164. package/dist/utils/fs.d.ts +12 -0
  165. package/dist/utils/fs.d.ts.map +1 -0
  166. package/dist/utils/fs.js +91 -0
  167. package/dist/utils/fs.js.map +1 -0
  168. package/dist/utils/logger.d.ts +14 -0
  169. package/dist/utils/logger.d.ts.map +1 -0
  170. package/dist/utils/logger.js +36 -0
  171. package/dist/utils/logger.js.map +1 -0
  172. package/dist/utils/paths.d.ts +77 -0
  173. package/dist/utils/paths.d.ts.map +1 -0
  174. package/dist/utils/paths.js +140 -0
  175. package/dist/utils/paths.js.map +1 -0
  176. package/package.json +30 -6
  177. package/dist/agentinit-1.4.1.tgz +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,0DAA0D,CAAC;KACvE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0CAA0C,CAAC;KACvD,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3B,6CAA6C;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,aAAa,EAAE,kCAAkC,CAAC;KACzD,MAAM,CAAC,2BAA2B,EAAE,2CAA2C,CAAC;KAChF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,eAAe,EAAE,iCAAiC,CAAC;KAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;KAC5E,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;KACtD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3B,6CAA6C;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function applyCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"AA8CA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgfhE"}
@@ -0,0 +1,468 @@
1
+ import ora from 'ora';
2
+ import { green, yellow, red } from 'kleur/colors';
3
+ import { logger } from '../utils/logger.js';
4
+ import { MCPParser, MCPParseError } from '../core/mcpParser.js';
5
+ import { TOKEN_COUNT_THRESHOLDS, DEFAULT_CONNECTION_TIMEOUT_MS } from '../constants/index.js';
6
+ import { RulesParser, RulesParseError } from '../core/rulesParser.js';
7
+ import { TOMLGenerator } from '../core/tomlGenerator.js';
8
+ import { readFileIfExists, writeFile, getAgentInitTomlPath } from '../utils/fs.js';
9
+ import { AgentManager } from '../core/agentManager.js';
10
+ import { MCPFilter } from '../core/mcpFilter.js';
11
+ import { MCPVerifier } from '../core/mcpClient.js';
12
+ // Color utility functions for token display
13
+ function colorizeTokenCount(tokenCount) {
14
+ if (tokenCount <= TOKEN_COUNT_THRESHOLDS.LOW)
15
+ return green(tokenCount.toString());
16
+ if (tokenCount <= TOKEN_COUNT_THRESHOLDS.MEDIUM)
17
+ return yellow(tokenCount.toString());
18
+ return red(tokenCount.toString());
19
+ }
20
+ function colorizeTokenDiff(diff) {
21
+ if (diff === 0)
22
+ return '±0';
23
+ if (diff > 0)
24
+ return green(`+${diff}`);
25
+ return red(`${diff}`); // Already has negative sign
26
+ }
27
+ export async function applyCommand(args) {
28
+ const cwd = process.cwd();
29
+ logger.title('🔧 AgentInit - Apply Configuration');
30
+ // Check if any MCP or Rules arguments are present
31
+ const hasMcpArgs = args.some(arg => arg.startsWith('--mcp-'));
32
+ const hasRulesArgs = args.some(arg => arg === '--rules' || arg === '--rule-raw' || arg === '--rules-file' || arg === '--rules-remote');
33
+ // Check if --client or --agent is specified
34
+ const clientArgIndex = args.findIndex(arg => arg === '--client' || arg === '--agent');
35
+ const specifiedClient = clientArgIndex >= 0 && clientArgIndex + 1 < args.length
36
+ ? args[clientArgIndex + 1]
37
+ : null;
38
+ // Check if --global flag is specified
39
+ const isGlobal = args.includes('--global');
40
+ // Check if --verify-mcp flag is specified
41
+ const verifyMcp = args.includes('--verify-mcp');
42
+ // Parse timeout argument
43
+ const timeoutIndex = args.findIndex(arg => arg === '--timeout');
44
+ const timeoutArg = timeoutIndex >= 0 && timeoutIndex + 1 < args.length ? args[timeoutIndex + 1] : null;
45
+ const parsedTimeout = timeoutArg ? parseInt(timeoutArg, 10) : NaN;
46
+ const timeout = timeoutArg && Number.isFinite(parsedTimeout) && parsedTimeout > 0 ? parsedTimeout : undefined;
47
+ if (!hasMcpArgs && !hasRulesArgs) {
48
+ logger.info('Usage: agentinit apply [options]');
49
+ logger.info('');
50
+ logger.info('Options:');
51
+ logger.info(' --client <agent> Target specific agent (claude, claude-desktop, codex, gemini, cursor)');
52
+ logger.info(' --agent <agent> Alias for --client');
53
+ logger.info(' --global Apply configuration globally (requires --agent)');
54
+ logger.info(' If not specified, auto-detects agents in the project');
55
+ logger.info(' --verify-mcp Verify MCP servers after configuration');
56
+ logger.info(` --timeout <ms> Connection timeout in milliseconds for MCP verification (default: ${DEFAULT_CONNECTION_TIMEOUT_MS})`);
57
+ logger.info('');
58
+ logger.info('Rules Configuration Options:');
59
+ logger.info(' --rules <templates> Apply rule templates (comma-separated)');
60
+ logger.info(' Available: git, write_docs, use_git_worktrees, use_subagents, use_linter, write_tests');
61
+ logger.info(' --rule-raw <rule> Add a raw rule (can be used multiple times)');
62
+ logger.info(' --rules-file <path> Load rules from a file');
63
+ logger.info(' --rules-remote <url> Load rules from a remote URL');
64
+ logger.info(' --auth <token> Authentication token for remote rules (Bearer token)');
65
+ logger.info('');
66
+ logger.info('Rules Configuration Examples:');
67
+ logger.info(' # Apply rule templates');
68
+ logger.info(' agentinit apply --rules git,write_tests,use_linter');
69
+ logger.info('');
70
+ logger.info(' # Mix templates with raw rules');
71
+ logger.info(' agentinit apply --rules git,write_docs --rule-raw "Use TypeScript strict mode"');
72
+ logger.info('');
73
+ logger.info(' # Load from file');
74
+ logger.info(' agentinit apply --rules-file ./custom-rules.md');
75
+ logger.info('');
76
+ logger.info(' # Global rules application');
77
+ logger.info(' agentinit apply --global --agent claude --rules git,write_tests');
78
+ logger.info('');
79
+ logger.info('MCP Configuration Examples:');
80
+ logger.info(' # Auto-detect agents and apply to all found');
81
+ logger.info(' agentinit apply \\');
82
+ logger.info(' --mcp-stdio context7 "npx -y @upstash/context7-mcp" --args "--api-key=YOUR_API_KEY"');
83
+ logger.info('');
84
+ logger.info(' # Target specific agent');
85
+ logger.info(' agentinit apply --client claude \\');
86
+ logger.info(' --mcp-http github "https://api.githubcopilot.com/mcp/" --auth "Bearer YOUR_GITHUB_PAT"');
87
+ logger.info('');
88
+ logger.info(' # HTTP MCP with custom headers');
89
+ logger.info(' agentinit apply --global --client claude \\');
90
+ logger.info(' --mcp-http context7 "https://mcp.context7.com/mcp" --header "CONTEXT7_API_KEY:your_api_key"');
91
+ logger.info('');
92
+ logger.info(' # Multiple MCPs with auto-detection');
93
+ logger.info(' agentinit apply \\');
94
+ logger.info(' --mcp-stdio supabase "npx -y @supabase/mcp-server-supabase@latest" \\');
95
+ logger.info(' --args "--read-only --project-ref=<project-ref>" \\');
96
+ logger.info(' --env "SUPABASE_ACCESS_TOKEN=<personal-access-token>" \\');
97
+ logger.info(' --mcp-http notion_api "https://mcp.notion.com/mcp"');
98
+ logger.info('');
99
+ logger.info(' # Apply globally to specific agent');
100
+ logger.info(' agentinit apply --global --agent claude \\');
101
+ logger.info(' --mcp-stdio filesystem "npx -y @modelcontextprotocol/server-filesystem" \\');
102
+ logger.info(' --args "/Users/username/Documents"');
103
+ logger.info('');
104
+ logger.info(' # Verify MCP servers after configuration');
105
+ logger.info(' agentinit apply --verify-mcp \\');
106
+ logger.info(' --mcp-stdio exa "npx -y @exa/mcp-server" \\');
107
+ logger.info(' --env "EXA_API_KEY=YOUR_API_KEY"');
108
+ return;
109
+ }
110
+ const spinner = ora('Parsing configurations...').start();
111
+ try {
112
+ // Parse the MCP arguments (filter out --client, --agent, --global and rules args)
113
+ const mcpArgs = args.filter((arg, index) => {
114
+ // Filter out non-MCP arguments
115
+ if (arg === '--client' || arg === '--agent' || arg === '--global' || arg === '--verify-mcp' || arg === '--timeout')
116
+ return false;
117
+ if (arg === '--rules' || arg === '--rule-raw' || arg === '--rules-file' || arg === '--rules-remote')
118
+ return false;
119
+ if (index > 0 && (args[index - 1] === '--client' || args[index - 1] === '--agent' || args[index - 1] === '--timeout'))
120
+ return false;
121
+ if (index > 0 && (args[index - 1] === '--rules' || args[index - 1] === '--rule-raw' || args[index - 1] === '--rules-file' || args[index - 1] === '--rules-remote'))
122
+ return false;
123
+ return true;
124
+ });
125
+ // Parse MCP configuration if present
126
+ const mcpParsed = hasMcpArgs ? MCPParser.parseArguments(mcpArgs) : { servers: [] };
127
+ // Parse Rules configuration if present
128
+ let appliedRules = null;
129
+ if (hasRulesArgs) {
130
+ const rulesParser = new RulesParser();
131
+ const rulesConfig = RulesParser.parseArguments(args);
132
+ // Validate template IDs
133
+ if (rulesConfig.templates.length > 0) {
134
+ const invalidTemplates = rulesParser.validateTemplateIds(rulesConfig.templates);
135
+ if (invalidTemplates.length > 0) {
136
+ spinner.fail(`Unknown rule templates: ${invalidTemplates.join(', ')}`);
137
+ logger.info('Available templates: git, write_docs, use_git_worktrees, use_subagents, use_linter, write_tests');
138
+ process.exit(1);
139
+ }
140
+ }
141
+ appliedRules = await rulesParser.processRules(rulesConfig);
142
+ }
143
+ if (mcpParsed.servers.length === 0 && (!appliedRules || appliedRules.merged.length === 0)) {
144
+ spinner.warn('No MCP servers or rules found in arguments');
145
+ logger.info('Use `agentinit apply` without arguments to see usage examples');
146
+ return;
147
+ }
148
+ // Validate global flag requirements
149
+ if (isGlobal && !specifiedClient) {
150
+ spinner.fail('--global flag requires --agent to specify target agent');
151
+ logger.error('Example: agentinit apply --global --agent claude --mcp-stdio ...');
152
+ process.exit(1);
153
+ }
154
+ spinner.text = isGlobal ? 'Preparing global configuration...' : 'Detecting agents...';
155
+ // Initialize agent manager
156
+ const agentManager = new AgentManager();
157
+ // Determine target agents
158
+ let targetAgents;
159
+ if (specifiedClient) {
160
+ // Use specified client
161
+ const agent = agentManager.getAgentById(specifiedClient);
162
+ if (!agent) {
163
+ spinner.fail(`Unknown agent: ${specifiedClient}`);
164
+ logger.error(`Supported agents: ${agentManager.getSupportedAgentIds().join(', ')}`);
165
+ process.exit(1);
166
+ }
167
+ if (isGlobal) {
168
+ // Global configuration - check if agent supports it
169
+ if (!agent.supportsGlobalConfig()) {
170
+ spinner.fail(`Agent ${agent.name} does not support global configuration`);
171
+ process.exit(1);
172
+ }
173
+ targetAgents = [{ agent, configPath: agent.getGlobalMcpPath() }];
174
+ spinner.text = `Applying globally to ${agent.name}...`;
175
+ }
176
+ else {
177
+ // Project-level configuration
178
+ const detection = await agent.detectPresence(cwd);
179
+ if (!detection) {
180
+ spinner.warn(`Agent ${specifiedClient} not found in project`);
181
+ logger.info(`To use ${agent.name}, ensure one of these files exists:`);
182
+ agent.configFiles.forEach(config => logger.info(` • ${config.path} (${config.type}, ${config.purpose}${config.description ? ': ' + config.description : ''})`));
183
+ return;
184
+ }
185
+ targetAgents = [detection];
186
+ spinner.text = `Applying to ${agent.name}...`;
187
+ }
188
+ }
189
+ else {
190
+ // Auto-detect agents (only for project-level configurations)
191
+ if (isGlobal) {
192
+ // This shouldn't happen due to earlier validation, but just in case
193
+ spinner.fail('Global configuration requires specifying an agent with --agent');
194
+ process.exit(1);
195
+ }
196
+ const detectedAgents = await agentManager.detectAgents(cwd);
197
+ if (detectedAgents.length === 0) {
198
+ spinner.warn('No AI coding agents detected in this project');
199
+ logger.info('Supported agents:');
200
+ agentManager.getAllAgents().forEach(agent => {
201
+ logger.info(` • ${agent.name} (${agent.id})`);
202
+ logger.info(` Files: ${agent.configFiles.map(c => c.path).join(', ')}`);
203
+ });
204
+ logger.info('');
205
+ logger.info('To target a specific agent, use: --agent <agent-id>');
206
+ logger.info('To configure globally, use: --global --agent <agent-id>');
207
+ return;
208
+ }
209
+ targetAgents = detectedAgents;
210
+ const agentNames = detectedAgents.map(d => d.agent.name).join(', ');
211
+ spinner.text = `Applying to detected agents: ${agentNames}`;
212
+ }
213
+ // Apply configuration to each target agent
214
+ const results = [];
215
+ for (const targetAgent of targetAgents) {
216
+ const { agent } = targetAgent;
217
+ // Filter and transform MCP servers for this agent
218
+ const filtered = MCPFilter.filterForAgent(agent, mcpParsed.servers);
219
+ const hasMcpServers = filtered.servers.length > 0;
220
+ const hasRules = appliedRules && appliedRules.merged.length > 0 && agent.capabilities.rules;
221
+ if (!hasMcpServers && !hasRules) {
222
+ if (mcpParsed.servers.length > 0 && !agent.capabilities.rules) {
223
+ logger.warning(`${agent.name}: No compatible MCP servers, and rules not supported`);
224
+ }
225
+ else if (!hasRules && appliedRules) {
226
+ logger.warning(`${agent.name}: No rules support`);
227
+ }
228
+ else {
229
+ logger.warning(`${agent.name}: No compatible MCP servers`);
230
+ }
231
+ continue;
232
+ }
233
+ // Apply MCP configuration (global or project-specific)
234
+ if (hasMcpServers) {
235
+ if (isGlobal) {
236
+ await agent.applyGlobalMCPConfig(filtered.servers);
237
+ }
238
+ else {
239
+ await agent.applyMCPConfig(cwd, filtered.servers);
240
+ }
241
+ }
242
+ // Apply rules configuration
243
+ let rulesResult = null;
244
+ if (hasRules && appliedRules) {
245
+ if (isGlobal) {
246
+ rulesResult = await agent.applyGlobalRules(appliedRules);
247
+ }
248
+ else {
249
+ rulesResult = await agent.applyRules(cwd, appliedRules);
250
+ }
251
+ }
252
+ results.push({
253
+ agent,
254
+ serversApplied: filtered.servers.length,
255
+ rulesApplied: rulesResult?.rulesApplied || 0,
256
+ rulesTokenCount: rulesResult?.tokenCount || 0,
257
+ rulesTokenDiff: rulesResult?.tokenDiff || 0,
258
+ totalFileTokens: rulesResult?.totalFileTokens || 0,
259
+ existingRules: rulesResult?.existingRules || [],
260
+ newlyApplied: rulesResult?.newlyApplied || [],
261
+ existingCount: rulesResult?.existingCount || 0,
262
+ newlyAppliedCount: rulesResult?.newlyAppliedCount || 0,
263
+ appliedSections: rulesResult?.mergedSections || [],
264
+ transformations: filtered.transformations,
265
+ mcpConfigPath: hasMcpServers ? (isGlobal ? agent.getGlobalMcpPath() : agent.getNativeMcpPath(cwd)) : null,
266
+ rulesConfigPath: rulesResult?.configPath || null,
267
+ rulesSuccess: rulesResult?.success ?? true
268
+ });
269
+ }
270
+ // Generate the universal TOML file (only for project-level configurations with MCPs)
271
+ let tomlPath = null;
272
+ if (!isGlobal && mcpParsed.servers.length > 0) {
273
+ tomlPath = await getAgentInitTomlPath(cwd);
274
+ const existingToml = await readFileIfExists(tomlPath);
275
+ let finalToml;
276
+ if (existingToml) {
277
+ finalToml = TOMLGenerator.mergeTOML(existingToml, mcpParsed.servers);
278
+ }
279
+ else {
280
+ finalToml = TOMLGenerator.generateTOML(mcpParsed.servers);
281
+ }
282
+ await writeFile(tomlPath, finalToml);
283
+ }
284
+ if (isGlobal) {
285
+ spinner.succeed('Global configuration applied successfully!');
286
+ }
287
+ else {
288
+ spinner.succeed('Configuration applied successfully!');
289
+ }
290
+ // Verify MCP servers if requested and MCP servers were configured
291
+ if (verifyMcp && mcpParsed.servers.length > 0) {
292
+ logger.info('');
293
+ const verifySpinner = ora(`Verifying ${mcpParsed.servers.length} MCP server(s)...`).start();
294
+ try {
295
+ const verifier = new MCPVerifier(timeout);
296
+ const verificationResults = await verifier.verifyServers(mcpParsed.servers, timeout);
297
+ const successCount = verificationResults.filter(r => r.status === 'success').length;
298
+ const errorCount = verificationResults.filter(r => r.status === 'error').length;
299
+ const timeoutCount = verificationResults.filter(r => r.status === 'timeout').length;
300
+ if (successCount === verificationResults.length) {
301
+ verifySpinner.succeed(`All ${verificationResults.length} MCP server(s) verified successfully!`);
302
+ }
303
+ else if (successCount > 0) {
304
+ verifySpinner.warn(`${successCount}/${verificationResults.length} MCP server(s) verified successfully`);
305
+ }
306
+ else {
307
+ verifySpinner.fail(`Failed to verify any MCP servers`);
308
+ }
309
+ logger.info('');
310
+ logger.info('MCP Verification Results:');
311
+ logger.info('');
312
+ const formattedOutput = verifier.formatResults(verificationResults);
313
+ console.log(formattedOutput);
314
+ if (successCount < verificationResults.length) {
315
+ logger.info('For troubleshooting, run: agentinit verify_mcp --all');
316
+ }
317
+ }
318
+ catch (error) {
319
+ verifySpinner.fail('MCP verification failed');
320
+ logger.error(`Verification error: ${error instanceof Error ? error.message : 'Unknown error'}`);
321
+ }
322
+ }
323
+ // Report results
324
+ if (tomlPath) {
325
+ logger.info(`📁 Universal config saved to: ${tomlPath}`);
326
+ }
327
+ // Report MCP servers if any
328
+ if (mcpParsed.servers.length > 0) {
329
+ logger.info(`🔥 Applied ${mcpParsed.servers.length} MCP server(s):`);
330
+ mcpParsed.servers.forEach(server => {
331
+ logger.info(` • ${server.name} (${server.type.toUpperCase()})`);
332
+ if (server.type === 'stdio' && server.command) {
333
+ logger.info(` Command: ${server.command} ${server.args?.join(' ') || ''}`);
334
+ }
335
+ else if (server.url) {
336
+ let sanitizedUrl;
337
+ try {
338
+ const parsedUrl = new URL(server.url);
339
+ parsedUrl.username = '';
340
+ parsedUrl.password = '';
341
+ parsedUrl.search = '';
342
+ sanitizedUrl = parsedUrl.toString();
343
+ }
344
+ catch {
345
+ sanitizedUrl = server.url.split('?')[0] || 'invalid-url';
346
+ }
347
+ logger.info(` URL: ${sanitizedUrl}`);
348
+ }
349
+ });
350
+ }
351
+ // Report rules if any
352
+ if (appliedRules && appliedRules.merged.length > 0) {
353
+ if (mcpParsed.servers.length > 0)
354
+ logger.info('');
355
+ // Calculate totals across all agents
356
+ const totalExisting = results.reduce((sum, r) => sum + (r.existingCount || 0), 0);
357
+ const totalNewlyApplied = results.reduce((sum, r) => sum + (r.newlyAppliedCount || 0), 0);
358
+ // Get unique sections across all results
359
+ const allSections = results.flatMap(r => r.appliedSections || []);
360
+ const uniqueSections = Array.from(new Map(allSections.map(s => [s.templateId, s])).values());
361
+ // Show existing sections (if any)
362
+ if (totalExisting > 0) {
363
+ const existingSectionCount = uniqueSections.filter(section => {
364
+ return section.rules.some((rule) => results.some(r => r.existingRules?.includes(rule)));
365
+ }).length;
366
+ logger.info(`📋 Already exists (${existingSectionCount} sections):`);
367
+ uniqueSections.forEach(section => {
368
+ const existingRulesInSection = section.rules.filter((rule) => results.some(r => r.existingRules?.includes(rule)));
369
+ if (existingRulesInSection.length > 0) {
370
+ logger.info(` • ${section.templateName} (${existingRulesInSection.length} rules)`);
371
+ }
372
+ });
373
+ }
374
+ // Show newly applied sections (if any)
375
+ if (totalNewlyApplied > 0) {
376
+ if (totalExisting > 0)
377
+ logger.info('');
378
+ const newlySectionCount = uniqueSections.filter(section => {
379
+ return section.rules.some((rule) => results.some(r => r.newlyApplied?.includes(rule)));
380
+ }).length;
381
+ logger.info(`📋 Applied (${newlySectionCount} sections):`);
382
+ uniqueSections.forEach(section => {
383
+ const newRulesInSection = section.rules.filter((rule) => results.some(r => r.newlyApplied?.includes(rule)));
384
+ if (newRulesInSection.length > 0) {
385
+ logger.info(` • ${section.templateName} (${newRulesInSection.length} rules)`);
386
+ }
387
+ });
388
+ }
389
+ }
390
+ logger.info('');
391
+ if (isGlobal) {
392
+ logger.info('🌍 Agents:');
393
+ }
394
+ else {
395
+ logger.info('🤖 Agents:');
396
+ }
397
+ const totalTokens = results.reduce((sum, result) => sum + (result.rulesTokenCount || 0), 0);
398
+ results.forEach(result => {
399
+ const mcpInfo = result.serversApplied > 0 ? `${result.serversApplied} MCP server(s)` : '';
400
+ const rulesInfo = result.rulesApplied > 0 ? `${result.rulesApplied} rule(s)` : '';
401
+ const appliedInfo = [mcpInfo, rulesInfo].filter(Boolean).join(', ');
402
+ logger.info(`- ${result.agent.name}`);
403
+ // Show detailed token information for rules
404
+ if (result.rulesApplied > 0) {
405
+ if (result.totalFileTokens && result.totalFileTokens > 0) {
406
+ const totalColored = colorizeTokenCount(result.totalFileTokens);
407
+ const totalDiff = colorizeTokenDiff(result.rulesTokenDiff || 0);
408
+ logger.info(` Total File: ${totalColored} tokens (${totalDiff})`);
409
+ }
410
+ if (result.rulesConfigPath) {
411
+ logger.info(` Config: ${result.rulesConfigPath}`);
412
+ }
413
+ // Show warning if file is overweight
414
+ if (result.totalFileTokens && result.totalFileTokens > 30000) {
415
+ const configName = result.rulesConfigPath?.includes('CLAUDE') ? 'CLAUDE.md' :
416
+ result.rulesConfigPath?.includes('.cursorrules') ? '.cursorrules' :
417
+ 'config file';
418
+ logger.warning(` ⚠️ ${configName} is overweight (>30k tokens). Consider reducing rules.`);
419
+ }
420
+ }
421
+ else if (result.mcpConfigPath) {
422
+ logger.info(` MCP Config: ${result.mcpConfigPath}`);
423
+ }
424
+ if (result.transformations.length > 0) {
425
+ logger.info(` ⚡ ${result.transformations.length} server(s) transformed for compatibility`);
426
+ result.transformations.forEach(transform => {
427
+ logger.info(` - ${transform.original.name}: ${transform.reason}`);
428
+ });
429
+ }
430
+ });
431
+ // Show total token count if multiple agents with rules
432
+ if (totalTokens > 0 && results.filter(r => r.rulesApplied > 0).length > 1) {
433
+ logger.info('');
434
+ logger.info(`📊 Total rules token usage: ${totalTokens} tokens`);
435
+ }
436
+ logger.info('');
437
+ logger.info('Next steps:');
438
+ logger.info(' 1. Review the generated configurations');
439
+ logger.info(' 2. Update environment variables with your actual API keys');
440
+ if (isGlobal) {
441
+ logger.info(' 3. Restart your AI coding agent to load the new global MCP servers');
442
+ logger.info(' Global configurations affect all projects using this agent');
443
+ }
444
+ else {
445
+ logger.info(' 3. Restart your AI coding agent to load the new MCP servers');
446
+ }
447
+ }
448
+ catch (error) {
449
+ spinner.fail('Failed to apply configuration');
450
+ if (error instanceof MCPParseError) {
451
+ logger.error('MCP Configuration Error:');
452
+ logger.error(error.message);
453
+ logger.info('');
454
+ logger.info('For help with the correct syntax, run: agentinit apply');
455
+ }
456
+ else if (error instanceof RulesParseError) {
457
+ logger.error('Rules Configuration Error:');
458
+ logger.error(error.message);
459
+ logger.info('');
460
+ logger.info('For help with rules syntax, run: agentinit apply');
461
+ }
462
+ else {
463
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
464
+ }
465
+ process.exit(1);
466
+ }
467
+ }
468
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface ConfigOptions {
2
+ global?: boolean;
3
+ local?: boolean;
4
+ list?: boolean;
5
+ }
6
+ export declare function configCommand(key?: string, value?: string, options?: ConfigOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxG"}
@@ -0,0 +1,6 @@
1
+ import { logger } from '../utils/logger.js';
2
+ export async function configCommand(key, value, options) {
3
+ logger.title('⚙️ AgentInit - Configuration');
4
+ logger.info('Configuration management coming soon...');
5
+ }
6
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,KAAc,EAAE,OAAuB;IACvF,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface DetectOptions {
2
+ verbose?: boolean;
3
+ }
4
+ export declare function detectCommand(options: DetectOptions): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE"}
@@ -0,0 +1,55 @@
1
+ import ora from 'ora';
2
+ import { logger } from '../utils/logger.js';
3
+ import { AgentDetector } from '../core/agentDetector.js';
4
+ import { StackDetector } from '../core/stackDetector.js';
5
+ export async function detectCommand(options) {
6
+ const cwd = process.cwd();
7
+ logger.title('🔍 AgentInit - Project Detection');
8
+ const spinner = ora('Detecting project configuration...').start();
9
+ try {
10
+ const agentDetector = new AgentDetector();
11
+ const stackDetector = new StackDetector();
12
+ const [agents, stack] = await Promise.all([
13
+ agentDetector.detectAgents(cwd),
14
+ stackDetector.detectStack(cwd)
15
+ ]);
16
+ spinner.succeed('Detection complete');
17
+ // Display results
18
+ logger.subtitle('📋 Stack Information:');
19
+ logger.info(`Language: ${stack.language}`);
20
+ if (stack.framework)
21
+ logger.info(`Framework: ${stack.framework}`);
22
+ if (stack.packageManager)
23
+ logger.info(`Package Manager: ${stack.packageManager}`);
24
+ if (stack.testFramework)
25
+ logger.info(`Test Framework: ${stack.testFramework}`);
26
+ if (options.verbose && stack.dependencies.length > 0) {
27
+ logger.info(`Dependencies: ${stack.dependencies.join(', ')}`);
28
+ }
29
+ logger.subtitle('🤖 Agent Configuration:');
30
+ // Filter agents based on DEBUG environment variable
31
+ const isDebugMode = process.env.DEBUG === '1';
32
+ const filteredAgents = isDebugMode ? agents : agents.filter(agent => agent.detected);
33
+ if (filteredAgents.length === 0) {
34
+ if (isDebugMode) {
35
+ logger.info('No agent configurations found');
36
+ }
37
+ else {
38
+ logger.info('No existing agent configurations found');
39
+ }
40
+ }
41
+ else {
42
+ filteredAgents.forEach(agent => {
43
+ logger.info(`${agent.name}: ${agent.detected ? '✓ Found' : '✗ Not found'}`);
44
+ if (options.verbose) {
45
+ agent.files.forEach(file => logger.debug(` - ${file}`));
46
+ }
47
+ });
48
+ }
49
+ }
50
+ catch (error) {
51
+ spinner.fail('Detection failed');
52
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
53
+ }
54
+ }
55
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface InitOptions {
2
+ force?: boolean;
3
+ template?: string;
4
+ }
5
+ export declare function initCommand(options: InitOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGrE"}