codingbuddy 4.5.0 → 5.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 (236) 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 +11 -4
  4. package/dist/src/agent/agent.service.js +81 -13
  5. package/dist/src/agent/agent.service.js.map +1 -1
  6. package/dist/src/agent/agent.types.d.ts +41 -1
  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 +14 -0
  24. package/dist/src/config/config.schema.js +7 -0
  25. package/dist/src/config/config.schema.js.map +1 -1
  26. package/dist/src/context/context-archive.service.d.ts +14 -0
  27. package/dist/src/context/context-archive.service.js +257 -0
  28. package/dist/src/context/context-archive.service.js.map +1 -0
  29. package/dist/src/context/context-archive.types.d.ts +37 -0
  30. package/dist/src/context/context-archive.types.js +47 -0
  31. package/dist/src/context/context-archive.types.js.map +1 -0
  32. package/dist/src/context/context-document.service.d.ts +4 -2
  33. package/dist/src/context/context-document.service.js +24 -4
  34. package/dist/src/context/context-document.service.js.map +1 -1
  35. package/dist/src/context/context-document.types.d.ts +18 -0
  36. package/dist/src/context/context-document.types.js +13 -1
  37. package/dist/src/context/context-document.types.js.map +1 -1
  38. package/dist/src/context/context-parser.utils.js +32 -0
  39. package/dist/src/context/context-parser.utils.js.map +1 -1
  40. package/dist/src/context/context-serializer.utils.d.ts +3 -2
  41. package/dist/src/context/context-serializer.utils.js +25 -1
  42. package/dist/src/context/context-serializer.utils.js.map +1 -1
  43. package/dist/src/context/context.module.js +3 -2
  44. package/dist/src/context/context.module.js.map +1 -1
  45. package/dist/src/context/index.d.ts +1 -0
  46. package/dist/src/context/index.js +1 -0
  47. package/dist/src/context/index.js.map +1 -1
  48. package/dist/src/impact/impact-event.service.d.ts +8 -0
  49. package/dist/src/impact/impact-event.service.js +53 -0
  50. package/dist/src/impact/impact-event.service.js.map +1 -0
  51. package/dist/src/impact/impact-report.service.d.ts +7 -0
  52. package/dist/src/impact/impact-report.service.js +92 -0
  53. package/dist/src/impact/impact-report.service.js.map +1 -0
  54. package/dist/src/impact/impact.module.d.ts +2 -0
  55. package/dist/src/impact/impact.module.js +22 -0
  56. package/dist/src/impact/impact.module.js.map +1 -0
  57. package/dist/src/impact/impact.types.d.ts +32 -0
  58. package/dist/src/impact/impact.types.js +5 -0
  59. package/dist/src/impact/impact.types.js.map +1 -0
  60. package/dist/src/impact/index.d.ts +4 -0
  61. package/dist/src/impact/index.js +25 -0
  62. package/dist/src/impact/index.js.map +1 -0
  63. package/dist/src/keyword/diff-analyzer.d.ts +19 -0
  64. package/dist/src/keyword/diff-analyzer.js +127 -0
  65. package/dist/src/keyword/diff-analyzer.js.map +1 -0
  66. package/dist/src/keyword/explicit-pattern-matcher.d.ts +3 -0
  67. package/dist/src/keyword/explicit-pattern-matcher.js +34 -0
  68. package/dist/src/keyword/explicit-pattern-matcher.js.map +1 -0
  69. package/dist/src/keyword/keyword.module.js +17 -1
  70. package/dist/src/keyword/keyword.module.js.map +1 -1
  71. package/dist/src/keyword/keyword.service.d.ts +3 -0
  72. package/dist/src/keyword/keyword.service.js +33 -3
  73. package/dist/src/keyword/keyword.service.js.map +1 -1
  74. package/dist/src/keyword/keyword.types.d.ts +29 -1
  75. package/dist/src/keyword/keyword.types.js +34 -1
  76. package/dist/src/keyword/keyword.types.js.map +1 -1
  77. package/dist/src/keyword/primary-agent-resolver.d.ts +7 -3
  78. package/dist/src/keyword/primary-agent-resolver.js +24 -2
  79. package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
  80. package/dist/src/keyword/strategies/act-agent.strategy.js +16 -0
  81. package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
  82. package/dist/src/keyword/strategies/index.d.ts +1 -1
  83. package/dist/src/keyword/strategies/index.js.map +1 -1
  84. package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +5 -0
  85. package/dist/src/keyword/visual-data.builder.d.ts +10 -0
  86. package/dist/src/keyword/visual-data.builder.js +62 -0
  87. package/dist/src/keyword/visual-data.builder.js.map +1 -0
  88. package/dist/src/mcp/handlers/agent.handler.d.ts +4 -1
  89. package/dist/src/mcp/handlers/agent.handler.js +59 -6
  90. package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
  91. package/dist/src/mcp/handlers/checklist-context.handler.d.ts +3 -1
  92. package/dist/src/mcp/handlers/checklist-context.handler.js +13 -2
  93. package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -1
  94. package/dist/src/mcp/handlers/context-archive.handler.d.ts +14 -0
  95. package/dist/src/mcp/handlers/context-archive.handler.js +136 -0
  96. package/dist/src/mcp/handlers/context-archive.handler.js.map +1 -0
  97. package/dist/src/mcp/handlers/context-document.handler.d.ts +6 -1
  98. package/dist/src/mcp/handlers/context-document.handler.js +113 -12
  99. package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
  100. package/dist/src/mcp/handlers/discussion.handler.d.ts +14 -0
  101. package/dist/src/mcp/handlers/discussion.handler.js +168 -0
  102. package/dist/src/mcp/handlers/discussion.handler.js.map +1 -0
  103. package/dist/src/mcp/handlers/discussion.types.d.ts +18 -0
  104. package/dist/src/mcp/handlers/discussion.types.js +11 -0
  105. package/dist/src/mcp/handlers/discussion.types.js.map +1 -0
  106. package/dist/src/mcp/handlers/impact.handler.d.ts +11 -0
  107. package/dist/src/mcp/handlers/impact.handler.js +53 -0
  108. package/dist/src/mcp/handlers/impact.handler.js.map +1 -0
  109. package/dist/src/mcp/handlers/index.d.ts +6 -0
  110. package/dist/src/mcp/handlers/index.js +13 -1
  111. package/dist/src/mcp/handlers/index.js.map +1 -1
  112. package/dist/src/mcp/handlers/mode.handler.d.ts +7 -1
  113. package/dist/src/mcp/handlers/mode.handler.js +109 -3
  114. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  115. package/dist/src/mcp/handlers/pipeline.handler.d.ts +14 -0
  116. package/dist/src/mcp/handlers/pipeline.handler.js +137 -0
  117. package/dist/src/mcp/handlers/pipeline.handler.js.map +1 -0
  118. package/dist/src/mcp/handlers/rule-insights.handler.d.ts +14 -0
  119. package/dist/src/mcp/handlers/rule-insights.handler.js +78 -0
  120. package/dist/src/mcp/handlers/rule-insights.handler.js.map +1 -0
  121. package/dist/src/mcp/handlers/rules.handler.d.ts +3 -1
  122. package/dist/src/mcp/handlers/rules.handler.js +14 -2
  123. package/dist/src/mcp/handlers/rules.handler.js.map +1 -1
  124. package/dist/src/mcp/mcp.module.js +10 -0
  125. package/dist/src/mcp/mcp.module.js.map +1 -1
  126. package/dist/src/parallel-validation/extract-file-paths.d.ts +1 -0
  127. package/dist/src/parallel-validation/extract-file-paths.js +19 -0
  128. package/dist/src/parallel-validation/extract-file-paths.js.map +1 -0
  129. package/dist/src/parallel-validation/index.d.ts +5 -0
  130. package/dist/src/parallel-validation/index.js +12 -0
  131. package/dist/src/parallel-validation/index.js.map +1 -0
  132. package/dist/src/parallel-validation/overlap-matrix.d.ts +10 -0
  133. package/dist/src/parallel-validation/overlap-matrix.js +23 -0
  134. package/dist/src/parallel-validation/overlap-matrix.js.map +1 -0
  135. package/dist/src/parallel-validation/parallel-validation.handler.d.ts +8 -0
  136. package/dist/src/parallel-validation/parallel-validation.handler.js +84 -0
  137. package/dist/src/parallel-validation/parallel-validation.handler.js.map +1 -0
  138. package/dist/src/parallel-validation/parallel-validation.types.d.ts +12 -0
  139. package/dist/src/parallel-validation/parallel-validation.types.js +3 -0
  140. package/dist/src/parallel-validation/parallel-validation.types.js.map +1 -0
  141. package/dist/src/parallel-validation/wave-splitter.d.ts +2 -0
  142. package/dist/src/parallel-validation/wave-splitter.js +39 -0
  143. package/dist/src/parallel-validation/wave-splitter.js.map +1 -0
  144. package/dist/src/pipeline/index.d.ts +5 -0
  145. package/dist/src/pipeline/index.js +14 -0
  146. package/dist/src/pipeline/index.js.map +1 -0
  147. package/dist/src/pipeline/pipeline.executors.d.ts +2 -0
  148. package/dist/src/pipeline/pipeline.executors.js +79 -0
  149. package/dist/src/pipeline/pipeline.executors.js.map +1 -0
  150. package/dist/src/pipeline/pipeline.module.d.ts +2 -0
  151. package/dist/src/pipeline/pipeline.module.js +21 -0
  152. package/dist/src/pipeline/pipeline.module.js.map +1 -0
  153. package/dist/src/pipeline/pipeline.service.d.ts +8 -0
  154. package/dist/src/pipeline/pipeline.service.js +89 -0
  155. package/dist/src/pipeline/pipeline.service.js.map +1 -0
  156. package/dist/src/pipeline/pipeline.types.d.ts +47 -0
  157. package/dist/src/pipeline/pipeline.types.js +33 -0
  158. package/dist/src/pipeline/pipeline.types.js.map +1 -0
  159. package/dist/src/rules/rule-insights.service.d.ts +31 -0
  160. package/dist/src/rules/rule-insights.service.js +102 -0
  161. package/dist/src/rules/rule-insights.service.js.map +1 -0
  162. package/dist/src/rules/rule-tracker.d.ts +24 -0
  163. package/dist/src/rules/rule-tracker.js +74 -0
  164. package/dist/src/rules/rule-tracker.js.map +1 -0
  165. package/dist/src/rules/rules.module.js +3 -2
  166. package/dist/src/rules/rules.module.js.map +1 -1
  167. package/dist/src/shared/event-bridge-reader.d.ts +17 -0
  168. package/dist/src/shared/event-bridge-reader.js +56 -0
  169. package/dist/src/shared/event-bridge-reader.js.map +1 -0
  170. package/dist/src/shared/version.d.ts +1 -1
  171. package/dist/src/shared/version.js +1 -1
  172. package/dist/src/skill/i18n/keywords.types.d.ts +4 -2
  173. package/dist/src/skill/i18n/keywords.types.js +3 -0
  174. package/dist/src/skill/i18n/keywords.types.js.map +1 -1
  175. package/dist/src/tui/components/ActModeScreen.d.ts +10 -0
  176. package/dist/src/tui/components/ActModeScreen.js +25 -0
  177. package/dist/src/tui/components/ActModeScreen.js.map +1 -0
  178. package/dist/src/tui/components/AgentDiscussionPanel.d.ts +8 -0
  179. package/dist/src/tui/components/AgentDiscussionPanel.js +115 -0
  180. package/dist/src/tui/components/AgentDiscussionPanel.js.map +1 -0
  181. package/dist/src/tui/components/AgentDiscussionPanel.spec.d.ts +1 -0
  182. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +229 -0
  183. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +1 -0
  184. package/dist/src/tui/components/EvalModeScreen.d.ts +8 -0
  185. package/dist/src/tui/components/EvalModeScreen.js +21 -0
  186. package/dist/src/tui/components/EvalModeScreen.js.map +1 -0
  187. package/dist/src/tui/components/FlowMap.spec.js.map +1 -1
  188. package/dist/src/tui/components/FocusedAgentPanel.js +1 -1
  189. package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
  190. package/dist/src/tui/components/FocusedAgentPanel.spec.js +1 -3
  191. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
  192. package/dist/src/tui/components/HeaderBar.js +3 -3
  193. package/dist/src/tui/components/HeaderBar.js.map +1 -1
  194. package/dist/src/tui/components/ModeScreenRouter.d.ts +13 -0
  195. package/dist/src/tui/components/ModeScreenRouter.js +51 -0
  196. package/dist/src/tui/components/ModeScreenRouter.js.map +1 -0
  197. package/dist/src/tui/components/PlanModeScreen.d.ts +10 -0
  198. package/dist/src/tui/components/PlanModeScreen.js +24 -0
  199. package/dist/src/tui/components/PlanModeScreen.js.map +1 -0
  200. package/dist/src/tui/components/SessionDashboard.d.ts +17 -0
  201. package/dist/src/tui/components/SessionDashboard.js +58 -0
  202. package/dist/src/tui/components/SessionDashboard.js.map +1 -0
  203. package/dist/src/tui/components/act-screen.pure.d.ts +12 -0
  204. package/dist/src/tui/components/act-screen.pure.js +93 -0
  205. package/dist/src/tui/components/act-screen.pure.js.map +1 -0
  206. package/dist/src/tui/components/agent-discussion-panel.pure.d.ts +55 -0
  207. package/dist/src/tui/components/agent-discussion-panel.pure.js +201 -0
  208. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +1 -0
  209. package/dist/src/tui/components/eval-screen.pure.d.ts +13 -0
  210. package/dist/src/tui/components/eval-screen.pure.js +76 -0
  211. package/dist/src/tui/components/eval-screen.pure.js.map +1 -0
  212. package/dist/src/tui/components/index.d.ts +16 -0
  213. package/dist/src/tui/components/index.js +48 -1
  214. package/dist/src/tui/components/index.js.map +1 -1
  215. package/dist/src/tui/components/plan-screen.pure.d.ts +9 -0
  216. package/dist/src/tui/components/plan-screen.pure.js +61 -0
  217. package/dist/src/tui/components/plan-screen.pure.js.map +1 -0
  218. package/dist/src/tui/components/session-dashboard.pure.d.ts +43 -0
  219. package/dist/src/tui/components/session-dashboard.pure.js +182 -0
  220. package/dist/src/tui/components/session-dashboard.pure.js.map +1 -0
  221. package/dist/src/tui/dashboard-app.js +3 -3
  222. package/dist/src/tui/dashboard-app.js.map +1 -1
  223. package/dist/src/tui/dashboard-types.d.ts +49 -0
  224. package/dist/src/tui/dashboard-types.js +20 -1
  225. package/dist/src/tui/dashboard-types.js.map +1 -1
  226. package/dist/src/tui/events/index.d.ts +1 -1
  227. package/dist/src/tui/events/index.js.map +1 -1
  228. package/dist/src/tui/events/types.d.ts +29 -1
  229. package/dist/src/tui/events/types.js +5 -0
  230. package/dist/src/tui/events/types.js.map +1 -1
  231. package/dist/src/tui/hooks/use-dashboard-state.d.ts +16 -1
  232. package/dist/src/tui/hooks/use-dashboard-state.js +70 -1
  233. package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
  234. package/dist/src/tui-bundle.mjs +1023 -125
  235. package/dist/tsconfig.build.tsbuildinfo +1 -1
  236. package/package.json +14 -14
@@ -0,0 +1,136 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ContextArchiveHandler = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const abstract_handler_1 = require("./abstract-handler");
15
+ const context_archive_service_1 = require("../../context/context-archive.service");
16
+ const response_utils_1 = require("../response.utils");
17
+ const validation_constants_1 = require("../../shared/validation.constants");
18
+ const context_archive_types_1 = require("../../context/context-archive.types");
19
+ let ContextArchiveHandler = class ContextArchiveHandler extends abstract_handler_1.AbstractHandler {
20
+ constructor(archiveService) {
21
+ super();
22
+ this.archiveService = archiveService;
23
+ }
24
+ getHandledTools() {
25
+ return ['get_context_history', 'search_context_archives', 'cleanup_context_archives'];
26
+ }
27
+ async handleTool(toolName, args) {
28
+ switch (toolName) {
29
+ case 'get_context_history':
30
+ return this.handleGetHistory(args);
31
+ case 'search_context_archives':
32
+ return this.handleSearch(args);
33
+ case 'cleanup_context_archives':
34
+ return this.handleCleanup(args);
35
+ default:
36
+ return (0, response_utils_1.createErrorResponse)(`Unknown tool: ${toolName}`);
37
+ }
38
+ }
39
+ getToolDefinitions() {
40
+ return [
41
+ {
42
+ name: 'get_context_history',
43
+ description: `List recent archived context documents from ${context_archive_types_1.ARCHIVE_DIR}/. Each archive is a previous session's context.md saved before PLAN mode reset. Returns metadata (title, date, size) for cross-session decision tracking.`,
44
+ inputSchema: {
45
+ type: 'object',
46
+ properties: {
47
+ limit: {
48
+ type: 'number',
49
+ description: `Maximum number of entries to return (default: 10, max: ${context_archive_types_1.MAX_ARCHIVE_RESULTS})`,
50
+ },
51
+ },
52
+ required: [],
53
+ },
54
+ },
55
+ {
56
+ name: 'search_context_archives',
57
+ description: `Search across all archived context documents by keyword. Finds past decisions, notes, and tasks from previous sessions. Returns matching lines with surrounding context.`,
58
+ inputSchema: {
59
+ type: 'object',
60
+ properties: {
61
+ keyword: {
62
+ type: 'string',
63
+ description: 'Search term (case-insensitive)',
64
+ },
65
+ limit: {
66
+ type: 'number',
67
+ description: `Maximum number of archives to search (default: ${context_archive_types_1.MAX_ARCHIVE_RESULTS})`,
68
+ },
69
+ },
70
+ required: ['keyword'],
71
+ },
72
+ },
73
+ {
74
+ name: 'cleanup_context_archives',
75
+ description: `Auto-cleanup old archived contexts. Archives older than the specified days are summarized into _summary.md and deleted. Keeps recent archives intact.`,
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {
79
+ maxAgeDays: {
80
+ type: 'number',
81
+ description: 'Maximum age in days before cleanup (default: 30)',
82
+ },
83
+ },
84
+ required: [],
85
+ },
86
+ },
87
+ ];
88
+ }
89
+ async handleGetHistory(args) {
90
+ const limit = typeof args?.limit === 'number' ? args.limit : 10;
91
+ if (limit < 1) {
92
+ return (0, response_utils_1.createErrorResponse)('limit must be >= 1');
93
+ }
94
+ const result = await this.archiveService.getHistory(limit);
95
+ return (0, response_utils_1.createJsonResponse)({
96
+ ...result,
97
+ archiveDir: context_archive_types_1.ARCHIVE_DIR,
98
+ message: result.totalCount === 0
99
+ ? 'No archived contexts found. Archives are created automatically when PLAN mode resets context.md.'
100
+ : `Found ${result.totalCount} archived context(s)`,
101
+ });
102
+ }
103
+ async handleSearch(args) {
104
+ const keyword = (0, validation_constants_1.extractOptionalString)(args, 'keyword');
105
+ if (!keyword || keyword.trim().length === 0) {
106
+ return (0, response_utils_1.createErrorResponse)('Missing required parameter: keyword');
107
+ }
108
+ const limit = typeof args?.limit === 'number' ? args.limit : context_archive_types_1.MAX_ARCHIVE_RESULTS;
109
+ const result = await this.archiveService.searchArchives(keyword, limit);
110
+ return (0, response_utils_1.createJsonResponse)({
111
+ ...result,
112
+ message: result.results.length === 0
113
+ ? `No archives found matching "${keyword}"`
114
+ : `Found matches in ${result.results.length} archive(s)`,
115
+ });
116
+ }
117
+ async handleCleanup(args) {
118
+ const maxAgeDays = typeof args?.maxAgeDays === 'number' ? args.maxAgeDays : 30;
119
+ if (maxAgeDays < 1) {
120
+ return (0, response_utils_1.createErrorResponse)('maxAgeDays must be >= 1');
121
+ }
122
+ const result = await this.archiveService.cleanupOldArchives(maxAgeDays);
123
+ return (0, response_utils_1.createJsonResponse)({
124
+ ...result,
125
+ message: result.summarizedCount === 0
126
+ ? 'No archives needed cleanup'
127
+ : `Cleaned up ${result.summarizedCount} old archive(s), ${result.remainingCount} remaining`,
128
+ });
129
+ }
130
+ };
131
+ exports.ContextArchiveHandler = ContextArchiveHandler;
132
+ exports.ContextArchiveHandler = ContextArchiveHandler = __decorate([
133
+ (0, common_1.Injectable)(),
134
+ __metadata("design:paramtypes", [context_archive_service_1.ContextArchiveService])
135
+ ], ContextArchiveHandler);
136
+ //# sourceMappingURL=context-archive.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-archive.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/context-archive.handler.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,17 @@ import type { ToolDefinition } from './base.handler';
2
2
  import type { ToolResponse } from '../response.utils';
3
3
  import { AbstractHandler } from './abstract-handler';
4
4
  import { ContextDocumentService } from '../../context/context-document.service';
5
+ import { ImpactEventService } from '../../impact';
5
6
  export declare class ContextDocumentHandler extends AbstractHandler {
6
7
  private readonly contextDocService;
7
- constructor(contextDocService: ContextDocumentService);
8
+ private readonly impactEventService;
9
+ constructor(contextDocService: ContextDocumentService, impactEventService: ImpactEventService);
8
10
  protected getHandledTools(): string[];
9
11
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
10
12
  getToolDefinitions(): ToolDefinition[];
13
+ private validateSessionId;
14
+ private getFilePath;
15
+ private extractIssues;
11
16
  private handleReadContext;
12
17
  private handleUpdateContext;
13
18
  private handleCleanupContext;
@@ -17,10 +17,12 @@ const response_utils_1 = require("../response.utils");
17
17
  const validation_constants_1 = require("../../shared/validation.constants");
18
18
  const context_document_types_1 = require("../../context/context-document.types");
19
19
  const verbosity_types_1 = require("../../shared/verbosity.types");
20
+ const impact_1 = require("../../impact");
20
21
  let ContextDocumentHandler = class ContextDocumentHandler extends abstract_handler_1.AbstractHandler {
21
- constructor(contextDocService) {
22
+ constructor(contextDocService, impactEventService) {
22
23
  super();
23
24
  this.contextDocService = contextDocService;
25
+ this.impactEventService = impactEventService;
24
26
  }
25
27
  getHandledTools() {
26
28
  return ['read_context', 'update_context', 'cleanup_context'];
@@ -50,6 +52,10 @@ let ContextDocumentHandler = class ContextDocumentHandler extends abstract_handl
50
52
  enum: ['minimal', 'standard', 'full'],
51
53
  description: 'Control response size: minimal (most recent section only), standard (2 most recent), full (all sections). Default: standard',
52
54
  },
55
+ sessionId: {
56
+ type: 'string',
57
+ description: 'Optional session ID for session-isolated context. Each session writes to its own file. Omit for legacy single-file behavior.',
58
+ },
53
59
  },
54
60
  required: [],
55
61
  },
@@ -119,6 +125,24 @@ Call this at the end of each mode to persist decisions and notes.`,
119
125
  enum: ['in_progress', 'completed', 'blocked'],
120
126
  description: 'Status of this mode section',
121
127
  },
128
+ issues: {
129
+ type: 'array',
130
+ items: {
131
+ type: 'object',
132
+ properties: {
133
+ number: { type: 'number', description: 'GitHub issue number' },
134
+ title: { type: 'string', description: 'Issue title' },
135
+ url: { type: 'string', description: 'Issue URL' },
136
+ status: { type: 'string', description: 'Issue status (open, closed)' },
137
+ },
138
+ required: ['number', 'title', 'url', 'status'],
139
+ },
140
+ description: 'Issues created/referenced during session. Persists across PLAN→ACT→EVAL modes.',
141
+ },
142
+ sessionId: {
143
+ type: 'string',
144
+ 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.',
145
+ },
122
146
  },
123
147
  required: ['mode'],
124
148
  },
@@ -137,24 +161,69 @@ Call this at the end of each mode to persist decisions and notes.`,
137
161
  type: 'number',
138
162
  description: 'Number of recent items to keep in summarized section arrays (default: 5)',
139
163
  },
164
+ sessionId: {
165
+ type: 'string',
166
+ description: 'Optional session ID for session-isolated context cleanup. Omit for legacy single-file behavior.',
167
+ },
140
168
  },
141
169
  required: [],
142
170
  },
143
171
  },
144
172
  ];
145
173
  }
174
+ validateSessionId(args) {
175
+ const sessionId = (0, validation_constants_1.extractOptionalString)(args, 'sessionId');
176
+ if (sessionId && !(0, context_document_types_1.isValidSessionId)(sessionId)) {
177
+ return {
178
+ error: (0, response_utils_1.createErrorResponse)(`Invalid sessionId: "${sessionId}". Must contain only alphanumeric characters and hyphens (1-64 chars).`),
179
+ };
180
+ }
181
+ return { sessionId: sessionId || undefined };
182
+ }
183
+ getFilePath(sessionId) {
184
+ return sessionId ? (0, context_document_types_1.getSessionContextFilePath)(sessionId) : context_document_types_1.CONTEXT_FILE_PATH;
185
+ }
186
+ extractIssues(args) {
187
+ if (!Array.isArray(args?.issues))
188
+ return undefined;
189
+ const issues = [];
190
+ for (const item of args.issues) {
191
+ if (typeof item === 'object' &&
192
+ item !== null &&
193
+ typeof item.number === 'number' &&
194
+ typeof item.title === 'string' &&
195
+ typeof item.url === 'string' &&
196
+ typeof item.status === 'string') {
197
+ issues.push({
198
+ number: item.number,
199
+ title: item.title,
200
+ url: item.url,
201
+ status: item.status,
202
+ });
203
+ }
204
+ }
205
+ return issues.length > 0 ? issues : undefined;
206
+ }
146
207
  async handleReadContext(args) {
208
+ const { sessionId, error } = this.validateSessionId(args);
209
+ if (error)
210
+ return error;
147
211
  const verbosityStr = (0, validation_constants_1.extractOptionalString)(args, 'verbosity') || 'standard';
148
212
  const verbosity = (0, verbosity_types_1.isValidVerbosity)(verbosityStr) ? verbosityStr : 'standard';
149
213
  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);
214
+ const readOptions = {};
215
+ if (verbosityConfig.maxContextSections !== -1) {
216
+ readOptions.maxSections = verbosityConfig.maxContextSections;
217
+ }
218
+ if (sessionId) {
219
+ readOptions.sessionId = sessionId;
220
+ }
221
+ const result = await this.contextDocService.readContext(Object.keys(readOptions).length > 0 ? readOptions : undefined);
222
+ const filePath = this.getFilePath(sessionId);
154
223
  if (!result.exists) {
155
224
  return (0, response_utils_1.createJsonResponse)({
156
225
  exists: false,
157
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
226
+ filePath,
158
227
  message: 'No context document found. Run PLAN mode to create one.',
159
228
  hint: 'Start with PLAN keyword to initialize context.',
160
229
  });
@@ -174,7 +243,7 @@ Call this at the end of each mode to persist decisions and notes.`,
174
243
  }
175
244
  return (0, response_utils_1.createJsonResponse)({
176
245
  exists: true,
177
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
246
+ filePath,
178
247
  document,
179
248
  summary: {
180
249
  title: document.metadata.title,
@@ -191,6 +260,7 @@ Call this at the end of each mode to persist decisions and notes.`,
191
260
  : null,
192
261
  allDecisions,
193
262
  allNotes,
263
+ sessionIssues: document.issues || [],
194
264
  },
195
265
  });
196
266
  }
@@ -202,7 +272,12 @@ Call this at the end of each mode to persist decisions and notes.`,
202
272
  if (!['PLAN', 'ACT', 'EVAL', 'AUTO'].includes(mode)) {
203
273
  return (0, response_utils_1.createErrorResponse)(`Invalid mode: ${mode}. Must be PLAN, ACT, EVAL, or AUTO`);
204
274
  }
275
+ const { sessionId, error } = this.validateSessionId(args);
276
+ if (error)
277
+ return error;
205
278
  const typedMode = mode;
279
+ const filePath = this.getFilePath(sessionId);
280
+ const issues = this.extractIssues(args);
206
281
  if (typedMode === 'PLAN') {
207
282
  const title = (0, validation_constants_1.extractOptionalString)(args, 'title') || 'Untitled Task';
208
283
  const result = await this.contextDocService.resetContext({
@@ -215,13 +290,15 @@ Call this at the end of each mode to persist decisions and notes.`,
215
290
  : undefined,
216
291
  decisions: Array.isArray(args?.decisions) ? args.decisions : undefined,
217
292
  notes: Array.isArray(args?.notes) ? args.notes : undefined,
293
+ issues,
294
+ sessionId,
218
295
  });
219
296
  if (!result.success) {
220
297
  return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to reset context');
221
298
  }
222
299
  return (0, response_utils_1.createJsonResponse)({
223
300
  success: true,
224
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
301
+ filePath,
225
302
  message: 'Context document reset (PLAN mode)',
226
303
  document: result.document,
227
304
  });
@@ -243,18 +320,40 @@ Call this at the end of each mode to persist decisions and notes.`,
243
320
  : undefined,
244
321
  status: (0, validation_constants_1.extractOptionalString)(args, 'status') ??
245
322
  undefined,
323
+ issues,
324
+ sessionId,
246
325
  });
247
326
  if (!result.success) {
248
327
  return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to update context');
249
328
  }
329
+ try {
330
+ if (typedMode === 'EVAL') {
331
+ const findings = Array.isArray(args?.findings) ? args.findings : [];
332
+ this.impactEventService.logEvent('default', 'issue_found', {
333
+ count: findings.length,
334
+ domain: 'eval',
335
+ });
336
+ }
337
+ else if (typedMode === 'ACT') {
338
+ const decisions = Array.isArray(args?.decisions) ? args.decisions : [];
339
+ this.impactEventService.logEvent('default', 'context_saved', {
340
+ count: decisions.length,
341
+ });
342
+ }
343
+ }
344
+ catch {
345
+ }
250
346
  return (0, response_utils_1.createJsonResponse)({
251
347
  success: true,
252
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
348
+ filePath,
253
349
  message: `Context document updated (${typedMode} mode)`,
254
350
  document: result.document,
255
351
  });
256
352
  }
257
353
  async handleCleanupContext(args) {
354
+ const { sessionId, error } = this.validateSessionId(args);
355
+ if (error)
356
+ return error;
258
357
  const keepRecentSectionsFull = typeof args?.keepRecentSectionsFull === 'number' ? args.keepRecentSectionsFull : 2;
259
358
  const keepRecentItems = typeof args?.keepRecentItems === 'number' ? args.keepRecentItems : 5;
260
359
  if (keepRecentSectionsFull < 0) {
@@ -263,13 +362,14 @@ Call this at the end of each mode to persist decisions and notes.`,
263
362
  if (keepRecentItems < 1) {
264
363
  return (0, response_utils_1.createErrorResponse)('keepRecentItems must be >= 1');
265
364
  }
266
- const result = await this.contextDocService.performCleanup(keepRecentSectionsFull, keepRecentItems);
365
+ const filePath = this.getFilePath(sessionId);
366
+ const result = await this.contextDocService.performCleanup(keepRecentSectionsFull, keepRecentItems, sessionId);
267
367
  if (!result.success) {
268
368
  return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to cleanup context');
269
369
  }
270
370
  return (0, response_utils_1.createJsonResponse)({
271
371
  success: true,
272
- filePath: context_document_types_1.CONTEXT_FILE_PATH,
372
+ filePath,
273
373
  message: result.message,
274
374
  document: result.document,
275
375
  });
@@ -278,6 +378,7 @@ Call this at the end of each mode to persist decisions and notes.`,
278
378
  exports.ContextDocumentHandler = ContextDocumentHandler;
279
379
  exports.ContextDocumentHandler = ContextDocumentHandler = __decorate([
280
380
  (0, common_1.Injectable)(),
281
- __metadata("design:paramtypes", [context_document_service_1.ContextDocumentService])
381
+ __metadata("design:paramtypes", [context_document_service_1.ContextDocumentService,
382
+ impact_1.ImpactEventService])
282
383
  ], ContextDocumentHandler);
283
384
  //# sourceMappingURL=context-document.handler.js.map
@@ -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":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yDAAqD;AACrD,qFAAgF;AAChF,sDAA4E;AAC5E,4EAAiG;AACjG,iFAI8C;AAG9C,kEAAoF;AACpF,yCAAkD;AAa3C,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,kCAAe;IACzD,YACmB,iBAAyC,EACzC,kBAAsC;QAEvD,KAAK,EAAE,CAAC;QAHS,sBAAiB,GAAjB,iBAAiB,CAAwB;QACzC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAGzD,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,QAAgB,EAChB,IAAyC;QAEzC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzC;gBACE,OAAO,IAAA,oCAAmB,EAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,0CAA0C,0CAAiB,8KAA8K;gBACtP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;4BACrC,WAAW,EACT,6HAA6H;yBAChI;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,8HAA8H;yBACjI;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,6CAA6C,0CAAiB;;;;kEAIjB;gBAC1D,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;4BACrC,WAAW,EAAE,6DAA6D;yBAC3E;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yDAAyD;yBACvE;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0CAA0C;yBACxD;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iCAAiC;yBAC/C;wBACD,mBAAmB,EAAE;4BACnB,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,kDAAkD;yBAChE;wBACD,6BAA6B,EAAE;4BAC7B,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,2CAA2C;yBACzD;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,2CAA2C;yBACzD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,6CAA6C;yBAC3D;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,2BAA2B;yBACzC;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,iCAAiC;yBAC/C;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,wCAAwC;yBACtD;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC;4BAC7C,WAAW,EAAE,6BAA6B;yBAC3C;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;oCAC9D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;oCACrD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;oCACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;iCACvE;gCACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;6BAC/C;4BACD,WAAW,EACT,gFAAgF;yBACnF;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,4JAA4J;yBAC/J;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,gDAAgD,0CAAiB,8LAA8L;gBAC5Q,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,sBAAsB,EAAE;4BACtB,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,qDAAqD;yBACnE;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,0EAA0E;yBAC7E;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,iGAAiG;yBACpG;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAMO,iBAAiB,CAAC,IAAyC;QAIjE,MAAM,SAAS,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,SAAS,IAAI,CAAC,IAAA,yCAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,KAAK,EAAE,IAAA,oCAAmB,EACxB,uBAAuB,SAAS,wEAAwE,CACzG;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC;IAC/C,CAAC;IAKO,WAAW,CAAC,SAAkB;QACpC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,kDAAyB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,0CAAiB,CAAC;IAC9E,CAAC;IAMO,aAAa,CAAC,IAAyC;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAEnD,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IACE,OAAO,IAAI,KAAK,QAAQ;gBACxB,IAAI,KAAK,IAAI;gBACb,OAAQ,IAAgC,CAAC,MAAM,KAAK,QAAQ;gBAC5D,OAAQ,IAAgC,CAAC,KAAK,KAAK,QAAQ;gBAC3D,OAAQ,IAAgC,CAAC,GAAG,KAAK,QAAQ;gBACzD,OAAQ,IAAgC,CAAC,MAAM,KAAK,QAAQ,EAC5D,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAG,IAAgC,CAAC,MAAgB;oBAC1D,KAAK,EAAG,IAAgC,CAAC,KAAe;oBACxD,GAAG,EAAG,IAAgC,CAAC,GAAa;oBACpD,MAAM,EAAG,IAAgC,CAAC,MAAgB;iBAC3D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,IAAyC;QAGzC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAGxB,MAAM,YAAY,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAA,kCAAgB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7E,MAAM,eAAe,GAAG,IAAA,oCAAkB,EAAC,SAAS,CAAC,CAAC;QAGtD,MAAM,WAAW,GAAiD,EAAE,CAAC;QACrE,IAAI,eAAe,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9C,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,kBAAkB,CAAC;QAC/D,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACrD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAA,mCAAkB,EAAC;gBACxB,MAAM,EAAE,KAAK;gBACb,QAAQ;gBACR,OAAO,EAAE,yDAAyD;gBAClE,IAAI,EAAE,gDAAgD;aACvD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,IAAA,oCAAmB,EAAC,2BAA2B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;QAGD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAS,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACnE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,SAAS;gBAAE,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAA,mCAAkB,EAAC;YACxB,MAAM,EAAE,IAAI;YACZ,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE;gBACP,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;gBAC9B,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW;gBAC1C,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAChC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBACtC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,gBAAgB,EAAE,SAAS;gBAC3B,mBAAmB,EAAE,WAAW,EAAE,mBAAmB;oBACnD,CAAC,CAAC;wBACE,KAAK,EAAE,WAAW,CAAC,mBAAmB;wBACtC,UAAU,EAAE,WAAW,CAAC,6BAA6B;qBACtD;oBACH,CAAC,CAAC,IAAI;gBACR,YAAY;gBACZ,QAAQ;gBACR,aAAa,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;aACrC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,IAAyC;QAEzC,MAAM,IAAI,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAA,oCAAmB,EAAC,kCAAkC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,IAAA,oCAAmB,EAAC,iBAAiB,IAAI,oCAAoC,CAAC,CAAC;QACxF,CAAC;QAGD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,SAAS,GAAG,IAAY,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAG7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAGxC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;gBACvD,KAAK;gBACL,IAAI,EAAE,IAAA,4CAAqB,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS;gBACtD,YAAY,EAAE,IAAA,4CAAqB,EAAC,IAAI,EAAE,cAAc,CAAC,IAAI,SAAS;gBACtE,mBAAmB,EAAE,IAAA,4CAAqB,EAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,SAAS;gBACpF,6BAA6B,EAC3B,OAAO,IAAI,EAAE,6BAA6B,KAAK,QAAQ;oBACrD,CAAC,CAAC,IAAI,CAAC,6BAA6B;oBACpC,CAAC,CAAC,SAAS;gBACf,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAsB,CAAC,CAAC,CAAC,SAAS;gBACpF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAkB,CAAC,CAAC,CAAC,SAAS;gBACxE,MAAM;gBACN,SAAS;aACV,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,IAAA,oCAAmB,EAAC,MAAM,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAC;YACxE,CAAC;YAED,OAAO,IAAA,mCAAkB,EAAC;gBACxB,OAAO,EAAE,IAAI;gBACb,QAAQ;gBACR,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YACxD,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAA,4CAAqB,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS;YACtD,YAAY,EAAE,IAAA,4CAAqB,EAAC,IAAI,EAAE,cAAc,CAAC,IAAI,SAAS;YACtE,mBAAmB,EAAE,IAAA,4CAAqB,EAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,SAAS;YACpF,6BAA6B,EAC3B,OAAO,IAAI,EAAE,6BAA6B,KAAK,QAAQ;gBACrD,CAAC,CAAC,IAAI,CAAC,6BAA6B;gBACpC,CAAC,CAAC,SAAS;YACf,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAsB,CAAC,CAAC,CAAC,SAAS;YACpF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAkB,CAAC,CAAC,CAAC,SAAS;YACxE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,QAAqB,CAAC,CAAC,CAAC,SAAS;YACjF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,QAAqB,CAAC,CAAC,CAAC,SAAS;YACjF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC;gBACnD,CAAC,CAAE,IAAI,CAAC,eAA4B;gBACpC,CAAC,CAAC,SAAS;YACb,MAAM,EACH,IAAA,4CAAqB,EAAC,IAAI,EAAE,QAAQ,CAA6C;gBAClF,SAAS;YACX,MAAM;YACN,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAA,oCAAmB,EAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC;YACH,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE;oBACzD,KAAK,EAAE,QAAQ,CAAC,MAAM;oBACtB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,EAAE;oBAC3D,KAAK,EAAE,SAAS,CAAC,MAAM;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAED,OAAO,IAAA,mCAAkB,EAAC;YACxB,OAAO,EAAE,IAAI;YACb,QAAQ;YACR,OAAO,EAAE,6BAA6B,SAAS,QAAQ;YACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,IAAyC;QAGzC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAGxB,MAAM,sBAAsB,GAC1B,OAAO,IAAI,EAAE,sBAAsB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,eAAe,GAAG,OAAO,IAAI,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAG7F,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAA,oCAAmB,EAAC,qCAAqC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAA,oCAAmB,EAAC,8BAA8B,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CACxD,sBAAsB,EACtB,eAAe,EACf,SAAS,CACV,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAA,oCAAmB,EAAC,MAAM,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAA,mCAAkB,EAAC;YACxB,OAAO,EAAE,IAAI;YACb,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAzbY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAG2B,iDAAsB;QACrB,2BAAkB;GAH9C,sBAAsB,CAyblC"}
@@ -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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"}