hanseol 4.5.1 → 4.5.4
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/agents/planner/index.d.ts +1 -0
- package/dist/agents/planner/index.d.ts.map +1 -1
- package/dist/agents/planner/index.js +70 -1
- package/dist/agents/planner/index.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/core/llm/llm-client.d.ts +11 -0
- package/dist/core/llm/llm-client.d.ts.map +1 -1
- package/dist/core/llm/llm-client.js +114 -49
- package/dist/core/llm/llm-client.js.map +1 -1
- package/dist/core/session/session-manager.d.ts +3 -0
- package/dist/core/session/session-manager.d.ts.map +1 -1
- package/dist/core/session/session-manager.js +9 -1
- package/dist/core/session/session-manager.js.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/llm.d.ts +4 -0
- package/dist/errors/llm.d.ts.map +1 -1
- package/dist/errors/llm.js +11 -0
- package/dist/errors/llm.js.map +1 -1
- package/dist/orchestration/plan-executor.d.ts.map +1 -1
- package/dist/orchestration/plan-executor.js +46 -1
- package/dist/orchestration/plan-executor.js.map +1 -1
- package/dist/orchestration/types.d.ts +3 -0
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/prompts/agents/planning.d.ts.map +1 -1
- package/dist/prompts/agents/planning.js +6 -3
- package/dist/prompts/agents/planning.js.map +1 -1
- package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -1
- package/dist/tools/llm/simple/planning-tools.js +5 -1
- package/dist/tools/llm/simple/planning-tools.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -1
- package/dist/ui/components/PlanExecuteApp.js +30 -1
- package/dist/ui/components/PlanExecuteApp.js.map +1 -1
- package/dist/ui/hooks/usePlanExecution.d.ts.map +1 -1
- package/dist/ui/hooks/usePlanExecution.js +4 -0
- package/dist/ui/hooks/usePlanExecution.js.map +1 -1
- package/package.json +3 -2
|
@@ -8,6 +8,7 @@ export declare class PlanningLLM {
|
|
|
8
8
|
setAskUserCallback(callback: AskUserCallback): void;
|
|
9
9
|
clearAskUserCallback(): void;
|
|
10
10
|
generateTODOList(userRequest: string, contextMessages?: Message[]): Promise<PlanningResult>;
|
|
11
|
+
private extractToolCallFromContent;
|
|
11
12
|
}
|
|
12
13
|
export default PlanningLLM;
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAY,cAAc,EAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAY,cAAc,EAAc,MAAM,sBAAsB,CAAC;AAQrF,OAAO,EAEL,eAAe,EAChB,MAAM,kDAAkD,CAAC;AAO1D,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAgC;gBAE3C,SAAS,EAAE,SAAS;IAQhC,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAQnD,oBAAoB,IAAI,IAAI;IAatB,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,OAAO,EAAE,GAC1B,OAAO,CAAC,cAAc,CAAC;IAoW1B,OAAO,CAAC,0BAA0B;CA8CnC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { toolRegistry } from '../../tools/registry.js';
|
|
|
4
4
|
import { flattenMessagesToHistory } from '../../orchestration/utils.js';
|
|
5
5
|
import { reportError } from '../../core/telemetry/error-reporter.js';
|
|
6
6
|
import { configManager } from '../../core/config/config-manager.js';
|
|
7
|
+
import { LLMRetryExhaustedError } from '../../errors/llm.js';
|
|
7
8
|
export class PlanningLLM {
|
|
8
9
|
llmClient;
|
|
9
10
|
askUserCallback = null;
|
|
@@ -49,7 +50,7 @@ export class PlanningLLM {
|
|
|
49
50
|
});
|
|
50
51
|
}
|
|
51
52
|
const planningTools = toolRegistry.getLLMPlanningToolDefinitions();
|
|
52
|
-
const MAX_RETRIES =
|
|
53
|
+
const MAX_RETRIES = 5;
|
|
53
54
|
const MAX_ASK_ITERATIONS = 5;
|
|
54
55
|
let askIterations = 0;
|
|
55
56
|
let lastError = null;
|
|
@@ -197,6 +198,7 @@ Choose one of your 3 tools now.`,
|
|
|
197
198
|
status: (index === 0 ? 'in_progress' : 'pending'),
|
|
198
199
|
}));
|
|
199
200
|
return {
|
|
201
|
+
title: toolArgs.title,
|
|
200
202
|
todos,
|
|
201
203
|
complexity: toolArgs.complexity || 'moderate',
|
|
202
204
|
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
@@ -223,6 +225,32 @@ Choose one of your 3 tools now.`,
|
|
|
223
225
|
}
|
|
224
226
|
const contentOnly = message?.content;
|
|
225
227
|
if (contentOnly) {
|
|
228
|
+
const extracted = this.extractToolCallFromContent(contentOnly);
|
|
229
|
+
if (extracted) {
|
|
230
|
+
logger.info(`Extracted tool call from plain text content (attempt ${attempt}/${MAX_RETRIES})`, {
|
|
231
|
+
toolName: extracted.name,
|
|
232
|
+
});
|
|
233
|
+
if (extracted.name === 'create_todos' && Array.isArray(extracted.arguments?.todos)) {
|
|
234
|
+
const todos = extracted.arguments.todos.map((todo, index) => ({
|
|
235
|
+
id: todo.id || `todo-${Date.now()}-${index}`,
|
|
236
|
+
title: todo.title || 'Untitled task',
|
|
237
|
+
status: (index === 0 ? 'in_progress' : 'pending'),
|
|
238
|
+
}));
|
|
239
|
+
return {
|
|
240
|
+
todos,
|
|
241
|
+
complexity: extracted.arguments.complexity || 'moderate',
|
|
242
|
+
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
if (extracted.name === 'respond_to_user' && extracted.arguments?.response) {
|
|
246
|
+
return {
|
|
247
|
+
todos: [],
|
|
248
|
+
complexity: 'simple',
|
|
249
|
+
directResponse: extracted.arguments.response,
|
|
250
|
+
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
}
|
|
226
254
|
logger.warn(`Planning LLM returned content without tool call (attempt ${attempt}/${MAX_RETRIES})`, {
|
|
227
255
|
contentPreview: contentOnly.substring(0, 100),
|
|
228
256
|
});
|
|
@@ -234,6 +262,9 @@ Choose one of your 3 tools now.`,
|
|
|
234
262
|
}
|
|
235
263
|
}
|
|
236
264
|
catch (error) {
|
|
265
|
+
if (error instanceof LLMRetryExhaustedError) {
|
|
266
|
+
throw error;
|
|
267
|
+
}
|
|
237
268
|
logger.warn(`Planning LLM error (attempt ${attempt}/${MAX_RETRIES}):`, error);
|
|
238
269
|
lastError = error;
|
|
239
270
|
}
|
|
@@ -260,6 +291,44 @@ Choose one of your 3 tools now.`,
|
|
|
260
291
|
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
261
292
|
};
|
|
262
293
|
}
|
|
294
|
+
extractToolCallFromContent(content) {
|
|
295
|
+
const toolNames = ['create_todos', 'respond_to_user', 'ask_to_user'];
|
|
296
|
+
for (const toolName of toolNames) {
|
|
297
|
+
const funcPattern = new RegExp(`\\{[^{}]*"name"\\s*:\\s*"${toolName}"[^{}]*"arguments"\\s*:\\s*(\\{[\\s\\S]*?\\})\\s*\\}`);
|
|
298
|
+
const funcMatch = content.match(funcPattern);
|
|
299
|
+
if (funcMatch?.[1]) {
|
|
300
|
+
try {
|
|
301
|
+
const args = JSON.parse(funcMatch[1]);
|
|
302
|
+
logger.debug(`Extracted tool call via function pattern: ${toolName}`);
|
|
303
|
+
return { name: toolName, arguments: args };
|
|
304
|
+
}
|
|
305
|
+
catch { }
|
|
306
|
+
}
|
|
307
|
+
const directPattern = new RegExp(`${toolName}\\s*[:(\\[]\\s*(\\{[\\s\\S]*?\\})`);
|
|
308
|
+
const directMatch = content.match(directPattern);
|
|
309
|
+
if (directMatch?.[1]) {
|
|
310
|
+
try {
|
|
311
|
+
const args = JSON.parse(directMatch[1]);
|
|
312
|
+
logger.debug(`Extracted tool call via direct pattern: ${toolName}`);
|
|
313
|
+
return { name: toolName, arguments: args };
|
|
314
|
+
}
|
|
315
|
+
catch { }
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
const todosPattern = /\{[\s\S]*?"todos"\s*:\s*\[[\s\S]*?\][\s\S]*?\}/;
|
|
319
|
+
const todosMatch = content.match(todosPattern);
|
|
320
|
+
if (todosMatch?.[0]) {
|
|
321
|
+
try {
|
|
322
|
+
const parsed = JSON.parse(todosMatch[0]);
|
|
323
|
+
if (Array.isArray(parsed.todos)) {
|
|
324
|
+
logger.debug('Extracted create_todos from raw JSON block with todos array');
|
|
325
|
+
return { name: 'create_todos', arguments: parsed };
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
catch { }
|
|
329
|
+
}
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
263
332
|
}
|
|
264
333
|
export default PlanningLLM;
|
|
265
334
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAWpE,MAAM,OAAO,WAAW;IACd,SAAS,CAAY;IACrB,eAAe,GAA2B,IAAI,CAAC;IAEvD,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAMD,kBAAkB,CAAC,QAAyB;QAC1C,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAKD,oBAAoB;QAClB,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAUD,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,eAA2B;QAG3B,MAAM,WAAW,GAAG,YAAY,CAAC,yBAAyB,EAAE,CAAC;QAC7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,2BAA2B,EAAE,CAAC;QACrE,MAAM,YAAY,GAAG,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAG/E,MAAM,qBAAqB,GAAc,EAAE,CAAC;QAE5C,MAAM,QAAQ,GAAc;YAC1B;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY;aACtB;SACF,CAAC;QAIF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAG1E,MAAM,cAAc,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrE,MAAM,WAAW,GAAG,cAAc,EAAE,IAAI,KAAK,MAAM,IAAI,cAAc,EAAE,OAAO,KAAK,WAAW,CAAC;YAG/F,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACrF,MAAM,WAAW,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAG5D,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,IAAI,2BAA2B,WAAW,+BAA+B,CAAC;YACvF,CAAC;YACD,WAAW,IAAI,sBAAsB,WAAW,sBAAsB,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YAEN,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,sBAAsB,WAAW,sBAAsB;aACjE,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,aAAa,GAAG,YAAY,CAAC,6BAA6B,EAAE,CAAC;QAEnE,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,kBAAkB,GAAG,CAAC,CAAC;QAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,SAAS,GAAiB,IAAI,CAAC;QAGnC,OAAO,aAAa,GAAG,kBAAkB,EAAE,CAAC;YAC1C,IAAI,sBAAsB,GAAG,KAAK,CAAC;YAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC;oBAEH,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBAChB,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,UAAU,OAAO,IAAI,WAAW;;;;;;;;;;kBAUrC,SAAS,EAAE,OAAO,IAAI,kBAAkB;;gCAE1B;yBACnB,CAAC,CAAC;wBACH,MAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,IAAI,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzG,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;wBACnD,QAAQ;wBACR,KAAK,EAAE,aAAa;wBACpB,WAAW,EAAE,UAAU;wBACvB,WAAW,EAAE,GAAG;wBAChB,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBAGH,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;oBACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;oBAC/C,MAAM,SAAS,GAAG,OAAO,EAAE,UAAU,CAAC;oBACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;oBAE1D,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;wBACpC,YAAY;wBACZ,UAAU,EAAE,CAAC,CAAC,OAAO;wBACrB,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;wBACnD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO;wBAC9B,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;wBAC5C,YAAY;wBACZ,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;qBACvC,CAAC,CAAC;oBAGH,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;wBAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAEzC,IAAI,QAAQ,CAAC;wBACb,IAAI,CAAC;4BACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;wBAC9D,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;4BAC7F,SAAS,GAAG,KAAc,CAAC;4BAE3B,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ;gCACjE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BAE9D,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,WAAW;gCACjB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;gCAC/B,UAAU,EAAE,CAAC,QAAQ,CAAC;6BACZ,CAAC,CAAC;4BACd,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,MAAM;gCACZ,OAAO,EAAE,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,qBAAqB,UAAU,qEAAqE;gCAC9M,YAAY,EAAE,QAAQ,CAAC,EAAE;6BACf,CAAC,CAAC;4BACd,SAAS;wBACX,CAAC;wBAGD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;4BAC/B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;4BAE1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAkB,CAAC;4BAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAmB,CAAC;4BAE7C,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC/D,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gCACxE,SAAS,GAAG,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gCACzE,SAAS;4BACX,CAAC;4BAED,aAAa,EAAE,CAAC;4BAGhB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gCAC1B,MAAM,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;gCAC/E,QAAQ,CAAC,IAAI,CAAC;oCACZ,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,iEAAiE;iCAC3E,CAAC,CAAC;gCACH,QAAQ,CAAC,IAAI,CAAC;oCACZ,IAAI,EAAE,MAAM;oCACZ,OAAO,EAAE,2HAA2H;iCACrI,CAAC,CAAC;gCACH,sBAAsB,GAAG,IAAI,CAAC;gCAC9B,MAAM;4BACR,CAAC;4BAED,IAAI,CAAC;gCAEH,MAAM,YAAY,GAAY;oCAC5B,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,0BAA0B,QAAQ,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iCAC9E,CAAC;gCACF,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC5B,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAGzC,MAAM,YAAY,GAAoB,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gCAGxF,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,UAAU;oCACpE,CAAC,CAAC,YAAY,CAAC,UAAU;oCACzB,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC;gCAGhC,MAAM,OAAO,GAAY;oCACvB,IAAI,EAAE,MAAM;oCACZ,OAAO,EAAE,mBAAmB,cAAc,EAAE;iCAC7C,CAAC;gCACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACvB,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCAEpC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;oCACtD,QAAQ;oCACR,MAAM,EAAE,cAAc;oCACtB,QAAQ,EAAE,YAAY,CAAC,OAAO;iCAC/B,CAAC,CAAC;gCAGH,sBAAsB,GAAG,IAAI,CAAC;gCAC9B,MAAM;4BAER,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,MAAM,CAAC,WAAW,CAAC,0BAA0B,EAAE,KAAc,CAAC,CAAC;gCAC/D,SAAS,GAAG,KAAc,CAAC;gCAE3B,SAAS;4BACX,CAAC;wBACH,CAAC;wBAGD,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;4BAChC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;4BAGvD,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;4BAG9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACjC,IAAI,CAAC;oCACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oCAChC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gCACpD,CAAC;gCAAC,MAAM,CAAC;oCACP,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gCAC3E,CAAC;4BACH,CAAC;4BAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC7B,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gCACtE,SAAS,GAAG,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gCACtF,SAAS;4BACX,CAAC;4BAED,MAAM,KAAK,GAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;gCACpE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE;gCAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe;gCAEpC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAe;6BAChE,CAAC,CAAC,CAAC;4BAEJ,OAAO;gCACL,KAAK;gCACL,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,UAAU;gCAC7C,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;6BAC5F,CAAC;wBACJ,CAAC;wBAGD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;4BACnC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;4BACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;gCAClB,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gCAC1D,SAAS,GAAG,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gCAC/D,SAAS;4BACX,CAAC;4BAED,OAAO;gCACL,KAAK,EAAE,EAAE;gCACT,UAAU,EAAE,QAAQ;gCACpB,cAAc,EAAE,YAAY;gCAC5B,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;6BAC5F,CAAC;wBACJ,CAAC;wBAGD,MAAM,CAAC,IAAI,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;wBAChD,SAAS,GAAG,IAAI,KAAK,CAAC,iBAAiB,QAAQ,0IAA0I,CAAC,CAAC;wBAC3L,SAAS;oBACX,CAAC;oBAGD,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,CAAC;oBACrC,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC,4DAA4D,OAAO,IAAI,WAAW,GAAG,EAAE;4BACjG,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;yBAC9C,CAAC,CAAC;wBACH,SAAS,GAAG,IAAI,KAAK,CACnB,iHAAiH,CAClH,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,8DAA8D,OAAO,IAAI,WAAW,GAAG,CAAC,CAAC;wBACrG,SAAS,GAAG,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;oBACvG,CAAC;gBAEH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAEf,MAAM,CAAC,IAAI,CAAC,+BAA+B,OAAO,IAAI,WAAW,IAAI,EAAE,KAAc,CAAC,CAAC;oBACvF,SAAS,GAAG,KAAc,CAAC;gBAE7B,CAAC;YACH,CAAC;YAGD,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAGD,MAAM;QACR,CAAC;QAGD,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACtG,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,aAAa,CAAC,eAAe,EAAE,CAAC;YAC3C,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjI,CAAC;QACD,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;oBACxB,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW;oBACrF,MAAM,EAAE,aAAa;iBACtB;aACF;YACD,UAAU,EAAE,QAAQ;YACpB,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;SAC5F,CAAC;IACJ,CAAC;CAEF;AAED,eAAe,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare const BACKUPS_DIR: string;
|
|
|
6
6
|
export declare const PROJECTS_DIR: string;
|
|
7
7
|
export declare const CREDENTIALS_FILE_PATH: string;
|
|
8
8
|
export declare const APP_NAME = "hanseol";
|
|
9
|
-
export declare const APP_VERSION = "4.5.
|
|
9
|
+
export declare const APP_VERSION = "4.5.4";
|
|
10
10
|
export declare const DASHBOARD_URL = "https://3.39.170.84.nip.io";
|
|
11
11
|
export declare const ONCE_URL = "https://3.39.170.84.nip.io:5090";
|
|
12
12
|
export declare const FREE_URL = "https://3.39.170.84.nip.io:6090";
|
package/dist/constants.js
CHANGED
|
@@ -8,7 +8,7 @@ export const BACKUPS_DIR = path.join(LOCAL_HOME_DIR, 'backups');
|
|
|
8
8
|
export const PROJECTS_DIR = path.join(LOCAL_HOME_DIR, 'projects');
|
|
9
9
|
export const CREDENTIALS_FILE_PATH = path.join(LOCAL_HOME_DIR, 'credentials.json');
|
|
10
10
|
export const APP_NAME = 'hanseol';
|
|
11
|
-
export const APP_VERSION = '4.5.
|
|
11
|
+
export const APP_VERSION = '4.5.4';
|
|
12
12
|
export const DASHBOARD_URL = 'https://3.39.170.84.nip.io';
|
|
13
13
|
export const ONCE_URL = 'https://3.39.170.84.nip.io:5090';
|
|
14
14
|
export const FREE_URL = 'https://3.39.170.84.nip.io:6090';
|
|
@@ -36,6 +36,7 @@ export interface RetryConfig {
|
|
|
36
36
|
maxRetries?: number;
|
|
37
37
|
currentAttempt?: number;
|
|
38
38
|
disableRetry?: boolean;
|
|
39
|
+
extendedRetryDone?: boolean;
|
|
39
40
|
}
|
|
40
41
|
export declare class LLMClient {
|
|
41
42
|
private axiosInstance;
|
|
@@ -45,6 +46,7 @@ export declare class LLMClient {
|
|
|
45
46
|
private modelName;
|
|
46
47
|
private currentAbortController;
|
|
47
48
|
private isInterrupted;
|
|
49
|
+
countdownCallback: ((remainingSeconds: number) => void) | null;
|
|
48
50
|
private static readonly DEFAULT_MAX_RETRIES;
|
|
49
51
|
constructor(authToken?: string);
|
|
50
52
|
private preprocessMessages;
|
|
@@ -55,6 +57,7 @@ export declare class LLMClient {
|
|
|
55
57
|
isRequestActive(): boolean;
|
|
56
58
|
private isRetryableError;
|
|
57
59
|
private sleep;
|
|
60
|
+
private waitWithCountdown;
|
|
58
61
|
chatCompletionStream(options: Partial<LLMRequestOptions>): AsyncGenerator<LLMStreamChunk, void, unknown>;
|
|
59
62
|
sendMessage(userMessage: string, systemPrompt?: string): Promise<string>;
|
|
60
63
|
sendMessageStream(userMessage: string, systemPrompt?: string): AsyncGenerator<string, void, unknown>;
|
|
@@ -63,6 +66,14 @@ export declare class LLMClient {
|
|
|
63
66
|
clearPendingMessage?: () => void;
|
|
64
67
|
rebuildMessages?: (toolLoopMessages: Message[]) => Message[];
|
|
65
68
|
onAfterToolExecution?: (toolLoopMessages: Message[]) => Promise<void>;
|
|
69
|
+
askUser?: (request: {
|
|
70
|
+
question: string;
|
|
71
|
+
options: string[];
|
|
72
|
+
}) => Promise<{
|
|
73
|
+
selectedOption: string;
|
|
74
|
+
isOther: boolean;
|
|
75
|
+
customText?: string;
|
|
76
|
+
}>;
|
|
66
77
|
}): Promise<{
|
|
67
78
|
message: Message;
|
|
68
79
|
toolCalls: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../../src/core/llm/llm-client.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../../src/core/llm/llm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { configManager } from '../config/config-manager.js';
|
|
3
3
|
import { NetworkError, APIError, TimeoutError, ConnectionError, } from '../../errors/network.js';
|
|
4
|
-
import { LLMError, TokenLimitError, RateLimitError, ContextLengthError, } from '../../errors/llm.js';
|
|
4
|
+
import { LLMError, TokenLimitError, RateLimitError, ContextLengthError, LLMRetryExhaustedError, } from '../../errors/llm.js';
|
|
5
5
|
import { QuotaExceededError } from '../../errors/quota.js';
|
|
6
6
|
import { logger, isLLMLogEnabled } from '../../utils/logger.js';
|
|
7
7
|
import { reportError } from '../telemetry/error-reporter.js';
|
|
@@ -14,6 +14,7 @@ export class LLMClient {
|
|
|
14
14
|
modelName;
|
|
15
15
|
currentAbortController = null;
|
|
16
16
|
isInterrupted = false;
|
|
17
|
+
countdownCallback = null;
|
|
17
18
|
static DEFAULT_MAX_RETRIES = 3;
|
|
18
19
|
constructor(authToken) {
|
|
19
20
|
const endpoint = configManager.getCurrentEndpoint();
|
|
@@ -187,6 +188,34 @@ export class LLMClient {
|
|
|
187
188
|
currentAttempt: currentAttempt + 1,
|
|
188
189
|
});
|
|
189
190
|
}
|
|
191
|
+
if (currentAttempt >= maxRetries && !retryConfig?.disableRetry && !retryConfig?.extendedRetryDone && this.isRetryableError(error)) {
|
|
192
|
+
logger.warn(`Phase 1 (${maxRetries}회) 실패. 2분 대기 후 Phase 2 시작...`, {
|
|
193
|
+
error: error.message,
|
|
194
|
+
});
|
|
195
|
+
const waited = await this.waitWithCountdown(120);
|
|
196
|
+
if (!waited) {
|
|
197
|
+
logger.flow('카운트다운 중 인터럽트 감지');
|
|
198
|
+
throw new Error('INTERRUPTED');
|
|
199
|
+
}
|
|
200
|
+
logger.warn('Phase 2 (2분 대기) 완료. Phase 3 (3회 추가 retry) 시작...');
|
|
201
|
+
try {
|
|
202
|
+
return await this.chatCompletion(options, {
|
|
203
|
+
maxRetries,
|
|
204
|
+
currentAttempt: 1,
|
|
205
|
+
extendedRetryDone: true,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
catch (phase3Error) {
|
|
209
|
+
const finalError = phase3Error instanceof Error ? phase3Error : new Error(String(phase3Error));
|
|
210
|
+
if (finalError.message === 'INTERRUPTED') {
|
|
211
|
+
throw finalError;
|
|
212
|
+
}
|
|
213
|
+
logger.errorSilent('Phase 3 (추가 3회) 실패. 최종 LLMRetryExhaustedError throw.', {
|
|
214
|
+
error: finalError.message,
|
|
215
|
+
});
|
|
216
|
+
throw new LLMRetryExhaustedError(finalError);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
190
219
|
logger.flow('API 호출 실패 - 에러 처리');
|
|
191
220
|
if (currentAttempt > 1) {
|
|
192
221
|
logger.errorSilent(`LLM 호출 ${maxRetries}번 재시도 후 최종 실패`, {
|
|
@@ -254,6 +283,19 @@ export class LLMClient {
|
|
|
254
283
|
sleep(ms) {
|
|
255
284
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
256
285
|
}
|
|
286
|
+
async waitWithCountdown(totalSeconds) {
|
|
287
|
+
for (let remaining = totalSeconds; remaining > 0; remaining -= 10) {
|
|
288
|
+
if (this.isInterrupted) {
|
|
289
|
+
this.countdownCallback?.(0);
|
|
290
|
+
return false;
|
|
291
|
+
}
|
|
292
|
+
const waitSec = Math.min(10, remaining);
|
|
293
|
+
this.countdownCallback?.(remaining);
|
|
294
|
+
await this.sleep(waitSec * 1000);
|
|
295
|
+
}
|
|
296
|
+
this.countdownCallback?.(0);
|
|
297
|
+
return !this.isInterrupted;
|
|
298
|
+
}
|
|
257
299
|
async *chatCompletionStream(options) {
|
|
258
300
|
const url = '/chat/completions';
|
|
259
301
|
try {
|
|
@@ -696,62 +738,83 @@ Retry with correct parameter names and types.`;
|
|
|
696
738
|
}
|
|
697
739
|
logger.debug(`Executing tool: ${toolName}`, toolArgs);
|
|
698
740
|
let result;
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
if (
|
|
703
|
-
|
|
741
|
+
if (toolName === 'ask_to_user' && options?.askUser) {
|
|
742
|
+
const question = toolArgs['question'];
|
|
743
|
+
const askOptions = toolArgs['options'];
|
|
744
|
+
if (question && Array.isArray(askOptions) && askOptions.length >= 2) {
|
|
745
|
+
try {
|
|
746
|
+
const askResponse = await options.askUser({ question, options: askOptions });
|
|
747
|
+
const resultText = askResponse.isOther && askResponse.customText
|
|
748
|
+
? `User provided custom response: "${askResponse.customText}"`
|
|
749
|
+
: `User selected: "${askResponse.selectedOption}"`;
|
|
750
|
+
result = { success: true, result: resultText };
|
|
751
|
+
}
|
|
752
|
+
catch (askError) {
|
|
753
|
+
result = { success: false, error: `Error asking user: ${askError instanceof Error ? askError.message : 'Unknown error'}` };
|
|
754
|
+
}
|
|
704
755
|
}
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
args: toolArgs,
|
|
716
|
-
result: result.result || '',
|
|
717
|
-
});
|
|
718
|
-
return {
|
|
719
|
-
message: {
|
|
720
|
-
role: 'assistant',
|
|
721
|
-
content: result.result || '',
|
|
722
|
-
},
|
|
723
|
-
toolCalls: toolCallHistory,
|
|
724
|
-
allMessages: getAllMessages(),
|
|
725
|
-
};
|
|
756
|
+
else {
|
|
757
|
+
result = { success: false, error: 'Invalid ask_to_user parameters' };
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
else {
|
|
761
|
+
try {
|
|
762
|
+
result = await executeFileTool(toolName, toolArgs);
|
|
763
|
+
logger.toolExecution(toolName, toolArgs, result);
|
|
764
|
+
if (isLLMLogEnabled()) {
|
|
765
|
+
logger.llmToolResult(toolName, result.result || '', result.success);
|
|
726
766
|
}
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
767
|
+
if (toolName === 'final_response') {
|
|
768
|
+
if (result.success && result.metadata?.['isFinalResponse']) {
|
|
769
|
+
logger.flow('final_response tool executed successfully - returning');
|
|
770
|
+
addMessage({
|
|
771
|
+
role: 'tool',
|
|
772
|
+
content: result.result || '',
|
|
773
|
+
tool_call_id: toolCall.id,
|
|
774
|
+
});
|
|
775
|
+
toolCallHistory.push({
|
|
776
|
+
tool: toolName,
|
|
777
|
+
args: toolArgs,
|
|
778
|
+
result: result.result || '',
|
|
779
|
+
});
|
|
735
780
|
return {
|
|
736
|
-
message: {
|
|
781
|
+
message: {
|
|
782
|
+
role: 'assistant',
|
|
783
|
+
content: result.result || '',
|
|
784
|
+
},
|
|
737
785
|
toolCalls: toolCallHistory,
|
|
738
786
|
allMessages: getAllMessages(),
|
|
739
787
|
};
|
|
740
788
|
}
|
|
789
|
+
else {
|
|
790
|
+
finalResponseFailures++;
|
|
791
|
+
logger.flow(`final_response failed (attempt ${finalResponseFailures}/${MAX_FINAL_RESPONSE_FAILURES}): ${result.error}`);
|
|
792
|
+
if (finalResponseFailures >= MAX_FINAL_RESPONSE_FAILURES) {
|
|
793
|
+
logger.warn('Max final_response failures exceeded - forcing completion');
|
|
794
|
+
const fallbackMessage = toolArgs['message'] || 'Task completed with incomplete TODOs.';
|
|
795
|
+
const { emitAssistantResponse } = await import('../../tools/llm/simple/file-tools.js');
|
|
796
|
+
emitAssistantResponse(fallbackMessage);
|
|
797
|
+
return {
|
|
798
|
+
message: { role: 'assistant', content: fallbackMessage },
|
|
799
|
+
toolCalls: toolCallHistory,
|
|
800
|
+
allMessages: getAllMessages(),
|
|
801
|
+
};
|
|
802
|
+
}
|
|
803
|
+
}
|
|
741
804
|
}
|
|
742
805
|
}
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
806
|
+
catch (toolError) {
|
|
807
|
+
logger.toolExecution(toolName, toolArgs, undefined, toolError);
|
|
808
|
+
reportError(toolError, { type: 'toolExecution', tool: toolName, modelId: this.model, modelName: this.modelName, toolArgs }).catch(() => { });
|
|
809
|
+
if (isLLMLogEnabled()) {
|
|
810
|
+
const errorMsg = toolError instanceof Error ? toolError.message : String(toolError);
|
|
811
|
+
logger.llmToolResult(toolName, `Error: ${errorMsg}`, false);
|
|
812
|
+
}
|
|
813
|
+
result = {
|
|
814
|
+
success: false,
|
|
815
|
+
error: toolError instanceof Error ? toolError.message : String(toolError),
|
|
816
|
+
};
|
|
750
817
|
}
|
|
751
|
-
result = {
|
|
752
|
-
success: false,
|
|
753
|
-
error: toolError instanceof Error ? toolError.message : String(toolError),
|
|
754
|
-
};
|
|
755
818
|
}
|
|
756
819
|
addMessage({
|
|
757
820
|
role: 'tool',
|
|
@@ -855,10 +918,12 @@ Retry with correct parameter names and types.`;
|
|
|
855
918
|
responseHeaders: axiosError.response.headers,
|
|
856
919
|
});
|
|
857
920
|
logger.httpResponse(status, axiosError.response.statusText, data);
|
|
858
|
-
if (
|
|
921
|
+
if (status === 400 &&
|
|
859
922
|
(errorMessage.includes('context_length_exceeded') ||
|
|
860
923
|
errorMessage.includes('maximum context length') ||
|
|
861
|
-
|
|
924
|
+
errorMessage.includes('Input too long') ||
|
|
925
|
+
errorCode === 'context_length_exceeded' ||
|
|
926
|
+
(typeof data?.error === 'string' && data.error.includes('Input too long')))) {
|
|
862
927
|
const maxLength = data?.error?.param?.max_tokens || 'unknown';
|
|
863
928
|
logger.errorSilent('Context Length Exceeded', {
|
|
864
929
|
maxLength,
|