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.
- package/dist/src/agent/agent.module.js +3 -1
- package/dist/src/agent/agent.module.js.map +1 -1
- package/dist/src/agent/agent.service.d.ts +11 -4
- package/dist/src/agent/agent.service.js +81 -13
- package/dist/src/agent/agent.service.js.map +1 -1
- package/dist/src/agent/agent.types.d.ts +41 -1
- package/dist/src/agent/agent.types.js.map +1 -1
- package/dist/src/collaboration/discussion-engine.d.ts +14 -0
- package/dist/src/collaboration/discussion-engine.js +49 -0
- package/dist/src/collaboration/discussion-engine.js.map +1 -0
- package/dist/src/collaboration/index.d.ts +5 -0
- package/dist/src/collaboration/index.js +22 -0
- package/dist/src/collaboration/index.js.map +1 -0
- package/dist/src/collaboration/opinion-adapter.d.ts +14 -0
- package/dist/src/collaboration/opinion-adapter.js +56 -0
- package/dist/src/collaboration/opinion-adapter.js.map +1 -0
- package/dist/src/collaboration/terminal-formatter.d.ts +5 -0
- package/dist/src/collaboration/terminal-formatter.js +57 -0
- package/dist/src/collaboration/terminal-formatter.js.map +1 -0
- package/dist/src/collaboration/types.d.ts +50 -0
- package/dist/src/collaboration/types.js +53 -0
- package/dist/src/collaboration/types.js.map +1 -0
- package/dist/src/config/config.schema.d.ts +14 -0
- package/dist/src/config/config.schema.js +7 -0
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/context/context-archive.service.d.ts +14 -0
- package/dist/src/context/context-archive.service.js +257 -0
- package/dist/src/context/context-archive.service.js.map +1 -0
- package/dist/src/context/context-archive.types.d.ts +37 -0
- package/dist/src/context/context-archive.types.js +47 -0
- package/dist/src/context/context-archive.types.js.map +1 -0
- package/dist/src/context/context-document.service.d.ts +4 -2
- package/dist/src/context/context-document.service.js +24 -4
- package/dist/src/context/context-document.service.js.map +1 -1
- package/dist/src/context/context-document.types.d.ts +18 -0
- package/dist/src/context/context-document.types.js +13 -1
- package/dist/src/context/context-document.types.js.map +1 -1
- package/dist/src/context/context-parser.utils.js +32 -0
- package/dist/src/context/context-parser.utils.js.map +1 -1
- package/dist/src/context/context-serializer.utils.d.ts +3 -2
- package/dist/src/context/context-serializer.utils.js +25 -1
- package/dist/src/context/context-serializer.utils.js.map +1 -1
- package/dist/src/context/context.module.js +3 -2
- package/dist/src/context/context.module.js.map +1 -1
- package/dist/src/context/index.d.ts +1 -0
- package/dist/src/context/index.js +1 -0
- package/dist/src/context/index.js.map +1 -1
- package/dist/src/impact/impact-event.service.d.ts +8 -0
- package/dist/src/impact/impact-event.service.js +53 -0
- package/dist/src/impact/impact-event.service.js.map +1 -0
- package/dist/src/impact/impact-report.service.d.ts +7 -0
- package/dist/src/impact/impact-report.service.js +92 -0
- package/dist/src/impact/impact-report.service.js.map +1 -0
- package/dist/src/impact/impact.module.d.ts +2 -0
- package/dist/src/impact/impact.module.js +22 -0
- package/dist/src/impact/impact.module.js.map +1 -0
- package/dist/src/impact/impact.types.d.ts +32 -0
- package/dist/src/impact/impact.types.js +5 -0
- package/dist/src/impact/impact.types.js.map +1 -0
- package/dist/src/impact/index.d.ts +4 -0
- package/dist/src/impact/index.js +25 -0
- package/dist/src/impact/index.js.map +1 -0
- package/dist/src/keyword/diff-analyzer.d.ts +19 -0
- package/dist/src/keyword/diff-analyzer.js +127 -0
- package/dist/src/keyword/diff-analyzer.js.map +1 -0
- package/dist/src/keyword/explicit-pattern-matcher.d.ts +3 -0
- package/dist/src/keyword/explicit-pattern-matcher.js +34 -0
- package/dist/src/keyword/explicit-pattern-matcher.js.map +1 -0
- package/dist/src/keyword/keyword.module.js +17 -1
- package/dist/src/keyword/keyword.module.js.map +1 -1
- package/dist/src/keyword/keyword.service.d.ts +3 -0
- package/dist/src/keyword/keyword.service.js +33 -3
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +29 -1
- package/dist/src/keyword/keyword.types.js +34 -1
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/primary-agent-resolver.d.ts +7 -3
- package/dist/src/keyword/primary-agent-resolver.js +24 -2
- package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
- package/dist/src/keyword/strategies/act-agent.strategy.js +16 -0
- package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
- package/dist/src/keyword/strategies/index.d.ts +1 -1
- package/dist/src/keyword/strategies/index.js.map +1 -1
- package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +5 -0
- package/dist/src/keyword/visual-data.builder.d.ts +10 -0
- package/dist/src/keyword/visual-data.builder.js +62 -0
- package/dist/src/keyword/visual-data.builder.js.map +1 -0
- package/dist/src/mcp/handlers/agent.handler.d.ts +4 -1
- package/dist/src/mcp/handlers/agent.handler.js +59 -6
- package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
- package/dist/src/mcp/handlers/checklist-context.handler.d.ts +3 -1
- package/dist/src/mcp/handlers/checklist-context.handler.js +13 -2
- package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -1
- package/dist/src/mcp/handlers/context-archive.handler.d.ts +14 -0
- package/dist/src/mcp/handlers/context-archive.handler.js +136 -0
- package/dist/src/mcp/handlers/context-archive.handler.js.map +1 -0
- package/dist/src/mcp/handlers/context-document.handler.d.ts +6 -1
- package/dist/src/mcp/handlers/context-document.handler.js +113 -12
- package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
- package/dist/src/mcp/handlers/discussion.handler.d.ts +14 -0
- package/dist/src/mcp/handlers/discussion.handler.js +168 -0
- package/dist/src/mcp/handlers/discussion.handler.js.map +1 -0
- package/dist/src/mcp/handlers/discussion.types.d.ts +18 -0
- package/dist/src/mcp/handlers/discussion.types.js +11 -0
- package/dist/src/mcp/handlers/discussion.types.js.map +1 -0
- package/dist/src/mcp/handlers/impact.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/impact.handler.js +53 -0
- package/dist/src/mcp/handlers/impact.handler.js.map +1 -0
- package/dist/src/mcp/handlers/index.d.ts +6 -0
- package/dist/src/mcp/handlers/index.js +13 -1
- package/dist/src/mcp/handlers/index.js.map +1 -1
- package/dist/src/mcp/handlers/mode.handler.d.ts +7 -1
- package/dist/src/mcp/handlers/mode.handler.js +109 -3
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
- package/dist/src/mcp/handlers/pipeline.handler.d.ts +14 -0
- package/dist/src/mcp/handlers/pipeline.handler.js +137 -0
- package/dist/src/mcp/handlers/pipeline.handler.js.map +1 -0
- package/dist/src/mcp/handlers/rule-insights.handler.d.ts +14 -0
- package/dist/src/mcp/handlers/rule-insights.handler.js +78 -0
- package/dist/src/mcp/handlers/rule-insights.handler.js.map +1 -0
- package/dist/src/mcp/handlers/rules.handler.d.ts +3 -1
- package/dist/src/mcp/handlers/rules.handler.js +14 -2
- package/dist/src/mcp/handlers/rules.handler.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +10 -0
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/parallel-validation/extract-file-paths.d.ts +1 -0
- package/dist/src/parallel-validation/extract-file-paths.js +19 -0
- package/dist/src/parallel-validation/extract-file-paths.js.map +1 -0
- package/dist/src/parallel-validation/index.d.ts +5 -0
- package/dist/src/parallel-validation/index.js +12 -0
- package/dist/src/parallel-validation/index.js.map +1 -0
- package/dist/src/parallel-validation/overlap-matrix.d.ts +10 -0
- package/dist/src/parallel-validation/overlap-matrix.js +23 -0
- package/dist/src/parallel-validation/overlap-matrix.js.map +1 -0
- package/dist/src/parallel-validation/parallel-validation.handler.d.ts +8 -0
- package/dist/src/parallel-validation/parallel-validation.handler.js +84 -0
- package/dist/src/parallel-validation/parallel-validation.handler.js.map +1 -0
- package/dist/src/parallel-validation/parallel-validation.types.d.ts +12 -0
- package/dist/src/parallel-validation/parallel-validation.types.js +3 -0
- package/dist/src/parallel-validation/parallel-validation.types.js.map +1 -0
- package/dist/src/parallel-validation/wave-splitter.d.ts +2 -0
- package/dist/src/parallel-validation/wave-splitter.js +39 -0
- package/dist/src/parallel-validation/wave-splitter.js.map +1 -0
- package/dist/src/pipeline/index.d.ts +5 -0
- package/dist/src/pipeline/index.js +14 -0
- package/dist/src/pipeline/index.js.map +1 -0
- package/dist/src/pipeline/pipeline.executors.d.ts +2 -0
- package/dist/src/pipeline/pipeline.executors.js +79 -0
- package/dist/src/pipeline/pipeline.executors.js.map +1 -0
- package/dist/src/pipeline/pipeline.module.d.ts +2 -0
- package/dist/src/pipeline/pipeline.module.js +21 -0
- package/dist/src/pipeline/pipeline.module.js.map +1 -0
- package/dist/src/pipeline/pipeline.service.d.ts +8 -0
- package/dist/src/pipeline/pipeline.service.js +89 -0
- package/dist/src/pipeline/pipeline.service.js.map +1 -0
- package/dist/src/pipeline/pipeline.types.d.ts +47 -0
- package/dist/src/pipeline/pipeline.types.js +33 -0
- package/dist/src/pipeline/pipeline.types.js.map +1 -0
- package/dist/src/rules/rule-insights.service.d.ts +31 -0
- package/dist/src/rules/rule-insights.service.js +102 -0
- package/dist/src/rules/rule-insights.service.js.map +1 -0
- package/dist/src/rules/rule-tracker.d.ts +24 -0
- package/dist/src/rules/rule-tracker.js +74 -0
- package/dist/src/rules/rule-tracker.js.map +1 -0
- package/dist/src/rules/rules.module.js +3 -2
- package/dist/src/rules/rules.module.js.map +1 -1
- package/dist/src/shared/event-bridge-reader.d.ts +17 -0
- package/dist/src/shared/event-bridge-reader.js +56 -0
- package/dist/src/shared/event-bridge-reader.js.map +1 -0
- package/dist/src/shared/version.d.ts +1 -1
- package/dist/src/shared/version.js +1 -1
- package/dist/src/skill/i18n/keywords.types.d.ts +4 -2
- package/dist/src/skill/i18n/keywords.types.js +3 -0
- package/dist/src/skill/i18n/keywords.types.js.map +1 -1
- package/dist/src/tui/components/ActModeScreen.d.ts +10 -0
- package/dist/src/tui/components/ActModeScreen.js +25 -0
- package/dist/src/tui/components/ActModeScreen.js.map +1 -0
- package/dist/src/tui/components/AgentDiscussionPanel.d.ts +8 -0
- package/dist/src/tui/components/AgentDiscussionPanel.js +115 -0
- package/dist/src/tui/components/AgentDiscussionPanel.js.map +1 -0
- package/dist/src/tui/components/AgentDiscussionPanel.spec.d.ts +1 -0
- package/dist/src/tui/components/AgentDiscussionPanel.spec.js +229 -0
- package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +1 -0
- package/dist/src/tui/components/EvalModeScreen.d.ts +8 -0
- package/dist/src/tui/components/EvalModeScreen.js +21 -0
- package/dist/src/tui/components/EvalModeScreen.js.map +1 -0
- package/dist/src/tui/components/FlowMap.spec.js.map +1 -1
- package/dist/src/tui/components/FocusedAgentPanel.js +1 -1
- package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
- package/dist/src/tui/components/FocusedAgentPanel.spec.js +1 -3
- package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
- package/dist/src/tui/components/HeaderBar.js +3 -3
- package/dist/src/tui/components/HeaderBar.js.map +1 -1
- package/dist/src/tui/components/ModeScreenRouter.d.ts +13 -0
- package/dist/src/tui/components/ModeScreenRouter.js +51 -0
- package/dist/src/tui/components/ModeScreenRouter.js.map +1 -0
- package/dist/src/tui/components/PlanModeScreen.d.ts +10 -0
- package/dist/src/tui/components/PlanModeScreen.js +24 -0
- package/dist/src/tui/components/PlanModeScreen.js.map +1 -0
- package/dist/src/tui/components/SessionDashboard.d.ts +17 -0
- package/dist/src/tui/components/SessionDashboard.js +58 -0
- package/dist/src/tui/components/SessionDashboard.js.map +1 -0
- package/dist/src/tui/components/act-screen.pure.d.ts +12 -0
- package/dist/src/tui/components/act-screen.pure.js +93 -0
- package/dist/src/tui/components/act-screen.pure.js.map +1 -0
- package/dist/src/tui/components/agent-discussion-panel.pure.d.ts +55 -0
- package/dist/src/tui/components/agent-discussion-panel.pure.js +201 -0
- package/dist/src/tui/components/agent-discussion-panel.pure.js.map +1 -0
- package/dist/src/tui/components/eval-screen.pure.d.ts +13 -0
- package/dist/src/tui/components/eval-screen.pure.js +76 -0
- package/dist/src/tui/components/eval-screen.pure.js.map +1 -0
- package/dist/src/tui/components/index.d.ts +16 -0
- package/dist/src/tui/components/index.js +48 -1
- package/dist/src/tui/components/index.js.map +1 -1
- package/dist/src/tui/components/plan-screen.pure.d.ts +9 -0
- package/dist/src/tui/components/plan-screen.pure.js +61 -0
- package/dist/src/tui/components/plan-screen.pure.js.map +1 -0
- package/dist/src/tui/components/session-dashboard.pure.d.ts +43 -0
- package/dist/src/tui/components/session-dashboard.pure.js +182 -0
- package/dist/src/tui/components/session-dashboard.pure.js.map +1 -0
- package/dist/src/tui/dashboard-app.js +3 -3
- package/dist/src/tui/dashboard-app.js.map +1 -1
- package/dist/src/tui/dashboard-types.d.ts +49 -0
- package/dist/src/tui/dashboard-types.js +20 -1
- package/dist/src/tui/dashboard-types.js.map +1 -1
- package/dist/src/tui/events/index.d.ts +1 -1
- package/dist/src/tui/events/index.js.map +1 -1
- package/dist/src/tui/events/types.d.ts +29 -1
- package/dist/src/tui/events/types.js +5 -0
- package/dist/src/tui/events/types.js.map +1 -1
- package/dist/src/tui/hooks/use-dashboard-state.d.ts +16 -1
- package/dist/src/tui/hooks/use-dashboard-state.js +70 -1
- package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
- package/dist/src/tui-bundle.mjs +1023 -125
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- 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
|
-
|
|
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 =
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":"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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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"}
|