agentinit 1.5.0 → 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.
- package/CHANGELOG.md +7 -0
- package/dist/agentinit-1.6.0.tgz +0 -0
- package/dist/agents/DroidAgent.d.ts +52 -0
- package/dist/agents/DroidAgent.d.ts.map +1 -0
- package/dist/agents/DroidAgent.js +228 -0
- package/dist/agents/DroidAgent.js.map +1 -0
- package/dist/cli.js +186 -12
- package/dist/core/agentManager.d.ts.map +1 -1
- package/dist/core/agentManager.js +3 -1
- package/dist/core/agentManager.js.map +1 -1
- package/package.json +1 -1
- package/dist/agentinit-1.5.0.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.6.0](https://github.com/agentinit/agentinit/compare/v1.5.0...v1.6.0) (2025-10-10)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **agents:** add Droid (Factory AI) agent support ([73e5529](https://github.com/agentinit/agentinit/commit/73e5529703af36781c06e840faf38227d2ce79ac))
|
|
7
|
+
|
|
1
8
|
# [1.5.0](https://github.com/agentinit/agentinit/compare/v1.4.1...v1.5.0) (2025-10-01)
|
|
2
9
|
|
|
3
10
|
|
|
Binary file
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Agent } from './Agent.js';
|
|
2
|
+
import type { MCPServerConfig } from '../types/index.js';
|
|
3
|
+
import type { AppliedRules, RuleSection } from '../types/rules.js';
|
|
4
|
+
/**
|
|
5
|
+
* Droid (Factory) agent implementation
|
|
6
|
+
* Supports stdio MCP servers
|
|
7
|
+
* Uses ~/.factory for global configuration
|
|
8
|
+
* MCP config: ~/.factory/mcp.json
|
|
9
|
+
* Rules: AGENTS.md in project root
|
|
10
|
+
*/
|
|
11
|
+
export declare class DroidAgent extends Agent {
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Apply MCP configuration to Droid's ~/.factory/mcp.json format
|
|
15
|
+
* Droid stores configs globally regardless of project-level or global flag
|
|
16
|
+
*/
|
|
17
|
+
applyMCPConfig(projectPath: string, servers: MCPServerConfig[]): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Apply MCP configuration to Droid's global ~/.factory/mcp.json format
|
|
20
|
+
*/
|
|
21
|
+
applyGlobalMCPConfig(servers: MCPServerConfig[]): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Filter out non-stdio servers since Droid only supports stdio
|
|
24
|
+
*/
|
|
25
|
+
filterMCPServers(servers: MCPServerConfig[]): MCPServerConfig[];
|
|
26
|
+
/**
|
|
27
|
+
* Droid doesn't need any transformations for stdio servers
|
|
28
|
+
*/
|
|
29
|
+
transformMCPServers(servers: MCPServerConfig[]): MCPServerConfig[];
|
|
30
|
+
/**
|
|
31
|
+
* Apply rules configuration to AGENTS.md
|
|
32
|
+
*/
|
|
33
|
+
applyRulesConfig(configPath: string, rules: AppliedRules, existingContent: string): Promise<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Extract existing rule texts from AGENTS.md content
|
|
36
|
+
*/
|
|
37
|
+
extractExistingRules(content: string): string[];
|
|
38
|
+
/**
|
|
39
|
+
* Extract existing rule sections from AGENTS.md content using ## headers
|
|
40
|
+
*/
|
|
41
|
+
extractExistingSections(content: string): RuleSection[];
|
|
42
|
+
/**
|
|
43
|
+
* Generate rules content in AGENTS.md markdown format
|
|
44
|
+
*/
|
|
45
|
+
generateRulesContent(sections: RuleSection[]): string;
|
|
46
|
+
/**
|
|
47
|
+
* Get existing MCP servers from Droid's ~/.factory/mcp.json configuration
|
|
48
|
+
* Droid uses global configuration, so we read from the global path
|
|
49
|
+
*/
|
|
50
|
+
getMCPServers(projectPath: string): Promise<MCPServerConfig[]>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=DroidAgent.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { Agent } from './Agent.js';
|
|
2
|
+
import { readFileIfExists, writeFile, ensureDirectoryExists } from '../utils/fs.js';
|
|
3
|
+
/**
|
|
4
|
+
* Droid (Factory) agent implementation
|
|
5
|
+
* Supports stdio MCP servers
|
|
6
|
+
* Uses ~/.factory for global configuration
|
|
7
|
+
* MCP config: ~/.factory/mcp.json
|
|
8
|
+
* Rules: AGENTS.md in project root
|
|
9
|
+
*/
|
|
10
|
+
export class DroidAgent extends Agent {
|
|
11
|
+
constructor() {
|
|
12
|
+
const definition = {
|
|
13
|
+
id: 'droid',
|
|
14
|
+
name: 'Droid (Factory)',
|
|
15
|
+
url: 'https://factory.ai',
|
|
16
|
+
capabilities: {
|
|
17
|
+
mcp: {
|
|
18
|
+
stdio: true,
|
|
19
|
+
http: false,
|
|
20
|
+
sse: false
|
|
21
|
+
},
|
|
22
|
+
rules: true,
|
|
23
|
+
hooks: false,
|
|
24
|
+
commands: false,
|
|
25
|
+
subagents: false,
|
|
26
|
+
statusline: false
|
|
27
|
+
},
|
|
28
|
+
configFiles: [
|
|
29
|
+
{
|
|
30
|
+
path: 'AGENTS.md',
|
|
31
|
+
purpose: 'rules',
|
|
32
|
+
format: 'markdown',
|
|
33
|
+
type: 'file',
|
|
34
|
+
optional: true,
|
|
35
|
+
description: 'Agent instructions and rules in markdown format'
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
nativeConfigPath: '.factory/mcp.json',
|
|
39
|
+
globalConfigPath: '~/.factory/mcp.json'
|
|
40
|
+
};
|
|
41
|
+
super(definition);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Apply MCP configuration to Droid's ~/.factory/mcp.json format
|
|
45
|
+
* Droid stores configs globally regardless of project-level or global flag
|
|
46
|
+
*/
|
|
47
|
+
async applyMCPConfig(projectPath, servers) {
|
|
48
|
+
// Delegate to global config application since Droid uses global config
|
|
49
|
+
await this.applyGlobalMCPConfig(servers);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Apply MCP configuration to Droid's global ~/.factory/mcp.json format
|
|
53
|
+
*/
|
|
54
|
+
async applyGlobalMCPConfig(servers) {
|
|
55
|
+
const globalPath = this.getGlobalMcpPath();
|
|
56
|
+
if (!globalPath) {
|
|
57
|
+
throw new Error(`Droid global configuration path could not be determined`);
|
|
58
|
+
}
|
|
59
|
+
// Ensure the directory exists
|
|
60
|
+
await ensureDirectoryExists(globalPath);
|
|
61
|
+
// Read existing configuration
|
|
62
|
+
const existingContent = await readFileIfExists(globalPath);
|
|
63
|
+
let existingConfig = { mcpServers: {} };
|
|
64
|
+
if (existingContent) {
|
|
65
|
+
try {
|
|
66
|
+
existingConfig = JSON.parse(existingContent);
|
|
67
|
+
if (!existingConfig.mcpServers) {
|
|
68
|
+
existingConfig.mcpServers = {};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.warn('Warning: Existing ~/.factory/mcp.json is invalid, creating new configuration');
|
|
73
|
+
existingConfig = { mcpServers: {} };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Convert our MCP server configs to Droid's format
|
|
77
|
+
for (const server of servers) {
|
|
78
|
+
const droidServer = {
|
|
79
|
+
type: 'stdio'
|
|
80
|
+
};
|
|
81
|
+
if (server.command) {
|
|
82
|
+
droidServer.command = server.command;
|
|
83
|
+
}
|
|
84
|
+
if (server.args && server.args.length > 0) {
|
|
85
|
+
droidServer.args = server.args;
|
|
86
|
+
}
|
|
87
|
+
if (server.env && Object.keys(server.env).length > 0) {
|
|
88
|
+
droidServer.env = server.env;
|
|
89
|
+
}
|
|
90
|
+
// Add disabled flag (default false)
|
|
91
|
+
droidServer.disabled = false;
|
|
92
|
+
// Add or update the server in the config
|
|
93
|
+
existingConfig.mcpServers[server.name] = droidServer;
|
|
94
|
+
}
|
|
95
|
+
// Write the updated configuration
|
|
96
|
+
const configJson = JSON.stringify(existingConfig, null, 2);
|
|
97
|
+
await writeFile(globalPath, configJson);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Filter out non-stdio servers since Droid only supports stdio
|
|
101
|
+
*/
|
|
102
|
+
filterMCPServers(servers) {
|
|
103
|
+
return servers.filter(server => server.type === 'stdio');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Droid doesn't need any transformations for stdio servers
|
|
107
|
+
*/
|
|
108
|
+
transformMCPServers(servers) {
|
|
109
|
+
return servers;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Apply rules configuration to AGENTS.md
|
|
113
|
+
*/
|
|
114
|
+
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';
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Extract existing rule texts from AGENTS.md content
|
|
129
|
+
*/
|
|
130
|
+
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);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Extract existing rule sections from AGENTS.md content using ## headers
|
|
137
|
+
*/
|
|
138
|
+
extractExistingSections(content) {
|
|
139
|
+
const lines = content.split('\n');
|
|
140
|
+
const sections = [];
|
|
141
|
+
let currentSection = null;
|
|
142
|
+
for (const line of lines) {
|
|
143
|
+
const trimmed = line.trim();
|
|
144
|
+
// Check if it's a section header
|
|
145
|
+
if (trimmed.startsWith('## ') && trimmed.includes(' ')) {
|
|
146
|
+
// Start new section
|
|
147
|
+
if (currentSection) {
|
|
148
|
+
sections.push(currentSection);
|
|
149
|
+
}
|
|
150
|
+
const sectionName = trimmed.replace(/^##\s*/, '');
|
|
151
|
+
currentSection = {
|
|
152
|
+
templateId: sectionName.toLowerCase().replace(/\s+/g, '_'),
|
|
153
|
+
templateName: sectionName,
|
|
154
|
+
rules: []
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
else if (currentSection && trimmed.startsWith('- ')) {
|
|
158
|
+
// Add rule to current section
|
|
159
|
+
const rule = trimmed.replace(/^- /, '');
|
|
160
|
+
currentSection.rules.push(rule);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Add the last section
|
|
164
|
+
if (currentSection) {
|
|
165
|
+
sections.push(currentSection);
|
|
166
|
+
}
|
|
167
|
+
return sections;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Generate rules content in AGENTS.md markdown format
|
|
171
|
+
*/
|
|
172
|
+
generateRulesContent(sections) {
|
|
173
|
+
let content = '';
|
|
174
|
+
if (sections && sections.length > 0) {
|
|
175
|
+
// Group rules by sections
|
|
176
|
+
for (const ruleSection of sections) {
|
|
177
|
+
content += `## ${ruleSection.templateName}\n\n`;
|
|
178
|
+
for (const rule of ruleSection.rules) {
|
|
179
|
+
content += `- ${rule}\n`;
|
|
180
|
+
}
|
|
181
|
+
content += '\n';
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return content;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get existing MCP servers from Droid's ~/.factory/mcp.json configuration
|
|
188
|
+
* Droid uses global configuration, so we read from the global path
|
|
189
|
+
*/
|
|
190
|
+
async getMCPServers(projectPath) {
|
|
191
|
+
const globalPath = this.getGlobalMcpPath();
|
|
192
|
+
if (!globalPath) {
|
|
193
|
+
return [];
|
|
194
|
+
}
|
|
195
|
+
const configContent = await readFileIfExists(globalPath);
|
|
196
|
+
if (!configContent) {
|
|
197
|
+
return [];
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
const config = JSON.parse(configContent);
|
|
201
|
+
const servers = [];
|
|
202
|
+
if (config.mcpServers) {
|
|
203
|
+
for (const [name, serverConfig] of Object.entries(config.mcpServers)) {
|
|
204
|
+
const server = {
|
|
205
|
+
name,
|
|
206
|
+
type: 'stdio',
|
|
207
|
+
};
|
|
208
|
+
if (serverConfig.command) {
|
|
209
|
+
server.command = serverConfig.command;
|
|
210
|
+
}
|
|
211
|
+
if (serverConfig.args) {
|
|
212
|
+
server.args = serverConfig.args;
|
|
213
|
+
}
|
|
214
|
+
if (serverConfig.env) {
|
|
215
|
+
server.env = serverConfig.env;
|
|
216
|
+
}
|
|
217
|
+
servers.push(server);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return servers;
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
// Invalid JSON or missing mcpServers property
|
|
224
|
+
return [];
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=DroidAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DroidAgent.js","sourceRoot":"","sources":["../../src/agents/DroidAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -19950,27 +19950,27 @@ var require_windows = __commonJS((exports, module) => {
|
|
|
19950
19950
|
return checkPathExt(path, options2);
|
|
19951
19951
|
};
|
|
19952
19952
|
var isexe = function(path, options2, cb) {
|
|
19953
|
-
|
|
19953
|
+
fs15.stat(path, function(er, stat) {
|
|
19954
19954
|
cb(er, er ? false : checkStat(stat, path, options2));
|
|
19955
19955
|
});
|
|
19956
19956
|
};
|
|
19957
19957
|
var sync = function(path, options2) {
|
|
19958
|
-
return checkStat(
|
|
19958
|
+
return checkStat(fs15.statSync(path), path, options2);
|
|
19959
19959
|
};
|
|
19960
19960
|
module.exports = isexe;
|
|
19961
19961
|
isexe.sync = sync;
|
|
19962
|
-
var
|
|
19962
|
+
var fs15 = __require("fs");
|
|
19963
19963
|
});
|
|
19964
19964
|
|
|
19965
19965
|
// node_modules/isexe/mode.js
|
|
19966
19966
|
var require_mode = __commonJS((exports, module) => {
|
|
19967
19967
|
var isexe = function(path, options2, cb) {
|
|
19968
|
-
|
|
19968
|
+
fs15.stat(path, function(er, stat) {
|
|
19969
19969
|
cb(er, er ? false : checkStat(stat, options2));
|
|
19970
19970
|
});
|
|
19971
19971
|
};
|
|
19972
19972
|
var sync = function(path, options2) {
|
|
19973
|
-
return checkStat(
|
|
19973
|
+
return checkStat(fs15.statSync(path), options2);
|
|
19974
19974
|
};
|
|
19975
19975
|
var checkStat = function(stat, options2) {
|
|
19976
19976
|
return stat.isFile() && checkMode(stat, options2);
|
|
@@ -19990,7 +19990,7 @@ var require_mode = __commonJS((exports, module) => {
|
|
|
19990
19990
|
};
|
|
19991
19991
|
module.exports = isexe;
|
|
19992
19992
|
isexe.sync = sync;
|
|
19993
|
-
var
|
|
19993
|
+
var fs15 = __require("fs");
|
|
19994
19994
|
});
|
|
19995
19995
|
|
|
19996
19996
|
// node_modules/isexe/index.js
|
|
@@ -20035,7 +20035,7 @@ var require_isexe = __commonJS((exports, module) => {
|
|
|
20035
20035
|
}
|
|
20036
20036
|
}
|
|
20037
20037
|
};
|
|
20038
|
-
var
|
|
20038
|
+
var fs15 = __require("fs");
|
|
20039
20039
|
var core;
|
|
20040
20040
|
if (process.platform === "win32" || global.TESTING_WINDOWS) {
|
|
20041
20041
|
core = require_windows();
|
|
@@ -20242,14 +20242,14 @@ var require_readShebang = __commonJS((exports, module) => {
|
|
|
20242
20242
|
const buffer = Buffer.alloc(size);
|
|
20243
20243
|
let fd;
|
|
20244
20244
|
try {
|
|
20245
|
-
fd =
|
|
20246
|
-
|
|
20247
|
-
|
|
20245
|
+
fd = fs15.openSync(command, "r");
|
|
20246
|
+
fs15.readSync(fd, buffer, 0, size, 0);
|
|
20247
|
+
fs15.closeSync(fd);
|
|
20248
20248
|
} catch (e) {
|
|
20249
20249
|
}
|
|
20250
20250
|
return shebangCommand(buffer.toString());
|
|
20251
20251
|
};
|
|
20252
|
-
var
|
|
20252
|
+
var fs15 = __require("fs");
|
|
20253
20253
|
var shebangCommand = require_shebang_command();
|
|
20254
20254
|
module.exports = readShebang;
|
|
20255
20255
|
});
|
|
@@ -24862,6 +24862,179 @@ class CursorAgent extends Agent {
|
|
|
24862
24862
|
}
|
|
24863
24863
|
}
|
|
24864
24864
|
|
|
24865
|
+
// dist/agents/DroidAgent.js
|
|
24866
|
+
class DroidAgent extends Agent {
|
|
24867
|
+
constructor() {
|
|
24868
|
+
const definition = {
|
|
24869
|
+
id: "droid",
|
|
24870
|
+
name: "Droid (Factory)",
|
|
24871
|
+
url: "https://factory.ai",
|
|
24872
|
+
capabilities: {
|
|
24873
|
+
mcp: {
|
|
24874
|
+
stdio: true,
|
|
24875
|
+
http: false,
|
|
24876
|
+
sse: false
|
|
24877
|
+
},
|
|
24878
|
+
rules: true,
|
|
24879
|
+
hooks: false,
|
|
24880
|
+
commands: false,
|
|
24881
|
+
subagents: false,
|
|
24882
|
+
statusline: false
|
|
24883
|
+
},
|
|
24884
|
+
configFiles: [
|
|
24885
|
+
{
|
|
24886
|
+
path: "AGENTS.md",
|
|
24887
|
+
purpose: "rules",
|
|
24888
|
+
format: "markdown",
|
|
24889
|
+
type: "file",
|
|
24890
|
+
optional: true,
|
|
24891
|
+
description: "Agent instructions and rules in markdown format"
|
|
24892
|
+
}
|
|
24893
|
+
],
|
|
24894
|
+
nativeConfigPath: ".factory/mcp.json",
|
|
24895
|
+
globalConfigPath: "~/.factory/mcp.json"
|
|
24896
|
+
};
|
|
24897
|
+
super(definition);
|
|
24898
|
+
}
|
|
24899
|
+
async applyMCPConfig(projectPath, servers) {
|
|
24900
|
+
await this.applyGlobalMCPConfig(servers);
|
|
24901
|
+
}
|
|
24902
|
+
async applyGlobalMCPConfig(servers) {
|
|
24903
|
+
const globalPath = this.getGlobalMcpPath();
|
|
24904
|
+
if (!globalPath) {
|
|
24905
|
+
throw new Error(`Droid global configuration path could not be determined`);
|
|
24906
|
+
}
|
|
24907
|
+
await ensureDirectoryExists(globalPath);
|
|
24908
|
+
const existingContent = await readFileIfExists(globalPath);
|
|
24909
|
+
let existingConfig = { mcpServers: {} };
|
|
24910
|
+
if (existingContent) {
|
|
24911
|
+
try {
|
|
24912
|
+
existingConfig = JSON.parse(existingContent);
|
|
24913
|
+
if (!existingConfig.mcpServers) {
|
|
24914
|
+
existingConfig.mcpServers = {};
|
|
24915
|
+
}
|
|
24916
|
+
} catch (error) {
|
|
24917
|
+
console.warn("Warning: Existing ~/.factory/mcp.json is invalid, creating new configuration");
|
|
24918
|
+
existingConfig = { mcpServers: {} };
|
|
24919
|
+
}
|
|
24920
|
+
}
|
|
24921
|
+
for (const server of servers) {
|
|
24922
|
+
const droidServer = {
|
|
24923
|
+
type: "stdio"
|
|
24924
|
+
};
|
|
24925
|
+
if (server.command) {
|
|
24926
|
+
droidServer.command = server.command;
|
|
24927
|
+
}
|
|
24928
|
+
if (server.args && server.args.length > 0) {
|
|
24929
|
+
droidServer.args = server.args;
|
|
24930
|
+
}
|
|
24931
|
+
if (server.env && Object.keys(server.env).length > 0) {
|
|
24932
|
+
droidServer.env = server.env;
|
|
24933
|
+
}
|
|
24934
|
+
droidServer.disabled = false;
|
|
24935
|
+
existingConfig.mcpServers[server.name] = droidServer;
|
|
24936
|
+
}
|
|
24937
|
+
const configJson = JSON.stringify(existingConfig, null, 2);
|
|
24938
|
+
await writeFile(globalPath, configJson);
|
|
24939
|
+
}
|
|
24940
|
+
filterMCPServers(servers) {
|
|
24941
|
+
return servers.filter((server) => server.type === "stdio");
|
|
24942
|
+
}
|
|
24943
|
+
transformMCPServers(servers) {
|
|
24944
|
+
return servers;
|
|
24945
|
+
}
|
|
24946
|
+
async applyRulesConfig(configPath, rules, existingContent) {
|
|
24947
|
+
const rulesSection = this.generateRulesContent(rules.sections);
|
|
24948
|
+
let content = existingContent;
|
|
24949
|
+
if (content && !content.endsWith("\n")) {
|
|
24950
|
+
content += "\n";
|
|
24951
|
+
}
|
|
24952
|
+
if (content) {
|
|
24953
|
+
content += "\n";
|
|
24954
|
+
}
|
|
24955
|
+
content += rulesSection;
|
|
24956
|
+
return content.trim() + "\n";
|
|
24957
|
+
}
|
|
24958
|
+
extractExistingRules(content) {
|
|
24959
|
+
const ruleLines = content.split("\n").filter((line) => line.trim().startsWith("- "));
|
|
24960
|
+
return ruleLines.map((line) => line.replace(/^- /, "").trim()).filter((rule) => rule.length > 0);
|
|
24961
|
+
}
|
|
24962
|
+
extractExistingSections(content) {
|
|
24963
|
+
const lines = content.split("\n");
|
|
24964
|
+
const sections = [];
|
|
24965
|
+
let currentSection = null;
|
|
24966
|
+
for (const line of lines) {
|
|
24967
|
+
const trimmed = line.trim();
|
|
24968
|
+
if (trimmed.startsWith("## ") && trimmed.includes(" ")) {
|
|
24969
|
+
if (currentSection) {
|
|
24970
|
+
sections.push(currentSection);
|
|
24971
|
+
}
|
|
24972
|
+
const sectionName = trimmed.replace(/^##\s*/, "");
|
|
24973
|
+
currentSection = {
|
|
24974
|
+
templateId: sectionName.toLowerCase().replace(/\s+/g, "_"),
|
|
24975
|
+
templateName: sectionName,
|
|
24976
|
+
rules: []
|
|
24977
|
+
};
|
|
24978
|
+
} else if (currentSection && trimmed.startsWith("- ")) {
|
|
24979
|
+
const rule = trimmed.replace(/^- /, "");
|
|
24980
|
+
currentSection.rules.push(rule);
|
|
24981
|
+
}
|
|
24982
|
+
}
|
|
24983
|
+
if (currentSection) {
|
|
24984
|
+
sections.push(currentSection);
|
|
24985
|
+
}
|
|
24986
|
+
return sections;
|
|
24987
|
+
}
|
|
24988
|
+
generateRulesContent(sections) {
|
|
24989
|
+
let content = "";
|
|
24990
|
+
if (sections && sections.length > 0) {
|
|
24991
|
+
for (const ruleSection of sections) {
|
|
24992
|
+
content += `## ${ruleSection.templateName}\n\n`;
|
|
24993
|
+
for (const rule of ruleSection.rules) {
|
|
24994
|
+
content += `- ${rule}\n`;
|
|
24995
|
+
}
|
|
24996
|
+
content += "\n";
|
|
24997
|
+
}
|
|
24998
|
+
}
|
|
24999
|
+
return content;
|
|
25000
|
+
}
|
|
25001
|
+
async getMCPServers(projectPath) {
|
|
25002
|
+
const globalPath = this.getGlobalMcpPath();
|
|
25003
|
+
if (!globalPath) {
|
|
25004
|
+
return [];
|
|
25005
|
+
}
|
|
25006
|
+
const configContent = await readFileIfExists(globalPath);
|
|
25007
|
+
if (!configContent) {
|
|
25008
|
+
return [];
|
|
25009
|
+
}
|
|
25010
|
+
try {
|
|
25011
|
+
const config = JSON.parse(configContent);
|
|
25012
|
+
const servers = [];
|
|
25013
|
+
if (config.mcpServers) {
|
|
25014
|
+
for (const [name, serverConfig] of Object.entries(config.mcpServers)) {
|
|
25015
|
+
const server = {
|
|
25016
|
+
name,
|
|
25017
|
+
type: "stdio"
|
|
25018
|
+
};
|
|
25019
|
+
if (serverConfig.command) {
|
|
25020
|
+
server.command = serverConfig.command;
|
|
25021
|
+
}
|
|
25022
|
+
if (serverConfig.args) {
|
|
25023
|
+
server.args = serverConfig.args;
|
|
25024
|
+
}
|
|
25025
|
+
if (serverConfig.env) {
|
|
25026
|
+
server.env = serverConfig.env;
|
|
25027
|
+
}
|
|
25028
|
+
servers.push(server);
|
|
25029
|
+
}
|
|
25030
|
+
}
|
|
25031
|
+
return servers;
|
|
25032
|
+
} catch (error) {
|
|
25033
|
+
return [];
|
|
25034
|
+
}
|
|
25035
|
+
}
|
|
25036
|
+
}
|
|
25037
|
+
|
|
24865
25038
|
// dist/core/agentManager.js
|
|
24866
25039
|
class AgentManager {
|
|
24867
25040
|
agents = [];
|
|
@@ -24874,7 +25047,8 @@ class AgentManager {
|
|
|
24874
25047
|
new ClaudeDesktopAgent,
|
|
24875
25048
|
new CodexCliAgent,
|
|
24876
25049
|
new GeminiCliAgent,
|
|
24877
|
-
new CursorAgent
|
|
25050
|
+
new CursorAgent,
|
|
25051
|
+
new DroidAgent
|
|
24878
25052
|
];
|
|
24879
25053
|
}
|
|
24880
25054
|
getAllAgents() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentManager.d.ts","sourceRoot":"","sources":["../../src/core/agentManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agentManager.d.ts","sourceRoot":"","sources":["../../src/core/agentManager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;;IAM7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,YAAY,IAAI,KAAK,EAAE;IAIvB;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI3C;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAaxE;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IASjG;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAKhF;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAMjC;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzD;;OAEG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW/D;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE;CAMxE"}
|
|
@@ -3,6 +3,7 @@ import { ClaudeDesktopAgent } from '../agents/ClaudeDesktopAgent.js';
|
|
|
3
3
|
import { CodexCliAgent } from '../agents/CodexCliAgent.js';
|
|
4
4
|
import { GeminiCliAgent } from '../agents/GeminiCliAgent.js';
|
|
5
5
|
import { CursorAgent } from '../agents/CursorAgent.js';
|
|
6
|
+
import { DroidAgent } from '../agents/DroidAgent.js';
|
|
6
7
|
/**
|
|
7
8
|
* Manager class for AI coding agents
|
|
8
9
|
* Handles agent registration, detection, and selection
|
|
@@ -21,7 +22,8 @@ export class AgentManager {
|
|
|
21
22
|
new ClaudeDesktopAgent(),
|
|
22
23
|
new CodexCliAgent(),
|
|
23
24
|
new GeminiCliAgent(),
|
|
24
|
-
new CursorAgent()
|
|
25
|
+
new CursorAgent(),
|
|
26
|
+
new DroidAgent()
|
|
25
27
|
];
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentManager.js","sourceRoot":"","sources":["../../src/core/agentManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"agentManager.js","sourceRoot":"","sources":["../../src/core/agentManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/agentinit-1.5.0.tgz
DELETED
|
Binary file
|