micro-models-agent 0.6.0 → 0.6.2

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.
Files changed (44) hide show
  1. package/dist/agent/error-escalation.d.ts +1 -0
  2. package/dist/agent/error-escalation.d.ts.map +1 -1
  3. package/dist/agent/error-escalation.js +16 -3
  4. package/dist/agent/error-escalation.js.map +1 -1
  5. package/dist/agent/loop.d.ts.map +1 -1
  6. package/dist/agent/loop.js +177 -200
  7. package/dist/agent/loop.js.map +1 -1
  8. package/dist/agent/tool-executor.js +1 -1
  9. package/dist/agent/tool-executor.js.map +1 -1
  10. package/dist/agent/write-enforcer.d.ts +1 -1
  11. package/dist/agent/write-enforcer.d.ts.map +1 -1
  12. package/dist/agent/write-enforcer.js +4 -24
  13. package/dist/agent/write-enforcer.js.map +1 -1
  14. package/dist/config/config.d.ts.map +1 -1
  15. package/dist/config/config.js +2 -2
  16. package/dist/config/config.js.map +1 -1
  17. package/dist/tools/adapters/bash-to-fs.d.ts +20 -0
  18. package/dist/tools/adapters/bash-to-fs.d.ts.map +1 -0
  19. package/dist/tools/adapters/bash-to-fs.js +74 -0
  20. package/dist/tools/adapters/bash-to-fs.js.map +1 -0
  21. package/dist/tools/adapters/content-sanitizer.d.ts +13 -0
  22. package/dist/tools/adapters/content-sanitizer.d.ts.map +1 -0
  23. package/dist/tools/adapters/content-sanitizer.js +73 -0
  24. package/dist/tools/adapters/content-sanitizer.js.map +1 -0
  25. package/dist/tools/adapters/grounding-fixer.d.ts +15 -0
  26. package/dist/tools/adapters/grounding-fixer.d.ts.map +1 -0
  27. package/dist/tools/adapters/grounding-fixer.js +57 -0
  28. package/dist/tools/adapters/grounding-fixer.js.map +1 -0
  29. package/dist/tools/adapters/index.d.ts +6 -0
  30. package/dist/tools/adapters/index.d.ts.map +1 -0
  31. package/dist/tools/adapters/index.js +5 -0
  32. package/dist/tools/adapters/index.js.map +1 -0
  33. package/dist/tools/adapters/pipeline.d.ts +34 -0
  34. package/dist/tools/adapters/pipeline.d.ts.map +1 -0
  35. package/dist/tools/adapters/pipeline.js +58 -0
  36. package/dist/tools/adapters/pipeline.js.map +1 -0
  37. package/dist/tools/adapters/types.d.ts +46 -0
  38. package/dist/tools/adapters/types.d.ts.map +1 -0
  39. package/dist/tools/adapters/types.js +2 -0
  40. package/dist/tools/adapters/types.js.map +1 -0
  41. package/dist/tools/subagent.d.ts.map +1 -1
  42. package/dist/tools/subagent.js +36 -1
  43. package/dist/tools/subagent.js.map +1 -1
  44. package/package.json +1 -1
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Адаптер grounding-fixer.
3
+ *
4
+ * Маленькие модели часто забывают добавить @grounding[файл: path] маркер
5
+ * перед вызовом fs-инструментов. Вместо того чтобы блокировать вызов и
6
+ * гонять модель по retry-циклу, этот адаптер проверяет, есть ли в ответе
7
+ * LLM соответствующий маркер, и если нет — НЕ блокирует вызов, а просто
8
+ * пропускает его. Grounding check в loop.ts после этого адаптера
9
+ * не блокирует, а только предупреждает.
10
+ *
11
+ * Адаптер можно отключить через config.agent.grounding.enabled = false.
12
+ */
13
+ export const groundingFixerAdapter = {
14
+ name: "grounding-fixer",
15
+ priority: 20,
16
+ async adapt(call, ctx) {
17
+ const groundingCfg = ctx.config.agent?.grounding;
18
+ if (groundingCfg?.enabled === false)
19
+ return { action: "pass" };
20
+ // Проверяем только fs-инструменты с path-аргументом
21
+ const path = call.parsed?.arguments?.path;
22
+ if (!path || typeof path !== "string")
23
+ return { action: "pass" };
24
+ const fsTools = new Set([
25
+ "read_file",
26
+ "write_file",
27
+ "edit_file",
28
+ "delete_file",
29
+ "file_info",
30
+ "create_dir",
31
+ "list_dir",
32
+ ]);
33
+ if (!fsTools.has(call.parsed?.name ?? ""))
34
+ return { action: "pass" };
35
+ // Ищем @grounding[файл: path] в сыром ответе LLM
36
+ const markerPattern = /@grounding\[файл:\s*([^\]]+)\]/gi;
37
+ let found = false;
38
+ let match;
39
+ while ((match = markerPattern.exec(ctx.responseText)) !== null) {
40
+ const markerPath = match[1].trim().replace(/\\/g, "/");
41
+ const callPath = String(path).replace(/\\/g, "/");
42
+ if (callPath.endsWith(markerPath) || markerPath.endsWith(callPath)) {
43
+ found = true;
44
+ break;
45
+ }
46
+ }
47
+ if (!found) {
48
+ return {
49
+ action: "replace",
50
+ call,
51
+ log: `[adapter:grounding-fixer] added implicit grounding for "${path}"`,
52
+ };
53
+ }
54
+ return { action: "pass" };
55
+ },
56
+ };
57
+ //# sourceMappingURL=grounding-fixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grounding-fixer.js","sourceRoot":"","sources":["../../../src/tools/adapters/grounding-fixer.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgB;IAChD,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IAEZ,KAAK,CAAC,KAAK,CAAC,IAAgB,EAAE,GAAmB;QAC/C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;QACjD,IAAI,YAAY,EAAE,OAAO,KAAK,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAE/D,oDAAoD;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAEjE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;YACtB,WAAW;YACX,YAAY;YACZ,WAAW;YACX,aAAa;YACb,WAAW;YACX,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAErE,iDAAiD;QACjD,MAAM,aAAa,GAAG,kCAAkC,CAAC;QACzD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,IAAI;gBACJ,GAAG,EAAE,2DAA2D,IAAI,GAAG;aACxE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { AdapterPipeline } from "./pipeline.js";
2
+ export { bashToFsAdapter } from "./bash-to-fs.js";
3
+ export { groundingFixerAdapter } from "./grounding-fixer.js";
4
+ export { contentSanitizerAdapter } from "./content-sanitizer.js";
5
+ export type { ToolAdapter, AdapterContext, AdapterResult } from "./types.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { AdapterPipeline } from "./pipeline.js";
2
+ export { bashToFsAdapter } from "./bash-to-fs.js";
3
+ export { groundingFixerAdapter } from "./grounding-fixer.js";
4
+ export { contentSanitizerAdapter } from "./content-sanitizer.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { ParsedCall } from "../parse-tool-call.js";
2
+ import type { ToolAdapter, AdapterContext } from "./types.js";
3
+ /**
4
+ * Пайплайн адаптеров — запускает все зарегистрированные адаптеры
5
+ * последовательно, позволяя каждому исправить tool call.
6
+ *
7
+ * Адаптеры сортируются по priority (меньше = раньше).
8
+ * Если адаптер вернул 'block', пайплайн останавливается.
9
+ * Если 'replace', следующий адаптер получает уже заменённый call.
10
+ */
11
+ export declare class AdapterPipeline {
12
+ private adapters;
13
+ constructor();
14
+ /** Регистрирует стартовый набор адаптеров */
15
+ private registerDefaults;
16
+ /** Добавить кастомный адаптер */
17
+ register(adapter: ToolAdapter): void;
18
+ /** Заменить все адаптеры */
19
+ setAdapters(adapters: ToolAdapter[]): void;
20
+ /** Получить список адаптеров */
21
+ getAdapters(): ToolAdapter[];
22
+ /**
23
+ * Прогнать tool call через все адаптеры.
24
+ *
25
+ * @returns исправленный call, или null если заблокирован, или undefined если без изменений
26
+ */
27
+ process(call: ParsedCall, ctx: AdapterContext): Promise<{
28
+ call: ParsedCall;
29
+ logs: string[];
30
+ } | {
31
+ blocked: string;
32
+ }>;
33
+ }
34
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/tools/adapters/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK9D;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAqB;;IAMrC,6CAA6C;IAC7C,OAAO,CAAC,gBAAgB;IAOxB,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKpC,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAI1C,gCAAgC;IAChC,WAAW,IAAI,WAAW,EAAE;IAI5B;;;;OAIG;IACG,OAAO,CACX,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAiBvE"}
@@ -0,0 +1,58 @@
1
+ import { bashToFsAdapter } from "./bash-to-fs.js";
2
+ import { groundingFixerAdapter } from "./grounding-fixer.js";
3
+ import { contentSanitizerAdapter } from "./content-sanitizer.js";
4
+ /**
5
+ * Пайплайн адаптеров — запускает все зарегистрированные адаптеры
6
+ * последовательно, позволяя каждому исправить tool call.
7
+ *
8
+ * Адаптеры сортируются по priority (меньше = раньше).
9
+ * Если адаптер вернул 'block', пайплайн останавливается.
10
+ * Если 'replace', следующий адаптер получает уже заменённый call.
11
+ */
12
+ export class AdapterPipeline {
13
+ adapters = [];
14
+ constructor() {
15
+ this.registerDefaults();
16
+ }
17
+ /** Регистрирует стартовый набор адаптеров */
18
+ registerDefaults() {
19
+ this.adapters.push(bashToFsAdapter);
20
+ this.adapters.push(groundingFixerAdapter);
21
+ this.adapters.push(contentSanitizerAdapter);
22
+ this.adapters.sort((a, b) => a.priority - b.priority);
23
+ }
24
+ /** Добавить кастомный адаптер */
25
+ register(adapter) {
26
+ this.adapters.push(adapter);
27
+ this.adapters.sort((a, b) => a.priority - b.priority);
28
+ }
29
+ /** Заменить все адаптеры */
30
+ setAdapters(adapters) {
31
+ this.adapters = [...adapters].sort((a, b) => a.priority - b.priority);
32
+ }
33
+ /** Получить список адаптеров */
34
+ getAdapters() {
35
+ return [...this.adapters];
36
+ }
37
+ /**
38
+ * Прогнать tool call через все адаптеры.
39
+ *
40
+ * @returns исправленный call, или null если заблокирован, или undefined если без изменений
41
+ */
42
+ async process(call, ctx) {
43
+ let current = call;
44
+ const logs = [];
45
+ for (const adapter of this.adapters) {
46
+ const result = await adapter.adapt(current, ctx);
47
+ if (result.action === "block") {
48
+ return { blocked: result.message };
49
+ }
50
+ if (result.action === "replace") {
51
+ logs.push(result.log);
52
+ current = result.call;
53
+ }
54
+ }
55
+ return { call: current, logs };
56
+ }
57
+ }
58
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/tools/adapters/pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAClB,QAAQ,GAAkB,EAAE,CAAC;IAErC;QACE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,6CAA6C;IACrC,gBAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,iCAAiC;IACjC,QAAQ,CAAC,OAAoB;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,4BAA4B;IAC5B,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,gCAAgC;IAChC,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CACX,IAAgB,EAChB,GAAmB;QAEnB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import type { ParsedCall } from "../parse-tool-call.js";
2
+ import type { AppConfig } from "../../config/types.js";
3
+ /**
4
+ * Контекст, передаваемый в каждый адаптер при обработке tool call'а.
5
+ */
6
+ export interface AdapterContext {
7
+ /** Рабочая директория проекта */
8
+ cwd: string;
9
+ /** Конфигурация приложения */
10
+ config: AppConfig;
11
+ /** Сырой ответ LLM (нужен для grounding-fixer) */
12
+ responseText: string;
13
+ /** Список существующих файлов в проекте (для path-resolver) */
14
+ existingFiles: string[];
15
+ }
16
+ /**
17
+ * Результат обработки tool call'а адаптером.
18
+ */
19
+ export type AdapterResult = {
20
+ action: "pass";
21
+ } | {
22
+ action: "replace";
23
+ call: ParsedCall;
24
+ log: string;
25
+ } | {
26
+ action: "block";
27
+ message: string;
28
+ };
29
+ /**
30
+ * Адаптер — единица пайплайна, которая перехватывает и исправляет
31
+ * некорректные вызовы инструментов от LLM.
32
+ *
33
+ * Каждый адаптер решает одну конкретную проблему маленьких моделей:
34
+ * - bash-to-fs: конвертирует bash-команды записи в write_file
35
+ * - grounding-fixer: добавляет пропущенные grounding-маркеры
36
+ * - content-sanitizer: чинит битый content
37
+ */
38
+ export interface ToolAdapter {
39
+ /** Уникальное имя адаптера */
40
+ name: string;
41
+ /** Порядок в пайплайне (меньше = раньше) */
42
+ priority: number;
43
+ /** Обработать tool call. Может пропустить, заменить или заблокировать. */
44
+ adapt(call: ParsedCall, ctx: AdapterContext): Promise<AdapterResult>;
45
+ }
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACtE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/adapters/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;;;;;;;;;GAaG;AAIH,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAsHD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA6J7B"}
1
+ {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;;;;;;;;;GAaG;AAIH,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAsHD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAuM7B"}
@@ -129,6 +129,7 @@ export async function runIsolatedLoop(provider, registry, task, existingFiles, c
129
129
  const ctx = new ContextManager(effectiveProvider.contextWindow);
130
130
  const maxSteps = maxStepsParam ?? 20;
131
131
  let toolCallCount = 0;
132
+ let consecutiveNoToolSteps = 0;
132
133
  for (let step = 0; step < maxSteps; step++) {
133
134
  await ctx.updateTokens(messages);
134
135
  if (step === 0 || step % 5 === 0) {
@@ -150,11 +151,45 @@ export async function runIsolatedLoop(provider, registry, task, existingFiles, c
150
151
  break;
151
152
  }
152
153
  messages.push({ role: "assistant", content: response });
153
- const { validCalls } = parseToolCalls(response);
154
+ const { validCalls, invalidCalls } = parseToolCalls(response);
154
155
  if (validCalls.length === 0) {
156
+ // Поведенческий контроль: не анализируем текст ответа,
157
+ // а смотрим — вызывала ли модель инструменты.
158
+ if (invalidCalls.length > 0) {
159
+ messages.push({
160
+ role: "user",
161
+ content: `[Tool call format error: ${invalidCalls[0]}. Fix and try again.]`,
162
+ });
163
+ continue;
164
+ }
165
+ if (createdFiles.length === 0 && errors.length === 0) {
166
+ consecutiveNoToolSteps++;
167
+ if (consecutiveNoToolSteps >= 2 || toolCallCount > 0) {
168
+ logWarn("SUBAGENT", `model idle for ${consecutiveNoToolSteps} steps without tools at step ${step}`);
169
+ if (toolCallCount === 0) {
170
+ messages.push({
171
+ role: "user",
172
+ content: "[System: ты не вызвал(а) ни одного инструмента. Если задача требует действий — вызови соответствующий инструмент.]",
173
+ });
174
+ continue;
175
+ }
176
+ logDebug("SUBAGENT", `no valid tool calls, stopping`);
177
+ break;
178
+ }
179
+ // Первое бездействие — даём шанс
180
+ logDebug("SUBAGENT", `step ${step}: no tool calls, continuing`);
181
+ messages.push({
182
+ role: "user",
183
+ content: "[System: ты не вызвал(а) ни одного инструмента. Если задача требует действий — вызови соответствующий инструмент.]",
184
+ });
185
+ continue;
186
+ }
187
+ // Была хоть какая-то работа — можно выйти
155
188
  logDebug("SUBAGENT", `no valid tool calls at step ${step}, stopping`);
156
189
  break;
157
190
  }
191
+ // Инструменты вызваны — сбрасываем счётчик
192
+ consecutiveNoToolSteps = 0;
158
193
  for (const call of validCalls) {
159
194
  toolCallCount++;
160
195
  const { output, exitCode } = await executeToolCall(call, toolExecutor, cwd, createdFiles, errors, step);
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "micro-models-agent",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Micro Models Agent (MMA) — LLM agent harness for small models (Qwen3.5-9B, 32K-64K context)",
5
5
  "type": "module",
6
6
  "bin": {