codingbuddy 4.4.0 → 5.0.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 (201) hide show
  1. package/dist/src/agent/agent.module.js +3 -1
  2. package/dist/src/agent/agent.module.js.map +1 -1
  3. package/dist/src/agent/agent.service.d.ts +13 -4
  4. package/dist/src/agent/agent.service.js +125 -12
  5. package/dist/src/agent/agent.service.js.map +1 -1
  6. package/dist/src/agent/agent.types.d.ts +53 -0
  7. package/dist/src/agent/agent.types.js.map +1 -1
  8. package/dist/src/collaboration/discussion-engine.d.ts +14 -0
  9. package/dist/src/collaboration/discussion-engine.js +49 -0
  10. package/dist/src/collaboration/discussion-engine.js.map +1 -0
  11. package/dist/src/collaboration/index.d.ts +5 -0
  12. package/dist/src/collaboration/index.js +22 -0
  13. package/dist/src/collaboration/index.js.map +1 -0
  14. package/dist/src/collaboration/opinion-adapter.d.ts +14 -0
  15. package/dist/src/collaboration/opinion-adapter.js +56 -0
  16. package/dist/src/collaboration/opinion-adapter.js.map +1 -0
  17. package/dist/src/collaboration/terminal-formatter.d.ts +5 -0
  18. package/dist/src/collaboration/terminal-formatter.js +57 -0
  19. package/dist/src/collaboration/terminal-formatter.js.map +1 -0
  20. package/dist/src/collaboration/types.d.ts +50 -0
  21. package/dist/src/collaboration/types.js +53 -0
  22. package/dist/src/collaboration/types.js.map +1 -0
  23. package/dist/src/config/config.schema.d.ts +8 -0
  24. package/dist/src/config/config.schema.js +4 -0
  25. package/dist/src/config/config.schema.js.map +1 -1
  26. package/dist/src/context/context-document.service.d.ts +1 -1
  27. package/dist/src/context/context-document.service.js +6 -2
  28. package/dist/src/context/context-document.service.js.map +1 -1
  29. package/dist/src/context/context-document.types.d.ts +18 -0
  30. package/dist/src/context/context-document.types.js +13 -1
  31. package/dist/src/context/context-document.types.js.map +1 -1
  32. package/dist/src/context/context-parser.utils.js +32 -0
  33. package/dist/src/context/context-parser.utils.js.map +1 -1
  34. package/dist/src/context/context-serializer.utils.d.ts +3 -2
  35. package/dist/src/context/context-serializer.utils.js +25 -1
  36. package/dist/src/context/context-serializer.utils.js.map +1 -1
  37. package/dist/src/keyword/explicit-pattern-matcher.d.ts +3 -0
  38. package/dist/src/keyword/explicit-pattern-matcher.js +34 -0
  39. package/dist/src/keyword/explicit-pattern-matcher.js.map +1 -0
  40. package/dist/src/keyword/keyword.module.js +17 -1
  41. package/dist/src/keyword/keyword.module.js.map +1 -1
  42. package/dist/src/keyword/keyword.service.d.ts +2 -0
  43. package/dist/src/keyword/keyword.service.js +15 -0
  44. package/dist/src/keyword/keyword.service.js.map +1 -1
  45. package/dist/src/keyword/keyword.types.d.ts +6 -1
  46. package/dist/src/keyword/keyword.types.js +7 -1
  47. package/dist/src/keyword/keyword.types.js.map +1 -1
  48. package/dist/src/keyword/primary-agent-resolver.d.ts +5 -2
  49. package/dist/src/keyword/primary-agent-resolver.js +22 -1
  50. package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
  51. package/dist/src/keyword/strategies/act-agent.strategy.js +8 -0
  52. package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
  53. package/dist/src/keyword/strategies/index.d.ts +1 -1
  54. package/dist/src/keyword/strategies/index.js.map +1 -1
  55. package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +3 -0
  56. package/dist/src/keyword/taskmaestro-detector.d.ts +1 -0
  57. package/dist/src/keyword/taskmaestro-detector.js +16 -0
  58. package/dist/src/keyword/taskmaestro-detector.js.map +1 -0
  59. package/dist/src/mcp/handlers/agent.handler.d.ts +1 -0
  60. package/dist/src/mcp/handlers/agent.handler.js +51 -2
  61. package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
  62. package/dist/src/mcp/handlers/context-document.handler.d.ts +3 -0
  63. package/dist/src/mcp/handlers/context-document.handler.js +91 -10
  64. package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
  65. package/dist/src/mcp/handlers/discussion.handler.d.ts +14 -0
  66. package/dist/src/mcp/handlers/discussion.handler.js +168 -0
  67. package/dist/src/mcp/handlers/discussion.handler.js.map +1 -0
  68. package/dist/src/mcp/handlers/discussion.types.d.ts +18 -0
  69. package/dist/src/mcp/handlers/discussion.types.js +11 -0
  70. package/dist/src/mcp/handlers/discussion.types.js.map +1 -0
  71. package/dist/src/mcp/handlers/index.d.ts +3 -0
  72. package/dist/src/mcp/handlers/index.js +7 -1
  73. package/dist/src/mcp/handlers/index.js.map +1 -1
  74. package/dist/src/mcp/handlers/mode.handler.d.ts +3 -0
  75. package/dist/src/mcp/handlers/mode.handler.js +58 -0
  76. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  77. package/dist/src/mcp/handlers/pipeline.handler.d.ts +14 -0
  78. package/dist/src/mcp/handlers/pipeline.handler.js +137 -0
  79. package/dist/src/mcp/handlers/pipeline.handler.js.map +1 -0
  80. package/dist/src/mcp/mcp.module.js +5 -0
  81. package/dist/src/mcp/mcp.module.js.map +1 -1
  82. package/dist/src/mcp/sse-auth.guard.js +4 -6
  83. package/dist/src/mcp/sse-auth.guard.js.map +1 -1
  84. package/dist/src/parallel-validation/extract-file-paths.d.ts +1 -0
  85. package/dist/src/parallel-validation/extract-file-paths.js +19 -0
  86. package/dist/src/parallel-validation/extract-file-paths.js.map +1 -0
  87. package/dist/src/parallel-validation/index.d.ts +5 -0
  88. package/dist/src/parallel-validation/index.js +12 -0
  89. package/dist/src/parallel-validation/index.js.map +1 -0
  90. package/dist/src/parallel-validation/overlap-matrix.d.ts +10 -0
  91. package/dist/src/parallel-validation/overlap-matrix.js +23 -0
  92. package/dist/src/parallel-validation/overlap-matrix.js.map +1 -0
  93. package/dist/src/parallel-validation/parallel-validation.handler.d.ts +8 -0
  94. package/dist/src/parallel-validation/parallel-validation.handler.js +84 -0
  95. package/dist/src/parallel-validation/parallel-validation.handler.js.map +1 -0
  96. package/dist/src/parallel-validation/parallel-validation.types.d.ts +12 -0
  97. package/dist/src/parallel-validation/parallel-validation.types.js +3 -0
  98. package/dist/src/parallel-validation/parallel-validation.types.js.map +1 -0
  99. package/dist/src/parallel-validation/wave-splitter.d.ts +2 -0
  100. package/dist/src/parallel-validation/wave-splitter.js +39 -0
  101. package/dist/src/parallel-validation/wave-splitter.js.map +1 -0
  102. package/dist/src/pipeline/index.d.ts +5 -0
  103. package/dist/src/pipeline/index.js +14 -0
  104. package/dist/src/pipeline/index.js.map +1 -0
  105. package/dist/src/pipeline/pipeline.executors.d.ts +2 -0
  106. package/dist/src/pipeline/pipeline.executors.js +79 -0
  107. package/dist/src/pipeline/pipeline.executors.js.map +1 -0
  108. package/dist/src/pipeline/pipeline.module.d.ts +2 -0
  109. package/dist/src/pipeline/pipeline.module.js +21 -0
  110. package/dist/src/pipeline/pipeline.module.js.map +1 -0
  111. package/dist/src/pipeline/pipeline.service.d.ts +8 -0
  112. package/dist/src/pipeline/pipeline.service.js +89 -0
  113. package/dist/src/pipeline/pipeline.service.js.map +1 -0
  114. package/dist/src/pipeline/pipeline.types.d.ts +47 -0
  115. package/dist/src/pipeline/pipeline.types.js +33 -0
  116. package/dist/src/pipeline/pipeline.types.js.map +1 -0
  117. package/dist/src/rules/rule-tracker.d.ts +24 -0
  118. package/dist/src/rules/rule-tracker.js +74 -0
  119. package/dist/src/rules/rule-tracker.js.map +1 -0
  120. package/dist/src/shared/event-bridge-reader.d.ts +17 -0
  121. package/dist/src/shared/event-bridge-reader.js +56 -0
  122. package/dist/src/shared/event-bridge-reader.js.map +1 -0
  123. package/dist/src/shared/version.d.ts +1 -1
  124. package/dist/src/shared/version.js +1 -1
  125. package/dist/src/tui/components/AgentDiscussionPanel.d.ts +8 -0
  126. package/dist/src/tui/components/AgentDiscussionPanel.js +21 -0
  127. package/dist/src/tui/components/AgentDiscussionPanel.js.map +1 -0
  128. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +85 -0
  129. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +1 -0
  130. package/dist/src/tui/components/FlowMap.d.ts +3 -1
  131. package/dist/src/tui/components/FlowMap.js +30 -3
  132. package/dist/src/tui/components/FlowMap.js.map +1 -1
  133. package/dist/src/tui/components/FlowMap.spec.js +88 -0
  134. package/dist/src/tui/components/FlowMap.spec.js.map +1 -1
  135. package/dist/src/tui/components/FocusedAgentPanel.d.ts +3 -1
  136. package/dist/src/tui/components/FocusedAgentPanel.js +8 -3
  137. package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
  138. package/dist/src/tui/components/FocusedAgentPanel.spec.js +76 -0
  139. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
  140. package/dist/src/tui/components/HeaderBar.d.ts +3 -1
  141. package/dist/src/tui/components/HeaderBar.js +12 -6
  142. package/dist/src/tui/components/HeaderBar.js.map +1 -1
  143. package/dist/src/tui/components/HeaderBar.spec.js +31 -13
  144. package/dist/src/tui/components/HeaderBar.spec.js.map +1 -1
  145. package/dist/src/tui/components/StageHealthBar.d.ts +5 -1
  146. package/dist/src/tui/components/StageHealthBar.js +6 -1
  147. package/dist/src/tui/components/StageHealthBar.js.map +1 -1
  148. package/dist/src/tui/components/StageHealthBar.spec.js +22 -0
  149. package/dist/src/tui/components/StageHealthBar.spec.js.map +1 -1
  150. package/dist/src/tui/components/agent-discussion-panel.pure.d.ts +10 -0
  151. package/dist/src/tui/components/agent-discussion-panel.pure.js +94 -0
  152. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +1 -0
  153. package/dist/src/tui/components/focused-agent.pure.d.ts +1 -0
  154. package/dist/src/tui/components/focused-agent.pure.js +11 -0
  155. package/dist/src/tui/components/focused-agent.pure.js.map +1 -1
  156. package/dist/src/tui/components/index.d.ts +5 -1
  157. package/dist/src/tui/components/index.js +18 -1
  158. package/dist/src/tui/components/index.js.map +1 -1
  159. package/dist/src/tui/components/live.pure.d.ts +9 -0
  160. package/dist/src/tui/components/live.pure.js +70 -0
  161. package/dist/src/tui/components/live.pure.js.map +1 -0
  162. package/dist/src/tui/dashboard-app.js +10 -6
  163. package/dist/src/tui/dashboard-app.js.map +1 -1
  164. package/dist/src/tui/dashboard-app.spec.js +14 -0
  165. package/dist/src/tui/dashboard-app.spec.js.map +1 -1
  166. package/dist/src/tui/dashboard-types.d.ts +8 -0
  167. package/dist/src/tui/dashboard-types.js.map +1 -1
  168. package/dist/src/tui/eventbus-ui.integration.spec.js +3 -0
  169. package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
  170. package/dist/src/tui/events/index.d.ts +1 -1
  171. package/dist/src/tui/events/index.js.map +1 -1
  172. package/dist/src/tui/events/types.d.ts +6 -0
  173. package/dist/src/tui/events/types.js +1 -0
  174. package/dist/src/tui/events/types.js.map +1 -1
  175. package/dist/src/tui/hooks/index.d.ts +1 -1
  176. package/dist/src/tui/hooks/index.js +3 -3
  177. package/dist/src/tui/hooks/index.js.map +1 -1
  178. package/dist/src/tui/hooks/use-dashboard-state.d.ts +4 -1
  179. package/dist/src/tui/hooks/use-dashboard-state.js +26 -0
  180. package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
  181. package/dist/src/tui/hooks/use-tick.d.ts +1 -0
  182. package/dist/src/tui/hooks/use-tick.js +15 -0
  183. package/dist/src/tui/hooks/use-tick.js.map +1 -0
  184. package/dist/src/tui/hooks/use-tick.spec.d.ts +1 -0
  185. package/dist/src/tui/hooks/use-tick.spec.js +70 -0
  186. package/dist/src/tui/hooks/use-tick.spec.js.map +1 -0
  187. package/dist/src/tui/index.d.ts +1 -1
  188. package/dist/src/tui/index.js +2 -2
  189. package/dist/src/tui/index.js.map +1 -1
  190. package/dist/src/tui-bundle.mjs +468 -133
  191. package/dist/tsconfig.build.tsbuildinfo +1 -1
  192. package/package.json +15 -14
  193. package/dist/src/tui/components/header-bar.pure.d.ts +0 -1
  194. package/dist/src/tui/components/header-bar.pure.js +0 -9
  195. package/dist/src/tui/components/header-bar.pure.js.map +0 -1
  196. package/dist/src/tui/hooks/use-clock.d.ts +0 -1
  197. package/dist/src/tui/hooks/use-clock.js +0 -16
  198. package/dist/src/tui/hooks/use-clock.js.map +0 -1
  199. package/dist/src/tui/hooks/use-clock.spec.js +0 -43
  200. package/dist/src/tui/hooks/use-clock.spec.js.map +0 -1
  201. /package/dist/src/tui/{hooks/use-clock.spec.d.ts → components/AgentDiscussionPanel.spec.d.ts} +0 -0
@@ -8,6 +8,9 @@ export declare class ContextDocumentHandler extends AbstractHandler {
8
8
  protected getHandledTools(): string[];
9
9
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
10
10
  getToolDefinitions(): ToolDefinition[];
11
+ private validateSessionId;
12
+ private getFilePath;
13
+ private extractIssues;
11
14
  private handleReadContext;
12
15
  private handleUpdateContext;
13
16
  private handleCleanupContext;
@@ -50,6 +50,10 @@ let ContextDocumentHandler = class ContextDocumentHandler extends abstract_handl
50
50
  enum: ['minimal', 'standard', 'full'],
51
51
  description: 'Control response size: minimal (most recent section only), standard (2 most recent), full (all sections). Default: standard',
52
52
  },
53
+ sessionId: {
54
+ type: 'string',
55
+ description: 'Optional session ID for session-isolated context. Each session writes to its own file. Omit for legacy single-file behavior.',
56
+ },
53
57
  },
54
58
  required: [],
55
59
  },
@@ -119,6 +123,24 @@ Call this at the end of each mode to persist decisions and notes.`,
119
123
  enum: ['in_progress', 'completed', 'blocked'],
120
124
  description: 'Status of this mode section',
121
125
  },
126
+ issues: {
127
+ type: 'array',
128
+ items: {
129
+ type: 'object',
130
+ properties: {
131
+ number: { type: 'number', description: 'GitHub issue number' },
132
+ title: { type: 'string', description: 'Issue title' },
133
+ url: { type: 'string', description: 'Issue URL' },
134
+ status: { type: 'string', description: 'Issue status (open, closed)' },
135
+ },
136
+ required: ['number', 'title', 'url', 'status'],
137
+ },
138
+ description: 'Issues created/referenced during session. Persists across PLAN→ACT→EVAL modes.',
139
+ },
140
+ sessionId: {
141
+ type: 'string',
142
+ description: 'Optional session ID for session-isolated context. Each session writes to its own file (sessions/ctx-{sessionId}.md). Omit for legacy single-file behavior.',
143
+ },
122
144
  },
123
145
  required: ['mode'],
124
146
  },
@@ -137,24 +159,69 @@ Call this at the end of each mode to persist decisions and notes.`,
137
159
  type: 'number',
138
160
  description: 'Number of recent items to keep in summarized section arrays (default: 5)',
139
161
  },
162
+ sessionId: {
163
+ type: 'string',
164
+ description: 'Optional session ID for session-isolated context cleanup. Omit for legacy single-file behavior.',
165
+ },
140
166
  },
141
167
  required: [],
142
168
  },
143
169
  },
144
170
  ];
145
171
  }
172
+ validateSessionId(args) {
173
+ const sessionId = (0, validation_constants_1.extractOptionalString)(args, 'sessionId');
174
+ if (sessionId && !(0, context_document_types_1.isValidSessionId)(sessionId)) {
175
+ return {
176
+ error: (0, response_utils_1.createErrorResponse)(`Invalid sessionId: "${sessionId}". Must contain only alphanumeric characters and hyphens (1-64 chars).`),
177
+ };
178
+ }
179
+ return { sessionId: sessionId || undefined };
180
+ }
181
+ getFilePath(sessionId) {
182
+ return sessionId ? (0, context_document_types_1.getSessionContextFilePath)(sessionId) : context_document_types_1.CONTEXT_FILE_PATH;
183
+ }
184
+ extractIssues(args) {
185
+ if (!Array.isArray(args?.issues))
186
+ return undefined;
187
+ const issues = [];
188
+ for (const item of args.issues) {
189
+ if (typeof item === 'object' &&
190
+ item !== null &&
191
+ typeof item.number === 'number' &&
192
+ typeof item.title === 'string' &&
193
+ typeof item.url === 'string' &&
194
+ typeof item.status === 'string') {
195
+ issues.push({
196
+ number: item.number,
197
+ title: item.title,
198
+ url: item.url,
199
+ status: item.status,
200
+ });
201
+ }
202
+ }
203
+ return issues.length > 0 ? issues : undefined;
204
+ }
146
205
  async handleReadContext(args) {
206
+ const { sessionId, error } = this.validateSessionId(args);
207
+ if (error)
208
+ return error;
147
209
  const verbosityStr = (0, validation_constants_1.extractOptionalString)(args, 'verbosity') || 'standard';
148
210
  const verbosity = (0, verbosity_types_1.isValidVerbosity)(verbosityStr) ? verbosityStr : 'standard';
149
211
  const verbosityConfig = (0, verbosity_types_1.getVerbosityConfig)(verbosity);
150
- const readOptions = verbosityConfig.maxContextSections === -1
151
- ? undefined
152
- : { maxSections: verbosityConfig.maxContextSections };
153
- const result = await this.contextDocService.readContext(readOptions);
212
+ const readOptions = {};
213
+ if (verbosityConfig.maxContextSections !== -1) {
214
+ readOptions.maxSections = verbosityConfig.maxContextSections;
215
+ }
216
+ if (sessionId) {
217
+ readOptions.sessionId = sessionId;
218
+ }
219
+ const result = await this.contextDocService.readContext(Object.keys(readOptions).length > 0 ? readOptions : undefined);
220
+ const filePath = this.getFilePath(sessionId);
154
221
  if (!result.exists) {
155
222
  return (0, response_utils_1.createJsonResponse)({
156
223
  exists: false,
157
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
224
+ filePath,
158
225
  message: 'No context document found. Run PLAN mode to create one.',
159
226
  hint: 'Start with PLAN keyword to initialize context.',
160
227
  });
@@ -174,7 +241,7 @@ Call this at the end of each mode to persist decisions and notes.`,
174
241
  }
175
242
  return (0, response_utils_1.createJsonResponse)({
176
243
  exists: true,
177
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
244
+ filePath,
178
245
  document,
179
246
  summary: {
180
247
  title: document.metadata.title,
@@ -191,6 +258,7 @@ Call this at the end of each mode to persist decisions and notes.`,
191
258
  : null,
192
259
  allDecisions,
193
260
  allNotes,
261
+ sessionIssues: document.issues || [],
194
262
  },
195
263
  });
196
264
  }
@@ -202,7 +270,12 @@ Call this at the end of each mode to persist decisions and notes.`,
202
270
  if (!['PLAN', 'ACT', 'EVAL', 'AUTO'].includes(mode)) {
203
271
  return (0, response_utils_1.createErrorResponse)(`Invalid mode: ${mode}. Must be PLAN, ACT, EVAL, or AUTO`);
204
272
  }
273
+ const { sessionId, error } = this.validateSessionId(args);
274
+ if (error)
275
+ return error;
205
276
  const typedMode = mode;
277
+ const filePath = this.getFilePath(sessionId);
278
+ const issues = this.extractIssues(args);
206
279
  if (typedMode === 'PLAN') {
207
280
  const title = (0, validation_constants_1.extractOptionalString)(args, 'title') || 'Untitled Task';
208
281
  const result = await this.contextDocService.resetContext({
@@ -215,13 +288,15 @@ Call this at the end of each mode to persist decisions and notes.`,
215
288
  : undefined,
216
289
  decisions: Array.isArray(args?.decisions) ? args.decisions : undefined,
217
290
  notes: Array.isArray(args?.notes) ? args.notes : undefined,
291
+ issues,
292
+ sessionId,
218
293
  });
219
294
  if (!result.success) {
220
295
  return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to reset context');
221
296
  }
222
297
  return (0, response_utils_1.createJsonResponse)({
223
298
  success: true,
224
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
299
+ filePath,
225
300
  message: 'Context document reset (PLAN mode)',
226
301
  document: result.document,
227
302
  });
@@ -243,18 +318,23 @@ Call this at the end of each mode to persist decisions and notes.`,
243
318
  : undefined,
244
319
  status: (0, validation_constants_1.extractOptionalString)(args, 'status') ??
245
320
  undefined,
321
+ issues,
322
+ sessionId,
246
323
  });
247
324
  if (!result.success) {
248
325
  return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to update context');
249
326
  }
250
327
  return (0, response_utils_1.createJsonResponse)({
251
328
  success: true,
252
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
329
+ filePath,
253
330
  message: `Context document updated (${typedMode} mode)`,
254
331
  document: result.document,
255
332
  });
256
333
  }
257
334
  async handleCleanupContext(args) {
335
+ const { sessionId, error } = this.validateSessionId(args);
336
+ if (error)
337
+ return error;
258
338
  const keepRecentSectionsFull = typeof args?.keepRecentSectionsFull === 'number' ? args.keepRecentSectionsFull : 2;
259
339
  const keepRecentItems = typeof args?.keepRecentItems === 'number' ? args.keepRecentItems : 5;
260
340
  if (keepRecentSectionsFull < 0) {
@@ -263,13 +343,14 @@ Call this at the end of each mode to persist decisions and notes.`,
263
343
  if (keepRecentItems < 1) {
264
344
  return (0, response_utils_1.createErrorResponse)('keepRecentItems must be >= 1');
265
345
  }
266
- const result = await this.contextDocService.performCleanup(keepRecentSectionsFull, keepRecentItems);
346
+ const filePath = this.getFilePath(sessionId);
347
+ const result = await this.contextDocService.performCleanup(keepRecentSectionsFull, keepRecentItems, sessionId);
267
348
  if (!result.success) {
268
349
  return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to cleanup context');
269
350
  }
270
351
  return (0, response_utils_1.createJsonResponse)({
271
352
  success: true,
272
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
353
+ filePath,
273
354
  message: result.message,
274
355
  document: result.document,
275
356
  });
@@ -1 +1 @@
1
- {"version":3,"file":"context-document.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/context-document.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-document.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/context-document.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ToolDefinition } from './base.handler';
2
+ import type { ToolResponse } from '../response.utils';
3
+ import { AbstractHandler } from './abstract-handler';
4
+ export declare class DiscussionHandler extends AbstractHandler {
5
+ protected getHandledTools(): string[];
6
+ protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
7
+ getToolDefinitions(): ToolDefinition[];
8
+ private handleAgentDiscussion;
9
+ private collectOpinions;
10
+ private generateOpinion;
11
+ private detectConsensus;
12
+ private computeMaxSeverity;
13
+ private generateSummary;
14
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DiscussionHandler = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const abstract_handler_1 = require("./abstract-handler");
12
+ const response_utils_1 = require("../response.utils");
13
+ const validation_constants_1 = require("../../shared/validation.constants");
14
+ const discussion_types_1 = require("./discussion.types");
15
+ const SPECIALIST_DOMAINS = {
16
+ 'security-specialist': { domain: 'security', defaultSeverity: 'high' },
17
+ 'performance-specialist': { domain: 'performance', defaultSeverity: 'medium' },
18
+ 'accessibility-specialist': { domain: 'accessibility', defaultSeverity: 'medium' },
19
+ 'code-quality': { domain: 'code quality', defaultSeverity: 'low' },
20
+ 'test-strategy': { domain: 'testing', defaultSeverity: 'medium' },
21
+ architecture: { domain: 'architecture', defaultSeverity: 'medium' },
22
+ 'seo-specialist': { domain: 'SEO', defaultSeverity: 'low' },
23
+ documentation: { domain: 'documentation', defaultSeverity: 'info' },
24
+ };
25
+ const SEVERITY_ORDER = ['info', 'low', 'medium', 'high', 'critical'];
26
+ let DiscussionHandler = class DiscussionHandler extends abstract_handler_1.AbstractHandler {
27
+ getHandledTools() {
28
+ return ['agent_discussion'];
29
+ }
30
+ async handleTool(toolName, args) {
31
+ switch (toolName) {
32
+ case 'agent_discussion':
33
+ return this.handleAgentDiscussion(args);
34
+ default:
35
+ return (0, response_utils_1.createErrorResponse)(`Unknown tool: ${toolName}`);
36
+ }
37
+ }
38
+ getToolDefinitions() {
39
+ return [
40
+ {
41
+ name: 'agent_discussion',
42
+ description: 'Conduct a structured discussion among specialist agents on a given topic. ' +
43
+ 'Collects opinions from each specialist, detects consensus or disagreement, ' +
44
+ 'and returns a structured summary with severity assessments.',
45
+ inputSchema: {
46
+ type: 'object',
47
+ properties: {
48
+ topic: {
49
+ type: 'string',
50
+ description: 'The topic or question to discuss among specialists',
51
+ },
52
+ specialists: {
53
+ type: 'array',
54
+ items: { type: 'string' },
55
+ description: 'List of specialist agent names to participate in the discussion ' +
56
+ '(e.g., ["security-specialist", "performance-specialist"])',
57
+ },
58
+ context: {
59
+ type: 'string',
60
+ description: 'Optional additional context for the discussion',
61
+ },
62
+ },
63
+ required: ['topic', 'specialists'],
64
+ },
65
+ },
66
+ ];
67
+ }
68
+ async handleAgentDiscussion(args) {
69
+ const topic = (0, validation_constants_1.extractRequiredString)(args, 'topic');
70
+ if (topic === null) {
71
+ return (0, response_utils_1.createErrorResponse)('Missing required parameter: topic');
72
+ }
73
+ const specialists = (0, validation_constants_1.extractStringArray)(args, 'specialists');
74
+ if (!specialists || specialists.length === 0) {
75
+ return (0, response_utils_1.createErrorResponse)('Missing required parameter: specialists (array with at least one specialist)');
76
+ }
77
+ const context = (0, validation_constants_1.extractOptionalString)(args, 'context');
78
+ const opinions = this.collectOpinions(topic, specialists, context);
79
+ const consensus = this.detectConsensus(opinions);
80
+ const maxSeverity = this.computeMaxSeverity(opinions);
81
+ const summary = this.generateSummary(topic, opinions, consensus);
82
+ const result = {
83
+ topic,
84
+ specialists,
85
+ opinions,
86
+ consensus,
87
+ summary,
88
+ maxSeverity,
89
+ };
90
+ return (0, response_utils_1.createJsonResponse)(result);
91
+ }
92
+ collectOpinions(topic, specialists, context) {
93
+ return specialists.map(agent => this.generateOpinion(agent, topic, context));
94
+ }
95
+ generateOpinion(agent, topic, context) {
96
+ const domainInfo = SPECIALIST_DOMAINS[agent] ?? {
97
+ domain: agent,
98
+ defaultSeverity: 'medium',
99
+ };
100
+ const contextNote = context ? ` (context: ${context})` : '';
101
+ return {
102
+ agent,
103
+ opinion: `${domainInfo.domain} analysis of "${topic}"${contextNote}: ` +
104
+ `Reviewed from ${domainInfo.domain} perspective. Findings require attention.`,
105
+ severity: domainInfo.defaultSeverity,
106
+ evidence: [
107
+ `Analyzed topic from ${domainInfo.domain} perspective`,
108
+ `Applied ${domainInfo.domain} best practices and guidelines`,
109
+ ],
110
+ recommendation: `Address ${domainInfo.domain} considerations for "${topic}" ` +
111
+ `following established best practices.`,
112
+ };
113
+ }
114
+ detectConsensus(opinions) {
115
+ if (opinions.length <= 1) {
116
+ return 'consensus';
117
+ }
118
+ const severities = opinions.map(o => o.severity);
119
+ const uniqueSeverities = new Set(severities);
120
+ if (uniqueSeverities.size === 1) {
121
+ return 'consensus';
122
+ }
123
+ const severityCounts = new Map();
124
+ for (const s of severities) {
125
+ severityCounts.set(s, (severityCounts.get(s) ?? 0) + 1);
126
+ }
127
+ const maxCount = Math.max(...severityCounts.values());
128
+ const majorityThreshold = opinions.length / 2;
129
+ if (maxCount > majorityThreshold) {
130
+ return 'majority';
131
+ }
132
+ if (uniqueSeverities.size === opinions.length) {
133
+ return 'disagreement';
134
+ }
135
+ return 'split';
136
+ }
137
+ computeMaxSeverity(opinions) {
138
+ if (opinions.length === 0) {
139
+ return 'info';
140
+ }
141
+ let maxIndex = 0;
142
+ for (const opinion of opinions) {
143
+ const index = SEVERITY_ORDER.indexOf(opinion.severity);
144
+ if (index > maxIndex) {
145
+ maxIndex = index;
146
+ }
147
+ }
148
+ return SEVERITY_ORDER[maxIndex];
149
+ }
150
+ generateSummary(topic, opinions, consensus) {
151
+ const agentCount = opinions.length;
152
+ const consensusLabel = {
153
+ consensus: 'reached consensus',
154
+ majority: 'reached majority agreement',
155
+ split: 'had split opinions',
156
+ disagreement: 'had significant disagreement',
157
+ }[consensus];
158
+ const severities = [...new Set(opinions.map(o => o.severity))].join(', ');
159
+ return (`Discussion on "${topic}" with ${agentCount} specialist(s) ${consensusLabel}. ` +
160
+ `Severity levels: ${severities}. ` +
161
+ `${discussion_types_1.VALID_SEVERITIES.indexOf(this.computeMaxSeverity(opinions)) >= 3 ? 'Immediate action recommended.' : 'Review recommended.'}`);
162
+ }
163
+ };
164
+ exports.DiscussionHandler = DiscussionHandler;
165
+ exports.DiscussionHandler = DiscussionHandler = __decorate([
166
+ (0, common_1.Injectable)()
167
+ ], DiscussionHandler);
168
+ //# sourceMappingURL=discussion.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discussion.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/discussion.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type OpinionSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical';
2
+ export interface AgentOpinion {
3
+ agent: string;
4
+ opinion: string;
5
+ severity: OpinionSeverity;
6
+ evidence: string[];
7
+ recommendation: string;
8
+ }
9
+ export type ConsensusStatus = 'consensus' | 'majority' | 'split' | 'disagreement';
10
+ export interface DiscussionResult {
11
+ topic: string;
12
+ specialists: string[];
13
+ opinions: AgentOpinion[];
14
+ consensus: ConsensusStatus;
15
+ summary: string;
16
+ maxSeverity: OpinionSeverity;
17
+ }
18
+ export declare const VALID_SEVERITIES: readonly OpinionSeverity[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VALID_SEVERITIES = void 0;
4
+ exports.VALID_SEVERITIES = [
5
+ 'info',
6
+ 'low',
7
+ 'medium',
8
+ 'high',
9
+ 'critical',
10
+ ];
11
+ //# sourceMappingURL=discussion.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discussion.types.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/discussion.types.ts"],"names":[],"mappings":";;;AAuDa,QAAA,gBAAgB,GAA+B;IAC1D,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,UAAU;CACX,CAAC"}
@@ -8,4 +8,7 @@ export { ChecklistContextHandler } from './checklist-context.handler';
8
8
  export { ConventionsHandler } from './conventions.handler';
9
9
  export { ContextDocumentHandler } from './context-document.handler';
10
10
  export { TuiHandler } from './tui.handler';
11
+ export { DiscussionHandler } from './discussion.handler';
12
+ export { ParallelValidationHandler } from '../../parallel-validation/parallel-validation.handler';
13
+ export { PipelineHandler } from './pipeline.handler';
11
14
  export declare const TOOL_HANDLERS = "TOOL_HANDLERS";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOOL_HANDLERS = exports.TuiHandler = exports.ContextDocumentHandler = exports.ConventionsHandler = exports.ChecklistContextHandler = exports.ModeHandler = exports.AgentHandler = exports.SkillHandler = exports.ConfigHandler = exports.RulesHandler = void 0;
3
+ exports.TOOL_HANDLERS = exports.PipelineHandler = exports.ParallelValidationHandler = exports.DiscussionHandler = exports.TuiHandler = exports.ContextDocumentHandler = exports.ConventionsHandler = exports.ChecklistContextHandler = exports.ModeHandler = exports.AgentHandler = exports.SkillHandler = exports.ConfigHandler = exports.RulesHandler = void 0;
4
4
  var rules_handler_1 = require("./rules.handler");
5
5
  Object.defineProperty(exports, "RulesHandler", { enumerable: true, get: function () { return rules_handler_1.RulesHandler; } });
6
6
  var config_handler_1 = require("./config.handler");
@@ -19,5 +19,11 @@ var context_document_handler_1 = require("./context-document.handler");
19
19
  Object.defineProperty(exports, "ContextDocumentHandler", { enumerable: true, get: function () { return context_document_handler_1.ContextDocumentHandler; } });
20
20
  var tui_handler_1 = require("./tui.handler");
21
21
  Object.defineProperty(exports, "TuiHandler", { enumerable: true, get: function () { return tui_handler_1.TuiHandler; } });
22
+ var discussion_handler_1 = require("./discussion.handler");
23
+ Object.defineProperty(exports, "DiscussionHandler", { enumerable: true, get: function () { return discussion_handler_1.DiscussionHandler; } });
24
+ var parallel_validation_handler_1 = require("../../parallel-validation/parallel-validation.handler");
25
+ Object.defineProperty(exports, "ParallelValidationHandler", { enumerable: true, get: function () { return parallel_validation_handler_1.ParallelValidationHandler; } });
26
+ var pipeline_handler_1 = require("./pipeline.handler");
27
+ Object.defineProperty(exports, "PipelineHandler", { enumerable: true, get: function () { return pipeline_handler_1.PipelineHandler; } });
22
28
  exports.TOOL_HANDLERS = 'TOOL_HANDLERS';
23
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/index.ts"],"names":[],"mappings":";;;AAyCA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAMpB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAMhC,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAO3B,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAM/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AA0BN,QAAA,aAAa,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/index.ts"],"names":[],"mappings":";;;AAyCA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAMpB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAMhC,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAO3B,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAM/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAMnB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAM1B,qGAAkG;AAAzF,wIAAA,yBAAyB,OAAA;AAMlC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AA0BX,QAAA,aAAa,GAAG,eAAe,CAAC"}
@@ -26,5 +26,8 @@ export declare class ModeHandler extends AbstractHandler {
26
26
  private handleContextDocument;
27
27
  private generateContextTitle;
28
28
  private buildDispatchReady;
29
+ private buildDeepThinkingInstructions;
30
+ private buildPlanReviewGate;
31
+ private buildAgentDiscussion;
29
32
  private persistModeState;
30
33
  }
@@ -29,6 +29,7 @@ const context_document_service_1 = require("../../context/context-document.servi
29
29
  const diagnostic_log_service_1 = require("../../diagnostic/diagnostic-log.service");
30
30
  const context_document_types_1 = require("../../context/context-document.types");
31
31
  const keyword_types_1 = require("../../keyword/keyword.types");
32
+ const keyword_types_2 = require("../../keyword/keyword.types");
32
33
  const verbosity_types_1 = require("../../shared/verbosity.types");
33
34
  const agent_service_1 = require("../../agent/agent.service");
34
35
  const CONTEXT_TITLE_MAX_LENGTH = 50;
@@ -129,13 +130,25 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
129
130
  const resolvedModel = await this.modelResolverService.resolve();
130
131
  const contextResult = await this.handleContextDocument(result.mode, result.originalPrompt, result.agent, result.recommended_act_agent);
131
132
  await this.persistModeState(result.mode);
133
+ const settings = await this.configService.getSettings();
134
+ if (result.parallelAgentsRecommendation) {
135
+ const configDispatch = settings.ai?.dispatchStrength;
136
+ result.parallelAgentsRecommendation.dispatch =
137
+ configDispatch ?? keyword_types_2.MODE_DISPATCH_DEFAULTS[result.mode] ?? 'recommend';
138
+ }
132
139
  const dispatchReady = await this.buildDispatchReady(result.included_agent, verbosity === 'full' ? result.parallelAgentsRecommendation : undefined, result.mode, result.originalPrompt);
140
+ const deepThinkingInstructions = this.buildDeepThinkingInstructions(result.mode);
141
+ const planReviewGate = this.buildPlanReviewGate(result.mode, settings?.ai?.planReviewGate);
142
+ const agentDiscussion = this.buildAgentDiscussion(result.mode, settings?.ai?.agentDiscussion);
133
143
  return (0, response_utils_1.createJsonResponse)({
134
144
  ...result,
135
145
  language,
136
146
  languageInstruction: languageInstructionResult.instruction,
137
147
  resolvedModel,
138
148
  ...(dispatchReady && { dispatchReady }),
149
+ ...(deepThinkingInstructions && { deepThinkingInstructions }),
150
+ ...(planReviewGate && { planReviewGate }),
151
+ ...(agentDiscussion && { agentDiscussion }),
139
152
  ...contextResult,
140
153
  ...(projectRootWarning && { projectRootWarning }),
141
154
  });
@@ -248,6 +261,51 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
248
261
  }
249
262
  return dispatchReady;
250
263
  }
264
+ buildDeepThinkingInstructions(mode) {
265
+ if (mode !== 'PLAN' && mode !== 'AUTO') {
266
+ return undefined;
267
+ }
268
+ return {
269
+ reasoning: [
270
+ {
271
+ step: 'decompose',
272
+ instruction: 'Break the problem into sub-problems. Identify each distinct concern, dependency, and boundary. List them explicitly before proposing a solution.',
273
+ },
274
+ {
275
+ step: 'alternatives',
276
+ instruction: 'For each non-trivial decision, consider at least 2 alternative approaches. Compare trade-offs (complexity, performance, maintainability) and justify your choice.',
277
+ },
278
+ {
279
+ step: 'devils_advocate',
280
+ instruction: 'Argue against your own plan. Identify weaknesses, edge cases, and assumptions that could fail. Address each weakness or document it as a known risk.',
281
+ },
282
+ ],
283
+ hallucinationPrevention: 'Before including any file path, function name, class name, or API reference in your plan, verify it exists in the codebase. Do not assume or guess — use search tools to confirm.',
284
+ detailLevel: 'Every step must include exact file paths, code snippets or signatures, and runnable commands. Avoid vague references like "update the handler" — specify which handler, which method, and what change.',
285
+ };
286
+ }
287
+ buildPlanReviewGate(mode, configValue) {
288
+ if (mode !== 'PLAN' && mode !== 'AUTO') {
289
+ return undefined;
290
+ }
291
+ const enabled = configValue !== false;
292
+ return {
293
+ enabled,
294
+ agent: 'plan-reviewer',
295
+ dispatch: 'recommend',
296
+ };
297
+ }
298
+ buildAgentDiscussion(mode, configValue) {
299
+ if (mode !== 'EVAL') {
300
+ return undefined;
301
+ }
302
+ const enabled = configValue !== false;
303
+ return {
304
+ enabled,
305
+ format: 'structured',
306
+ includeConsensus: true,
307
+ };
308
+ }
251
309
  async persistModeState(mode) {
252
310
  try {
253
311
  await this.stateService.updateLastMode(mode);