@vybestack/llxprt-code-core 0.4.3-nightly.251023.40dfa58c → 0.4.3-nightly.251025.b39ddda6
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/prompt-config/defaults/default-prompts.json +42 -0
- package/dist/src/config/config.d.ts +2 -0
- package/dist/src/config/config.js +60 -6
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.d.ts +10 -0
- package/dist/src/core/client.js +115 -21
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.js +15 -1
- package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/manifest-loader.d.ts +9 -0
- package/dist/src/prompt-config/defaults/manifest-loader.js +98 -0
- package/dist/src/prompt-config/defaults/manifest-loader.js.map +1 -0
- package/dist/src/prompt-config/defaults/prompt-warnings.d.ts +8 -0
- package/dist/src/prompt-config/defaults/prompt-warnings.js +29 -0
- package/dist/src/prompt-config/defaults/prompt-warnings.js.map +1 -0
- package/dist/src/prompt-config/defaults/provider-defaults.js +15 -1
- package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/tool-defaults.js +12 -1
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.d.ts +2 -5
- package/dist/src/providers/openai/OpenAIProvider.js +229 -58
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/services/complexity-analyzer.d.ts +10 -1
- package/dist/src/services/complexity-analyzer.js +57 -10
- package/dist/src/services/complexity-analyzer.js.map +1 -1
- package/dist/src/services/todo-reminder-service.d.ts +5 -0
- package/dist/src/services/todo-reminder-service.js +26 -3
- package/dist/src/services/todo-reminder-service.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,7 +15,7 @@ export interface ComplexityAnalysisResult {
|
|
|
15
15
|
suggestionReminder?: string;
|
|
16
16
|
}
|
|
17
17
|
export interface ComplexityAnalyzerOptions {
|
|
18
|
-
/** Threshold for considering a task complex (default: 0.
|
|
18
|
+
/** Threshold for considering a task complex (default: 0.5) */
|
|
19
19
|
complexityThreshold?: number;
|
|
20
20
|
/** Minimum number of tasks to suggest todos (default: 3) */
|
|
21
21
|
minTasksForSuggestion?: number;
|
|
@@ -42,6 +42,7 @@ export declare class ComplexityAnalyzer {
|
|
|
42
42
|
private readonly listPatterns;
|
|
43
43
|
private readonly sequentialKeywords;
|
|
44
44
|
private readonly taskSeparatorPattern;
|
|
45
|
+
private readonly fileReferencePattern;
|
|
45
46
|
constructor(options?: ComplexityAnalyzerOptions);
|
|
46
47
|
/**
|
|
47
48
|
* Analyzes a user message to determine its complexity and whether
|
|
@@ -54,6 +55,10 @@ export declare class ComplexityAnalyzer {
|
|
|
54
55
|
* @requirement REQ-005.2
|
|
55
56
|
*/
|
|
56
57
|
private extractTasks;
|
|
58
|
+
/**
|
|
59
|
+
* Extracts file references from the message to count as tasks.
|
|
60
|
+
*/
|
|
61
|
+
private extractFileReferences;
|
|
57
62
|
/**
|
|
58
63
|
* Finds sequential indicator keywords in the message.
|
|
59
64
|
* @requirement REQ-005.2
|
|
@@ -63,6 +68,10 @@ export declare class ComplexityAnalyzer {
|
|
|
63
68
|
* Counts the number of questions in the message.
|
|
64
69
|
*/
|
|
65
70
|
private countQuestions;
|
|
71
|
+
/**
|
|
72
|
+
* Determines if a message is narrative-heavy enough to count as complex.
|
|
73
|
+
*/
|
|
74
|
+
private isNarrativeComplex;
|
|
66
75
|
/**
|
|
67
76
|
* Calculates a complexity score based on various factors.
|
|
68
77
|
*/
|
|
@@ -34,8 +34,9 @@ export class ComplexityAnalyzer {
|
|
|
34
34
|
];
|
|
35
35
|
// Task separator patterns for comma-separated lists
|
|
36
36
|
taskSeparatorPattern = /(?:,\s*(?:and\s+)?|;\s*|\band\s+)/;
|
|
37
|
+
fileReferencePattern = /(?:[A-Za-z0-9._-]+\/)+[A-Za-z0-9._-]+\.[A-Za-z0-9]+/g;
|
|
37
38
|
constructor(options = {}) {
|
|
38
|
-
this.complexityThreshold = options.complexityThreshold ?? 0.
|
|
39
|
+
this.complexityThreshold = options.complexityThreshold ?? 0.5;
|
|
39
40
|
this.minTasksForSuggestion = options.minTasksForSuggestion ?? 3;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
@@ -51,6 +52,12 @@ export class ComplexityAnalyzer {
|
|
|
51
52
|
const detectedTasks = this.extractTasks(message);
|
|
52
53
|
const sequentialIndicators = this.findSequentialIndicators(message);
|
|
53
54
|
const questionCount = this.countQuestions(message);
|
|
55
|
+
const fileReferences = this.extractFileReferences(message);
|
|
56
|
+
for (const reference of fileReferences) {
|
|
57
|
+
if (!detectedTasks.includes(reference)) {
|
|
58
|
+
detectedTasks.push(reference);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
54
61
|
// Calculate complexity score based on multiple factors
|
|
55
62
|
const complexityScore = this.calculateComplexityScore({
|
|
56
63
|
taskCount: detectedTasks.length,
|
|
@@ -59,8 +66,11 @@ export class ComplexityAnalyzer {
|
|
|
59
66
|
questionCount,
|
|
60
67
|
messageLength: message.length,
|
|
61
68
|
});
|
|
62
|
-
const
|
|
63
|
-
const
|
|
69
|
+
const narrativeComplexity = this.isNarrativeComplex(message, detectedTasks.length);
|
|
70
|
+
const isComplex = complexityScore >= this.complexityThreshold || narrativeComplexity;
|
|
71
|
+
const shouldSuggestTodos = isComplex &&
|
|
72
|
+
(detectedTasks.length >= this.minTasksForSuggestion ||
|
|
73
|
+
narrativeComplexity);
|
|
64
74
|
const result = {
|
|
65
75
|
complexityScore,
|
|
66
76
|
isComplex,
|
|
@@ -140,6 +150,20 @@ export class ComplexityAnalyzer {
|
|
|
140
150
|
}
|
|
141
151
|
return tasks;
|
|
142
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Extracts file references from the message to count as tasks.
|
|
155
|
+
*/
|
|
156
|
+
extractFileReferences(message) {
|
|
157
|
+
const references = [];
|
|
158
|
+
const matches = message.matchAll(this.fileReferencePattern);
|
|
159
|
+
for (const match of matches) {
|
|
160
|
+
const reference = match[0].trim();
|
|
161
|
+
if (reference.length > 0 && !references.includes(reference)) {
|
|
162
|
+
references.push(reference);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return references;
|
|
166
|
+
}
|
|
143
167
|
/**
|
|
144
168
|
* Finds sequential indicator keywords in the message.
|
|
145
169
|
* @requirement REQ-005.2
|
|
@@ -168,6 +192,23 @@ export class ComplexityAnalyzer {
|
|
|
168
192
|
const matches = message.match(questionPattern);
|
|
169
193
|
return matches ? matches.length : 0;
|
|
170
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Determines if a message is narrative-heavy enough to count as complex.
|
|
197
|
+
*/
|
|
198
|
+
isNarrativeComplex(message, detectedTaskCount) {
|
|
199
|
+
if (detectedTaskCount >= this.minTasksForSuggestion) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
const trimmed = message.trim();
|
|
203
|
+
const sentences = trimmed
|
|
204
|
+
.split(/[.!?]+/)
|
|
205
|
+
.map((sentence) => sentence.trim())
|
|
206
|
+
.filter((sentence) => sentence.length > 0);
|
|
207
|
+
if (trimmed.length >= 600) {
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
return sentences.length >= 5;
|
|
211
|
+
}
|
|
171
212
|
/**
|
|
172
213
|
* Calculates a complexity score based on various factors.
|
|
173
214
|
*/
|
|
@@ -224,13 +265,19 @@ export class ComplexityAnalyzer {
|
|
|
224
265
|
* @requirement REQ-005.3
|
|
225
266
|
*/
|
|
226
267
|
generateSuggestionReminder(detectedTasks) {
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
268
|
+
const maxDisplay = Math.min(5, detectedTasks.length);
|
|
269
|
+
const taskLines = maxDisplay === 0
|
|
270
|
+
? [
|
|
271
|
+
' - Break this request into discrete todos',
|
|
272
|
+
' - Capture each major area using TodoWrite',
|
|
273
|
+
' - Update the list as you progress',
|
|
274
|
+
]
|
|
275
|
+
: detectedTasks.slice(0, maxDisplay).map((task) => ` - ${task}`);
|
|
276
|
+
if (detectedTasks.length > maxDisplay && maxDisplay > 0) {
|
|
277
|
+
taskLines.push(` ... and ${detectedTasks.length - maxDisplay} more tasks`);
|
|
278
|
+
}
|
|
279
|
+
const taskList = taskLines.join('\n');
|
|
280
|
+
return `I notice you have multiple tasks to complete. Using a todo list would help track progress:\n\n${taskList}`;
|
|
234
281
|
}
|
|
235
282
|
/**
|
|
236
283
|
* Creates an empty result for edge cases.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complexity-analyzer.js","sourceRoot":"","sources":["../../../src/services/complexity-analyzer.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACZ,mBAAmB,CAAS;IAC5B,qBAAqB,CAAS;IACvC,eAAe,GAA+B,EAAE,CAAC;IAEzD,oCAAoC;IACnB,YAAY,GAAG;QAC9B,qBAAqB,EAAE,4BAA4B;QACnD,qBAAqB,EAAE,8CAA8C;QACrE,0BAA0B,EAAE,yBAAyB;KACtD,CAAC;IAEF,yDAAyD;IACxC,kBAAkB,GAAG;QACpC,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,cAAc;QACd,WAAW;QACX,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,MAAM;QACN,MAAM;KACP,CAAC;IAEF,oDAAoD;IACnC,oBAAoB,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"complexity-analyzer.js","sourceRoot":"","sources":["../../../src/services/complexity-analyzer.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACZ,mBAAmB,CAAS;IAC5B,qBAAqB,CAAS;IACvC,eAAe,GAA+B,EAAE,CAAC;IAEzD,oCAAoC;IACnB,YAAY,GAAG;QAC9B,qBAAqB,EAAE,4BAA4B;QACnD,qBAAqB,EAAE,8CAA8C;QACrE,0BAA0B,EAAE,yBAAyB;KACtD,CAAC;IAEF,yDAAyD;IACxC,kBAAkB,GAAG;QACpC,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,cAAc;QACd,WAAW;QACX,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,MAAM;QACN,MAAM;KACP,CAAC;IAEF,oDAAoD;IACnC,oBAAoB,GAAG,mCAAmC,CAAC;IAC3D,oBAAoB,GACnC,sDAAsD,CAAC;IAEzD,YAAY,UAAqC,EAAE;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,GAAG,CAAC;QAC9D,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAe;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,wCAAwC;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC3D,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC;YACpD,SAAS,EAAE,aAAa,CAAC,MAAM;YAC/B,uBAAuB,EAAE,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACxD,wBAAwB,EAAE,oBAAoB,CAAC,MAAM;YACrD,aAAa;YACb,aAAa,EAAE,OAAO,CAAC,MAAM;SAC9B,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CACjD,OAAO,EACP,aAAa,CAAC,MAAM,CACrB,CAAC;QAEF,MAAM,SAAS,GACb,eAAe,IAAI,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC;QACrE,MAAM,kBAAkB,GACtB,SAAS;YACT,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,qBAAqB;gBACjD,mBAAmB,CAAC,CAAC;QAEzB,MAAM,MAAM,GAA6B;YACvC,eAAe;YACf,SAAS;YACT,aAAa;YACb,oBAAoB;YACpB,aAAa;YACb,kBAAkB;SACnB,CAAC;QAEF,yCAAyC;QACzC,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,CAAC,kBAAkB;gBACvB,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,OAAe;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,0BAA0B;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,iDAAiD;YACjD,MAAM,aAAa,GACjB,+DAA+D,CAAC;YAClE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAE3C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,cAAc,GAAG,UAAU;qBAC9B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;qBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnD,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,uCAAuC;YACvC,MAAM,SAAS,GAAG,OAAO;iBACtB,KAAK,CAAC,QAAQ,CAAC;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE/B,mEAAmE;YACnE,MAAM,uBAAuB,GAC3B,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAEpD,IAAI,uBAAuB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrD,2DAA2D;gBAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC7C,8DAA8D;oBAC9D,IACE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAChE,qEAAqE,CAAC,IAAI,CACxE,QAAQ,CACT,EACD,CAAC;wBACD,4CAA4C;wBAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAChC,2DAA2D,CAC5D,CAAC;wBACF,IAAI,WAAW,EAAE,CAAC;4BAChB,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BACnC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gCAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACnB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,OAAe;QAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAE5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,OAAe;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,qEAAqE;QACrE,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAC9B,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,mDAAmD;YACnD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACnC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC7D,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC;YAExC,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,MAAM,eAAe,GAAG,YAAY,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAAe,EACf,iBAAyB;QAEzB,IAAI,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO;aACtB,KAAK,CAAC,QAAQ,CAAC;aACf,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,OAMhC;QACC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,uDAAuD;QACvD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAC3B,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAClC,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAClC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAClC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACnC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACpC,2EAA2E;YAC3E,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC5B,KAAK,IAAI,GAAG,CAAC,CAAC,sDAAsD;YACtE,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YAC/B,KAAK,IAAI,IAAI,CAAC,CAAC,oDAAoD;QACrE,CAAC;aAAM,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YACtC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YACvC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;YAChC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;YACvC,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,0BAA0B,CAAC,aAAuB;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,SAAS,GACb,UAAU,KAAK,CAAC;YACd,CAAC,CAAC;gBACE,4CAA4C;gBAC5C,6CAA6C;gBAC7C,qCAAqC;aACtC;YACH,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAI,aAAa,CAAC,MAAM,GAAG,UAAU,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACxD,SAAS,CAAC,IAAI,CACZ,aAAa,aAAa,CAAC,MAAM,GAAG,UAAU,aAAa,CAC5D,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,OAAO,iGAAiG,QAAQ,EAAE,CAAC;IACrH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,MAAM,GAA6B;YACvC,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,EAAE;YACjB,oBAAoB,EAAE,EAAE;YACxB,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,KAAK;SAC1B,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAElD,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,aAAa,EAAE,CAAC;gBAChB,mBAAmB,EAAE,CAAC;gBACtB,oBAAoB,EAAE,CAAC;gBACvB,sBAAsB,EAAE,CAAC;aAC1B,CAAC;QACJ,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACnB,CAAC,MAAM,CAAC;QACT,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAC5B,CAAC,MAAM,CAAC;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAC5C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,EACnC,CAAC,CACF,CAAC;QAEF,OAAO;YACL,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB,EAAE,UAAU,GAAG,aAAa;SACnD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -39,4 +39,9 @@ export declare class TodoReminderService {
|
|
|
39
39
|
* Generate proactive todo suggestion for complex tasks
|
|
40
40
|
*/
|
|
41
41
|
getComplexTaskSuggestion(detectedTasks: string[]): string;
|
|
42
|
+
/**
|
|
43
|
+
* Generate escalated reminder after sustained complexity without todos
|
|
44
|
+
*/
|
|
45
|
+
getEscalatedComplexTaskSuggestion(detectedTasks: string[]): string;
|
|
46
|
+
private buildNumberedTaskList;
|
|
42
47
|
}
|
|
@@ -68,11 +68,34 @@ export class TodoReminderService {
|
|
|
68
68
|
* Generate proactive todo suggestion for complex tasks
|
|
69
69
|
*/
|
|
70
70
|
getComplexTaskSuggestion(detectedTasks) {
|
|
71
|
-
const taskList = detectedTasks
|
|
72
|
-
.map((task, i) => `${i + 1}. ${task}`)
|
|
73
|
-
.join('\n');
|
|
71
|
+
const taskList = this.buildNumberedTaskList(detectedTasks);
|
|
74
72
|
const message = `I notice you're asking about multiple tasks. Consider using the TodoWrite tool to track these items:\n${taskList}\n\nThis will help ensure all tasks are completed systematically.`;
|
|
75
73
|
return this.formatSystemReminder(message);
|
|
76
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate escalated reminder after sustained complexity without todos
|
|
77
|
+
*/
|
|
78
|
+
getEscalatedComplexTaskSuggestion(detectedTasks) {
|
|
79
|
+
const taskList = this.buildNumberedTaskList(detectedTasks);
|
|
80
|
+
const message = `You have handled several complex instructions without creating a todo list. Pause and use the TodoWrite tool now:\n${taskList}\n\nTodoWrite is required so we can track progress and avoid losing steps. Create the list before continuing.`;
|
|
81
|
+
return this.formatSystemReminder(message);
|
|
82
|
+
}
|
|
83
|
+
buildNumberedTaskList(detectedTasks) {
|
|
84
|
+
if (detectedTasks.length === 0) {
|
|
85
|
+
return [
|
|
86
|
+
'1. Break this request into discrete todos',
|
|
87
|
+
'2. Capture each major area using TodoWrite',
|
|
88
|
+
'3. Update the list as you make progress',
|
|
89
|
+
].join('\n');
|
|
90
|
+
}
|
|
91
|
+
const maxDisplay = Math.min(5, detectedTasks.length);
|
|
92
|
+
const numbered = detectedTasks
|
|
93
|
+
.slice(0, maxDisplay)
|
|
94
|
+
.map((task, index) => `${index + 1}. ${task}`);
|
|
95
|
+
if (detectedTasks.length > maxDisplay) {
|
|
96
|
+
numbered.push(`... and ${detectedTasks.length - maxDisplay} more tasks`);
|
|
97
|
+
}
|
|
98
|
+
return numbered.join('\n');
|
|
99
|
+
}
|
|
77
100
|
}
|
|
78
101
|
//# sourceMappingURL=todo-reminder-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-reminder-service.js","sourceRoot":"","sources":["../../../src/services/todo-reminder-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAU,mBAAmB,GAAG,uUAAuU,CAAC;IAE9W,MAAM,CAAU,mBAAmB,GAAG,6HAA6H,CAAC;IAEpK,MAAM,CAAU,mBAAmB,GAAG,qDAAqD,CAAC;IAEpG;;OAEG;IACH,wBAAwB,CAAC,gBAAyB,KAAK;QACrD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,WAA4B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAC,CACJ,CAAC;QAEF,MAAM,OAAO,GACX,mBAAmB,CAAC,mBAAmB;YACvC,QAAQ;YACR,mBAAmB,CAAC,mBAAmB,CAAC;QAE1C,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,oBAAoB,CAClB,aAAqB,EACrB,YAAoB;QAEpB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAC/B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CACzE,CAAC;QAEF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CACxE,CAAC;QAEF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/D,OAAO,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,aAAa;YACb,YAAY;YACZ,KAAK;YACL,OAAO;YACP,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,WAA4B;QACjD,OAAO,CACL,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC5B,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC9B,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAe;QAC1C,qEAAqE;QACrE,OAAO,yBAAyB,OAAO,OAAO,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,aAAuB;QAC9C,MAAM,QAAQ,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"todo-reminder-service.js","sourceRoot":"","sources":["../../../src/services/todo-reminder-service.ts"],"names":[],"mappings":"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"}
|