agentinit 1.7.0 → 1.8.1
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 +33 -0
- package/README.md +127 -104
- package/dist/agents/Agent.d.ts +56 -0
- package/dist/agents/Agent.d.ts.map +1 -1
- package/dist/agents/Agent.js +133 -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 +138 -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 +37 -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 +36 -2
- 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 +42 -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 +135 -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 +36 -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 +42 -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 +40 -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 +135 -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 +130 -0
- package/dist/agents/ZedAgent.js.map +1 -0
- package/dist/cli.js +30724 -11949
- 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 +152 -3
- 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 +594 -105
- 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 +190 -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 +26 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/verifyMcp.js +1 -1
- package/dist/commands/verifyMcp.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/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/projectStandards.d.ts +18 -0
- package/dist/core/projectStandards.d.ts.map +1 -0
- package/dist/core/projectStandards.js +50 -0
- package/dist/core/projectStandards.js.map +1 -0
- package/dist/core/propagator.d.ts +9 -1
- package/dist/core/propagator.d.ts.map +1 -1
- package/dist/core/propagator.js +197 -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 +419 -0
- package/dist/core/skillsManager.js.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- 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/package.json +7 -2
- package/dist/agentinit-1.7.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
|
@@ -0,0 +1,135 @@
|
|
|
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: '.agents/skills/',
|
|
43
|
+
global: '~/.copilot/skills/',
|
|
44
|
+
},
|
|
45
|
+
projectStandards: {
|
|
46
|
+
rules: 'agents',
|
|
47
|
+
skills: 'agents',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
super(definition);
|
|
51
|
+
}
|
|
52
|
+
async applyMCPConfig(projectPath, servers) {
|
|
53
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
54
|
+
await ensureDirectoryExists(configPath);
|
|
55
|
+
const existingContent = await readFileIfExists(configPath);
|
|
56
|
+
let existingConfig = { servers: {} };
|
|
57
|
+
if (existingContent) {
|
|
58
|
+
try {
|
|
59
|
+
existingConfig = JSON.parse(existingContent);
|
|
60
|
+
if (!existingConfig.servers) {
|
|
61
|
+
existingConfig.servers = {};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
existingConfig = { servers: {} };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
for (const server of servers) {
|
|
69
|
+
const nextServer = {};
|
|
70
|
+
if (server.command)
|
|
71
|
+
nextServer.command = server.command;
|
|
72
|
+
if (server.args?.length)
|
|
73
|
+
nextServer.args = server.args;
|
|
74
|
+
if (server.env && Object.keys(server.env).length > 0)
|
|
75
|
+
nextServer.env = server.env;
|
|
76
|
+
if (server.url)
|
|
77
|
+
nextServer.url = server.url;
|
|
78
|
+
if (server.headers && Object.keys(server.headers).length > 0)
|
|
79
|
+
nextServer.headers = server.headers;
|
|
80
|
+
existingConfig.servers[server.name] = nextServer;
|
|
81
|
+
}
|
|
82
|
+
await writeFile(configPath, JSON.stringify(existingConfig, null, 2));
|
|
83
|
+
}
|
|
84
|
+
async removeMCPServer(projectPath, serverName) {
|
|
85
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
86
|
+
const content = await readFileIfExists(configPath);
|
|
87
|
+
if (!content)
|
|
88
|
+
return false;
|
|
89
|
+
try {
|
|
90
|
+
const config = JSON.parse(content);
|
|
91
|
+
if (!config.servers || !(serverName in config.servers))
|
|
92
|
+
return false;
|
|
93
|
+
delete config.servers[serverName];
|
|
94
|
+
await writeFile(configPath, JSON.stringify(config, null, 2));
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async getMCPServers(projectPath) {
|
|
102
|
+
const configPath = this.getNativeMcpPath(projectPath);
|
|
103
|
+
const content = await readFileIfExists(configPath);
|
|
104
|
+
if (!content)
|
|
105
|
+
return [];
|
|
106
|
+
try {
|
|
107
|
+
const config = JSON.parse(content);
|
|
108
|
+
const servers = [];
|
|
109
|
+
if (config.servers) {
|
|
110
|
+
for (const [name, serverConfig] of Object.entries(config.servers)) {
|
|
111
|
+
const server = {
|
|
112
|
+
name,
|
|
113
|
+
type: (serverConfig.command ? 'stdio' : 'http'),
|
|
114
|
+
};
|
|
115
|
+
if (serverConfig.command)
|
|
116
|
+
server.command = serverConfig.command;
|
|
117
|
+
if (serverConfig.args)
|
|
118
|
+
server.args = serverConfig.args;
|
|
119
|
+
if (serverConfig.env)
|
|
120
|
+
server.env = serverConfig.env;
|
|
121
|
+
if (serverConfig.url)
|
|
122
|
+
server.url = serverConfig.url;
|
|
123
|
+
if (serverConfig.headers)
|
|
124
|
+
server.headers = serverConfig.headers;
|
|
125
|
+
servers.push(server);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return servers;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# 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;;
|
|
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;;IAqEpC;;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,16 @@ 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: '.agents/skills/',
|
|
66
|
+
global: '~/.cursor/skills/'
|
|
67
|
+
},
|
|
68
|
+
projectStandards: {
|
|
69
|
+
rules: 'agents',
|
|
70
|
+
skills: 'agents',
|
|
71
|
+
},
|
|
62
72
|
};
|
|
63
73
|
super(definition);
|
|
64
74
|
}
|
|
@@ -116,6 +126,26 @@ export class CursorAgent extends Agent {
|
|
|
116
126
|
const configJson = JSON.stringify(existingConfig, null, 2);
|
|
117
127
|
await writeFile(mcpConfigPath, configJson);
|
|
118
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Remove an MCP server by name from Cursor's mcp.json
|
|
131
|
+
*/
|
|
132
|
+
async removeMCPServer(projectPath, serverName) {
|
|
133
|
+
const mcpConfigPath = this.getNativeMcpPath(projectPath);
|
|
134
|
+
const content = await readFileIfExists(mcpConfigPath);
|
|
135
|
+
if (!content)
|
|
136
|
+
return false;
|
|
137
|
+
try {
|
|
138
|
+
const config = JSON.parse(content);
|
|
139
|
+
if (!config.mcpServers || !(serverName in config.mcpServers))
|
|
140
|
+
return false;
|
|
141
|
+
delete config.mcpServers[serverName];
|
|
142
|
+
await writeFile(mcpConfigPath, JSON.stringify(config, null, 2));
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
119
149
|
/**
|
|
120
150
|
* Cursor supports all MCP server types, so no filtering needed
|
|
121
151
|
*/
|
|
@@ -132,35 +162,13 @@ export class CursorAgent extends Agent {
|
|
|
132
162
|
* Apply rules configuration to Cursor's .cursorrules format
|
|
133
163
|
*/
|
|
134
164
|
async applyRulesConfig(configPath, rules, existingContent) {
|
|
135
|
-
|
|
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';
|
|
165
|
+
return this.replaceMarkdownRulesSections(existingContent, rules.sections, /^#\s+(.+)$/);
|
|
158
166
|
}
|
|
159
167
|
/**
|
|
160
168
|
* Extract existing rule texts from .cursorrules content (ignoring headers and comments)
|
|
161
169
|
*/
|
|
162
170
|
extractExistingRules(content) {
|
|
163
|
-
return this.
|
|
171
|
+
return this.extractExistingSections(content).flatMap(section => section.rules);
|
|
164
172
|
}
|
|
165
173
|
/**
|
|
166
174
|
* Extract existing rule sections from .cursorrules content using # headers
|
|
@@ -174,7 +182,7 @@ export class CursorAgent extends Agent {
|
|
|
174
182
|
// Check if it's a section header
|
|
175
183
|
if (trimmed.startsWith('#') && trimmed.includes(' ')) {
|
|
176
184
|
// Start new section
|
|
177
|
-
if (currentSection) {
|
|
185
|
+
if (currentSection && currentSection.rules.length > 0) {
|
|
178
186
|
sections.push(currentSection);
|
|
179
187
|
}
|
|
180
188
|
const sectionName = trimmed.replace(/^#\s*/, '');
|
|
@@ -190,7 +198,7 @@ export class CursorAgent extends Agent {
|
|
|
190
198
|
}
|
|
191
199
|
}
|
|
192
200
|
// Add the last section
|
|
193
|
-
if (currentSection) {
|
|
201
|
+
if (currentSection && currentSection.rules.length > 0) {
|
|
194
202
|
sections.push(currentSection);
|
|
195
203
|
}
|
|
196
204
|
return sections;
|
|
@@ -212,20 +220,5 @@ export class CursorAgent extends Agent {
|
|
|
212
220
|
}
|
|
213
221
|
return content;
|
|
214
222
|
}
|
|
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
223
|
}
|
|
231
224
|
//# 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;
|
|
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;;
|
|
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;;IA8CnC;;;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,17 @@ 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: '.agents/skills/',
|
|
44
|
+
global: '~/.factory/skills/'
|
|
45
|
+
},
|
|
46
|
+
projectStandards: {
|
|
47
|
+
rules: 'agents',
|
|
48
|
+
skills: 'agents',
|
|
49
|
+
},
|
|
50
|
+
mcpConfigScope: 'global-only',
|
|
40
51
|
};
|
|
41
52
|
super(definition);
|
|
42
53
|
}
|
|
@@ -96,6 +107,31 @@ export class DroidAgent extends Agent {
|
|
|
96
107
|
const configJson = JSON.stringify(existingConfig, null, 2);
|
|
97
108
|
await writeFile(globalPath, configJson);
|
|
98
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Remove an MCP server — Droid always uses global config
|
|
112
|
+
*/
|
|
113
|
+
async removeMCPServer(_projectPath, serverName) {
|
|
114
|
+
return this.removeGlobalMCPServer(serverName);
|
|
115
|
+
}
|
|
116
|
+
async removeGlobalMCPServer(serverName) {
|
|
117
|
+
const globalPath = this.getGlobalMcpPath();
|
|
118
|
+
if (!globalPath)
|
|
119
|
+
return false;
|
|
120
|
+
const content = await readFileIfExists(globalPath);
|
|
121
|
+
if (!content)
|
|
122
|
+
return false;
|
|
123
|
+
try {
|
|
124
|
+
const config = JSON.parse(content);
|
|
125
|
+
if (!config.mcpServers || !(serverName in config.mcpServers))
|
|
126
|
+
return false;
|
|
127
|
+
delete config.mcpServers[serverName];
|
|
128
|
+
await writeFile(globalPath, JSON.stringify(config, null, 2));
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
99
135
|
/**
|
|
100
136
|
* Filter out non-stdio servers since Droid only supports stdio
|
|
101
137
|
*/
|
|
@@ -112,25 +148,13 @@ export class DroidAgent extends Agent {
|
|
|
112
148
|
* Apply rules configuration to AGENTS.md
|
|
113
149
|
*/
|
|
114
150
|
async applyRulesConfig(configPath, rules, existingContent) {
|
|
115
|
-
|
|
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';
|
|
151
|
+
return this.replaceMarkdownRulesSections(existingContent, rules.sections, /^##\s+(.+)$/);
|
|
126
152
|
}
|
|
127
153
|
/**
|
|
128
154
|
* Extract existing rule texts from AGENTS.md content
|
|
129
155
|
*/
|
|
130
156
|
extractExistingRules(content) {
|
|
131
|
-
|
|
132
|
-
const ruleLines = content.split('\n').filter(line => line.trim().startsWith('- '));
|
|
133
|
-
return ruleLines.map(line => line.replace(/^- /, '').trim()).filter(rule => rule.length > 0);
|
|
157
|
+
return this.extractExistingSections(content).flatMap(section => section.rules);
|
|
134
158
|
}
|
|
135
159
|
/**
|
|
136
160
|
* Extract existing rule sections from AGENTS.md content using ## headers
|
|
@@ -144,7 +168,7 @@ export class DroidAgent extends Agent {
|
|
|
144
168
|
// Check if it's a section header
|
|
145
169
|
if (trimmed.startsWith('## ') && trimmed.includes(' ')) {
|
|
146
170
|
// Start new section
|
|
147
|
-
if (currentSection) {
|
|
171
|
+
if (currentSection && currentSection.rules.length > 0) {
|
|
148
172
|
sections.push(currentSection);
|
|
149
173
|
}
|
|
150
174
|
const sectionName = trimmed.replace(/^##\s*/, '');
|
|
@@ -161,7 +185,7 @@ export class DroidAgent extends Agent {
|
|
|
161
185
|
}
|
|
162
186
|
}
|
|
163
187
|
// Add the last section
|
|
164
|
-
if (currentSection) {
|
|
188
|
+
if (currentSection && currentSection.rules.length > 0) {
|
|
165
189
|
sections.push(currentSection);
|
|
166
190
|
}
|
|
167
191
|
return sections;
|
|
@@ -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;;IA4CvC;;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,16 @@ 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: '.agents/skills/',
|
|
42
|
+
global: '~/.gemini/skills/'
|
|
43
|
+
},
|
|
44
|
+
projectStandards: {
|
|
45
|
+
skills: 'agents',
|
|
46
|
+
},
|
|
37
47
|
};
|
|
38
48
|
super(definition);
|
|
39
49
|
}
|
|
@@ -91,6 +101,26 @@ export class GeminiCliAgent extends Agent {
|
|
|
91
101
|
const configJson = JSON.stringify(existingConfig, null, 2);
|
|
92
102
|
await writeFile(settingsPath, configJson);
|
|
93
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Remove an MCP server by name from Gemini's settings.json
|
|
106
|
+
*/
|
|
107
|
+
async removeMCPServer(projectPath, serverName) {
|
|
108
|
+
const settingsPath = this.getNativeMcpPath(projectPath);
|
|
109
|
+
const content = await readFileIfExists(settingsPath);
|
|
110
|
+
if (!content)
|
|
111
|
+
return false;
|
|
112
|
+
try {
|
|
113
|
+
const config = JSON.parse(content);
|
|
114
|
+
if (!config.mcpServers || !(serverName in config.mcpServers))
|
|
115
|
+
return false;
|
|
116
|
+
delete config.mcpServers[serverName];
|
|
117
|
+
await writeFile(settingsPath, JSON.stringify(config, null, 2));
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
94
124
|
/**
|
|
95
125
|
* Gemini supports all MCP server types, so no filtering needed
|
|
96
126
|
*/
|
|
@@ -118,17 +148,19 @@ export class GeminiCliAgent extends Agent {
|
|
|
118
148
|
config = {};
|
|
119
149
|
}
|
|
120
150
|
}
|
|
121
|
-
|
|
122
|
-
if (!config.rules) {
|
|
123
|
-
config.rules = {};
|
|
124
|
-
}
|
|
125
|
-
// Convert rule sections to JSON structure
|
|
151
|
+
const nextRules = {};
|
|
126
152
|
for (const section of rules.sections) {
|
|
127
|
-
|
|
153
|
+
nextRules[section.templateId] = {
|
|
128
154
|
name: section.templateName,
|
|
129
155
|
rules: section.rules
|
|
130
156
|
};
|
|
131
157
|
}
|
|
158
|
+
if (Object.keys(nextRules).length > 0) {
|
|
159
|
+
config.rules = nextRules;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
delete config.rules;
|
|
163
|
+
}
|
|
132
164
|
return JSON.stringify(config, null, 2);
|
|
133
165
|
}
|
|
134
166
|
/**
|
|
@@ -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"}
|