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
|
@@ -41,7 +41,8 @@ let ContextDocumentService = ContextDocumentService_1 = class ContextDocumentSer
|
|
|
41
41
|
try {
|
|
42
42
|
return await this.configService.getContextLimits();
|
|
43
43
|
}
|
|
44
|
-
catch {
|
|
44
|
+
catch (error) {
|
|
45
|
+
this.logger.debug(`Failed to load context limits: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
45
46
|
return context_document_types_1.DEFAULT_CONTEXT_LIMITS;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
@@ -57,7 +58,7 @@ let ContextDocumentService = ContextDocumentService_1 = class ContextDocumentSer
|
|
|
57
58
|
const contextPath = this.getContextPath();
|
|
58
59
|
return (0, fs_1.existsSync)(contextPath);
|
|
59
60
|
}
|
|
60
|
-
async readContext() {
|
|
61
|
+
async readContext(options) {
|
|
61
62
|
try {
|
|
62
63
|
const contextPath = this.getContextPath();
|
|
63
64
|
if (!(0, fs_1.existsSync)(contextPath)) {
|
|
@@ -68,10 +69,23 @@ let ContextDocumentService = ContextDocumentService_1 = class ContextDocumentSer
|
|
|
68
69
|
timeoutMs: context_document_types_1.CONTEXT_FILE_TIMEOUT_MS,
|
|
69
70
|
operationName: 'read context file',
|
|
70
71
|
});
|
|
71
|
-
|
|
72
|
+
let document = (0, context_parser_utils_1.parseContextDocument)(content);
|
|
73
|
+
let truncatedSections = 0;
|
|
74
|
+
if (options?.maxSections && options.maxSections > 0) {
|
|
75
|
+
const totalSections = document.sections.length;
|
|
76
|
+
if (totalSections > options.maxSections) {
|
|
77
|
+
document = {
|
|
78
|
+
...document,
|
|
79
|
+
sections: document.sections.slice(-options.maxSections),
|
|
80
|
+
};
|
|
81
|
+
truncatedSections = totalSections - options.maxSections;
|
|
82
|
+
this.logger.debug(`Truncated ${truncatedSections} sections (keeping ${options.maxSections} most recent)`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
72
85
|
return {
|
|
73
86
|
exists: true,
|
|
74
87
|
document,
|
|
88
|
+
truncatedSections: truncatedSections > 0 ? truncatedSections : undefined,
|
|
75
89
|
};
|
|
76
90
|
}
|
|
77
91
|
catch (error) {
|
|
@@ -155,6 +169,7 @@ let ContextDocumentService = ContextDocumentService_1 = class ContextDocumentSer
|
|
|
155
169
|
operationName: 'write context file',
|
|
156
170
|
});
|
|
157
171
|
this.logger.log(`Appended ${data.mode} section to context document`);
|
|
172
|
+
await this.autoCleanupIfNeeded();
|
|
158
173
|
return {
|
|
159
174
|
success: true,
|
|
160
175
|
filePath: contextPath,
|
|
@@ -203,6 +218,80 @@ let ContextDocumentService = ContextDocumentService_1 = class ContextDocumentSer
|
|
|
203
218
|
getContextFilePath() {
|
|
204
219
|
return context_document_types_1.CONTEXT_FILE_PATH;
|
|
205
220
|
}
|
|
221
|
+
async shouldCleanup() {
|
|
222
|
+
const readResult = await this.readContext();
|
|
223
|
+
if (!readResult.exists || !readResult.document) {
|
|
224
|
+
return {
|
|
225
|
+
needed: false,
|
|
226
|
+
currentSize: 0,
|
|
227
|
+
threshold: context_document_types_1.CONTEXT_SIZE_THRESHOLDS.CLEANUP,
|
|
228
|
+
level: 'none',
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
const currentSize = (0, context_serializer_utils_1.estimateDocumentSize)(readResult.document);
|
|
232
|
+
if (currentSize >= context_document_types_1.CONTEXT_SIZE_THRESHOLDS.CLEANUP) {
|
|
233
|
+
return {
|
|
234
|
+
needed: true,
|
|
235
|
+
currentSize,
|
|
236
|
+
threshold: context_document_types_1.CONTEXT_SIZE_THRESHOLDS.CLEANUP,
|
|
237
|
+
level: 'cleanup',
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
if (currentSize >= context_document_types_1.CONTEXT_SIZE_THRESHOLDS.WARN) {
|
|
241
|
+
return {
|
|
242
|
+
needed: false,
|
|
243
|
+
currentSize,
|
|
244
|
+
threshold: context_document_types_1.CONTEXT_SIZE_THRESHOLDS.WARN,
|
|
245
|
+
level: 'warn',
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
needed: false,
|
|
250
|
+
currentSize,
|
|
251
|
+
threshold: context_document_types_1.CONTEXT_SIZE_THRESHOLDS.CLEANUP,
|
|
252
|
+
level: 'none',
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
async performCleanup(keepRecentSectionsFull = 2, keepRecentItems = 5) {
|
|
256
|
+
try {
|
|
257
|
+
const readResult = await this.readContext();
|
|
258
|
+
if (!readResult.exists || !readResult.document) {
|
|
259
|
+
return {
|
|
260
|
+
success: false,
|
|
261
|
+
error: 'No context document found to cleanup',
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
const { document: cleanedDocument, originalSize, newSize, } = (0, context_serializer_utils_1.cleanupContextDocument)(readResult.document, keepRecentSectionsFull, keepRecentItems);
|
|
265
|
+
const contextPath = this.getContextPath();
|
|
266
|
+
const content = (0, context_serializer_utils_1.serializeContextDocument)(cleanedDocument);
|
|
267
|
+
await (0, async_utils_1.withTimeout)(fs.writeFile(contextPath, content, 'utf-8'), {
|
|
268
|
+
timeoutMs: context_document_types_1.CONTEXT_FILE_TIMEOUT_MS,
|
|
269
|
+
operationName: 'write context file',
|
|
270
|
+
});
|
|
271
|
+
const reduction = originalSize - newSize;
|
|
272
|
+
const reductionPercent = ((reduction / originalSize) * 100).toFixed(1);
|
|
273
|
+
this.logger.log(`Cleaned up context document: ${originalSize} → ${newSize} chars (${reductionPercent}% reduction)`);
|
|
274
|
+
return {
|
|
275
|
+
success: true,
|
|
276
|
+
filePath: contextPath,
|
|
277
|
+
message: `Context cleaned up successfully. Size reduced by ${reductionPercent}% (${reduction} chars)`,
|
|
278
|
+
document: cleanedDocument,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
return this.handleContextError(error, 'cleanup context');
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
async autoCleanupIfNeeded() {
|
|
286
|
+
const check = await this.shouldCleanup();
|
|
287
|
+
if (check.level === 'warn') {
|
|
288
|
+
this.logger.warn(`Context document size approaching limit: ${check.currentSize} chars (threshold: ${check.threshold})`);
|
|
289
|
+
}
|
|
290
|
+
if (check.needed) {
|
|
291
|
+
this.logger.log('Context document size exceeded threshold, performing automatic cleanup...');
|
|
292
|
+
await this.performCleanup();
|
|
293
|
+
}
|
|
294
|
+
}
|
|
206
295
|
};
|
|
207
296
|
exports.ContextDocumentService = ContextDocumentService;
|
|
208
297
|
exports.ContextDocumentService = ContextDocumentService = ContextDocumentService_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-document.service.js","sourceRoot":"","sources":["../../../src/context/context-document.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,kCAAkC;AAClC,2BAA2C;AAC3C,6BAA6B;
|
|
1
|
+
{"version":3,"file":"context-document.service.js","sourceRoot":"","sources":["../../../src/context/context-document.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,14 @@ export interface ContextSection {
|
|
|
23
23
|
findings?: string[];
|
|
24
24
|
recommendations?: string[];
|
|
25
25
|
status?: 'in_progress' | 'completed' | 'blocked';
|
|
26
|
+
summarized?: boolean;
|
|
27
|
+
originalCounts?: {
|
|
28
|
+
decisions?: number;
|
|
29
|
+
notes?: number;
|
|
30
|
+
progress?: number;
|
|
31
|
+
findings?: number;
|
|
32
|
+
recommendations?: number;
|
|
33
|
+
};
|
|
26
34
|
}
|
|
27
35
|
export interface ContextDocument {
|
|
28
36
|
metadata: ContextMetadata;
|
|
@@ -55,10 +63,14 @@ export interface ContextOperationResult {
|
|
|
55
63
|
error?: string;
|
|
56
64
|
document?: ContextDocument;
|
|
57
65
|
}
|
|
66
|
+
export interface ContextReadOptions {
|
|
67
|
+
maxSections?: number;
|
|
68
|
+
}
|
|
58
69
|
export interface ContextReadResult {
|
|
59
70
|
exists: boolean;
|
|
60
71
|
document?: ContextDocument;
|
|
61
72
|
error?: string;
|
|
73
|
+
truncatedSections?: number;
|
|
62
74
|
}
|
|
63
75
|
export declare const CONTEXT_MARKDOWN: {
|
|
64
76
|
readonly CONTEXT_HEADER: "# Context:";
|
|
@@ -87,3 +99,11 @@ export interface ContextLimits {
|
|
|
87
99
|
}
|
|
88
100
|
export declare const DEFAULT_CONTEXT_LIMITS: ContextLimits;
|
|
89
101
|
export declare function truncateArray(items: string[] | undefined, limits?: ContextLimits): string[] | undefined;
|
|
102
|
+
export declare const CONTEXT_SIZE_THRESHOLDS: {
|
|
103
|
+
readonly WARN: 50000;
|
|
104
|
+
readonly CLEANUP: 100000;
|
|
105
|
+
};
|
|
106
|
+
export interface ContextCleanupConfig {
|
|
107
|
+
keepRecentItems: number;
|
|
108
|
+
keepRecentSectionsFull: number;
|
|
109
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_CONTEXT_LIMITS = exports.VALID_SECTION_STATUSES = exports.VALID_CONTEXT_STATUSES = exports.CONTEXT_SECTION_HEADER_PATTERN = exports.CONTEXT_MARKDOWN = exports.MAX_CONTEXT_ITEM_LENGTH = exports.MAX_CONTEXT_ARRAY_ITEMS = exports.CONTEXT_FILE_TIMEOUT_MS = exports.CONTEXT_FILE_PATH = void 0;
|
|
3
|
+
exports.CONTEXT_SIZE_THRESHOLDS = exports.DEFAULT_CONTEXT_LIMITS = exports.VALID_SECTION_STATUSES = exports.VALID_CONTEXT_STATUSES = exports.CONTEXT_SECTION_HEADER_PATTERN = exports.CONTEXT_MARKDOWN = exports.MAX_CONTEXT_ITEM_LENGTH = exports.MAX_CONTEXT_ARRAY_ITEMS = exports.CONTEXT_FILE_TIMEOUT_MS = exports.CONTEXT_FILE_PATH = void 0;
|
|
4
4
|
exports.isValidContextStatus = isValidContextStatus;
|
|
5
5
|
exports.isValidSectionStatus = isValidSectionStatus;
|
|
6
6
|
exports.truncateArray = truncateArray;
|
|
@@ -50,4 +50,8 @@ function truncateArray(items, limits = exports.DEFAULT_CONTEXT_LIMITS) {
|
|
|
50
50
|
? item.substring(0, limits.maxItemLength)
|
|
51
51
|
: item);
|
|
52
52
|
}
|
|
53
|
+
exports.CONTEXT_SIZE_THRESHOLDS = {
|
|
54
|
+
WARN: 50_000,
|
|
55
|
+
CLEANUP: 100_000,
|
|
56
|
+
};
|
|
53
57
|
//# sourceMappingURL=context-document.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-document.types.js","sourceRoot":"","sources":["../../../src/context/context-document.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"context-document.types.js","sourceRoot":"","sources":["../../../src/context/context-document.types.ts"],"names":[],"mappings":";;;AAuNA,oDAIC;AAKD,oDAMC;AA4BD,sCAYC;AAxQY,QAAA,iBAAiB,GAAG,6BAA6B,CAAC;AAKlD,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAM/B,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAM9B,QAAA,uBAAuB,GAAG,IAAI,CAAC;AA4J/B,QAAA,gBAAgB,GAAG;IAC9B,cAAc,EAAE,YAAY;IAC5B,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE,mBAAmB;IAChC,aAAa,EAAE,aAAa;IAC5B,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE,eAAe;IACjC,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,cAAc;IAC/B,eAAe,EAAE,cAAc;IAC/B,sBAAsB,EAAE,qBAAqB;IAC7C,oBAAoB,EAAE,oBAAoB;IAC1C,4BAA4B,EAAE,4BAA4B;CAClD,CAAC;AAKE,QAAA,8BAA8B,GACzC,oCAAoC,CAAC;AAK1B,QAAA,sBAAsB,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAC1D,QAAA,sBAAsB,GAAG;IACpC,aAAa;IACb,WAAW;IACX,SAAS;CACD,CAAC;AAKX,SAAgB,oBAAoB,CAClC,KAAa;IAEb,OAAO,8BAAsB,CAAC,QAAQ,CAAC,KAAkC,CAAC,CAAC;AAC7E,CAAC;AAKD,SAAgB,oBAAoB,CAClC,KAAa;IAEb,OAAO,8BAAsB,CAAC,QAAQ,CACpC,KAA8C,CAC/C,CAAC;AACJ,CAAC;AAeY,QAAA,sBAAsB,GAAkB;IACnD,aAAa,EAAE,+BAAuB;IACtC,aAAa,EAAE,+BAAuB;CACvC,CAAC;AAUF,SAAgB,aAAa,CAC3B,KAA2B,EAC3B,SAAwB,8BAAsB;IAE9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK;SACT,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;SAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;QACzC,CAAC,CAAC,IAAI,CACT,CAAC;AACN,CAAC;AAMY,QAAA,uBAAuB,GAAG;IAErC,IAAI,EAAE,MAAM;IAEZ,OAAO,EAAE,OAAO;CACR,CAAC"}
|
|
@@ -14,3 +14,10 @@ export declare function createPlanSection(data: {
|
|
|
14
14
|
export declare function mergeArraysUnique(existing: string[] | undefined, newItems: string[] | undefined): string[];
|
|
15
15
|
export declare function mergeSection(existing: ContextSection, newData: Partial<ContextSection>, timestamp: string): ContextSection;
|
|
16
16
|
export declare function generateTimestamp(date?: Date): string;
|
|
17
|
+
export declare function summarizeSection(section: ContextSection, keepRecentItems?: number): ContextSection;
|
|
18
|
+
export declare function estimateDocumentSize(document: ContextDocument): number;
|
|
19
|
+
export declare function cleanupContextDocument(document: ContextDocument, keepRecentSectionsFull?: number, keepRecentItems?: number): {
|
|
20
|
+
document: ContextDocument;
|
|
21
|
+
originalSize: number;
|
|
22
|
+
newSize: number;
|
|
23
|
+
};
|
|
@@ -8,6 +8,9 @@ exports.createPlanSection = createPlanSection;
|
|
|
8
8
|
exports.mergeArraysUnique = mergeArraysUnique;
|
|
9
9
|
exports.mergeSection = mergeSection;
|
|
10
10
|
exports.generateTimestamp = generateTimestamp;
|
|
11
|
+
exports.summarizeSection = summarizeSection;
|
|
12
|
+
exports.estimateDocumentSize = estimateDocumentSize;
|
|
13
|
+
exports.cleanupContextDocument = cleanupContextDocument;
|
|
11
14
|
const context_document_types_1 = require("./context-document.types");
|
|
12
15
|
function serializeContextDocument(document) {
|
|
13
16
|
const lines = [];
|
|
@@ -127,4 +130,48 @@ function generateTimestamp(date = new Date()) {
|
|
|
127
130
|
hour12: false,
|
|
128
131
|
});
|
|
129
132
|
}
|
|
133
|
+
function summarizeSection(section, keepRecentItems = 5) {
|
|
134
|
+
const originalCounts = {
|
|
135
|
+
decisions: section.decisions?.length,
|
|
136
|
+
notes: section.notes?.length,
|
|
137
|
+
progress: section.progress?.length,
|
|
138
|
+
findings: section.findings?.length,
|
|
139
|
+
recommendations: section.recommendations?.length,
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
...section,
|
|
143
|
+
decisions: section.decisions?.slice(-keepRecentItems),
|
|
144
|
+
notes: section.notes?.slice(-keepRecentItems),
|
|
145
|
+
progress: section.progress?.slice(-keepRecentItems),
|
|
146
|
+
findings: section.findings?.slice(-keepRecentItems),
|
|
147
|
+
recommendations: section.recommendations?.slice(-keepRecentItems),
|
|
148
|
+
summarized: true,
|
|
149
|
+
originalCounts,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function estimateDocumentSize(document) {
|
|
153
|
+
const serialized = serializeContextDocument(document);
|
|
154
|
+
return serialized.length;
|
|
155
|
+
}
|
|
156
|
+
function cleanupContextDocument(document, keepRecentSectionsFull = 2, keepRecentItems = 5) {
|
|
157
|
+
const originalSize = estimateDocumentSize(document);
|
|
158
|
+
const sectionsCount = document.sections.length;
|
|
159
|
+
const cleanedSections = document.sections.map((section, index) => {
|
|
160
|
+
const isRecent = index >= sectionsCount - keepRecentSectionsFull;
|
|
161
|
+
if (isRecent || section.summarized) {
|
|
162
|
+
return section;
|
|
163
|
+
}
|
|
164
|
+
return summarizeSection(section, keepRecentItems);
|
|
165
|
+
});
|
|
166
|
+
const cleanedDocument = {
|
|
167
|
+
...document,
|
|
168
|
+
sections: cleanedSections,
|
|
169
|
+
};
|
|
170
|
+
const newSize = estimateDocumentSize(cleanedDocument);
|
|
171
|
+
return {
|
|
172
|
+
document: cleanedDocument,
|
|
173
|
+
originalSize,
|
|
174
|
+
newSize,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
130
177
|
//# sourceMappingURL=context-serializer.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-serializer.utils.js","sourceRoot":"","sources":["../../../src/context/context-serializer.utils.ts"],"names":[],"mappings":";;AAiBA,4DAaC;AAQD,8CAoBC;AA8BD,4CAyDC;AAWD,4DAeC;AASD,8CAsBC;AAUD,8CASC;AAWD,oCAyBC;AAQD,8CAMC;
|
|
1
|
+
{"version":3,"file":"context-serializer.utils.js","sourceRoot":"","sources":["../../../src/context/context-serializer.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export interface ContextHints {
|
|
|
33
33
|
export interface AnalyzeTaskInput {
|
|
34
34
|
prompt: string;
|
|
35
35
|
files?: string[];
|
|
36
|
-
mode?: 'PLAN' | 'ACT' | 'EVAL';
|
|
36
|
+
mode?: 'PLAN' | 'ACT' | 'EVAL' | 'AUTO';
|
|
37
37
|
}
|
|
38
38
|
export interface AnalyzeTaskOutput {
|
|
39
39
|
analysis: TaskAnalysis;
|
|
@@ -12,6 +12,10 @@ const config_module_1 = require("../config/config.module");
|
|
|
12
12
|
const config_service_1 = require("../config/config.service");
|
|
13
13
|
const rules_module_1 = require("../rules/rules.module");
|
|
14
14
|
const rules_service_1 = require("../rules/rules.service");
|
|
15
|
+
const skill_module_1 = require("../skill/skill.module");
|
|
16
|
+
const skill_recommendation_service_1 = require("../skill/skill-recommendation.service");
|
|
17
|
+
const agent_module_1 = require("../agent/agent.module");
|
|
18
|
+
const agent_service_1 = require("../agent/agent.service");
|
|
15
19
|
const agent_utils_1 = require("../shared/agent.utils");
|
|
16
20
|
const keyword_service_1 = require("./keyword.service");
|
|
17
21
|
const primary_agent_resolver_1 = require("./primary-agent-resolver");
|
|
@@ -21,11 +25,11 @@ let KeywordModule = class KeywordModule {
|
|
|
21
25
|
exports.KeywordModule = KeywordModule;
|
|
22
26
|
exports.KeywordModule = KeywordModule = __decorate([
|
|
23
27
|
(0, common_1.Module)({
|
|
24
|
-
imports: [rules_module_1.RulesModule, config_module_1.CodingBuddyConfigModule],
|
|
28
|
+
imports: [rules_module_1.RulesModule, config_module_1.CodingBuddyConfigModule, skill_module_1.SkillModule, agent_module_1.AgentModule],
|
|
25
29
|
providers: [
|
|
26
30
|
{
|
|
27
31
|
provide: exports.KEYWORD_SERVICE,
|
|
28
|
-
useFactory: (rulesService, configService) => {
|
|
32
|
+
useFactory: (rulesService, configService, skillRecommendationService, agentService) => {
|
|
29
33
|
const logger = new common_1.Logger('KeywordModule');
|
|
30
34
|
const loadConfig = async () => {
|
|
31
35
|
const content = await rulesService.getRuleContent('keyword-modes.json');
|
|
@@ -80,9 +84,78 @@ exports.KeywordModule = KeywordModule = __decorate([
|
|
|
80
84
|
return null;
|
|
81
85
|
}
|
|
82
86
|
};
|
|
83
|
-
|
|
87
|
+
const getSkillRecommendations = (prompt) => {
|
|
88
|
+
try {
|
|
89
|
+
const result = skillRecommendationService.recommendSkills(prompt);
|
|
90
|
+
return result.recommendations.map(rec => ({
|
|
91
|
+
skillName: rec.skillName,
|
|
92
|
+
confidence: rec.confidence,
|
|
93
|
+
matchedPatterns: rec.matchedPatterns,
|
|
94
|
+
description: rec.description,
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
logger.debug(`Failed to get skill recommendations: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const loadSkillContent = async (skillName) => {
|
|
103
|
+
try {
|
|
104
|
+
const skill = await rulesService.getSkill(skillName);
|
|
105
|
+
return {
|
|
106
|
+
name: skill.name,
|
|
107
|
+
description: skill.description,
|
|
108
|
+
content: skill.content,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
logger.debug(`Failed to load skill content for '${skillName}': ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const loadAgentSystemPrompt = async (agentName, mode) => {
|
|
117
|
+
try {
|
|
118
|
+
const result = await agentService.getAgentSystemPrompt(agentName, {
|
|
119
|
+
mode,
|
|
120
|
+
});
|
|
121
|
+
return {
|
|
122
|
+
agentName: result.agentName,
|
|
123
|
+
displayName: result.displayName,
|
|
124
|
+
systemPrompt: result.systemPrompt,
|
|
125
|
+
description: result.description,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
logger.debug(`Failed to load agent system prompt for '${agentName}': ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const getMaxIncludedSkills = async () => {
|
|
134
|
+
try {
|
|
135
|
+
const settings = await configService.getSettings();
|
|
136
|
+
return settings.ai?.maxIncludedSkills ?? null;
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
logger.debug(`Failed to load maxIncludedSkills: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
const options = {
|
|
144
|
+
primaryAgentResolver,
|
|
145
|
+
loadAutoConfigFn: loadAutoConfig,
|
|
146
|
+
getSkillRecommendationsFn: getSkillRecommendations,
|
|
147
|
+
loadSkillContentFn: loadSkillContent,
|
|
148
|
+
loadAgentSystemPromptFn: loadAgentSystemPrompt,
|
|
149
|
+
getMaxIncludedSkillsFn: getMaxIncludedSkills,
|
|
150
|
+
};
|
|
151
|
+
return new keyword_service_1.KeywordService(loadConfig, loadRule, loadAgent, options);
|
|
84
152
|
},
|
|
85
|
-
inject: [
|
|
153
|
+
inject: [
|
|
154
|
+
rules_service_1.RulesService,
|
|
155
|
+
config_service_1.ConfigService,
|
|
156
|
+
skill_recommendation_service_1.SkillRecommendationService,
|
|
157
|
+
agent_service_1.AgentService,
|
|
158
|
+
],
|
|
86
159
|
},
|
|
87
160
|
],
|
|
88
161
|
exports: [exports.KEYWORD_SERVICE],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.module.js","sourceRoot":"","sources":["../../../src/keyword/keyword.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,2DAAqF;AACrF,6DAAyD;AACzD,wDAAoD;AACpD,0DAAsD;AACtD,uDAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"keyword.module.js","sourceRoot":"","sources":["../../../src/keyword/keyword.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,56 @@
|
|
|
1
1
|
import { type Mode, type RuleContent, type ParseModeResult, type KeywordModesConfig, type ResolutionContext, type AutoConfig } from './keyword.types';
|
|
2
|
+
import { type VerbosityLevel } from '../shared/verbosity.types';
|
|
3
|
+
import { PrimaryAgentResolver } from './primary-agent-resolver';
|
|
2
4
|
export interface ParseModeOptions {
|
|
3
5
|
recommendedActAgent?: string;
|
|
4
6
|
context?: ResolutionContext;
|
|
7
|
+
includeSkills?: boolean;
|
|
8
|
+
includeAgent?: boolean;
|
|
9
|
+
maxIncludedSkills?: number;
|
|
10
|
+
verbosity?: VerbosityLevel;
|
|
11
|
+
}
|
|
12
|
+
export interface KeywordServiceOptions {
|
|
13
|
+
primaryAgentResolver?: PrimaryAgentResolver;
|
|
14
|
+
loadAutoConfigFn?: () => Promise<AutoConfig | null>;
|
|
15
|
+
getSkillRecommendationsFn?: (prompt: string) => SkillRecommendationInfo[];
|
|
16
|
+
loadSkillContentFn?: (skillName: string) => Promise<SkillContentInfo | null>;
|
|
17
|
+
loadAgentSystemPromptFn?: (agentName: string, mode: Mode) => Promise<AgentSystemPromptInfo | null>;
|
|
18
|
+
getMaxIncludedSkillsFn?: () => Promise<number | null>;
|
|
19
|
+
}
|
|
20
|
+
export interface SkillRecommendationInfo {
|
|
21
|
+
skillName: string;
|
|
22
|
+
confidence: 'high' | 'medium' | 'low';
|
|
23
|
+
matchedPatterns: string[];
|
|
24
|
+
description: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SkillContentInfo {
|
|
27
|
+
name: string;
|
|
28
|
+
description: string;
|
|
29
|
+
content: string;
|
|
30
|
+
}
|
|
31
|
+
export interface AgentSystemPromptInfo {
|
|
32
|
+
agentName: string;
|
|
33
|
+
displayName: string;
|
|
34
|
+
systemPrompt: string;
|
|
35
|
+
description: string;
|
|
5
36
|
}
|
|
6
|
-
import { PrimaryAgentResolver } from './primary-agent-resolver';
|
|
7
37
|
export declare class KeywordService {
|
|
8
38
|
private readonly loadConfigFn;
|
|
9
39
|
private readonly loadRuleFn;
|
|
10
40
|
private readonly loadAgentInfoFn?;
|
|
11
|
-
private readonly loadAutoConfigFn?;
|
|
12
41
|
private readonly logger;
|
|
13
42
|
private configCache;
|
|
14
43
|
private readonly primaryAgentResolver?;
|
|
15
44
|
private readonly cacheTTL;
|
|
16
45
|
private cacheHits;
|
|
17
46
|
private cacheMisses;
|
|
47
|
+
private readonly loadAutoConfigFn?;
|
|
48
|
+
private readonly getSkillRecommendationsFn?;
|
|
49
|
+
private readonly loadSkillContentFn?;
|
|
50
|
+
private readonly loadAgentSystemPromptFn?;
|
|
51
|
+
private readonly getMaxIncludedSkillsFn?;
|
|
18
52
|
private static readonly CONTEXT_SPECIALIST_PATTERNS;
|
|
19
|
-
constructor(loadConfigFn: () => Promise<KeywordModesConfig>, loadRuleFn: (path: string) => Promise<string>, loadAgentInfoFn?: ((agentName: string) => Promise<unknown>) | undefined,
|
|
53
|
+
constructor(loadConfigFn: () => Promise<KeywordModesConfig>, loadRuleFn: (path: string) => Promise<string>, loadAgentInfoFn?: ((agentName: string) => Promise<unknown>) | undefined, options?: KeywordServiceOptions);
|
|
20
54
|
parseMode(prompt: string, options?: ParseModeOptions): Promise<ParseModeResult>;
|
|
21
55
|
private extractModeFromPrompt;
|
|
22
56
|
private checkForMultipleKeywordsInPrompt;
|
|
@@ -29,6 +63,10 @@ export declare class KeywordService {
|
|
|
29
63
|
private addActivationMessageToResult;
|
|
30
64
|
private addAutoConfigToResult;
|
|
31
65
|
private addComplexityToResult;
|
|
66
|
+
private addIncludedSkillsToResult;
|
|
67
|
+
private getMaxIncludedSkills;
|
|
68
|
+
private loadSkillsInParallel;
|
|
69
|
+
private addIncludedAgentToResult;
|
|
32
70
|
private getPrimaryAgentTier;
|
|
33
71
|
private getParallelAgentsRecommendation;
|
|
34
72
|
private getContextAwareSpecialists;
|
|
@@ -36,7 +74,7 @@ export declare class KeywordService {
|
|
|
36
74
|
invalidateConfigCache(): void;
|
|
37
75
|
loadModeConfig(): Promise<KeywordModesConfig>;
|
|
38
76
|
private getCacheHitRate;
|
|
39
|
-
getRulesForMode(mode: Mode): Promise<RuleContent[]>;
|
|
77
|
+
getRulesForMode(mode: Mode, verbosity?: VerbosityLevel): Promise<RuleContent[]>;
|
|
40
78
|
private getAgentInfo;
|
|
41
79
|
private getAutoConfig;
|
|
42
80
|
private resolvePrimaryAgent;
|