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