@sdsrs/codeagent 0.1.0

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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +116 -0
  3. package/dist/adapters/code-graph.d.ts +18 -0
  4. package/dist/adapters/code-graph.d.ts.map +1 -0
  5. package/dist/adapters/code-graph.js +151 -0
  6. package/dist/adapters/code-graph.js.map +1 -0
  7. package/dist/adapters/memory.d.ts +13 -0
  8. package/dist/adapters/memory.d.ts.map +1 -0
  9. package/dist/adapters/memory.js +110 -0
  10. package/dist/adapters/memory.js.map +1 -0
  11. package/dist/adapters/orchestration/gsd.d.ts +20 -0
  12. package/dist/adapters/orchestration/gsd.d.ts.map +1 -0
  13. package/dist/adapters/orchestration/gsd.js +78 -0
  14. package/dist/adapters/orchestration/gsd.js.map +1 -0
  15. package/dist/adapters/orchestration/interface.d.ts +32 -0
  16. package/dist/adapters/orchestration/interface.d.ts.map +1 -0
  17. package/dist/adapters/orchestration/interface.js +2 -0
  18. package/dist/adapters/orchestration/interface.js.map +1 -0
  19. package/dist/adapters/orchestration/superpowers.d.ts +33 -0
  20. package/dist/adapters/orchestration/superpowers.d.ts.map +1 -0
  21. package/dist/adapters/orchestration/superpowers.js +117 -0
  22. package/dist/adapters/orchestration/superpowers.js.map +1 -0
  23. package/dist/broker/broker.d.ts +40 -0
  24. package/dist/broker/broker.d.ts.map +1 -0
  25. package/dist/broker/broker.js +181 -0
  26. package/dist/broker/broker.js.map +1 -0
  27. package/dist/broker/compressor.d.ts +7 -0
  28. package/dist/broker/compressor.d.ts.map +1 -0
  29. package/dist/broker/compressor.js +61 -0
  30. package/dist/broker/compressor.js.map +1 -0
  31. package/dist/broker/context-pack.d.ts +126 -0
  32. package/dist/broker/context-pack.d.ts.map +1 -0
  33. package/dist/broker/context-pack.js +103 -0
  34. package/dist/broker/context-pack.js.map +1 -0
  35. package/dist/broker/query-parser.d.ts +17 -0
  36. package/dist/broker/query-parser.d.ts.map +1 -0
  37. package/dist/broker/query-parser.js +127 -0
  38. package/dist/broker/query-parser.js.map +1 -0
  39. package/dist/cli/commands/chat.d.ts +13 -0
  40. package/dist/cli/commands/chat.d.ts.map +1 -0
  41. package/dist/cli/commands/chat.js +264 -0
  42. package/dist/cli/commands/chat.js.map +1 -0
  43. package/dist/cli/commands/config.d.ts +14 -0
  44. package/dist/cli/commands/config.d.ts.map +1 -0
  45. package/dist/cli/commands/config.js +94 -0
  46. package/dist/cli/commands/config.js.map +1 -0
  47. package/dist/cli/commands/memory.d.ts +10 -0
  48. package/dist/cli/commands/memory.d.ts.map +1 -0
  49. package/dist/cli/commands/memory.js +52 -0
  50. package/dist/cli/commands/memory.js.map +1 -0
  51. package/dist/cli/commands/search.d.ts +9 -0
  52. package/dist/cli/commands/search.d.ts.map +1 -0
  53. package/dist/cli/commands/search.js +45 -0
  54. package/dist/cli/commands/search.js.map +1 -0
  55. package/dist/cli/commands/session.d.ts +9 -0
  56. package/dist/cli/commands/session.d.ts.map +1 -0
  57. package/dist/cli/commands/session.js +86 -0
  58. package/dist/cli/commands/session.js.map +1 -0
  59. package/dist/cli/index.d.ts +3 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +77 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/cli/tui/renderer.d.ts +47 -0
  64. package/dist/cli/tui/renderer.d.ts.map +1 -0
  65. package/dist/cli/tui/renderer.js +237 -0
  66. package/dist/cli/tui/renderer.js.map +1 -0
  67. package/dist/hooks/session-start.d.ts +11 -0
  68. package/dist/hooks/session-start.d.ts.map +1 -0
  69. package/dist/hooks/session-start.js +51 -0
  70. package/dist/hooks/session-start.js.map +1 -0
  71. package/dist/hooks/stop.d.ts +11 -0
  72. package/dist/hooks/stop.d.ts.map +1 -0
  73. package/dist/hooks/stop.js +93 -0
  74. package/dist/hooks/stop.js.map +1 -0
  75. package/dist/hooks/user-prompt.d.ts +12 -0
  76. package/dist/hooks/user-prompt.d.ts.map +1 -0
  77. package/dist/hooks/user-prompt.js +46 -0
  78. package/dist/hooks/user-prompt.js.map +1 -0
  79. package/dist/providers/anthropic-api.d.ts +25 -0
  80. package/dist/providers/anthropic-api.d.ts.map +1 -0
  81. package/dist/providers/anthropic-api.js +93 -0
  82. package/dist/providers/anthropic-api.js.map +1 -0
  83. package/dist/providers/claude-cli.d.ts +16 -0
  84. package/dist/providers/claude-cli.d.ts.map +1 -0
  85. package/dist/providers/claude-cli.js +72 -0
  86. package/dist/providers/claude-cli.js.map +1 -0
  87. package/dist/providers/claude-sdk.d.ts +18 -0
  88. package/dist/providers/claude-sdk.d.ts.map +1 -0
  89. package/dist/providers/claude-sdk.js +141 -0
  90. package/dist/providers/claude-sdk.js.map +1 -0
  91. package/dist/providers/interface.d.ts +36 -0
  92. package/dist/providers/interface.d.ts.map +1 -0
  93. package/dist/providers/interface.js +2 -0
  94. package/dist/providers/interface.js.map +1 -0
  95. package/dist/scripts/install-hooks.d.ts +11 -0
  96. package/dist/scripts/install-hooks.d.ts.map +1 -0
  97. package/dist/scripts/install-hooks.js +86 -0
  98. package/dist/scripts/install-hooks.js.map +1 -0
  99. package/dist/session/manager.d.ts +65 -0
  100. package/dist/session/manager.d.ts.map +1 -0
  101. package/dist/session/manager.js +143 -0
  102. package/dist/session/manager.js.map +1 -0
  103. package/dist/session/schema.d.ts +7 -0
  104. package/dist/session/schema.d.ts.map +1 -0
  105. package/dist/session/schema.js +82 -0
  106. package/dist/session/schema.js.map +1 -0
  107. package/dist/utils/exec.d.ts +20 -0
  108. package/dist/utils/exec.d.ts.map +1 -0
  109. package/dist/utils/exec.js +28 -0
  110. package/dist/utils/exec.js.map +1 -0
  111. package/dist/utils/tokens.d.ts +12 -0
  112. package/dist/utils/tokens.d.ts.map +1 -0
  113. package/dist/utils/tokens.js +38 -0
  114. package/dist/utils/tokens.js.map +1 -0
  115. package/package.json +90 -0
  116. package/src/skills/brainstorm.md +33 -0
  117. package/src/skills/review.md +41 -0
@@ -0,0 +1,94 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ function getConfigPath() {
5
+ const configDir = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config');
6
+ return path.join(configDir, 'codeagent', 'config.json');
7
+ }
8
+ function readConfig() {
9
+ const configPath = getConfigPath();
10
+ try {
11
+ if (fs.existsSync(configPath)) {
12
+ return JSON.parse(fs.readFileSync(configPath, 'utf8'));
13
+ }
14
+ }
15
+ catch { /* ignore */ }
16
+ return {};
17
+ }
18
+ function writeConfig(config) {
19
+ const configPath = getConfigPath();
20
+ const dir = path.dirname(configPath);
21
+ if (!fs.existsSync(dir)) {
22
+ fs.mkdirSync(dir, { recursive: true });
23
+ }
24
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
25
+ }
26
+ export async function configCommand(action, key, value) {
27
+ const config = readConfig();
28
+ switch (action) {
29
+ case 'get': {
30
+ if (!key) {
31
+ // Show all config
32
+ console.log(JSON.stringify(config, null, 2));
33
+ return;
34
+ }
35
+ const val = config[key];
36
+ if (val !== undefined) {
37
+ console.log(`${key} = ${val}`);
38
+ }
39
+ else {
40
+ console.log(`${key} is not set`);
41
+ }
42
+ break;
43
+ }
44
+ case 'set': {
45
+ if (!key || value === undefined) {
46
+ console.error('Usage: codeagent config set <key> <value>');
47
+ console.error('Keys: orchestration (gsd|superpowers), provider (sdk|cli|api), model, maxBudgetUsd');
48
+ return;
49
+ }
50
+ // Type coerce known numeric keys
51
+ if (key === 'maxBudgetUsd') {
52
+ config[key] = parseFloat(value);
53
+ }
54
+ else {
55
+ config[key] = value;
56
+ }
57
+ writeConfig(config);
58
+ console.log(`${key} = ${config[key]}`);
59
+ break;
60
+ }
61
+ case 'delete':
62
+ case 'unset': {
63
+ if (!key) {
64
+ console.error('Usage: codeagent config unset <key>');
65
+ return;
66
+ }
67
+ delete config[key];
68
+ writeConfig(config);
69
+ console.log(`Removed: ${key}`);
70
+ break;
71
+ }
72
+ case 'path': {
73
+ console.log(getConfigPath());
74
+ break;
75
+ }
76
+ default: {
77
+ // Default: show all config
78
+ if (Object.keys(config).length === 0) {
79
+ console.log('No configuration set. Use: codeagent config set <key> <value>');
80
+ console.log('Keys: orchestration (gsd|superpowers), provider (sdk|cli|api), model, maxBudgetUsd');
81
+ }
82
+ else {
83
+ console.log(JSON.stringify(config, null, 2));
84
+ }
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * Read the global config (used by other commands to get defaults).
90
+ */
91
+ export function getConfig() {
92
+ return readConfig();
93
+ }
94
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface MemoryOptions {
2
+ type?: string;
3
+ save?: string;
4
+ body?: string;
5
+ }
6
+ /**
7
+ * Memory command — wrapper around claude-mem-lite CLI.
8
+ */
9
+ export declare function memoryCommand(queryStr?: string, opts?: MemoryOptions): Promise<void>;
10
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/memory.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -0,0 +1,52 @@
1
+ import { execSafe } from '../../utils/exec.js';
2
+ /**
3
+ * Memory command — wrapper around claude-mem-lite CLI.
4
+ */
5
+ export async function memoryCommand(queryStr, opts = {}) {
6
+ if (opts.save) {
7
+ // Save a new memory
8
+ const parts = ['claude-mem-lite', 'save'];
9
+ if (opts.type)
10
+ parts.push('--type', opts.type);
11
+ parts.push('--title', `"${opts.save.replace(/"/g, '\\"')}"`);
12
+ if (opts.body) {
13
+ parts.push('--body', `"${opts.body.replace(/"/g, '\\"')}"`);
14
+ }
15
+ const { stdout, ok } = execSafe(parts.join(' '), { timeout: 5000 });
16
+ if (ok) {
17
+ console.log('Memory saved:', stdout || opts.save);
18
+ }
19
+ else {
20
+ console.error('Failed to save memory. Check that claude-mem-lite is installed.');
21
+ }
22
+ return;
23
+ }
24
+ if (queryStr) {
25
+ // Search memories
26
+ const parts = ['claude-mem-lite', 'search', `"${queryStr}"`];
27
+ if (opts.type)
28
+ parts.push('--type', opts.type);
29
+ const { stdout, ok } = execSafe(parts.join(' '), { timeout: 5000 });
30
+ if (ok && stdout) {
31
+ console.log(stdout);
32
+ }
33
+ else if (ok) {
34
+ console.log('No memories found.');
35
+ }
36
+ else {
37
+ console.error('Search failed. Check that claude-mem-lite is installed.');
38
+ }
39
+ return;
40
+ }
41
+ // No query — show recent memories
42
+ const { stdout, ok } = execSafe('claude-mem-lite search "" --limit 10', {
43
+ timeout: 5000,
44
+ });
45
+ if (ok && stdout) {
46
+ console.log(stdout);
47
+ }
48
+ else {
49
+ console.log('No memories found or claude-mem-lite not available.');
50
+ }
51
+ }
52
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cli/commands/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAiB,EACjB,OAAsB,EAAE;IAExB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,oBAAoB;QACpB,MAAM,KAAK,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,kBAAkB;QAClB,MAAM,KAAK,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,sCAAsC,EAAE;QACtE,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface SearchOptions {
2
+ type?: string;
3
+ limit?: string;
4
+ }
5
+ /**
6
+ * Search command — wrapper around code-graph-mcp CLI.
7
+ */
8
+ export declare function searchCommand(queryStr: string, opts?: SearchOptions): Promise<void>;
9
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -0,0 +1,45 @@
1
+ import { execSafe } from '../../utils/exec.js';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ /**
5
+ * Search command — wrapper around code-graph-mcp CLI.
6
+ */
7
+ export async function searchCommand(queryStr, opts = {}) {
8
+ const repoRoot = process.cwd();
9
+ const dbPath = path.join(repoRoot, '.code-graph', 'index.db');
10
+ if (!fs.existsSync(dbPath)) {
11
+ console.error('No code-graph index found. Run: code-graph-mcp index');
12
+ process.exit(1);
13
+ }
14
+ const limit = opts.limit || '10';
15
+ const searchType = opts.type || 'semantic';
16
+ let cmd;
17
+ switch (searchType) {
18
+ case 'impact':
19
+ cmd = `code-graph-mcp impact "${queryStr}"`;
20
+ break;
21
+ case 'callgraph':
22
+ cmd = `code-graph-mcp callgraph "${queryStr}" --depth 2`;
23
+ break;
24
+ case 'overview':
25
+ cmd = `code-graph-mcp overview "${queryStr}"`;
26
+ break;
27
+ case 'map':
28
+ cmd = 'code-graph-mcp map';
29
+ break;
30
+ case 'semantic':
31
+ default:
32
+ cmd = `code-graph-mcp search "${queryStr}" --limit ${limit}`;
33
+ break;
34
+ }
35
+ const { stdout, ok } = execSafe(cmd, {
36
+ cwd: repoRoot,
37
+ timeout: 10000,
38
+ });
39
+ if (!ok) {
40
+ console.error('Search failed. Check that code-graph-mcp is installed and index is built.');
41
+ process.exit(1);
42
+ }
43
+ console.log(stdout);
44
+ }
45
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAAsB,EAAE;IAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAE9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IAC3C,IAAI,GAAW,CAAC;IAEhB,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,GAAG,GAAG,0BAA0B,QAAQ,GAAG,CAAC;YAC5C,MAAM;QACR,KAAK,WAAW;YACd,GAAG,GAAG,6BAA6B,QAAQ,aAAa,CAAC;YACzD,MAAM;QACR,KAAK,UAAU;YACb,GAAG,GAAG,4BAA4B,QAAQ,GAAG,CAAC;YAC9C,MAAM;QACR,KAAK,KAAK;YACR,GAAG,GAAG,oBAAoB,CAAC;YAC3B,MAAM;QACR,KAAK,UAAU,CAAC;QAChB;YACE,GAAG,GAAG,0BAA0B,QAAQ,aAAa,KAAK,EAAE,CAAC;YAC7D,MAAM;IACV,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE;QACnC,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface SessionOptions {
2
+ status?: string;
3
+ limit?: string;
4
+ }
5
+ /**
6
+ * Session command — list, show, delete sessions.
7
+ */
8
+ export declare function sessionCommand(action?: string, sessionId?: string, opts?: SessionOptions): Promise<void>;
9
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,SAAS,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
@@ -0,0 +1,86 @@
1
+ import { SessionManager } from '../../session/manager.js';
2
+ /**
3
+ * Session command — list, show, delete sessions.
4
+ */
5
+ export async function sessionCommand(action = 'list', sessionId, opts = {}) {
6
+ const sessions = new SessionManager();
7
+ try {
8
+ switch (action) {
9
+ case 'list': {
10
+ const list = sessions.list({
11
+ repoRoot: process.cwd(),
12
+ status: opts.status,
13
+ limit: parseInt(opts.limit || '20', 10),
14
+ });
15
+ if (list.length === 0) {
16
+ console.log('No sessions found.');
17
+ return;
18
+ }
19
+ console.log('Sessions:');
20
+ console.log('─'.repeat(80));
21
+ for (const s of list) {
22
+ const title = s.title ? ` — ${s.title}` : '';
23
+ const stage = s.stage !== 'general' ? ` [${s.stage}]` : '';
24
+ console.log(` ${s.id} ${s.status.padEnd(10)} ${s.createdAt}${stage}${title}`);
25
+ }
26
+ console.log(`\n${list.length} session(s)`);
27
+ break;
28
+ }
29
+ case 'show': {
30
+ if (!sessionId) {
31
+ console.error('Usage: codeagent session show <sessionId>');
32
+ return;
33
+ }
34
+ const session = sessions.get(sessionId);
35
+ if (!session) {
36
+ console.error(`Session not found: ${sessionId}`);
37
+ return;
38
+ }
39
+ console.log('Session Details:');
40
+ console.log('─'.repeat(40));
41
+ console.log(` ID: ${session.id}`);
42
+ console.log(` Status: ${session.status}`);
43
+ console.log(` Provider: ${session.provider}`);
44
+ console.log(` Orchestration: ${session.orchestration}`);
45
+ console.log(` Stage: ${session.stage}`);
46
+ console.log(` Repo: ${session.repoRoot}`);
47
+ console.log(` Branch: ${session.branch || '(none)'}`);
48
+ console.log(` Title: ${session.title || '(untitled)'}`);
49
+ console.log(` Created: ${session.createdAt}`);
50
+ console.log(` Updated: ${session.updatedAt}`);
51
+ if (session.providerSessionId) {
52
+ console.log(` Provider ID: ${session.providerSessionId}`);
53
+ }
54
+ // Show recent events
55
+ const events = sessions.getEvents(session.id, { limit: 10 });
56
+ if (events.length > 0) {
57
+ console.log('\nRecent Events:');
58
+ for (const e of events) {
59
+ console.log(` ${e.createdAt} ${e.eventType}`);
60
+ }
61
+ }
62
+ break;
63
+ }
64
+ case 'delete': {
65
+ if (!sessionId) {
66
+ console.error('Usage: codeagent session delete <sessionId>');
67
+ return;
68
+ }
69
+ const exists = sessions.get(sessionId);
70
+ if (!exists) {
71
+ console.error(`Session not found: ${sessionId}`);
72
+ return;
73
+ }
74
+ sessions.delete(sessionId);
75
+ console.log(`Deleted session: ${sessionId}`);
76
+ break;
77
+ }
78
+ default:
79
+ console.error(`Unknown action: ${action}. Use: list, show, delete`);
80
+ }
81
+ }
82
+ finally {
83
+ sessions.close();
84
+ }
85
+ }
86
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { chatCommand } from './commands/chat.js';
4
+ const program = new Command();
5
+ program
6
+ .name('codeagent')
7
+ .description('CodeAgent — Context-Aware Coding Assistant')
8
+ .version('0.1.0');
9
+ // --- chat command ---
10
+ program
11
+ .command('chat')
12
+ .description('Start an interactive coding session')
13
+ .option('-r, --resume <sessionId>', 'Resume an existing session')
14
+ .option('-p, --provider <type>', 'Provider: sdk or cli', 'sdk')
15
+ .option('-o, --orchestration <engine>', 'Orchestration: gsd or superpowers', 'gsd')
16
+ .option('-m, --model <model>', 'Claude model to use')
17
+ .option('--max-budget <usd>', 'Maximum budget in USD', parseFloat)
18
+ .action(async (opts) => {
19
+ await chatCommand({
20
+ resume: opts.resume,
21
+ provider: opts.provider,
22
+ orchestration: opts.orchestration,
23
+ model: opts.model,
24
+ maxBudget: opts.maxBudget,
25
+ });
26
+ });
27
+ // --- search command ---
28
+ program
29
+ .command('search <query>')
30
+ .description('Search code using Code Graph')
31
+ .option('-t, --type <type>', 'Search type: semantic, impact, callgraph, overview')
32
+ .option('-l, --limit <n>', 'Max results', '10')
33
+ .action(async (queryStr, opts) => {
34
+ const { searchCommand } = await import('./commands/search.js');
35
+ await searchCommand(queryStr, opts);
36
+ });
37
+ // --- memory command ---
38
+ program
39
+ .command('memory')
40
+ .description('Interact with the memory system')
41
+ .argument('[query]', 'Search query')
42
+ .option('-t, --type <type>', 'Memory type filter')
43
+ .option('-s, --save <title>', 'Save a new memory')
44
+ .option('--body <body>', 'Memory body (with --save)')
45
+ .action(async (queryStr, opts) => {
46
+ const { memoryCommand } = await import('./commands/memory.js');
47
+ await memoryCommand(queryStr, opts);
48
+ });
49
+ // --- session command ---
50
+ program
51
+ .command('session')
52
+ .description('Manage sessions')
53
+ .argument('[action]', 'Action: list, show, delete', 'list')
54
+ .argument('[sessionId]', 'Session ID (for show/delete)')
55
+ .option('-s, --status <status>', 'Filter by status')
56
+ .option('-l, --limit <n>', 'Max results', '20')
57
+ .action(async (action, sessionId, opts) => {
58
+ const { sessionCommand } = await import('./commands/session.js');
59
+ await sessionCommand(action, sessionId, opts);
60
+ });
61
+ // --- config command ---
62
+ program
63
+ .command('config')
64
+ .description('Manage configuration')
65
+ .argument('[action]', 'Action: get, set, unset, path')
66
+ .argument('[key]', 'Config key')
67
+ .argument('[value]', 'Config value (for set)')
68
+ .action(async (action, key, value) => {
69
+ const { configCommand } = await import('./commands/config.js');
70
+ await configCommand(action, key, value);
71
+ });
72
+ // --- Default: start chat ---
73
+ program.action(async () => {
74
+ await chatCommand();
75
+ });
76
+ program.parse();
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { TurnEvent } from '../../providers/interface.js';
2
+ import type { ContextPack, TaskSummary } from '../../broker/context-pack.js';
3
+ export declare class TuiRenderer {
4
+ private spinnerInterval;
5
+ private spinnerFrame;
6
+ private currentStage;
7
+ private totalCost;
8
+ private turnCount;
9
+ /** Render the welcome banner */
10
+ banner(): void;
11
+ /** Show the prompt for user input */
12
+ prompt(): void;
13
+ /** Start a thinking spinner */
14
+ startSpinner(label?: string): void;
15
+ /** Stop the spinner */
16
+ stopSpinner(): void;
17
+ /** Render a turn event from the provider */
18
+ renderEvent(event: TurnEvent): void;
19
+ /** Render context injection indicator */
20
+ contextIndicator(pack: ContextPack): void;
21
+ /** Render a stage panel with pending tasks */
22
+ stagePanel(stage: string, tasks: TaskSummary[], specTitle?: string): void;
23
+ /** Render session info */
24
+ sessionInfo(info: {
25
+ id: string;
26
+ stage?: string;
27
+ provider?: string;
28
+ title?: string;
29
+ }): void;
30
+ /** Render cost summary */
31
+ costSummary(): void;
32
+ /** Render the help message */
33
+ help(): void;
34
+ /** Render a system message */
35
+ system(msg: string): void;
36
+ /** Render an error message */
37
+ error(msg: string): void;
38
+ /** Render a success message */
39
+ success(msg: string): void;
40
+ /** Render a warning message */
41
+ warn(msg: string): void;
42
+ /** Set the current stage */
43
+ setStage(stage: string): void;
44
+ /** Cleanup */
45
+ cleanup(): void;
46
+ }
47
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA6B7E,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IAEtB,gCAAgC;IAChC,MAAM,IAAI,IAAI;IASd,qCAAqC;IACrC,MAAM,IAAI,IAAI;IAUd,+BAA+B;IAC/B,YAAY,CAAC,KAAK,SAAa,GAAG,IAAI;IAUtC,uBAAuB;IACvB,WAAW,IAAI,IAAI;IAQnB,4CAA4C;IAC5C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAgDnC,yCAAyC;IACzC,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAazC,8CAA8C;IAC9C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IA8BzE,0BAA0B;IAC1B,WAAW,CAAC,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;IAYR,0BAA0B;IAC1B,WAAW,IAAI,IAAI;IAMnB,8BAA8B;IAC9B,IAAI,IAAI,IAAI;IAmBZ,8BAA8B;IAC9B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,8BAA8B;IAC9B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,+BAA+B;IAC/B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1B,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,cAAc;IACd,OAAO,IAAI,IAAI;CAGhB"}