@agentbrain/mcp-server 1.4.37 → 1.4.38
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.
|
@@ -7,6 +7,7 @@ export interface SaveContextInput {
|
|
|
7
7
|
export interface SaveContextOutput {
|
|
8
8
|
success: boolean;
|
|
9
9
|
files_written: string[];
|
|
10
|
+
agent_detected: 'cursor' | 'windsurf' | 'claude' | 'unknown';
|
|
10
11
|
message: string;
|
|
11
12
|
}
|
|
12
13
|
export declare function saveContext(input: SaveContextInput): Promise<SaveContextOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-context.d.ts","sourceRoot":"","sources":["../../src/tools/save-context.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"save-context.d.ts","sourceRoot":"","sources":["../../src/tools/save-context.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,cAAc,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC5D,OAAO,EAAE,MAAM,CAAA;CAChB;AAwGD,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwHrF;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CA0B7B,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// MCP tool: save_context - save agent-generated context to disk
|
|
2
|
-
import { writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { writeFile, mkdir, readFile } from 'node:fs/promises';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { join, resolve } from 'node:path';
|
|
5
5
|
import { homedir } from 'node:os';
|
|
6
|
-
import { getGitHash,
|
|
6
|
+
import { getGitHash, ensureGitignore } from '@agentbrain/core';
|
|
7
7
|
/**
|
|
8
8
|
* Expand path: handles ~, relative paths, etc.
|
|
9
9
|
*/
|
|
@@ -13,25 +13,112 @@ function expandPath(path) {
|
|
|
13
13
|
}
|
|
14
14
|
return resolve(path);
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Detect agent type from filesystem
|
|
18
|
+
*/
|
|
19
|
+
function detectAgentType(repoPath) {
|
|
20
|
+
if (existsSync(join(repoPath, '.cursor'))) {
|
|
21
|
+
return 'cursor';
|
|
22
|
+
}
|
|
23
|
+
if (existsSync(join(repoPath, '.windsurf'))) {
|
|
24
|
+
return 'windsurf';
|
|
25
|
+
}
|
|
26
|
+
if (existsSync(join(repoPath, 'CLAUDE.md'))) {
|
|
27
|
+
return 'claude';
|
|
28
|
+
}
|
|
29
|
+
return 'unknown';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get agent file content
|
|
33
|
+
*/
|
|
34
|
+
function getAgentFileContent(isModernFormat) {
|
|
35
|
+
const baseContent = `## AgentBrain Context
|
|
36
|
+
@.agentbrain/context.md
|
|
37
|
+
@.agentbrain/patterns.md
|
|
38
|
+
@.agentbrain/dependency-map.md
|
|
39
|
+
|
|
40
|
+
## Workflow
|
|
41
|
+
- Always read context at session start via load_context()
|
|
42
|
+
- Before any task: load_spec() or agentbrain spec "task"
|
|
43
|
+
- After commits: context auto-updates via git hook
|
|
44
|
+
- If stuck in a loop: detect_doom_loop() or agentbrain doom
|
|
45
|
+
- End of session: save_handoff() or agentbrain handoff
|
|
46
|
+
- If context feels stale: agentbrain init
|
|
47
|
+
|
|
48
|
+
## MCP Tools
|
|
49
|
+
- load_context() — full codebase context
|
|
50
|
+
- load_spec() — spec for current task
|
|
51
|
+
- detect_doom_loop() — check for stuck patterns
|
|
52
|
+
- save_handoff() — end of session handoff
|
|
53
|
+
- setup_repo() — first time MCP setup
|
|
54
|
+
- save_context() — save agent-generated context`;
|
|
55
|
+
if (isModernFormat) {
|
|
56
|
+
return `---
|
|
57
|
+
description: AgentBrain codebase context and workflow
|
|
58
|
+
alwaysApply: true
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
${baseContent}`;
|
|
62
|
+
}
|
|
63
|
+
return baseContent;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if agent file already contains AgentBrain section
|
|
67
|
+
*/
|
|
68
|
+
async function hasAgentBrainSection(filePath) {
|
|
69
|
+
if (!existsSync(filePath)) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const content = await readFile(filePath, 'utf-8');
|
|
73
|
+
return content.includes('── AgentBrain ──');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Append AgentBrain section to agent file
|
|
77
|
+
*/
|
|
78
|
+
async function appendToAgentFile(filePath, content) {
|
|
79
|
+
const marker = '# ── AgentBrain ──────────────────────────────';
|
|
80
|
+
const endMarker = '# ── End AgentBrain ──────────────────────────';
|
|
81
|
+
if (await hasAgentBrainSection(filePath)) {
|
|
82
|
+
return; // Already has AgentBrain section
|
|
83
|
+
}
|
|
84
|
+
let existingContent = '';
|
|
85
|
+
if (existsSync(filePath)) {
|
|
86
|
+
existingContent = await readFile(filePath, 'utf-8');
|
|
87
|
+
}
|
|
88
|
+
const agentBrainSection = `\n${marker}\n${content}\n${endMarker}\n`;
|
|
89
|
+
await writeFile(filePath, existingContent + agentBrainSection, 'utf-8');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create modern agent file (with frontmatter)
|
|
93
|
+
*/
|
|
94
|
+
async function createModernAgentFile(filePath, content) {
|
|
95
|
+
const dir = join(filePath, '..');
|
|
96
|
+
if (!existsSync(dir)) {
|
|
97
|
+
await mkdir(dir, { recursive: true });
|
|
98
|
+
}
|
|
99
|
+
// Modern files get replaced entirely (they're auto-loaded)
|
|
100
|
+
await writeFile(filePath, content, 'utf-8');
|
|
101
|
+
}
|
|
16
102
|
export async function saveContext(input) {
|
|
17
103
|
const { repo_path, context, dependency_map, patterns } = input;
|
|
18
104
|
// Expand path to handle ~, relative paths, etc.
|
|
19
105
|
const expandedPath = expandPath(repo_path);
|
|
20
106
|
const contextDir = join(expandedPath, '.agentbrain');
|
|
21
|
-
|
|
107
|
+
const filesWritten = [];
|
|
108
|
+
// Step 1: Create .agentbrain directory if it doesn't exist
|
|
22
109
|
if (!existsSync(contextDir)) {
|
|
23
110
|
await mkdir(contextDir, { recursive: true });
|
|
24
111
|
}
|
|
25
|
-
// Write the three context files
|
|
112
|
+
// Step 2: Write the three context files
|
|
26
113
|
const contextPath = join(contextDir, 'context.md');
|
|
27
114
|
const depMapPath = join(contextDir, 'dependency-map.md');
|
|
28
115
|
const patternsPath = join(contextDir, 'patterns.md');
|
|
29
116
|
await writeFile(contextPath, context, 'utf-8');
|
|
30
117
|
await writeFile(depMapPath, dependency_map, 'utf-8');
|
|
31
118
|
await writeFile(patternsPath, patterns, 'utf-8');
|
|
32
|
-
|
|
119
|
+
filesWritten.push('.agentbrain/context.md', '.agentbrain/dependency-map.md', '.agentbrain/patterns.md');
|
|
120
|
+
// Step 3: Get current git hash and write cache.json
|
|
33
121
|
const gitHash = await getGitHash(expandedPath);
|
|
34
|
-
// Create basic cache.json with git hash
|
|
35
122
|
const cachePath = join(contextDir, 'cache.json');
|
|
36
123
|
const cache = {
|
|
37
124
|
gitHash,
|
|
@@ -55,17 +142,69 @@ export async function saveContext(input) {
|
|
|
55
142
|
savedAt: new Date().toISOString(),
|
|
56
143
|
};
|
|
57
144
|
await writeFile(cachePath, JSON.stringify(cache, null, 2), 'utf-8');
|
|
58
|
-
|
|
59
|
-
|
|
145
|
+
filesWritten.push('.agentbrain/cache.json');
|
|
146
|
+
// Step 4: Update .gitignore
|
|
147
|
+
await ensureGitignore(expandedPath);
|
|
148
|
+
// Step 5: Detect agent type
|
|
149
|
+
const agentType = detectAgentType(expandedPath);
|
|
150
|
+
// Step 6: Create agent files based on detection
|
|
151
|
+
const modernContent = getAgentFileContent(true);
|
|
152
|
+
const legacyContent = getAgentFileContent(false);
|
|
153
|
+
if (agentType === 'cursor') {
|
|
154
|
+
// Create modern format
|
|
155
|
+
const modernPath = join(expandedPath, '.cursor', 'rules', 'agentbrain.mdc');
|
|
156
|
+
await createModernAgentFile(modernPath, modernContent);
|
|
157
|
+
filesWritten.push('.cursor/rules/agentbrain.mdc');
|
|
158
|
+
// Create legacy fallback
|
|
159
|
+
const legacyPath = join(expandedPath, '.cursorrules');
|
|
160
|
+
await appendToAgentFile(legacyPath, legacyContent);
|
|
161
|
+
filesWritten.push('.cursorrules');
|
|
162
|
+
}
|
|
163
|
+
else if (agentType === 'windsurf') {
|
|
164
|
+
// Create modern format (plain markdown, no frontmatter for Windsurf)
|
|
165
|
+
const modernPath = join(expandedPath, '.windsurf', 'rules', 'agentbrain.md');
|
|
166
|
+
await createModernAgentFile(modernPath, legacyContent); // Use legacyContent (no frontmatter)
|
|
167
|
+
filesWritten.push('.windsurf/rules/agentbrain.md');
|
|
168
|
+
// Create legacy fallback
|
|
169
|
+
const legacyPath = join(expandedPath, '.windsurfrules');
|
|
170
|
+
await appendToAgentFile(legacyPath, legacyContent);
|
|
171
|
+
filesWritten.push('.windsurfrules');
|
|
172
|
+
}
|
|
173
|
+
else if (agentType === 'claude') {
|
|
174
|
+
// Just create/append to CLAUDE.md
|
|
175
|
+
const claudePath = join(expandedPath, 'CLAUDE.md');
|
|
176
|
+
await appendToAgentFile(claudePath, legacyContent);
|
|
177
|
+
filesWritten.push('CLAUDE.md');
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Unknown - create all legacy files as safe default
|
|
181
|
+
const claudePath = join(expandedPath, 'CLAUDE.md');
|
|
182
|
+
const cursorPath = join(expandedPath, '.cursorrules');
|
|
183
|
+
const windsurfPath = join(expandedPath, '.windsurfrules');
|
|
184
|
+
await appendToAgentFile(claudePath, legacyContent);
|
|
185
|
+
await appendToAgentFile(cursorPath, legacyContent);
|
|
186
|
+
await appendToAgentFile(windsurfPath, legacyContent);
|
|
187
|
+
filesWritten.push('CLAUDE.md', '.cursorrules', '.windsurfrules');
|
|
188
|
+
}
|
|
189
|
+
// Step 7: Generate message
|
|
190
|
+
let message = '';
|
|
191
|
+
if (agentType === 'cursor') {
|
|
192
|
+
message = `Detected Cursor (.cursor/ directory found). Created .cursor/rules/agentbrain.mdc (modern, always applied) and .cursorrules (legacy fallback).`;
|
|
193
|
+
}
|
|
194
|
+
else if (agentType === 'windsurf') {
|
|
195
|
+
message = `Detected Windsurf (.windsurf/ directory found). Created .windsurf/rules/agentbrain.md (modern, always applied) and .windsurfrules (legacy fallback).`;
|
|
196
|
+
}
|
|
197
|
+
else if (agentType === 'claude') {
|
|
198
|
+
message = `Detected Claude (CLAUDE.md found). Updated CLAUDE.md with AgentBrain context loading instructions.`;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
message = `Could not detect your agent type. Created CLAUDE.md, .cursorrules, and .windsurfrules as a safe default. If you're using Cursor, .cursor/rules/agentbrain.mdc gives better performance. If Windsurf, use .windsurf/rules/agentbrain.md instead.`;
|
|
202
|
+
}
|
|
60
203
|
return {
|
|
61
204
|
success: true,
|
|
62
|
-
files_written:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
'.agentbrain/patterns.md',
|
|
66
|
-
'.agentbrain/cache.json',
|
|
67
|
-
],
|
|
68
|
-
message: 'Context saved successfully. load_context will now work without an API key.',
|
|
205
|
+
files_written: filesWritten,
|
|
206
|
+
agent_detected: agentType,
|
|
207
|
+
message: `Context saved successfully. ${message} load_context will now work without an API key.`,
|
|
69
208
|
};
|
|
70
209
|
}
|
|
71
210
|
export const saveContextSchema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-context.js","sourceRoot":"","sources":["../../src/tools/save-context.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"save-context.js","sourceRoot":"","sources":["../../src/tools/save-context.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED