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.
Files changed (173) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +220 -114
  3. package/dist/agents/Agent.d.ts +44 -0
  4. package/dist/agents/Agent.d.ts.map +1 -1
  5. package/dist/agents/Agent.js +111 -22
  6. package/dist/agents/Agent.js.map +1 -1
  7. package/dist/agents/AiderAgent.d.ts +9 -0
  8. package/dist/agents/AiderAgent.d.ts.map +1 -0
  9. package/dist/agents/AiderAgent.js +135 -0
  10. package/dist/agents/AiderAgent.js.map +1 -0
  11. package/dist/agents/ClaudeAgent.d.ts +4 -0
  12. package/dist/agents/ClaudeAgent.d.ts.map +1 -1
  13. package/dist/agents/ClaudeAgent.js +33 -18
  14. package/dist/agents/ClaudeAgent.js.map +1 -1
  15. package/dist/agents/ClaudeDesktopAgent.d.ts +5 -0
  16. package/dist/agents/ClaudeDesktopAgent.d.ts.map +1 -1
  17. package/dist/agents/ClaudeDesktopAgent.js +31 -1
  18. package/dist/agents/ClaudeDesktopAgent.js.map +1 -1
  19. package/dist/agents/ClineAgent.d.ts +8 -0
  20. package/dist/agents/ClineAgent.d.ts.map +1 -0
  21. package/dist/agents/ClineAgent.js +42 -0
  22. package/dist/agents/ClineAgent.js.map +1 -0
  23. package/dist/agents/CodexCliAgent.d.ts +4 -0
  24. package/dist/agents/CodexCliAgent.d.ts.map +1 -1
  25. package/dist/agents/CodexCliAgent.js +38 -8
  26. package/dist/agents/CodexCliAgent.js.map +1 -1
  27. package/dist/agents/CopilotAgent.d.ts +9 -0
  28. package/dist/agents/CopilotAgent.d.ts.map +1 -0
  29. package/dist/agents/CopilotAgent.js +131 -0
  30. package/dist/agents/CopilotAgent.js.map +1 -0
  31. package/dist/agents/CursorAgent.d.ts +4 -4
  32. package/dist/agents/CursorAgent.d.ts.map +1 -1
  33. package/dist/agents/CursorAgent.js +32 -43
  34. package/dist/agents/CursorAgent.js.map +1 -1
  35. package/dist/agents/DroidAgent.d.ts +5 -0
  36. package/dist/agents/DroidAgent.d.ts.map +1 -1
  37. package/dist/agents/DroidAgent.js +37 -18
  38. package/dist/agents/DroidAgent.js.map +1 -1
  39. package/dist/agents/GeminiCliAgent.d.ts +4 -0
  40. package/dist/agents/GeminiCliAgent.d.ts.map +1 -1
  41. package/dist/agents/GeminiCliAgent.js +37 -8
  42. package/dist/agents/GeminiCliAgent.js.map +1 -1
  43. package/dist/agents/MarkdownRulesAgent.d.ts +13 -0
  44. package/dist/agents/MarkdownRulesAgent.d.ts.map +1 -0
  45. package/dist/agents/MarkdownRulesAgent.js +53 -0
  46. package/dist/agents/MarkdownRulesAgent.js.map +1 -0
  47. package/dist/agents/RooCodeAgent.d.ts +9 -0
  48. package/dist/agents/RooCodeAgent.d.ts.map +1 -0
  49. package/dist/agents/RooCodeAgent.js +131 -0
  50. package/dist/agents/RooCodeAgent.js.map +1 -0
  51. package/dist/agents/WindsurfAgent.d.ts +9 -0
  52. package/dist/agents/WindsurfAgent.d.ts.map +1 -0
  53. package/dist/agents/WindsurfAgent.js +127 -0
  54. package/dist/agents/WindsurfAgent.js.map +1 -0
  55. package/dist/agents/ZedAgent.d.ts +9 -0
  56. package/dist/agents/ZedAgent.d.ts.map +1 -0
  57. package/dist/agents/ZedAgent.js +127 -0
  58. package/dist/agents/ZedAgent.js.map +1 -0
  59. package/dist/cli.js +29992 -11107
  60. package/dist/cli.js.map +1 -1
  61. package/dist/commands/apply.d.ts +10 -0
  62. package/dist/commands/apply.d.ts.map +1 -1
  63. package/dist/commands/apply.js +136 -5
  64. package/dist/commands/apply.js.map +1 -1
  65. package/dist/commands/detect.d.ts.map +1 -1
  66. package/dist/commands/detect.js +25 -0
  67. package/dist/commands/detect.js.map +1 -1
  68. package/dist/commands/init.js +1 -1
  69. package/dist/commands/init.js.map +1 -1
  70. package/dist/commands/mcp.d.ts +2 -7
  71. package/dist/commands/mcp.d.ts.map +1 -1
  72. package/dist/commands/mcp.js +541 -110
  73. package/dist/commands/mcp.js.map +1 -1
  74. package/dist/commands/plugins.d.ts +3 -0
  75. package/dist/commands/plugins.d.ts.map +1 -0
  76. package/dist/commands/plugins.js +309 -0
  77. package/dist/commands/plugins.js.map +1 -0
  78. package/dist/commands/revert.d.ts +7 -0
  79. package/dist/commands/revert.d.ts.map +1 -0
  80. package/dist/commands/revert.js +48 -0
  81. package/dist/commands/revert.js.map +1 -0
  82. package/dist/commands/rules.d.ts +3 -0
  83. package/dist/commands/rules.d.ts.map +1 -0
  84. package/dist/commands/rules.js +354 -0
  85. package/dist/commands/rules.js.map +1 -0
  86. package/dist/commands/skills.d.ts +3 -0
  87. package/dist/commands/skills.d.ts.map +1 -0
  88. package/dist/commands/skills.js +179 -0
  89. package/dist/commands/skills.js.map +1 -0
  90. package/dist/commands/sync.d.ts +1 -0
  91. package/dist/commands/sync.d.ts.map +1 -1
  92. package/dist/commands/sync.js +18 -1
  93. package/dist/commands/sync.js.map +1 -1
  94. package/dist/commands/verifyMcp.d.ts.map +1 -1
  95. package/dist/commands/verifyMcp.js +27 -5
  96. package/dist/commands/verifyMcp.js.map +1 -1
  97. package/dist/constants/index.d.ts +1 -1
  98. package/dist/constants/index.d.ts.map +1 -1
  99. package/dist/constants/index.js +1 -1
  100. package/dist/constants/index.js.map +1 -1
  101. package/dist/constants/mcp.d.ts +1 -0
  102. package/dist/constants/mcp.d.ts.map +1 -1
  103. package/dist/constants/mcp.js +2 -0
  104. package/dist/constants/mcp.js.map +1 -1
  105. package/dist/core/agentDetector.d.ts.map +1 -1
  106. package/dist/core/agentDetector.js +8 -2
  107. package/dist/core/agentDetector.js.map +1 -1
  108. package/dist/core/agentManager.d.ts.map +1 -1
  109. package/dist/core/agentManager.js +12 -0
  110. package/dist/core/agentManager.js.map +1 -1
  111. package/dist/core/gitignoreManager.d.ts +8 -0
  112. package/dist/core/gitignoreManager.d.ts.map +1 -0
  113. package/dist/core/gitignoreManager.js +114 -0
  114. package/dist/core/gitignoreManager.js.map +1 -0
  115. package/dist/core/managedState.d.ts +42 -0
  116. package/dist/core/managedState.d.ts.map +1 -0
  117. package/dist/core/managedState.js +194 -0
  118. package/dist/core/managedState.js.map +1 -0
  119. package/dist/core/mcpClient.d.ts +124 -6
  120. package/dist/core/mcpClient.d.ts.map +1 -1
  121. package/dist/core/mcpClient.js +385 -39
  122. package/dist/core/mcpClient.js.map +1 -1
  123. package/dist/core/pluginManager.d.ts +134 -0
  124. package/dist/core/pluginManager.d.ts.map +1 -0
  125. package/dist/core/pluginManager.js +845 -0
  126. package/dist/core/pluginManager.js.map +1 -0
  127. package/dist/core/projectSkills.d.ts +19 -0
  128. package/dist/core/projectSkills.d.ts.map +1 -0
  129. package/dist/core/projectSkills.js +105 -0
  130. package/dist/core/projectSkills.js.map +1 -0
  131. package/dist/core/propagator.d.ts +8 -1
  132. package/dist/core/propagator.d.ts.map +1 -1
  133. package/dist/core/propagator.js +179 -36
  134. package/dist/core/propagator.js.map +1 -1
  135. package/dist/core/rulesApplicator.d.ts +0 -4
  136. package/dist/core/rulesApplicator.d.ts.map +1 -1
  137. package/dist/core/rulesApplicator.js +8 -39
  138. package/dist/core/rulesApplicator.js.map +1 -1
  139. package/dist/core/rulesTemplateLoader.js +2 -2
  140. package/dist/core/rulesTemplateLoader.js.map +1 -1
  141. package/dist/core/skillsManager.d.ts +61 -0
  142. package/dist/core/skillsManager.d.ts.map +1 -0
  143. package/dist/core/skillsManager.js +407 -0
  144. package/dist/core/skillsManager.js.map +1 -0
  145. package/dist/lib/utils/index.d.ts +3 -1
  146. package/dist/lib/utils/index.d.ts.map +1 -1
  147. package/dist/lib/utils/index.js +4 -1
  148. package/dist/lib/utils/index.js.map +1 -1
  149. package/dist/types/index.d.ts +24 -1
  150. package/dist/types/index.d.ts.map +1 -1
  151. package/dist/types/index.js.map +1 -1
  152. package/dist/types/jsonSchema.d.ts +31 -0
  153. package/dist/types/jsonSchema.d.ts.map +1 -0
  154. package/dist/types/jsonSchema.js +6 -0
  155. package/dist/types/jsonSchema.js.map +1 -0
  156. package/dist/types/plugins.d.ts +161 -0
  157. package/dist/types/plugins.d.ts.map +1 -0
  158. package/dist/types/plugins.js +2 -0
  159. package/dist/types/plugins.js.map +1 -0
  160. package/dist/types/skills.d.ts +50 -0
  161. package/dist/types/skills.d.ts.map +1 -0
  162. package/dist/types/skills.js +2 -0
  163. package/dist/types/skills.js.map +1 -0
  164. package/dist/utils/packageVersion.d.ts +105 -0
  165. package/dist/utils/packageVersion.d.ts.map +1 -0
  166. package/dist/utils/packageVersion.js +219 -0
  167. package/dist/utils/packageVersion.js.map +1 -0
  168. package/package.json +7 -2
  169. package/dist/agentinit-1.6.0.tgz +0 -0
  170. package/dist/registry/mcpRegistry.d.ts +0 -12
  171. package/dist/registry/mcpRegistry.d.ts.map +0 -1
  172. package/dist/registry/mcpRegistry.js +0 -114
  173. package/dist/registry/mcpRegistry.js.map +0 -1
@@ -0,0 +1,42 @@
1
+ import { MarkdownRulesAgent } from './MarkdownRulesAgent.js';
2
+ export class ClineAgent extends MarkdownRulesAgent {
3
+ constructor() {
4
+ const definition = {
5
+ id: 'cline',
6
+ name: 'Cline',
7
+ capabilities: {
8
+ mcp: {
9
+ stdio: false,
10
+ http: false,
11
+ sse: false,
12
+ },
13
+ rules: true,
14
+ hooks: false,
15
+ commands: false,
16
+ subagents: false,
17
+ statusline: false,
18
+ skills: false,
19
+ },
20
+ configFiles: [
21
+ {
22
+ path: '.clinerules',
23
+ purpose: 'rules',
24
+ format: 'text',
25
+ type: 'file',
26
+ optional: true,
27
+ description: 'Cline rules file',
28
+ },
29
+ ],
30
+ nativeConfigPath: '.clinerules',
31
+ rulesPath: '.clinerules',
32
+ };
33
+ super(definition);
34
+ }
35
+ async applyMCPConfig(_projectPath, _servers) {
36
+ throw new Error('Cline does not support MCP configuration');
37
+ }
38
+ async removeMCPServer(_projectPath, _serverName) {
39
+ return false;
40
+ }
41
+ }
42
+ //# sourceMappingURL=ClineAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClineAgent.js","sourceRoot":"","sources":["../../src/agents/ClineAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,OAAO,UAAW,SAAQ,kBAAkB;IAChD;QACE,MAAM,UAAU,GAAoB;YAClC,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,YAAY,EAAE;gBACZ,GAAG,EAAE;oBACH,KAAK,EAAE,KAAK;oBACZ,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;gBACjB,MAAM,EAAE,KAAK;aACd;YACD,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,kBAAkB;iBAChC;aACF;YACD,gBAAgB,EAAE,aAAa;YAC/B,SAAS,EAAE,aAAa;SACzB,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,QAA2B;QACpE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB,EAAE,WAAmB;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -12,6 +12,10 @@ export declare class CodexCliAgent extends Agent {
12
12
  * Apply MCP configuration to Codex CLI's native TOML format
13
13
  */
14
14
  applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
15
+ /**
16
+ * Remove an MCP server by name from Codex's TOML config
17
+ */
18
+ removeMCPServer(projectPath: string, serverName: string): Promise<boolean>;
15
19
  /**
16
20
  * Codex only supports stdio, so filter out others (they'll be transformed)
17
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CodexCliAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CodexCliAgent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;;IAkCtC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpF;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAK/D;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAgClE;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IA6BlB;;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;IAiBrD;;OAEG;IACH,OAAO,CAAC,eAAe;CA2BxB"}
1
+ {"version":3,"file":"CodexCliAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CodexCliAgent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;;IAyCtC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpF;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBhF;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAK/D;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAgClE;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;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;IAiBrD;;OAEG;IACH,OAAO,CAAC,eAAe;CA2BxB"}
@@ -21,7 +21,8 @@ export class CodexCliAgent extends Agent {
21
21
  hooks: false,
22
22
  commands: false,
23
23
  subagents: false,
24
- statusline: false
24
+ statusline: false,
25
+ skills: true
25
26
  },
26
27
  configFiles: [
27
28
  {
@@ -34,7 +35,13 @@ export class CodexCliAgent extends Agent {
34
35
  }
35
36
  ],
36
37
  nativeConfigPath: '.codex/config.toml',
37
- globalConfigPath: '~/.codex/config.toml'
38
+ globalConfigPath: '~/.codex/config.toml',
39
+ rulesPath: '.codex/config.toml',
40
+ globalRulesPath: '~/.codex/config.toml',
41
+ skillPaths: {
42
+ project: '.codex/skills/',
43
+ global: '~/.codex/skills/'
44
+ }
38
45
  };
39
46
  super(definition);
40
47
  }
@@ -80,6 +87,27 @@ export class CodexCliAgent extends Agent {
80
87
  const formattedToml = this.formatTOML(TOML.stringify(existingConfig));
81
88
  await writeFile(tomlConfigPath, formattedToml);
82
89
  }
90
+ /**
91
+ * Remove an MCP server by name from Codex's TOML config
92
+ */
93
+ async removeMCPServer(projectPath, serverName) {
94
+ const tomlConfigPath = this.getNativeMcpPath(projectPath);
95
+ const content = await readFileIfExists(tomlConfigPath);
96
+ if (!content)
97
+ return false;
98
+ try {
99
+ const config = TOML.parse(content);
100
+ if (!config.mcp_servers || !(serverName in config.mcp_servers))
101
+ return false;
102
+ delete config.mcp_servers[serverName];
103
+ const formattedToml = this.formatTOML(TOML.stringify(config));
104
+ await writeFile(tomlConfigPath, formattedToml);
105
+ return true;
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
83
111
  /**
84
112
  * Codex only supports stdio, so filter out others (they'll be transformed)
85
113
  */
@@ -159,17 +187,19 @@ export class CodexCliAgent extends Agent {
159
187
  config = {};
160
188
  }
161
189
  }
162
- // Add or update rules section
163
- if (!config.rules) {
164
- config.rules = {};
165
- }
166
- // Convert rule sections to TOML structure
190
+ const nextRules = {};
167
191
  for (const section of rules.sections) {
168
- config.rules[section.templateId] = {
192
+ nextRules[section.templateId] = {
169
193
  name: section.templateName,
170
194
  rules: section.rules
171
195
  };
172
196
  }
197
+ if (Object.keys(nextRules).length > 0) {
198
+ config.rules = nextRules;
199
+ }
200
+ else {
201
+ delete config.rules;
202
+ }
173
203
  return this.formatTOMLRules(TOML.stringify(config));
174
204
  }
175
205
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CodexCliAgent.js","sourceRoot":"","sources":["../../src/agents/CodexCliAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodexCliAgent.js","sourceRoot":"","sources":["../../src/agents/CodexCliAgent.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 CopilotAgent 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=CopilotAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopilotAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CopilotAgent.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 CopilotAgent extends MarkdownRulesAgent {
4
+ constructor() {
5
+ const definition = {
6
+ id: 'copilot',
7
+ name: 'GitHub Copilot',
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: 'GitHub Copilot agent instructions',
29
+ },
30
+ {
31
+ path: '.vscode/mcp.json',
32
+ purpose: 'mcp',
33
+ format: 'json',
34
+ type: 'file',
35
+ optional: true,
36
+ description: 'GitHub Copilot MCP server configuration',
37
+ },
38
+ ],
39
+ nativeConfigPath: '.vscode/mcp.json',
40
+ rulesPath: 'AGENTS.md',
41
+ skillPaths: {
42
+ project: '.claude/skills/',
43
+ global: '~/.claude/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 = { servers: {} };
53
+ if (existingContent) {
54
+ try {
55
+ existingConfig = JSON.parse(existingContent);
56
+ if (!existingConfig.servers) {
57
+ existingConfig.servers = {};
58
+ }
59
+ }
60
+ catch {
61
+ existingConfig = { servers: {} };
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.servers[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.servers || !(serverName in config.servers))
88
+ return false;
89
+ delete config.servers[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.servers) {
106
+ for (const [name, serverConfig] of Object.entries(config.servers)) {
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=CopilotAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopilotAgent.js","sourceRoot":"","sources":["../../src/agents/CopilotAgent.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export declare class CursorAgent extends Agent {
12
12
  * Apply MCP configuration to Cursor's native .cursor/mcp.json format
13
13
  */
14
14
  applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
15
+ /**
16
+ * Remove an MCP server by name from Cursor's mcp.json
17
+ */
18
+ removeMCPServer(projectPath: string, serverName: string): Promise<boolean>;
15
19
  /**
16
20
  * Cursor supports all MCP server types, so no filtering needed
17
21
  */
@@ -36,9 +40,5 @@ export declare class CursorAgent extends Agent {
36
40
  * Generate rules content in Cursor's .cursorrules format
37
41
  */
38
42
  generateRulesContent(sections: RuleSection[]): string;
39
- /**
40
- * Extract all rule texts from file content (ignoring headers and comments)
41
- */
42
- private extractAllRuleTexts;
43
43
  }
44
44
  //# sourceMappingURL=CursorAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CursorAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CursorAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAqC,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;;IA2DpC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DpF;;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;IA+BlB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAkCvD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;IAiBrD;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAc5B"}
1
+ {"version":3,"file":"CursorAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CursorAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAqC,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;;IAiEpC;;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;IAIlB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAkCvD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;CAgBtD"}
@@ -21,7 +21,8 @@ export class CursorAgent extends Agent {
21
21
  hooks: false,
22
22
  commands: false,
23
23
  subagents: false,
24
- statusline: false
24
+ statusline: false,
25
+ skills: true
25
26
  },
26
27
  configFiles: [
27
28
  {
@@ -58,7 +59,12 @@ export class CursorAgent extends Agent {
58
59
  }
59
60
  ],
60
61
  nativeConfigPath: '.cursor/mcp.json',
61
- globalConfigPath: '~/.cursor/mcp.json'
62
+ globalConfigPath: '~/.cursor/mcp.json',
63
+ rulesPath: '.cursorrules',
64
+ skillPaths: {
65
+ project: '.cursor/skills/',
66
+ global: '~/.cursor/skills/'
67
+ }
62
68
  };
63
69
  super(definition);
64
70
  }
@@ -116,6 +122,26 @@ export class CursorAgent extends Agent {
116
122
  const configJson = JSON.stringify(existingConfig, null, 2);
117
123
  await writeFile(mcpConfigPath, configJson);
118
124
  }
125
+ /**
126
+ * Remove an MCP server by name from Cursor's mcp.json
127
+ */
128
+ async removeMCPServer(projectPath, serverName) {
129
+ const mcpConfigPath = this.getNativeMcpPath(projectPath);
130
+ const content = await readFileIfExists(mcpConfigPath);
131
+ if (!content)
132
+ return false;
133
+ try {
134
+ const config = JSON.parse(content);
135
+ if (!config.mcpServers || !(serverName in config.mcpServers))
136
+ return false;
137
+ delete config.mcpServers[serverName];
138
+ await writeFile(mcpConfigPath, JSON.stringify(config, null, 2));
139
+ return true;
140
+ }
141
+ catch {
142
+ return false;
143
+ }
144
+ }
119
145
  /**
120
146
  * Cursor supports all MCP server types, so no filtering needed
121
147
  */
@@ -132,35 +158,13 @@ export class CursorAgent extends Agent {
132
158
  * Apply rules configuration to Cursor's .cursorrules format
133
159
  */
134
160
  async applyRulesConfig(configPath, rules, existingContent) {
135
- // Extract all existing rule texts (ignore section headers)
136
- const existingRules = this.extractAllRuleTexts(existingContent);
137
- // Filter new sections to only include rules that don't already exist
138
- const filteredSections = rules.sections.map(section => ({
139
- ...section,
140
- rules: section.rules.filter(rule => !existingRules.includes(rule))
141
- })).filter(section => section.rules.length > 0); // Remove empty sections
142
- if (filteredSections.length === 0) {
143
- // No new rules to add
144
- return existingContent;
145
- }
146
- // Append new sections to existing content
147
- let content = existingContent;
148
- if (content && !content.endsWith('\n')) {
149
- content += '\n';
150
- }
151
- if (content) {
152
- content += '\n';
153
- }
154
- // Add only the new sections with unique rules
155
- const sectionsContent = this.generateRulesContent(filteredSections);
156
- content += sectionsContent;
157
- return content.trim() + '\n';
161
+ return this.replaceMarkdownRulesSections(existingContent, rules.sections, /^#\s+(.+)$/);
158
162
  }
159
163
  /**
160
164
  * Extract existing rule texts from .cursorrules content (ignoring headers and comments)
161
165
  */
162
166
  extractExistingRules(content) {
163
- return this.extractAllRuleTexts(content);
167
+ return this.extractExistingSections(content).flatMap(section => section.rules);
164
168
  }
165
169
  /**
166
170
  * Extract existing rule sections from .cursorrules content using # headers
@@ -174,7 +178,7 @@ export class CursorAgent extends Agent {
174
178
  // Check if it's a section header
175
179
  if (trimmed.startsWith('#') && trimmed.includes(' ')) {
176
180
  // Start new section
177
- if (currentSection) {
181
+ if (currentSection && currentSection.rules.length > 0) {
178
182
  sections.push(currentSection);
179
183
  }
180
184
  const sectionName = trimmed.replace(/^#\s*/, '');
@@ -190,7 +194,7 @@ export class CursorAgent extends Agent {
190
194
  }
191
195
  }
192
196
  // Add the last section
193
- if (currentSection) {
197
+ if (currentSection && currentSection.rules.length > 0) {
194
198
  sections.push(currentSection);
195
199
  }
196
200
  return sections;
@@ -212,20 +216,5 @@ export class CursorAgent extends Agent {
212
216
  }
213
217
  return content;
214
218
  }
215
- /**
216
- * Extract all rule texts from file content (ignoring headers and comments)
217
- */
218
- extractAllRuleTexts(content) {
219
- const rules = [];
220
- const lines = content.split('\n');
221
- for (const line of lines) {
222
- const trimmed = line.trim();
223
- // Skip empty lines, headers (starting with #), and other comments
224
- if (trimmed && !trimmed.startsWith('#') && !trimmed.startsWith('//')) {
225
- rules.push(trimmed);
226
- }
227
- }
228
- return rules;
229
- }
230
219
  }
231
220
  //# sourceMappingURL=CursorAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CursorAgent.js","sourceRoot":"","sources":["../../src/agents/CursorAgent.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,WAAY,SAAQ,KAAK;IACpC;QACE,MAAM,UAAU,GAAoB;YAClC,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,wDAAwD;YAC7D,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;aAClB;YACD,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,4CAA4C;iBAC1D;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,qCAAqC;iBACnD;gBACD;oBACE,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;aACF;YACD,gBAAgB,EAAE,kBAAkB;YACpC,gBAAgB,EAAE,oBAAoB;SACvC,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,OAA0B;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEzD,8BAA8B;QAC9B,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE3C,8BAA8B;QAC9B,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,cAAc,GAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAE7C,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBAC/B,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;gBAC1F,cAAc,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAQ,EAAE,CAAC;YAE7B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBACxC,CAAC;oBACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1C,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBAClC,CAAC;oBACD,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrD,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBAChC,CAAC;oBACD,MAAM;gBAER,KAAK,MAAM,CAAC;gBACZ,KAAK,KAAK;oBACR,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;wBACf,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBAChC,CAAC;oBACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7D,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBACxC,CAAC;oBACD,MAAM;YACV,CAAC;YAED,yCAAyC;YACzC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QACxD,CAAC;QAED,kCAAkC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAA0B;QACzC,OAAO,OAAO,CAAC,CAAC,6BAA6B;IAC/C,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAA0B;QAC5C,OAAO,OAAO,CAAC,CAAC,4BAA4B;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,UAAkB,EAClB,KAAmB,EACnB,eAAuB;QAEvB,2DAA2D;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAEhE,qEAAqE;QACrE,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtD,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACnE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAEzE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,sBAAsB;YACtB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,GAAG,eAAe,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QAED,8CAA8C;QAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACpE,OAAO,IAAI,eAAe,CAAC;QAE3B,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,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,iCAAiC;YACjC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,oBAAoB;gBACpB,IAAI,cAAc,EAAE,CAAC;oBACnB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjD,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,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,8BAA8B;gBAC9B,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,QAAuB;QAC1C,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,0BAA0B;YAC1B,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;gBACnC,OAAO,IAAI,KAAK,WAAW,CAAC,YAAY,IAAI,CAAC;gBAC7C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC;gBACzB,CAAC;gBACD,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAAe;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,kEAAkE;YAClE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"CursorAgent.js","sourceRoot":"","sources":["../../src/agents/CursorAgent.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,11 @@ export declare class DroidAgent extends Agent {
19
19
  * Apply MCP configuration to Droid's global ~/.factory/mcp.json format
20
20
  */
21
21
  applyGlobalMCPConfig(servers: MCPServerConfig[]): Promise<void>;
22
+ /**
23
+ * Remove an MCP server — Droid always uses global config
24
+ */
25
+ removeMCPServer(_projectPath: string, serverName: string): Promise<boolean>;
26
+ removeGlobalMCPServer(serverName: string): Promise<boolean>;
22
27
  /**
23
28
  * Filter out non-stdio servers since Droid only supports stdio
24
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DroidAgent.d.ts","sourceRoot":"","sources":["../../src/agents/DroidAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;;IAmCnC;;;OAGG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpF;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDrE;;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;IAiBlB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAM/C;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAmCvD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;IAiBrD;;;OAGG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CA4CrE"}
1
+ {"version":3,"file":"DroidAgent.d.ts","sourceRoot":"","sources":["../../src/agents/DroidAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;;IAyCnC;;;OAGG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpF;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDrE;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3E,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBjE;;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;IAIlB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE;IAmCvD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;IAiBrD;;;OAGG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CA4CrE"}
@@ -23,7 +23,8 @@ export class DroidAgent extends Agent {
23
23
  hooks: false,
24
24
  commands: false,
25
25
  subagents: false,
26
- statusline: false
26
+ statusline: false,
27
+ skills: true
27
28
  },
28
29
  configFiles: [
29
30
  {
@@ -36,7 +37,12 @@ export class DroidAgent extends Agent {
36
37
  }
37
38
  ],
38
39
  nativeConfigPath: '.factory/mcp.json',
39
- globalConfigPath: '~/.factory/mcp.json'
40
+ globalConfigPath: '~/.factory/mcp.json',
41
+ rulesPath: 'AGENTS.md',
42
+ skillPaths: {
43
+ project: '.factory/skills/',
44
+ global: '~/.factory/skills/'
45
+ }
40
46
  };
41
47
  super(definition);
42
48
  }
@@ -96,6 +102,31 @@ export class DroidAgent extends Agent {
96
102
  const configJson = JSON.stringify(existingConfig, null, 2);
97
103
  await writeFile(globalPath, configJson);
98
104
  }
105
+ /**
106
+ * Remove an MCP server — Droid always uses global config
107
+ */
108
+ async removeMCPServer(_projectPath, serverName) {
109
+ return this.removeGlobalMCPServer(serverName);
110
+ }
111
+ async removeGlobalMCPServer(serverName) {
112
+ const globalPath = this.getGlobalMcpPath();
113
+ if (!globalPath)
114
+ return false;
115
+ const content = await readFileIfExists(globalPath);
116
+ if (!content)
117
+ return false;
118
+ try {
119
+ const config = JSON.parse(content);
120
+ if (!config.mcpServers || !(serverName in config.mcpServers))
121
+ return false;
122
+ delete config.mcpServers[serverName];
123
+ await writeFile(globalPath, JSON.stringify(config, null, 2));
124
+ return true;
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
99
130
  /**
100
131
  * Filter out non-stdio servers since Droid only supports stdio
101
132
  */
@@ -112,25 +143,13 @@ export class DroidAgent extends Agent {
112
143
  * Apply rules configuration to AGENTS.md
113
144
  */
114
145
  async applyRulesConfig(configPath, rules, existingContent) {
115
- const rulesSection = this.generateRulesContent(rules.sections);
116
- let content = existingContent;
117
- // For markdown, we'll append rules directly
118
- if (content && !content.endsWith('\n')) {
119
- content += '\n';
120
- }
121
- if (content) {
122
- content += '\n';
123
- }
124
- content += rulesSection;
125
- return content.trim() + '\n';
146
+ return this.replaceMarkdownRulesSections(existingContent, rules.sections, /^##\s+(.+)$/);
126
147
  }
127
148
  /**
128
149
  * Extract existing rule texts from AGENTS.md content
129
150
  */
130
151
  extractExistingRules(content) {
131
- // Extract rules from markdown format - look for lines starting with "- "
132
- const ruleLines = content.split('\n').filter(line => line.trim().startsWith('- '));
133
- return ruleLines.map(line => line.replace(/^- /, '').trim()).filter(rule => rule.length > 0);
152
+ return this.extractExistingSections(content).flatMap(section => section.rules);
134
153
  }
135
154
  /**
136
155
  * Extract existing rule sections from AGENTS.md content using ## headers
@@ -144,7 +163,7 @@ export class DroidAgent extends Agent {
144
163
  // Check if it's a section header
145
164
  if (trimmed.startsWith('## ') && trimmed.includes(' ')) {
146
165
  // Start new section
147
- if (currentSection) {
166
+ if (currentSection && currentSection.rules.length > 0) {
148
167
  sections.push(currentSection);
149
168
  }
150
169
  const sectionName = trimmed.replace(/^##\s*/, '');
@@ -161,7 +180,7 @@ export class DroidAgent extends Agent {
161
180
  }
162
181
  }
163
182
  // Add the last section
164
- if (currentSection) {
183
+ if (currentSection && currentSection.rules.length > 0) {
165
184
  sections.push(currentSection);
166
185
  }
167
186
  return sections;