hanseol-dev 5.0.9-dev.0 → 5.0.9-dev.10
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/common/sub-agent.d.ts.map +1 -1
- package/dist/agents/common/sub-agent.js +2 -0
- package/dist/agents/common/sub-agent.js.map +1 -1
- package/dist/agents/planner/index.d.ts.map +1 -1
- package/dist/agents/planner/index.js +12 -2
- package/dist/agents/planner/index.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/orchestration/plan-executor.d.ts.map +1 -1
- package/dist/orchestration/plan-executor.js +7 -2
- package/dist/orchestration/plan-executor.js.map +1 -1
- package/dist/pipe/pipe-runner.d.ts +3 -1
- package/dist/pipe/pipe-runner.d.ts.map +1 -1
- package/dist/pipe/pipe-runner.js +117 -30
- package/dist/pipe/pipe-runner.js.map +1 -1
- package/dist/prompts/agents/planning.d.ts.map +1 -1
- package/dist/prompts/agents/planning.js +52 -23
- package/dist/prompts/agents/planning.js.map +1 -1
- package/dist/prompts/system/plan-execute.d.ts +1 -1
- package/dist/prompts/system/plan-execute.d.ts.map +1 -1
- package/dist/prompts/system/plan-execute.js +61 -7
- package/dist/prompts/system/plan-execute.js.map +1 -1
- package/dist/tools/llm/simple/background-bash-tool.js +1 -1
- package/dist/tools/llm/simple/background-bash-tool.js.map +1 -1
- package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +1 -1
- package/dist/tools/llm/simple/background-powershell-tool.js +11 -14
- package/dist/tools/llm/simple/background-powershell-tool.js.map +1 -1
- package/dist/utils/platform-utils.d.ts.map +1 -1
- package/dist/utils/platform-utils.js +2 -1
- package/dist/utils/platform-utils.js.map +1 -1
- package/package.json +1 -3
package/dist/pipe/pipe-runner.js
CHANGED
|
@@ -8,6 +8,14 @@ import { setSubAgentToolCallLogger, setSubAgentPhaseLogger } from '../agents/com
|
|
|
8
8
|
function log(msg) {
|
|
9
9
|
process.stderr.write(msg + '\n');
|
|
10
10
|
}
|
|
11
|
+
function ts() {
|
|
12
|
+
return chalk.gray(`[${new Date().toISOString().slice(11, 23)}]`);
|
|
13
|
+
}
|
|
14
|
+
function truncate(s, max = 1000) {
|
|
15
|
+
if (s.length <= max)
|
|
16
|
+
return s;
|
|
17
|
+
return s.slice(0, max) + chalk.gray(` ...(${s.length - max} chars truncated)`);
|
|
18
|
+
}
|
|
11
19
|
export class PipeRunner {
|
|
12
20
|
specific;
|
|
13
21
|
llmClient = null;
|
|
@@ -15,6 +23,7 @@ export class PipeRunner {
|
|
|
15
23
|
lastResponse = '';
|
|
16
24
|
todos = [];
|
|
17
25
|
prompt = '';
|
|
26
|
+
toolCallTimers = new Map();
|
|
18
27
|
constructor(specific) {
|
|
19
28
|
this.specific = specific;
|
|
20
29
|
this.planExecutor = new PlanExecutor();
|
|
@@ -23,18 +32,24 @@ export class PipeRunner {
|
|
|
23
32
|
this.prompt = prompt;
|
|
24
33
|
try {
|
|
25
34
|
if (this.specific) {
|
|
26
|
-
setSubAgentToolCallLogger((_appName, toolName, args,
|
|
27
|
-
const summary = this.
|
|
35
|
+
setSubAgentToolCallLogger((_appName, toolName, args, resultText, success, iteration, totalCalls) => {
|
|
36
|
+
const summary = this.formatToolArgs(toolName, args);
|
|
28
37
|
const prefix = ` [${iteration}/${totalCalls}]`;
|
|
29
38
|
if (success) {
|
|
30
|
-
log(chalk.dim(`${prefix} → ${toolName} ${summary}`));
|
|
39
|
+
log(chalk.dim(`${prefix} ${ts()} → ${chalk.blue(toolName)} ${summary}`));
|
|
40
|
+
if (resultText) {
|
|
41
|
+
log(chalk.dim(`${prefix} ← ${truncate(resultText, 500)}`));
|
|
42
|
+
}
|
|
31
43
|
}
|
|
32
44
|
else {
|
|
33
|
-
log(chalk.red(`${prefix} → ${toolName} ${summary} FAILED`));
|
|
45
|
+
log(chalk.red(`${prefix} ${ts()} → ${toolName} ${summary} FAILED`));
|
|
46
|
+
if (resultText) {
|
|
47
|
+
log(chalk.red(`${prefix} ← ${truncate(resultText, 500)}`));
|
|
48
|
+
}
|
|
34
49
|
}
|
|
35
50
|
});
|
|
36
51
|
setSubAgentPhaseLogger((appName, phase, detail) => {
|
|
37
|
-
log(chalk.yellow(` [${appName}:${phase}] ${detail}`));
|
|
52
|
+
log(chalk.yellow(` ${ts()} [${appName}:${phase}] ${detail}`));
|
|
38
53
|
});
|
|
39
54
|
}
|
|
40
55
|
await configManager.initialize();
|
|
@@ -45,10 +60,27 @@ export class PipeRunner {
|
|
|
45
60
|
process.exit(1);
|
|
46
61
|
}
|
|
47
62
|
this.llmClient = new LLMClient(creds.token);
|
|
63
|
+
if (this.specific) {
|
|
64
|
+
const endpoint = configManager.getCurrentEndpoint();
|
|
65
|
+
const model = configManager.getCurrentModel();
|
|
66
|
+
log(chalk.cyan(`\n${'═'.repeat(80)}`));
|
|
67
|
+
log(chalk.cyan(` Pipe Mode (-ps) | Model: ${model?.name || 'unknown'} | Endpoint: ${endpoint?.name || 'unknown'}`));
|
|
68
|
+
log(chalk.cyan(` Prompt: ${truncate(prompt, 200)}`));
|
|
69
|
+
log(chalk.cyan(`${'═'.repeat(80)}\n`));
|
|
70
|
+
}
|
|
48
71
|
const messages = [];
|
|
49
72
|
const isInterruptedRef = { current: false };
|
|
50
73
|
const callbacks = this.createCallbacks();
|
|
74
|
+
const startTime = Date.now();
|
|
51
75
|
await this.planExecutor.executeAutoMode(prompt, this.llmClient, messages, this.todos, isInterruptedRef, callbacks);
|
|
76
|
+
if (this.specific) {
|
|
77
|
+
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
78
|
+
const completed = this.todos.filter(t => t.status === 'completed').length;
|
|
79
|
+
const failed = this.todos.filter(t => t.status === 'failed').length;
|
|
80
|
+
log(chalk.cyan(`\n${'═'.repeat(80)}`));
|
|
81
|
+
log(chalk.cyan(` Done in ${elapsed}s | TODOs: ${completed} completed, ${failed} failed / ${this.todos.length} total`));
|
|
82
|
+
log(chalk.cyan(`${'═'.repeat(80)}\n`));
|
|
83
|
+
}
|
|
52
84
|
if (this.lastResponse) {
|
|
53
85
|
console.log(this.lastResponse);
|
|
54
86
|
}
|
|
@@ -73,29 +105,27 @@ export class PipeRunner {
|
|
|
73
105
|
for (const todo of newTodos) {
|
|
74
106
|
const existing = this.todos.find(t => t.id === todo.id);
|
|
75
107
|
if (!existing) {
|
|
76
|
-
log(chalk.dim(` #${newTodos.indexOf(todo) + 1} ${todo.title}`));
|
|
108
|
+
log(chalk.dim(` ${ts()} #${newTodos.indexOf(todo) + 1} ${todo.title}`));
|
|
77
109
|
}
|
|
78
110
|
else if (existing.status !== todo.status) {
|
|
79
111
|
if (todo.status === 'in_progress') {
|
|
80
|
-
log(chalk.cyan(`\n[Executing] #${newTodos.indexOf(todo) + 1} ${todo.title}`));
|
|
112
|
+
log(chalk.cyan(`\n${ts()} ${chalk.bold(`[Executing] #${newTodos.indexOf(todo) + 1} ${todo.title}`)}`));
|
|
81
113
|
}
|
|
82
114
|
else if (todo.status === 'completed') {
|
|
83
|
-
log(chalk.green(` ✓ ${todo.title}`));
|
|
115
|
+
log(chalk.green(` ${ts()} ✓ ${todo.title}`));
|
|
84
116
|
}
|
|
85
117
|
else if (todo.status === 'failed') {
|
|
86
|
-
log(chalk.red(` ✗ ${todo.title}`));
|
|
118
|
+
log(chalk.red(` ${ts()} ✗ ${todo.title}`));
|
|
87
119
|
}
|
|
88
120
|
}
|
|
89
121
|
}
|
|
90
|
-
if (this.todos.length === 0 && newTodos.length > 0) {
|
|
91
|
-
}
|
|
92
122
|
}
|
|
93
123
|
this.todos = newTodos;
|
|
94
124
|
},
|
|
95
125
|
setCurrentTodoId: () => { },
|
|
96
126
|
setExecutionPhase: (phase) => {
|
|
97
127
|
if (this.specific && phase === 'planning') {
|
|
98
|
-
log(chalk.yellow(
|
|
128
|
+
log(chalk.yellow(`\n${ts()} [Planning] TODO 생성 중...`));
|
|
99
129
|
}
|
|
100
130
|
},
|
|
101
131
|
setIsInterrupted: () => { },
|
|
@@ -117,22 +147,36 @@ export class PipeRunner {
|
|
|
117
147
|
this.lastResponse = args['message'];
|
|
118
148
|
}
|
|
119
149
|
if (this.specific) {
|
|
120
|
-
const
|
|
121
|
-
|
|
150
|
+
const toolName = toolCall.function.name;
|
|
151
|
+
const formatted = this.formatToolArgs(toolName, args);
|
|
152
|
+
log(` ${ts()} ${chalk.blue('→')} ${chalk.bold(toolName)} ${formatted}`);
|
|
153
|
+
this.toolCallTimers.set(toolCall.id || toolName, Date.now());
|
|
122
154
|
}
|
|
123
155
|
}
|
|
124
156
|
}
|
|
125
157
|
if (this.specific && msg.role === 'tool') {
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
158
|
+
const content = msg.content || '';
|
|
159
|
+
const isError = content.startsWith('Error:') || content.startsWith('error:');
|
|
160
|
+
const toolCallId = msg['tool_call_id'];
|
|
161
|
+
const elapsed = toolCallId && this.toolCallTimers.has(toolCallId)
|
|
162
|
+
? `${Date.now() - this.toolCallTimers.get(toolCallId)}ms`
|
|
163
|
+
: '';
|
|
164
|
+
if (toolCallId)
|
|
165
|
+
this.toolCallTimers.delete(toolCallId);
|
|
166
|
+
const elapsedStr = elapsed ? chalk.gray(` (${elapsed})`) : '';
|
|
167
|
+
if (isError) {
|
|
168
|
+
log(chalk.red(` ${ts()} ← ERROR${elapsedStr}: ${truncate(content, 500)}`));
|
|
129
169
|
}
|
|
130
170
|
else {
|
|
131
|
-
|
|
171
|
+
const preview = this.formatToolResult(content);
|
|
172
|
+
log(chalk.dim(` ${ts()} ← OK${elapsedStr}${preview ? ': ' + preview : ''}`));
|
|
132
173
|
}
|
|
133
174
|
}
|
|
134
175
|
if (msg.role === 'assistant' && !msg.tool_calls && msg.content) {
|
|
135
176
|
this.lastResponse = msg.content;
|
|
177
|
+
if (this.specific) {
|
|
178
|
+
log(chalk.white(` ${ts()} ${chalk.bold('[Agent Response]')} ${truncate(msg.content, 500)}`));
|
|
179
|
+
}
|
|
136
180
|
}
|
|
137
181
|
}
|
|
138
182
|
previousMessages = newMessages;
|
|
@@ -170,37 +214,80 @@ Reply in Korean. No explanation, just the answer.`,
|
|
|
170
214
|
const partial = !exact ? request.options.find(o => answer.includes(o) || o.includes(answer)) : undefined;
|
|
171
215
|
const selected = exact ?? partial ?? request.options[0] ?? '';
|
|
172
216
|
if (this.specific) {
|
|
173
|
-
log(chalk.magenta(` [Auto] Q: ${request.question} → A: ${selected}`));
|
|
217
|
+
log(chalk.magenta(` ${ts()} [Auto] Q: ${request.question} → A: ${selected}`));
|
|
174
218
|
}
|
|
175
219
|
return { selectedOption: selected, isOther: false };
|
|
176
220
|
}
|
|
177
221
|
if (this.specific) {
|
|
178
|
-
log(chalk.magenta(` [Auto] Q: ${request.question} → A: ${answer || 'Yes'}`));
|
|
222
|
+
log(chalk.magenta(` ${ts()} [Auto] Q: ${request.question} → A: ${answer || 'Yes'}`));
|
|
179
223
|
}
|
|
180
224
|
return { selectedOption: answer || 'Yes', isOther: true };
|
|
181
225
|
}
|
|
182
226
|
catch {
|
|
183
227
|
const fallback = request.options[0] || 'Yes';
|
|
184
228
|
if (this.specific) {
|
|
185
|
-
log(chalk.magenta(` [Auto] Q: ${request.question} → A: ${fallback} (fallback)`));
|
|
229
|
+
log(chalk.magenta(` ${ts()} [Auto] Q: ${request.question} → A: ${fallback} (fallback)`));
|
|
186
230
|
}
|
|
187
231
|
return { selectedOption: fallback, isOther: false };
|
|
188
232
|
}
|
|
189
233
|
}
|
|
190
|
-
|
|
191
|
-
if (toolName === 'bash' && args['command'])
|
|
192
|
-
return String(args['command'])
|
|
193
|
-
|
|
234
|
+
formatToolArgs(toolName, args) {
|
|
235
|
+
if (toolName === 'bash' && args['command']) {
|
|
236
|
+
return chalk.yellow(String(args['command']));
|
|
237
|
+
}
|
|
238
|
+
if (toolName === 'read_file' && args['path']) {
|
|
239
|
+
return String(args['path']);
|
|
240
|
+
}
|
|
241
|
+
if (toolName === 'create_file' && args['path']) {
|
|
242
|
+
const content = args['content'] ? String(args['content']) : '';
|
|
243
|
+
return `${args['path']} (${content.length} chars)`;
|
|
244
|
+
}
|
|
245
|
+
if (toolName === 'edit_file' && args['path']) {
|
|
246
|
+
const old_text = args['old_text'] ? String(args['old_text']).slice(0, 80) : '';
|
|
247
|
+
return `${args['path']} "${old_text}..."`;
|
|
248
|
+
}
|
|
249
|
+
if (toolName === 'list_files' && args['path']) {
|
|
194
250
|
return String(args['path']);
|
|
195
|
-
|
|
196
|
-
|
|
251
|
+
}
|
|
252
|
+
if (toolName === 'find_files' && args['pattern']) {
|
|
253
|
+
return `pattern=${args['pattern']}${args['path'] ? ` in ${args['path']}` : ''}`;
|
|
254
|
+
}
|
|
255
|
+
if (toolName === 'search_content' && args['query']) {
|
|
256
|
+
return `"${args['query']}"${args['path'] ? ` in ${args['path']}` : ''}`;
|
|
257
|
+
}
|
|
258
|
+
if (toolName === 'final_response' && args['message']) {
|
|
259
|
+
return truncate(String(args['message']), 200);
|
|
260
|
+
}
|
|
261
|
+
if (toolName === 'tell_to_user' && args['message']) {
|
|
262
|
+
return truncate(String(args['message']), 200);
|
|
263
|
+
}
|
|
264
|
+
if (toolName === 'ask_to_user' && args['question']) {
|
|
265
|
+
return `Q: ${truncate(String(args['question']), 150)}`;
|
|
266
|
+
}
|
|
267
|
+
if (toolName === 'create_todos' && args['todos']) {
|
|
268
|
+
const todos = args['todos'];
|
|
269
|
+
return `${todos.length} TODOs`;
|
|
270
|
+
}
|
|
197
271
|
const keys = Object.keys(args);
|
|
198
272
|
if (keys.length === 0)
|
|
199
273
|
return '';
|
|
200
|
-
|
|
201
|
-
|
|
274
|
+
try {
|
|
275
|
+
const compact = JSON.stringify(args);
|
|
276
|
+
return truncate(compact, 200);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
202
279
|
return '';
|
|
203
|
-
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
formatToolResult(content) {
|
|
283
|
+
if (!content)
|
|
284
|
+
return '';
|
|
285
|
+
const lines = content.split('\n');
|
|
286
|
+
if (lines.length > 3) {
|
|
287
|
+
const firstLine = lines[0].slice(0, 100);
|
|
288
|
+
return `${firstLine} (${lines.length} lines)`;
|
|
289
|
+
}
|
|
290
|
+
return truncate(content.replace(/\n/g, ' '), 200);
|
|
204
291
|
}
|
|
205
292
|
}
|
|
206
293
|
export async function runPipeMode(prompt, specific) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe-runner.js","sourceRoot":"","sources":["../../src/pipe/pipe-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipe-runner.js","sourceRoot":"","sources":["../../src/pipe/pipe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAmVA,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAW,GAAG,MAAM,CAarG;AAMD,eAAO,MAAM,sBAAsB,QAWlC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -100,8 +100,9 @@ When to use:
|
|
|
100
100
|
- You need to understand the user's environment or constraints
|
|
101
101
|
- Missing information that affects how tasks should be done
|
|
102
102
|
|
|
103
|
-
You can call ask_to_user
|
|
104
|
-
|
|
103
|
+
You can call ask_to_user to gather necessary information, but **limit to 2 clarification rounds maximum**.
|
|
104
|
+
After 2 rounds, proceed with your best judgment. Over-clarifying wastes time.
|
|
105
|
+
**Only ask when the answer genuinely cannot be inferred from the files in the working directory.**
|
|
105
106
|
|
|
106
107
|
### 2. create_todos (PLANNING)
|
|
107
108
|
Use this when the request involves ANY action or implementation:
|
|
@@ -140,7 +141,7 @@ Use this ONLY for pure questions that need NO action:
|
|
|
140
141
|
\`\`\`
|
|
141
142
|
|
|
142
143
|
\`\`\`json
|
|
143
|
-
{"name": "ask_to_user", "arguments": {"question": "Which implementation approach?", "options": ["JWT
|
|
144
|
+
{"name": "ask_to_user", "arguments": {"question": "Which implementation approach?", "options": ["JWT token-based", "Session-based", "OAuth (Google/GitHub)"]}}
|
|
144
145
|
\`\`\`
|
|
145
146
|
|
|
146
147
|
\`\`\`json
|
|
@@ -149,17 +150,18 @@ Use this ONLY for pure questions that need NO action:
|
|
|
149
150
|
|
|
150
151
|
## CRITICAL RULES
|
|
151
152
|
|
|
152
|
-
### Rule 1:
|
|
153
|
-
If the user's request has ANY ambiguity:
|
|
154
|
-
- Use ask_to_user to clarify requirements
|
|
155
|
-
- Ask about the user's environment, constraints, or preferences
|
|
156
|
-
- Don't assume - ASK
|
|
153
|
+
### Rule 1: ACT FIRST, ASK ONLY WHEN TRULY AMBIGUOUS
|
|
157
154
|
|
|
158
|
-
|
|
155
|
+
**The working directory ALWAYS contains the relevant source files.** Never ask where files are — the Execution Agent will find them.
|
|
156
|
+
|
|
157
|
+
Only use ask_to_user when there are genuinely multiple valid approaches AND the choice significantly affects the result:
|
|
159
158
|
- "Add authentication" → What type? OAuth? JWT? Session-based?
|
|
160
|
-
- "Fix the bug" → Which bug? What's the expected behavior?
|
|
161
159
|
- "Deploy the app" → Where? AWS? Vercel? Docker?
|
|
162
|
-
|
|
160
|
+
|
|
161
|
+
Do NOT ask about:
|
|
162
|
+
- File locations (they're in the working directory)
|
|
163
|
+
- Language/framework (read the existing code to determine)
|
|
164
|
+
- Scope (do everything the user asked)
|
|
163
165
|
|
|
164
166
|
### Rule 2: COMPLETE THE JOB, NOT A DEMO
|
|
165
167
|
**NEVER respond with POC, examples, or "here's how you could do it" unless explicitly asked.**
|
|
@@ -185,19 +187,44 @@ Before creating TODOs, consider:
|
|
|
185
187
|
- If a simpler approach exists, propose it first
|
|
186
188
|
- If you have assumptions, state them explicitly in the TODO description
|
|
187
189
|
|
|
188
|
-
### Rule 5:
|
|
190
|
+
### Rule 5: TASK TYPE → ACTION MAPPING (CRITICAL)
|
|
191
|
+
|
|
192
|
+
**The user expects FILE CHANGES as output.** Text-only responses are NEVER acceptable.
|
|
193
|
+
|
|
194
|
+
When the user asks to "analyze" or "suggest improvements":
|
|
195
|
+
→ This means **OPTIMIZE THE CODE**. Read the source, find O(n²)/O(n³) algorithms, redundant computations, etc., then REWRITE the functions with better algorithms. Do NOT write a report. CHANGE THE CODE.
|
|
196
|
+
|
|
197
|
+
When the user asks to "review":
|
|
198
|
+
→ This means **CREATE REVIEW.md** with issues found AND **FIX critical bugs** in the changed code.
|
|
199
|
+
|
|
200
|
+
When the user asks to "write tests":
|
|
201
|
+
→ This means **CREATE/EDIT test files** with actual executable test code. Cover every public function.
|
|
202
|
+
|
|
203
|
+
When the user asks to "refactor":
|
|
204
|
+
→ This means **REWRITE the source files** with improved structure. Same behavior, better code.
|
|
205
|
+
|
|
206
|
+
When the user asks to "fix":
|
|
207
|
+
→ This means **EDIT the source files** to fix ALL instances of the bug.
|
|
208
|
+
|
|
209
|
+
**ANTI-PATTERN: Do NOT create TODOs that only READ files (e.g., "analyze code", "investigate structure", "identify issues"). Every TODO must include a WRITE action (create_file or edit_file). Merge read-only steps into the TODO that writes.**
|
|
210
|
+
|
|
211
|
+
**ANTI-PATTERN: Do NOT create a TODO for "write report" when the user asked for code analysis/optimization. The output should be OPTIMIZED CODE, not a report.**
|
|
189
212
|
|
|
190
|
-
|
|
213
|
+
### Rule 6: SCOPE CONTROL — Right-sized TODOs
|
|
191
214
|
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
215
|
+
- **Scale TODOs to complexity:** 1 TODO for simple tasks, up to 1 TODO per file/component for complex multi-file tasks. Each TODO must produce at least one file change.
|
|
216
|
+
- **NEVER split "read" and "modify" into separate TODOs.** The Execution Agent reads files AS PART of modifying them.
|
|
217
|
+
- **NEVER create TODOs for:** investigating project structure, analyzing code, checking current state — these are implicit in every task.
|
|
218
|
+
- **NEVER create a separate "verification" TODO.** Verification (build, test, syntax check) must be part of the implementation TODO that produces the change. A separate verification TODO wastes time budget.
|
|
219
|
+
- Bad: 4 TODOs (investigate → analyze → identify → write). Good: 1 TODO (analyze code and implement optimizations).
|
|
220
|
+
- Bad: 2 TODOs (implement + verify). Good: 1 TODO (implement and verify with build/test).
|
|
221
|
+
- Good for multi-file: 3 TODOs (file1 refactor+verify, file2 refactor+verify, file3 refactor+verify).
|
|
195
222
|
|
|
196
223
|
This does NOT conflict with Enterprise Quality:
|
|
197
224
|
- Error handling/edge cases for the feature you're building → YES ✅
|
|
198
225
|
- Adding unrequested features/refactoring → NO ❌
|
|
199
226
|
|
|
200
|
-
### Rule
|
|
227
|
+
### Rule 7: SUCCESS CRITERIA
|
|
201
228
|
|
|
202
229
|
**Each TODO must embed how to verify completion.**
|
|
203
230
|
|
|
@@ -206,7 +233,7 @@ This does NOT conflict with Enterprise Quality:
|
|
|
206
233
|
|
|
207
234
|
You should be able to judge "done or not" from the TODO title alone.
|
|
208
235
|
|
|
209
|
-
### Rule
|
|
236
|
+
### Rule 8: MESSAGE STRUCTURE
|
|
210
237
|
Messages use XML tags to separate context:
|
|
211
238
|
- \`<CONVERSATION_HISTORY>\`: Previous conversation (user messages, assistant responses, tool calls/results in chronological order). This is READ-ONLY context.
|
|
212
239
|
- \`<CURRENT_REQUEST>\`: The NEW request you must plan for NOW.
|
|
@@ -224,11 +251,13 @@ Do NOT re-plan tasks from history. Create fresh TODOs for the current request.
|
|
|
224
251
|
|
|
225
252
|
### For create_todos:
|
|
226
253
|
1. **Write detailed, specific TODOs** — Clearly describe what to do and how for each TODO. No vague titles.
|
|
227
|
-
2. **
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
-
|
|
231
|
-
-
|
|
254
|
+
2. **Embed verification IN each TODO** — Do NOT create separate verification TODOs. Each TODO should end with its own lightweight check:
|
|
255
|
+
- Python → \`python3 file.py\` or \`python3 -c "import module"\`
|
|
256
|
+
- JS/TS → \`node file.js\` or \`node --check file.js\`
|
|
257
|
+
- C/C++ → \`gcc file.c && ./a.out\` or \`make\`
|
|
258
|
+
- Go → \`go build\`
|
|
259
|
+
- General → read the modified file back to confirm
|
|
260
|
+
- **Do NOT plan for:** \`npx playwright install\`, \`npm install\` (large deps), starting servers, browser tests — these are too slow
|
|
232
261
|
3. **Enterprise quality standards** — Plan for error handling, edge cases, and consistency with existing code
|
|
233
262
|
4. **Order matters** — Place dependent tasks in correct order
|
|
234
263
|
5. **Write titles in user's language** (default Korean, switch only when user inputs in another language)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../src/prompts/agents/planning.ts"],"names":[],"mappings":"AAaA,MAAM,oBAAoB,GAAG
|
|
1
|
+
{"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../src/prompts/agents/planning.ts"],"names":[],"mappings":"AAaA,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+T5B,CAAC;AAOF,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,oBAA4B,EAAE;IAC3F,MAAM,WAAW,GAAG;;;;;EAKpB,WAAW;EACX,iBAAiB;;;CAGlB,CAAC;IAEA,OAAO,oBAAoB,GAAG,WAAW,CAAC;AAC5C,CAAC;AAMD,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,GAAG;;;;;;;;;;;CAW5D,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const PLAN_EXECUTE_SYSTEM_PROMPT: string;
|
|
2
2
|
export declare const VISION_VERIFICATION_RULE = "## CRITICAL: Screenshot Verification\n\n**When the result is visually verifiable (UI, web page, chart, document, etc.), you MUST take a screenshot of the final result and verify it visually.**\n- Use the appropriate screenshot tool (e.g., `excel_screenshot`, `word_screenshot`, `browser_screenshot`)\n- The screenshot tool returns the saved file path \u2014 use that EXACT path as `file_path` in `read_image`\n- Do NOT search for or guess the screenshot path \u2014 always use the path returned by the screenshot tool\n- Do NOT assume the visual output is correct \u2014 always confirm with your own eyes\n- This applies to: web pages, generated images, UI components, documents, charts, diagrams";
|
|
3
|
-
export declare function getCriticalReminders(hasVision: boolean): string;
|
|
3
|
+
export declare function getCriticalReminders(hasVision: boolean, cwd?: string): string;
|
|
4
4
|
export declare const CRITICAL_REMINDERS: string;
|
|
5
5
|
export default PLAN_EXECUTE_SYSTEM_PROMPT;
|
|
6
6
|
//# sourceMappingURL=plan-execute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-execute.d.ts","sourceRoot":"","sources":["../../../src/prompts/system/plan-execute.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"plan-execute.d.ts","sourceRoot":"","sources":["../../../src/prompts/system/plan-execute.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,0BAA0B,QAqOtC,CAAC;AAMF,eAAO,MAAM,wBAAwB,6rBAOsD,CAAC;AAS5F,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA0B7E;AAGD,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAE9D,eAAe,0BAA0B,CAAC"}
|
|
@@ -68,6 +68,44 @@ ${TOOL_CALL_FORMAT_GUIDE}
|
|
|
68
68
|
2. **Use tools** — Perform actual work, don't just describe
|
|
69
69
|
3. **Stay focused** — Only work on TODOs, no unrelated features
|
|
70
70
|
|
|
71
|
+
### PRECISION — Field-level accuracy over file-level replacement
|
|
72
|
+
|
|
73
|
+
- When editing structured files (JSON, YAML, config), edit ONLY the specific fields/values that need changing. NEVER replace the entire file content — you will lose fields that should be preserved.
|
|
74
|
+
- For merge conflicts: examine BOTH sides field-by-field. Take specific values from each side as instructed. Do NOT copy one entire side.
|
|
75
|
+
- For cherry-pick/migration: preserve target branch's branding/config values while taking source branch's feature code.
|
|
76
|
+
- When in doubt, read the file first and plan which exact lines to change.
|
|
77
|
+
|
|
78
|
+
### EFFICIENCY — Minimize tool calls and execution time
|
|
79
|
+
|
|
80
|
+
- Combine related bash commands with \`&&\` instead of separate tool calls.
|
|
81
|
+
- Batch related file reads — if you need 3 files to understand a feature, plan reads before edits.
|
|
82
|
+
- Skip unnecessary verification for trivial operations (e.g., don't re-read a file after a simple 1-line edit).
|
|
83
|
+
- Prefer \`edit_file\` over \`create_file\` for modifications — it's more precise and preserves unchanged content.
|
|
84
|
+
- Do NOT ask clarification questions when the answer is available by reading files in the working directory.
|
|
85
|
+
|
|
86
|
+
### ENCODING — Handle character encoding correctly
|
|
87
|
+
|
|
88
|
+
- When piping PowerShell/cmd output to files, use UTF-8 encoding explicitly: \`[Console]::OutputEncoding = [System.Text.Encoding]::UTF8\` or \`-Encoding utf8\`.
|
|
89
|
+
- For bash: use \`LANG=en_US.UTF-8\` if output contains non-ASCII characters.
|
|
90
|
+
- When writing files with non-ASCII content, verify the output is readable (not mojibake).
|
|
91
|
+
|
|
92
|
+
### TANGIBLE RESULTS — Every task MUST produce file changes
|
|
93
|
+
|
|
94
|
+
- Every TODO MUST result in at least one file being created or modified. Reading files alone is NOT completing a task.
|
|
95
|
+
- **Analysis/optimization tasks**: Read the code, identify issues, then ACTUALLY IMPLEMENT the optimizations in the source files. Replace inefficient algorithms with better ones. Do NOT write a report — change the code.
|
|
96
|
+
- **Review tasks**: Compare files, identify all problems, create a REVIEW.md listing issues with severity/line numbers/recommendations, AND fix critical issues directly in the code.
|
|
97
|
+
- **Test tasks**: Read source code thoroughly, then create comprehensive test files covering: normal cases, boundary conditions, NULL/empty inputs, and error handling paths.
|
|
98
|
+
- **Optimization tasks**: Don't just describe what could be better — MAKE the actual changes. Replace O(n²) with O(n) algorithms, remove redundant computations, use proper data structures.
|
|
99
|
+
- If you finish a TODO having only read files without writing/editing anything, you did it WRONG. Go back and produce concrete changes.
|
|
100
|
+
|
|
101
|
+
### COMPLETENESS — Implement ALL requirements, not just basics
|
|
102
|
+
|
|
103
|
+
- When implementing features: address EVERY stated requirement. If the prompt lists 5 endpoints, implement all 5.
|
|
104
|
+
- When fixing bugs: find and fix ALL instances of the same pattern across the entire codebase, not just the first occurrence.
|
|
105
|
+
- When writing tests: cover every public function. Each function needs at minimum: one normal case, one boundary case, one error case.
|
|
106
|
+
- When refactoring: ensure ALL code paths are migrated, not just the happy path.
|
|
107
|
+
- A partial implementation that covers 30% of requirements is NOT acceptable.
|
|
108
|
+
|
|
71
109
|
### SURGICAL CHANGES — Touch only what the TODO requires
|
|
72
110
|
|
|
73
111
|
- Do NOT "improve" adjacent code, comments, or formatting
|
|
@@ -128,6 +166,7 @@ When delegating to specialist agents (word_create_agent, word_modify_agent, exce
|
|
|
128
166
|
- All TODOs completed?
|
|
129
167
|
- All tool calls successful?
|
|
130
168
|
- User's request fulfilled?
|
|
169
|
+
- **Did you use create_file or edit_file at least ONCE?** If you only used read_file/find_files/search_content, you are NOT done. Go back and IMPLEMENT changes. Analysis/review/testing tasks require file modifications, not just reading.
|
|
131
170
|
|
|
132
171
|
## CRITICAL: Final Response
|
|
133
172
|
|
|
@@ -153,11 +192,21 @@ Do NOT re-execute tools from history. Do NOT confuse tools used in history with
|
|
|
153
192
|
|
|
154
193
|
## CRITICAL: Verification
|
|
155
194
|
|
|
156
|
-
**Every request MUST be verified before completion.**
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
- If the
|
|
160
|
-
-
|
|
195
|
+
**Every request MUST be verified before completion — but use LIGHTWEIGHT methods.**
|
|
196
|
+
- Prefer: \`python3 file.py\`, \`node -e "require('./file')"\`, \`gcc file.c && ./a.out\`, \`go build\`, \`cat file | head\`
|
|
197
|
+
- Avoid: installing heavy dependencies (playwright, webpack), starting servers, running full test suites
|
|
198
|
+
- If the runtime/compiler is not available, verify by re-reading the modified file and checking syntax/logic manually
|
|
199
|
+
- If a tool/command fails on first try, do NOT spend more than 1 retry — verify by code review instead
|
|
200
|
+
- Unverified work is unfinished work, but spending 60%+ of time on verification setup is also unacceptable.
|
|
201
|
+
|
|
202
|
+
## CRITICAL: Self-Review Before Completion
|
|
203
|
+
|
|
204
|
+
**Before marking each TODO as "completed", review your own changes:**
|
|
205
|
+
1. **Re-read modified files IN FULL** — verify your changes are correct in the complete file context, not just in isolation
|
|
206
|
+
2. **Fix ALL causes at EVERY layer** — don't stop at the first fix that resolves the symptom. If both config AND application code contribute, fix BOTH. A config-only fix (e.g., increasing a timeout) is incomplete if the application code lacks corresponding handling (e.g., keepalive/heartbeat, retry, reconnection). Ask: "What happens when this config value isn't enough?"
|
|
207
|
+
3. **Check integration order** — new routes/handlers/middleware must be registered in the correct order relative to existing ones (e.g., specific routes before parameterized routes in Express)
|
|
208
|
+
4. **Avoid self-contamination** — when measuring/analyzing files, ensure your own output files or helper scripts don't pollute the results. Collect data BEFORE writing output files, or exclude your artifacts.
|
|
209
|
+
5. **Multi-layer completeness** — a fix at one layer (config, infrastructure) MUST be complemented by handling at the application layer. If you only modify config files without touching the code, the code should also be hardened against the same failure mode (e.g., add heartbeat/keepalive when fixing proxy timeouts, add retry logic when fixing connection limits).
|
|
161
210
|
|
|
162
211
|
## CRITICAL: Enterprise Quality
|
|
163
212
|
|
|
@@ -190,7 +239,7 @@ export const VISION_VERIFICATION_RULE = `## CRITICAL: Screenshot Verification
|
|
|
190
239
|
- Do NOT search for or guess the screenshot path — always use the path returned by the screenshot tool
|
|
191
240
|
- Do NOT assume the visual output is correct — always confirm with your own eyes
|
|
192
241
|
- This applies to: web pages, generated images, UI components, documents, charts, diagrams`;
|
|
193
|
-
export function getCriticalReminders(hasVision) {
|
|
242
|
+
export function getCriticalReminders(hasVision, cwd) {
|
|
194
243
|
const items = [
|
|
195
244
|
'1. Tool arguments = valid JSON. All required parameters must be included.',
|
|
196
245
|
'2. Use exact tool names only: read_file, create_file, edit_file, bash, write_todos, final_response, etc.',
|
|
@@ -198,12 +247,17 @@ export function getCriticalReminders(hasVision) {
|
|
|
198
247
|
'4. DO NOT explain — USE the tool. Action, not description.',
|
|
199
248
|
'5. Use tell_to_user to report progress between tasks — the user should know what you\'re doing.',
|
|
200
249
|
'6. Call final_response ONLY when ALL TODOs are completed or failed.',
|
|
201
|
-
'7. VERIFY
|
|
250
|
+
'7. VERIFY results using lightweight methods: `python3 file.py`, `node -e`, `gcc && ./a.out`, `cat file`. Do NOT install heavy tools (playwright, webpack) or start servers just for verification. If the runtime is unavailable, verify by reading the code.',
|
|
202
251
|
'8. Enterprise quality — always check error handling, edge cases, and related files.',
|
|
203
252
|
'9. Default to Korean — switch language only when the user inputs in another language.',
|
|
204
253
|
'10. SURGICAL — do NOT modify code outside the TODO scope. No "improving" adjacent code.',
|
|
205
254
|
'11. SIMPLICITY — minimum code to solve the problem. No single-use abstractions. No unrequested features.',
|
|
255
|
+
'12. BEFORE calling final_response: check if you used create_file or edit_file at least once. If not, you MUST go back and implement code changes. Text-only analysis is NEVER acceptable — modify the source files.',
|
|
256
|
+
'13. SELF-REVIEW: Before completing each TODO, re-read modified files in full. Fix ALL causes at EVERY layer (config-only fix is incomplete — also add application-level handling like heartbeat/retry). Check route/handler ordering. Ensure your own artifacts don\'t contaminate analysis results.',
|
|
206
257
|
];
|
|
258
|
+
if (cwd) {
|
|
259
|
+
items.push(`14. Current working directory: ${cwd} — use this for all relative paths. Do NOT guess or hardcode paths.`);
|
|
260
|
+
}
|
|
207
261
|
if (hasVision) {
|
|
208
262
|
items.push('12. If the result is visually verifiable, TAKE A SCREENSHOT and confirm it with your eyes.');
|
|
209
263
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-execute.js","sourceRoot":"","sources":["../../../src/prompts/system/plan-execute.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,CAAC,MAAM,0BAA0B,GAAG;;EAExC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDtB,yBAAyB;;EAEzB,iBAAiB;;EAEjB,sBAAsB
|
|
1
|
+
{"version":3,"file":"plan-execute.js","sourceRoot":"","sources":["../../../src/prompts/system/plan-execute.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,CAAC,MAAM,0BAA0B,GAAG;;EAExC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDtB,yBAAyB;;EAEzB,iBAAiB;;EAEjB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEtB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGpB,CAAC;AAMF,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;2FAOmD,CAAC;AAS5F,MAAM,UAAU,oBAAoB,CAAC,SAAkB,EAAE,GAAY;IACnE,MAAM,KAAK,GAAG;QACZ,2EAA2E;QAC3E,0GAA0G;QAC1G,sEAAsE;QACtE,4DAA4D;QAC5D,iGAAiG;QACjG,qEAAqE;QACrE,8PAA8P;QAC9P,qFAAqF;QACrF,uFAAuF;QACvF,yFAAyF;QACzF,0GAA0G;QAC1G,qNAAqN;QACrN,sSAAsS;KACvS,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,KAAK,CAAC,IAAI,CAAC,kCAAkC,GAAG,qEAAqE,CAAC,CAAC;IACzH,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,CAAC;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE9D,eAAe,0BAA0B,CAAC"}
|
|
@@ -137,7 +137,7 @@ async function executeBashBackground(args) {
|
|
|
137
137
|
if (isNativeWindows()) {
|
|
138
138
|
return {
|
|
139
139
|
success: false,
|
|
140
|
-
error: 'bash_background tool is not available on Native Windows. Use
|
|
140
|
+
error: 'bash_background tool is not available on Native Windows. Use powershell_background_start instead.',
|
|
141
141
|
};
|
|
142
142
|
}
|
|
143
143
|
if (cwd) {
|