micro-models-agent 0.5.0 → 0.6.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.
Files changed (115) hide show
  1. package/dist/agent/context.d.ts +3 -6
  2. package/dist/agent/context.d.ts.map +1 -1
  3. package/dist/agent/context.js +8 -41
  4. package/dist/agent/context.js.map +1 -1
  5. package/dist/agent/error-escalation.d.ts +6 -6
  6. package/dist/agent/error-escalation.d.ts.map +1 -1
  7. package/dist/agent/error-escalation.js +67 -34
  8. package/dist/agent/error-escalation.js.map +1 -1
  9. package/dist/agent/loop.d.ts.map +1 -1
  10. package/dist/agent/loop.js +12 -78
  11. package/dist/agent/loop.js.map +1 -1
  12. package/dist/agent/memory.d.ts +0 -29
  13. package/dist/agent/memory.d.ts.map +1 -1
  14. package/dist/agent/memory.js +1 -78
  15. package/dist/agent/memory.js.map +1 -1
  16. package/dist/agent/modes/registry.d.ts +1 -1
  17. package/dist/agent/modes/registry.d.ts.map +1 -1
  18. package/dist/agent/modes/registry.js +26 -27
  19. package/dist/agent/modes/registry.js.map +1 -1
  20. package/dist/agent/modes/types.d.ts +0 -5
  21. package/dist/agent/modes/types.d.ts.map +1 -1
  22. package/dist/agent/system-prompt.d.ts +1 -1
  23. package/dist/agent/system-prompt.d.ts.map +1 -1
  24. package/dist/agent/system-prompt.js +95 -147
  25. package/dist/agent/system-prompt.js.map +1 -1
  26. package/dist/agent/tool-executor.d.ts +2 -6
  27. package/dist/agent/tool-executor.d.ts.map +1 -1
  28. package/dist/agent/tool-executor.js +79 -65
  29. package/dist/agent/tool-executor.js.map +1 -1
  30. package/dist/agent/user-profile.d.ts +1 -21
  31. package/dist/agent/user-profile.d.ts.map +1 -1
  32. package/dist/agent/user-profile.js +41 -174
  33. package/dist/agent/user-profile.js.map +1 -1
  34. package/dist/agent/write-enforcer.d.ts +3 -7
  35. package/dist/agent/write-enforcer.d.ts.map +1 -1
  36. package/dist/agent/write-enforcer.js +7 -71
  37. package/dist/agent/write-enforcer.js.map +1 -1
  38. package/dist/cli/config.d.ts.map +1 -1
  39. package/dist/cli/config.js +2 -25
  40. package/dist/cli/config.js.map +1 -1
  41. package/dist/cli.d.ts +1 -1
  42. package/dist/cli.d.ts.map +1 -1
  43. package/dist/cli.js +102 -139
  44. package/dist/cli.js.map +1 -1
  45. package/dist/config/config.d.ts +15 -0
  46. package/dist/config/config.d.ts.map +1 -1
  47. package/dist/config/config.js +4 -38
  48. package/dist/config/config.js.map +1 -1
  49. package/dist/config/types.d.ts +0 -2
  50. package/dist/config/types.d.ts.map +1 -1
  51. package/dist/repl/commands.d.ts +16 -16
  52. package/dist/repl/commands.d.ts.map +1 -1
  53. package/dist/repl/commands.js +474 -321
  54. package/dist/repl/commands.js.map +1 -1
  55. package/dist/repl/index.d.ts +4 -4
  56. package/dist/repl/index.d.ts.map +1 -1
  57. package/dist/repl/index.js +60 -56
  58. package/dist/repl/index.js.map +1 -1
  59. package/dist/session/store.d.ts +4 -7
  60. package/dist/session/store.d.ts.map +1 -1
  61. package/dist/session/store.js +35 -71
  62. package/dist/session/store.js.map +1 -1
  63. package/dist/setup-wizard.d.ts.map +1 -1
  64. package/dist/setup-wizard.js +5 -23
  65. package/dist/setup-wizard.js.map +1 -1
  66. package/dist/styling/engine.d.ts +7 -12
  67. package/dist/styling/engine.d.ts.map +1 -1
  68. package/dist/styling/engine.js +85 -134
  69. package/dist/styling/engine.js.map +1 -1
  70. package/dist/styling/index.d.ts +2 -2
  71. package/dist/styling/index.d.ts.map +1 -1
  72. package/dist/styling/index.js +0 -1
  73. package/dist/styling/index.js.map +1 -1
  74. package/dist/styling/loader.d.ts +2 -2
  75. package/dist/styling/loader.d.ts.map +1 -1
  76. package/dist/styling/loader.js +99 -47
  77. package/dist/styling/loader.js.map +1 -1
  78. package/dist/subagent/chat.d.ts +12 -0
  79. package/dist/subagent/chat.d.ts.map +1 -1
  80. package/dist/subagent/chat.js +28 -6
  81. package/dist/subagent/chat.js.map +1 -1
  82. package/dist/subagent/context.d.ts +7 -0
  83. package/dist/subagent/context.d.ts.map +1 -1
  84. package/dist/subagent/context.js +11 -0
  85. package/dist/subagent/context.js.map +1 -1
  86. package/dist/subagent/definition.d.ts +4 -0
  87. package/dist/subagent/definition.d.ts.map +1 -1
  88. package/dist/subagent/definition.js +4 -0
  89. package/dist/subagent/definition.js.map +1 -1
  90. package/dist/subagent/errors.d.ts +17 -0
  91. package/dist/subagent/errors.d.ts.map +1 -1
  92. package/dist/subagent/errors.js +21 -0
  93. package/dist/subagent/errors.js.map +1 -1
  94. package/dist/subagent/validation.d.ts +6 -0
  95. package/dist/subagent/validation.d.ts.map +1 -1
  96. package/dist/subagent/validation.js +6 -0
  97. package/dist/subagent/validation.js.map +1 -1
  98. package/dist/tools/hooks.d.ts +2 -0
  99. package/dist/tools/hooks.d.ts.map +1 -1
  100. package/dist/tools/hooks.js +118 -16
  101. package/dist/tools/hooks.js.map +1 -1
  102. package/dist/tools/parse-tool-call.d.ts.map +1 -1
  103. package/dist/tools/parse-tool-call.js +16 -14
  104. package/dist/tools/parse-tool-call.js.map +1 -1
  105. package/dist/tools/registry.d.ts +5 -3
  106. package/dist/tools/registry.d.ts.map +1 -1
  107. package/dist/tools/registry.js +47 -28
  108. package/dist/tools/registry.js.map +1 -1
  109. package/dist/tools/subagent.d.ts +0 -10
  110. package/dist/tools/subagent.d.ts.map +1 -1
  111. package/dist/tools/subagent.js +11 -8
  112. package/dist/tools/subagent.js.map +1 -1
  113. package/dist/tools/types.d.ts +2 -10
  114. package/dist/tools/types.d.ts.map +1 -1
  115. package/package.json +1 -1
@@ -2,6 +2,23 @@
2
2
  export declare const TRIVIAL_ERROR_PATTERNS: RegExp[];
3
3
  /** Паттерны ошибок которые ВСЕГДА требуют specialist (не trivial) */
4
4
  export declare const NON_TRIVIAL_ERROR_PATTERNS: RegExp[];
5
+ /**
6
+ * Проверяет является ли ошибка тривиальной (не требует specialist).
7
+ *
8
+ * @param toolName - имя инструмента
9
+ * @param errorOutput - текст ошибки
10
+ * @returns true если ошибка тривиальная
11
+ */
5
12
  export declare function isTrivialError(toolName: string, errorOutput: string): boolean;
13
+ /**
14
+ * Контекст для specialist'а — фокусированное описание ошибки.
15
+ *
16
+ * @param toolName - имя упавшего инструмента
17
+ * @param toolArgs - аргументы которые были переданы
18
+ * @param errorOutput - текст ошибки
19
+ * @param userTask - исходный запрос пользователя (краткое описание)
20
+ * @param attemptCount - сколько раз ошибка повторилась
21
+ * @returns Текст задачи для specialist'а
22
+ */
6
23
  export declare function buildSpecialistTask(toolName: string, toolArgs: Record<string, unknown>, errorOutput: string, userTask: string, attemptCount: number): string;
7
24
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/subagent/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,UAMlC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,UAQtC,CAAC;AAEF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAiB7E;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAgCR"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/subagent/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,UAMlC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,UAQtC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAmB7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAiCR"}
@@ -16,22 +16,43 @@ export const NON_TRIVIAL_ERROR_PATTERNS = [
16
16
  /enoent/i,
17
17
  /eacces/i,
18
18
  ];
19
+ /**
20
+ * Проверяет является ли ошибка тривиальной (не требует specialist).
21
+ *
22
+ * @param toolName - имя инструмента
23
+ * @param errorOutput - текст ошибки
24
+ * @returns true если ошибка тривиальная
25
+ */
19
26
  export function isTrivialError(toolName, errorOutput) {
27
+ // Синтаксические и критические ошибки — ВСЕГДА не trivial
20
28
  if (NON_TRIVIAL_ERROR_PATTERNS.some((p) => p.test(errorOutput))) {
21
29
  return false;
22
30
  }
31
+ // grep_search/glob_search с 0 результатами — нормальное поведение
23
32
  if (toolName === "grep_search" || toolName === "glob_search") {
24
33
  if (/0 results|0 files|no match/i.test(errorOutput) &&
25
34
  errorOutput.length < 200) {
26
35
  return true;
27
36
  }
28
37
  }
38
+ // Любая ошибка < 10 символов — скорее всего trivia
29
39
  if (errorOutput.length < 10)
30
40
  return true;
31
41
  return TRIVIAL_ERROR_PATTERNS.some((p) => p.test(errorOutput));
32
42
  }
43
+ /**
44
+ * Контекст для specialist'а — фокусированное описание ошибки.
45
+ *
46
+ * @param toolName - имя упавшего инструмента
47
+ * @param toolArgs - аргументы которые были переданы
48
+ * @param errorOutput - текст ошибки
49
+ * @param userTask - исходный запрос пользователя (краткое описание)
50
+ * @param attemptCount - сколько раз ошибка повторилась
51
+ * @returns Текст задачи для specialist'а
52
+ */
33
53
  export function buildSpecialistTask(toolName, toolArgs, errorOutput, userTask, attemptCount) {
34
54
  const argsStr = JSON.stringify(toolArgs, null, 2);
55
+ // Специфичные подсказки для web_browse evaluate
35
56
  let webHints = "";
36
57
  if (toolName === "web_browse" && String(toolArgs?.action) === "evaluate") {
37
58
  const code = String(toolArgs?.value ?? toolArgs?.code ?? "");
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/subagent/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,+BAA+B;IAC/B,mBAAmB;IACnB,0BAA0B;IAC1B,kBAAkB;CACnB,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,mBAAmB;IACnB,cAAc;IACd,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IACpB,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,WAAmB;IAClE,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC7D,IACE,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC;YAC/C,WAAW,CAAC,MAAM,GAAG,GAAG,EACxB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,QAAiC,EACjC,WAAmB,EACnB,QAAgB,EAChB,YAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAElD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7D,QAAQ,GAAG;YACT,EAAE;YACF,sEAAsE;YACtE,iDAAiD;YACjD,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO;QACL,aAAa,QAAQ,gBAAgB,YAAY,iDAAiD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;QAC3H,EAAE;QACF,mBAAmB;QACnB,WAAW,QAAQ,EAAE;QACrB,gBAAgB,OAAO,EAAE;QACzB,EAAE;QACF,eAAe;QACf,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAChC,QAAQ;QACR,EAAE;QACF,8EAA8E;QAC9E,4DAA4D;QAC5D,uEAAuE;QACvE,wDAAwD;QACxD,0CAA0C;QAC1C,iEAAiE;KAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/subagent/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,+BAA+B;IAC/B,mBAAmB;IACnB,0BAA0B;IAC1B,kBAAkB;CACnB,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,mBAAmB;IACnB,cAAc;IACd,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IACpB,SAAS;IACT,SAAS;CACV,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,WAAmB;IAClE,0DAA0D;IAC1D,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kEAAkE;IAClE,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC7D,IACE,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC;YAC/C,WAAW,CAAC,MAAM,GAAG,GAAG,EACxB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,mDAAmD;IACnD,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,QAAiC,EACjC,WAAmB,EACnB,QAAgB,EAChB,YAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAElD,gDAAgD;IAChD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7D,QAAQ,GAAG;YACT,EAAE;YACF,sEAAsE;YACtE,iDAAiD;YACjD,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO;QACL,aAAa,QAAQ,gBAAgB,YAAY,iDAAiD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;QAC3H,EAAE;QACF,mBAAmB;QACnB,WAAW,QAAQ,EAAE;QACrB,gBAAgB,OAAO,EAAE;QACzB,EAAE;QACF,eAAe;QACf,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAChC,QAAQ;QACR,EAAE;QACF,8EAA8E;QAC9E,4DAA4D;QAC5D,uEAAuE;QACvE,wDAAwD;QACxD,0CAA0C;QAC1C,iEAAiE;KAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -2,6 +2,12 @@
2
2
  export declare const VALID_TOOLS: Set<string>;
3
3
  /** Обязательные аргументы для каждого инструмента */
4
4
  export declare const REQUIRED_ARGS: Record<string, string[]>;
5
+ /**
6
+ * Валидация tool call: проверка имени инструмента и обязательных аргументов.
7
+ *
8
+ * @param parsed - распарсенный JSON из tool call
9
+ * @returns Результат валидации с именем инструмента и командой (для bash)
10
+ */
5
11
  export declare function validateToolCall(parsed: any): {
6
12
  valid: boolean;
7
13
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,eAAO,MAAM,WAAW,aA0BtB,CAAC;AAEH,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAiBlD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAgCA"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,eAAO,MAAM,WAAW,aA0BtB,CAAC;AAEH,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAiBlD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAgCA"}
@@ -45,6 +45,12 @@ export const REQUIRED_ARGS = {
45
45
  user_profile: [],
46
46
  question: ["question"],
47
47
  };
48
+ /**
49
+ * Валидация tool call: проверка имени инструмента и обязательных аргументов.
50
+ *
51
+ * @param parsed - распарсенный JSON из tool call
52
+ * @returns Результат валидации с именем инструмента и командой (для bash)
53
+ */
48
54
  export function validateToolCall(parsed) {
49
55
  if (!parsed || typeof parsed !== "object") {
50
56
  return { valid: false, error: "Not an object" };
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IACjC,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,SAAS;IACT,OAAO;IACP,cAAc;IACd,UAAU;IACV,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,MAAM;IACN,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,UAAU;IACV,aAAa;CACd,CAAC,CAAC;AAEH,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC/B,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC;IAC/C,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,SAAS,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;IACpC,SAAS,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;IACpC,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW;IAM1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,iCAAiC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACrH,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC"}
@@ -38,5 +38,7 @@ export declare function runPostToolUseHooks(cwd: string, toolName: string, cmd:
38
38
  export declare function runPostEditHooks(cwd: string, filePath: string): HookResult;
39
39
  /** Возвращает список всех зарегистрированных хуков */
40
40
  export declare function listHooks(cwd: string): string[];
41
+ export declare function runLintAfterWrite(cwd: string, filePath: string): string | null;
42
+ export declare function sendNotification(title: string, body: string): void;
41
43
  export {};
42
44
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,sEAAsE;AACtE,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoDD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAgBzF;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAuB5H;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAgB1E;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAS/C"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,sEAAsE;AACtE,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2DD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,UAAU,CAgBZ;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,UAAU,CAuBZ;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAgB1E;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAW/C;AAyDD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAsClE"}
@@ -1,26 +1,34 @@
1
- import { readFileSync, existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { execSync } from 'node:child_process';
1
+ import { readFileSync, existsSync, writeFileSync, unlinkSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { tmpdir, platform } from "node:os";
4
+ import { execSync } from "node:child_process";
4
5
  const DEFAULT_HOOKS = {};
5
6
  /** Загружает конфигурацию хуков из .mma/hooks.json или .mmrc */
6
7
  function loadHooksConfig(cwd) {
7
8
  // Check .mma/hooks.json
8
- const localPath = join(cwd, '.mma', 'hooks.json');
9
+ const localPath = join(cwd, ".mma", "hooks.json");
9
10
  if (existsSync(localPath)) {
10
11
  try {
11
- return { ...DEFAULT_HOOKS, ...JSON.parse(readFileSync(localPath, 'utf-8')) };
12
+ return {
13
+ ...DEFAULT_HOOKS,
14
+ ...JSON.parse(readFileSync(localPath, "utf-8")),
15
+ };
16
+ }
17
+ catch {
18
+ /* ignore */
12
19
  }
13
- catch { /* ignore */ }
14
20
  }
15
21
  // Check .mmrc hooks section
16
- const rcPath = join(cwd, '.mmrc');
22
+ const rcPath = join(cwd, ".mmrc");
17
23
  if (existsSync(rcPath)) {
18
24
  try {
19
- const rc = JSON.parse(readFileSync(rcPath, 'utf-8'));
25
+ const rc = JSON.parse(readFileSync(rcPath, "utf-8"));
20
26
  if (rc.hooks)
21
27
  return { ...DEFAULT_HOOKS, ...rc.hooks };
22
28
  }
23
- catch { /* ignore */ }
29
+ catch {
30
+ /* ignore */
31
+ }
24
32
  }
25
33
  return DEFAULT_HOOKS;
26
34
  }
@@ -30,13 +38,13 @@ function runHook(command, context) {
30
38
  // Replace {{variable}} placeholders
31
39
  let cmd = command;
32
40
  for (const [key, value] of Object.entries(context)) {
33
- cmd = cmd.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value);
41
+ cmd = cmd.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value);
34
42
  }
35
43
  const output = execSync(cmd, {
36
- encoding: 'utf-8',
44
+ encoding: "utf-8",
37
45
  timeout: 10000,
38
46
  cwd: context.cwd || process.cwd(),
39
- stdio: ['pipe', 'pipe', 'pipe'],
47
+ stdio: ["pipe", "pipe", "pipe"],
40
48
  });
41
49
  return { continue: true, message: output.trim() };
42
50
  }
@@ -91,7 +99,7 @@ export function runPostEditHooks(cwd, filePath) {
91
99
  if (!config.postEdit || config.postEdit.length === 0) {
92
100
  return { continue: true };
93
101
  }
94
- const context = { cwd, file: filePath, cmd: '' };
102
+ const context = { cwd, file: filePath, cmd: "" };
95
103
  for (const hook of config.postEdit) {
96
104
  const result = runHook(hook, context);
97
105
  if (!result.continue) {
@@ -105,11 +113,105 @@ export function listHooks(cwd) {
105
113
  const config = loadHooksConfig(cwd);
106
114
  const hooks = [];
107
115
  if (config.preToolUse)
108
- hooks.push(...config.preToolUse.map(h => `[pre] ${h}`));
116
+ hooks.push(...config.preToolUse.map((h) => `[pre] ${h}`));
109
117
  if (config.postToolUse)
110
- hooks.push(...config.postToolUse.map(h => `[post] ${h}`));
118
+ hooks.push(...config.postToolUse.map((h) => `[post] ${h}`));
111
119
  if (config.postEdit)
112
- hooks.push(...config.postEdit.map(h => `[edit] ${h}`));
120
+ hooks.push(...config.postEdit.map((h) => `[edit] ${h}`));
113
121
  return hooks;
114
122
  }
123
+ // ─── Builtin hooks (replaces old PluginManager) ─────────────────
124
+ const LINTER_DETECT_COMMANDS = [
125
+ { name: "eslint", cmd: "npx eslint --version" },
126
+ { name: "biome", cmd: "npx @biomejs/biome --version" },
127
+ { name: "prettier", cmd: "npx prettier --version" },
128
+ ];
129
+ let cachedLinter = null;
130
+ function detectLinter(cwd) {
131
+ for (const { name, cmd } of LINTER_DETECT_COMMANDS) {
132
+ try {
133
+ execSync(cmd, { cwd, timeout: 5000, windowsHide: true, stdio: "pipe" });
134
+ cachedLinter = name;
135
+ return name;
136
+ }
137
+ catch { }
138
+ }
139
+ return null;
140
+ }
141
+ function runLinter(linter, filePath, cwd) {
142
+ try {
143
+ let cmd;
144
+ switch (linter) {
145
+ case "eslint":
146
+ cmd = `npx eslint "${filePath}" --format compact`;
147
+ break;
148
+ case "biome":
149
+ cmd = `npx @biomejs/biome check "${filePath}"`;
150
+ break;
151
+ case "prettier":
152
+ cmd = `npx prettier --check "${filePath}"`;
153
+ break;
154
+ default:
155
+ return null;
156
+ }
157
+ execSync(cmd, {
158
+ cwd,
159
+ timeout: 15000,
160
+ windowsHide: true,
161
+ encoding: "utf-8",
162
+ stdio: ["pipe", "pipe", "pipe"],
163
+ });
164
+ return null;
165
+ }
166
+ catch (e) {
167
+ const output = e.stdout?.toString() || e.stderr?.toString() || "";
168
+ return output ? output.slice(0, 1000) : null;
169
+ }
170
+ }
171
+ export function runLintAfterWrite(cwd, filePath) {
172
+ if (!filePath || !/\.(ts|tsx|js|jsx|mjs|cjs)$/.test(filePath))
173
+ return null;
174
+ const linter = cachedLinter ?? detectLinter(cwd);
175
+ if (!linter)
176
+ return null;
177
+ return runLinter(linter, filePath, cwd);
178
+ }
179
+ export function sendNotification(title, body) {
180
+ const p = platform();
181
+ try {
182
+ if (p === "win32") {
183
+ const safeTitle = title.replace(/'/g, "''");
184
+ const safeBody = body.replace(/'/g, "''");
185
+ const psScript = `Add-Type -AssemblyName System.Windows.Forms
186
+ $n = New-Object System.Windows.Forms.NotifyIcon
187
+ $n.Icon = [System.Drawing.SystemIcons]::Information
188
+ $n.Visible = $true
189
+ $n.ShowBalloonTip(5000, '${safeTitle}', '${safeBody}', [System.Windows.Forms.ToolTipIcon]::Info)
190
+ Start-Sleep -Seconds 2
191
+ $n.Dispose()`;
192
+ const tmpFile = join(tmpdir(), `mma-notify-${Date.now()}.ps1`);
193
+ writeFileSync(tmpFile, psScript, "utf-8");
194
+ try {
195
+ execSync(`powershell -ExecutionPolicy Bypass -File "${tmpFile}"`, {
196
+ timeout: 8000,
197
+ windowsHide: true,
198
+ stdio: "pipe",
199
+ });
200
+ }
201
+ finally {
202
+ try {
203
+ unlinkSync(tmpFile);
204
+ }
205
+ catch { }
206
+ }
207
+ }
208
+ else if (p === "darwin") {
209
+ execSync(`osascript -e 'display notification "${body.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}"'`, { timeout: 5000, stdio: "pipe" });
210
+ }
211
+ else {
212
+ execSync(`notify-send "${title.replace(/"/g, '\\"')}" "${body.replace(/"/g, '\\"')}"`, { timeout: 5000, stdio: "pipe" });
213
+ }
214
+ }
215
+ catch { }
216
+ }
115
217
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-tool-call.d.ts","sourceRoot":"","sources":["../../src/tools/parse-tool-call.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,GAAG,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA+C9D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAwB5D"}
1
+ {"version":3,"file":"parse-tool-call.d.ts","sourceRoot":"","sources":["../../src/tools/parse-tool-call.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,GAAG,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAwD9D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA4B5D"}
@@ -1,24 +1,24 @@
1
- import { jsonrepair } from 'jsonrepair';
2
- import { validateToolCall } from './subagent.js';
1
+ import { jsonrepair } from "jsonrepair";
2
+ import { validateToolCall } from "../subagent/validation.js";
3
3
  export function extractAllToolCalls(response) {
4
4
  const results = [];
5
5
  let text = response;
6
6
  while (true) {
7
- const tcStart = text.indexOf('<tool_call>');
7
+ const tcStart = text.indexOf("<tool_call>");
8
8
  if (tcStart === -1)
9
9
  break;
10
- const tcEnd = text.indexOf('</tool_call>', tcStart);
10
+ const tcEnd = text.indexOf("</tool_call>", tcStart);
11
11
  let block;
12
12
  if (tcEnd !== -1) {
13
- block = text.slice(tcStart + '<tool_call>'.length, tcEnd);
14
- text = text.slice(tcEnd + '</tool_call>'.length);
13
+ block = text.slice(tcStart + "<tool_call>".length, tcEnd);
14
+ text = text.slice(tcEnd + "</tool_call>".length);
15
15
  }
16
16
  else {
17
- block = text.slice(tcStart + '<tool_call>'.length);
18
- text = '';
17
+ block = text.slice(tcStart + "<tool_call>".length);
18
+ text = "";
19
19
  }
20
- block = block.replace(/```(?:json)?\s*/g, '').replace(/```\s*/g, '');
21
- const jsonStart = block.indexOf('{');
20
+ block = block.replace(/```(?:json)?\s*/g, "").replace(/```\s*/g, "");
21
+ const jsonStart = block.indexOf("{");
22
22
  if (jsonStart === -1)
23
23
  continue;
24
24
  let depth = 0;
@@ -30,7 +30,7 @@ export function extractAllToolCalls(response) {
30
30
  esc = false;
31
31
  continue;
32
32
  }
33
- if (ch === '\\' && inStr) {
33
+ if (ch === "\\" && inStr) {
34
34
  esc = true;
35
35
  continue;
36
36
  }
@@ -40,9 +40,9 @@ export function extractAllToolCalls(response) {
40
40
  }
41
41
  if (inStr)
42
42
  continue;
43
- if (ch === '{')
43
+ if (ch === "{")
44
44
  depth++;
45
- if (ch === '}')
45
+ if (ch === "}")
46
46
  depth--;
47
47
  if (depth === 0) {
48
48
  results.push(block.slice(jsonStart, i + 1));
@@ -68,7 +68,9 @@ export function parseToolCalls(response) {
68
68
  try {
69
69
  p = JSON.parse(jsonRaw);
70
70
  }
71
- catch { /* skip */ }
71
+ catch {
72
+ /* skip */
73
+ }
72
74
  }
73
75
  if (p) {
74
76
  const v = validateToolCall(p);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-tool-call.js","sourceRoot":"","sources":["../../src/tools/parse-tool-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-tool-call.js","sourceRoot":"","sources":["../../src/tools/parse-tool-call.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { ChatMessage } from '../llm/provider.js';
2
- import type { BashResult } from './bash.js';
1
+ import type { ChatMessage } from "../llm/provider.js";
2
+ import type { BashResult } from "./bash.js";
3
3
  /**
4
4
  * Реестр всех инструментов агента.
5
5
  *
@@ -9,7 +9,7 @@ import type { BashResult } from './bash.js';
9
9
  * @module tools/registry
10
10
  */
11
11
  export interface ToolDefinition {
12
- type: 'function';
12
+ type: "function";
13
13
  function: {
14
14
  name: string;
15
15
  description: string;
@@ -22,6 +22,8 @@ export interface ToolCall {
22
22
  arguments: Record<string, unknown>;
23
23
  }
24
24
  export type ToolResult = BashResult;
25
+ /** Все определения инструментов (для system prompt) */
26
+ export declare const ALL_DEFINITIONS: ToolDefinition[];
25
27
  /**
26
28
  * Реестр инструментов — хранит определения и валидирует имена.
27
29
  * Исполнение — через ToolExecutor.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmBtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AA+CpC;;;GAGG;AACH,qBAAa,YAAY;IACvB,2EAA2E;IAC3E,cAAc,IAAI,cAAc,EAAE;IAIlC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAyBtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAEpC,uDAAuD;AACvD,eAAO,MAAM,eAAe,EAAE,cAAc,EAuD3C,CAAC;AAIF;;;GAGG;AACH,qBAAa,YAAY;IACvB,2EAA2E;IAC3E,cAAc,IAAI,cAAc,EAAE;IAIlC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
@@ -1,36 +1,48 @@
1
- import { readFileDefinition } from './fs/read-file.js';
2
- import { writeFileDefinition } from './fs/write-file.js';
3
- import { editFileDefinition } from './fs/edit-file.js';
4
- import { listDirDefinition } from './fs/list-dir.js';
5
- import { scaffoldDefinition } from './native/scaffold.js';
6
- import { projectMapDefinition } from './native/project-map.js';
7
- import { createDirDefinition } from './fs/create-dir.js';
8
- import { deleteFileDefinition } from './fs/delete-file.js';
9
- import { copyFileDefinition } from './fs/copy-file.js';
10
- import { moveFileDefinition } from './fs/move-file.js';
11
- import { fileInfoDefinition } from './fs/file-info.js';
12
- import { globSearchDefinition } from './fs/glob-search.js';
13
- import { grepSearchDefinition } from './fs/grep-search.js';
14
- import { treeDefinition } from './fs/tree.js';
15
- import { bashDefinition } from './bash.js';
16
- import { webSearchDefinition } from './web-search.js';
17
- import { webFetchDefinition } from './web-fetch.js';
18
- import { webBrowseDefinition } from './web-browse.js';
1
+ import { readFileDefinition } from "./fs/read-file.js";
2
+ import { writeFileDefinition } from "./fs/write-file.js";
3
+ import { editFileDefinition } from "./fs/edit-file.js";
4
+ import { listDirDefinition } from "./fs/list-dir.js";
5
+ import { scaffoldDefinition } from "./native/scaffold.js";
6
+ import { projectMapDefinition } from "./native/project-map.js";
7
+ import { createDirDefinition } from "./fs/create-dir.js";
8
+ import { deleteFileDefinition } from "./fs/delete-file.js";
9
+ import { copyFileDefinition } from "./fs/copy-file.js";
10
+ import { moveFileDefinition } from "./fs/move-file.js";
11
+ import { fileInfoDefinition } from "./fs/file-info.js";
12
+ import { globSearchDefinition } from "./fs/glob-search.js";
13
+ import { grepSearchDefinition } from "./fs/grep-search.js";
14
+ import { treeDefinition } from "./fs/tree.js";
15
+ import { bashDefinition } from "./bash.js";
16
+ import { webSearchDefinition } from "./web-search.js";
17
+ import { webFetchDefinition } from "./web-fetch.js";
18
+ import { webBrowseDefinition } from "./web-browse.js";
19
+ import { planDefinition } from "./native/plan.js";
20
+ import { todoDefinition } from "./native/todo.js";
21
+ import { questionDefinition } from "./native/question.js";
22
+ import { approveDefinition } from "./native/approve.js";
23
+ import { userProfileDefinition } from "./native/user-profile.js";
24
+ import { themeDefinition } from "./native/theme.js";
19
25
  /** Все определения инструментов (для system prompt) */
20
- const ALL_DEFINITIONS = [
26
+ export const ALL_DEFINITIONS = [
21
27
  // Native
22
28
  {
23
- type: 'function',
29
+ type: "function",
24
30
  function: {
25
- name: 'subagent',
26
- description: 'Delegate a task to an isolated agent in a fresh context. Use for EACH file when creating 3+ new files. Arguments: task (required, what to do), existingFiles (optional, comma-separated files for context).',
31
+ name: "subagent",
32
+ description: "Delegate a task to an isolated agent in a fresh context. Use for EACH file when creating 3+ new files. Arguments: task (required, what to do), existingFiles (optional, comma-separated files for context).",
27
33
  parameters: {
28
- type: 'object',
34
+ type: "object",
29
35
  properties: {
30
- task: { type: 'string', description: 'What the subagent should create/fix/check' },
31
- existingFiles: { type: 'string', description: 'Comma-separated files the subagent can read for context (optional)' },
36
+ task: {
37
+ type: "string",
38
+ description: "What the subagent should create/fix/check",
39
+ },
40
+ existingFiles: {
41
+ type: "string",
42
+ description: "Comma-separated files the subagent can read for context (optional)",
43
+ },
32
44
  },
33
- required: ['task'],
45
+ required: ["task"],
34
46
  },
35
47
  },
36
48
  },
@@ -57,8 +69,15 @@ const ALL_DEFINITIONS = [
57
69
  webSearchDefinition,
58
70
  webFetchDefinition,
59
71
  webBrowseDefinition,
72
+ // Native
73
+ planDefinition,
74
+ todoDefinition,
75
+ questionDefinition,
76
+ approveDefinition,
77
+ userProfileDefinition,
78
+ themeDefinition,
60
79
  ];
61
- const VALID_TOOL_NAMES = new Set(ALL_DEFINITIONS.map(d => d.function.name));
80
+ const VALID_TOOL_NAMES = new Set(ALL_DEFINITIONS.map((d) => d.function.name));
62
81
  /**
63
82
  * Реестр инструментов — хранит определения и валидирует имена.
64
83
  * Исполнение — через ToolExecutor.
@@ -69,7 +88,7 @@ export class ToolRegistry {
69
88
  return ALL_DEFINITIONS;
70
89
  }
71
90
  isToolCall(message) {
72
- return message.role === 'assistant' && message.content === '';
91
+ return message.role === "assistant" && message.content === "";
73
92
  }
74
93
  isValidTool(name) {
75
94
  return VALID_TOOL_NAMES.has(name);
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AA6BtD,uDAAuD;AACvD,MAAM,eAAe,GAAqB;IACxC,SAAS;IACT;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,6MAA6M;YAC1N,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;oBAClF,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oEAAoE,EAAE;iBACrH;gBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;aACnB;SACF;KACF;IACD,OAAO;IACP,cAAc;IACd,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,KAAK;IACL,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;IACpB,cAAc;IACd,MAAM;IACN,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,YAAY;IACvB,2EAA2E;IAC3E,cAAc;QACZ,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,OAAoB;QAC7B,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,6 @@ import type { LLMProvider } from "../llm/provider.js";
2
2
  import { ToolRegistry } from "./registry.js";
3
3
  import type { ToolExecutor } from "../agent/tool-executor.js";
4
4
  import type { OutputRenderer } from "../ui/renderer.js";
5
- import { validateToolCall } from "../subagent/validation.js";
6
- export { validateToolCall };
7
5
  /**
8
6
  * Изолированный цикл агента для субагентов.
9
7
  *
@@ -25,12 +23,6 @@ export interface IsolatedLoopResult {
25
23
  summary: string;
26
24
  turns: number;
27
25
  }
28
- import { buildSubagentContext } from "../subagent/context.js";
29
- export { buildSubagentContext };
30
- import { buildSpecialistTask, isTrivialError } from "../subagent/errors.js";
31
- export { buildSpecialistTask, isTrivialError };
32
- import { doChat } from "../subagent/chat.js";
33
- export { doChat };
34
26
  /**
35
27
  * Запуск изолированного цикла агента (субагент).
36
28
  *
@@ -44,6 +36,4 @@ export { doChat };
44
36
  * @returns Результат: созданные файлы, ошибки, краткое описание, количество ходов
45
37
  */
46
38
  export declare function runIsolatedLoop(provider: LLMProvider, registry: ToolRegistry, task: string, existingFiles: string, cwd: string, quiet: boolean, renderer: OutputRenderer, toolExecutor?: ToolExecutor, mode?: string, toolModel?: string, maxStepsParam?: number): Promise<IsolatedLoopResult>;
47
- import { subagentDefinition } from "../subagent/definition.js";
48
- export { subagentDefinition };
49
39
  //# sourceMappingURL=subagent.d.ts.map