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,234 @@
1
+ import { resolve } from 'path';
2
+ import { fileExists, readFileIfExists, findFiles } from '../utils/fs.js';
3
+ export class StackDetector {
4
+ lockFiles = [
5
+ 'package-lock.json',
6
+ 'yarn.lock',
7
+ 'pnpm-lock.yaml',
8
+ 'bun.lockb',
9
+ 'Cargo.lock',
10
+ 'go.sum',
11
+ 'Pipfile.lock',
12
+ 'poetry.lock'
13
+ ];
14
+ manifestFiles = [
15
+ 'package.json',
16
+ 'Cargo.toml',
17
+ 'go.mod',
18
+ 'requirements.txt',
19
+ 'pyproject.toml',
20
+ 'pom.xml',
21
+ 'build.gradle'
22
+ ];
23
+ configFiles = [
24
+ 'next.config.js',
25
+ 'next.config.ts',
26
+ 'vite.config.js',
27
+ 'vite.config.ts',
28
+ 'webpack.config.js',
29
+ 'tsconfig.json',
30
+ 'vue.config.js',
31
+ 'nuxt.config.js'
32
+ ];
33
+ async detectStack(projectPath) {
34
+ // Step 1: Check lockfiles (most reliable)
35
+ const lockFileInfo = await this.detectFromLockFiles(projectPath);
36
+ if (lockFileInfo)
37
+ return lockFileInfo;
38
+ // Step 2: Check manifest files
39
+ const manifestInfo = await this.detectFromManifests(projectPath);
40
+ if (manifestInfo)
41
+ return manifestInfo;
42
+ // Step 3: Check config files
43
+ const configInfo = await this.detectFromConfigs(projectPath);
44
+ if (configInfo)
45
+ return configInfo;
46
+ // Step 4: Fallback to file patterns
47
+ return await this.detectFromFilePatterns(projectPath);
48
+ }
49
+ async detectFromLockFiles(projectPath) {
50
+ for (const lockFile of this.lockFiles) {
51
+ const lockPath = resolve(projectPath, lockFile);
52
+ if (await fileExists(lockPath)) {
53
+ return this.inferStackFromLockFile(projectPath, lockFile);
54
+ }
55
+ }
56
+ return null;
57
+ }
58
+ async inferStackFromLockFile(projectPath, lockFile) {
59
+ const baseInfo = {
60
+ language: 'unknown',
61
+ dependencies: []
62
+ };
63
+ switch (lockFile) {
64
+ case 'package-lock.json':
65
+ case 'yarn.lock':
66
+ case 'pnpm-lock.yaml':
67
+ case 'bun.lockb':
68
+ return await this.analyzeJavaScriptProject(projectPath);
69
+ case 'Cargo.lock':
70
+ return { ...baseInfo, language: 'rust', packageManager: 'cargo' };
71
+ case 'go.sum':
72
+ return { ...baseInfo, language: 'go', packageManager: 'go' };
73
+ case 'Pipfile.lock':
74
+ return { ...baseInfo, language: 'python', packageManager: 'pipenv' };
75
+ case 'poetry.lock':
76
+ return { ...baseInfo, language: 'python', packageManager: 'poetry' };
77
+ default:
78
+ return baseInfo;
79
+ }
80
+ }
81
+ async detectFromManifests(projectPath) {
82
+ for (const manifest of this.manifestFiles) {
83
+ const manifestPath = resolve(projectPath, manifest);
84
+ if (await fileExists(manifestPath)) {
85
+ return this.inferStackFromManifest(projectPath, manifest);
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ async inferStackFromManifest(projectPath, manifest) {
91
+ const baseInfo = {
92
+ language: 'unknown',
93
+ dependencies: []
94
+ };
95
+ switch (manifest) {
96
+ case 'package.json':
97
+ return await this.analyzeJavaScriptProject(projectPath);
98
+ case 'Cargo.toml':
99
+ return { ...baseInfo, language: 'rust', packageManager: 'cargo' };
100
+ case 'go.mod':
101
+ return { ...baseInfo, language: 'go', packageManager: 'go' };
102
+ case 'requirements.txt':
103
+ case 'pyproject.toml':
104
+ return { ...baseInfo, language: 'python', packageManager: 'pip' };
105
+ case 'pom.xml':
106
+ return { ...baseInfo, language: 'java', packageManager: 'maven' };
107
+ case 'build.gradle':
108
+ return { ...baseInfo, language: 'java', packageManager: 'gradle' };
109
+ default:
110
+ return baseInfo;
111
+ }
112
+ }
113
+ async detectFromConfigs(projectPath) {
114
+ for (const config of this.configFiles) {
115
+ const configPath = resolve(projectPath, config);
116
+ if (await fileExists(configPath)) {
117
+ return this.inferStackFromConfig(projectPath, config);
118
+ }
119
+ }
120
+ return null;
121
+ }
122
+ async inferStackFromConfig(projectPath, config) {
123
+ const baseInfo = {
124
+ language: 'javascript',
125
+ dependencies: []
126
+ };
127
+ if (config.includes('next.config')) {
128
+ return { ...baseInfo, framework: 'next.js' };
129
+ }
130
+ if (config.includes('vite.config')) {
131
+ return { ...baseInfo, framework: 'vite' };
132
+ }
133
+ if (config.includes('vue.config')) {
134
+ return { ...baseInfo, framework: 'vue' };
135
+ }
136
+ if (config.includes('nuxt.config')) {
137
+ return { ...baseInfo, framework: 'nuxt' };
138
+ }
139
+ if (config.includes('tsconfig')) {
140
+ return { ...baseInfo, language: 'typescript' };
141
+ }
142
+ return baseInfo;
143
+ }
144
+ async detectFromFilePatterns(projectPath) {
145
+ const patterns = [
146
+ { pattern: /\.py$/, language: 'python' },
147
+ { pattern: /\.rs$/, language: 'rust' },
148
+ { pattern: /\.go$/, language: 'go' },
149
+ { pattern: /\.ts$/, language: 'typescript' },
150
+ { pattern: /\.js$/, language: 'javascript' },
151
+ { pattern: /\.java$/, language: 'java' },
152
+ { pattern: /\.kt$/, language: 'kotlin' },
153
+ { pattern: /\.swift$/, language: 'swift' }
154
+ ];
155
+ const counts = new Map();
156
+ for (const { pattern, language } of patterns) {
157
+ const files = await findFiles(projectPath, pattern);
158
+ counts.set(language, files.length);
159
+ }
160
+ // Find the most common language
161
+ let maxCount = 0;
162
+ let detectedLanguage = 'unknown';
163
+ for (const [language, count] of counts) {
164
+ if (count > maxCount) {
165
+ maxCount = count;
166
+ detectedLanguage = language;
167
+ }
168
+ }
169
+ return {
170
+ language: detectedLanguage,
171
+ dependencies: []
172
+ };
173
+ }
174
+ async analyzeJavaScriptProject(projectPath) {
175
+ const packageJsonPath = resolve(projectPath, 'package.json');
176
+ const packageJsonContent = await readFileIfExists(packageJsonPath);
177
+ const info = {
178
+ language: 'javascript',
179
+ dependencies: []
180
+ };
181
+ if (!packageJsonContent)
182
+ return info;
183
+ try {
184
+ const packageJson = JSON.parse(packageJsonContent);
185
+ const allDeps = {
186
+ ...packageJson.dependencies,
187
+ ...packageJson.devDependencies
188
+ };
189
+ info.dependencies = Object.keys(allDeps);
190
+ // Detect TypeScript
191
+ if (allDeps.typescript || await fileExists(resolve(projectPath, 'tsconfig.json'))) {
192
+ info.language = 'typescript';
193
+ }
194
+ // Detect framework
195
+ if (allDeps.next)
196
+ info.framework = 'next.js';
197
+ else if (allDeps.react)
198
+ info.framework = 'react';
199
+ else if (allDeps.vue)
200
+ info.framework = 'vue';
201
+ else if (allDeps['@angular/core'])
202
+ info.framework = 'angular';
203
+ else if (allDeps.svelte)
204
+ info.framework = 'svelte';
205
+ else if (allDeps.express)
206
+ info.framework = 'express';
207
+ else if (allDeps.fastify)
208
+ info.framework = 'fastify';
209
+ // Detect package manager
210
+ if (await fileExists(resolve(projectPath, 'yarn.lock')))
211
+ info.packageManager = 'yarn';
212
+ else if (await fileExists(resolve(projectPath, 'pnpm-lock.yaml')))
213
+ info.packageManager = 'pnpm';
214
+ else if (await fileExists(resolve(projectPath, 'bun.lockb')))
215
+ info.packageManager = 'bun';
216
+ else
217
+ info.packageManager = 'npm';
218
+ // Detect test framework
219
+ if (allDeps.jest)
220
+ info.testFramework = 'jest';
221
+ else if (allDeps.vitest)
222
+ info.testFramework = 'vitest';
223
+ else if (allDeps.mocha)
224
+ info.testFramework = 'mocha';
225
+ else if (allDeps.playwright)
226
+ info.testFramework = 'playwright';
227
+ }
228
+ catch (error) {
229
+ // Invalid package.json, return basic info
230
+ }
231
+ return info;
232
+ }
233
+ }
234
+ //# sourceMappingURL=stackDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stackDetector.js","sourceRoot":"","sources":["../../src/core/stackDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ProjectConfig } from '../types/index.js';
2
+ export declare class TemplateEngine {
3
+ private readonly templates;
4
+ constructor();
5
+ generateAgentsFile(config: ProjectConfig, templateType: string): Promise<string>;
6
+ private processTemplate;
7
+ private initializeDefaultTemplates;
8
+ private getDefaultTemplate;
9
+ private getWebTemplate;
10
+ private getCLITemplate;
11
+ private getLibraryTemplate;
12
+ private getFullstackTemplate;
13
+ private getMobileTemplate;
14
+ }
15
+ //# sourceMappingURL=templateEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateEngine.d.ts","sourceRoot":"","sources":["../../src/core/templateEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAEtE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;;IAMjD,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBtF,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,kBAAkB;IAqF1B,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,iBAAiB;CA2B1B"}
@@ -0,0 +1,260 @@
1
+ export class TemplateEngine {
2
+ templates = new Map();
3
+ constructor() {
4
+ this.initializeDefaultTemplates();
5
+ }
6
+ async generateAgentsFile(config, templateType) {
7
+ const template = this.templates.get(templateType) || this.templates.get('default');
8
+ return this.processTemplate(template, {
9
+ PROJECT_NAME: config.name,
10
+ STACK: config.stack.language,
11
+ FRAMEWORK: config.stack.framework || '',
12
+ FRAMEWORK_TEXT: config.stack.framework ? ` with ${config.stack.framework}` : '',
13
+ FRAMEWORK_CONTEXT: config.stack.framework ? ` using ${config.stack.framework}` : '',
14
+ DATE: new Date().toISOString().split('T')[0] ?? '',
15
+ TEST_FRAMEWORK: config.stack.testFramework ?? 'jest',
16
+ PACKAGE_MANAGER: config.stack.packageManager || 'npm',
17
+ EXISTING_AGENTS: config.agents.filter(a => a.detected).map(a => a.name).join(', ') || 'none'
18
+ });
19
+ }
20
+ processTemplate(template, variables) {
21
+ let result = template;
22
+ // Replace simple variables
23
+ for (const [key, value] of Object.entries(variables)) {
24
+ const regex = new RegExp(`{{${key}}}`, 'g');
25
+ result = result.replace(regex, value);
26
+ }
27
+ // Process conditional blocks - remove all handlebars-style conditionals for now
28
+ result = result.replace(/{{#if[^}]*}}[\s\S]*?{{\/if}}/g, '');
29
+ // Clean up extra whitespace and empty lines
30
+ result = result.replace(/\n\s*\n\s*\n/g, '\n\n');
31
+ return result;
32
+ }
33
+ initializeDefaultTemplates() {
34
+ this.templates.set('default', this.getDefaultTemplate());
35
+ this.templates.set('web', this.getWebTemplate());
36
+ this.templates.set('cli', this.getCLITemplate());
37
+ this.templates.set('library', this.getLibraryTemplate());
38
+ this.templates.set('fullstack', this.getFullstackTemplate());
39
+ this.templates.set('mobile', this.getMobileTemplate());
40
+ }
41
+ getDefaultTemplate() {
42
+ return `# Agent Configuration for {{PROJECT_NAME}}
43
+
44
+ **Stack**: {{STACK}}{{FRAMEWORK_TEXT}}
45
+ **Generated**: {{DATE}}
46
+ **Package Manager**: {{PACKAGE_MANAGER}}
47
+ **Existing Agents**: {{EXISTING_AGENTS}}
48
+
49
+ ## Project Context
50
+
51
+ This is a {{STACK}} project{{FRAMEWORK_CONTEXT}}. The codebase follows modern development practices with automated testing using {{TEST_FRAMEWORK}}.
52
+
53
+ ## Development Guidelines
54
+
55
+ ### Code Quality
56
+ - Write clean, maintainable code following {{STACK}} best practices
57
+ - Use TypeScript for type safety when applicable
58
+ - Follow consistent naming conventions
59
+ - Add comments for complex logic
60
+
61
+ ### Testing Strategy
62
+ - Write unit tests for all business logic using {{TEST_FRAMEWORK}}
63
+ - Aim for high test coverage (>80%)
64
+ - Include integration tests for critical paths
65
+ - Test edge cases and error scenarios
66
+
67
+ ### Git Workflow
68
+ - Use conventional commit messages
69
+ - Create meaningful commit messages that explain the "why"
70
+ - Keep commits atomic and focused
71
+ - Use feature branches for new functionality
72
+
73
+ ## Agent Instructions
74
+
75
+ ### General Behavior
76
+ - Always analyze the existing codebase before making changes
77
+ - Follow the project's established patterns and conventions
78
+ - Ask for clarification when requirements are ambiguous
79
+ - Provide clear explanations for design decisions
80
+
81
+ ### Code Changes
82
+ - Prefer editing existing files over creating new ones
83
+ - Maintain consistency with existing code style
84
+ - Add appropriate error handling
85
+ - Update tests when modifying functionality
86
+
87
+ ### Security & Best Practices
88
+ - Never expose sensitive information in code or logs
89
+ - Follow security best practices for {{STACK}}
90
+ - Validate all inputs
91
+ - Use environment variables for configuration
92
+
93
+ ## Sub-Agents
94
+
95
+ ### Code Reviewer
96
+ **Role**: Review code for quality, security, and best practices
97
+ **Focus Areas**:
98
+ - Code complexity and maintainability
99
+ - Security vulnerabilities
100
+ - Performance implications
101
+ - {{STACK}}-specific best practices
102
+
103
+ ### QA Engineer
104
+ **Role**: Ensure code quality through testing
105
+ **Responsibilities**:
106
+ - Verify test coverage
107
+ - Suggest additional test cases
108
+ - Validate error handling
109
+ - Check for edge cases
110
+
111
+ ## Stack-Specific Instructions
112
+
113
+ ### {{STACK}} Guidelines
114
+ - Use modern syntax and features
115
+ - Follow language-specific best practices
116
+ - Use {{PACKAGE_MANAGER}} for dependency management
117
+ - Implement proper error handling
118
+ - Write comprehensive tests
119
+
120
+ ---
121
+ *This configuration was generated by AgentInit. Customize as needed for your project.*
122
+ `;
123
+ }
124
+ getWebTemplate() {
125
+ return this.getDefaultTemplate() + `
126
+
127
+ ## Web Application Specific Guidelines
128
+
129
+ ### Frontend Development
130
+ - Implement responsive design principles
131
+ - Optimize for performance and accessibility
132
+ - Use semantic HTML elements
133
+ - Follow modern CSS practices
134
+ - Implement proper state management
135
+
136
+ ### API Integration
137
+ - Handle loading and error states
138
+ - Implement proper caching strategies
139
+ - Use appropriate HTTP methods
140
+ - Validate API responses
141
+ - Implement retry logic for failed requests
142
+
143
+ ### User Experience
144
+ - Provide clear feedback for user actions
145
+ - Implement proper form validation
146
+ - Use consistent UI patterns
147
+ - Optimize for mobile devices
148
+ - Consider SEO best practices
149
+ `;
150
+ }
151
+ getCLITemplate() {
152
+ return this.getDefaultTemplate() + `
153
+
154
+ ## CLI Tool Specific Guidelines
155
+
156
+ ### Command Design
157
+ - Follow Unix philosophy (do one thing well)
158
+ - Provide helpful error messages
159
+ - Support common flags (--help, --version, --verbose)
160
+ - Use consistent command naming
161
+ - Implement proper exit codes
162
+
163
+ ### User Interface
164
+ - Provide clear usage instructions
165
+ - Use colors and formatting appropriately
166
+ - Show progress for long-running operations
167
+ - Support both interactive and non-interactive modes
168
+ - Handle interrupts gracefully
169
+
170
+ ### Configuration
171
+ - Support configuration files
172
+ - Use environment variables appropriately
173
+ - Provide sensible defaults
174
+ - Allow command-line overrides
175
+ - Document all configuration options
176
+ `;
177
+ }
178
+ getLibraryTemplate() {
179
+ return this.getDefaultTemplate() + `
180
+
181
+ ## Library/Package Specific Guidelines
182
+
183
+ ### API Design
184
+ - Design intuitive and consistent APIs
185
+ - Follow semantic versioning
186
+ - Provide comprehensive documentation
187
+ - Include usage examples
188
+ - Consider backwards compatibility
189
+
190
+ ### Distribution
191
+ - Configure proper build process
192
+ - Include necessary metadata
193
+ - Optimize bundle size
194
+ - Support tree shaking
195
+ - Provide TypeScript definitions
196
+
197
+ ### Testing
198
+ - Test all public APIs
199
+ - Include performance tests
200
+ - Test in different environments
201
+ - Provide testing utilities
202
+ - Document testing approaches
203
+ `;
204
+ }
205
+ getFullstackTemplate() {
206
+ return this.getDefaultTemplate() + `
207
+
208
+ ## Full Stack Application Guidelines
209
+
210
+ ### Architecture
211
+ - Separate frontend and backend concerns
212
+ - Use consistent data models
213
+ - Implement proper authentication
214
+ - Design scalable database schemas
215
+ - Use appropriate caching strategies
216
+
217
+ ### API Development
218
+ - Follow RESTful principles
219
+ - Implement proper validation
220
+ - Use consistent error responses
221
+ - Document all endpoints
222
+ - Implement rate limiting
223
+
224
+ ### Database
225
+ - Use migrations for schema changes
226
+ - Implement proper indexing
227
+ - Consider data relationships
228
+ - Handle transactions appropriately
229
+ - Implement backup strategies
230
+ `;
231
+ }
232
+ getMobileTemplate() {
233
+ return this.getDefaultTemplate() + `
234
+
235
+ ## Mobile Application Guidelines
236
+
237
+ ### Performance
238
+ - Optimize for mobile hardware
239
+ - Implement proper image handling
240
+ - Use efficient data structures
241
+ - Minimize memory usage
242
+ - Consider battery impact
243
+
244
+ ### User Experience
245
+ - Follow platform design guidelines
246
+ - Implement proper navigation
247
+ - Handle different screen sizes
248
+ - Provide offline functionality
249
+ - Use appropriate gestures
250
+
251
+ ### Platform Considerations
252
+ - Handle platform-specific features
253
+ - Test on multiple devices
254
+ - Consider app store requirements
255
+ - Implement proper permissions
256
+ - Use native APIs when needed
257
+ `;
258
+ }
259
+ }
260
+ //# sourceMappingURL=templateEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateEngine.js","sourceRoot":"","sources":["../../src/core/templateEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { MCPServerConfig } from '../types/index.js';
2
+ export declare class TOMLGenerator {
3
+ /**
4
+ * Generate TOML configuration from MCP server configurations
5
+ */
6
+ static generateTOML(servers: MCPServerConfig[]): string;
7
+ /**
8
+ * Format TOML output for better readability
9
+ */
10
+ private static formatTOML;
11
+ /**
12
+ * Convert multi-line arrays to single-line format
13
+ */
14
+ private static formatArraysInline;
15
+ /**
16
+ * Parse array items from a comma-separated string
17
+ */
18
+ private static parseArrayItems;
19
+ /**
20
+ * Merge new servers with existing TOML configuration
21
+ */
22
+ static mergeTOML(existingToml: string, newServers: MCPServerConfig[]): string;
23
+ }
24
+ //# sourceMappingURL=tomlGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tomlGenerator.d.ts","sourceRoot":"","sources":["../../src/core/tomlGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAgC,MAAM,mBAAmB,CAAC;AAElF,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAsCvD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAoCzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgCjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAqC9B;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM;CAkD9E"}