@sdsrs/codeagent 0.2.1 → 0.4.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 (167) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +18 -6
  3. package/dist/adapters/__tests__/code-graph.test.d.ts +2 -0
  4. package/dist/adapters/__tests__/code-graph.test.d.ts.map +1 -0
  5. package/dist/adapters/__tests__/code-graph.test.js +118 -0
  6. package/dist/adapters/__tests__/code-graph.test.js.map +1 -0
  7. package/dist/adapters/__tests__/memory.test.d.ts +2 -0
  8. package/dist/adapters/__tests__/memory.test.d.ts.map +1 -0
  9. package/dist/adapters/__tests__/memory.test.js +168 -0
  10. package/dist/adapters/__tests__/memory.test.js.map +1 -0
  11. package/dist/adapters/code-graph.d.ts +7 -1
  12. package/dist/adapters/code-graph.d.ts.map +1 -1
  13. package/dist/adapters/code-graph.js +69 -33
  14. package/dist/adapters/code-graph.js.map +1 -1
  15. package/dist/adapters/memory.d.ts +1 -1
  16. package/dist/adapters/memory.d.ts.map +1 -1
  17. package/dist/adapters/memory.js +23 -14
  18. package/dist/adapters/memory.js.map +1 -1
  19. package/dist/adapters/orchestration/gsd.d.ts +0 -0
  20. package/dist/adapters/orchestration/gsd.d.ts.map +1 -1
  21. package/dist/adapters/orchestration/gsd.js +18 -1
  22. package/dist/adapters/orchestration/gsd.js.map +1 -1
  23. package/dist/adapters/orchestration/interface.d.ts +0 -0
  24. package/dist/adapters/orchestration/interface.d.ts.map +0 -0
  25. package/dist/adapters/orchestration/interface.js +0 -0
  26. package/dist/adapters/orchestration/interface.js.map +0 -0
  27. package/dist/adapters/orchestration/superpowers.d.ts +0 -0
  28. package/dist/adapters/orchestration/superpowers.d.ts.map +0 -0
  29. package/dist/adapters/orchestration/superpowers.js +0 -0
  30. package/dist/adapters/orchestration/superpowers.js.map +0 -0
  31. package/dist/broker/__tests__/broker.test.d.ts +2 -0
  32. package/dist/broker/__tests__/broker.test.d.ts.map +1 -0
  33. package/dist/broker/__tests__/broker.test.js +207 -0
  34. package/dist/broker/__tests__/broker.test.js.map +1 -0
  35. package/dist/broker/__tests__/compressor.test.d.ts +2 -0
  36. package/dist/broker/__tests__/compressor.test.d.ts.map +1 -0
  37. package/dist/broker/__tests__/compressor.test.js +278 -0
  38. package/dist/broker/__tests__/compressor.test.js.map +1 -0
  39. package/dist/broker/__tests__/query-parser.test.d.ts +2 -0
  40. package/dist/broker/__tests__/query-parser.test.d.ts.map +1 -0
  41. package/dist/broker/__tests__/query-parser.test.js +101 -0
  42. package/dist/broker/__tests__/query-parser.test.js.map +1 -0
  43. package/dist/broker/broker.d.ts +1 -1
  44. package/dist/broker/broker.d.ts.map +1 -1
  45. package/dist/broker/broker.js +45 -29
  46. package/dist/broker/broker.js.map +1 -1
  47. package/dist/broker/compressor.d.ts +0 -0
  48. package/dist/broker/compressor.d.ts.map +1 -1
  49. package/dist/broker/compressor.js +82 -2
  50. package/dist/broker/compressor.js.map +1 -1
  51. package/dist/broker/context-pack.d.ts +3 -0
  52. package/dist/broker/context-pack.d.ts.map +1 -1
  53. package/dist/broker/context-pack.js +18 -0
  54. package/dist/broker/context-pack.js.map +1 -1
  55. package/dist/broker/query-parser.d.ts +0 -0
  56. package/dist/broker/query-parser.d.ts.map +0 -0
  57. package/dist/broker/query-parser.js +0 -0
  58. package/dist/broker/query-parser.js.map +0 -0
  59. package/dist/cli/commands/chat.d.ts +0 -0
  60. package/dist/cli/commands/chat.d.ts.map +1 -1
  61. package/dist/cli/commands/chat.js +14 -1
  62. package/dist/cli/commands/chat.js.map +1 -1
  63. package/dist/cli/commands/config.d.ts +1 -2
  64. package/dist/cli/commands/config.d.ts.map +1 -1
  65. package/dist/cli/commands/config.js +0 -0
  66. package/dist/cli/commands/config.js.map +0 -0
  67. package/dist/cli/commands/memory.d.ts +0 -0
  68. package/dist/cli/commands/memory.d.ts.map +0 -0
  69. package/dist/cli/commands/memory.js +0 -0
  70. package/dist/cli/commands/memory.js.map +0 -0
  71. package/dist/cli/commands/search.d.ts +0 -0
  72. package/dist/cli/commands/search.d.ts.map +1 -1
  73. package/dist/cli/commands/search.js +6 -2
  74. package/dist/cli/commands/search.js.map +1 -1
  75. package/dist/cli/commands/session.d.ts +0 -0
  76. package/dist/cli/commands/session.d.ts.map +0 -0
  77. package/dist/cli/commands/session.js +0 -0
  78. package/dist/cli/commands/session.js.map +0 -0
  79. package/dist/cli/index.d.ts +0 -0
  80. package/dist/cli/index.d.ts.map +0 -0
  81. package/dist/cli/index.js +6 -4
  82. package/dist/cli/index.js.map +1 -1
  83. package/dist/cli/tui/renderer.d.ts +0 -0
  84. package/dist/cli/tui/renderer.d.ts.map +0 -0
  85. package/dist/cli/tui/renderer.js +0 -0
  86. package/dist/cli/tui/renderer.js.map +0 -0
  87. package/dist/hooks/__tests__/stop.test.d.ts +2 -0
  88. package/dist/hooks/__tests__/stop.test.d.ts.map +1 -0
  89. package/dist/hooks/__tests__/stop.test.js +88 -0
  90. package/dist/hooks/__tests__/stop.test.js.map +1 -0
  91. package/dist/hooks/post-compact.d.ts +0 -0
  92. package/dist/hooks/post-compact.d.ts.map +0 -0
  93. package/dist/hooks/post-compact.js +8 -7
  94. package/dist/hooks/post-compact.js.map +1 -1
  95. package/dist/hooks/session-start.d.ts +0 -0
  96. package/dist/hooks/session-start.d.ts.map +0 -0
  97. package/dist/hooks/session-start.js +6 -5
  98. package/dist/hooks/session-start.js.map +1 -1
  99. package/dist/hooks/stop.d.ts +6 -0
  100. package/dist/hooks/stop.d.ts.map +1 -1
  101. package/dist/hooks/stop.js +59 -42
  102. package/dist/hooks/stop.js.map +1 -1
  103. package/dist/hooks/user-prompt.d.ts +0 -0
  104. package/dist/hooks/user-prompt.d.ts.map +0 -0
  105. package/dist/hooks/user-prompt.js +0 -0
  106. package/dist/hooks/user-prompt.js.map +0 -0
  107. package/dist/providers/__tests__/anthropic-api.test.d.ts +2 -0
  108. package/dist/providers/__tests__/anthropic-api.test.d.ts.map +1 -0
  109. package/dist/providers/__tests__/anthropic-api.test.js +113 -0
  110. package/dist/providers/__tests__/anthropic-api.test.js.map +1 -0
  111. package/dist/providers/__tests__/claude-sdk.test.d.ts +2 -0
  112. package/dist/providers/__tests__/claude-sdk.test.d.ts.map +1 -0
  113. package/dist/providers/__tests__/claude-sdk.test.js +121 -0
  114. package/dist/providers/__tests__/claude-sdk.test.js.map +1 -0
  115. package/dist/providers/anthropic-api.d.ts +1 -0
  116. package/dist/providers/anthropic-api.d.ts.map +1 -1
  117. package/dist/providers/anthropic-api.js +18 -12
  118. package/dist/providers/anthropic-api.js.map +1 -1
  119. package/dist/providers/claude-cli.d.ts +0 -0
  120. package/dist/providers/claude-cli.d.ts.map +1 -1
  121. package/dist/providers/claude-cli.js +4 -16
  122. package/dist/providers/claude-cli.js.map +1 -1
  123. package/dist/providers/claude-sdk.d.ts +3 -2
  124. package/dist/providers/claude-sdk.d.ts.map +1 -1
  125. package/dist/providers/claude-sdk.js +12 -11
  126. package/dist/providers/claude-sdk.js.map +1 -1
  127. package/dist/providers/interface.d.ts +1 -0
  128. package/dist/providers/interface.d.ts.map +1 -1
  129. package/dist/providers/interface.js +0 -0
  130. package/dist/providers/interface.js.map +0 -0
  131. package/dist/scripts/install-hooks.d.ts +2 -2
  132. package/dist/scripts/install-hooks.d.ts.map +0 -0
  133. package/dist/scripts/install-hooks.js +6 -9
  134. package/dist/scripts/install-hooks.js.map +1 -1
  135. package/dist/session/__tests__/manager.test.d.ts +2 -0
  136. package/dist/session/__tests__/manager.test.d.ts.map +1 -0
  137. package/dist/session/__tests__/manager.test.js +108 -0
  138. package/dist/session/__tests__/manager.test.js.map +1 -0
  139. package/dist/session/manager.d.ts +0 -0
  140. package/dist/session/manager.d.ts.map +1 -1
  141. package/dist/session/manager.js +2 -1
  142. package/dist/session/manager.js.map +1 -1
  143. package/dist/session/schema.d.ts +0 -0
  144. package/dist/session/schema.d.ts.map +1 -1
  145. package/dist/session/schema.js +2 -1
  146. package/dist/session/schema.js.map +1 -1
  147. package/dist/utils/__tests__/exec.test.d.ts +2 -0
  148. package/dist/utils/__tests__/exec.test.d.ts.map +1 -0
  149. package/dist/utils/__tests__/exec.test.js +104 -0
  150. package/dist/utils/__tests__/exec.test.js.map +1 -0
  151. package/dist/utils/__tests__/tokens.test.d.ts +2 -0
  152. package/dist/utils/__tests__/tokens.test.d.ts.map +1 -0
  153. package/dist/utils/__tests__/tokens.test.js +64 -0
  154. package/dist/utils/__tests__/tokens.test.js.map +1 -0
  155. package/dist/utils/exec.d.ts +16 -0
  156. package/dist/utils/exec.d.ts.map +1 -1
  157. package/dist/utils/exec.js +33 -3
  158. package/dist/utils/exec.js.map +1 -1
  159. package/dist/utils/tokens.d.ts +0 -0
  160. package/dist/utils/tokens.d.ts.map +0 -0
  161. package/dist/utils/tokens.js +0 -0
  162. package/dist/utils/tokens.js.map +0 -0
  163. package/package.json +1 -1
  164. package/src/skills/brainstorm.md +0 -0
  165. package/src/skills/remember.md +0 -0
  166. package/src/skills/review.md +0 -0
  167. package/src/skills/spec.md +0 -0
@@ -7,7 +7,7 @@ export interface MemoryResult {
7
7
  }
8
8
  /**
9
9
  * Query memory engine via claude-mem-lite CLI.
10
- * Async signature retained for call-site .catch() compatibility and future async conversion.
10
+ * Uses async exec for truly non-blocking subprocess calls.
11
11
  */
12
12
  export declare function queryMemory(parsed: ParsedQuery, tokenBudget: number, stage?: Stage): Promise<MemoryResult>;
13
13
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/adapters/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAeD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,YAAY,CAAC,CAiCvB"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/adapters/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAeD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,YAAY,CAAC,CAiDvB"}
@@ -1,4 +1,4 @@
1
- import { execSafe } from '../utils/exec.js';
1
+ import { execSafeAsync } from '../utils/exec.js';
2
2
  import { truncateToTokenBudget } from '../utils/tokens.js';
3
3
  const MEM = 'claude-mem-lite';
4
4
  function getSearchTypes(stage) {
@@ -13,7 +13,7 @@ function getSearchTypes(stage) {
13
13
  }
14
14
  /**
15
15
  * Query memory engine via claude-mem-lite CLI.
16
- * Async signature retained for call-site .catch() compatibility and future async conversion.
16
+ * Uses async exec for truly non-blocking subprocess calls.
17
17
  */
18
18
  export async function queryMemory(parsed, tokenBudget, stage) {
19
19
  const result = { memories: [], bugWarnings: [], raw: '' };
@@ -22,22 +22,27 @@ export async function queryMemory(parsed, tokenBudget, stage) {
22
22
  return result;
23
23
  const types = getSearchTypes(stage);
24
24
  const allRaw = [];
25
+ // Build all search calls upfront, run in single Promise.allSettled
26
+ // Timeouts kept tight (800ms each, max 3 calls) to stay within 3s hook budget
27
+ const calls = [];
25
28
  if (types.length === 0) {
26
- const { stdout, ok } = execSafe(MEM, ['search', searchQuery, '--limit', '8'], { timeout: 1500 });
27
- if (ok && stdout)
28
- allRaw.push(stdout);
29
+ // Unfiltered search + bugfix search in parallel
30
+ calls.push(execSafeAsync(MEM, ['search', searchQuery, '--limit', '8'], { timeout: 800 }), execSafeAsync(MEM, ['search', searchQuery, '--type', 'bugfix', '--limit', '3'], { timeout: 800 }));
29
31
  }
30
32
  else {
33
+ // Typed searches (cap at 2) + bugfix if not already included — all in parallel
31
34
  for (const type of types.slice(0, 2)) {
32
- const { stdout, ok } = execSafe(MEM, ['search', searchQuery, '--type', type, '--limit', '5'], { timeout: 1500 });
33
- if (ok && stdout)
34
- allRaw.push(stdout);
35
+ calls.push(execSafeAsync(MEM, ['search', searchQuery, '--type', type, '--limit', '5'], { timeout: 800 }));
36
+ }
37
+ if (!types.includes('bugfix')) {
38
+ calls.push(execSafeAsync(MEM, ['search', searchQuery, '--type', 'bugfix', '--limit', '3'], { timeout: 800 }));
35
39
  }
36
40
  }
37
- if (!types.includes('bugfix')) {
38
- const { stdout, ok } = execSafe(MEM, ['search', searchQuery, '--type', 'bugfix', '--limit', '3'], { timeout: 1500 });
39
- if (ok && stdout)
40
- allRaw.push(stdout);
41
+ const results = await Promise.allSettled(calls);
42
+ for (const r of results) {
43
+ if (r.status === 'fulfilled' && r.value.ok && r.value.stdout) {
44
+ allRaw.push(r.value.stdout);
45
+ }
41
46
  }
42
47
  result.raw = allRaw.join('\n---\n');
43
48
  if (result.raw) {
@@ -53,19 +58,22 @@ function parseMemoryEntries(raw) {
53
58
  return [];
54
59
  const entries = [];
55
60
  const blocks = raw.split(/(?:^|\n)---\n/);
56
- for (const block of blocks) {
57
- const trimmed = block.trim();
61
+ for (let i = 0; i < blocks.length; i++) {
62
+ const trimmed = blocks[i].trim();
58
63
  if (!trimmed)
59
64
  continue;
60
65
  const lines = trimmed.split('\n');
61
66
  const firstLine = lines[0] || '';
62
67
  const match = firstLine.match(/^#?(\d+)\s*\[(\w+)]\s*(.+)/);
68
+ // Position-based confidence: earlier results are more relevant
69
+ const confidence = Math.max(0.1, 1.0 - i * 0.1);
63
70
  if (match) {
64
71
  entries.push({
65
72
  id: parseInt(match[1], 10),
66
73
  type: match[2],
67
74
  title: match[3].trim(),
68
75
  body: lines.slice(1).join('\n').trim(),
76
+ confidence,
69
77
  });
70
78
  }
71
79
  else {
@@ -73,6 +81,7 @@ function parseMemoryEntries(raw) {
73
81
  type: 'semantic',
74
82
  title: firstLine.slice(0, 100),
75
83
  body: lines.slice(1).join('\n').trim(),
84
+ confidence: confidence * 0.8,
76
85
  });
77
86
  }
78
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/adapters/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/adapters/memory.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"gsd.d.ts","sourceRoot":"","sources":["../../../src/adapters/orchestration/gsd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA2BtF;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,oBAAoB;IACrD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAO;gBAE/B,QAAQ,EAAE,MAAM;IAI5B,OAAO,CAAC,YAAY;YAIN,SAAS;IAiBjB,eAAe,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMxC,aAAa,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAU5C,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQxC,YAAY,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAIlE,cAAc,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,aAAa,IAAI,MAAM;IAIvB,kBAAkB,IAAI,KAAK,EAAE;CAG9B"}
1
+ {"version":3,"file":"gsd.d.ts","sourceRoot":"","sources":["../../../src/adapters/orchestration/gsd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA2BtF;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,oBAAoB;IACrD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAO;gBAE/B,QAAQ,EAAE,MAAM;IAI5B,OAAO,CAAC,YAAY;YAIN,SAAS;IAuBjB,eAAe,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMxC,aAAa,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAU5C,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQxC,YAAY,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAIlE,cAAc,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,aAAa,IAAI,MAAM;IAIvB,kBAAkB,IAAI,KAAK,EAAE;CAG9B"}
@@ -31,7 +31,13 @@ export class GsdAdapter {
31
31
  }
32
32
  try {
33
33
  const raw = await fs.readFile(this.getStatePath(), 'utf8');
34
- this.cachedState = JSON.parse(raw);
34
+ const parsed = JSON.parse(raw);
35
+ if (!isValidGsdState(parsed)) {
36
+ this.cachedState = null;
37
+ this.cacheTime = Date.now();
38
+ return null;
39
+ }
40
+ this.cachedState = parsed;
35
41
  this.cacheTime = Date.now();
36
42
  return this.cachedState;
37
43
  }
@@ -78,4 +84,15 @@ export class GsdAdapter {
78
84
  return ['brainstorm', 'plan', 'implement', 'review', 'debug'];
79
85
  }
80
86
  }
87
+ /** Basic shape guard — rejects obviously malformed state.json */
88
+ function isValidGsdState(val) {
89
+ if (typeof val !== 'object' || val === null || Array.isArray(val))
90
+ return false;
91
+ const obj = val;
92
+ if (obj.phase !== undefined && typeof obj.phase !== 'string')
93
+ return false;
94
+ if (obj.tasks !== undefined && !Array.isArray(obj.tasks))
95
+ return false;
96
+ return true;
97
+ }
81
98
  //# sourceMappingURL=gsd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gsd.js","sourceRoot":"","sources":["../../../src/adapters/orchestration/gsd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gsd.js","sourceRoot":"","sources":["../../../src/adapters/orchestration/gsd.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=broker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.test.d.ts","sourceRoot":"","sources":["../../../src/broker/__tests__/broker.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,207 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { ContextBroker, formatContextPack } from '../broker.js';
3
+ import { emptyContextPack, hasContent, adaptBudget } from '../context-pack.js';
4
+ describe('ContextBroker', () => {
5
+ it('creates a broker instance without throwing', () => {
6
+ const broker = new ContextBroker('/tmp/nonexistent');
7
+ expect(broker).toBeDefined();
8
+ });
9
+ it('returns empty pack for action-only queries', async () => {
10
+ const broker = new ContextBroker('/tmp/nonexistent');
11
+ const pack = await broker.buildContextPack({
12
+ repoRoot: '/tmp/nonexistent',
13
+ userQuery: 'yes',
14
+ });
15
+ expect(hasContent(pack)).toBe(false);
16
+ });
17
+ it('returns pack without crashing when no systems are available', async () => {
18
+ const broker = new ContextBroker('/tmp/nonexistent');
19
+ const pack = await broker.buildContextPack({
20
+ repoRoot: '/tmp/nonexistent',
21
+ userQuery: 'how does processPayment work in the payment module?',
22
+ });
23
+ // Should not throw — graceful degradation
24
+ expect(pack).toBeDefined();
25
+ expect(pack.relevantFiles).toBeDefined();
26
+ expect(pack.priorMemories).toBeDefined();
27
+ });
28
+ });
29
+ describe('formatContextPack', () => {
30
+ it('returns empty string for empty pack', () => {
31
+ expect(formatContextPack(emptyContextPack())).toBe('');
32
+ });
33
+ it('formats code context', () => {
34
+ const pack = {
35
+ ...emptyContextPack(),
36
+ relevantFiles: [
37
+ { path: 'src/payment/refund.ts', reason: 'semantic search hit' },
38
+ ],
39
+ };
40
+ const output = formatContextPack(pack);
41
+ expect(output).toContain('<codeagent-context>');
42
+ expect(output).toContain('src/payment/refund.ts');
43
+ expect(output).toContain('</codeagent-context>');
44
+ });
45
+ it('formats bug warnings', () => {
46
+ const pack = {
47
+ ...emptyContextPack(),
48
+ bugWarnings: [
49
+ { type: 'bugfix', title: 'Duplicate refund', body: 'Missing idempotency key' },
50
+ ],
51
+ };
52
+ const output = formatContextPack(pack);
53
+ expect(output).toContain('Bug Warnings');
54
+ expect(output).toContain('Duplicate refund');
55
+ });
56
+ it('formats orchestration state', () => {
57
+ const pack = {
58
+ ...emptyContextPack(),
59
+ currentStage: 'implement',
60
+ pendingTasks: [
61
+ { id: '1', title: 'Add refund endpoint', status: 'pending' },
62
+ ],
63
+ };
64
+ const output = formatContextPack(pack);
65
+ expect(output).toContain('implement');
66
+ expect(output).toContain('Add refund endpoint');
67
+ });
68
+ it('formats memories', () => {
69
+ const pack = {
70
+ ...emptyContextPack(),
71
+ priorMemories: [
72
+ { type: 'decision', title: 'Use cents for amounts', body: 'Avoid float issues' },
73
+ ],
74
+ };
75
+ const output = formatContextPack(pack);
76
+ expect(output).toContain('Use cents for amounts');
77
+ });
78
+ it('formats suggestedApproach', () => {
79
+ const pack = {
80
+ ...emptyContextPack(),
81
+ relevantFiles: [{ path: 'f.ts', reason: 'hit' }],
82
+ suggestedApproach: 'Review affected files before changes.',
83
+ };
84
+ const output = formatContextPack(pack);
85
+ expect(output).toContain('f.ts');
86
+ });
87
+ it('formats risks', () => {
88
+ const pack = {
89
+ ...emptyContextPack(),
90
+ relevantFiles: [{ path: 'f.ts', reason: 'hit' }],
91
+ risks: ['High-impact change: src/core.ts', 'Prior bug: payment double-charge'],
92
+ };
93
+ const output = formatContextPack(pack);
94
+ expect(output).toContain('Risks');
95
+ expect(output).toContain('High-impact change');
96
+ expect(output).toContain('Prior bug');
97
+ });
98
+ it('shows multi-line memory body up to 500 chars', () => {
99
+ const pack = {
100
+ ...emptyContextPack(),
101
+ priorMemories: [{
102
+ type: 'decision',
103
+ title: 'Use PostgreSQL',
104
+ body: 'First line of reasoning.\nSecond line with details.\nThird line conclusion.',
105
+ }],
106
+ };
107
+ const output = formatContextPack(pack);
108
+ expect(output).toContain('Second line with details');
109
+ });
110
+ it('renders repoSummary as Project Overview section', () => {
111
+ const pack = {
112
+ ...emptyContextPack(),
113
+ repoSummary: 'A TypeScript project with modular architecture',
114
+ };
115
+ const output = formatContextPack(pack);
116
+ expect(output).toContain('## Project Overview');
117
+ expect(output).toContain('modular architecture');
118
+ });
119
+ });
120
+ describe('ContextBroker changedFiles', () => {
121
+ it('processes changedFiles via parallel impact analysis', async () => {
122
+ const broker = new ContextBroker('/tmp/nonexistent');
123
+ const pack = await broker.buildContextPack({
124
+ repoRoot: '/tmp/nonexistent',
125
+ userQuery: 'review the changes in the payment module',
126
+ changedFiles: ['src/payment/refund.ts', 'src/payment/charge.ts'],
127
+ });
128
+ // Should not crash even when code-graph-mcp is unavailable
129
+ expect(pack).toBeDefined();
130
+ expect(pack.relevantFiles).toBeDefined();
131
+ });
132
+ });
133
+ describe('adaptBudget', () => {
134
+ const base = { code: 800, memory: 600, orch: 300, meta: 300 };
135
+ it('allocates more code budget for impact intent', () => {
136
+ const adapted = adaptBudget(base, 'impact');
137
+ expect(adapted.code).toBeGreaterThan(base.code);
138
+ expect(adapted.memory).toBeLessThan(base.memory);
139
+ });
140
+ it('allocates more memory budget for debug intent', () => {
141
+ const adapted = adaptBudget(base, 'debug');
142
+ expect(adapted.memory).toBeGreaterThan(base.memory);
143
+ expect(adapted.code).toBeLessThan(base.code);
144
+ });
145
+ it('returns base budget for general intent', () => {
146
+ const adapted = adaptBudget(base, 'general');
147
+ expect(adapted).toEqual(base);
148
+ });
149
+ it('clamps to zero with tiny budgets', () => {
150
+ const tiny = { code: 50, memory: 50, orch: 50, meta: 50 };
151
+ const adapted = adaptBudget(tiny, 'debug');
152
+ expect(adapted.code).toBe(0); // 50 - 100 clamped to 0
153
+ expect(adapted.memory).toBe(250); // 50 + 200
154
+ expect(adapted.meta).toBe(0); // 50 - 100 clamped to 0
155
+ });
156
+ });
157
+ describe('ContextBroker heuristics', () => {
158
+ it('generates suggestedApproach for brainstorm stage', async () => {
159
+ const broker = new ContextBroker('/tmp/nonexistent');
160
+ const pack = await broker.buildContextPack({
161
+ repoRoot: '/tmp/nonexistent',
162
+ userQuery: 'analyze the payment architecture',
163
+ stage: 'brainstorm',
164
+ });
165
+ // Brainstorm stage should trigger approach suggestion
166
+ if (pack.suggestedApproach) {
167
+ expect(pack.suggestedApproach).toContain('Explore alternatives');
168
+ }
169
+ });
170
+ it('generates bug-derived risks when bug warnings exist', async () => {
171
+ // This tests the heuristic indirectly - even without external systems,
172
+ // the fillHeuristics method should process whatever is in the pack
173
+ const broker = new ContextBroker('/tmp/nonexistent');
174
+ const pack = await broker.buildContextPack({
175
+ repoRoot: '/tmp/nonexistent',
176
+ userQuery: 'debug the processPayment error in payment module',
177
+ });
178
+ // Even if no bugs found (no external systems), should not crash
179
+ expect(pack.risks).toBeDefined();
180
+ expect(Array.isArray(pack.risks)).toBe(true);
181
+ });
182
+ });
183
+ describe('adaptBudget', () => {
184
+ const base = { code: 800, memory: 600, orch: 300, meta: 300 };
185
+ it('allocates more code budget for impact intent', () => {
186
+ const adapted = adaptBudget(base, 'impact');
187
+ expect(adapted.code).toBeGreaterThan(base.code);
188
+ expect(adapted.memory).toBeLessThan(base.memory);
189
+ });
190
+ it('allocates more memory budget for debug intent', () => {
191
+ const adapted = adaptBudget(base, 'debug');
192
+ expect(adapted.memory).toBeGreaterThan(base.memory);
193
+ expect(adapted.code).toBeLessThan(base.code);
194
+ });
195
+ it('returns base budget for general intent', () => {
196
+ const adapted = adaptBudget(base, 'general');
197
+ expect(adapted).toEqual(base);
198
+ });
199
+ it('clamps to zero with tiny budgets', () => {
200
+ const tiny = { code: 50, memory: 50, orch: 50, meta: 50 };
201
+ const adapted = adaptBudget(tiny, 'debug');
202
+ expect(adapted.code).toBe(0);
203
+ expect(adapted.memory).toBe(250);
204
+ expect(adapted.meta).toBe(0);
205
+ });
206
+ });
207
+ //# sourceMappingURL=broker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.test.js","sourceRoot":"","sources":["../../../src/broker/__tests__/broker.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compressor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressor.test.d.ts","sourceRoot":"","sources":["../../../src/broker/__tests__/compressor.test.ts"],"names":[],"mappings":""}