@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.
Files changed (35) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +3 -0
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/setup.js +1 -1
  5. package/dist/commands/spec.d.ts +3 -0
  6. package/dist/commands/spec.d.ts.map +1 -0
  7. package/dist/commands/spec.js +84 -0
  8. package/dist/commands/spec.js.map +1 -0
  9. package/dist/index.js +3 -3
  10. package/dist/index.js.map +1 -1
  11. package/package.json +1 -1
  12. package/dist/__tests__/index.test.d.ts +0 -2
  13. package/dist/__tests__/index.test.js +0 -51
  14. package/dist/__tests__/index.test.js.map +0 -1
  15. package/dist/commands/__tests__/context.test.d.ts +0 -2
  16. package/dist/commands/__tests__/context.test.d.ts.map +0 -1
  17. package/dist/commands/__tests__/context.test.js +0 -54
  18. package/dist/commands/__tests__/context.test.js.map +0 -1
  19. package/dist/commands/__tests__/doctor.test.d.ts +0 -2
  20. package/dist/commands/__tests__/doctor.test.js +0 -46
  21. package/dist/commands/__tests__/doctor.test.js.map +0 -1
  22. package/dist/commands/config.d.ts +0 -3
  23. package/dist/commands/context.d.ts +0 -3
  24. package/dist/commands/context.d.ts.map +0 -1
  25. package/dist/commands/context.js +0 -90
  26. package/dist/commands/context.js.map +0 -1
  27. package/dist/commands/disable.d.ts +0 -3
  28. package/dist/commands/doctor.d.ts +0 -3
  29. package/dist/commands/handoff.d.ts +0 -3
  30. package/dist/commands/init.d.ts +0 -3
  31. package/dist/commands/setup.d.ts +0 -3
  32. package/dist/commands/standards.d.ts +0 -3
  33. package/dist/commands/status.d.ts +0 -3
  34. package/dist/display.d.ts +0 -57
  35. 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,CAsB3C"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -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.12');
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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createSpecCommand(): Command;
3
+ //# sourceMappingURL=spec.d.ts.map
@@ -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.12');
17
+ .version('1.4.19');
18
18
  // Add commands
19
19
  program.addCommand(createSetupCommand());
20
20
  program.addCommand(createInitCommand());
21
- program.addCommand(createContextCommand());
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,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,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,oBAAoB,EAAE,CAAC,CAAA;AAC1C,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"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentbrain/cli",
3
- "version": "1.4.12",
3
+ "version": "1.4.19",
4
4
  "description": "CLI for AgentBrain - generate smart context documentation for coding agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=context.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doctor.test.d.ts.map
@@ -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,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createConfigCommand(): Command;
3
- //# sourceMappingURL=config.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createContextCommand(): Command;
3
- //# sourceMappingURL=context.d.ts.map
@@ -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"}
@@ -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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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createDisableCommand(): Command;
3
- //# sourceMappingURL=disable.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createDoctorCommand(): Command;
3
- //# sourceMappingURL=doctor.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createHandoffCommand(): Command;
3
- //# sourceMappingURL=handoff.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createInitCommand(): Command;
3
- //# sourceMappingURL=init.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createSetupCommand(): Command;
3
- //# sourceMappingURL=setup.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createStandardsCommand(): Command;
3
- //# sourceMappingURL=standards.d.ts.map
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createStatusCommand(): Command;
3
- //# sourceMappingURL=status.d.ts.map
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
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map