agentinit 1.6.0 → 1.8.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.
- package/CHANGELOG.md +40 -0
- package/README.md +220 -114
- package/dist/agents/Agent.d.ts +44 -0
- package/dist/agents/Agent.d.ts.map +1 -1
- package/dist/agents/Agent.js +111 -22
- package/dist/agents/Agent.js.map +1 -1
- package/dist/agents/AiderAgent.d.ts +9 -0
- package/dist/agents/AiderAgent.d.ts.map +1 -0
- package/dist/agents/AiderAgent.js +135 -0
- package/dist/agents/AiderAgent.js.map +1 -0
- package/dist/agents/ClaudeAgent.d.ts +4 -0
- package/dist/agents/ClaudeAgent.d.ts.map +1 -1
- package/dist/agents/ClaudeAgent.js +33 -18
- package/dist/agents/ClaudeAgent.js.map +1 -1
- package/dist/agents/ClaudeDesktopAgent.d.ts +5 -0
- package/dist/agents/ClaudeDesktopAgent.d.ts.map +1 -1
- package/dist/agents/ClaudeDesktopAgent.js +31 -1
- package/dist/agents/ClaudeDesktopAgent.js.map +1 -1
- package/dist/agents/ClineAgent.d.ts +8 -0
- package/dist/agents/ClineAgent.d.ts.map +1 -0
- package/dist/agents/ClineAgent.js +42 -0
- package/dist/agents/ClineAgent.js.map +1 -0
- package/dist/agents/CodexCliAgent.d.ts +4 -0
- package/dist/agents/CodexCliAgent.d.ts.map +1 -1
- package/dist/agents/CodexCliAgent.js +38 -8
- package/dist/agents/CodexCliAgent.js.map +1 -1
- package/dist/agents/CopilotAgent.d.ts +9 -0
- package/dist/agents/CopilotAgent.d.ts.map +1 -0
- package/dist/agents/CopilotAgent.js +131 -0
- package/dist/agents/CopilotAgent.js.map +1 -0
- package/dist/agents/CursorAgent.d.ts +4 -4
- package/dist/agents/CursorAgent.d.ts.map +1 -1
- package/dist/agents/CursorAgent.js +32 -43
- package/dist/agents/CursorAgent.js.map +1 -1
- package/dist/agents/DroidAgent.d.ts +5 -0
- package/dist/agents/DroidAgent.d.ts.map +1 -1
- package/dist/agents/DroidAgent.js +37 -18
- package/dist/agents/DroidAgent.js.map +1 -1
- package/dist/agents/GeminiCliAgent.d.ts +4 -0
- package/dist/agents/GeminiCliAgent.d.ts.map +1 -1
- package/dist/agents/GeminiCliAgent.js +37 -8
- package/dist/agents/GeminiCliAgent.js.map +1 -1
- package/dist/agents/MarkdownRulesAgent.d.ts +13 -0
- package/dist/agents/MarkdownRulesAgent.d.ts.map +1 -0
- package/dist/agents/MarkdownRulesAgent.js +53 -0
- package/dist/agents/MarkdownRulesAgent.js.map +1 -0
- package/dist/agents/RooCodeAgent.d.ts +9 -0
- package/dist/agents/RooCodeAgent.d.ts.map +1 -0
- package/dist/agents/RooCodeAgent.js +131 -0
- package/dist/agents/RooCodeAgent.js.map +1 -0
- package/dist/agents/WindsurfAgent.d.ts +9 -0
- package/dist/agents/WindsurfAgent.d.ts.map +1 -0
- package/dist/agents/WindsurfAgent.js +127 -0
- package/dist/agents/WindsurfAgent.js.map +1 -0
- package/dist/agents/ZedAgent.d.ts +9 -0
- package/dist/agents/ZedAgent.d.ts.map +1 -0
- package/dist/agents/ZedAgent.js +127 -0
- package/dist/agents/ZedAgent.js.map +1 -0
- package/dist/cli.js +29992 -11107
- package/dist/cli.js.map +1 -1
- package/dist/commands/apply.d.ts +10 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +136 -5
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/detect.d.ts.map +1 -1
- package/dist/commands/detect.js +25 -0
- package/dist/commands/detect.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +2 -7
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +541 -110
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/plugins.d.ts +3 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +309 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/revert.d.ts +7 -0
- package/dist/commands/revert.d.ts.map +1 -0
- package/dist/commands/revert.js +48 -0
- package/dist/commands/revert.js.map +1 -0
- package/dist/commands/rules.d.ts +3 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +354 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +179 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/sync.d.ts +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +18 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/verifyMcp.d.ts.map +1 -1
- package/dist/commands/verifyMcp.js +27 -5
- package/dist/commands/verifyMcp.js.map +1 -1
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/mcp.d.ts +1 -0
- package/dist/constants/mcp.d.ts.map +1 -1
- package/dist/constants/mcp.js +2 -0
- package/dist/constants/mcp.js.map +1 -1
- package/dist/core/agentDetector.d.ts.map +1 -1
- package/dist/core/agentDetector.js +8 -2
- package/dist/core/agentDetector.js.map +1 -1
- package/dist/core/agentManager.d.ts.map +1 -1
- package/dist/core/agentManager.js +12 -0
- package/dist/core/agentManager.js.map +1 -1
- package/dist/core/gitignoreManager.d.ts +8 -0
- package/dist/core/gitignoreManager.d.ts.map +1 -0
- package/dist/core/gitignoreManager.js +114 -0
- package/dist/core/gitignoreManager.js.map +1 -0
- package/dist/core/managedState.d.ts +42 -0
- package/dist/core/managedState.d.ts.map +1 -0
- package/dist/core/managedState.js +194 -0
- package/dist/core/managedState.js.map +1 -0
- package/dist/core/mcpClient.d.ts +124 -6
- package/dist/core/mcpClient.d.ts.map +1 -1
- package/dist/core/mcpClient.js +385 -39
- package/dist/core/mcpClient.js.map +1 -1
- package/dist/core/pluginManager.d.ts +134 -0
- package/dist/core/pluginManager.d.ts.map +1 -0
- package/dist/core/pluginManager.js +845 -0
- package/dist/core/pluginManager.js.map +1 -0
- package/dist/core/projectSkills.d.ts +19 -0
- package/dist/core/projectSkills.d.ts.map +1 -0
- package/dist/core/projectSkills.js +105 -0
- package/dist/core/projectSkills.js.map +1 -0
- package/dist/core/propagator.d.ts +8 -1
- package/dist/core/propagator.d.ts.map +1 -1
- package/dist/core/propagator.js +179 -36
- package/dist/core/propagator.js.map +1 -1
- package/dist/core/rulesApplicator.d.ts +0 -4
- package/dist/core/rulesApplicator.d.ts.map +1 -1
- package/dist/core/rulesApplicator.js +8 -39
- package/dist/core/rulesApplicator.js.map +1 -1
- package/dist/core/rulesTemplateLoader.js +2 -2
- package/dist/core/rulesTemplateLoader.js.map +1 -1
- package/dist/core/skillsManager.d.ts +61 -0
- package/dist/core/skillsManager.d.ts.map +1 -0
- package/dist/core/skillsManager.js +407 -0
- package/dist/core/skillsManager.js.map +1 -0
- package/dist/lib/utils/index.d.ts +3 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +4 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/types/index.d.ts +24 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/jsonSchema.d.ts +31 -0
- package/dist/types/jsonSchema.d.ts.map +1 -0
- package/dist/types/jsonSchema.js +6 -0
- package/dist/types/jsonSchema.js.map +1 -0
- package/dist/types/plugins.d.ts +161 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/types/plugins.js +2 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/types/skills.d.ts +50 -0
- package/dist/types/skills.d.ts.map +1 -0
- package/dist/types/skills.js +2 -0
- package/dist/types/skills.js.map +1 -0
- package/dist/utils/packageVersion.d.ts +105 -0
- package/dist/utils/packageVersion.d.ts.map +1 -0
- package/dist/utils/packageVersion.js +219 -0
- package/dist/utils/packageVersion.js.map +1 -0
- package/package.json +7 -2
- package/dist/agentinit-1.6.0.tgz +0 -0
- package/dist/registry/mcpRegistry.d.ts +0 -12
- package/dist/registry/mcpRegistry.d.ts.map +0 -1
- package/dist/registry/mcpRegistry.js +0 -114
- package/dist/registry/mcpRegistry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DroidAgent.js","sourceRoot":"","sources":["../../src/agents/DroidAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIpF;;;;;;GAMG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC;QACE,MAAM,UAAU,GAAoB;YAClC,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,iBAAiB;YACvB,GAAG,EAAE,oBAAoB;YACzB,YAAY,EAAE;gBACZ,GAAG,EAAE;oBACH,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,KAAK;iBACX;gBACD,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"DroidAgent.js","sourceRoot":"","sources":["../../src/agents/DroidAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ export declare class GeminiCliAgent extends Agent {
|
|
|
12
12
|
* Apply MCP configuration to Gemini CLI's native JSON settings format
|
|
13
13
|
*/
|
|
14
14
|
applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Remove an MCP server by name from Gemini's settings.json
|
|
17
|
+
*/
|
|
18
|
+
removeMCPServer(projectPath: string, serverName: string): Promise<boolean>;
|
|
15
19
|
/**
|
|
16
20
|
* Gemini supports all MCP server types, so no filtering needed
|
|
17
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiCliAgent.d.ts","sourceRoot":"","sources":["../../src/agents/GeminiCliAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;;
|
|
1
|
+
{"version":3,"file":"GeminiCliAgent.d.ts","sourceRoot":"","sources":["../../src/agents/GeminiCliAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;;IAyCvC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DpF;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhF;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAI/D;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAIlE;;OAEG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IA8BlB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAmB/C;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAuBvD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;CAgBtD"}
|
|
@@ -20,7 +20,8 @@ export class GeminiCliAgent extends Agent {
|
|
|
20
20
|
hooks: false,
|
|
21
21
|
commands: false,
|
|
22
22
|
subagents: false,
|
|
23
|
-
statusline: false
|
|
23
|
+
statusline: false,
|
|
24
|
+
skills: true
|
|
24
25
|
},
|
|
25
26
|
configFiles: [
|
|
26
27
|
{
|
|
@@ -33,7 +34,13 @@ export class GeminiCliAgent extends Agent {
|
|
|
33
34
|
}
|
|
34
35
|
],
|
|
35
36
|
nativeConfigPath: '.gemini/settings.json',
|
|
36
|
-
globalConfigPath: '~/.gemini/settings.json'
|
|
37
|
+
globalConfigPath: '~/.gemini/settings.json',
|
|
38
|
+
rulesPath: '.gemini/settings.json',
|
|
39
|
+
globalRulesPath: '~/.gemini/settings.json',
|
|
40
|
+
skillPaths: {
|
|
41
|
+
project: '.gemini/skills/',
|
|
42
|
+
global: '~/.gemini/skills/'
|
|
43
|
+
}
|
|
37
44
|
};
|
|
38
45
|
super(definition);
|
|
39
46
|
}
|
|
@@ -91,6 +98,26 @@ export class GeminiCliAgent extends Agent {
|
|
|
91
98
|
const configJson = JSON.stringify(existingConfig, null, 2);
|
|
92
99
|
await writeFile(settingsPath, configJson);
|
|
93
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Remove an MCP server by name from Gemini's settings.json
|
|
103
|
+
*/
|
|
104
|
+
async removeMCPServer(projectPath, serverName) {
|
|
105
|
+
const settingsPath = this.getNativeMcpPath(projectPath);
|
|
106
|
+
const content = await readFileIfExists(settingsPath);
|
|
107
|
+
if (!content)
|
|
108
|
+
return false;
|
|
109
|
+
try {
|
|
110
|
+
const config = JSON.parse(content);
|
|
111
|
+
if (!config.mcpServers || !(serverName in config.mcpServers))
|
|
112
|
+
return false;
|
|
113
|
+
delete config.mcpServers[serverName];
|
|
114
|
+
await writeFile(settingsPath, JSON.stringify(config, null, 2));
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
94
121
|
/**
|
|
95
122
|
* Gemini supports all MCP server types, so no filtering needed
|
|
96
123
|
*/
|
|
@@ -118,17 +145,19 @@ export class GeminiCliAgent extends Agent {
|
|
|
118
145
|
config = {};
|
|
119
146
|
}
|
|
120
147
|
}
|
|
121
|
-
|
|
122
|
-
if (!config.rules) {
|
|
123
|
-
config.rules = {};
|
|
124
|
-
}
|
|
125
|
-
// Convert rule sections to JSON structure
|
|
148
|
+
const nextRules = {};
|
|
126
149
|
for (const section of rules.sections) {
|
|
127
|
-
|
|
150
|
+
nextRules[section.templateId] = {
|
|
128
151
|
name: section.templateName,
|
|
129
152
|
rules: section.rules
|
|
130
153
|
};
|
|
131
154
|
}
|
|
155
|
+
if (Object.keys(nextRules).length > 0) {
|
|
156
|
+
config.rules = nextRules;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
delete config.rules;
|
|
160
|
+
}
|
|
132
161
|
return JSON.stringify(config, null, 2);
|
|
133
162
|
}
|
|
134
163
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiCliAgent.js","sourceRoot":"","sources":["../../src/agents/GeminiCliAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIpF;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC;QACE,MAAM,UAAU,GAAoB;YAClC,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE;gBACZ,GAAG,EAAE;oBACH,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,GAAG,EAAE,IAAI;iBACV;gBACD,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"GeminiCliAgent.js","sourceRoot":"","sources":["../../src/agents/GeminiCliAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Agent } from './Agent.js';
|
|
2
|
+
import type { AppliedRules, RuleSection } from '../types/rules.js';
|
|
3
|
+
/**
|
|
4
|
+
* Shared markdown-section rule handling for agents that store instructions
|
|
5
|
+
* as `## Section` headers followed by bullet rules.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class MarkdownRulesAgent extends Agent {
|
|
8
|
+
applyRulesConfig(_configPath: string, rules: AppliedRules, existingContent: string): Promise<string>;
|
|
9
|
+
extractExistingRules(content: string): string[];
|
|
10
|
+
extractExistingSections(content: string): RuleSection[];
|
|
11
|
+
generateRulesContent(sections: RuleSection[]): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=MarkdownRulesAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownRulesAgent.d.ts","sourceRoot":"","sources":["../../src/agents/MarkdownRulesAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,8BAAsB,kBAAmB,SAAQ,KAAK;IAC9C,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IAIlB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IA+BvD,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;CAetD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Agent } from './Agent.js';
|
|
2
|
+
/**
|
|
3
|
+
* Shared markdown-section rule handling for agents that store instructions
|
|
4
|
+
* as `## Section` headers followed by bullet rules.
|
|
5
|
+
*/
|
|
6
|
+
export class MarkdownRulesAgent extends Agent {
|
|
7
|
+
async applyRulesConfig(_configPath, rules, existingContent) {
|
|
8
|
+
return this.replaceMarkdownRulesSections(existingContent, rules.sections, /^##\s+(.+)$/);
|
|
9
|
+
}
|
|
10
|
+
extractExistingRules(content) {
|
|
11
|
+
return this.extractExistingSections(content).flatMap(section => section.rules);
|
|
12
|
+
}
|
|
13
|
+
extractExistingSections(content) {
|
|
14
|
+
const lines = content.split('\n');
|
|
15
|
+
const sections = [];
|
|
16
|
+
let currentSection = null;
|
|
17
|
+
for (const line of lines) {
|
|
18
|
+
const trimmed = line.trim();
|
|
19
|
+
if (trimmed.startsWith('## ') && trimmed.includes(' ')) {
|
|
20
|
+
if (currentSection && currentSection.rules.length > 0) {
|
|
21
|
+
sections.push(currentSection);
|
|
22
|
+
}
|
|
23
|
+
const sectionName = trimmed.replace(/^##\s*/, '');
|
|
24
|
+
currentSection = {
|
|
25
|
+
templateId: sectionName.toLowerCase().replace(/\s+/g, '_'),
|
|
26
|
+
templateName: sectionName,
|
|
27
|
+
rules: []
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
else if (currentSection && trimmed.startsWith('- ')) {
|
|
31
|
+
currentSection.rules.push(trimmed.replace(/^- /, ''));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (currentSection && currentSection.rules.length > 0) {
|
|
35
|
+
sections.push(currentSection);
|
|
36
|
+
}
|
|
37
|
+
return sections;
|
|
38
|
+
}
|
|
39
|
+
generateRulesContent(sections) {
|
|
40
|
+
let content = '';
|
|
41
|
+
for (const section of sections) {
|
|
42
|
+
if (section.rules.length === 0)
|
|
43
|
+
continue;
|
|
44
|
+
content += `## ${section.templateName}\n`;
|
|
45
|
+
for (const rule of section.rules) {
|
|
46
|
+
content += `- ${rule}\n`;
|
|
47
|
+
}
|
|
48
|
+
content += '\n';
|
|
49
|
+
}
|
|
50
|
+
return content.trim();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=MarkdownRulesAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownRulesAgent.js","sourceRoot":"","sources":["../../src/agents/MarkdownRulesAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC;;;GAGG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,KAAK;IACpD,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,KAAmB,EACnB,eAAuB;QAEvB,OAAO,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC3F,CAAC;IAED,oBAAoB,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,uBAAuB,CAAC,OAAe;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,cAAc,GAAuB,IAAI,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE5B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,CAAC;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClD,cAAc,GAAG;oBACf,UAAU,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;oBAC1D,YAAY,EAAE,WAAW;oBACzB,KAAK,EAAE,EAAE;iBACV,CAAC;YACJ,CAAC;iBAAM,IAAI,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oBAAoB,CAAC,QAAuB;QAC1C,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEzC,OAAO,IAAI,MAAM,OAAO,CAAC,YAAY,IAAI,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC;YAC3B,CAAC;YACD,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MarkdownRulesAgent } from './MarkdownRulesAgent.js';
|
|
2
|
+
import type { MCPServerConfig } from '../types/index.js';
|
|
3
|
+
export declare class RooCodeAgent extends MarkdownRulesAgent {
|
|
4
|
+
constructor();
|
|
5
|
+
applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
|
|
6
|
+
removeMCPServer(projectPath: string, serverName: string): Promise<boolean>;
|
|
7
|
+
getMCPServers(projectPath: string): Promise<MCPServerConfig[]>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=RooCodeAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RooCodeAgent.d.ts","sourceRoot":"","sources":["../../src/agents/RooCodeAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAmB,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AAEzF,qBAAa,YAAa,SAAQ,kBAAkB;;IA+C5C,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC9E,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB1E,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CA+BrE"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { MarkdownRulesAgent } from './MarkdownRulesAgent.js';
|
|
2
|
+
import { ensureDirectoryExists, readFileIfExists, writeFile } from '../utils/fs.js';
|
|
3
|
+
export class RooCodeAgent extends MarkdownRulesAgent {
|
|
4
|
+
constructor() {
|
|
5
|
+
const definition = {
|
|
6
|
+
id: 'roo',
|
|
7
|
+
name: 'RooCode',
|
|
8
|
+
capabilities: {
|
|
9
|
+
mcp: {
|
|
10
|
+
stdio: true,
|
|
11
|
+
http: true,
|
|
12
|
+
sse: true,
|
|
13
|
+
},
|
|
14
|
+
rules: true,
|
|
15
|
+
hooks: false,
|
|
16
|
+
commands: false,
|
|
17
|
+
subagents: false,
|
|
18
|
+
statusline: false,
|
|
19
|
+
skills: true,
|
|
20
|
+
},
|
|
21
|
+
configFiles: [
|
|
22
|
+
{
|
|
23
|
+
path: 'AGENTS.md',
|
|
24
|
+
purpose: 'rules',
|
|
25
|
+
format: 'markdown',
|
|
26
|
+
type: 'file',
|
|
27
|
+
optional: true,
|
|
28
|
+
description: 'RooCode instructions file',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
path: '.roo/mcp.json',
|
|
32
|
+
purpose: 'mcp',
|
|
33
|
+
format: 'json',
|
|
34
|
+
type: 'file',
|
|
35
|
+
optional: true,
|
|
36
|
+
description: 'RooCode MCP configuration',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
nativeConfigPath: '.roo/mcp.json',
|
|
40
|
+
rulesPath: 'AGENTS.md',
|
|
41
|
+
skillPaths: {
|
|
42
|
+
project: '.roo/skills/',
|
|
43
|
+
global: '~/.roo/skills/',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
super(definition);
|
|
47
|
+
}
|
|
48
|
+
async applyMCPConfig(projectPath, servers) {
|
|
49
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
50
|
+
await ensureDirectoryExists(configPath);
|
|
51
|
+
const existingContent = await readFileIfExists(configPath);
|
|
52
|
+
let existingConfig = { mcpServers: {} };
|
|
53
|
+
if (existingContent) {
|
|
54
|
+
try {
|
|
55
|
+
existingConfig = JSON.parse(existingContent);
|
|
56
|
+
if (!existingConfig.mcpServers) {
|
|
57
|
+
existingConfig.mcpServers = {};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
existingConfig = { mcpServers: {} };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
for (const server of servers) {
|
|
65
|
+
const nextServer = {};
|
|
66
|
+
if (server.command)
|
|
67
|
+
nextServer.command = server.command;
|
|
68
|
+
if (server.args?.length)
|
|
69
|
+
nextServer.args = server.args;
|
|
70
|
+
if (server.env && Object.keys(server.env).length > 0)
|
|
71
|
+
nextServer.env = server.env;
|
|
72
|
+
if (server.url)
|
|
73
|
+
nextServer.url = server.url;
|
|
74
|
+
if (server.headers && Object.keys(server.headers).length > 0)
|
|
75
|
+
nextServer.headers = server.headers;
|
|
76
|
+
existingConfig.mcpServers[server.name] = nextServer;
|
|
77
|
+
}
|
|
78
|
+
await writeFile(configPath, JSON.stringify(existingConfig, null, 2));
|
|
79
|
+
}
|
|
80
|
+
async removeMCPServer(projectPath, serverName) {
|
|
81
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
82
|
+
const content = await readFileIfExists(configPath);
|
|
83
|
+
if (!content)
|
|
84
|
+
return false;
|
|
85
|
+
try {
|
|
86
|
+
const config = JSON.parse(content);
|
|
87
|
+
if (!config.mcpServers || !(serverName in config.mcpServers))
|
|
88
|
+
return false;
|
|
89
|
+
delete config.mcpServers[serverName];
|
|
90
|
+
await writeFile(configPath, JSON.stringify(config, null, 2));
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async getMCPServers(projectPath) {
|
|
98
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
99
|
+
const content = await readFileIfExists(configPath);
|
|
100
|
+
if (!content)
|
|
101
|
+
return [];
|
|
102
|
+
try {
|
|
103
|
+
const config = JSON.parse(content);
|
|
104
|
+
const servers = [];
|
|
105
|
+
if (config.mcpServers) {
|
|
106
|
+
for (const [name, serverConfig] of Object.entries(config.mcpServers)) {
|
|
107
|
+
const server = {
|
|
108
|
+
name,
|
|
109
|
+
type: (serverConfig.command ? 'stdio' : 'http'),
|
|
110
|
+
};
|
|
111
|
+
if (serverConfig.command)
|
|
112
|
+
server.command = serverConfig.command;
|
|
113
|
+
if (serverConfig.args)
|
|
114
|
+
server.args = serverConfig.args;
|
|
115
|
+
if (serverConfig.env)
|
|
116
|
+
server.env = serverConfig.env;
|
|
117
|
+
if (serverConfig.url)
|
|
118
|
+
server.url = serverConfig.url;
|
|
119
|
+
if (serverConfig.headers)
|
|
120
|
+
server.headers = serverConfig.headers;
|
|
121
|
+
servers.push(server);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return servers;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=RooCodeAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RooCodeAgent.js","sourceRoot":"","sources":["../../src/agents/RooCodeAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MarkdownRulesAgent } from './MarkdownRulesAgent.js';
|
|
2
|
+
import type { MCPServerConfig } from '../types/index.js';
|
|
3
|
+
export declare class WindsurfAgent extends MarkdownRulesAgent {
|
|
4
|
+
constructor();
|
|
5
|
+
applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
|
|
6
|
+
removeMCPServer(projectPath: string, serverName: string): Promise<boolean>;
|
|
7
|
+
getMCPServers(projectPath: string): Promise<MCPServerConfig[]>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=WindsurfAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindsurfAgent.d.ts","sourceRoot":"","sources":["../../src/agents/WindsurfAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAmB,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AAEzF,qBAAa,aAAc,SAAQ,kBAAkB;;IA2C7C,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC9E,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB1E,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CA+BrE"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { MarkdownRulesAgent } from './MarkdownRulesAgent.js';
|
|
2
|
+
import { ensureDirectoryExists, readFileIfExists, writeFile } from '../utils/fs.js';
|
|
3
|
+
export class WindsurfAgent extends MarkdownRulesAgent {
|
|
4
|
+
constructor() {
|
|
5
|
+
const definition = {
|
|
6
|
+
id: 'windsurf',
|
|
7
|
+
name: 'Windsurf',
|
|
8
|
+
capabilities: {
|
|
9
|
+
mcp: {
|
|
10
|
+
stdio: true,
|
|
11
|
+
http: true,
|
|
12
|
+
sse: true,
|
|
13
|
+
},
|
|
14
|
+
rules: true,
|
|
15
|
+
hooks: false,
|
|
16
|
+
commands: false,
|
|
17
|
+
subagents: false,
|
|
18
|
+
statusline: false,
|
|
19
|
+
skills: false,
|
|
20
|
+
},
|
|
21
|
+
configFiles: [
|
|
22
|
+
{
|
|
23
|
+
path: '.windsurfrules',
|
|
24
|
+
purpose: 'rules',
|
|
25
|
+
format: 'text',
|
|
26
|
+
type: 'file',
|
|
27
|
+
optional: true,
|
|
28
|
+
description: 'Windsurf rules file',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
path: '.windsurf/mcp_config.json',
|
|
32
|
+
purpose: 'mcp',
|
|
33
|
+
format: 'json',
|
|
34
|
+
type: 'file',
|
|
35
|
+
optional: true,
|
|
36
|
+
description: 'Windsurf MCP server configuration',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
nativeConfigPath: '.windsurf/mcp_config.json',
|
|
40
|
+
rulesPath: '.windsurfrules',
|
|
41
|
+
};
|
|
42
|
+
super(definition);
|
|
43
|
+
}
|
|
44
|
+
async applyMCPConfig(projectPath, servers) {
|
|
45
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
46
|
+
await ensureDirectoryExists(configPath);
|
|
47
|
+
const existingContent = await readFileIfExists(configPath);
|
|
48
|
+
let existingConfig = { mcpServers: {} };
|
|
49
|
+
if (existingContent) {
|
|
50
|
+
try {
|
|
51
|
+
existingConfig = JSON.parse(existingContent);
|
|
52
|
+
if (!existingConfig.mcpServers) {
|
|
53
|
+
existingConfig.mcpServers = {};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
existingConfig = { mcpServers: {} };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
for (const server of servers) {
|
|
61
|
+
const nextServer = {};
|
|
62
|
+
if (server.command)
|
|
63
|
+
nextServer.command = server.command;
|
|
64
|
+
if (server.args?.length)
|
|
65
|
+
nextServer.args = server.args;
|
|
66
|
+
if (server.env && Object.keys(server.env).length > 0)
|
|
67
|
+
nextServer.env = server.env;
|
|
68
|
+
if (server.url)
|
|
69
|
+
nextServer.url = server.url;
|
|
70
|
+
if (server.headers && Object.keys(server.headers).length > 0)
|
|
71
|
+
nextServer.headers = server.headers;
|
|
72
|
+
existingConfig.mcpServers[server.name] = nextServer;
|
|
73
|
+
}
|
|
74
|
+
await writeFile(configPath, JSON.stringify(existingConfig, null, 2));
|
|
75
|
+
}
|
|
76
|
+
async removeMCPServer(projectPath, serverName) {
|
|
77
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
78
|
+
const content = await readFileIfExists(configPath);
|
|
79
|
+
if (!content)
|
|
80
|
+
return false;
|
|
81
|
+
try {
|
|
82
|
+
const config = JSON.parse(content);
|
|
83
|
+
if (!config.mcpServers || !(serverName in config.mcpServers))
|
|
84
|
+
return false;
|
|
85
|
+
delete config.mcpServers[serverName];
|
|
86
|
+
await writeFile(configPath, JSON.stringify(config, null, 2));
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async getMCPServers(projectPath) {
|
|
94
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
95
|
+
const content = await readFileIfExists(configPath);
|
|
96
|
+
if (!content)
|
|
97
|
+
return [];
|
|
98
|
+
try {
|
|
99
|
+
const config = JSON.parse(content);
|
|
100
|
+
const servers = [];
|
|
101
|
+
if (config.mcpServers) {
|
|
102
|
+
for (const [name, serverConfig] of Object.entries(config.mcpServers)) {
|
|
103
|
+
const server = {
|
|
104
|
+
name,
|
|
105
|
+
type: (serverConfig.command ? 'stdio' : 'http'),
|
|
106
|
+
};
|
|
107
|
+
if (serverConfig.command)
|
|
108
|
+
server.command = serverConfig.command;
|
|
109
|
+
if (serverConfig.args)
|
|
110
|
+
server.args = serverConfig.args;
|
|
111
|
+
if (serverConfig.env)
|
|
112
|
+
server.env = serverConfig.env;
|
|
113
|
+
if (serverConfig.url)
|
|
114
|
+
server.url = serverConfig.url;
|
|
115
|
+
if (serverConfig.headers)
|
|
116
|
+
server.headers = serverConfig.headers;
|
|
117
|
+
servers.push(server);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return servers;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=WindsurfAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindsurfAgent.js","sourceRoot":"","sources":["../../src/agents/WindsurfAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MarkdownRulesAgent } from './MarkdownRulesAgent.js';
|
|
2
|
+
import type { MCPServerConfig } from '../types/index.js';
|
|
3
|
+
export declare class ZedAgent extends MarkdownRulesAgent {
|
|
4
|
+
constructor();
|
|
5
|
+
applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
|
|
6
|
+
removeMCPServer(projectPath: string, serverName: string): Promise<boolean>;
|
|
7
|
+
getMCPServers(projectPath: string): Promise<MCPServerConfig[]>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ZedAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZedAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ZedAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAmB,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AAEzF,qBAAa,QAAS,SAAQ,kBAAkB;;IA2CxC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC9E,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB1E,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CA+BrE"}
|