@agentbrain/cli 1.4.12 → 1.4.19
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/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +3 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup.js +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 +3 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6BnC,wBAAgB,iBAAiB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6BnC,wBAAgB,iBAAiB,IAAI,OAAO,CAuB3C"}
|
package/dist/commands/init.js
CHANGED
|
@@ -13,6 +13,7 @@ export function createInitCommand() {
|
|
|
13
13
|
.option('--path <path>', 'Repository path', process.cwd())
|
|
14
14
|
.option('--max-files <number>', 'Maximum files to analyze', '100')
|
|
15
15
|
.option('--no-cache', 'Skip cache and regenerate')
|
|
16
|
+
.option('--smart-cache', 'Reuse file summaries for unchanged files (fast)')
|
|
16
17
|
.option('--dry-run', 'Show what would be generated without actually generating')
|
|
17
18
|
.option('--silent', 'Suppress output (for git hooks)')
|
|
18
19
|
.option('--no-confirm', 'Skip confirmation prompts')
|
|
@@ -38,6 +39,7 @@ async function runInit(options) {
|
|
|
38
39
|
const repoPath = resolve(options.path);
|
|
39
40
|
const maxFiles = parseInt(options.maxFiles, 10);
|
|
40
41
|
const useCache = options.cache;
|
|
42
|
+
const smartCache = options.smartCache;
|
|
41
43
|
const skipConfirm = !options.confirm;
|
|
42
44
|
const skipInject = !options.inject;
|
|
43
45
|
if (!silent) {
|
|
@@ -91,6 +93,7 @@ async function runInit(options) {
|
|
|
91
93
|
aiConfig,
|
|
92
94
|
maxFiles,
|
|
93
95
|
useCache,
|
|
96
|
+
smartCache,
|
|
94
97
|
onProgress: (msg) => {
|
|
95
98
|
if (!silent && msg !== lastProgress) {
|
|
96
99
|
if (genSpin) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,aAAa,EACb,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAA;AAEtB,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAC5B,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACjE,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC;SACjD,MAAM,CAAC,WAAW,EAAE,0DAA0D,CAAC;SAC/E,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC;SACnD,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAA;YACrE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -112,7 +112,7 @@ async function runSetup(options) {
|
|
|
112
112
|
const gitHash = result.docs[0]?.gitHash || 'unknown';
|
|
113
113
|
// Step 4: Save agent config
|
|
114
114
|
if (selectedAgents.length > 0) {
|
|
115
|
-
await saveAgentConfig(repoPath, selectedAgents, '1.4.
|
|
115
|
+
await saveAgentConfig(repoPath, selectedAgents, '1.4.13');
|
|
116
116
|
}
|
|
117
117
|
// Step 5: Inject into agent files
|
|
118
118
|
if (!options.skipAgentFiles && selectedAgents.length > 0) {
|
|
@@ -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":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,18 +7,18 @@ 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
13
|
const program = new Command();
|
|
14
14
|
program
|
|
15
15
|
.name('agentbrain')
|
|
16
16
|
.description('Generate smart context docs for coding agents')
|
|
17
|
-
.version('1.4.
|
|
17
|
+
.version('1.4.19');
|
|
18
18
|
// Add commands
|
|
19
19
|
program.addCommand(createSetupCommand());
|
|
20
20
|
program.addCommand(createInitCommand());
|
|
21
|
-
program.addCommand(
|
|
21
|
+
program.addCommand(createSpecCommand());
|
|
22
22
|
program.addCommand(createStandardsCommand());
|
|
23
23
|
program.addCommand(createHandoffCommand());
|
|
24
24
|
program.addCommand(createDoctorCommand());
|
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;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,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