codingbuddy 3.1.0 → 3.1.2
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-summary.utils.d.ts +15 -0
- package/dist/src/agent/agent-summary.utils.js +26 -0
- package/dist/src/agent/agent-summary.utils.js.map +1 -0
- package/dist/src/agent/agent.service.d.ts +2 -1
- package/dist/src/agent/agent.service.js +27 -8
- package/dist/src/agent/agent.service.js.map +1 -1
- package/dist/src/agent/agent.types.d.ts +6 -1
- package/dist/src/agent/agent.types.js.map +1 -1
- package/dist/src/cli/cli.js +4 -9
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/cli.types.d.ts +0 -1
- package/dist/src/cli/init/config.writer.d.ts +2 -5
- package/dist/src/cli/init/config.writer.js +5 -16
- package/dist/src/cli/init/config.writer.js.map +1 -1
- package/dist/src/cli/init/index.d.ts +1 -1
- package/dist/src/cli/init/init.command.js +4 -9
- package/dist/src/cli/init/init.command.js.map +1 -1
- package/dist/src/cli/init/init.constants.js +0 -1
- package/dist/src/cli/init/init.constants.js.map +1 -1
- package/dist/src/cli/init/templates/config-renderer.d.ts +0 -2
- package/dist/src/cli/init/templates/config-renderer.js +0 -156
- package/dist/src/cli/init/templates/config-renderer.js.map +1 -1
- package/dist/src/cli/init/templates/index.d.ts +2 -2
- package/dist/src/cli/init/templates/index.js +1 -4
- package/dist/src/cli/init/templates/index.js.map +1 -1
- package/dist/src/cli/init/templates/template.renderer.d.ts +0 -1
- package/dist/src/cli/init/templates/template.renderer.js +0 -159
- package/dist/src/cli/init/templates/template.renderer.js.map +1 -1
- package/dist/src/config/config-diff.service.js +1 -1
- package/dist/src/config/config-diff.service.js.map +1 -1
- package/dist/src/config/config.loader.d.ts +7 -4
- package/dist/src/config/config.loader.js +52 -35
- package/dist/src/config/config.loader.js.map +1 -1
- package/dist/src/config/config.schema.d.ts +2 -0
- package/dist/src/config/config.schema.js +1 -0
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/config/config.service.js +5 -0
- package/dist/src/config/config.service.js.map +1 -1
- package/dist/src/context/context-document.service.d.ts +10 -2
- package/dist/src/context/context-document.service.js +92 -3
- package/dist/src/context/context-document.service.js.map +1 -1
- package/dist/src/context/context-document.types.d.ts +20 -0
- package/dist/src/context/context-document.types.js +5 -1
- package/dist/src/context/context-document.types.js.map +1 -1
- package/dist/src/context/context-serializer.utils.d.ts +7 -0
- package/dist/src/context/context-serializer.utils.js +47 -0
- package/dist/src/context/context-serializer.utils.js.map +1 -1
- package/dist/src/context/context.types.d.ts +1 -1
- package/dist/src/keyword/keyword.module.js +77 -4
- package/dist/src/keyword/keyword.module.js.map +1 -1
- package/dist/src/keyword/keyword.service.d.ts +42 -4
- package/dist/src/keyword/keyword.service.js +145 -29
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +16 -0
- package/dist/src/keyword/keyword.types.js +2 -1
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
- package/dist/src/mcp/handlers/agent.handler.js +14 -8
- package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
- package/dist/src/mcp/handlers/checklist-context.handler.js +11 -2
- package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -1
- package/dist/src/mcp/handlers/context-document.handler.d.ts +1 -0
- package/dist/src/mcp/handlers/context-document.handler.js +64 -6
- package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
- package/dist/src/mcp/handlers/index.d.ts +0 -1
- package/dist/src/mcp/handlers/index.js +1 -3
- package/dist/src/mcp/handlers/index.js.map +1 -1
- package/dist/src/mcp/handlers/mode.handler.d.ts +2 -13
- package/dist/src/mcp/handlers/mode.handler.js +27 -158
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
- package/dist/src/mcp/handlers/rules.handler.d.ts +3 -1
- package/dist/src/mcp/handlers/rules.handler.js +5 -4
- package/dist/src/mcp/handlers/rules.handler.js.map +1 -1
- package/dist/src/mcp/handlers/skill.handler.d.ts +4 -1
- package/dist/src/mcp/handlers/skill.handler.js +37 -3
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +0 -3
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/model/model-resolver.service.d.ts +3 -7
- package/dist/src/model/model-resolver.service.js +4 -25
- package/dist/src/model/model-resolver.service.js.map +1 -1
- package/dist/src/model/model.resolver.js +14 -28
- package/dist/src/model/model.resolver.js.map +1 -1
- package/dist/src/model/model.types.d.ts +1 -3
- package/dist/src/model/model.types.js.map +1 -1
- package/dist/src/rules/rules-content.utils.d.ts +3 -0
- package/dist/src/rules/rules-content.utils.js +40 -0
- package/dist/src/rules/rules-content.utils.js.map +1 -0
- package/dist/src/rules/rules.service.d.ts +6 -0
- package/dist/src/rules/rules.service.js +50 -0
- package/dist/src/rules/rules.service.js.map +1 -1
- package/dist/src/shared/slug.utils.d.ts +1 -1
- package/dist/src/shared/slug.utils.js +2 -2
- package/dist/src/shared/token-counter.d.ts +13 -0
- package/dist/src/shared/token-counter.js +41 -0
- package/dist/src/shared/token-counter.js.map +1 -0
- package/dist/src/shared/validation.constants.d.ts +2 -1
- package/dist/src/shared/validation.constants.js +3 -2
- package/dist/src/shared/validation.constants.js.map +1 -1
- package/dist/src/shared/verbosity.types.d.ts +13 -0
- package/dist/src/shared/verbosity.types.js +44 -0
- package/dist/src/shared/verbosity.types.js.map +1 -0
- package/dist/src/skill/index.d.ts +1 -0
- package/dist/src/skill/index.js +3 -1
- package/dist/src/skill/index.js.map +1 -1
- package/dist/src/skill/skill-content.utils.d.ts +4 -0
- package/dist/src/skill/skill-content.utils.js +22 -0
- package/dist/src/skill/skill-content.utils.js.map +1 -0
- package/dist/src/skill/skill.module.d.ts +2 -0
- package/dist/src/{session/session.module.js → skill/skill.module.js} +9 -11
- package/dist/src/skill/skill.module.js.map +1 -0
- package/dist/src/state/state.service.d.ts +0 -2
- package/dist/src/state/state.service.js +0 -31
- package/dist/src/state/state.service.js.map +1 -1
- package/dist/src/state/state.types.d.ts +0 -1
- package/dist/src/state/state.types.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +29 -29
- package/dist/src/mcp/handlers/session.handler.d.ts +0 -15
- package/dist/src/mcp/handlers/session.handler.js +0 -238
- package/dist/src/mcp/handlers/session.handler.js.map +0 -1
- package/dist/src/session/__tests__/session-test.utils.d.ts +0 -5
- package/dist/src/session/__tests__/session-test.utils.js +0 -59
- package/dist/src/session/__tests__/session-test.utils.js.map +0 -1
- package/dist/src/session/index.d.ts +0 -3
- package/dist/src/session/index.js +0 -8
- package/dist/src/session/index.js.map +0 -1
- package/dist/src/session/session.cache.d.ts +0 -19
- package/dist/src/session/session.cache.js +0 -83
- package/dist/src/session/session.cache.js.map +0 -1
- package/dist/src/session/session.module.d.ts +0 -2
- package/dist/src/session/session.module.js.map +0 -1
- package/dist/src/session/session.parser.d.ts +0 -22
- package/dist/src/session/session.parser.js +0 -273
- package/dist/src/session/session.parser.js.map +0 -1
- package/dist/src/session/session.serializer.d.ts +0 -6
- package/dist/src/session/session.serializer.js +0 -84
- package/dist/src/session/session.serializer.js.map +0 -1
- package/dist/src/session/session.service.d.ts +0 -24
- package/dist/src/session/session.service.js +0 -309
- package/dist/src/session/session.service.js.map +0 -1
- package/dist/src/session/session.types.d.ts +0 -52
- package/dist/src/session/session.types.js +0 -3
- package/dist/src/session/session.types.js.map +0 -1
|
@@ -16,20 +16,23 @@ const context_document_service_1 = require("../../context/context-document.servi
|
|
|
16
16
|
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
|
+
const verbosity_types_1 = require("../../shared/verbosity.types");
|
|
19
20
|
let ContextDocumentHandler = class ContextDocumentHandler extends abstract_handler_1.AbstractHandler {
|
|
20
21
|
constructor(contextDocService) {
|
|
21
22
|
super();
|
|
22
23
|
this.contextDocService = contextDocService;
|
|
23
24
|
}
|
|
24
25
|
getHandledTools() {
|
|
25
|
-
return ['read_context', 'update_context'];
|
|
26
|
+
return ['read_context', 'update_context', 'cleanup_context'];
|
|
26
27
|
}
|
|
27
28
|
async handleTool(toolName, args) {
|
|
28
29
|
switch (toolName) {
|
|
29
30
|
case 'read_context':
|
|
30
|
-
return this.handleReadContext();
|
|
31
|
+
return this.handleReadContext(args);
|
|
31
32
|
case 'update_context':
|
|
32
33
|
return this.handleUpdateContext(args);
|
|
34
|
+
case 'cleanup_context':
|
|
35
|
+
return this.handleCleanupContext(args);
|
|
33
36
|
default:
|
|
34
37
|
return (0, response_utils_1.createErrorResponse)(`Unknown tool: ${toolName}`);
|
|
35
38
|
}
|
|
@@ -38,10 +41,16 @@ let ContextDocumentHandler = class ContextDocumentHandler extends abstract_handl
|
|
|
38
41
|
return [
|
|
39
42
|
{
|
|
40
43
|
name: 'read_context',
|
|
41
|
-
description: `Read the current context document from ${context_document_types_1.CONTEXT_FILE_PATH}. Returns all accumulated context from PLAN/ACT/EVAL modes including decisions, notes, and recommended agents.`,
|
|
44
|
+
description: `Read the current context document from ${context_document_types_1.CONTEXT_FILE_PATH}. Returns all accumulated context from PLAN/ACT/EVAL modes including decisions, notes, and recommended agents. Supports verbosity levels for controlling returned data size.`,
|
|
42
45
|
inputSchema: {
|
|
43
46
|
type: 'object',
|
|
44
|
-
properties: {
|
|
47
|
+
properties: {
|
|
48
|
+
verbosity: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
enum: ['minimal', 'standard', 'full'],
|
|
51
|
+
description: 'Control response size: minimal (most recent section only), standard (2 most recent), full (all sections). Default: standard',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
45
54
|
required: [],
|
|
46
55
|
},
|
|
47
56
|
},
|
|
@@ -50,6 +59,7 @@ let ContextDocumentHandler = class ContextDocumentHandler extends abstract_handl
|
|
|
50
59
|
description: `MANDATORY: Update the context document at ${context_document_types_1.CONTEXT_FILE_PATH}.
|
|
51
60
|
- PLAN mode: Resets (clears) existing content and starts fresh.
|
|
52
61
|
- ACT/EVAL modes: Appends new section to existing content (requires PLAN first).
|
|
62
|
+
- Automatic cleanup: If document exceeds size threshold, older sections are automatically summarized.
|
|
53
63
|
Call this at the end of each mode to persist decisions and notes.`,
|
|
54
64
|
inputSchema: {
|
|
55
65
|
type: 'object',
|
|
@@ -113,10 +123,34 @@ Call this at the end of each mode to persist decisions and notes.`,
|
|
|
113
123
|
required: ['mode'],
|
|
114
124
|
},
|
|
115
125
|
},
|
|
126
|
+
{
|
|
127
|
+
name: 'cleanup_context',
|
|
128
|
+
description: `Manually trigger context document cleanup at ${context_document_types_1.CONTEXT_FILE_PATH}. Summarizes older sections to reduce document size while preserving recent history. Normally happens automatically when size thresholds are exceeded, but can be called manually if needed.`,
|
|
129
|
+
inputSchema: {
|
|
130
|
+
type: 'object',
|
|
131
|
+
properties: {
|
|
132
|
+
keepRecentSectionsFull: {
|
|
133
|
+
type: 'number',
|
|
134
|
+
description: 'Number of recent sections to keep full (default: 2)',
|
|
135
|
+
},
|
|
136
|
+
keepRecentItems: {
|
|
137
|
+
type: 'number',
|
|
138
|
+
description: 'Number of recent items to keep in summarized section arrays (default: 5)',
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
required: [],
|
|
142
|
+
},
|
|
143
|
+
},
|
|
116
144
|
];
|
|
117
145
|
}
|
|
118
|
-
async handleReadContext() {
|
|
119
|
-
const
|
|
146
|
+
async handleReadContext(args) {
|
|
147
|
+
const verbosityStr = (0, validation_constants_1.extractOptionalString)(args, 'verbosity') || 'standard';
|
|
148
|
+
const verbosity = verbosityStr;
|
|
149
|
+
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);
|
|
120
154
|
if (!result.exists) {
|
|
121
155
|
return (0, response_utils_1.createJsonResponse)({
|
|
122
156
|
exists: false,
|
|
@@ -147,6 +181,8 @@ Call this at the end of each mode to persist decisions and notes.`,
|
|
|
147
181
|
currentMode: document.metadata.currentMode,
|
|
148
182
|
status: document.metadata.status,
|
|
149
183
|
sectionCount: document.sections.length,
|
|
184
|
+
truncatedSections: result.truncatedSections,
|
|
185
|
+
verbosityApplied: verbosity,
|
|
150
186
|
recommendedActAgent: planSection?.recommendedActAgent
|
|
151
187
|
? {
|
|
152
188
|
agent: planSection.recommendedActAgent,
|
|
@@ -223,6 +259,28 @@ Call this at the end of each mode to persist decisions and notes.`,
|
|
|
223
259
|
document: result.document,
|
|
224
260
|
});
|
|
225
261
|
}
|
|
262
|
+
async handleCleanupContext(args) {
|
|
263
|
+
const keepRecentSectionsFull = typeof args?.keepRecentSectionsFull === 'number'
|
|
264
|
+
? args.keepRecentSectionsFull
|
|
265
|
+
: 2;
|
|
266
|
+
const keepRecentItems = typeof args?.keepRecentItems === 'number' ? args.keepRecentItems : 5;
|
|
267
|
+
if (keepRecentSectionsFull < 0) {
|
|
268
|
+
return (0, response_utils_1.createErrorResponse)('keepRecentSectionsFull must be >= 0');
|
|
269
|
+
}
|
|
270
|
+
if (keepRecentItems < 1) {
|
|
271
|
+
return (0, response_utils_1.createErrorResponse)('keepRecentItems must be >= 1');
|
|
272
|
+
}
|
|
273
|
+
const result = await this.contextDocService.performCleanup(keepRecentSectionsFull, keepRecentItems);
|
|
274
|
+
if (!result.success) {
|
|
275
|
+
return (0, response_utils_1.createErrorResponse)(result.error || 'Failed to cleanup context');
|
|
276
|
+
}
|
|
277
|
+
return (0, response_utils_1.createJsonResponse)({
|
|
278
|
+
success: true,
|
|
279
|
+
filePath: context_document_types_1.CONTEXT_FILE_PATH,
|
|
280
|
+
message: result.message,
|
|
281
|
+
document: result.document,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
226
284
|
};
|
|
227
285
|
exports.ContextDocumentHandler = ContextDocumentHandler;
|
|
228
286
|
exports.ContextDocumentHandler = ContextDocumentHandler = __decorate([
|
|
@@ -1 +1 @@
|
|
|
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,4EAG2C;AAC3C,iFAAyE;
|
|
1
|
+
{"version":3,"file":"context-document.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/context-document.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,5 @@ export { AgentHandler } from './agent.handler';
|
|
|
6
6
|
export { ModeHandler } from './mode.handler';
|
|
7
7
|
export { ChecklistContextHandler } from './checklist-context.handler';
|
|
8
8
|
export { ConventionsHandler } from './conventions.handler';
|
|
9
|
-
export { SessionHandler } from './session.handler';
|
|
10
9
|
export { ContextDocumentHandler } from './context-document.handler';
|
|
11
10
|
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.ContextDocumentHandler = exports.
|
|
3
|
+
exports.TOOL_HANDLERS = 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");
|
|
@@ -15,8 +15,6 @@ var checklist_context_handler_1 = require("./checklist-context.handler");
|
|
|
15
15
|
Object.defineProperty(exports, "ChecklistContextHandler", { enumerable: true, get: function () { return checklist_context_handler_1.ChecklistContextHandler; } });
|
|
16
16
|
var conventions_handler_1 = require("./conventions.handler");
|
|
17
17
|
Object.defineProperty(exports, "ConventionsHandler", { enumerable: true, get: function () { return conventions_handler_1.ConventionsHandler; } });
|
|
18
|
-
var session_handler_1 = require("./session.handler");
|
|
19
|
-
Object.defineProperty(exports, "SessionHandler", { enumerable: true, get: function () { return session_handler_1.SessionHandler; } });
|
|
20
18
|
var context_document_handler_1 = require("./context-document.handler");
|
|
21
19
|
Object.defineProperty(exports, "ContextDocumentHandler", { enumerable: true, get: function () { return context_document_handler_1.ContextDocumentHandler; } });
|
|
22
20
|
exports.TOOL_HANDLERS = 'TOOL_HANDLERS';
|
|
@@ -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,
|
|
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;AA0BlB,QAAA,aAAa,GAAG,eAAe,CAAC"}
|
|
@@ -5,7 +5,6 @@ import { KeywordService } from '../../keyword/keyword.service';
|
|
|
5
5
|
import { ConfigService } from '../../config/config.service';
|
|
6
6
|
import { LanguageService } from '../../shared/language.service';
|
|
7
7
|
import { ModelResolverService } from '../../model';
|
|
8
|
-
import { SessionService } from '../../session/session.service';
|
|
9
8
|
import { StateService } from '../../state/state.service';
|
|
10
9
|
import { ContextDocumentService } from '../../context/context-document.service';
|
|
11
10
|
import { DiagnosticLogService } from '../../diagnostic/diagnostic-log.service';
|
|
@@ -14,25 +13,15 @@ export declare class ModeHandler extends AbstractHandler {
|
|
|
14
13
|
private readonly configService;
|
|
15
14
|
private readonly languageService;
|
|
16
15
|
private readonly modelResolverService;
|
|
17
|
-
private readonly sessionService;
|
|
18
16
|
private readonly stateService;
|
|
19
17
|
private readonly contextDocService;
|
|
20
18
|
private readonly diagnosticLogService;
|
|
21
19
|
private readonly logger;
|
|
22
|
-
constructor(keywordService: KeywordService, configService: ConfigService, languageService: LanguageService, modelResolverService: ModelResolverService,
|
|
20
|
+
constructor(keywordService: KeywordService, configService: ConfigService, languageService: LanguageService, modelResolverService: ModelResolverService, stateService: StateService, contextDocService: ContextDocumentService, diagnosticLogService: DiagnosticLogService);
|
|
23
21
|
protected getHandledTools(): string[];
|
|
24
22
|
getToolDefinitions(): ToolDefinition[];
|
|
25
23
|
protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
26
24
|
private handleContextDocument;
|
|
27
|
-
private
|
|
28
|
-
private handleAutoSession;
|
|
29
|
-
private checkActiveSessionForNonCreateModes;
|
|
30
|
-
private buildSessionContext;
|
|
31
|
-
private handleSessionCreation;
|
|
32
|
-
private handleExistingSession;
|
|
33
|
-
private createNewSession;
|
|
34
|
-
private handleSessionCreationError;
|
|
35
|
-
private generateSessionTitle;
|
|
25
|
+
private generateContextTitle;
|
|
36
26
|
private persistModeState;
|
|
37
|
-
private autoAddModeSection;
|
|
38
27
|
}
|
|
@@ -24,33 +24,23 @@ const response_utils_1 = require("../response.utils");
|
|
|
24
24
|
const model_1 = require("../../model");
|
|
25
25
|
const validation_constants_1 = require("../../shared/validation.constants");
|
|
26
26
|
const slug_utils_1 = require("../../shared/slug.utils");
|
|
27
|
-
const session_service_1 = require("../../session/session.service");
|
|
28
27
|
const state_service_1 = require("../../state/state.service");
|
|
29
28
|
const context_document_service_1 = require("../../context/context-document.service");
|
|
30
29
|
const diagnostic_log_service_1 = require("../../diagnostic/diagnostic-log.service");
|
|
31
30
|
const context_document_types_1 = require("../../context/context-document.types");
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const AUTO_CREATE_MODES = ['PLAN', 'AUTO'];
|
|
35
|
-
const SESSION_WARNINGS = {
|
|
36
|
-
NO_ACTIVE_SESSION: '⚠️ No active session found. PLAN context may be lost. Consider calling get_active_session or create_session.',
|
|
37
|
-
USING_EXISTING_SESSION: '📋 Using existing active session. Call update_session to add PLAN details.',
|
|
38
|
-
SESSION_CREATION_FAILED: '⚠️ Failed to auto-create session. Please call create_session manually.',
|
|
39
|
-
SESSION_CREATION_FAILED_WITH_ERROR: (error) => `⚠️ Failed to auto-create session: ${error}. Please call create_session manually.`,
|
|
40
|
-
};
|
|
31
|
+
const verbosity_types_1 = require("../../shared/verbosity.types");
|
|
32
|
+
const CONTEXT_TITLE_MAX_LENGTH = 50;
|
|
41
33
|
let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.AbstractHandler {
|
|
42
|
-
constructor(keywordService, configService, languageService, modelResolverService,
|
|
34
|
+
constructor(keywordService, configService, languageService, modelResolverService, stateService, contextDocService, diagnosticLogService) {
|
|
43
35
|
super();
|
|
44
36
|
this.keywordService = keywordService;
|
|
45
37
|
this.configService = configService;
|
|
46
38
|
this.languageService = languageService;
|
|
47
39
|
this.modelResolverService = modelResolverService;
|
|
48
|
-
this.sessionService = sessionService;
|
|
49
40
|
this.stateService = stateService;
|
|
50
41
|
this.contextDocService = contextDocService;
|
|
51
42
|
this.diagnosticLogService = diagnosticLogService;
|
|
52
43
|
this.logger = new common_1.Logger(ModeHandler_1.name);
|
|
53
|
-
this.emptySessionResult = {};
|
|
54
44
|
}
|
|
55
45
|
getHandledTools() {
|
|
56
46
|
return ['parse_mode'];
|
|
@@ -59,7 +49,7 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
|
|
|
59
49
|
return [
|
|
60
50
|
{
|
|
61
51
|
name: 'parse_mode',
|
|
62
|
-
description: 'MANDATORY: When user message starts with PLAN, ACT, or
|
|
52
|
+
description: 'MANDATORY: When user message starts with PLAN, ACT, EVAL, or AUTO keyword (or localized equivalents: Korean 계획/실행/평가/자동, Japanese 計画/実行/評価/自動, Chinese 计划/执行/评估/自动, Spanish PLANIFICAR/ACTUAR/EVALUAR/AUTOMÁTICO), you MUST call this tool FIRST before any other action. This tool parses the workflow mode and returns critical rules that MUST be followed. Failure to call this tool when these keywords are present is a protocol violation.',
|
|
63
53
|
inputSchema: {
|
|
64
54
|
type: 'object',
|
|
65
55
|
properties: {
|
|
@@ -71,6 +61,11 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
|
|
|
71
61
|
type: 'string',
|
|
72
62
|
description: 'ACT agent recommended from previous PLAN mode. Pass the agentName from recommended_act_agent field of PLAN mode response. Only applies to ACT mode.',
|
|
73
63
|
},
|
|
64
|
+
verbosity: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
enum: ['minimal', 'standard', 'full'],
|
|
67
|
+
description: 'Control response detail level. minimal: metadata only; standard: truncated content (default); full: complete content',
|
|
68
|
+
},
|
|
74
69
|
},
|
|
75
70
|
required: ['prompt'],
|
|
76
71
|
},
|
|
@@ -83,17 +78,22 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
|
|
|
83
78
|
return (0, response_utils_1.createErrorResponse)('Missing required parameter: prompt');
|
|
84
79
|
}
|
|
85
80
|
const recommendedAgent = (0, validation_constants_1.extractRequiredString)(args, 'recommended_agent') ?? undefined;
|
|
81
|
+
const rawVerbosity = (0, validation_constants_1.extractRequiredString)(args, 'verbosity') ?? 'standard';
|
|
82
|
+
const verbosity = (0, verbosity_types_1.isValidVerbosity)(rawVerbosity)
|
|
83
|
+
? rawVerbosity
|
|
84
|
+
: 'standard';
|
|
86
85
|
try {
|
|
87
86
|
await this.configService.reload();
|
|
88
|
-
const options =
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
const options = {
|
|
88
|
+
...(recommendedAgent && { recommendedActAgent: recommendedAgent }),
|
|
89
|
+
verbosity,
|
|
90
|
+
};
|
|
91
91
|
const result = await this.keywordService.parseMode(prompt, options);
|
|
92
92
|
const configLanguage = await this.configService.getLanguage();
|
|
93
93
|
const projectRoot = this.configService.getProjectRoot();
|
|
94
94
|
if (!configLanguage) {
|
|
95
95
|
this.logger.warn(`No language found in config. Project root: ${projectRoot}. ` +
|
|
96
|
-
`Please check if codingbuddy.config.
|
|
96
|
+
`Please check if codingbuddy.config.json exists and has 'language' field.`);
|
|
97
97
|
await this.diagnosticLogService.logConfigLoading(false, projectRoot, undefined, 'No language found in config');
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
@@ -102,22 +102,14 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
|
|
|
102
102
|
}
|
|
103
103
|
const language = configLanguage || 'en';
|
|
104
104
|
const languageInstructionResult = this.languageService.getLanguageInstruction(language);
|
|
105
|
-
const resolvedModel = await this.modelResolverService.
|
|
105
|
+
const resolvedModel = await this.modelResolverService.resolve();
|
|
106
106
|
const contextResult = await this.handleContextDocument(result.mode, result.originalPrompt, result.agent, result.recommended_act_agent);
|
|
107
|
-
|
|
108
|
-
if (sessionInfo.autoSession?.sessionId && result.agent) {
|
|
109
|
-
await this.autoAddModeSection(sessionInfo.autoSession.sessionId, result.mode, result.agent, result.originalPrompt, result.recommended_act_agent);
|
|
110
|
-
}
|
|
111
|
-
else if (sessionInfo.autoSession?.sessionId && !result.agent) {
|
|
112
|
-
this.logger.debug(`Skipping auto-add section: agent is undefined for mode ${result.mode}`);
|
|
113
|
-
}
|
|
114
|
-
await this.persistModeState(result.mode, sessionInfo.autoSession?.sessionId);
|
|
107
|
+
await this.persistModeState(result.mode);
|
|
115
108
|
return (0, response_utils_1.createJsonResponse)({
|
|
116
109
|
...result,
|
|
117
110
|
language,
|
|
118
111
|
languageInstruction: languageInstructionResult.instruction,
|
|
119
112
|
resolvedModel,
|
|
120
|
-
...sessionInfo,
|
|
121
113
|
...contextResult,
|
|
122
114
|
});
|
|
123
115
|
}
|
|
@@ -126,7 +118,7 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
|
|
|
126
118
|
}
|
|
127
119
|
}
|
|
128
120
|
async handleContextDocument(mode, originalPrompt, agent, recommendedActAgent) {
|
|
129
|
-
const title = this.
|
|
121
|
+
const title = this.generateContextTitle(originalPrompt);
|
|
130
122
|
if (mode === 'PLAN' || mode === 'AUTO') {
|
|
131
123
|
const result = await this.contextDocService.resetContext({
|
|
132
124
|
title,
|
|
@@ -175,139 +167,17 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
|
|
|
175
167
|
mandatoryAction: '📝 MANDATORY: Call update_context before completion to persist progress and notes.',
|
|
176
168
|
};
|
|
177
169
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
182
|
-
try {
|
|
183
|
-
return await this.handleSessionCreation(originalPrompt);
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
return this.handleSessionCreationError(error);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
async checkActiveSessionForNonCreateModes(mode) {
|
|
190
|
-
if (mode === 'ACT' || mode === 'EVAL') {
|
|
191
|
-
const activeSession = await this.sessionService.getActiveSession();
|
|
192
|
-
if (!activeSession) {
|
|
193
|
-
return {
|
|
194
|
-
sessionWarning: SESSION_WARNINGS.NO_ACTIVE_SESSION,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
autoSession: {
|
|
199
|
-
sessionId: activeSession.metadata.id,
|
|
200
|
-
filePath: `${SESSION_PATH_PREFIX}${activeSession.metadata.id}.md`,
|
|
201
|
-
created: false,
|
|
202
|
-
},
|
|
203
|
-
sessionContext: this.buildSessionContext(activeSession),
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
return this.emptySessionResult;
|
|
207
|
-
}
|
|
208
|
-
buildSessionContext(session) {
|
|
209
|
-
const allDecisions = [];
|
|
210
|
-
const allNotes = [];
|
|
211
|
-
for (const section of session.sections) {
|
|
212
|
-
if (section.decisions) {
|
|
213
|
-
allDecisions.push(...section.decisions);
|
|
214
|
-
}
|
|
215
|
-
if (section.notes) {
|
|
216
|
-
allNotes.push(...section.notes);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
const planSection = session.sections.find(s => s.mode === 'PLAN');
|
|
220
|
-
const recommendedActAgent = planSection?.recommendedActAgent &&
|
|
221
|
-
planSection.recommendedActAgentConfidence
|
|
222
|
-
? {
|
|
223
|
-
agent: planSection.recommendedActAgent,
|
|
224
|
-
confidence: planSection.recommendedActAgentConfidence,
|
|
225
|
-
}
|
|
226
|
-
: undefined;
|
|
227
|
-
return {
|
|
228
|
-
sessionId: session.metadata.id,
|
|
229
|
-
title: session.metadata.title,
|
|
230
|
-
previousSections: session.sections,
|
|
231
|
-
recommendedActAgent,
|
|
232
|
-
allDecisions,
|
|
233
|
-
allNotes,
|
|
234
|
-
};
|
|
170
|
+
generateContextTitle(prompt) {
|
|
171
|
+
const slug = (0, slug_utils_1.generateSlug)(prompt, CONTEXT_TITLE_MAX_LENGTH);
|
|
172
|
+
return slug === 'untitled' ? 'untitled-context' : slug;
|
|
235
173
|
}
|
|
236
|
-
async
|
|
237
|
-
const existingSession = await this.sessionService.getActiveSession();
|
|
238
|
-
if (existingSession) {
|
|
239
|
-
return this.handleExistingSession(existingSession);
|
|
240
|
-
}
|
|
241
|
-
const title = this.generateSessionTitle(originalPrompt);
|
|
242
|
-
return this.createNewSession(title);
|
|
243
|
-
}
|
|
244
|
-
async handleExistingSession(session) {
|
|
245
|
-
this.logger.debug(`Active session already exists: ${session.metadata.id}`);
|
|
246
|
-
return {
|
|
247
|
-
autoSession: {
|
|
248
|
-
sessionId: session.metadata.id,
|
|
249
|
-
filePath: `${SESSION_PATH_PREFIX}${session.metadata.id}.md`,
|
|
250
|
-
created: false,
|
|
251
|
-
},
|
|
252
|
-
sessionWarning: SESSION_WARNINGS.USING_EXISTING_SESSION,
|
|
253
|
-
sessionContext: this.buildSessionContext(session),
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
async createNewSession(title) {
|
|
257
|
-
const createResult = await this.sessionService.createSession({ title });
|
|
258
|
-
if (createResult.success && createResult.sessionId) {
|
|
259
|
-
this.logger.log(`Auto-created session: ${createResult.sessionId}`);
|
|
260
|
-
return {
|
|
261
|
-
autoSession: {
|
|
262
|
-
sessionId: createResult.sessionId,
|
|
263
|
-
filePath: createResult.filePath || '',
|
|
264
|
-
created: true,
|
|
265
|
-
},
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
return {
|
|
269
|
-
sessionWarning: SESSION_WARNINGS.SESSION_CREATION_FAILED_WITH_ERROR(createResult.error || 'Unknown error'),
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
handleSessionCreationError(error) {
|
|
273
|
-
this.logger.error(`Failed to auto-create session: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
274
|
-
return {
|
|
275
|
-
sessionWarning: SESSION_WARNINGS.SESSION_CREATION_FAILED,
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
generateSessionTitle(prompt) {
|
|
279
|
-
const slug = (0, slug_utils_1.generateSlug)(prompt, SESSION_TITLE_MAX_LENGTH);
|
|
280
|
-
return slug === 'untitled' ? 'untitled-session' : slug;
|
|
281
|
-
}
|
|
282
|
-
async persistModeState(mode, sessionId) {
|
|
174
|
+
async persistModeState(mode) {
|
|
283
175
|
try {
|
|
284
176
|
await this.stateService.updateLastMode(mode);
|
|
285
|
-
|
|
286
|
-
await this.stateService.updateLastSession(sessionId);
|
|
287
|
-
}
|
|
288
|
-
this.logger.debug(`Persisted mode state: mode=${mode}, sessionId=${sessionId || 'none'}`);
|
|
289
|
-
}
|
|
290
|
-
catch (error) {
|
|
291
|
-
this.logger.warn(`Failed to persist mode state: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
async autoAddModeSection(sessionId, mode, primaryAgent, task, recommendedActAgent) {
|
|
295
|
-
try {
|
|
296
|
-
await this.sessionService.updateSession({
|
|
297
|
-
sessionId,
|
|
298
|
-
section: {
|
|
299
|
-
mode,
|
|
300
|
-
primaryAgent,
|
|
301
|
-
task,
|
|
302
|
-
recommendedActAgent: recommendedActAgent?.agentName,
|
|
303
|
-
recommendedActAgentConfidence: recommendedActAgent?.confidence,
|
|
304
|
-
status: 'in_progress',
|
|
305
|
-
},
|
|
306
|
-
});
|
|
307
|
-
this.logger.debug(`Auto-added ${mode} section to session ${sessionId}`);
|
|
177
|
+
this.logger.debug(`Persisted mode state: mode=${mode}`);
|
|
308
178
|
}
|
|
309
179
|
catch (error) {
|
|
310
|
-
this.logger.warn(`Failed to
|
|
180
|
+
this.logger.warn(`Failed to persist mode state for mode=${mode}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
311
181
|
}
|
|
312
182
|
}
|
|
313
183
|
};
|
|
@@ -319,7 +189,6 @@ exports.ModeHandler = ModeHandler = ModeHandler_1 = __decorate([
|
|
|
319
189
|
config_service_1.ConfigService,
|
|
320
190
|
language_service_1.LanguageService,
|
|
321
191
|
model_1.ModelResolverService,
|
|
322
|
-
session_service_1.SessionService,
|
|
323
192
|
state_service_1.StateService,
|
|
324
193
|
context_document_service_1.ContextDocumentService,
|
|
325
194
|
diagnostic_log_service_1.DiagnosticLogService])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/mode.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4D;AAG5D,yDAAqD;AACrD,mEAA+D;AAC/D,iEAA+D;AAC/D,gEAA4D;AAC5D,oEAAgE;AAChE,sDAA4E;AAC5E,uCAAmD;AACnD,4EAA0E;AAC1E,wDAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"mode.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/mode.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,11 @@ import type { ToolDefinition } from './base.handler';
|
|
|
2
2
|
import type { ToolResponse } from '../response.utils';
|
|
3
3
|
import { AbstractHandler } from './abstract-handler';
|
|
4
4
|
import { RulesService } from '../../rules/rules.service';
|
|
5
|
+
import { ModelResolverService } from '../../model';
|
|
5
6
|
export declare class RulesHandler extends AbstractHandler {
|
|
6
7
|
private readonly rulesService;
|
|
7
|
-
|
|
8
|
+
private readonly modelResolverService;
|
|
9
|
+
constructor(rulesService: RulesService, modelResolverService: ModelResolverService);
|
|
8
10
|
protected getHandledTools(): string[];
|
|
9
11
|
protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
10
12
|
getToolDefinitions(): ToolDefinition[];
|
|
@@ -17,9 +17,10 @@ const response_utils_1 = require("../response.utils");
|
|
|
17
17
|
const model_1 = require("../../model");
|
|
18
18
|
const validation_constants_1 = require("../../shared/validation.constants");
|
|
19
19
|
let RulesHandler = class RulesHandler extends abstract_handler_1.AbstractHandler {
|
|
20
|
-
constructor(rulesService) {
|
|
20
|
+
constructor(rulesService, modelResolverService) {
|
|
21
21
|
super();
|
|
22
22
|
this.rulesService = rulesService;
|
|
23
|
+
this.modelResolverService = modelResolverService;
|
|
23
24
|
}
|
|
24
25
|
getHandledTools() {
|
|
25
26
|
return ['search_rules', 'get_agent_details'];
|
|
@@ -75,8 +76,7 @@ let RulesHandler = class RulesHandler extends abstract_handler_1.AbstractHandler
|
|
|
75
76
|
}
|
|
76
77
|
try {
|
|
77
78
|
const agent = await this.rulesService.getAgent(agentName);
|
|
78
|
-
const
|
|
79
|
-
const resolvedModel = (0, model_1.resolveModel)({ agentModel });
|
|
79
|
+
const resolvedModel = await this.modelResolverService.resolve();
|
|
80
80
|
return (0, response_utils_1.createJsonResponse)({
|
|
81
81
|
...agent,
|
|
82
82
|
resolvedModel,
|
|
@@ -90,6 +90,7 @@ let RulesHandler = class RulesHandler extends abstract_handler_1.AbstractHandler
|
|
|
90
90
|
exports.RulesHandler = RulesHandler;
|
|
91
91
|
exports.RulesHandler = RulesHandler = __decorate([
|
|
92
92
|
(0, common_1.Injectable)(),
|
|
93
|
-
__metadata("design:paramtypes", [rules_service_1.RulesService
|
|
93
|
+
__metadata("design:paramtypes", [rules_service_1.RulesService,
|
|
94
|
+
model_1.ModelResolverService])
|
|
94
95
|
], RulesHandler);
|
|
95
96
|
//# sourceMappingURL=rules.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/rules.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yDAAqD;AACrD,6DAAyD;AACzD,sDAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"rules.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/rules.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yDAAqD;AACrD,6DAAyD;AACzD,sDAA4E;AAC5E,uCAAmD;AACnD,4EAA0E;AAQnE,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,kCAAe;IAC/C,YACmB,YAA0B,EAC1B,oBAA0C;QAE3D,KAAK,EAAE,CAAC;QAHS,iBAAY,GAAZ,YAAY,CAAc;QAC1B,yBAAoB,GAApB,oBAAoB,CAAsB;IAG7D,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAC/C,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,mBAAmB;gBACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC1C;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,iCAAiC;gBAC9C,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;qBACvD;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,6CAA6C;gBAC1D,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;qBAChE;oBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,IAAyC;QAEzC,MAAM,KAAK,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAA,oCAAmB,EAAC,mCAAmC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3D,OAAO,IAAA,mCAAkB,EAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,IAAyC;QAEzC,MAAM,SAAS,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAA,oCAAmB,EAAC,uCAAuC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAI1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;YAEhE,OAAO,IAAA,mCAAkB,EAAC;gBACxB,GAAG,KAAK;gBACR,aAAa;aACd,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAA,oCAAmB,EAAC,UAAU,SAAS,cAAc,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAA;AAtFY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGsB,4BAAY;QACJ,4BAAoB;GAHlD,YAAY,CAsFxB"}
|
|
@@ -2,12 +2,15 @@ import type { ToolDefinition } from './base.handler';
|
|
|
2
2
|
import type { ToolResponse } from '../response.utils';
|
|
3
3
|
import { AbstractHandler } from './abstract-handler';
|
|
4
4
|
import { SkillRecommendationService } from '../../skill/skill-recommendation.service';
|
|
5
|
+
import { RulesService } from '../../rules/rules.service';
|
|
5
6
|
export declare class SkillHandler extends AbstractHandler {
|
|
6
7
|
private readonly skillRecommendationService;
|
|
7
|
-
|
|
8
|
+
private readonly rulesService;
|
|
9
|
+
constructor(skillRecommendationService: SkillRecommendationService, rulesService: RulesService);
|
|
8
10
|
protected getHandledTools(): string[];
|
|
9
11
|
protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
10
12
|
getToolDefinitions(): ToolDefinition[];
|
|
11
13
|
private handleRecommendSkills;
|
|
12
14
|
private handleListSkills;
|
|
15
|
+
private handleGetSkill;
|
|
13
16
|
}
|