@agentbrain/cli 1.4.13 → 1.4.20
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 +115 -0
- package/dist/commands/disable.js +6 -6
- package/dist/commands/disable.js.map +1 -1
- package/dist/commands/doom.d.ts +3 -0
- package/dist/commands/doom.d.ts.map +1 -0
- package/dist/commands/doom.js +49 -0
- package/dist/commands/doom.js.map +1 -0
- package/dist/commands/handoff.js +3 -3
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/init.js +4 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup.js +4 -4
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/spec.d.ts +3 -0
- package/dist/commands/spec.d.ts.map +1 -0
- package/dist/commands/spec.js +84 -0
- package/dist/commands/spec.js.map +1 -0
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.js +0 -51
- package/dist/__tests__/index.test.js.map +0 -1
- package/dist/commands/__tests__/context.test.d.ts +0 -2
- package/dist/commands/__tests__/context.test.d.ts.map +0 -1
- package/dist/commands/__tests__/context.test.js +0 -54
- package/dist/commands/__tests__/context.test.js.map +0 -1
- package/dist/commands/__tests__/doctor.test.d.ts +0 -2
- package/dist/commands/__tests__/doctor.test.js +0 -46
- package/dist/commands/__tests__/doctor.test.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/context.d.ts +0 -3
- package/dist/commands/context.d.ts.map +0 -1
- package/dist/commands/context.js +0 -90
- package/dist/commands/context.js.map +0 -1
- package/dist/commands/disable.d.ts +0 -3
- package/dist/commands/doctor.d.ts +0 -3
- package/dist/commands/handoff.d.ts +0 -3
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/setup.d.ts +0 -3
- package/dist/commands/standards.d.ts +0 -3
- package/dist/commands/status.d.ts +0 -3
- package/dist/display.d.ts +0 -57
- package/dist/index.d.ts +0 -3
package/README.md
CHANGED
|
@@ -31,6 +31,9 @@ agentbrain config
|
|
|
31
31
|
cd /path/to/your/project
|
|
32
32
|
agentbrain init
|
|
33
33
|
|
|
34
|
+
# Generate task specification (optional)
|
|
35
|
+
agentbrain spec "add user authentication"
|
|
36
|
+
|
|
34
37
|
# Generate coding standards
|
|
35
38
|
agentbrain standards
|
|
36
39
|
|
|
@@ -121,6 +124,117 @@ agentbrain init --path ~/my-project --max-files 50
|
|
|
121
124
|
|
|
122
125
|
---
|
|
123
126
|
|
|
127
|
+
### `agentbrain spec`
|
|
128
|
+
|
|
129
|
+
Generate a structured specification for a task or feature using AI-guided prompts.
|
|
130
|
+
|
|
131
|
+
**Usage:**
|
|
132
|
+
```bash
|
|
133
|
+
agentbrain spec [task-description] [options]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Arguments:**
|
|
137
|
+
- `task-description` - Brief task description (e.g., "add user authentication")
|
|
138
|
+
|
|
139
|
+
**Options:**
|
|
140
|
+
- `--path <path>` - Repository path (default: current directory)
|
|
141
|
+
|
|
142
|
+
**Interactive prompts:**
|
|
143
|
+
The command guides you through 5 questions to create a comprehensive spec:
|
|
144
|
+
1. **Problem** - What problem does this solve? (1-2 sentences)
|
|
145
|
+
2. **Approach** - What's your approach or implementation idea? (or "not sure yet")
|
|
146
|
+
3. **Out of Scope** - What should the agent NOT touch or change?
|
|
147
|
+
4. **Done Criteria** - What does "done" look like? (acceptance criteria)
|
|
148
|
+
5. **Risks** - Any edge cases or risks to consider?
|
|
149
|
+
|
|
150
|
+
**Output:**
|
|
151
|
+
Creates `agentbrain/specs/{task-slug}.md` with:
|
|
152
|
+
- Problem statement
|
|
153
|
+
- Scope boundaries
|
|
154
|
+
- Acceptance criteria checklist
|
|
155
|
+
- Risks & edge cases
|
|
156
|
+
- Implementation notes (AI-generated using repository context)
|
|
157
|
+
- Task checklist (ordered by dependency)
|
|
158
|
+
|
|
159
|
+
**Automatic Injection:**
|
|
160
|
+
Injects spec reference into your agent files (CLAUDE.md, .cursorrules, .windsurfrules) so the agent reads the spec before implementing.
|
|
161
|
+
|
|
162
|
+
**Example:**
|
|
163
|
+
```bash
|
|
164
|
+
# Generate spec with interactive prompts
|
|
165
|
+
agentbrain spec "add OAuth authentication"
|
|
166
|
+
|
|
167
|
+
# The command will:
|
|
168
|
+
# 1. Ask 5 questions to gather requirements
|
|
169
|
+
# 2. Use repository context to generate implementation notes
|
|
170
|
+
# 3. Create agentbrain/specs/add-oauth-authentication.md
|
|
171
|
+
# 4. Inject "Active Spec" reference into agent files
|
|
172
|
+
# 5. Agent automatically reads spec at session start
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Example Spec Output:**
|
|
176
|
+
```markdown
|
|
177
|
+
# Spec: add OAuth authentication
|
|
178
|
+
|
|
179
|
+
*Created: 2025-01-15 | Repo: my-project*
|
|
180
|
+
|
|
181
|
+
## Problem
|
|
182
|
+
Users need to authenticate using OAuth providers instead of just email/password.
|
|
183
|
+
|
|
184
|
+
## Scope
|
|
185
|
+
**Out of scope:** Social login with Facebook/Twitter
|
|
186
|
+
|
|
187
|
+
## Acceptance Criteria
|
|
188
|
+
- [ ] OAuth flow works with Google
|
|
189
|
+
- [ ] Tokens are stored securely
|
|
190
|
+
- [ ] Existing users can link OAuth accounts
|
|
191
|
+
|
|
192
|
+
## Risks & Edge Cases
|
|
193
|
+
- Token expiry handling
|
|
194
|
+
- Race conditions during OAuth callback
|
|
195
|
+
|
|
196
|
+
## Implementation Notes
|
|
197
|
+
- Use existing auth middleware pattern from src/auth/
|
|
198
|
+
- Store OAuth tokens in encrypted user_credentials table
|
|
199
|
+
- Add OAuth callback route to existing auth router
|
|
200
|
+
- Follow repository's error handling pattern
|
|
201
|
+
|
|
202
|
+
## Task Checklist
|
|
203
|
+
- [ ] Add OAuth provider configuration
|
|
204
|
+
- [ ] Implement OAuth callback handler
|
|
205
|
+
- [ ] Create token storage schema
|
|
206
|
+
- [ ] Add OAuth middleware
|
|
207
|
+
- [ ] Update auth routes
|
|
208
|
+
- [ ] Write integration tests
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**MCP Integration:**
|
|
212
|
+
After creating a spec, agents can load it via the MCP `load_spec` tool:
|
|
213
|
+
```typescript
|
|
214
|
+
// Agent automatically loads via injected reference
|
|
215
|
+
// Or manually via MCP:
|
|
216
|
+
load_spec({ repoPath: "/path/to/repo", task: "add-oauth-authentication" })
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Cost:** ~$0.01-0.02 (uses fast model with context-aware generation)
|
|
220
|
+
|
|
221
|
+
**Workflow:**
|
|
222
|
+
```bash
|
|
223
|
+
# 1. Plan feature with spec
|
|
224
|
+
agentbrain spec "add OAuth authentication"
|
|
225
|
+
|
|
226
|
+
# 2. Agent reads spec automatically at session start
|
|
227
|
+
# (Injected into CLAUDE.md, .cursorrules, .windsurfrules)
|
|
228
|
+
|
|
229
|
+
# 3. Implement feature following the spec
|
|
230
|
+
# ... coding session ...
|
|
231
|
+
|
|
232
|
+
# 4. Remove spec reference when done
|
|
233
|
+
# (Manually edit agent files or use agentbrain disable)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
124
238
|
### `agentbrain standards`
|
|
125
239
|
|
|
126
240
|
Generate coding standards files for AI agents.
|
|
@@ -349,6 +463,7 @@ All costs are approximate (as of January 2025):
|
|
|
349
463
|
|-----------|--------|-----------|--------|
|
|
350
464
|
| Init (small) | 10-20K | $0.02-0.05 | $0.02-0.04 |
|
|
351
465
|
| Init (medium) | 30-50K | $0.08-0.15 | $0.07-0.12 |
|
|
466
|
+
| Spec | 3-5K | $0.01-0.02 | $0.01-0.02 |
|
|
352
467
|
| Standards | 5-8K | $0.01-0.02 | $0.01-0.02 |
|
|
353
468
|
| Handoff | 3-5K | $0.01 | $0.01 |
|
|
354
469
|
| **Cached repeat** | 0 | **$0.00** | **$0.00** |
|
package/dist/commands/disable.js
CHANGED
|
@@ -29,7 +29,7 @@ export function createDisableCommand() {
|
|
|
29
29
|
message: 'What would you like to remove?',
|
|
30
30
|
choices: [
|
|
31
31
|
{ name: 'Git hooks (post-commit auto-regeneration)', value: 'hooks', checked: true },
|
|
32
|
-
{ name: 'Generated context files (agentbrain/ directory)', value: 'files' },
|
|
32
|
+
{ name: 'Generated context files (.agentbrain/ directory)', value: 'files' },
|
|
33
33
|
{ name: 'Agent config files (CLAUDE.md, .cursorrules, etc.)', value: 'agent-files' },
|
|
34
34
|
],
|
|
35
35
|
},
|
|
@@ -48,7 +48,7 @@ export function createDisableCommand() {
|
|
|
48
48
|
if (removeHooks)
|
|
49
49
|
summary.push('• Remove git hooks');
|
|
50
50
|
if (removeFiles)
|
|
51
|
-
summary.push('• Delete agentbrain/ directory');
|
|
51
|
+
summary.push('• Delete .agentbrain/ directory');
|
|
52
52
|
if (removeAgentFiles)
|
|
53
53
|
summary.push('• Delete agent config files');
|
|
54
54
|
console.log(chalk.yellow('\nThis will:'));
|
|
@@ -84,18 +84,18 @@ export function createDisableCommand() {
|
|
|
84
84
|
}
|
|
85
85
|
// Remove generated files
|
|
86
86
|
if (removeFiles) {
|
|
87
|
-
const agentbrainDir = join(repoPath, 'agentbrain');
|
|
87
|
+
const agentbrainDir = join(repoPath, '.agentbrain');
|
|
88
88
|
if (existsSync(agentbrainDir)) {
|
|
89
89
|
try {
|
|
90
90
|
await rm(agentbrainDir, { recursive: true, force: true });
|
|
91
|
-
console.log(chalk.green('✓ Removed agentbrain/ directory'));
|
|
91
|
+
console.log(chalk.green('✓ Removed .agentbrain/ directory'));
|
|
92
92
|
}
|
|
93
93
|
catch (error) {
|
|
94
|
-
console.error(chalk.red(`✗ Failed to remove agentbrain/: ${error instanceof Error ? error.message : String(error)}`));
|
|
94
|
+
console.error(chalk.red(`✗ Failed to remove .agentbrain/: ${error instanceof Error ? error.message : String(error)}`));
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
else {
|
|
98
|
-
console.log(chalk.gray(' No agentbrain/ directory found'));
|
|
98
|
+
console.log(chalk.gray(' No .agentbrain/ directory found'));
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
// Remove agent files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAA;AAExF,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SACnC,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;SAC/D,MAAM,CAAC,sBAAsB,EAAE,2DAA2D,CAAC;SAC3F,MAAM,CAAC,QAAQ,EAAE,yCAAyC,CAAC;SAC3D,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QAE9B,6CAA6C;QAC7C,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAA;QACrD,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAA;QACrD,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAA;QAE/D,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAA;YAE9D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACpC;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,gCAAgC;oBACzC,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,2CAA2C,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;wBACpF,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doom.d.ts","sourceRoot":"","sources":["../../src/commands/doom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,iBAAiB,IAAI,OAAO,CAsD3C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// agentbrain doom - detect doom loops in git history
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { analyzeDoomLoop } from '@agentbrain/core';
|
|
5
|
+
export function createDoomCommand() {
|
|
6
|
+
const doom = new Command('doom')
|
|
7
|
+
.description('Detect doom loops - files modified repeatedly in recent commits')
|
|
8
|
+
.option('--path <path>', 'Repository path', process.cwd())
|
|
9
|
+
.option('--commits <number>', 'Number of commits to analyze', '10')
|
|
10
|
+
.option('--threshold <number>', 'Threshold for doom loop detection', '4')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
const { path, commits, threshold } = options;
|
|
13
|
+
console.log(chalk.blue.bold('\n🧠 AgentBrain\n'));
|
|
14
|
+
try {
|
|
15
|
+
const result = await analyzeDoomLoop(path, parseInt(commits), parseInt(threshold));
|
|
16
|
+
if (result.detected) {
|
|
17
|
+
console.log(chalk.yellow.bold('⚠ Possible doom loop detected\n'));
|
|
18
|
+
console.log(`These files were modified ${threshold}+ times in the last ${result.commitsAnalyzed} commits:\n`);
|
|
19
|
+
for (const file of result.files) {
|
|
20
|
+
console.log(chalk.red(` ${file.path}`) +
|
|
21
|
+
chalk.gray(` (${file.commitCount} times - ${file.percentage}%)`));
|
|
22
|
+
}
|
|
23
|
+
console.log(chalk.yellow('\nSuggestions:'));
|
|
24
|
+
console.log(chalk.gray(' → Stop coding. Investigate root cause first.'));
|
|
25
|
+
console.log(chalk.gray(' → Run: agentbrain spec "fix [problem description]"'));
|
|
26
|
+
console.log(chalk.gray(' → Consider: revert to last working state and start fresh'));
|
|
27
|
+
console.log('');
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
console.log(chalk.green('✓ No doom loop detected'));
|
|
31
|
+
console.log(chalk.gray(`ℹ Analyzed last ${result.commitsAnalyzed} commits — all files look healthy\n`));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
if (error instanceof Error) {
|
|
36
|
+
if (error.message.includes('Not a git repository')) {
|
|
37
|
+
console.error(chalk.red('✗ Error: Not a git repository'));
|
|
38
|
+
console.error(chalk.gray('Run this command from a git repository\n'));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.error(chalk.red('✗ Error:'), error.message, '\n');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return doom;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=doom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doom.js","sourceRoot":"","sources":["../../src/commands/doom.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/handoff.js
CHANGED
|
@@ -66,7 +66,7 @@ async function runHandoff(options) {
|
|
|
66
66
|
spin?.succeed('Handoff generation complete!');
|
|
67
67
|
}
|
|
68
68
|
// Write to disk
|
|
69
|
-
const outputDir = join(repoPath, 'agentbrain');
|
|
69
|
+
const outputDir = join(repoPath, '.agentbrain');
|
|
70
70
|
if (!existsSync(outputDir)) {
|
|
71
71
|
await mkdir(outputDir, { recursive: true });
|
|
72
72
|
}
|
|
@@ -74,7 +74,7 @@ async function runHandoff(options) {
|
|
|
74
74
|
await writeFile(filePath, result.doc.content, 'utf-8');
|
|
75
75
|
if (!auto) {
|
|
76
76
|
displayGeneratedFiles([
|
|
77
|
-
{ name: 'agentbrain/handoff.md', description: 'Session handoff document' },
|
|
77
|
+
{ name: '.agentbrain/handoff.md', description: 'Session handoff document' },
|
|
78
78
|
]);
|
|
79
79
|
if (result.tokenCount > 0) {
|
|
80
80
|
const cost = aiConfig.provider === 'anthropic' ? (result.tokenCount / 1_000_000) * 3.0 : (result.tokenCount / 1_000_000) * 2.5;
|
|
@@ -85,7 +85,7 @@ async function runHandoff(options) {
|
|
|
85
85
|
}
|
|
86
86
|
success('Handoff document generated!');
|
|
87
87
|
console.log('\n📌 Next steps:\n');
|
|
88
|
-
console.log(' • Share agentbrain/handoff.md with the next developer or session');
|
|
88
|
+
console.log(' • Share .agentbrain/handoff.md with the next developer or session');
|
|
89
89
|
console.log(' • Reference it at the start of your next session for context');
|
|
90
90
|
console.log();
|
|
91
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -107,7 +107,7 @@ async function runInit(options) {
|
|
|
107
107
|
genSpin?.succeed('Context generation complete!');
|
|
108
108
|
}
|
|
109
109
|
// Write files to disk
|
|
110
|
-
const outputDir = join(repoPath, 'agentbrain');
|
|
110
|
+
const outputDir = join(repoPath, '.agentbrain');
|
|
111
111
|
if (!existsSync(outputDir)) {
|
|
112
112
|
await mkdir(outputDir, { recursive: true });
|
|
113
113
|
}
|
|
@@ -139,9 +139,9 @@ async function runInit(options) {
|
|
|
139
139
|
// Display summary
|
|
140
140
|
if (!silent) {
|
|
141
141
|
displayGeneratedFiles([
|
|
142
|
-
{ name: 'agentbrain/context.md', description: 'Full repo intelligence' },
|
|
143
|
-
{ name: 'agentbrain/dependency-map.md', description: 'Service relationships' },
|
|
144
|
-
{ name: 'agentbrain/patterns.md', description: 'Coding patterns' },
|
|
142
|
+
{ name: '.agentbrain/context.md', description: 'Full repo intelligence' },
|
|
143
|
+
{ name: '.agentbrain/dependency-map.md', description: 'Service relationships' },
|
|
144
|
+
{ name: '.agentbrain/patterns.md', description: 'Coding patterns' },
|
|
145
145
|
]);
|
|
146
146
|
displayActualCost(result.totalTokens, result.cost);
|
|
147
147
|
const nextSteps = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -99,7 +99,7 @@ async function runSetup(options) {
|
|
|
99
99
|
});
|
|
100
100
|
spin.succeed('Context generated!');
|
|
101
101
|
// Write files
|
|
102
|
-
const outputDir = join(repoPath, 'agentbrain');
|
|
102
|
+
const outputDir = join(repoPath, '.agentbrain');
|
|
103
103
|
if (!existsSync(outputDir)) {
|
|
104
104
|
await mkdir(outputDir, { recursive: true });
|
|
105
105
|
}
|
|
@@ -150,9 +150,9 @@ async function runSetup(options) {
|
|
|
150
150
|
// Summary
|
|
151
151
|
console.log();
|
|
152
152
|
displayGeneratedFiles([
|
|
153
|
-
{ name: 'agentbrain/context.md', description: 'Full repo intelligence' },
|
|
154
|
-
{ name: 'agentbrain/dependency-map.md', description: 'Service relationships' },
|
|
155
|
-
{ name: 'agentbrain/patterns.md', description: 'Coding patterns' },
|
|
153
|
+
{ name: '.agentbrain/context.md', description: 'Full repo intelligence' },
|
|
154
|
+
{ name: '.agentbrain/dependency-map.md', description: 'Service relationships' },
|
|
155
|
+
{ name: '.agentbrain/patterns.md', description: 'Coding patterns' },
|
|
156
156
|
]);
|
|
157
157
|
displayActualCost(result.totalTokens, result.cost);
|
|
158
158
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,iBAAiB,IAAI,OAAO,CAe3C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Spec command - generate structured specification for a task
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { input } from '@inquirer/prompts';
|
|
4
|
+
import { resolve } from 'node:path';
|
|
5
|
+
import { createSpec, loadAIConfig } from '@agentbrain/core';
|
|
6
|
+
import { displayBanner, success, error, info, spinner } from '../display.js';
|
|
7
|
+
export function createSpecCommand() {
|
|
8
|
+
const cmd = new Command('spec')
|
|
9
|
+
.description('Generate structured specification for a task')
|
|
10
|
+
.argument('<task>', 'Task description (e.g., "add stripe webhook handler")')
|
|
11
|
+
.option('--path <path>', 'Repository path', process.cwd())
|
|
12
|
+
.action(async (task, options) => {
|
|
13
|
+
try {
|
|
14
|
+
await runSpecCommand(task, options);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
error(err instanceof Error ? err.message : 'Spec generation failed');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return cmd;
|
|
22
|
+
}
|
|
23
|
+
async function runSpecCommand(task, options) {
|
|
24
|
+
displayBanner();
|
|
25
|
+
const repoPath = resolve(options.path);
|
|
26
|
+
info(`Repository: ${repoPath}`);
|
|
27
|
+
info(`Task: "${task}"`);
|
|
28
|
+
console.log();
|
|
29
|
+
// Load AI config
|
|
30
|
+
const aiConfig = await loadAIConfig();
|
|
31
|
+
// Ask the 5 questions interactively
|
|
32
|
+
console.log('📋 Please answer the following questions to generate your spec:\n');
|
|
33
|
+
const answers = {
|
|
34
|
+
problem: await input({
|
|
35
|
+
message: 'Q1: What problem does this solve? (1-2 sentences)',
|
|
36
|
+
validate: (value) => {
|
|
37
|
+
if (!value.trim())
|
|
38
|
+
return 'Please provide an answer';
|
|
39
|
+
return true;
|
|
40
|
+
},
|
|
41
|
+
}),
|
|
42
|
+
approach: await input({
|
|
43
|
+
message: 'Q2: What\'s your approach or implementation idea? (or "not sure yet")',
|
|
44
|
+
default: 'Not sure yet',
|
|
45
|
+
}),
|
|
46
|
+
outOfScope: await input({
|
|
47
|
+
message: 'Q3: What should the agent NOT touch or change?',
|
|
48
|
+
default: 'None',
|
|
49
|
+
}),
|
|
50
|
+
doneCriteria: await input({
|
|
51
|
+
message: 'Q4: What does "done" look like? (acceptance criteria)',
|
|
52
|
+
validate: (value) => {
|
|
53
|
+
if (!value.trim())
|
|
54
|
+
return 'Please provide an answer';
|
|
55
|
+
return true;
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
risks: await input({
|
|
59
|
+
message: 'Q5: Any edge cases or risks to consider?',
|
|
60
|
+
default: 'None identified',
|
|
61
|
+
}),
|
|
62
|
+
};
|
|
63
|
+
console.log();
|
|
64
|
+
const spin = spinner('Generating spec...');
|
|
65
|
+
try {
|
|
66
|
+
const result = await createSpec(task, answers, repoPath, aiConfig);
|
|
67
|
+
spin.succeed('Spec generated!');
|
|
68
|
+
console.log();
|
|
69
|
+
success(`✓ Spec saved to: ${result.filePath}`);
|
|
70
|
+
console.log();
|
|
71
|
+
info(`💸 Cost: ~$${result.cost.toFixed(4)} (${result.tokensUsed} tokens)`);
|
|
72
|
+
console.log();
|
|
73
|
+
console.log('Next steps:');
|
|
74
|
+
console.log(' 1. Review the spec file');
|
|
75
|
+
console.log(' 2. Share it with your AI coding agent');
|
|
76
|
+
console.log(' 3. Start implementing!');
|
|
77
|
+
console.log();
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
spin.fail('Spec generation failed');
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAC5B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,QAAQ,CAAC,QAAQ,EAAE,uDAAuD,CAAC;SAC3E,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAA;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,OAAyB;IAEzB,aAAa,EAAE,CAAA;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAA;IAC/B,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,CAAA;IACvB,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,iBAAiB;IACjB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;IAErC,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;IAEhF,MAAM,OAAO,GAAgB;QAC3B,OAAO,EAAE,MAAM,KAAK,CAAC;YACnB,OAAO,EAAE,mDAAmD;YAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBAAE,OAAO,0BAA0B,CAAA;gBACpD,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAC;QAEF,QAAQ,EAAE,MAAM,KAAK,CAAC;YACpB,OAAO,EAAE,uEAAuE;YAChF,OAAO,EAAE,cAAc;SACxB,CAAC;QAEF,UAAU,EAAE,MAAM,KAAK,CAAC;YACtB,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE,MAAM;SAChB,CAAC;QAEF,YAAY,EAAE,MAAM,KAAK,CAAC;YACxB,OAAO,EAAE,uDAAuD;YAChE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBAAE,OAAO,0BAA0B,CAAA;gBACpD,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAC;QAEF,KAAK,EAAE,MAAM,KAAK,CAAC;YACjB,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,iBAAiB;SAC3B,CAAC;KACH,CAAA;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAElE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAE/B,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9C,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,UAAU,CAAC,CAAA;QAC1E,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;QACtD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QACvC,OAAO,CAAC,GAAG,EAAE,CAAA;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACnC,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,22 +7,24 @@ import { createStandardsCommand } from './commands/standards.js';
|
|
|
7
7
|
import { createHandoffCommand } from './commands/handoff.js';
|
|
8
8
|
import { createSetupCommand } from './commands/setup.js';
|
|
9
9
|
import { createDisableCommand } from './commands/disable.js';
|
|
10
|
-
import { createContextCommand } from './commands/context.js';
|
|
11
10
|
import { createDoctorCommand } from './commands/doctor.js';
|
|
12
11
|
import { createStatusCommand } from './commands/status.js';
|
|
12
|
+
import { createSpecCommand } from './commands/spec.js';
|
|
13
|
+
import { createDoomCommand } from './commands/doom.js';
|
|
13
14
|
const program = new Command();
|
|
14
15
|
program
|
|
15
16
|
.name('agentbrain')
|
|
16
17
|
.description('Generate smart context docs for coding agents')
|
|
17
|
-
.version('1.4.
|
|
18
|
+
.version('1.4.20');
|
|
18
19
|
// Add commands
|
|
19
20
|
program.addCommand(createSetupCommand());
|
|
20
21
|
program.addCommand(createInitCommand());
|
|
21
|
-
program.addCommand(
|
|
22
|
+
program.addCommand(createSpecCommand());
|
|
22
23
|
program.addCommand(createStandardsCommand());
|
|
23
24
|
program.addCommand(createHandoffCommand());
|
|
24
25
|
program.addCommand(createDoctorCommand());
|
|
25
26
|
program.addCommand(createStatusCommand());
|
|
27
|
+
program.addCommand(createDoomCommand());
|
|
26
28
|
program.addCommand(createConfigCommand());
|
|
27
29
|
program.addCommand(createDisableCommand());
|
|
28
30
|
// Parse arguments
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,6BAA6B;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,6BAA6B;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEpB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAA;AAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAE1C,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAA;AACf,aAAa"}
|
package/package.json
CHANGED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@jest/globals';
|
|
2
|
-
describe('CLI entry point', () => {
|
|
3
|
-
it('exports are available', async () => {
|
|
4
|
-
// Just verify the module can be imported
|
|
5
|
-
// (actual CLI execution is tested via integration)
|
|
6
|
-
expect(true).toBe(true);
|
|
7
|
-
});
|
|
8
|
-
});
|
|
9
|
-
describe('CLI command registration', () => {
|
|
10
|
-
it('registers context command', async () => {
|
|
11
|
-
const { createContextCommand } = await import('../commands/context.js');
|
|
12
|
-
const cmd = createContextCommand();
|
|
13
|
-
expect(cmd.name()).toBe('context');
|
|
14
|
-
});
|
|
15
|
-
it('registers doctor command', async () => {
|
|
16
|
-
const { createDoctorCommand } = await import('../commands/doctor.js');
|
|
17
|
-
const cmd = createDoctorCommand();
|
|
18
|
-
expect(cmd.name()).toBe('doctor');
|
|
19
|
-
});
|
|
20
|
-
it('registers init command', async () => {
|
|
21
|
-
const { createInitCommand } = await import('../commands/init.js');
|
|
22
|
-
const cmd = createInitCommand();
|
|
23
|
-
expect(cmd.name()).toBe('init');
|
|
24
|
-
});
|
|
25
|
-
it('registers setup command', async () => {
|
|
26
|
-
const { createSetupCommand } = await import('../commands/setup.js');
|
|
27
|
-
const cmd = createSetupCommand();
|
|
28
|
-
expect(cmd.name()).toBe('setup');
|
|
29
|
-
});
|
|
30
|
-
it('registers config command', async () => {
|
|
31
|
-
const { createConfigCommand } = await import('../commands/config.js');
|
|
32
|
-
const cmd = createConfigCommand();
|
|
33
|
-
expect(cmd.name()).toBe('config');
|
|
34
|
-
});
|
|
35
|
-
it('registers standards command', async () => {
|
|
36
|
-
const { createStandardsCommand } = await import('../commands/standards.js');
|
|
37
|
-
const cmd = createStandardsCommand();
|
|
38
|
-
expect(cmd.name()).toBe('standards');
|
|
39
|
-
});
|
|
40
|
-
it('registers handoff command', async () => {
|
|
41
|
-
const { createHandoffCommand } = await import('../commands/handoff.js');
|
|
42
|
-
const cmd = createHandoffCommand();
|
|
43
|
-
expect(cmd.name()).toBe('handoff');
|
|
44
|
-
});
|
|
45
|
-
it('registers disable command', async () => {
|
|
46
|
-
const { createDisableCommand } = await import('../commands/disable.js');
|
|
47
|
-
const cmd = createDisableCommand();
|
|
48
|
-
expect(cmd.name()).toBe('disable');
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/context.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@jest/globals';
|
|
2
|
-
import { createContextCommand } from '../context.js';
|
|
3
|
-
describe('context command', () => {
|
|
4
|
-
it('exports createContextCommand function', () => {
|
|
5
|
-
expect(createContextCommand).toBeDefined();
|
|
6
|
-
expect(typeof createContextCommand).toBe('function');
|
|
7
|
-
});
|
|
8
|
-
it('creates command with correct name', () => {
|
|
9
|
-
const cmd = createContextCommand();
|
|
10
|
-
expect(cmd.name()).toBe('context');
|
|
11
|
-
});
|
|
12
|
-
it('has description', () => {
|
|
13
|
-
const cmd = createContextCommand();
|
|
14
|
-
expect(cmd.description()).toContain('task');
|
|
15
|
-
expect(cmd.description().length).toBeGreaterThan(10);
|
|
16
|
-
});
|
|
17
|
-
it('has required task argument', () => {
|
|
18
|
-
const cmd = createContextCommand();
|
|
19
|
-
const args = cmd.registeredArguments;
|
|
20
|
-
expect(args.length).toBeGreaterThan(0);
|
|
21
|
-
expect(args[0].name()).toBe('task');
|
|
22
|
-
expect(args[0].required).toBe(true);
|
|
23
|
-
});
|
|
24
|
-
it('has --path option', () => {
|
|
25
|
-
const cmd = createContextCommand();
|
|
26
|
-
const pathOpt = cmd.options.find((o) => o.long === '--path');
|
|
27
|
-
expect(pathOpt).toBeDefined();
|
|
28
|
-
expect(pathOpt?.description).toContain('path');
|
|
29
|
-
});
|
|
30
|
-
it('has --max-files option with default', () => {
|
|
31
|
-
const cmd = createContextCommand();
|
|
32
|
-
const maxFilesOpt = cmd.options.find((o) => o.long === '--max-files');
|
|
33
|
-
expect(maxFilesOpt).toBeDefined();
|
|
34
|
-
expect(maxFilesOpt?.defaultValue).toBe('20');
|
|
35
|
-
});
|
|
36
|
-
it('has --output option with default', () => {
|
|
37
|
-
const cmd = createContextCommand();
|
|
38
|
-
const outputOpt = cmd.options.find((o) => o.long === '--output');
|
|
39
|
-
expect(outputOpt).toBeDefined();
|
|
40
|
-
expect(outputOpt?.defaultValue).toBe('agentbrain/task-context.md');
|
|
41
|
-
});
|
|
42
|
-
it('has --no-cache option', () => {
|
|
43
|
-
const cmd = createContextCommand();
|
|
44
|
-
const cacheOpt = cmd.options.find((o) => o.long === '--no-cache');
|
|
45
|
-
expect(cacheOpt).toBeDefined();
|
|
46
|
-
expect(cacheOpt?.description).toContain('cache');
|
|
47
|
-
});
|
|
48
|
-
it('has action handler', () => {
|
|
49
|
-
const cmd = createContextCommand();
|
|
50
|
-
// Commander stores action in _actionHandler
|
|
51
|
-
expect(cmd._actionHandler).toBeDefined();
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=context.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/context.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@jest/globals';
|
|
2
|
-
import { createDoctorCommand } from '../doctor.js';
|
|
3
|
-
describe('doctor command', () => {
|
|
4
|
-
it('exports createDoctorCommand function', () => {
|
|
5
|
-
expect(createDoctorCommand).toBeDefined();
|
|
6
|
-
expect(typeof createDoctorCommand).toBe('function');
|
|
7
|
-
});
|
|
8
|
-
it('creates command with correct name', () => {
|
|
9
|
-
const cmd = createDoctorCommand();
|
|
10
|
-
expect(cmd.name()).toBe('doctor');
|
|
11
|
-
});
|
|
12
|
-
it('has description', () => {
|
|
13
|
-
const cmd = createDoctorCommand();
|
|
14
|
-
expect(cmd.description()).toContain('diagnostic');
|
|
15
|
-
expect(cmd.description().length).toBeGreaterThan(10);
|
|
16
|
-
});
|
|
17
|
-
it('has --path option', () => {
|
|
18
|
-
const cmd = createDoctorCommand();
|
|
19
|
-
const pathOpt = cmd.options.find((o) => o.long === '--path');
|
|
20
|
-
expect(pathOpt).toBeDefined();
|
|
21
|
-
expect(pathOpt?.description).toContain('path');
|
|
22
|
-
});
|
|
23
|
-
it('has --fix option', () => {
|
|
24
|
-
const cmd = createDoctorCommand();
|
|
25
|
-
const fixOpt = cmd.options.find((o) => o.long === '--fix');
|
|
26
|
-
expect(fixOpt).toBeDefined();
|
|
27
|
-
expect(fixOpt?.description).toContain('fix');
|
|
28
|
-
});
|
|
29
|
-
it('has --json option', () => {
|
|
30
|
-
const cmd = createDoctorCommand();
|
|
31
|
-
const jsonOpt = cmd.options.find((o) => o.long === '--json');
|
|
32
|
-
expect(jsonOpt).toBeDefined();
|
|
33
|
-
expect(jsonOpt?.description).toContain('JSON');
|
|
34
|
-
});
|
|
35
|
-
it('has no required arguments', () => {
|
|
36
|
-
const cmd = createDoctorCommand();
|
|
37
|
-
const requiredArgs = cmd.registeredArguments.filter((a) => a.required);
|
|
38
|
-
expect(requiredArgs.length).toBe(0);
|
|
39
|
-
});
|
|
40
|
-
it('has action handler', () => {
|
|
41
|
-
const cmd = createDoctorCommand();
|
|
42
|
-
// Commander stores action in _actionHandler
|
|
43
|
-
expect(cmd._actionHandler).toBeDefined();
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=doctor.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/doctor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,wBAAgB,oBAAoB,IAAI,OAAO,CAkB9C"}
|
package/dist/commands/context.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// Task-aware context command
|
|
2
|
-
import { Command } from 'commander';
|
|
3
|
-
import { resolve } from 'node:path';
|
|
4
|
-
import { writeFile, mkdir } from 'node:fs/promises';
|
|
5
|
-
import { existsSync } from 'node:fs';
|
|
6
|
-
import { join } from 'node:path';
|
|
7
|
-
import { loadAIConfig, generateTaskContext, invalidateCache, } from '@agentbrain/core';
|
|
8
|
-
import { displayBanner, success, error, info, spinner } from '../display.js';
|
|
9
|
-
export function createContextCommand() {
|
|
10
|
-
const cmd = new Command('context')
|
|
11
|
-
.description('Generate task-focused context using cached summaries')
|
|
12
|
-
.argument('<task>', 'Task description (e.g., "add OAuth login to auth module")')
|
|
13
|
-
.option('--path <path>', 'Repository path', process.cwd())
|
|
14
|
-
.option('--max-files <number>', 'Maximum files to include', '20')
|
|
15
|
-
.option('--output <path>', 'Output file path', 'agentbrain/task-context.md')
|
|
16
|
-
.option('--no-cache', 'Force re-scan (invalidate cache first)')
|
|
17
|
-
.action(async (task, options) => {
|
|
18
|
-
try {
|
|
19
|
-
await runContextCommand(task, options);
|
|
20
|
-
}
|
|
21
|
-
catch (err) {
|
|
22
|
-
error(err instanceof Error ? err.message : 'Context generation failed');
|
|
23
|
-
process.exit(1);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
return cmd;
|
|
27
|
-
}
|
|
28
|
-
async function runContextCommand(task, options) {
|
|
29
|
-
displayBanner();
|
|
30
|
-
const repoPath = resolve(options.path);
|
|
31
|
-
const maxFiles = parseInt(options.maxFiles, 10);
|
|
32
|
-
const outputPath = resolve(repoPath, options.output);
|
|
33
|
-
info(`Repository: ${repoPath}`);
|
|
34
|
-
info(`Task: "${task}"`);
|
|
35
|
-
console.log();
|
|
36
|
-
// Invalidate cache if --no-cache
|
|
37
|
-
if (!options.cache) {
|
|
38
|
-
info('Invalidating cache...');
|
|
39
|
-
await invalidateCache(repoPath);
|
|
40
|
-
}
|
|
41
|
-
// Load AI config
|
|
42
|
-
const aiConfig = await loadAIConfig();
|
|
43
|
-
const spin = spinner('Generating task-focused context...');
|
|
44
|
-
try {
|
|
45
|
-
const result = await generateTaskContext({
|
|
46
|
-
repoPath,
|
|
47
|
-
aiConfig,
|
|
48
|
-
task,
|
|
49
|
-
maxFiles,
|
|
50
|
-
onProgress: (msg) => {
|
|
51
|
-
spin.text = msg;
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
spin.succeed('Context generated!');
|
|
55
|
-
// Ensure output directory exists
|
|
56
|
-
const outputDir = join(repoPath, 'agentbrain');
|
|
57
|
-
if (!existsSync(outputDir)) {
|
|
58
|
-
await mkdir(outputDir, { recursive: true });
|
|
59
|
-
}
|
|
60
|
-
// Write task context
|
|
61
|
-
const header = `# Task Context: ${task}
|
|
62
|
-
|
|
63
|
-
*Generated on ${new Date().toISOString()}*
|
|
64
|
-
*Selected ${result.selectedFiles.length} most relevant files*
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
`;
|
|
69
|
-
await writeFile(outputPath, header + result.content, 'utf-8');
|
|
70
|
-
console.log();
|
|
71
|
-
success(`Task: "${task}"`);
|
|
72
|
-
success(`Scored ${result.totalFilesScored} files against task (used cached summaries)`);
|
|
73
|
-
success(`Selected top ${result.selectedFiles.length} most relevant files`);
|
|
74
|
-
success(`${options.output} written`);
|
|
75
|
-
console.log();
|
|
76
|
-
info(`💸 Cost: ~$${result.cost.toFixed(4)} (re-used cached summaries)`);
|
|
77
|
-
console.log();
|
|
78
|
-
// Show top 5 files
|
|
79
|
-
console.log('📄 Top relevant files:');
|
|
80
|
-
result.selectedFiles.slice(0, 5).forEach((f, idx) => {
|
|
81
|
-
console.log(` ${idx + 1}. ${f.path} (score: ${f.score}/10)`);
|
|
82
|
-
});
|
|
83
|
-
console.log();
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
spin.fail('Context generation failed');
|
|
87
|
-
throw err;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
DELETED
package/dist/commands/setup.d.ts
DELETED
package/dist/display.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { FileEntry, CostEstimate } from '@agentbrain/core';
|
|
2
|
-
/**
|
|
3
|
-
* Display welcome banner
|
|
4
|
-
*/
|
|
5
|
-
export declare function displayBanner(): void;
|
|
6
|
-
/**
|
|
7
|
-
* Display success message
|
|
8
|
-
*/
|
|
9
|
-
export declare function success(message: string): void;
|
|
10
|
-
/**
|
|
11
|
-
* Display error message
|
|
12
|
-
*/
|
|
13
|
-
export declare function error(message: string): void;
|
|
14
|
-
/**
|
|
15
|
-
* Display info message
|
|
16
|
-
*/
|
|
17
|
-
export declare function info(message: string): void;
|
|
18
|
-
/**
|
|
19
|
-
* Display warning message
|
|
20
|
-
*/
|
|
21
|
-
export declare function warn(message: string): void;
|
|
22
|
-
/**
|
|
23
|
-
* Create a spinner
|
|
24
|
-
*/
|
|
25
|
-
export declare function spinner(text: string): import("ora").Ora;
|
|
26
|
-
/**
|
|
27
|
-
* Display file table
|
|
28
|
-
*/
|
|
29
|
-
export declare function displayFileTable(files: FileEntry[], maxRows?: number): void;
|
|
30
|
-
/**
|
|
31
|
-
* Display cost estimate with 1.4x buffer for accuracy
|
|
32
|
-
*/
|
|
33
|
-
export declare function displayCostEstimate(estimate: CostEstimate): void;
|
|
34
|
-
/**
|
|
35
|
-
* Display actual cost after generation
|
|
36
|
-
*/
|
|
37
|
-
export declare function displayActualCost(tokens: number, usd: number): void;
|
|
38
|
-
/**
|
|
39
|
-
* Display generated files summary
|
|
40
|
-
*/
|
|
41
|
-
export declare function displayGeneratedFiles(files: Array<{
|
|
42
|
-
name: string;
|
|
43
|
-
description: string;
|
|
44
|
-
}>): void;
|
|
45
|
-
/**
|
|
46
|
-
* Display next steps
|
|
47
|
-
*/
|
|
48
|
-
export declare function displayNextSteps(steps: string[]): void;
|
|
49
|
-
/**
|
|
50
|
-
* Display provider info
|
|
51
|
-
*/
|
|
52
|
-
export declare function displayProviderInfo(provider: string, models: {
|
|
53
|
-
fast: string;
|
|
54
|
-
mid: string;
|
|
55
|
-
smart: string;
|
|
56
|
-
}): void;
|
|
57
|
-
//# sourceMappingURL=display.d.ts.map
|
package/dist/index.d.ts
DELETED