hanseol 3.3.6 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/planner/index.d.ts +5 -1
- package/dist/agents/planner/index.d.ts.map +1 -1
- package/dist/agents/planner/index.js +161 -95
- package/dist/agents/planner/index.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/prompts/agents/planning.d.ts.map +1 -1
- package/dist/prompts/agents/planning.js +117 -57
- package/dist/prompts/agents/planning.js.map +1 -1
- package/dist/prompts/system/plan-execute.d.ts.map +1 -1
- package/dist/prompts/system/plan-execute.js +40 -4
- package/dist/prompts/system/plan-execute.js.map +1 -1
- package/dist/tools/browser/browser-client.d.ts +13 -1
- package/dist/tools/browser/browser-client.d.ts.map +1 -1
- package/dist/tools/browser/browser-client.js +106 -7
- package/dist/tools/browser/browser-client.js.map +1 -1
- package/dist/tools/browser/browser-tools.d.ts +8 -2
- package/dist/tools/browser/browser-tools.d.ts.map +1 -1
- package/dist/tools/browser/browser-tools.js +428 -53
- package/dist/tools/browser/browser-tools.js.map +1 -1
- package/dist/tools/browser/index.d.ts +1 -1
- package/dist/tools/browser/index.d.ts.map +1 -1
- package/dist/tools/browser/index.js +1 -1
- package/dist/tools/browser/index.js.map +1 -1
- package/dist/tools/llm/simple/planning-tools.d.ts +1 -0
- package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -1
- package/dist/tools/llm/simple/planning-tools.js +80 -26
- package/dist/tools/llm/simple/planning-tools.js.map +1 -1
- package/dist/tools/office/excel-client.d.ts +89 -0
- package/dist/tools/office/excel-client.d.ts.map +1 -1
- package/dist/tools/office/excel-client.js +1205 -0
- package/dist/tools/office/excel-client.js.map +1 -1
- package/dist/tools/office/excel-tools/advanced.d.ts +13 -0
- package/dist/tools/office/excel-tools/advanced.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/advanced.js +364 -0
- package/dist/tools/office/excel-tools/advanced.js.map +1 -0
- package/dist/tools/office/excel-tools/cells.js +1 -1
- package/dist/tools/office/excel-tools/cells.js.map +1 -1
- package/dist/tools/office/excel-tools/charts.d.ts +6 -0
- package/dist/tools/office/excel-tools/charts.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/charts.js +250 -1
- package/dist/tools/office/excel-tools/charts.js.map +1 -1
- package/dist/tools/office/excel-tools/comments.d.ts +1 -0
- package/dist/tools/office/excel-tools/comments.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/comments.js +36 -0
- package/dist/tools/office/excel-tools/comments.js.map +1 -1
- package/dist/tools/office/excel-tools/data-ops.d.ts +4 -0
- package/dist/tools/office/excel-tools/data-ops.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/data-ops.js +155 -1
- package/dist/tools/office/excel-tools/data-ops.js.map +1 -1
- package/dist/tools/office/excel-tools/export.d.ts +3 -0
- package/dist/tools/office/excel-tools/export.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/export.js +117 -1
- package/dist/tools/office/excel-tools/export.js.map +1 -1
- package/dist/tools/office/excel-tools/formatting.d.ts +2 -0
- package/dist/tools/office/excel-tools/formatting.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/formatting.js +74 -0
- package/dist/tools/office/excel-tools/formatting.js.map +1 -1
- package/dist/tools/office/excel-tools/formulas.d.ts +11 -0
- package/dist/tools/office/excel-tools/formulas.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/formulas.js +313 -0
- package/dist/tools/office/excel-tools/formulas.js.map +1 -0
- package/dist/tools/office/excel-tools/index.d.ts +5 -0
- package/dist/tools/office/excel-tools/index.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/index.js +15 -0
- package/dist/tools/office/excel-tools/index.js.map +1 -1
- package/dist/tools/office/excel-tools/media.d.ts +5 -0
- package/dist/tools/office/excel-tools/media.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/media.js +176 -0
- package/dist/tools/office/excel-tools/media.js.map +1 -1
- package/dist/tools/office/excel-tools/page-setup.d.ts +6 -0
- package/dist/tools/office/excel-tools/page-setup.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/page-setup.js +144 -0
- package/dist/tools/office/excel-tools/page-setup.js.map +1 -0
- package/dist/tools/office/excel-tools/pivot-table.d.ts +7 -0
- package/dist/tools/office/excel-tools/pivot-table.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/pivot-table.js +151 -0
- package/dist/tools/office/excel-tools/pivot-table.js.map +1 -0
- package/dist/tools/office/excel-tools/rows-columns.d.ts +4 -0
- package/dist/tools/office/excel-tools/rows-columns.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/rows-columns.js +149 -2
- package/dist/tools/office/excel-tools/rows-columns.js.map +1 -1
- package/dist/tools/office/excel-tools/sheets.d.ts +8 -0
- package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/sheets.js +288 -0
- package/dist/tools/office/excel-tools/sheets.js.map +1 -1
- package/dist/tools/office/excel-tools/tables.d.ts +7 -0
- package/dist/tools/office/excel-tools/tables.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/tables.js +151 -0
- package/dist/tools/office/excel-tools/tables.js.map +1 -0
- package/dist/tools/office/powerpoint-client.d.ts +20 -0
- package/dist/tools/office/powerpoint-client.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-client.js +223 -0
- package/dist/tools/office/powerpoint-client.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/effects.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/effects.js +55 -42
- package/dist/tools/office/powerpoint-tools/effects.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/export.d.ts +1 -0
- package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/export.js +44 -1
- package/dist/tools/office/powerpoint-tools/export.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/media.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/media.js +25 -15
- package/dist/tools/office/powerpoint-tools/media.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/notes.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/notes.js +20 -10
- package/dist/tools/office/powerpoint-tools/notes.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/sections.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/sections.js +13 -6
- package/dist/tools/office/powerpoint-tools/sections.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/shapes.d.ts +2 -0
- package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/shapes.js +181 -45
- package/dist/tools/office/powerpoint-tools/shapes.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/slides.d.ts +4 -0
- package/dist/tools/office/powerpoint-tools/slides.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/slides.js +179 -15
- package/dist/tools/office/powerpoint-tools/slides.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/tables.d.ts +6 -0
- package/dist/tools/office/powerpoint-tools/tables.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/tables.js +239 -9
- package/dist/tools/office/powerpoint-tools/tables.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/text.d.ts +1 -0
- package/dist/tools/office/powerpoint-tools/text.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/text.js +98 -36
- package/dist/tools/office/powerpoint-tools/text.js.map +1 -1
- package/dist/tools/office/word-client.d.ts +36 -0
- package/dist/tools/office/word-client.d.ts.map +1 -1
- package/dist/tools/office/word-client.js +340 -0
- package/dist/tools/office/word-client.js.map +1 -1
- package/dist/tools/office/word-tools/find.d.ts +5 -0
- package/dist/tools/office/word-tools/find.d.ts.map +1 -0
- package/dist/tools/office/word-tools/find.js +106 -0
- package/dist/tools/office/word-tools/find.js.map +1 -0
- package/dist/tools/office/word-tools/footnotes.d.ts +9 -0
- package/dist/tools/office/word-tools/footnotes.d.ts.map +1 -0
- package/dist/tools/office/word-tools/footnotes.js +227 -0
- package/dist/tools/office/word-tools/footnotes.js.map +1 -0
- package/dist/tools/office/word-tools/index.d.ts +6 -0
- package/dist/tools/office/word-tools/index.d.ts.map +1 -1
- package/dist/tools/office/word-tools/index.js +18 -0
- package/dist/tools/office/word-tools/index.js.map +1 -1
- package/dist/tools/office/word-tools/selection.d.ts +8 -0
- package/dist/tools/office/word-tools/selection.d.ts.map +1 -0
- package/dist/tools/office/word-tools/selection.js +193 -0
- package/dist/tools/office/word-tools/selection.js.map +1 -0
- package/dist/tools/office/word-tools/tables-advanced.d.ts +8 -0
- package/dist/tools/office/word-tools/tables-advanced.d.ts.map +1 -0
- package/dist/tools/office/word-tools/tables-advanced.js +190 -0
- package/dist/tools/office/word-tools/tables-advanced.js.map +1 -0
- package/dist/tools/office/word-tools/toc.d.ts +6 -0
- package/dist/tools/office/word-tools/toc.d.ts.map +1 -0
- package/dist/tools/office/word-tools/toc.js +114 -0
- package/dist/tools/office/word-tools/toc.js.map +1 -0
- package/dist/tools/office/word-tools/track-changes.d.ts +8 -0
- package/dist/tools/office/word-tools/track-changes.d.ts.map +1 -0
- package/dist/tools/office/word-tools/track-changes.js +195 -0
- package/dist/tools/office/word-tools/track-changes.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { LLMClient } from '../../core/llm/llm-client.js';
|
|
2
2
|
import { Message, PlanningResult } from '../../types/index.js';
|
|
3
|
+
import { AskUserCallback } from '../../tools/llm/simple/user-interaction-tools.js';
|
|
3
4
|
export interface PlanningWithDocsResult extends PlanningResult {
|
|
4
5
|
docsSearchNeeded: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare class PlanningLLM {
|
|
7
8
|
private llmClient;
|
|
9
|
+
private askUserCallback;
|
|
8
10
|
constructor(llmClient: LLMClient);
|
|
9
|
-
|
|
11
|
+
setAskUserCallback(callback: AskUserCallback): void;
|
|
12
|
+
clearAskUserCallback(): void;
|
|
13
|
+
generateTODOList(userRequest: string, contextMessages?: Message[], onMessagesUpdate?: (messages: Message[]) => void): Promise<PlanningResult>;
|
|
10
14
|
generateTODOListWithDocsDecision(userRequest: string, contextMessages?: Message[]): Promise<PlanningWithDocsResult>;
|
|
11
15
|
private shouldSearchDocs;
|
|
12
16
|
private getDocsFolderStructure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAY,cAAc,EAAc,MAAM,sBAAsB,CAAC;AASrF,OAAO,EAEL,eAAe,EAChB,MAAM,kDAAkD,CAAC;AAK1D,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAOD,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,EAC3B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,GAC/C,OAAO,CAAC,cAAc,CAAC;IA2RpB,gCAAgC,CACpC,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,OAAO,EAAE,GAC1B,OAAO,CAAC,sBAAsB,CAAC;YA+CpB,gBAAgB;YA+DhB,sBAAsB;CA2CrC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -7,10 +7,19 @@ import { toolRegistry } from '../../tools/registry.js';
|
|
|
7
7
|
import { buildDocsSearchDecisionPrompt, parseDocsSearchDecision, DOCS_SEARCH_DECISION_RETRY_PROMPT, } from '../../prompts/agents/docs-search-decision.js';
|
|
8
8
|
export class PlanningLLM {
|
|
9
9
|
llmClient;
|
|
10
|
+
askUserCallback = null;
|
|
10
11
|
constructor(llmClient) {
|
|
11
12
|
this.llmClient = llmClient;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
+
setAskUserCallback(callback) {
|
|
15
|
+
logger.flow('Setting ask-user callback for Planning LLM');
|
|
16
|
+
this.askUserCallback = callback;
|
|
17
|
+
}
|
|
18
|
+
clearAskUserCallback() {
|
|
19
|
+
logger.flow('Clearing ask-user callback for Planning LLM');
|
|
20
|
+
this.askUserCallback = null;
|
|
21
|
+
}
|
|
22
|
+
async generateTODOList(userRequest, contextMessages, onMessagesUpdate) {
|
|
14
23
|
const toolSummary = toolRegistry.getToolSummaryForPlanning();
|
|
15
24
|
const optionalToolsInfo = toolRegistry.getEnabledOptionalToolsInfo();
|
|
16
25
|
const systemPrompt = buildPlanningSystemPrompt(toolSummary, optionalToolsInfo);
|
|
@@ -34,119 +43,176 @@ export class PlanningLLM {
|
|
|
34
43
|
const planningTools = toolRegistry.getLLMPlanningToolDefinitions();
|
|
35
44
|
const MAX_RETRIES = 3;
|
|
36
45
|
let lastError = null;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
while (true) {
|
|
47
|
+
let shouldContinueMainLoop = false;
|
|
48
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
49
|
+
try {
|
|
50
|
+
if (attempt > 1) {
|
|
51
|
+
messages.push({
|
|
52
|
+
role: 'user',
|
|
53
|
+
content: `[RETRY ${attempt}/${MAX_RETRIES}] ⚠️ CRITICAL: You are the PLANNING LLM, not the Execution LLM.
|
|
43
54
|
|
|
44
|
-
You have ONLY
|
|
45
|
-
1. '
|
|
46
|
-
2. '
|
|
55
|
+
You have ONLY 3 tools available:
|
|
56
|
+
1. 'ask_to_user' - To clarify ambiguous requirements (use FIRST if unclear)
|
|
57
|
+
2. 'create_todos' - For ANY action/implementation request
|
|
58
|
+
3. 'respond_to_user' - For pure knowledge questions/greetings only
|
|
47
59
|
|
|
48
60
|
❌ DO NOT use tools like 'write_todos', 'read_file', 'bash', etc. Those are for Execution LLM, NOT you.
|
|
49
61
|
❌ You saw those tools in conversation history, but they are NOT available to you.
|
|
50
62
|
|
|
51
63
|
Previous error: ${lastError?.message || 'Invalid response'}
|
|
52
64
|
|
|
53
|
-
Choose
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
const response = await this.llmClient.chatCompletion({
|
|
58
|
-
messages,
|
|
59
|
-
tools: planningTools,
|
|
60
|
-
tool_choice: 'required',
|
|
61
|
-
temperature: 0.7,
|
|
62
|
-
max_tokens: 2000,
|
|
63
|
-
});
|
|
64
|
-
const choicesCount = response.choices?.length ?? 0;
|
|
65
|
-
const message = response.choices?.[0]?.message;
|
|
66
|
-
const toolCalls = message?.tool_calls;
|
|
67
|
-
const finishReason = response.choices?.[0]?.finish_reason;
|
|
68
|
-
logger.debug('Planning LLM response', {
|
|
69
|
-
choicesCount,
|
|
70
|
-
hasMessage: !!message,
|
|
71
|
-
hasToolCalls: !!(toolCalls && toolCalls.length > 0),
|
|
72
|
-
hasContent: !!message?.content,
|
|
73
|
-
contentLength: message?.content?.length ?? 0,
|
|
74
|
-
finishReason,
|
|
75
|
-
toolCallsCount: toolCalls?.length ?? 0,
|
|
76
|
-
});
|
|
77
|
-
if (toolCalls && toolCalls.length > 0) {
|
|
78
|
-
const toolCall = toolCalls[0];
|
|
79
|
-
const toolName = toolCall.function?.name;
|
|
80
|
-
let toolArgs;
|
|
81
|
-
try {
|
|
82
|
-
toolArgs = JSON.parse(toolCall.function?.arguments || '{}');
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
logger.warn('Failed to parse tool arguments', { args: toolCall.function?.arguments, error });
|
|
86
|
-
lastError = error;
|
|
87
|
-
continue;
|
|
65
|
+
Choose one of your 3 tools now.`,
|
|
66
|
+
});
|
|
67
|
+
logger.warn(`Planning LLM retry attempt ${attempt}/${MAX_RETRIES}`, { lastError: lastError?.message });
|
|
88
68
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
69
|
+
const response = await this.llmClient.chatCompletion({
|
|
70
|
+
messages,
|
|
71
|
+
tools: planningTools,
|
|
72
|
+
tool_choice: 'required',
|
|
73
|
+
temperature: 0.7,
|
|
74
|
+
max_tokens: 2000,
|
|
75
|
+
});
|
|
76
|
+
const choicesCount = response.choices?.length ?? 0;
|
|
77
|
+
const message = response.choices?.[0]?.message;
|
|
78
|
+
const toolCalls = message?.tool_calls;
|
|
79
|
+
const finishReason = response.choices?.[0]?.finish_reason;
|
|
80
|
+
logger.debug('Planning LLM response', {
|
|
81
|
+
choicesCount,
|
|
82
|
+
hasMessage: !!message,
|
|
83
|
+
hasToolCalls: !!(toolCalls && toolCalls.length > 0),
|
|
84
|
+
hasContent: !!message?.content,
|
|
85
|
+
contentLength: message?.content?.length ?? 0,
|
|
86
|
+
finishReason,
|
|
87
|
+
toolCallsCount: toolCalls?.length ?? 0,
|
|
88
|
+
});
|
|
89
|
+
if (toolCalls && toolCalls.length > 0) {
|
|
90
|
+
const toolCall = toolCalls[0];
|
|
91
|
+
const toolName = toolCall.function?.name;
|
|
92
|
+
let toolArgs;
|
|
93
|
+
try {
|
|
94
|
+
toolArgs = JSON.parse(toolCall.function?.arguments || '{}');
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
logger.warn('Failed to parse tool arguments', { args: toolCall.function?.arguments, error });
|
|
98
|
+
lastError = error;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (toolName === 'ask_to_user') {
|
|
102
|
+
logger.flow('Planning LLM asking user for clarification');
|
|
103
|
+
const question = toolArgs.question;
|
|
104
|
+
const options = toolArgs.options;
|
|
105
|
+
if (!question || !Array.isArray(options) || options.length < 2) {
|
|
106
|
+
logger.warn('ask_to_user called with invalid parameters', { toolArgs });
|
|
107
|
+
lastError = new Error('ask_to_user requires a question and 2-4 options');
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (!this.askUserCallback) {
|
|
111
|
+
logger.warn('ask_to_user called but no callback is set, skipping to create_todos');
|
|
112
|
+
messages.push({
|
|
113
|
+
role: 'assistant',
|
|
114
|
+
content: `[Planning LLM attempted to ask: "${question}" but user interaction is not available. Proceeding with best judgment.]`,
|
|
115
|
+
});
|
|
116
|
+
shouldContinueMainLoop = true;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
93
119
|
try {
|
|
94
|
-
|
|
95
|
-
|
|
120
|
+
messages.push({
|
|
121
|
+
role: 'assistant',
|
|
122
|
+
content: `[Clarification needed] ${question}\nOptions: ${options.join(', ')}`,
|
|
123
|
+
});
|
|
124
|
+
const userResponse = await this.askUserCallback({ question, options });
|
|
125
|
+
const userAnswerText = userResponse.isOther && userResponse.customText
|
|
126
|
+
? userResponse.customText
|
|
127
|
+
: userResponse.selectedOption;
|
|
128
|
+
messages.push({
|
|
129
|
+
role: 'user',
|
|
130
|
+
content: `[User's answer] ${userAnswerText}`,
|
|
131
|
+
});
|
|
132
|
+
logger.flow('User responded to clarification question', {
|
|
133
|
+
question,
|
|
134
|
+
answer: userAnswerText,
|
|
135
|
+
isCustom: userResponse.isOther,
|
|
136
|
+
});
|
|
137
|
+
if (onMessagesUpdate) {
|
|
138
|
+
const historyMessages = messages.filter(m => m.role !== 'system');
|
|
139
|
+
onMessagesUpdate(historyMessages);
|
|
140
|
+
}
|
|
141
|
+
shouldContinueMainLoop = true;
|
|
142
|
+
break;
|
|
96
143
|
}
|
|
97
|
-
catch {
|
|
98
|
-
logger.
|
|
144
|
+
catch (error) {
|
|
145
|
+
logger.error('Error during ask_to_user', error);
|
|
146
|
+
lastError = error;
|
|
147
|
+
continue;
|
|
99
148
|
}
|
|
100
149
|
}
|
|
101
|
-
if (
|
|
102
|
-
logger.
|
|
103
|
-
|
|
104
|
-
|
|
150
|
+
if (toolName === 'create_todos') {
|
|
151
|
+
logger.flow('TODO list created via create_todos tool');
|
|
152
|
+
let rawTodos = toolArgs.todos;
|
|
153
|
+
if (typeof rawTodos === 'string') {
|
|
154
|
+
try {
|
|
155
|
+
rawTodos = JSON.parse(rawTodos);
|
|
156
|
+
logger.debug('Parsed string-wrapped todos array');
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
logger.warn('Failed to parse string todos as JSON', { todos: rawTodos });
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (!Array.isArray(rawTodos)) {
|
|
163
|
+
logger.warn('create_todos called with non-array todos', { toolArgs });
|
|
164
|
+
lastError = new Error('Planning LLM returned invalid todos format (expected array).');
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const todos = rawTodos.map((todo, index) => ({
|
|
168
|
+
id: todo.id || `todo-${Date.now()}-${index}`,
|
|
169
|
+
title: todo.title || 'Untitled task',
|
|
170
|
+
status: (index === 0 ? 'in_progress' : 'pending'),
|
|
171
|
+
}));
|
|
172
|
+
return {
|
|
173
|
+
todos,
|
|
174
|
+
complexity: toolArgs.complexity || 'moderate',
|
|
175
|
+
};
|
|
105
176
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (!response) {
|
|
120
|
-
logger.warn('respond_to_user called with empty response');
|
|
121
|
-
lastError = new Error('Planning LLM returned empty response.');
|
|
122
|
-
continue;
|
|
177
|
+
if (toolName === 'respond_to_user') {
|
|
178
|
+
logger.flow('Direct response via respond_to_user tool');
|
|
179
|
+
const responseText = toolArgs.response || '';
|
|
180
|
+
if (!responseText) {
|
|
181
|
+
logger.warn('respond_to_user called with empty response');
|
|
182
|
+
lastError = new Error('Planning LLM returned empty response.');
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
todos: [],
|
|
187
|
+
complexity: 'simple',
|
|
188
|
+
directResponse: responseText,
|
|
189
|
+
};
|
|
123
190
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
191
|
+
logger.warn(`Unknown tool called: ${toolName}`);
|
|
192
|
+
lastError = new Error(`Invalid tool "${toolName}". You only have 3 tools: ask_to_user, create_todos, or respond_to_user. Tools like write_todos are for Execution LLM, not Planning LLM.`);
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const contentOnly = message?.content;
|
|
196
|
+
if (contentOnly) {
|
|
197
|
+
logger.warn(`Planning LLM returned content without tool call (attempt ${attempt}/${MAX_RETRIES})`, {
|
|
198
|
+
contentPreview: contentOnly.substring(0, 100),
|
|
199
|
+
});
|
|
200
|
+
lastError = new Error('You MUST call one of your tools: ask_to_user, create_todos, or respond_to_user. Do NOT respond with plain text.');
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
logger.warn(`Planning LLM returned no tool call and no content (attempt ${attempt}/${MAX_RETRIES})`);
|
|
204
|
+
lastError = new Error('Planning LLM must use one of: ask_to_user, create_todos, or respond_to_user');
|
|
129
205
|
}
|
|
130
|
-
logger.warn(`Unknown tool called: ${toolName}`);
|
|
131
|
-
lastError = new Error(`Invalid tool "${toolName}". You only have 2 tools: create_todos or respond_to_user. Tools like write_todos are for Execution LLM, not Planning LLM.`);
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
const contentOnly = message?.content;
|
|
135
|
-
if (contentOnly) {
|
|
136
|
-
logger.warn(`Planning LLM returned content without tool call (attempt ${attempt}/${MAX_RETRIES})`, {
|
|
137
|
-
contentPreview: contentOnly.substring(0, 100),
|
|
138
|
-
});
|
|
139
|
-
lastError = new Error('You MUST call either create_todos or respond_to_user tool. Do NOT respond with plain text. Use the tools provided.');
|
|
140
206
|
}
|
|
141
|
-
|
|
142
|
-
logger.warn(`Planning LLM
|
|
143
|
-
lastError =
|
|
207
|
+
catch (error) {
|
|
208
|
+
logger.warn(`Planning LLM error (attempt ${attempt}/${MAX_RETRIES}):`, error);
|
|
209
|
+
lastError = error;
|
|
144
210
|
}
|
|
145
211
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
lastError = error;
|
|
212
|
+
if (shouldContinueMainLoop) {
|
|
213
|
+
continue;
|
|
149
214
|
}
|
|
215
|
+
break;
|
|
150
216
|
}
|
|
151
217
|
logger.warn('All planning retries exhausted, using fallback TODO', { lastError: lastError?.message });
|
|
152
218
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/planner/index.ts"],"names":[],"mappings":"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"}
|
|
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
|
@@ -4,5 +4,5 @@ export declare const CONFIG_FILE_PATH: string;
|
|
|
4
4
|
export declare const DOCS_DIR: string;
|
|
5
5
|
export declare const BACKUPS_DIR: string;
|
|
6
6
|
export declare const PROJECTS_DIR: string;
|
|
7
|
-
export declare const APP_VERSION = "
|
|
7
|
+
export declare const APP_VERSION = "4.0.0";
|
|
8
8
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -6,5 +6,5 @@ export const CONFIG_FILE_PATH = path.join(LOCAL_HOME_DIR, 'config.json');
|
|
|
6
6
|
export const DOCS_DIR = path.join(LOCAL_HOME_DIR, 'docs');
|
|
7
7
|
export const BACKUPS_DIR = path.join(LOCAL_HOME_DIR, 'backups');
|
|
8
8
|
export const PROJECTS_DIR = path.join(LOCAL_HOME_DIR, 'projects');
|
|
9
|
-
export const APP_VERSION = '
|
|
9
|
+
export const APP_VERSION = '4.0.0';
|
|
10
10
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning.d.ts","sourceRoot":"","sources":["../../../src/prompts/agents/planning.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"planning.d.ts","sourceRoot":"","sources":["../../../src/prompts/agents/planning.ts"],"names":[],"mappings":"AA2KA,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAW,GAAG,MAAM,CAarG;AAMD,eAAO,MAAM,sBAAsB,QAWlC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,21 +1,54 @@
|
|
|
1
1
|
import { LANGUAGE_PRIORITY_SHORT } from '../shared/language-rules.js';
|
|
2
|
-
const PLANNING_BASE_PROMPT = `You are a
|
|
2
|
+
const PLANNING_BASE_PROMPT = `You are a **Planning Agent** that creates task lists for a powerful Execution Agent.
|
|
3
3
|
|
|
4
4
|
${LANGUAGE_PRIORITY_SHORT}
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## YOUR ROLE
|
|
7
7
|
|
|
8
|
-
You are the
|
|
9
|
-
|
|
8
|
+
You are the **planner**, NOT the executor. Your job is to:
|
|
9
|
+
- **Understand** the user's requirements precisely
|
|
10
|
+
- **Clarify** ambiguous requests before planning
|
|
11
|
+
- **Create** a comprehensive TODO list for the Execution Agent
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
The **Execution Agent** (not you) has powerful capabilities:
|
|
14
|
+
- Execute ANY bash command (git, npm, python, docker, etc.)
|
|
15
|
+
- Read, create, edit, delete ANY files on the system
|
|
16
|
+
- Run builds, tests, deployments, and any workflow
|
|
17
|
+
- Browser automation, office document editing (if enabled)
|
|
18
|
+
- Access and control applications just like the user can
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
Since the Execution Agent can do almost anything a computer user can do, your job is to plan tasks that fully utilize its capabilities.
|
|
21
|
+
|
|
22
|
+
## YOUR MISSION
|
|
23
|
+
|
|
24
|
+
**Plan tasks so the Execution Agent can DO THE USER'S ENTIRE JOB, not just provide guidance or examples.**
|
|
25
|
+
|
|
26
|
+
- The user is using this system to get REAL WORK done
|
|
27
|
+
- Understand the user's actual working environment and context
|
|
28
|
+
- Create TODO lists that COMPLETE the work, not demonstrate how to do it
|
|
29
|
+
- Never plan for POC, examples, or partial solutions unless explicitly requested
|
|
30
|
+
|
|
31
|
+
## YOUR TOOLS
|
|
32
|
+
|
|
33
|
+
You have exactly THREE tools available:
|
|
14
34
|
|
|
15
35
|
⚠️ **CRITICAL**: You may see other tools (like 'write_todos', 'read_file', 'bash') in conversation history.
|
|
16
|
-
Those are for the **Execution LLM**, NOT for you.
|
|
36
|
+
Those are for the **Execution LLM**, NOT for you. You only have the 3 tools below.
|
|
37
|
+
|
|
38
|
+
### 1. ask_to_user (CLARIFICATION - USE FIRST IF NEEDED)
|
|
39
|
+
**Use this BEFORE creating TODOs when requirements are unclear.**
|
|
40
|
+
|
|
41
|
+
When to use:
|
|
42
|
+
- The request is vague or ambiguous
|
|
43
|
+
- Multiple interpretations are possible
|
|
44
|
+
- Critical decisions need user input (e.g., which approach to take)
|
|
45
|
+
- You need to understand the user's environment or constraints
|
|
46
|
+
- Missing information that affects how tasks should be done
|
|
47
|
+
|
|
48
|
+
You can call ask_to_user MULTIPLE TIMES to gather all necessary information.
|
|
49
|
+
**It's better to ask 3 questions and do it right than to guess and do it wrong.**
|
|
17
50
|
|
|
18
|
-
###
|
|
51
|
+
### 2. create_todos (PLANNING)
|
|
19
52
|
Use this when the request involves ANY action or implementation:
|
|
20
53
|
- Code implementation, modification, or refactoring
|
|
21
54
|
- Bug fixes or debugging
|
|
@@ -24,76 +57,98 @@ Use this when the request involves ANY action or implementation:
|
|
|
24
57
|
- Git operations (commit, push, branch, merge)
|
|
25
58
|
- Exploring or searching codebase
|
|
26
59
|
- Any task that requires ACTION, not just explanation
|
|
27
|
-
- Complex questions that require investigation or research
|
|
28
60
|
|
|
29
|
-
###
|
|
61
|
+
### 3. respond_to_user (DIRECT RESPONSE)
|
|
30
62
|
Use this ONLY for pure questions that need NO action:
|
|
31
|
-
- Pure knowledge questions (e.g., "What is a React hook?"
|
|
63
|
+
- Pure knowledge questions (e.g., "What is a React hook?")
|
|
32
64
|
- Simple greetings or casual conversation
|
|
33
|
-
-
|
|
34
|
-
- The user is clearly just asking for an explanation, not an action
|
|
65
|
+
- Conceptual explanations that don't require code/files
|
|
35
66
|
|
|
36
|
-
⚠️ **When in doubt
|
|
67
|
+
⚠️ **When in doubt between ask_to_user and create_todos, USE ask_to_user first.**
|
|
68
|
+
⚠️ **When in doubt between create_todos and respond_to_user, USE create_todos.**
|
|
37
69
|
|
|
38
70
|
## CRITICAL RULES
|
|
39
71
|
|
|
40
|
-
|
|
72
|
+
### Rule 1: CLARIFY BEFORE PLANNING
|
|
73
|
+
If the user's request has ANY ambiguity:
|
|
74
|
+
- Use ask_to_user to clarify requirements
|
|
75
|
+
- Ask about the user's environment, constraints, or preferences
|
|
76
|
+
- Don't assume - ASK
|
|
41
77
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
78
|
+
Examples of ambiguity that REQUIRE clarification:
|
|
79
|
+
- "Add authentication" → What type? OAuth? JWT? Session-based?
|
|
80
|
+
- "Fix the bug" → Which bug? What's the expected behavior?
|
|
81
|
+
- "Deploy the app" → Where? AWS? Vercel? Docker?
|
|
82
|
+
- "Make it faster" → Which part? What's the current bottleneck?
|
|
45
83
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
You MUST create new TODOs (via create_todos) or provide a direct response (via respond_to_user) for this new request.
|
|
84
|
+
### Rule 2: COMPLETE THE JOB, NOT A DEMO
|
|
85
|
+
**NEVER respond with POC, examples, or "here's how you could do it" unless explicitly asked.**
|
|
49
86
|
|
|
50
|
-
|
|
51
|
-
|
|
87
|
+
❌ WRONG: "Here's an example of how to implement login..."
|
|
88
|
+
✅ RIGHT: Create TODOs to actually implement login in the user's project
|
|
52
89
|
|
|
53
|
-
|
|
90
|
+
❌ WRONG: "You could use this approach for deployment..."
|
|
91
|
+
✅ RIGHT: Create TODOs to actually deploy the user's application
|
|
92
|
+
|
|
93
|
+
### Rule 3: UNDERSTAND THE CONTEXT
|
|
94
|
+
Before creating TODOs, consider:
|
|
95
|
+
- What is the user's actual project/environment?
|
|
96
|
+
- What files and structure already exist?
|
|
97
|
+
- What is the end goal the user is trying to achieve?
|
|
98
|
+
- What would a human colleague do to complete this job?
|
|
99
|
+
|
|
100
|
+
### Rule 4: NEW REQUEST HANDLING
|
|
101
|
+
When you see "[NEW REQUEST]" in the user message:
|
|
102
|
+
- This is a completely NEW task
|
|
103
|
+
- Ignore previous TODO completions
|
|
104
|
+
- Create fresh TODOs for this new request
|
|
105
|
+
|
|
106
|
+
## GUIDELINES
|
|
107
|
+
|
|
108
|
+
### For ask_to_user:
|
|
109
|
+
1. **Ask specific questions** - Not "what do you want?" but "Which database: PostgreSQL or MongoDB?"
|
|
110
|
+
2. **Provide clear options** - 2-4 distinct choices
|
|
111
|
+
3. **Ask one thing at a time** - Multiple calls are fine
|
|
112
|
+
4. **User's language** - Ask in the same language as the user
|
|
54
113
|
|
|
55
114
|
### For create_todos:
|
|
56
|
-
1. **1-5 high-level TODOs** -
|
|
57
|
-
2. **
|
|
58
|
-
3. **
|
|
59
|
-
4. **
|
|
115
|
+
1. **1-5 high-level TODOs** - Let Execution LLM handle details
|
|
116
|
+
2. **Complete the job** - Not POC or examples
|
|
117
|
+
3. **Actionable titles** - Clear what needs to be done
|
|
118
|
+
4. **Sequential order** - Execution order matters
|
|
119
|
+
5. **User's language** - Write titles in the user's language
|
|
60
120
|
|
|
61
121
|
### For respond_to_user:
|
|
62
|
-
1. **
|
|
63
|
-
2. **User's language** -
|
|
64
|
-
3. **Concise but complete** -
|
|
65
|
-
4. **Use examples** - If helpful for understanding
|
|
122
|
+
1. **Only for pure knowledge** - No action required
|
|
123
|
+
2. **User's language** - Respond in user's language
|
|
124
|
+
3. **Concise but complete** - Don't be verbose
|
|
66
125
|
|
|
67
|
-
##
|
|
126
|
+
## EXAMPLES
|
|
68
127
|
|
|
69
|
-
**
|
|
70
|
-
User: "
|
|
71
|
-
→ Use
|
|
128
|
+
**ask_to_user (ambiguous request):**
|
|
129
|
+
User: "Add authentication"
|
|
130
|
+
→ Use ask_to_user: "What type of authentication do you want?" with options: ["JWT token-based", "Session-based", "OAuth (Google/GitHub)", "Other"]
|
|
72
131
|
|
|
73
|
-
**
|
|
74
|
-
User: "
|
|
75
|
-
→ Use
|
|
132
|
+
**ask_to_user (missing context):**
|
|
133
|
+
User: "Deploy this app"
|
|
134
|
+
→ Use ask_to_user: "Where should I deploy?" with options: ["AWS EC2", "Vercel", "Docker container", "Other"]
|
|
76
135
|
|
|
77
|
-
**create_todos (
|
|
78
|
-
User: "
|
|
79
|
-
→ Use create_todos: ["
|
|
136
|
+
**create_todos (clear request):**
|
|
137
|
+
User: "Add a forgot password link to the login page"
|
|
138
|
+
→ Use create_todos: ["Find login page component", "Add forgot password link UI", "Connect to password reset page route"]
|
|
80
139
|
|
|
81
|
-
**create_todos (
|
|
82
|
-
User
|
|
83
|
-
→ Use create_todos: ["
|
|
140
|
+
**create_todos (after clarification):**
|
|
141
|
+
User asked for auth → You clarified → User chose "JWT"
|
|
142
|
+
→ Use create_todos: ["Implement JWT authentication middleware", "Create login/signup API endpoints", "Add token storage and refresh logic", "Apply middleware to protected routes"]
|
|
84
143
|
|
|
85
|
-
**
|
|
86
|
-
User: "
|
|
87
|
-
→ Use
|
|
144
|
+
**respond_to_user (pure knowledge):**
|
|
145
|
+
User: "What's the difference between JWT and session authentication?"
|
|
146
|
+
→ Use respond_to_user with explanation (no action needed)
|
|
88
147
|
|
|
89
|
-
**
|
|
90
|
-
User: "
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
**create_todos (even after similar completion):**
|
|
94
|
-
User: [Previous TODO: "build project" - completed]
|
|
95
|
-
User: "branching.md에 따라 build하고 push"
|
|
96
|
-
→ Use create_todos: NEW tasks for this NEW request, don't assume already done
|
|
148
|
+
**WRONG vs RIGHT:**
|
|
149
|
+
User: "Write test code for this"
|
|
150
|
+
❌ WRONG: respond_to_user with "Here's an example of how to write tests..."
|
|
151
|
+
✅ RIGHT: ask_to_user "Which part should I write tests for?" or create_todos if context is clear
|
|
97
152
|
`;
|
|
98
153
|
export function buildPlanningSystemPrompt(toolSummary, optionalToolsInfo = '') {
|
|
99
154
|
const toolSection = `
|
|
@@ -103,6 +158,8 @@ The Execution LLM has access to the following tools:
|
|
|
103
158
|
|
|
104
159
|
${toolSummary}
|
|
105
160
|
${optionalToolsInfo}
|
|
161
|
+
|
|
162
|
+
**Plan tasks that fully leverage these tools to deliver the most complete and professional results possible.**
|
|
106
163
|
`;
|
|
107
164
|
return PLANNING_BASE_PROMPT + toolSection;
|
|
108
165
|
}
|
|
@@ -110,10 +167,13 @@ export const PLANNING_SYSTEM_PROMPT = PLANNING_BASE_PROMPT + `
|
|
|
110
167
|
## Available Tools for Execution LLM
|
|
111
168
|
|
|
112
169
|
The Execution LLM has access to powerful tools including:
|
|
113
|
-
- \`bash\` - Run
|
|
170
|
+
- \`bash\` - Run ANY shell command (git, npm, python, docker, curl, etc.)
|
|
114
171
|
- \`read_file\` / \`create_file\` / \`edit_file\` - Full file system access
|
|
115
172
|
- \`list_files\` / \`find_files\` - Search and explore codebase
|
|
173
|
+
- \`tell_to_user\` - Communicate with user during execution
|
|
116
174
|
- And more...
|
|
175
|
+
|
|
176
|
+
The Execution LLM can do almost anything a computer user can do on this system.
|
|
117
177
|
`;
|
|
118
178
|
export default PLANNING_SYSTEM_PROMPT;
|
|
119
179
|
//# sourceMappingURL=planning.js.map
|