@agentbrain/mcp-server 1.4.62 → 1.4.64
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/dist/index.d.ts +3 -0
- package/dist/index.js +61 -10
- package/dist/index.js.map +1 -1
- package/dist/tools/load-spec.js +5 -5
- package/dist/tools/load-spec.js.map +1 -1
- package/dist/tools/load-standards.d.ts +31 -0
- package/dist/tools/scan-repo.d.ts +33 -0
- package/package.json +1 -1
- package/dist/tools/create-spec.d.ts +0 -76
- package/dist/tools/create-spec.d.ts.map +0 -1
- package/dist/tools/create-spec.js +0 -270
- package/dist/tools/create-spec.js.map +0 -1
package/dist/index.d.ts
ADDED
package/dist/index.js
CHANGED
|
@@ -31,12 +31,7 @@ async function checkBootstrap(repo_path) {
|
|
|
31
31
|
const expandedPath = expandPath(repo_path);
|
|
32
32
|
const contextDir = join(expandedPath, '.agentbrain');
|
|
33
33
|
if (!existsSync(contextDir)) {
|
|
34
|
-
return
|
|
35
|
-
'1. Call setup_repo() to scan the repo and get instructions\n' +
|
|
36
|
-
'2. Generate the three context documents based on what setup_repo returns\n' +
|
|
37
|
-
'3. Call save_context() with your generated content\n\n' +
|
|
38
|
-
'After that, this tool will work instantly with no API key needed.\n\n' +
|
|
39
|
-
'Alternative: Run `agentbrain setup` in your terminal (requires API key, one-time ~$0.03)');
|
|
34
|
+
return 'No .agentbrain found, setting up AgentBrain...';
|
|
40
35
|
}
|
|
41
36
|
return null;
|
|
42
37
|
}
|
|
@@ -78,8 +73,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
78
73
|
case 'load_standards': {
|
|
79
74
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
80
75
|
if (bootstrap) {
|
|
76
|
+
const setupResult = await setupRepo({
|
|
77
|
+
repo_path: args.repo_path,
|
|
78
|
+
});
|
|
81
79
|
return {
|
|
82
|
-
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
|
+
],
|
|
83
92
|
};
|
|
84
93
|
}
|
|
85
94
|
const result = await loadStandards(args);
|
|
@@ -90,8 +99,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
90
99
|
case 'load_context': {
|
|
91
100
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
92
101
|
if (bootstrap) {
|
|
102
|
+
const setupResult = await setupRepo({
|
|
103
|
+
repo_path: args.repo_path,
|
|
104
|
+
});
|
|
93
105
|
return {
|
|
94
|
-
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
|
+
],
|
|
95
118
|
};
|
|
96
119
|
}
|
|
97
120
|
const result = await loadContext(args);
|
|
@@ -118,8 +141,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
118
141
|
case 'detect_doom_loop': {
|
|
119
142
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
120
143
|
if (bootstrap) {
|
|
144
|
+
const setupResult = await setupRepo({
|
|
145
|
+
repo_path: args.repo_path,
|
|
146
|
+
});
|
|
121
147
|
return {
|
|
122
|
-
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
|
+
],
|
|
123
160
|
};
|
|
124
161
|
}
|
|
125
162
|
const result = await detectDoomLoop(args);
|
|
@@ -135,8 +172,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
135
172
|
case 'save_handoff': {
|
|
136
173
|
const bootstrap = await checkBootstrap(args.repo_path);
|
|
137
174
|
if (bootstrap) {
|
|
175
|
+
const setupResult = await setupRepo({
|
|
176
|
+
repo_path: args.repo_path,
|
|
177
|
+
});
|
|
138
178
|
return {
|
|
139
|
-
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
|
+
],
|
|
140
191
|
};
|
|
141
192
|
}
|
|
142
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,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/load-spec.js
CHANGED
|
@@ -44,23 +44,23 @@ export const loadSpecSchema = {
|
|
|
44
44
|
properties: {
|
|
45
45
|
repo_path: {
|
|
46
46
|
type: 'string',
|
|
47
|
-
description: '
|
|
47
|
+
description: 'Absolute path to repo. If provided, caches fetched spec to disk at .agentbrain/specs/',
|
|
48
48
|
},
|
|
49
49
|
id: {
|
|
50
50
|
type: 'string',
|
|
51
|
-
description: '
|
|
51
|
+
description: 'Fetch by public_id (exact match)',
|
|
52
52
|
},
|
|
53
53
|
search: {
|
|
54
54
|
type: 'string',
|
|
55
|
-
description: '
|
|
55
|
+
description: 'Partial match on title or slug. e.g. "stripe" matches "add-stripe-billing"',
|
|
56
56
|
},
|
|
57
57
|
group: {
|
|
58
58
|
type: 'string',
|
|
59
|
-
description: '
|
|
59
|
+
description: 'Fetch all specs in this group slug. e.g. "payments", "auth"',
|
|
60
60
|
},
|
|
61
61
|
all: {
|
|
62
62
|
type: 'boolean',
|
|
63
|
-
description: '
|
|
63
|
+
description: 'If true, fetch all specs assigned to you across all statuses',
|
|
64
64
|
},
|
|
65
65
|
},
|
|
66
66
|
required: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-spec.js","sourceRoot":"","sources":["../../src/tools/load-spec.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,iEAAiE;AACjE,8BAA8B;AAC9B,iEAAiE;AAEjE,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACvD,kCAAkC,CAAA;AAEpC,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAA;AAErC;;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,uBAAuB;IACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AA2DD,iEAAiE;AACjE,SAAS;AACT,iEAAiE;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,qCAAqC;QACrC,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,oDAAoD;QACpD,8CAA8C;QAC9C,6CAA6C;QAC7C,oDAAoD;QACpD,+BAA+B;QAC/B,6CAA6C;QAC7C,sCAAsC;IACxC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE
|
|
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
|
|
@@ -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
|
package/package.json
CHANGED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
export interface SpecAnswers {
|
|
2
|
-
problem: string;
|
|
3
|
-
approach: string;
|
|
4
|
-
out_of_scope: string;
|
|
5
|
-
done_criteria: string;
|
|
6
|
-
risks: string;
|
|
7
|
-
}
|
|
8
|
-
export interface CreateSpecInput {
|
|
9
|
-
repo_path: string;
|
|
10
|
-
task: string;
|
|
11
|
-
answers?: SpecAnswers;
|
|
12
|
-
}
|
|
13
|
-
export interface QuestionsOutput {
|
|
14
|
-
mode: 'questions';
|
|
15
|
-
task: string;
|
|
16
|
-
questions: Array<{
|
|
17
|
-
id: string;
|
|
18
|
-
question: string;
|
|
19
|
-
}>;
|
|
20
|
-
instruction: string;
|
|
21
|
-
}
|
|
22
|
-
export interface SaveOutput {
|
|
23
|
-
mode: 'save';
|
|
24
|
-
success: true;
|
|
25
|
-
spec_path: string;
|
|
26
|
-
slug: string;
|
|
27
|
-
message: string;
|
|
28
|
-
}
|
|
29
|
-
export type CreateSpecOutput = QuestionsOutput | SaveOutput;
|
|
30
|
-
export declare function createSpecTool(input: CreateSpecInput): Promise<CreateSpecOutput>;
|
|
31
|
-
export declare const createSpecSchema: {
|
|
32
|
-
name: string;
|
|
33
|
-
description: string;
|
|
34
|
-
inputSchema: {
|
|
35
|
-
type: string;
|
|
36
|
-
properties: {
|
|
37
|
-
repo_path: {
|
|
38
|
-
type: string;
|
|
39
|
-
description: string;
|
|
40
|
-
};
|
|
41
|
-
task: {
|
|
42
|
-
type: string;
|
|
43
|
-
description: string;
|
|
44
|
-
};
|
|
45
|
-
answers: {
|
|
46
|
-
type: string;
|
|
47
|
-
description: string;
|
|
48
|
-
properties: {
|
|
49
|
-
problem: {
|
|
50
|
-
type: string;
|
|
51
|
-
description: string;
|
|
52
|
-
};
|
|
53
|
-
approach: {
|
|
54
|
-
type: string;
|
|
55
|
-
description: string;
|
|
56
|
-
};
|
|
57
|
-
out_of_scope: {
|
|
58
|
-
type: string;
|
|
59
|
-
description: string;
|
|
60
|
-
};
|
|
61
|
-
done_criteria: {
|
|
62
|
-
type: string;
|
|
63
|
-
description: string;
|
|
64
|
-
};
|
|
65
|
-
risks: {
|
|
66
|
-
type: string;
|
|
67
|
-
description: string;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
required: string[];
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
required: string[];
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
//# 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":"AAsDA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,UAAU,CAAA;AA4J3D,wBAAsB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkDtF;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C5B,CAAA"}
|
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
// create-spec.ts - MCP tool for spec generation (no API key required)
|
|
2
|
-
import { writeFile, mkdir, readFile } from 'node:fs/promises';
|
|
3
|
-
import { existsSync } from 'node:fs';
|
|
4
|
-
import { join, resolve, basename } from 'node:path';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
6
|
-
import { getAgentFilePath } from '@agentbrain/core';
|
|
7
|
-
/**
|
|
8
|
-
* Expand path: handles ~, relative paths, etc.
|
|
9
|
-
*/
|
|
10
|
-
function expandPath(path) {
|
|
11
|
-
if (path.startsWith('~/') || path === '~') {
|
|
12
|
-
return path.replace('~', homedir());
|
|
13
|
-
}
|
|
14
|
-
return resolve(path);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Convert task to slug format
|
|
18
|
-
*/
|
|
19
|
-
function slugify(text) {
|
|
20
|
-
return text
|
|
21
|
-
.toLowerCase()
|
|
22
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
23
|
-
.replace(/^-+|-+$/g, '');
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* The 5 questions for spec generation
|
|
27
|
-
*/
|
|
28
|
-
const SPEC_QUESTIONS = [
|
|
29
|
-
{
|
|
30
|
-
id: 'problem',
|
|
31
|
-
question: 'What problem does this solve? (1-2 sentences)',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
id: 'approach',
|
|
35
|
-
question: "What's your approach or implementation idea? (or 'not sure yet')",
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
id: 'out_of_scope',
|
|
39
|
-
question: 'What should the agent NOT touch or change?',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
id: 'done_criteria',
|
|
43
|
-
question: 'What does "done" look like? (acceptance criteria)',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
id: 'risks',
|
|
47
|
-
question: 'Any edge cases or risks to consider?',
|
|
48
|
-
},
|
|
49
|
-
];
|
|
50
|
-
/**
|
|
51
|
-
* Generate task checklist from user answers (derives tasks directly from what user said)
|
|
52
|
-
*/
|
|
53
|
-
function generateTaskChecklist(answers) {
|
|
54
|
-
const tasks = [];
|
|
55
|
-
// 1. Always start with spec review
|
|
56
|
-
tasks.push('Review this spec before writing any code');
|
|
57
|
-
// 2. Break down the approach into implementation tasks
|
|
58
|
-
// Split approach by sentences/commas and create a task for each
|
|
59
|
-
const approachParts = answers.approach
|
|
60
|
-
.split(/[.,\n]/)
|
|
61
|
-
.map((s) => s.trim())
|
|
62
|
-
.filter((s) => s.length > 5);
|
|
63
|
-
approachParts.forEach((part) => {
|
|
64
|
-
tasks.push(`Implement: ${part}`);
|
|
65
|
-
});
|
|
66
|
-
// 3. Break done_criteria into verification tasks
|
|
67
|
-
// Each acceptance criterion becomes a verification task
|
|
68
|
-
const criteriaParts = answers.done_criteria
|
|
69
|
-
.split(/[.,\n]/)
|
|
70
|
-
.map((s) => s.trim())
|
|
71
|
-
.filter((s) => s.length > 5);
|
|
72
|
-
criteriaParts.forEach((part) => {
|
|
73
|
-
tasks.push(`Verify: ${part}`);
|
|
74
|
-
});
|
|
75
|
-
// 4. Turn risks into mitigation tasks
|
|
76
|
-
const riskParts = answers.risks
|
|
77
|
-
.split(/[.,\n]/)
|
|
78
|
-
.map((s) => s.trim())
|
|
79
|
-
.filter((s) => s.length > 5 &&
|
|
80
|
-
!s.toLowerCase().includes('none') &&
|
|
81
|
-
!s.toLowerCase().includes('n/a'));
|
|
82
|
-
riskParts.forEach((part) => {
|
|
83
|
-
tasks.push(`Handle edge case: ${part}`);
|
|
84
|
-
});
|
|
85
|
-
// 5. Always end with testing
|
|
86
|
-
tasks.push('Write tests for the implementation');
|
|
87
|
-
tasks.push('Verify all acceptance criteria pass');
|
|
88
|
-
return tasks;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Generate spec content from answers using template (no AI required)
|
|
92
|
-
*/
|
|
93
|
-
function generateSpecFromTemplate(task, answers, repoPath) {
|
|
94
|
-
const date = new Date().toISOString().split('T')[0];
|
|
95
|
-
const repo = basename(repoPath);
|
|
96
|
-
// Convert done_criteria to checklist format if not already
|
|
97
|
-
const doneCriteria = answers.done_criteria
|
|
98
|
-
.split('\n')
|
|
99
|
-
.map((line) => {
|
|
100
|
-
const trimmed = line.trim();
|
|
101
|
-
if (!trimmed)
|
|
102
|
-
return '';
|
|
103
|
-
if (trimmed.startsWith('- [ ]') || trimmed.startsWith('-'))
|
|
104
|
-
return trimmed;
|
|
105
|
-
return `- [ ] ${trimmed}`;
|
|
106
|
-
})
|
|
107
|
-
.filter((line) => line)
|
|
108
|
-
.join('\n');
|
|
109
|
-
// Convert risks to bullet format if not already
|
|
110
|
-
const risks = answers.risks
|
|
111
|
-
.split('\n')
|
|
112
|
-
.map((line) => {
|
|
113
|
-
const trimmed = line.trim();
|
|
114
|
-
if (!trimmed)
|
|
115
|
-
return '';
|
|
116
|
-
if (trimmed.startsWith('-'))
|
|
117
|
-
return trimmed;
|
|
118
|
-
return `- ${trimmed}`;
|
|
119
|
-
})
|
|
120
|
-
.filter((line) => line)
|
|
121
|
-
.join('\n');
|
|
122
|
-
// Convert approach to implementation notes
|
|
123
|
-
const implementationNotes = answers.approach
|
|
124
|
-
.split('\n')
|
|
125
|
-
.map((line) => {
|
|
126
|
-
const trimmed = line.trim();
|
|
127
|
-
if (!trimmed)
|
|
128
|
-
return '';
|
|
129
|
-
if (trimmed.startsWith('-'))
|
|
130
|
-
return trimmed;
|
|
131
|
-
return `- ${trimmed}`;
|
|
132
|
-
})
|
|
133
|
-
.filter((line) => line)
|
|
134
|
-
.join('\n');
|
|
135
|
-
// Generate dynamic task checklist from answers
|
|
136
|
-
const taskChecklist = generateTaskChecklist(answers)
|
|
137
|
-
.map((task) => `- [ ] ${task}`)
|
|
138
|
-
.join('\n');
|
|
139
|
-
return `# Spec: ${task}
|
|
140
|
-
|
|
141
|
-
*Created: ${date} | Repo: ${repo}*
|
|
142
|
-
|
|
143
|
-
## Problem
|
|
144
|
-
${answers.problem}
|
|
145
|
-
|
|
146
|
-
## Scope
|
|
147
|
-
**Out of scope:** ${answers.out_of_scope}
|
|
148
|
-
|
|
149
|
-
## Acceptance Criteria
|
|
150
|
-
${doneCriteria}
|
|
151
|
-
|
|
152
|
-
## Risks & Edge Cases
|
|
153
|
-
${risks}
|
|
154
|
-
|
|
155
|
-
## Implementation Notes
|
|
156
|
-
${implementationNotes}
|
|
157
|
-
|
|
158
|
-
## Task Checklist
|
|
159
|
-
${taskChecklist}
|
|
160
|
-
`;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Inject spec reference into detected agent file
|
|
164
|
-
*/
|
|
165
|
-
async function injectSpecReference(repoPath, slug) {
|
|
166
|
-
const agentFilePath = getAgentFilePath(repoPath);
|
|
167
|
-
const specPath = `.agentbrain/specs/${slug}.md`;
|
|
168
|
-
const reference = `---
|
|
169
|
-
|
|
170
|
-
**Active Spec:** Read \`${specPath}\` before implementing this feature.
|
|
171
|
-
`;
|
|
172
|
-
// Create agent file if it doesn't exist
|
|
173
|
-
if (!existsSync(agentFilePath)) {
|
|
174
|
-
await writeFile(agentFilePath, reference, 'utf-8');
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
// Append spec reference if not already present
|
|
178
|
-
const content = await readFile(agentFilePath, 'utf-8');
|
|
179
|
-
if (!content.includes(`**Active Spec:** Read \`${specPath}\``)) {
|
|
180
|
-
const separator = content.endsWith('\n') ? '\n' : '\n\n';
|
|
181
|
-
await writeFile(agentFilePath, content + separator + reference, 'utf-8');
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
export async function createSpecTool(input) {
|
|
185
|
-
const { repo_path, task, answers } = input;
|
|
186
|
-
const expandedPath = expandPath(repo_path);
|
|
187
|
-
// MODE 1: Questions mode - return questions for agent to ask
|
|
188
|
-
if (!answers) {
|
|
189
|
-
return {
|
|
190
|
-
mode: 'questions',
|
|
191
|
-
task,
|
|
192
|
-
questions: SPEC_QUESTIONS,
|
|
193
|
-
instruction: 'Ask the user these 5 questions, then call create_spec again with the answers.',
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
// MODE 2: Save mode - generate spec from answers and save
|
|
197
|
-
const slug = slugify(task);
|
|
198
|
-
// Ensure specs directory exists
|
|
199
|
-
const specsDir = join(expandedPath, '.agentbrain', 'specs');
|
|
200
|
-
if (!existsSync(specsDir)) {
|
|
201
|
-
await mkdir(specsDir, { recursive: true });
|
|
202
|
-
}
|
|
203
|
-
// Generate spec content from template
|
|
204
|
-
const specContent = generateSpecFromTemplate(task, answers, expandedPath);
|
|
205
|
-
// Write spec file
|
|
206
|
-
const specPath = join(specsDir, `${slug}.md`);
|
|
207
|
-
await writeFile(specPath, specContent, 'utf-8');
|
|
208
|
-
// Inject reference into detected agent file
|
|
209
|
-
await injectSpecReference(expandedPath, slug);
|
|
210
|
-
// Get which file was updated for user message
|
|
211
|
-
const agentFilePath = getAgentFilePath(expandedPath);
|
|
212
|
-
const agentFileName = basename(agentFilePath);
|
|
213
|
-
return {
|
|
214
|
-
mode: 'save',
|
|
215
|
-
success: true,
|
|
216
|
-
spec_path: `.agentbrain/specs/${slug}.md`,
|
|
217
|
-
slug,
|
|
218
|
-
message: `Spec saved to .agentbrain/specs/${slug}.md
|
|
219
|
-
|
|
220
|
-
Reference added to ${agentFileName}
|
|
221
|
-
|
|
222
|
-
Next: Review the spec and start implementing!`,
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
export const createSpecSchema = {
|
|
226
|
-
name: 'create_spec',
|
|
227
|
-
description: 'Create structured spec for a task. Two modes: (1) Questions mode - call without answers to get 5 questions for the user. (2) Save mode - call with answers to generate and save the spec. No API key required.',
|
|
228
|
-
inputSchema: {
|
|
229
|
-
type: 'object',
|
|
230
|
-
properties: {
|
|
231
|
-
repo_path: {
|
|
232
|
-
type: 'string',
|
|
233
|
-
description: 'Absolute path to the repository',
|
|
234
|
-
},
|
|
235
|
-
task: {
|
|
236
|
-
type: 'string',
|
|
237
|
-
description: 'Task description (e.g., "add stripe billing")',
|
|
238
|
-
},
|
|
239
|
-
answers: {
|
|
240
|
-
type: 'object',
|
|
241
|
-
description: 'Answers to the 5 spec questions (omit to get questions first)',
|
|
242
|
-
properties: {
|
|
243
|
-
problem: {
|
|
244
|
-
type: 'string',
|
|
245
|
-
description: 'What problem does this solve?',
|
|
246
|
-
},
|
|
247
|
-
approach: {
|
|
248
|
-
type: 'string',
|
|
249
|
-
description: 'Implementation approach or idea',
|
|
250
|
-
},
|
|
251
|
-
out_of_scope: {
|
|
252
|
-
type: 'string',
|
|
253
|
-
description: 'What should NOT be changed',
|
|
254
|
-
},
|
|
255
|
-
done_criteria: {
|
|
256
|
-
type: 'string',
|
|
257
|
-
description: 'Acceptance criteria for completion',
|
|
258
|
-
},
|
|
259
|
-
risks: {
|
|
260
|
-
type: 'string',
|
|
261
|
-
description: 'Edge cases or risks to consider',
|
|
262
|
-
},
|
|
263
|
-
},
|
|
264
|
-
required: ['problem', 'approach', 'out_of_scope', 'done_criteria', 'risks'],
|
|
265
|
-
},
|
|
266
|
-
},
|
|
267
|
-
required: ['repo_path', 'task'],
|
|
268
|
-
},
|
|
269
|
-
};
|
|
270
|
-
//# sourceMappingURL=create-spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/tools/create-spec.ts"],"names":[],"mappings":"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"}
|