@agentbrain/mcp-server 1.4.57 → 1.4.63
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/README.md +74 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.js +62 -32
- package/dist/index.js.map +1 -1
- package/dist/tools/load-context.d.ts.map +1 -1
- package/dist/tools/load-context.js +12 -4
- package/dist/tools/load-context.js.map +1 -1
- package/dist/tools/load-spec.d.ts +21 -8
- package/dist/tools/load-spec.d.ts.map +1 -1
- package/dist/tools/load-spec.js +244 -31
- package/dist/tools/load-spec.js.map +1 -1
- package/dist/tools/load-standards.d.ts +31 -0
- package/dist/tools/save-context.d.ts.map +1 -1
- package/dist/tools/save-context.js +9 -1
- package/dist/tools/save-context.js.map +1 -1
- package/dist/tools/scan-repo.d.ts +33 -0
- package/dist/tools/setup-repo.d.ts.map +1 -1
- package/dist/tools/setup-repo.js +6 -5
- package/dist/tools/setup-repo.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools/create-spec.d.ts +0 -33
- package/dist/tools/create-spec.d.ts.map +0 -1
- package/dist/tools/create-spec.js +0 -63
- package/dist/tools/create-spec.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Model Context Protocol (MCP) server for AgentBrain - connect your AI agent direc
|
|
|
4
4
|
|
|
5
5
|
## What is This?
|
|
6
6
|
|
|
7
|
-
This MCP server lets **Claude Desktop**, **Cursor**, and **Windsurf** access AgentBrain functionality directly from within your coding sessions. Your AI agent can automatically:
|
|
7
|
+
This MCP server lets **Claude Code**, **Claude Desktop**, **Cursor**, and **Windsurf** access AgentBrain functionality directly from within your coding sessions. Your AI agent can automatically:
|
|
8
8
|
|
|
9
9
|
- 🔍 Scan your repository structure
|
|
10
10
|
- 📖 Load comprehensive codebase context
|
|
@@ -27,6 +27,77 @@ npm install -g @agentbrain/mcp-server
|
|
|
27
27
|
|
|
28
28
|
## Setup by Platform
|
|
29
29
|
|
|
30
|
+
### 🔵 Claude Code
|
|
31
|
+
|
|
32
|
+
#### Step 1: Edit Claude Code MCP Config
|
|
33
|
+
|
|
34
|
+
**macOS/Linux:**
|
|
35
|
+
```bash
|
|
36
|
+
# Open in your text editor
|
|
37
|
+
code ~/.config/claude-code/mcp.json
|
|
38
|
+
|
|
39
|
+
# Or use nano
|
|
40
|
+
nano ~/.config/claude-code/mcp.json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Windows:**
|
|
44
|
+
```bash
|
|
45
|
+
# The config is at:
|
|
46
|
+
%USERPROFILE%\.config\claude-code\mcp.json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### Step 2: Add AgentBrain to Config
|
|
50
|
+
|
|
51
|
+
Add this configuration:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"mcpServers": {
|
|
56
|
+
"agentbrain": {
|
|
57
|
+
"command": "npx",
|
|
58
|
+
"args": ["-y", "@agentbrain/mcp-server"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**If you have other MCP servers already:**
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"filesystem": {
|
|
69
|
+
"command": "npx",
|
|
70
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
|
|
71
|
+
},
|
|
72
|
+
"agentbrain": {
|
|
73
|
+
"command": "npx",
|
|
74
|
+
"args": ["-y", "@agentbrain/mcp-server"]
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### Step 3: Restart Claude Code
|
|
81
|
+
|
|
82
|
+
Exit Claude Code completely and reopen it.
|
|
83
|
+
|
|
84
|
+
#### Step 4: Verify It's Working
|
|
85
|
+
|
|
86
|
+
1. Start a new session in Claude Code
|
|
87
|
+
2. Type `/mcp` or check MCP tools list
|
|
88
|
+
3. You should see "agentbrain" with 9 tools available
|
|
89
|
+
|
|
90
|
+
#### Step 5: Try It Out!
|
|
91
|
+
|
|
92
|
+
Ask Claude:
|
|
93
|
+
```
|
|
94
|
+
"Use the scan_repo tool to analyze my project at /Users/yourname/my-project"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Claude will automatically use the AgentBrain tools!
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
30
101
|
### 🟣 Claude Desktop
|
|
31
102
|
|
|
32
103
|
#### Step 1: Edit Claude Desktop Config
|
|
@@ -874,7 +945,8 @@ A: Yes! The MCP server works standalone. You can either:
|
|
|
874
945
|
- Use CLI once (`agentbrain init`) to generate context (requires API key)
|
|
875
946
|
|
|
876
947
|
**Q: Which agent is best?**
|
|
877
|
-
A: All
|
|
948
|
+
A: All four work great:
|
|
949
|
+
- **Claude Code** - Official CLI, excellent MCP support, fast and lightweight
|
|
878
950
|
- **Claude Desktop** - Native MCP support, excellent integration
|
|
879
951
|
- **Cursor** - Popular for coding, good MCP support
|
|
880
952
|
- **Windsurf** - Emerging option with MCP support
|
package/dist/index.d.ts
ADDED
package/dist/index.js
CHANGED
|
@@ -8,7 +8,6 @@ import { loadStandards, loadStandardsSchema } from './tools/load-standards.js';
|
|
|
8
8
|
import { loadContext, loadContextSchema } from './tools/load-context.js';
|
|
9
9
|
import { loadSpecTool, loadSpecSchema } from './tools/load-spec.js';
|
|
10
10
|
import { detectDoomLoop, detectDoomLoopSchema } from './tools/detect-doom-loop.js';
|
|
11
|
-
import { createSpecTool, createSpecSchema } from './tools/create-spec.js';
|
|
12
11
|
import { saveHandoff, saveHandoffSchema } from './tools/save-handoff.js';
|
|
13
12
|
import { setupRepo, setupRepoSchema } from './tools/setup-repo.js';
|
|
14
13
|
import { saveContext, saveContextSchema } from './tools/save-context.js';
|
|
@@ -32,12 +31,7 @@ async function checkBootstrap(repo_path) {
|
|
|
32
31
|
const expandedPath = expandPath(repo_path);
|
|
33
32
|
const contextDir = join(expandedPath, '.agentbrain');
|
|
34
33
|
if (!existsSync(contextDir)) {
|
|
35
|
-
return
|
|
36
|
-
'1. Call setup_repo() to scan the repo and get instructions\n' +
|
|
37
|
-
'2. Generate the three context documents based on what setup_repo returns\n' +
|
|
38
|
-
'3. Call save_context() with your generated content\n\n' +
|
|
39
|
-
'After that, this tool will work instantly with no API key needed.\n\n' +
|
|
40
|
-
'Alternative: Run `agentbrain setup` in your terminal (requires API key, one-time ~$0.03)');
|
|
34
|
+
return 'No .agentbrain found, setting up AgentBrain...';
|
|
41
35
|
}
|
|
42
36
|
return null;
|
|
43
37
|
}
|
|
@@ -61,7 +55,6 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
61
55
|
saveContextSchema,
|
|
62
56
|
loadSpecSchema,
|
|
63
57
|
detectDoomLoopSchema,
|
|
64
|
-
createSpecSchema,
|
|
65
58
|
saveHandoffSchema,
|
|
66
59
|
],
|
|
67
60
|
};
|
|
@@ -80,8 +73,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
80
73
|
case 'load_standards': {
|
|
81
74
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
82
75
|
if (bootstrap) {
|
|
76
|
+
const setupResult = await setupRepo({
|
|
77
|
+
repo_path: args.repo_path,
|
|
78
|
+
});
|
|
83
79
|
return {
|
|
84
|
-
content: [
|
|
80
|
+
content: [
|
|
81
|
+
{
|
|
82
|
+
type: 'text',
|
|
83
|
+
text: `No .agentbrain found, setting up AgentBrain...\n\n` +
|
|
84
|
+
`## File Tree\n${setupResult.file_tree}\n\n` +
|
|
85
|
+
`## Key Files\n\n` +
|
|
86
|
+
setupResult.key_files
|
|
87
|
+
.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``)
|
|
88
|
+
.join('\n\n') +
|
|
89
|
+
`\n\n## Instructions\n\n${setupResult.instructions}`,
|
|
90
|
+
},
|
|
91
|
+
],
|
|
85
92
|
};
|
|
86
93
|
}
|
|
87
94
|
const result = await loadStandards(args);
|
|
@@ -92,8 +99,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
92
99
|
case 'load_context': {
|
|
93
100
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
94
101
|
if (bootstrap) {
|
|
102
|
+
const setupResult = await setupRepo({
|
|
103
|
+
repo_path: args.repo_path,
|
|
104
|
+
});
|
|
95
105
|
return {
|
|
96
|
-
content: [
|
|
106
|
+
content: [
|
|
107
|
+
{
|
|
108
|
+
type: 'text',
|
|
109
|
+
text: `No .agentbrain found, setting up AgentBrain...\n\n` +
|
|
110
|
+
`## File Tree\n${setupResult.file_tree}\n\n` +
|
|
111
|
+
`## Key Files\n\n` +
|
|
112
|
+
setupResult.key_files
|
|
113
|
+
.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``)
|
|
114
|
+
.join('\n\n') +
|
|
115
|
+
`\n\n## Instructions\n\n${setupResult.instructions}`,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
97
118
|
};
|
|
98
119
|
}
|
|
99
120
|
const result = await loadContext(args);
|
|
@@ -107,20 +128,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
107
128
|
};
|
|
108
129
|
}
|
|
109
130
|
case 'load_spec': {
|
|
110
|
-
const bootstrap = await checkBootstrap(args.repoPath);
|
|
111
|
-
if (bootstrap) {
|
|
112
|
-
return {
|
|
113
|
-
content: [{ type: 'text', text: bootstrap }],
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
131
|
const result = await loadSpecTool(args);
|
|
117
132
|
return {
|
|
118
133
|
content: [
|
|
119
134
|
{
|
|
120
135
|
type: 'text',
|
|
121
|
-
text: result.
|
|
122
|
-
? `${result.content}\n\n---\n\n[Loaded spec: ${result.slug}]`
|
|
123
|
-
: result.content,
|
|
136
|
+
text: result.content,
|
|
124
137
|
},
|
|
125
138
|
],
|
|
126
139
|
};
|
|
@@ -128,8 +141,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
128
141
|
case 'detect_doom_loop': {
|
|
129
142
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
130
143
|
if (bootstrap) {
|
|
144
|
+
const setupResult = await setupRepo({
|
|
145
|
+
repo_path: args.repo_path,
|
|
146
|
+
});
|
|
131
147
|
return {
|
|
132
|
-
content: [
|
|
148
|
+
content: [
|
|
149
|
+
{
|
|
150
|
+
type: 'text',
|
|
151
|
+
text: `No .agentbrain found, setting up AgentBrain...\n\n` +
|
|
152
|
+
`## File Tree\n${setupResult.file_tree}\n\n` +
|
|
153
|
+
`## Key Files\n\n` +
|
|
154
|
+
setupResult.key_files
|
|
155
|
+
.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``)
|
|
156
|
+
.join('\n\n') +
|
|
157
|
+
`\n\n## Instructions\n\n${setupResult.instructions}`,
|
|
158
|
+
},
|
|
159
|
+
],
|
|
133
160
|
};
|
|
134
161
|
}
|
|
135
162
|
const result = await detectDoomLoop(args);
|
|
@@ -142,22 +169,25 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
142
169
|
],
|
|
143
170
|
};
|
|
144
171
|
}
|
|
145
|
-
case 'create_spec': {
|
|
146
|
-
const result = await createSpecTool(args);
|
|
147
|
-
return {
|
|
148
|
-
content: [
|
|
149
|
-
{
|
|
150
|
-
type: 'text',
|
|
151
|
-
text: `Spec saved to ${result.specPath}\nSlug: ${result.slug}`,
|
|
152
|
-
},
|
|
153
|
-
],
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
172
|
case 'save_handoff': {
|
|
157
173
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
158
174
|
if (bootstrap) {
|
|
175
|
+
const setupResult = await setupRepo({
|
|
176
|
+
repo_path: args.repo_path,
|
|
177
|
+
});
|
|
159
178
|
return {
|
|
160
|
-
content: [
|
|
179
|
+
content: [
|
|
180
|
+
{
|
|
181
|
+
type: 'text',
|
|
182
|
+
text: `No .agentbrain found, setting up AgentBrain...\n\n` +
|
|
183
|
+
`## File Tree\n${setupResult.file_tree}\n\n` +
|
|
184
|
+
`## Key Files\n\n` +
|
|
185
|
+
setupResult.key_files
|
|
186
|
+
.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``)
|
|
187
|
+
.join('\n\n') +
|
|
188
|
+
`\n\n## Instructions\n\n${setupResult.instructions}`,
|
|
189
|
+
},
|
|
190
|
+
],
|
|
161
191
|
};
|
|
162
192
|
}
|
|
163
193
|
const result = await saveHandoff(args);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,wBAAwB;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,wBAAwB;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAEpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,gDAAgD,CAAA;IACzD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,oBAAoB;AACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAA;AAED,iBAAiB;AACjB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE;YACL,cAAc;YACd,mBAAmB;YACnB,iBAAiB;YACjB,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,oBAAoB;YACpB,iBAAiB;SAClB;KACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAEhD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAgC,CAAC,CAAA;gBAC/D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAA;YACH,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAsC,CAAC,SAAS,CAAC,CAAA;gBACzF,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAsC,CAAC,SAAS;qBAC7D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAqC,CAAC,CAAA;gBACzE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;iBAClD,CAAA;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAoC,CAAC,SAAS,CAAC,CAAA;gBACvF,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAoC,CAAC,SAAS;qBAC3D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAmC,CAAC,CAAA;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,2BAA2B,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,kBAAkB,MAAM,CAAC,UAAU,GAAG;yBACxI;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAgC,CAAC,CAAA;gBACnE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM,CAAC,OAAO;yBACrB;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAuC,CAAC,SAAS,CAAC,CAAA;gBAC1F,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAuC,CAAC,SAAS;qBAC9D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAsC,CAAC,CAAA;gBAC3E,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAoC,CAAC,SAAS,CAAC,CAAA;gBACvF,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAoC,CAAC,SAAS;qBAC3D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAmC,CAAC,CAAA;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oBAAoB,MAAM,CAAC,QAAQ,EAAE;yBAC5C;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAiC,CAAC,CAAA;gBACjE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4CAA4C,MAAM,CAAC,SAAS,qBAAqB,MAAM,CAAC,SAAS,CAAC,MAAM,cAAc,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,MAAM,CAAC,YAAY,EAAE;yBACjQ;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAmC,CAAC,CAAA;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,uBAAuB,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBACnG;qBACF;iBACF,CAAA;YACH,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;QACxE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE/B,oEAAoE;IACpE,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-context.d.ts","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAA;AAazB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACxC;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"load-context.d.ts","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAA;AAazB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACxC;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuLrF;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAkB7B,CAAA"}
|
|
@@ -87,8 +87,9 @@ export async function loadContext(input) {
|
|
|
87
87
|
const isStale = cache && cache.gitHash !== currentGitHash;
|
|
88
88
|
// Check for doom loop warnings
|
|
89
89
|
const doomWarning = await getPendingDoomForMCP(expandedPath);
|
|
90
|
+
const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
|
|
90
91
|
return {
|
|
91
|
-
content: combined,
|
|
92
|
+
content: combined + footer,
|
|
92
93
|
fromCache: true,
|
|
93
94
|
tokensUsed: 0,
|
|
94
95
|
...(isStale && {
|
|
@@ -111,8 +112,9 @@ export async function loadContext(input) {
|
|
|
111
112
|
const isStale = cache && cache.gitHash !== currentGitHash;
|
|
112
113
|
// Check for doom loop warnings
|
|
113
114
|
const doomWarning = await getPendingDoomForMCP(expandedPath);
|
|
115
|
+
const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
|
|
114
116
|
return {
|
|
115
|
-
content: combined,
|
|
117
|
+
content: combined + footer,
|
|
116
118
|
fromCache: true,
|
|
117
119
|
tokensUsed: 0,
|
|
118
120
|
...(isStale && {
|
|
@@ -132,7 +134,12 @@ export async function loadContext(input) {
|
|
|
132
134
|
catch {
|
|
133
135
|
// No API key - return simple bootstrap message
|
|
134
136
|
return {
|
|
135
|
-
content: `
|
|
137
|
+
content: `AgentBrain context not found for this repository.
|
|
138
|
+
|
|
139
|
+
Run setup_repo to scan the repo and get setup instructions.
|
|
140
|
+
This is a one-time setup — future sessions load instantly.
|
|
141
|
+
|
|
142
|
+
Call: setup_repo({ repo_path: '${expandedPath}' })`,
|
|
136
143
|
fromCache: false,
|
|
137
144
|
tokensUsed: 0,
|
|
138
145
|
doom_warning: null,
|
|
@@ -150,8 +157,9 @@ export async function loadContext(input) {
|
|
|
150
157
|
// Check for doom loop warnings
|
|
151
158
|
const doomWarning = await getPendingDoomForMCP(expandedPath);
|
|
152
159
|
// Newly generated content is never stale
|
|
160
|
+
const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
|
|
153
161
|
return {
|
|
154
|
-
content: combined,
|
|
162
|
+
content: combined + footer,
|
|
155
163
|
fromCache: false,
|
|
156
164
|
tokensUsed: result.totalTokens,
|
|
157
165
|
doom_warning: doomWarning,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-context.js","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"load-context.js","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { type DoomWarningForMCP } from '@agentbrain/core';
|
|
2
1
|
export interface LoadSpecInput {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
repo_path?: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
search?: string;
|
|
5
|
+
group?: string;
|
|
6
|
+
all?: boolean;
|
|
5
7
|
}
|
|
6
8
|
export interface LoadSpecOutput {
|
|
7
9
|
content: string;
|
|
8
|
-
|
|
9
|
-
doom_warning?: DoomWarningForMCP | null;
|
|
10
|
+
found: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare const loadSpecSchema: {
|
|
12
13
|
name: string;
|
|
@@ -14,16 +15,28 @@ export declare const loadSpecSchema: {
|
|
|
14
15
|
inputSchema: {
|
|
15
16
|
type: string;
|
|
16
17
|
properties: {
|
|
17
|
-
|
|
18
|
+
repo_path: {
|
|
18
19
|
type: string;
|
|
19
20
|
description: string;
|
|
20
21
|
};
|
|
21
|
-
|
|
22
|
+
id: {
|
|
23
|
+
type: string;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
search: {
|
|
27
|
+
type: string;
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
group: {
|
|
31
|
+
type: string;
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
all: {
|
|
22
35
|
type: string;
|
|
23
36
|
description: string;
|
|
24
37
|
};
|
|
25
38
|
};
|
|
26
|
-
required:
|
|
39
|
+
required: never[];
|
|
27
40
|
};
|
|
28
41
|
};
|
|
29
42
|
export declare function loadSpecTool(input: LoadSpecInput): Promise<LoadSpecOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-spec.d.ts","sourceRoot":"","sources":["../../src/tools/load-spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load-spec.d.ts","sourceRoot":"","sources":["../../src/tools/load-spec.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;CACf;AA8CD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC1B,CAAA;AAiJD,wBAAsB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA0GhF"}
|
package/dist/tools/load-spec.js
CHANGED
|
@@ -1,57 +1,270 @@
|
|
|
1
|
-
// MCP tool: load_spec - Load specification files
|
|
2
|
-
import { listSpecs, loadSpec
|
|
1
|
+
// MCP tool: load_spec - Load specification files (local or cloud)
|
|
2
|
+
import { listSpecs, loadSpec } from '@agentbrain/core';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
5
|
+
import { join, dirname } from 'node:path';
|
|
6
|
+
import { homedir } from 'node:os';
|
|
7
|
+
// ══════════════════════════════════════════════════════════════
|
|
8
|
+
// Environment & Configuration
|
|
9
|
+
// ══════════════════════════════════════════════════════════════
|
|
10
|
+
const BASE_URL = process.env.AGENTBRAIN_API_BASE_URL?.replace(/\/$/, '') ??
|
|
11
|
+
'https://useagentbrain.com/api/v1';
|
|
12
|
+
const SPECS_URL = `${BASE_URL}/specs`;
|
|
13
|
+
/**
|
|
14
|
+
* Expand path: handles ~, relative paths, etc.
|
|
15
|
+
*/
|
|
16
|
+
function expandPath(path) {
|
|
17
|
+
if (path.startsWith('~/') || path === '~') {
|
|
18
|
+
return path.replace('~', homedir());
|
|
19
|
+
}
|
|
20
|
+
// Return absolute path
|
|
21
|
+
if (!path.startsWith('/')) {
|
|
22
|
+
return join(process.cwd(), path);
|
|
23
|
+
}
|
|
24
|
+
return path;
|
|
25
|
+
}
|
|
26
|
+
// ══════════════════════════════════════════════════════════════
|
|
27
|
+
// Schema
|
|
28
|
+
// ══════════════════════════════════════════════════════════════
|
|
3
29
|
export const loadSpecSchema = {
|
|
4
30
|
name: 'load_spec',
|
|
5
|
-
description: 'Load
|
|
31
|
+
description: 'Load spec for the current task.\n\n' +
|
|
32
|
+
'With AGENTBRAIN_API_KEY set in your MCP env:\n' +
|
|
33
|
+
' - No args → your assigned in_progress spec\n' +
|
|
34
|
+
' - id: "abc123" → spec by public ID (exact)\n' +
|
|
35
|
+
' - search: "stripe" → specs matching title/slug\n' +
|
|
36
|
+
' - group: "payments" → all specs in group\n' +
|
|
37
|
+
' - all: true → all specs assigned to you\n' +
|
|
38
|
+
' - Add repo_path to any call to cache locally\n\n' +
|
|
39
|
+
'Without AGENTBRAIN_API_KEY:\n' +
|
|
40
|
+
' - Reads from .agentbrain/specs/ on disk\n' +
|
|
41
|
+
' - repo_path required in local mode',
|
|
6
42
|
inputSchema: {
|
|
7
43
|
type: 'object',
|
|
8
44
|
properties: {
|
|
9
|
-
|
|
45
|
+
repo_path: {
|
|
46
|
+
type: 'string',
|
|
47
|
+
description: 'Optional: Absolute path to repository. If provided, caches spec to disk at .agentbrain/specs/',
|
|
48
|
+
},
|
|
49
|
+
id: {
|
|
10
50
|
type: 'string',
|
|
11
|
-
description: '
|
|
51
|
+
description: 'Optional: Fetch by public_id (exact match)',
|
|
12
52
|
},
|
|
13
|
-
|
|
53
|
+
search: {
|
|
14
54
|
type: 'string',
|
|
15
|
-
description: 'Optional:
|
|
55
|
+
description: 'Optional: Fetch by partial title or slug match (e.g., "stripe" matches "add-stripe-billing")',
|
|
56
|
+
},
|
|
57
|
+
group: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Optional: Fetch all specs in this group slug (e.g., "payments", "auth")',
|
|
60
|
+
},
|
|
61
|
+
all: {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
description: 'Optional: If true, fetch all specs assigned to user across all statuses',
|
|
16
64
|
},
|
|
17
65
|
},
|
|
18
|
-
required: [
|
|
66
|
+
required: [],
|
|
19
67
|
},
|
|
20
68
|
};
|
|
69
|
+
// ══════════════════════════════════════════════════════════════
|
|
70
|
+
// API Client
|
|
71
|
+
// ══════════════════════════════════════════════════════════════
|
|
72
|
+
async function fetchSpecs(apiKey, params) {
|
|
73
|
+
const url = new URL(SPECS_URL);
|
|
74
|
+
if (params.id)
|
|
75
|
+
url.searchParams.set('id', params.id);
|
|
76
|
+
if (params.search)
|
|
77
|
+
url.searchParams.set('search', params.search);
|
|
78
|
+
if (params.group)
|
|
79
|
+
url.searchParams.set('group', params.group);
|
|
80
|
+
if (params.all)
|
|
81
|
+
url.searchParams.set('all', 'true');
|
|
82
|
+
const res = await fetch(url.toString(), {
|
|
83
|
+
method: 'GET',
|
|
84
|
+
headers: {
|
|
85
|
+
Authorization: `Bearer ${apiKey}`,
|
|
86
|
+
'Content-Type': 'application/json',
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
const json = (await res.json());
|
|
90
|
+
if (res.status === 401) {
|
|
91
|
+
throw new Error('Invalid AGENTBRAIN_API_KEY. Check your MCP config env block.');
|
|
92
|
+
}
|
|
93
|
+
if (res.status === 429) {
|
|
94
|
+
throw new Error('Rate limit exceeded. Max 100 requests per minute.');
|
|
95
|
+
}
|
|
96
|
+
if (!res.ok) {
|
|
97
|
+
throw new Error(json.error ?? 'Failed to fetch spec from AgentBrain.');
|
|
98
|
+
}
|
|
99
|
+
return json;
|
|
100
|
+
}
|
|
101
|
+
// ══════════════════════════════════════════════════════════════
|
|
102
|
+
// Formatting
|
|
103
|
+
// ══════════════════════════════════════════════════════════════
|
|
104
|
+
function formatSpecs(specs) {
|
|
105
|
+
if (specs.length === 0) {
|
|
106
|
+
return 'No specs found.';
|
|
107
|
+
}
|
|
108
|
+
if (specs.length === 1) {
|
|
109
|
+
return formatSingleSpec(specs[0]);
|
|
110
|
+
}
|
|
111
|
+
return specs.map((s) => formatSingleSpec(s)).join('\n\n---\n\n');
|
|
112
|
+
}
|
|
113
|
+
function formatSingleSpec(spec) {
|
|
114
|
+
const group = spec.group ? `Group: ${spec.group.name}` : '';
|
|
115
|
+
const deps = spec.dependencies?.length
|
|
116
|
+
? '\n## Dependencies\n' +
|
|
117
|
+
spec.dependencies
|
|
118
|
+
.map((d) => {
|
|
119
|
+
const status = d.status === 'done' ? '✅' : '⚠ not complete';
|
|
120
|
+
const grp = d.group ? ` (${d.group.name})` : '';
|
|
121
|
+
return `- ${d.title}${grp} — ${status}`;
|
|
122
|
+
})
|
|
123
|
+
.join('\n')
|
|
124
|
+
: '';
|
|
125
|
+
const approach = Array.isArray(spec.answers.approach)
|
|
126
|
+
? spec.answers.approach.map((a) => `- ${a}`).join('\n')
|
|
127
|
+
: spec.answers.approach;
|
|
128
|
+
const outOfScope = spec.answers.out_of_scope?.length
|
|
129
|
+
? spec.answers.out_of_scope.map((o) => `- ${o}`).join('\n')
|
|
130
|
+
: 'None specified';
|
|
131
|
+
const doneCriteria = Array.isArray(spec.answers.done_criteria)
|
|
132
|
+
? spec.answers.done_criteria.map((d) => `- [ ] ${d}`).join('\n')
|
|
133
|
+
: spec.answers.done_criteria;
|
|
134
|
+
const risks = spec.answers.risks?.length
|
|
135
|
+
? spec.answers.risks.map((r) => `- ${r}`).join('\n')
|
|
136
|
+
: 'None identified';
|
|
137
|
+
const additionalInfo = spec.answers.additional_info
|
|
138
|
+
? `\n## Additional Info\n${spec.answers.additional_info}`
|
|
139
|
+
: '';
|
|
140
|
+
return `# ${spec.title}
|
|
141
|
+
${group}
|
|
142
|
+
Status: ${spec.status}
|
|
143
|
+
ID: ${spec.public_id}
|
|
144
|
+
|
|
145
|
+
## Problem
|
|
146
|
+
${spec.answers.problem}
|
|
147
|
+
|
|
148
|
+
## Approach
|
|
149
|
+
${approach}
|
|
150
|
+
|
|
151
|
+
## Out of Scope
|
|
152
|
+
${outOfScope}
|
|
153
|
+
|
|
154
|
+
## Done Criteria
|
|
155
|
+
${doneCriteria}
|
|
156
|
+
|
|
157
|
+
## Risks
|
|
158
|
+
${risks}
|
|
159
|
+
${additionalInfo}
|
|
160
|
+
${deps}`;
|
|
161
|
+
}
|
|
162
|
+
// ══════════════════════════════════════════════════════════════
|
|
163
|
+
// Cache to Disk
|
|
164
|
+
// ══════════════════════════════════════════════════════════════
|
|
165
|
+
async function cacheSpecsToDisk(repoPath, specs) {
|
|
166
|
+
const expandedPath = expandPath(repoPath);
|
|
167
|
+
const specsDir = join(expandedPath, '.agentbrain', 'specs');
|
|
168
|
+
await mkdir(specsDir, { recursive: true });
|
|
169
|
+
for (const spec of specs) {
|
|
170
|
+
// Group specs into subdirectory if group exists
|
|
171
|
+
const fileName = spec.group ? `${spec.group.slug}/${spec.slug}.md` : `${spec.slug}.md`;
|
|
172
|
+
const filePath = join(specsDir, fileName);
|
|
173
|
+
// Create group subdirectory if needed
|
|
174
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
175
|
+
// Write formatted markdown
|
|
176
|
+
await writeFile(filePath, formatSingleSpec(spec), 'utf-8');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// ══════════════════════════════════════════════════════════════
|
|
180
|
+
// Main Tool Function
|
|
181
|
+
// ══════════════════════════════════════════════════════════════
|
|
21
182
|
export async function loadSpecTool(input) {
|
|
22
|
-
const
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
183
|
+
const apiKey = process.env.AGENTBRAIN_API_KEY;
|
|
184
|
+
// ── Cloud mode ──────────────────────────────
|
|
185
|
+
if (apiKey) {
|
|
186
|
+
let response;
|
|
187
|
+
try {
|
|
188
|
+
response = await fetchSpecs(apiKey, {
|
|
189
|
+
id: input.id,
|
|
190
|
+
search: input.search,
|
|
191
|
+
group: input.group,
|
|
192
|
+
all: input.all,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
return {
|
|
197
|
+
content: err instanceof Error ? err.message : 'Failed to fetch spec.',
|
|
198
|
+
found: false,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
// No spec found
|
|
202
|
+
if (!response.data) {
|
|
203
|
+
return {
|
|
204
|
+
content: response.message ??
|
|
205
|
+
'No active spec found. Create or assign one at useagentbrain.com/specs',
|
|
206
|
+
found: false,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// Normalize to array
|
|
210
|
+
const specs = Array.isArray(response.data) ? response.data : [response.data];
|
|
211
|
+
// Cache to disk if repo_path provided
|
|
212
|
+
if (input.repo_path) {
|
|
213
|
+
await cacheSpecsToDisk(input.repo_path, specs);
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
content: formatSpecs(specs),
|
|
217
|
+
found: true,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
// ── Local mode ──────────────────────────────
|
|
221
|
+
if (!input.repo_path) {
|
|
222
|
+
return {
|
|
223
|
+
content: 'repo_path is required in local mode (no AGENTBRAIN_API_KEY set). ' +
|
|
224
|
+
'Provide the absolute path to your repository.',
|
|
225
|
+
found: false,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
const expandedPath = expandPath(input.repo_path);
|
|
229
|
+
const specsDir = join(expandedPath, '.agentbrain', 'specs');
|
|
230
|
+
if (!existsSync(specsDir)) {
|
|
231
|
+
return {
|
|
232
|
+
content: 'No specs found locally. .agentbrain/specs/ directory does not exist.\n\n' +
|
|
233
|
+
'To use cloud specs, set AGENTBRAIN_API_KEY in your MCP config env block.',
|
|
234
|
+
found: false,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
// If specific query provided in local mode, try to match by slug
|
|
238
|
+
if (input.id || input.search) {
|
|
239
|
+
const query = input.id || input.search || '';
|
|
240
|
+
const slug = query
|
|
241
|
+
.toLowerCase()
|
|
242
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
243
|
+
.replace(/^-+|-+$/g, '');
|
|
244
|
+
const content = await loadSpec(input.repo_path, slug);
|
|
245
|
+
if (!content) {
|
|
29
246
|
return {
|
|
30
|
-
content:
|
|
31
|
-
|
|
247
|
+
content: `Spec not found locally: ${slug}\n\nAvailable specs:\n${(await listSpecs(input.repo_path)).map((s) => `- ${s}`).join('\n')}`,
|
|
248
|
+
found: false,
|
|
32
249
|
};
|
|
33
250
|
}
|
|
34
251
|
return {
|
|
35
|
-
content
|
|
36
|
-
|
|
252
|
+
content,
|
|
253
|
+
found: true,
|
|
37
254
|
};
|
|
38
255
|
}
|
|
39
|
-
//
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
43
|
-
.replace(/^-+|-+$/g, '');
|
|
44
|
-
const content = await loadSpec(repoPath, slug);
|
|
45
|
-
if (!content) {
|
|
256
|
+
// List all local specs
|
|
257
|
+
const specs = await listSpecs(input.repo_path);
|
|
258
|
+
if (specs.length === 0) {
|
|
46
259
|
return {
|
|
47
|
-
content:
|
|
48
|
-
|
|
260
|
+
content: 'No specs found locally in .agentbrain/specs/\n\n' +
|
|
261
|
+
'To use cloud specs, set AGENTBRAIN_API_KEY in your MCP config env block.',
|
|
262
|
+
found: false,
|
|
49
263
|
};
|
|
50
264
|
}
|
|
51
265
|
return {
|
|
52
|
-
content,
|
|
53
|
-
|
|
54
|
-
doom_warning: doomWarning,
|
|
266
|
+
content: `Local specs:\n\n${specs.map((s) => `- ${s}`).join('\n')}\n\nTo load a spec, provide id or search parameter.`,
|
|
267
|
+
found: true,
|
|
55
268
|
};
|
|
56
269
|
}
|
|
57
270
|
//# sourceMappingURL=load-spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-spec.js","sourceRoot":"","sources":["../../src/tools/load-spec.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"load-spec.js","sourceRoot":"","sources":["../../src/tools/load-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AgentTarget } from '@agentbrain/core';
|
|
2
|
+
export interface LoadStandardsInput {
|
|
3
|
+
repo_path: string;
|
|
4
|
+
agent: AgentTarget;
|
|
5
|
+
}
|
|
6
|
+
export interface LoadStandardsOutput {
|
|
7
|
+
content: string;
|
|
8
|
+
filePath: string;
|
|
9
|
+
agent: AgentTarget;
|
|
10
|
+
}
|
|
11
|
+
export declare function loadStandards(input: LoadStandardsInput): Promise<LoadStandardsOutput>;
|
|
12
|
+
export declare const loadStandardsSchema: {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: string;
|
|
17
|
+
properties: {
|
|
18
|
+
repo_path: {
|
|
19
|
+
type: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
agent: {
|
|
23
|
+
type: string;
|
|
24
|
+
enum: string[];
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
required: string[];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=load-standards.d.ts.map
|
|
@@ -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,cAAc,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC5D,OAAO,EAAE,MAAM,CAAA;CAChB;AAgGD,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
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;AAgGD,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6IrF;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CA0B7B,CAAA"}
|
|
@@ -206,11 +206,19 @@ export async function saveContext(input) {
|
|
|
206
206
|
}
|
|
207
207
|
// Determine agent type for response
|
|
208
208
|
let detectedAgent = detectAgentType(expandedPath);
|
|
209
|
+
// Extract agent file name from message for cleaner output
|
|
210
|
+
const agentFile = message.split(' ').slice(-1)[0];
|
|
211
|
+
const responseMessage = `Context saved to .agentbrain/
|
|
212
|
+
|
|
213
|
+
Files written: ${filesWritten.join(', ')}
|
|
214
|
+
Agent file: ${agentFile}
|
|
215
|
+
|
|
216
|
+
Call load_context() to verify context loads correctly.`;
|
|
209
217
|
return {
|
|
210
218
|
success: true,
|
|
211
219
|
files_written: filesWritten,
|
|
212
220
|
agent_detected: detectedAgent,
|
|
213
|
-
message:
|
|
221
|
+
message: responseMessage,
|
|
214
222
|
};
|
|
215
223
|
}
|
|
216
224
|
export const saveContextSchema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-context.js","sourceRoot":"","sources":["../../src/tools/save-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"save-context.js","sourceRoot":"","sources":["../../src/tools/save-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ScanRepoInput {
|
|
2
|
+
repo_path: string;
|
|
3
|
+
max_files?: number;
|
|
4
|
+
}
|
|
5
|
+
export interface ScanRepoOutput {
|
|
6
|
+
totalFiles: number;
|
|
7
|
+
relevantFiles: Array<{
|
|
8
|
+
path: string;
|
|
9
|
+
language: string;
|
|
10
|
+
size: number;
|
|
11
|
+
}>;
|
|
12
|
+
scannedAt: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function scanRepo(input: ScanRepoInput): Promise<ScanRepoOutput>;
|
|
15
|
+
export declare const scanRepoSchema: {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
inputSchema: {
|
|
19
|
+
type: string;
|
|
20
|
+
properties: {
|
|
21
|
+
repo_path: {
|
|
22
|
+
type: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
max_files: {
|
|
26
|
+
type: string;
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
required: string[];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=scan-repo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-repo.d.ts","sourceRoot":"","sources":["../../src/tools/setup-repo.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;IACF,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"setup-repo.d.ts","sourceRoot":"","sources":["../../src/tools/setup-repo.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;IACF,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA6F/E;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAc3B,CAAA"}
|
package/dist/tools/setup-repo.js
CHANGED
|
@@ -17,18 +17,19 @@ export async function setupRepo(input) {
|
|
|
17
17
|
const expandedPath = expandPath(repo_path);
|
|
18
18
|
// Scan the repository to get relevant files
|
|
19
19
|
const scanResult = await scanRepository(expandedPath, { maxFiles: 30 });
|
|
20
|
-
// Build file tree visualization
|
|
20
|
+
// Build file tree visualization (limit to 100 lines)
|
|
21
21
|
const fileTree = scanResult.relevantFiles
|
|
22
|
-
.
|
|
22
|
+
.slice(0, 100)
|
|
23
|
+
.map((f) => f.path)
|
|
23
24
|
.join('\n');
|
|
24
|
-
// Read content of top files (
|
|
25
|
+
// Read content of top files (limit to 15 files, 500 chars each)
|
|
25
26
|
const keyFiles = [];
|
|
26
|
-
for (const file of scanResult.relevantFiles.slice(0,
|
|
27
|
+
for (const file of scanResult.relevantFiles.slice(0, 15)) {
|
|
27
28
|
const content = await readFileContent(expandedPath, file.path);
|
|
28
29
|
if (content !== null) {
|
|
29
30
|
keyFiles.push({
|
|
30
31
|
path: file.path,
|
|
31
|
-
content,
|
|
32
|
+
content: content.slice(0, 500) + (content.length > 500 ? '\n...(truncated)' : ''),
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-repo.js","sourceRoot":"","sources":["../../src/tools/setup-repo.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAqB;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAE3B,gDAAgD;IAChD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;IAE1C,4CAA4C;IAC5C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAEvE,
|
|
1
|
+
{"version":3,"file":"setup-repo.js","sourceRoot":"","sources":["../../src/tools/setup-repo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export interface CreateSpecInput {
|
|
2
|
-
repoPath: string;
|
|
3
|
-
task: string;
|
|
4
|
-
content: string;
|
|
5
|
-
}
|
|
6
|
-
export interface CreateSpecOutput {
|
|
7
|
-
specPath: string;
|
|
8
|
-
slug: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function createSpecTool(input: CreateSpecInput): Promise<CreateSpecOutput>;
|
|
11
|
-
export declare const createSpecSchema: {
|
|
12
|
-
name: string;
|
|
13
|
-
description: string;
|
|
14
|
-
inputSchema: {
|
|
15
|
-
type: string;
|
|
16
|
-
properties: {
|
|
17
|
-
repoPath: {
|
|
18
|
-
type: string;
|
|
19
|
-
description: string;
|
|
20
|
-
};
|
|
21
|
-
task: {
|
|
22
|
-
type: string;
|
|
23
|
-
description: string;
|
|
24
|
-
};
|
|
25
|
-
content: {
|
|
26
|
-
type: string;
|
|
27
|
-
description: string;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
required: string[];
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=create-spec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-spec.d.ts","sourceRoot":"","sources":["../../src/tools/create-spec.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoBtF;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAsB5B,CAAA"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// create-spec.ts - MCP tool to save spec content (no AI generation)
|
|
2
|
-
import { writeFile, mkdir } from 'node:fs/promises';
|
|
3
|
-
import { existsSync } from 'node:fs';
|
|
4
|
-
import { join, resolve } from 'node:path';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
6
|
-
/**
|
|
7
|
-
* Expand path: handles ~, relative paths, etc.
|
|
8
|
-
*/
|
|
9
|
-
function expandPath(path) {
|
|
10
|
-
if (path.startsWith('~/') || path === '~') {
|
|
11
|
-
return path.replace('~', homedir());
|
|
12
|
-
}
|
|
13
|
-
return resolve(path);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Convert task to slug format
|
|
17
|
-
*/
|
|
18
|
-
function slugify(text) {
|
|
19
|
-
return text
|
|
20
|
-
.toLowerCase()
|
|
21
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
22
|
-
.replace(/^-+|-+$/g, '');
|
|
23
|
-
}
|
|
24
|
-
export async function createSpecTool(input) {
|
|
25
|
-
const { repoPath, task, content } = input;
|
|
26
|
-
const expandedPath = expandPath(repoPath);
|
|
27
|
-
const slug = slugify(task);
|
|
28
|
-
// Ensure specs directory exists
|
|
29
|
-
const specsDir = join(expandedPath, '.agentbrain', 'specs');
|
|
30
|
-
if (!existsSync(specsDir)) {
|
|
31
|
-
await mkdir(specsDir, { recursive: true });
|
|
32
|
-
}
|
|
33
|
-
// Write spec file
|
|
34
|
-
const specPath = join(specsDir, `${slug}.md`);
|
|
35
|
-
await writeFile(specPath, content, 'utf-8');
|
|
36
|
-
return {
|
|
37
|
-
specPath: `.agentbrain/specs/${slug}.md`,
|
|
38
|
-
slug,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export const createSpecSchema = {
|
|
42
|
-
name: 'create_spec',
|
|
43
|
-
description: 'Save a task specification to disk. The agent provides the spec content (already written), and this tool saves it to .agentbrain/specs/<slug>.md. No AI calls - pure file write.',
|
|
44
|
-
inputSchema: {
|
|
45
|
-
type: 'object',
|
|
46
|
-
properties: {
|
|
47
|
-
repoPath: {
|
|
48
|
-
type: 'string',
|
|
49
|
-
description: 'Absolute path to the repository',
|
|
50
|
-
},
|
|
51
|
-
task: {
|
|
52
|
-
type: 'string',
|
|
53
|
-
description: 'Task name (will be slugified for filename)',
|
|
54
|
-
},
|
|
55
|
-
content: {
|
|
56
|
-
type: 'string',
|
|
57
|
-
description: 'Full spec content in markdown format (written by agent)',
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
required: ['repoPath', 'task', 'content'],
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=create-spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/tools/create-spec.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAC5B,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAsB;IACzD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAEzC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1B,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAC3D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,KAAK,CAAC,CAAA;IAC7C,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAE3C,OAAO;QACL,QAAQ,EAAE,qBAAqB,IAAI,KAAK;QACxC,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,iLAAiL;IACnL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yDAAyD;aACvE;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC;KAC1C;CACF,CAAA"}
|