micro-models-agent 0.2.63 → 0.2.65
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/README.md +401 -354
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +254 -14
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +16 -16
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +104 -67
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-executor.d.ts +2 -10
- package/dist/agent/tool-executor.d.ts.map +1 -1
- package/dist/agent/tool-executor.js +92 -1
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/async-map.d.ts +6 -0
- package/dist/async-map.d.ts.map +1 -0
- package/dist/async-map.js +16 -0
- package/dist/async-map.js.map +1 -0
- package/dist/blog-api/types/index.d.ts +2 -0
- package/dist/blog-api/types/index.d.ts.map +1 -0
- package/dist/blog-api/types/index.js +2 -0
- package/dist/blog-api/types/index.js.map +1 -0
- package/dist/cli/config.js +1 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +29 -2
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +16 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/examples.d.ts +22 -0
- package/dist/examples.d.ts.map +1 -0
- package/dist/examples.js +45 -0
- package/dist/examples.js.map +1 -0
- package/dist/fibonacci.d.ts +19 -0
- package/dist/fibonacci.d.ts.map +1 -0
- package/dist/fibonacci.js +61 -0
- package/dist/fibonacci.js.map +1 -0
- package/dist/llm/lmstudio-native.d.ts +10 -0
- package/dist/llm/lmstudio-native.d.ts.map +1 -0
- package/dist/llm/lmstudio-native.js +179 -0
- package/dist/llm/lmstudio-native.js.map +1 -0
- package/dist/llm/openai-compat.js +1 -1
- package/dist/plugins/builtin/lint-on-write/index.ts +96 -96
- package/dist/plugins/builtin/notify/index.js +6 -6
- package/dist/plugins/builtin/notify/index.ts +104 -104
- package/dist/repl.d.ts +5 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +472 -0
- package/dist/repl.js.map +1 -0
- package/dist/skills/builtin/agent-test/SKILL.md +68 -68
- package/dist/skills/builtin/grill-me/SKILL.md +46 -46
- package/dist/sort.d.ts +8 -0
- package/dist/sort.d.ts.map +1 -0
- package/dist/sort.js +36 -0
- package/dist/sort.js.map +1 -0
- package/dist/stack.d.ts +9 -0
- package/dist/stack.d.ts.map +1 -0
- package/dist/stack.js +22 -0
- package/dist/stack.js.map +1 -0
- package/dist/test-run.d.ts +2 -0
- package/dist/test-run.d.ts.map +1 -0
- package/dist/test-run.js +13 -0
- package/dist/test-run.js.map +1 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +19 -0
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/fs/write-file.d.ts.map +1 -1
- package/dist/tools/fs/write-file.js +13 -2
- package/dist/tools/fs/write-file.js.map +1 -1
- package/dist/tools/native/plan.d.ts +1 -1
- package/dist/tools/native/plan.d.ts.map +1 -1
- package/dist/tools/native/plan.js +85 -16
- package/dist/tools/native/plan.js.map +1 -1
- package/dist/tools/native/scaffold.d.ts +5 -0
- package/dist/tools/native/scaffold.d.ts.map +1 -0
- package/dist/tools/native/scaffold.js +246 -0
- package/dist/tools/native/scaffold.js.map +1 -0
- package/dist/tools/plan.d.ts +9 -0
- package/dist/tools/plan.d.ts.map +1 -1
- package/dist/tools/plan.js +27 -2
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +3 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/subagent.d.ts +16 -1
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +99 -10
- package/dist/tools/subagent.js.map +1 -1
- package/dist/ui/components/diff-view.d.ts +8 -0
- package/dist/ui/components/diff-view.d.ts.map +1 -0
- package/dist/ui/components/diff-view.js +25 -0
- package/dist/ui/components/diff-view.js.map +1 -0
- package/dist/ui/double-press.d.ts +9 -0
- package/dist/ui/double-press.d.ts.map +1 -0
- package/dist/ui/double-press.js +18 -0
- package/dist/ui/double-press.js.map +1 -0
- package/dist/ui/opentui-renderer.d.ts +53 -0
- package/dist/ui/opentui-renderer.d.ts.map +1 -0
- package/dist/ui/opentui-renderer.js +463 -0
- package/dist/ui/opentui-renderer.js.map +1 -0
- package/dist/utils/memoize.d.ts +14 -0
- package/dist/utils/memoize.d.ts.map +1 -0
- package/dist/utils/memoize.js +51 -0
- package/dist/utils/memoize.js.map +1 -0
- package/dist/utils/types.d.ts +6 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +2 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils.d.ts +22 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +81 -0
- package/dist/utils.js.map +1 -0
- package/package.json +2 -2
package/dist/agent/loop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAY9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAY9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8GpD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5D;AAmED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAChC,QAAQ,CAAC,EAAE,cAAc,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GACtE,OAAO,CAAC,eAAe,CAAC,CA28B1B"}
|
package/dist/agent/loop.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
1
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { jsonrepair } from 'jsonrepair';
|
|
4
4
|
import { parseFileRefs } from '../file-loader.js';
|
|
@@ -10,12 +10,12 @@ import { applyMode } from './modes/applier.js';
|
|
|
10
10
|
import { loadSkill, loadSkillsFromRefs, enforceSkillBudget } from '../skills/loader.js';
|
|
11
11
|
import { runPreToolUseHooks, runPostToolUseHooks } from '../tools/hooks.js';
|
|
12
12
|
import { isMCPCommand, parseMCPCommand, callMCPTool } from '../tools/mcp.js';
|
|
13
|
-
import { showPlan, getPlanPendingCount } from '../tools/plan.js';
|
|
13
|
+
import { showPlan, getPlanPendingCount, clearPlan, getNextPendingStep, updatePlanStep, extractDirFromStepTitle } from '../tools/plan.js';
|
|
14
14
|
import { checkFileSyntax } from '../tools/syntax-check.js';
|
|
15
|
-
import { loadConfig, getLLMConfig } from '../config/config.js';
|
|
15
|
+
import { loadConfig, getLLMConfig, getSpecialistConfig } from '../config/config.js';
|
|
16
16
|
import { buildSystemPrompt } from './system-prompt.js';
|
|
17
17
|
import { logInfo, logWarn, logError, logDebug, logToolCall, setStatusWriter, writeStatus } from '../logger.js';
|
|
18
|
-
import { buildSubagentContext, runIsolatedLoop, extractAllToolCalls, validateToolCall, doChat } from '../tools/subagent.js';
|
|
18
|
+
import { buildSubagentContext, buildSpecialistTask, isTrivialError, runIsolatedLoop, extractAllToolCalls, validateToolCall, doChat } from '../tools/subagent.js';
|
|
19
19
|
import { SubagentRenderer } from '../ui/subagent-renderer.js';
|
|
20
20
|
import { ToolExecutor } from './tool-executor.js';
|
|
21
21
|
import { PluginManager } from '../plugins/manager.js';
|
|
@@ -28,6 +28,7 @@ import { questionHandler } from '../tools/native/question.js';
|
|
|
28
28
|
import { approveHandler } from '../tools/native/approve.js';
|
|
29
29
|
import { userProfileHandler } from '../tools/native/user-profile.js';
|
|
30
30
|
import { themeHandler } from '../tools/native/theme.js';
|
|
31
|
+
import { scaffoldHandler } from '../tools/native/scaffold.js';
|
|
31
32
|
import { bashHandler } from '../tools/bash.js';
|
|
32
33
|
import { readFileHandler } from '../tools/fs/read-file.js';
|
|
33
34
|
import { writeFileHandler } from '../tools/fs/write-file.js';
|
|
@@ -117,6 +118,58 @@ function extractToolCallFallback(response) {
|
|
|
117
118
|
}
|
|
118
119
|
return null;
|
|
119
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Запускает specialist'а для решения повторяющейся ошибки.
|
|
123
|
+
*
|
|
124
|
+
* Specialist — это изолированный суб-агент со свежим контекстом,
|
|
125
|
+
* который получает задачу "диагностируй и исправь ошибку инструмента X".
|
|
126
|
+
*
|
|
127
|
+
* Алгоритм:
|
|
128
|
+
* 1. Формирует задачу через buildSpecialistTask()
|
|
129
|
+
* 2. Собирает контекст проекта через buildSubagentContext()
|
|
130
|
+
* 3. Запускает runIsolatedLoop() с ограничением maxSteps
|
|
131
|
+
* 4. Заменяет результат ошибки в messages[] на результат specialist'а
|
|
132
|
+
* 5. Трекает созданные specialist'ом файлы
|
|
133
|
+
*
|
|
134
|
+
* @returns true если specialist отработал (основной цикл должен continue),
|
|
135
|
+
* false если specialist упал (ошибка остаётся в messages)
|
|
136
|
+
*/
|
|
137
|
+
async function spawnSpecialist(p) {
|
|
138
|
+
if (!p.quiet) {
|
|
139
|
+
p.renderer?.writeBracketTag('specialist', `solving '${p.errorOutput.slice(0, 60).replace(/\n/g, ' ')}' error...`);
|
|
140
|
+
}
|
|
141
|
+
const task = buildSpecialistTask(p.toolName, p.toolArgs, p.errorOutput, p.enrichedPrompt, p.errorCount);
|
|
142
|
+
const ctx = buildSubagentContext(process.cwd());
|
|
143
|
+
const sub = new SubagentRenderer();
|
|
144
|
+
try {
|
|
145
|
+
logInfo('LOOP', `spawning specialist for ${p.toolName} (attempt #${p.errorCount})`);
|
|
146
|
+
const r = await runIsolatedLoop(p.provider, p.registry, task, ctx, process.cwd(), p.quiet, sub, p.toolExecutor, p.modeConfig.subagentMode, p.llmCfg.toolModel, p.specialistCfg.maxSteps);
|
|
147
|
+
for (let i = p.messages.length - 1; i >= 0; i--) {
|
|
148
|
+
if (p.messages[i].role === 'tool' && p.messages[i].tool_call_id === p.toolId) {
|
|
149
|
+
const text = r.errors.length > 0
|
|
150
|
+
? `[Specialist attempted to fix "${p.toolName}" but failed:\n${r.errors.join('\n')}\n${r.summary}]\nTry a different approach.`
|
|
151
|
+
: `[Specialist resolved "${p.toolName}" error.\n${r.summary}]\nContinue with the task.`;
|
|
152
|
+
p.messages[i].content = truncateToolOutput(p.toolName, text, 0);
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
for (const f of r.createdFiles) {
|
|
157
|
+
if (!p.createdFiles.includes(f))
|
|
158
|
+
p.createdFiles.push(f);
|
|
159
|
+
}
|
|
160
|
+
const buf = sub.getBuffer();
|
|
161
|
+
if (!p.quiet && p.renderer?.writeToolBuffer)
|
|
162
|
+
p.renderer.writeToolBuffer({ lines: buf.lines, toolCalls: buf.toolCalls });
|
|
163
|
+
logInfo('LOOP', `specialist done | files: ${r.createdFiles.length} | turns: ${r.turns} | errors: ${r.errors.length}`);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
logError('LOOP', `specialist error: ${e.message}`);
|
|
168
|
+
if (!p.quiet)
|
|
169
|
+
p.renderer?.writeError(` [specialist failed: ${e.message}]`);
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
120
173
|
/**
|
|
121
174
|
* Запускает основной цикл ReAct-агента.
|
|
122
175
|
*
|
|
@@ -259,12 +312,26 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
259
312
|
let aborted = false;
|
|
260
313
|
let continuationNudges = 0; // счётчик подсказок "продолжай работать"
|
|
261
314
|
let directWriteStreak = 0; // количество прямых write_file без subagent
|
|
315
|
+
/** Трекер повторяющихся tool errors: { normalizedError → count } */
|
|
316
|
+
const consecutiveToolErrors = new Map();
|
|
317
|
+
/** Общий счётчик ошибок за сессию */
|
|
318
|
+
let totalToolErrors = 0;
|
|
319
|
+
/** Стратегия обработки ошибок: 'normal' | 'subagent-hint' | 'force-subagent' */
|
|
320
|
+
let errorStrategy = 'normal';
|
|
321
|
+
/** Флаг: specialist уже был запущен для текущей ошибки (чтобы не дублировать) */
|
|
322
|
+
let specialistSpawnedFor = null;
|
|
323
|
+
/** Счётчик бесполезных действий (list_dir, glob_search, todo list без результата) */
|
|
324
|
+
let uselessActionCount = 0;
|
|
325
|
+
/** История последних чтений файлов для.detect повторных чтений */
|
|
326
|
+
const recentReadFiles = [];
|
|
327
|
+
/** История последних grep-запросов для detect повторных поисков */
|
|
328
|
+
const recentGrepPatterns = [];
|
|
262
329
|
// ─── ToolExecutor: единый диспетчер инструментов ──
|
|
263
330
|
const toolExecutor = new ToolExecutor();
|
|
264
331
|
toolExecutor.setPluginManager(pluginManager);
|
|
265
332
|
toolExecutor.registerAll([
|
|
266
333
|
planHandler, todoHandler, questionHandler, approveHandler,
|
|
267
|
-
userProfileHandler, themeHandler, bashHandler,
|
|
334
|
+
userProfileHandler, themeHandler, scaffoldHandler, bashHandler,
|
|
268
335
|
readFileHandler, writeFileHandler, editFileHandler, listDirHandler,
|
|
269
336
|
createDirHandler, deleteFileHandler, copyFileHandler, moveFileHandler,
|
|
270
337
|
fileInfoHandler, globSearchHandler, grepSearchHandler, treeHandler,
|
|
@@ -465,7 +532,7 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
465
532
|
// it's a description with examples — not a failed tool call attempt.
|
|
466
533
|
const textOutside = response.replace(/<tool_call>[\s\S]*?<\/tool_call>/g, '').trim();
|
|
467
534
|
if (textOutside.length < 100) {
|
|
468
|
-
const feedback = `[Tool call error(s)]\n${invalidCalls.join('\n')}\n\nFix the tool call format and try again. Use ONLY valid tool names: bash, read_file, write_file, edit_file, list_dir, create_dir, delete_file, copy_file, move_file, file_info, glob_search, grep_search, tree, web_search, web_fetch, plan, todo, question, approve, subagent.`;
|
|
535
|
+
const feedback = `[Tool call error(s)]\n${invalidCalls.join('\n')}\n\nFix the tool call format and try again. Use ONLY valid tool names: bash, read_file, write_file, edit_file, list_dir, create_dir, delete_file, copy_file, move_file, file_info, glob_search, grep_search, tree, web_search, web_fetch, plan, todo, question, approve, subagent, scaffold.`;
|
|
469
536
|
if (!quiet) {
|
|
470
537
|
renderer?.writeError(` [invalid tool call: ${invalidCalls[0]}]`);
|
|
471
538
|
}
|
|
@@ -497,17 +564,103 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
497
564
|
const pendingSteps = getPlanPendingCount();
|
|
498
565
|
if (pendingSteps > 0 && looksLikeDone) {
|
|
499
566
|
const planText = showPlan();
|
|
500
|
-
const
|
|
567
|
+
const pendingLines = planText.split('\n').filter(l => l.includes('○') || l.includes('►'));
|
|
568
|
+
const nextStep = pendingLines[0] || '';
|
|
569
|
+
const nextStepMatch = nextStep.match(/\d+\.\s*(.+)/);
|
|
570
|
+
const nextStepTitle = nextStepMatch ? nextStepMatch[1].trim() : '';
|
|
501
571
|
if (!quiet) {
|
|
502
572
|
renderer?.writeWarning(` [plan has ${pendingSteps} incomplete steps — pushing agent to continue]`);
|
|
503
573
|
}
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
});
|
|
574
|
+
const nudge = nextStepTitle
|
|
575
|
+
? `Plan is NOT complete! ${pendingSteps} step(s) remaining.\nNext step: ${nextStepTitle}\nUse subagent to execute this step, then mark done: plan({action:"done", step:N})`
|
|
576
|
+
: `Plan is NOT complete! ${pendingSteps} step(s) remaining:\n${pendingLines.join('\n')}\n\nContinue with the next step using subagent.`;
|
|
577
|
+
messages.push({ role: 'user', content: nudge });
|
|
508
578
|
continuationNudges = 0;
|
|
509
579
|
continue;
|
|
510
580
|
}
|
|
581
|
+
// Phase 4.1: Аудит файлов при завершении плана
|
|
582
|
+
if (pendingSteps === 0 && looksLikeDone) {
|
|
583
|
+
const plan = showPlan();
|
|
584
|
+
if (!plan.startsWith('No active plan')) {
|
|
585
|
+
// Извлекаем заголовки шагов и проверяем наличие файлов
|
|
586
|
+
const stepLines = plan.split('\n').filter(l => l.match(/\d+\.\s/));
|
|
587
|
+
const missingFiles = [];
|
|
588
|
+
for (const line of stepLines) {
|
|
589
|
+
const titleMatch = line.match(/\d+\.\s*(.+)/);
|
|
590
|
+
if (!titleMatch)
|
|
591
|
+
continue;
|
|
592
|
+
const title = titleMatch[1].trim();
|
|
593
|
+
// Извлекаем имя файла из заголовка (паттерн: "Create file.ext" или "file.ext")
|
|
594
|
+
const fileMatch = title.match(/(?:Create|Создать|Add|Добавить)\s+(\S+\.(?:ts|tsx|js|jsx|json|html|css|md|yaml|yml))/i)
|
|
595
|
+
|| title.match(/(\w+\.(?:ts|tsx|js|jsx|json|html|css|md|yaml|yml))/i);
|
|
596
|
+
if (fileMatch) {
|
|
597
|
+
const fileName = fileMatch[1];
|
|
598
|
+
if (!existsSync(fileName) && !createdFiles.some(f => f.endsWith(fileName))) {
|
|
599
|
+
missingFiles.push(fileName);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
if (missingFiles.length > 0) {
|
|
604
|
+
if (!quiet) {
|
|
605
|
+
renderer?.writeWarning(` [plan complete but missing files: ${missingFiles.join(', ')}]`);
|
|
606
|
+
}
|
|
607
|
+
messages.push({
|
|
608
|
+
role: 'user',
|
|
609
|
+
content: `Plan claims all steps done, but these files are missing: ${missingFiles.join(', ')}. Create them before finishing.`,
|
|
610
|
+
});
|
|
611
|
+
continuationNudges = 0;
|
|
612
|
+
continue;
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
// Stuck detection: если модель делает бесполезные действия
|
|
617
|
+
const isUselessAction = validCalls.some(c => c.parsed.name === 'list_dir' || c.parsed.name === 'tree' ||
|
|
618
|
+
(c.parsed.name === 'todo' && c.parsed.arguments?.action === 'list'));
|
|
619
|
+
// Phase 5.1: Расширенное detect — повторные чтения и поиски
|
|
620
|
+
let isRepeatedRead = false;
|
|
621
|
+
let isRepeatedSearch = false;
|
|
622
|
+
for (const c of validCalls) {
|
|
623
|
+
if (c.parsed.name === 'read_file') {
|
|
624
|
+
const filePath = String(c.parsed.arguments?.path || '');
|
|
625
|
+
if (recentReadFiles.includes(filePath)) {
|
|
626
|
+
isRepeatedRead = true;
|
|
627
|
+
}
|
|
628
|
+
recentReadFiles.push(filePath);
|
|
629
|
+
if (recentReadFiles.length > 5)
|
|
630
|
+
recentReadFiles.shift();
|
|
631
|
+
}
|
|
632
|
+
if (c.parsed.name === 'grep_search') {
|
|
633
|
+
const pattern = String(c.parsed.arguments?.pattern || '');
|
|
634
|
+
if (recentGrepPatterns.includes(pattern)) {
|
|
635
|
+
isRepeatedSearch = true;
|
|
636
|
+
}
|
|
637
|
+
recentGrepPatterns.push(pattern);
|
|
638
|
+
if (recentGrepPatterns.length > 5)
|
|
639
|
+
recentGrepPatterns.shift();
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
const isStuckAction = isUselessAction || isRepeatedRead || isRepeatedSearch;
|
|
643
|
+
if (isStuckAction && pendingSteps > 0) {
|
|
644
|
+
uselessActionCount++;
|
|
645
|
+
if (uselessActionCount >= 3) {
|
|
646
|
+
if (!quiet) {
|
|
647
|
+
renderer?.writeWarning(` [agent stuck: ${uselessActionCount} useless actions — clearing plan]`);
|
|
648
|
+
}
|
|
649
|
+
clearPlan();
|
|
650
|
+
messages.push({
|
|
651
|
+
role: 'user',
|
|
652
|
+
content: `[System: You are stuck in a loop. The plan has been cleared. Complete the remaining work directly using write_file/subagent, then report to the user.]`,
|
|
653
|
+
});
|
|
654
|
+
uselessActionCount = 0;
|
|
655
|
+
continuationNudges = 0;
|
|
656
|
+
continue;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
else if (validCalls.some(c => c.parsed.name === 'subagent' || c.parsed.name === 'write_file' || c.parsed.name === 'bash')) {
|
|
660
|
+
uselessActionCount = 0;
|
|
661
|
+
recentReadFiles.length = 0;
|
|
662
|
+
recentGrepPatterns.length = 0;
|
|
663
|
+
}
|
|
511
664
|
// Если модель claim-ит done но есть созданные файлы — напоминаем о полноте
|
|
512
665
|
if (createdFiles.length > 0 && looksLikeDone) {
|
|
513
666
|
messages.push({
|
|
@@ -530,6 +683,7 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
530
683
|
if (hasMultiStepPlan) {
|
|
531
684
|
const directWrites = validCalls.filter(c => c.parsed.name === 'write_file' || c.parsed.name === 'edit_file');
|
|
532
685
|
const hasSubagent = validCalls.some(c => c.parsed.name === 'subagent');
|
|
686
|
+
const hasBash = validCalls.some(c => c.parsed.name === 'bash');
|
|
533
687
|
if (directWrites.length > 0 && !hasSubagent) {
|
|
534
688
|
// Block direct writes — model must use subagent
|
|
535
689
|
for (const wc of directWrites) {
|
|
@@ -539,7 +693,7 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
539
693
|
const blockId = `call-${Date.now()}-${step}-${Math.random().toString(36).slice(2, 6)}`;
|
|
540
694
|
messages.push({
|
|
541
695
|
role: 'tool',
|
|
542
|
-
content: `BLOCKED:
|
|
696
|
+
content: `BLOCKED: Multi-step plan active. Use subagent for each step. Example: subagent({task:"Create file X", existingFiles:"Y.ts"}). After subagent completes, mark step done: plan({action:"done", step:N})`,
|
|
543
697
|
tool_call_id: blockId,
|
|
544
698
|
});
|
|
545
699
|
}
|
|
@@ -547,6 +701,7 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
547
701
|
renderer?.writeWarning(` [blocked ${directWrites.length} direct writes — use subagent for multi-step plans]`);
|
|
548
702
|
}
|
|
549
703
|
}
|
|
704
|
+
// Allow bash for verification (tsc --noEmit, npm run build) — don't block these
|
|
550
705
|
}
|
|
551
706
|
// ESCALATION: block write_file when creating N+ files without subagent (no plan case)
|
|
552
707
|
if (directWriteStreakMax < Infinity && !hasMultiStepPlan) {
|
|
@@ -645,11 +800,25 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
645
800
|
toolExitCode = 1;
|
|
646
801
|
}
|
|
647
802
|
else {
|
|
803
|
+
// Авто-пометка следующего pending шага как in_progress
|
|
804
|
+
const nextPending = getNextPendingStep();
|
|
805
|
+
if (nextPending) {
|
|
806
|
+
updatePlanStep(nextPending.id, 'in_progress');
|
|
807
|
+
}
|
|
808
|
+
// Phase 2.3: Авто-подстановка полного пути в задачу subagent
|
|
809
|
+
let finalTask = task;
|
|
810
|
+
if (nextPending) {
|
|
811
|
+
const expectedDir = extractDirFromStepTitle(nextPending.title);
|
|
812
|
+
if (expectedDir && !task.includes(expectedDir + '/')) {
|
|
813
|
+
finalTask = `${task} (directory: ${expectedDir}/)`;
|
|
814
|
+
logInfo('AGENT', `injected dir path into subagent task: "${expectedDir}"`);
|
|
815
|
+
}
|
|
816
|
+
}
|
|
648
817
|
const autoContext = buildSubagentContext(process.cwd());
|
|
649
|
-
logInfo('AGENT', `spawning subagent | task: "${
|
|
818
|
+
logInfo('AGENT', `spawning subagent | task: "${finalTask.slice(0, 150)}"`);
|
|
650
819
|
const subRenderer = new SubagentRenderer();
|
|
651
820
|
try {
|
|
652
|
-
const childResult = await runIsolatedLoop(provider, registry,
|
|
821
|
+
const childResult = await runIsolatedLoop(provider, registry, finalTask, autoContext, process.cwd(), quiet, subRenderer, toolExecutor, modeConfig.subagentMode, llmCfg.toolModel);
|
|
653
822
|
toolOutput = childResult.summary;
|
|
654
823
|
logInfo('AGENT', `subagent returned | files: ${childResult.createdFiles.length} | turns: ${childResult.turns} | errors: ${childResult.errors.length}`);
|
|
655
824
|
if (childResult.createdFiles.length > 0) {
|
|
@@ -658,6 +827,21 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
658
827
|
createdFiles.push(f);
|
|
659
828
|
}
|
|
660
829
|
}
|
|
830
|
+
// Phase 2.1: Валидация путей созданных файлов
|
|
831
|
+
if (nextPending && childResult.createdFiles.length > 0) {
|
|
832
|
+
const expectedDir = extractDirFromStepTitle(nextPending.title);
|
|
833
|
+
if (expectedDir) {
|
|
834
|
+
const wrongDirFiles = childResult.createdFiles.filter(f => !f.startsWith(expectedDir + '/') && !f.startsWith(expectedDir + '\\'));
|
|
835
|
+
if (wrongDirFiles.length > 0) {
|
|
836
|
+
const correction = `⚠ Files created in wrong directory: ${wrongDirFiles.join(', ')}. ` +
|
|
837
|
+
`They should be in ${expectedDir}/. Use write_file with full path: ${expectedDir}/${wrongDirFiles[0]}`;
|
|
838
|
+
toolOutput += '\n\n' + correction;
|
|
839
|
+
if (!quiet) {
|
|
840
|
+
renderer?.writeWarning(` [subagent created files in wrong directory: ${wrongDirFiles.join(', ')}]`);
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
}
|
|
661
845
|
const buf = subRenderer.getBuffer();
|
|
662
846
|
if (!quiet && renderer?.writeToolBuffer) {
|
|
663
847
|
renderer.writeToolBuffer({ lines: buf.lines, toolCalls: buf.toolCalls });
|
|
@@ -846,6 +1030,62 @@ export async function runAgentLoop(provider, registry, prompt, contextManager, p
|
|
|
846
1030
|
content: truncateToolOutput(parsed.name, toolOutput, toolExitCode),
|
|
847
1031
|
tool_call_id: toolId,
|
|
848
1032
|
});
|
|
1033
|
+
// ─── Error escalation + specialist auto-delegation ──────────
|
|
1034
|
+
if (toolExitCode !== 0 && toolOutput) {
|
|
1035
|
+
totalToolErrors++;
|
|
1036
|
+
const errKey = `${parsed.name}::${toolOutput.slice(0, 100).replace(/[A-Z]:\\[^\s"']+/gi, '<PATH>').replace(/\/[^\s"']+/g, '<PATH>')}`;
|
|
1037
|
+
const prevCount = consecutiveToolErrors.get(errKey) ?? 0;
|
|
1038
|
+
consecutiveToolErrors.set(errKey, prevCount + 1);
|
|
1039
|
+
const errorCount = prevCount + 1;
|
|
1040
|
+
// ── Specialist: авто-делегация при повторяющихся ошибках ──
|
|
1041
|
+
const specialistCfg = getSpecialistConfig(config);
|
|
1042
|
+
if (specialistCfg.enabled &&
|
|
1043
|
+
errorCount === specialistCfg.triggerThreshold &&
|
|
1044
|
+
specialistSpawnedFor !== errKey &&
|
|
1045
|
+
!isTrivialError(parsed.name, toolOutput) &&
|
|
1046
|
+
toolOutput.length >= specialistCfg.minErrorLength) {
|
|
1047
|
+
specialistSpawnedFor = errKey;
|
|
1048
|
+
const spawned = await spawnSpecialist({
|
|
1049
|
+
provider, registry, toolExecutor, modeConfig, llmCfg, specialistCfg,
|
|
1050
|
+
quiet, renderer, messages, toolId, createdFiles,
|
|
1051
|
+
toolName: parsed.name, toolArgs: parsed.arguments,
|
|
1052
|
+
errorOutput: toolOutput, errorCount, enrichedPrompt,
|
|
1053
|
+
});
|
|
1054
|
+
if (spawned)
|
|
1055
|
+
continue;
|
|
1056
|
+
}
|
|
1057
|
+
// ── Escalation: hint / strategy switch / block ──
|
|
1058
|
+
if (errorCount > specialistCfg.triggerThreshold) {
|
|
1059
|
+
const msg = errorCount === specialistCfg.triggerThreshold + 1
|
|
1060
|
+
? `[System: Tool "${parsed.name}" failed with the SAME error ${errorCount} times. Read the error message carefully. The input is likely wrong — try a completely different approach, or use subagent for a fresh context.]`
|
|
1061
|
+
: `[System: Tool "${parsed.name}" failed ${errorCount} times with the same error. STOP. Do NOT retry the same call. Use subagent(task="...") for a fresh context, or tell the user you're stuck.]`;
|
|
1062
|
+
messages.push({ role: 'user', content: msg });
|
|
1063
|
+
if (!quiet)
|
|
1064
|
+
renderer?.writeWarning(` [error escalation: ${parsed.name} failed ${errorCount} times]`);
|
|
1065
|
+
}
|
|
1066
|
+
if (totalToolErrors >= 5 && errorStrategy === 'normal') {
|
|
1067
|
+
errorStrategy = 'subagent-hint';
|
|
1068
|
+
messages.push({ role: 'user', content: `[System: ${totalToolErrors} tool errors. Use subagent(task="...") for a fresh context.]` });
|
|
1069
|
+
if (!quiet)
|
|
1070
|
+
renderer?.writeWarning(` [strategy: subagent-hint after ${totalToolErrors} errors]`);
|
|
1071
|
+
}
|
|
1072
|
+
if (errorCount >= 4) {
|
|
1073
|
+
const blockId = `call-${Date.now()}-${step}-${Math.random().toString(36).slice(2, 6)}`;
|
|
1074
|
+
messages.push({ role: 'tool', content: `BLOCKED: Tool "${parsed.name}" failed ${errorCount} times. Temporarily blocked.`, tool_call_id: blockId });
|
|
1075
|
+
const idx = validCalls.indexOf(call);
|
|
1076
|
+
if (idx !== -1)
|
|
1077
|
+
validCalls.splice(idx, 1);
|
|
1078
|
+
if (!quiet)
|
|
1079
|
+
renderer?.writeWarning(` [blocked ${parsed.name}: too many repeated errors]`);
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
else {
|
|
1083
|
+
for (const [key] of consecutiveToolErrors) {
|
|
1084
|
+
if (key.startsWith(parsed.name + '::'))
|
|
1085
|
+
consecutiveToolErrors.delete(key);
|
|
1086
|
+
}
|
|
1087
|
+
specialistSpawnedFor = null;
|
|
1088
|
+
}
|
|
849
1089
|
// НЕ добавляем "Continue." после каждого tool-вызова — это нарушает
|
|
850
1090
|
// структуру диалога. Bounded nudge (строка 418) уже покрывает
|
|
851
1091
|
// случай когда модель застряла без tool-вызова.
|
package/dist/agent/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { type Skill } from '../skills/loader.js';
|
|
2
2
|
import type { AgentMode } from '../config/types.js';
|
|
3
|
-
/**
|
|
3
|
+
/** Invalidate system prompt cache (called when config changes) */
|
|
4
4
|
export declare function invalidateSystemPromptCache(): void;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Assembles system prompt from all blocks.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* 1.
|
|
10
|
-
* 2.
|
|
11
|
-
* 3.
|
|
12
|
-
* 4.
|
|
13
|
-
* 5.
|
|
14
|
-
* 6.
|
|
15
|
-
* 7.
|
|
16
|
-
* 8.
|
|
17
|
-
* 9.
|
|
18
|
-
* 10.
|
|
8
|
+
* Algorithm:
|
|
9
|
+
* 1. Check cache by key (cwd + mode + skill names)
|
|
10
|
+
* 2. Build header (agent name, description)
|
|
11
|
+
* 3. Platform-dependent blocks (PowerShell/Unix examples + rules)
|
|
12
|
+
* 4. System info (date, OS, path, project)
|
|
13
|
+
* 5. Agent memory + user profile
|
|
14
|
+
* 6. Project map (indexer)
|
|
15
|
+
* 7. Instructions from AGENTS.md
|
|
16
|
+
* 8. Available skills hint
|
|
17
|
+
* 9. Current mode block (fast/pro/base)
|
|
18
|
+
* 10. Loaded skill content
|
|
19
19
|
*
|
|
20
|
-
* @param extraSkills -
|
|
21
|
-
* @param mode -
|
|
22
|
-
* @returns
|
|
20
|
+
* @param extraSkills - additional skills from user prompt
|
|
21
|
+
* @param mode - working mode (fast/pro/base)
|
|
22
|
+
* @returns Assembled system prompt string
|
|
23
23
|
*/
|
|
24
24
|
export declare function buildSystemPrompt(extraSkills?: Skill[], mode?: AgentMode, pluginSections?: string[]): string;
|
|
25
25
|
//# sourceMappingURL=system-prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAMA,OAAO,EAAwD,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAMA,OAAO,EAAwD,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAyRpD,kEAAkE;AAClE,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAuF5G"}
|