micro-models-agent 0.4.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.
- package/dist/agent/context.d.ts +3 -6
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +8 -41
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/error-escalation.d.ts +6 -6
- package/dist/agent/error-escalation.d.ts.map +1 -1
- package/dist/agent/error-escalation.js +67 -34
- package/dist/agent/error-escalation.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +14 -79
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory.d.ts +0 -29
- package/dist/agent/memory.d.ts.map +1 -1
- package/dist/agent/memory.js +1 -78
- package/dist/agent/memory.js.map +1 -1
- package/dist/agent/modes/registry.d.ts +1 -1
- package/dist/agent/modes/registry.d.ts.map +1 -1
- package/dist/agent/modes/registry.js +26 -27
- package/dist/agent/modes/registry.js.map +1 -1
- package/dist/agent/modes/types.d.ts +0 -5
- package/dist/agent/modes/types.d.ts.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +95 -147
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-executor.d.ts +2 -6
- package/dist/agent/tool-executor.d.ts.map +1 -1
- package/dist/agent/tool-executor.js +79 -65
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/agent/user-profile.d.ts +1 -21
- package/dist/agent/user-profile.d.ts.map +1 -1
- package/dist/agent/user-profile.js +41 -174
- package/dist/agent/user-profile.js.map +1 -1
- package/dist/agent/write-enforcer.d.ts +3 -7
- package/dist/agent/write-enforcer.d.ts.map +1 -1
- package/dist/agent/write-enforcer.js +7 -71
- package/dist/agent/write-enforcer.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +2 -25
- package/dist/cli/config.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +102 -139
- package/dist/cli.js.map +1 -1
- package/dist/config/config.d.ts +15 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +4 -38
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +0 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/logger.d.ts +10 -3
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +89 -38
- package/dist/logger.js.map +1 -1
- package/dist/repl/commands.d.ts +16 -16
- package/dist/repl/commands.d.ts.map +1 -1
- package/dist/repl/commands.js +474 -321
- package/dist/repl/commands.js.map +1 -1
- package/dist/repl/index.d.ts +4 -4
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +60 -56
- package/dist/repl/index.js.map +1 -1
- package/dist/session/store.d.ts +4 -7
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +35 -71
- package/dist/session/store.js.map +1 -1
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +5 -23
- package/dist/setup-wizard.js.map +1 -1
- package/dist/styling/engine.d.ts +7 -12
- package/dist/styling/engine.d.ts.map +1 -1
- package/dist/styling/engine.js +85 -134
- package/dist/styling/engine.js.map +1 -1
- package/dist/styling/index.d.ts +2 -2
- package/dist/styling/index.d.ts.map +1 -1
- package/dist/styling/index.js +0 -1
- package/dist/styling/index.js.map +1 -1
- package/dist/styling/loader.d.ts +2 -2
- package/dist/styling/loader.d.ts.map +1 -1
- package/dist/styling/loader.js +99 -47
- package/dist/styling/loader.js.map +1 -1
- package/dist/subagent/chat.d.ts +19 -0
- package/dist/subagent/chat.d.ts.map +1 -0
- package/dist/subagent/chat.js +279 -0
- package/dist/subagent/chat.js.map +1 -0
- package/dist/subagent/context.d.ts +9 -0
- package/dist/subagent/context.d.ts.map +1 -0
- package/dist/subagent/context.js +75 -0
- package/dist/subagent/context.js.map +1 -0
- package/dist/subagent/definition.d.ts +7 -0
- package/dist/subagent/definition.d.ts.map +1 -0
- package/dist/subagent/definition.js +26 -0
- package/dist/subagent/definition.js.map +1 -0
- package/dist/subagent/errors.d.ts +24 -0
- package/dist/subagent/errors.d.ts.map +1 -0
- package/dist/subagent/errors.js +85 -0
- package/dist/subagent/errors.js.map +1 -0
- package/dist/subagent/validation.d.ts +17 -0
- package/dist/subagent/validation.d.ts.map +1 -0
- package/dist/subagent/validation.js +83 -0
- package/dist/subagent/validation.js.map +1 -0
- package/dist/tools/hooks.d.ts +2 -0
- package/dist/tools/hooks.d.ts.map +1 -1
- package/dist/tools/hooks.js +118 -16
- package/dist/tools/hooks.js.map +1 -1
- package/dist/tools/parse-tool-call.d.ts.map +1 -1
- package/dist/tools/parse-tool-call.js +16 -14
- package/dist/tools/parse-tool-call.js.map +1 -1
- package/dist/tools/registry.d.ts +5 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +47 -28
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/subagent.d.ts +4 -57
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +112 -556
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/types.d.ts +2 -10
- package/dist/tools/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/subagent/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Собирает контекст для субагента: список файлов, зависимости, tsconfig.
|
|
3
|
+
* Сканирует все директории проекта (не только src/).
|
|
4
|
+
*
|
|
5
|
+
* @param cwd - корневая директория проекта
|
|
6
|
+
* @returns Текстовый контекст для system prompt субагента
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildSubagentContext(cwd: string): string;
|
|
9
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/subagent/context.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmExD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { readdirSync, existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Собирает контекст для субагента: список файлов, зависимости, tsconfig.
|
|
5
|
+
* Сканирует все директории проекта (не только src/).
|
|
6
|
+
*
|
|
7
|
+
* @param cwd - корневая директория проекта
|
|
8
|
+
* @returns Текстовый контекст для system prompt субагента
|
|
9
|
+
*/
|
|
10
|
+
export function buildSubagentContext(cwd) {
|
|
11
|
+
const lines = [];
|
|
12
|
+
// Сканируем все директории в поисках исходных файлов
|
|
13
|
+
try {
|
|
14
|
+
const entries = readdirSync(cwd, { withFileTypes: true });
|
|
15
|
+
for (const entry of entries) {
|
|
16
|
+
if (!entry.isDirectory() ||
|
|
17
|
+
entry.name.startsWith(".") ||
|
|
18
|
+
entry.name === "node_modules")
|
|
19
|
+
continue;
|
|
20
|
+
const dirPath = join(cwd, entry.name);
|
|
21
|
+
try {
|
|
22
|
+
const files = readdirSync(dirPath, { recursive: true })
|
|
23
|
+
.filter((f) => /\.(ts|tsx|js|jsx)$/.test(f))
|
|
24
|
+
.slice(0, 20);
|
|
25
|
+
if (files.length > 0) {
|
|
26
|
+
lines.push(`Files in ${entry.name}/: ${files.join(", ")}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
/* skip unreadable dirs */
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
/* no entries */
|
|
36
|
+
}
|
|
37
|
+
// Корневые .ts/.js файлы
|
|
38
|
+
try {
|
|
39
|
+
const rootFiles = readdirSync(cwd).filter((f) => /\.(ts|js)$/.test(f) && !f.startsWith("."));
|
|
40
|
+
if (rootFiles.length > 0) {
|
|
41
|
+
lines.push("Root files: " + rootFiles.join(", "));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
/* skip */
|
|
46
|
+
}
|
|
47
|
+
// package.json — зависимости и тип модулей
|
|
48
|
+
try {
|
|
49
|
+
const pkgPath = join(cwd, "package.json");
|
|
50
|
+
if (existsSync(pkgPath)) {
|
|
51
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
52
|
+
const deps = Object.keys(pkg.dependencies || {});
|
|
53
|
+
const devDeps = Object.keys(pkg.devDependencies || {});
|
|
54
|
+
if (deps.length > 0)
|
|
55
|
+
lines.push("Dependencies: " + deps.join(", "));
|
|
56
|
+
if (devDeps.length > 0)
|
|
57
|
+
lines.push("DevDependencies: " + devDeps.join(", "));
|
|
58
|
+
lines.push("Module type: " + (pkg.type || "commonjs"));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
/* no package.json */
|
|
63
|
+
}
|
|
64
|
+
// Наличие tsconfig.json
|
|
65
|
+
try {
|
|
66
|
+
if (existsSync(join(cwd, "tsconfig.json"))) {
|
|
67
|
+
lines.push("Has tsconfig.json");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
/* no tsconfig */
|
|
72
|
+
}
|
|
73
|
+
return lines.join("\n");
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/subagent/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolDefinition } from "../tools/registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* Определение инструмента subagent для реестра тулов.
|
|
4
|
+
* Позволяет LLM делегировать подзадачи изолированному агенту.
|
|
5
|
+
*/
|
|
6
|
+
export declare const subagentDefinition: ToolDefinition;
|
|
7
|
+
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/subagent/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAuBhC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Определение инструмента subagent для реестра тулов.
|
|
3
|
+
* Позволяет LLM делегировать подзадачи изолированному агенту.
|
|
4
|
+
*/
|
|
5
|
+
export const subagentDefinition = {
|
|
6
|
+
type: "function",
|
|
7
|
+
function: {
|
|
8
|
+
name: "subagent",
|
|
9
|
+
description: "Delegate a task to an isolated agent with a FRESH context (no history of prior errors). Use for: (1) each file when creating 3+ new files, (2) any task where you are stuck or making repeated errors, (3) simple single-step operations (bash, file read/write). The subagent has all tools and starts clean — ideal when accumulated context is causing confusion.",
|
|
10
|
+
parameters: {
|
|
11
|
+
type: "object",
|
|
12
|
+
properties: {
|
|
13
|
+
task: {
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "What the subagent should do — be specific and include file paths",
|
|
16
|
+
},
|
|
17
|
+
existingFiles: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "Comma-separated files the subagent can read for context (optional)",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
required: ["task"],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/subagent/definition.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,sWAAsW;QACxW,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kEAAkE;iBACrE;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oEAAoE;iBACvE;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Паттерны ошибок которые НЕ триггерят specialist (trivial) */
|
|
2
|
+
export declare const TRIVIAL_ERROR_PATTERNS: RegExp[];
|
|
3
|
+
/** Паттерны ошибок которые ВСЕГДА требуют specialist (не trivial) */
|
|
4
|
+
export declare const NON_TRIVIAL_ERROR_PATTERNS: RegExp[];
|
|
5
|
+
/**
|
|
6
|
+
* Проверяет является ли ошибка тривиальной (не требует specialist).
|
|
7
|
+
*
|
|
8
|
+
* @param toolName - имя инструмента
|
|
9
|
+
* @param errorOutput - текст ошибки
|
|
10
|
+
* @returns true если ошибка тривиальная
|
|
11
|
+
*/
|
|
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
|
+
*/
|
|
23
|
+
export declare function buildSpecialistTask(toolName: string, toolArgs: Record<string, unknown>, errorOutput: string, userTask: string, attemptCount: number): string;
|
|
24
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +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;;;;;;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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/** Паттерны ошибок которые НЕ триггерят specialist (trivial) */
|
|
2
|
+
export const TRIVIAL_ERROR_PATTERNS = [
|
|
3
|
+
/no results? found/i,
|
|
4
|
+
/pattern .* matched 0 results/i,
|
|
5
|
+
/0 files? matched/i,
|
|
6
|
+
/command not found.*grep/i,
|
|
7
|
+
/not a directory/i,
|
|
8
|
+
];
|
|
9
|
+
/** Паттерны ошибок которые ВСЕГДА требуют specialist (не trivial) */
|
|
10
|
+
export const NON_TRIVIAL_ERROR_PATTERNS = [
|
|
11
|
+
/unexpected token/i,
|
|
12
|
+
/syntaxerror/i,
|
|
13
|
+
/cannot find module/i,
|
|
14
|
+
/module not found/i,
|
|
15
|
+
/permission denied/i,
|
|
16
|
+
/enoent/i,
|
|
17
|
+
/eacces/i,
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Проверяет является ли ошибка тривиальной (не требует specialist).
|
|
21
|
+
*
|
|
22
|
+
* @param toolName - имя инструмента
|
|
23
|
+
* @param errorOutput - текст ошибки
|
|
24
|
+
* @returns true если ошибка тривиальная
|
|
25
|
+
*/
|
|
26
|
+
export function isTrivialError(toolName, errorOutput) {
|
|
27
|
+
// Синтаксические и критические ошибки — ВСЕГДА не trivial
|
|
28
|
+
if (NON_TRIVIAL_ERROR_PATTERNS.some((p) => p.test(errorOutput))) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
// grep_search/glob_search с 0 результатами — нормальное поведение
|
|
32
|
+
if (toolName === "grep_search" || toolName === "glob_search") {
|
|
33
|
+
if (/0 results|0 files|no match/i.test(errorOutput) &&
|
|
34
|
+
errorOutput.length < 200) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Любая ошибка < 10 символов — скорее всего trivia
|
|
39
|
+
if (errorOutput.length < 10)
|
|
40
|
+
return true;
|
|
41
|
+
return TRIVIAL_ERROR_PATTERNS.some((p) => p.test(errorOutput));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Контекст для specialist'а — фокусированное описание ошибки.
|
|
45
|
+
*
|
|
46
|
+
* @param toolName - имя упавшего инструмента
|
|
47
|
+
* @param toolArgs - аргументы которые были переданы
|
|
48
|
+
* @param errorOutput - текст ошибки
|
|
49
|
+
* @param userTask - исходный запрос пользователя (краткое описание)
|
|
50
|
+
* @param attemptCount - сколько раз ошибка повторилась
|
|
51
|
+
* @returns Текст задачи для specialist'а
|
|
52
|
+
*/
|
|
53
|
+
export function buildSpecialistTask(toolName, toolArgs, errorOutput, userTask, attemptCount) {
|
|
54
|
+
const argsStr = JSON.stringify(toolArgs, null, 2);
|
|
55
|
+
// Специфичные подсказки для web_browse evaluate
|
|
56
|
+
let webHints = "";
|
|
57
|
+
if (toolName === "web_browse" && String(toolArgs?.action) === "evaluate") {
|
|
58
|
+
const code = String(toolArgs?.value ?? toolArgs?.code ?? "");
|
|
59
|
+
webHints = [
|
|
60
|
+
"",
|
|
61
|
+
'web_browse evaluate: "value" is JS code executed in browser context.',
|
|
62
|
+
"- return statements work: return document.title",
|
|
63
|
+
`- Current code that failed: ${code.slice(0, 300)}`,
|
|
64
|
+
].join("\n");
|
|
65
|
+
}
|
|
66
|
+
return [
|
|
67
|
+
`The tool "${toolName}" has failed ${attemptCount} times with the same error while working on: "${userTask.slice(0, 200)}"`,
|
|
68
|
+
"",
|
|
69
|
+
`Failed tool call:`,
|
|
70
|
+
` Tool: ${toolName}`,
|
|
71
|
+
` Arguments: ${argsStr}`,
|
|
72
|
+
"",
|
|
73
|
+
`Error output:`,
|
|
74
|
+
` ${errorOutput.slice(0, 500)}`,
|
|
75
|
+
webHints,
|
|
76
|
+
"",
|
|
77
|
+
`Your task: Diagnose WHY this tool call fails and FIX the underlying problem.`,
|
|
78
|
+
` - Read the relevant files to understand the actual state`,
|
|
79
|
+
` - Fix the root cause (wrong path, missing file, syntax error, etc.)`,
|
|
80
|
+
` - If the tool call arguments are wrong, correct them`,
|
|
81
|
+
` - If the file doesn't exist, create it`,
|
|
82
|
+
` - Return a clear summary of what you found and what you fixed`,
|
|
83
|
+
].join("\n");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +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;;;;;;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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Набор валидных инструментов (единый источник истины) */
|
|
2
|
+
export declare const VALID_TOOLS: Set<string>;
|
|
3
|
+
/** Обязательные аргументы для каждого инструмента */
|
|
4
|
+
export declare const REQUIRED_ARGS: Record<string, string[]>;
|
|
5
|
+
/**
|
|
6
|
+
* Валидация tool call: проверка имени инструмента и обязательных аргументов.
|
|
7
|
+
*
|
|
8
|
+
* @param parsed - распарсенный JSON из tool call
|
|
9
|
+
* @returns Результат валидации с именем инструмента и командой (для bash)
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateToolCall(parsed: any): {
|
|
12
|
+
valid: boolean;
|
|
13
|
+
name?: string;
|
|
14
|
+
cmd?: string;
|
|
15
|
+
error?: string;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +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;;;;;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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/** Набор валидных инструментов (единый источник истины) */
|
|
2
|
+
export const VALID_TOOLS = new Set([
|
|
3
|
+
"bash",
|
|
4
|
+
"plan",
|
|
5
|
+
"todo",
|
|
6
|
+
"question",
|
|
7
|
+
"approve",
|
|
8
|
+
"theme",
|
|
9
|
+
"user_profile",
|
|
10
|
+
"subagent",
|
|
11
|
+
"read_file",
|
|
12
|
+
"write_file",
|
|
13
|
+
"edit_file",
|
|
14
|
+
"list_dir",
|
|
15
|
+
"create_dir",
|
|
16
|
+
"delete_file",
|
|
17
|
+
"copy_file",
|
|
18
|
+
"move_file",
|
|
19
|
+
"file_info",
|
|
20
|
+
"glob_search",
|
|
21
|
+
"grep_search",
|
|
22
|
+
"tree",
|
|
23
|
+
"web_search",
|
|
24
|
+
"web_fetch",
|
|
25
|
+
"web_browse",
|
|
26
|
+
"scaffold",
|
|
27
|
+
"project_map",
|
|
28
|
+
]);
|
|
29
|
+
/** Обязательные аргументы для каждого инструмента */
|
|
30
|
+
export const REQUIRED_ARGS = {
|
|
31
|
+
read_file: ["path"],
|
|
32
|
+
write_file: ["path", "content"],
|
|
33
|
+
edit_file: ["path", "old_string", "new_string"],
|
|
34
|
+
list_dir: [],
|
|
35
|
+
create_dir: ["path"],
|
|
36
|
+
delete_file: ["path"],
|
|
37
|
+
copy_file: ["source", "destination"],
|
|
38
|
+
move_file: ["source", "destination"],
|
|
39
|
+
file_info: ["path"],
|
|
40
|
+
glob_search: ["pattern"],
|
|
41
|
+
grep_search: ["pattern"],
|
|
42
|
+
tree: [],
|
|
43
|
+
web_search: ["query"],
|
|
44
|
+
web_fetch: ["url"],
|
|
45
|
+
user_profile: [],
|
|
46
|
+
question: ["question"],
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Валидация tool call: проверка имени инструмента и обязательных аргументов.
|
|
50
|
+
*
|
|
51
|
+
* @param parsed - распарсенный JSON из tool call
|
|
52
|
+
* @returns Результат валидации с именем инструмента и командой (для bash)
|
|
53
|
+
*/
|
|
54
|
+
export function validateToolCall(parsed) {
|
|
55
|
+
if (!parsed || typeof parsed !== "object") {
|
|
56
|
+
return { valid: false, error: "Not an object" };
|
|
57
|
+
}
|
|
58
|
+
if (!parsed.name || !VALID_TOOLS.has(parsed.name)) {
|
|
59
|
+
return { valid: false, error: `Unknown tool: ${parsed.name}` };
|
|
60
|
+
}
|
|
61
|
+
if (!parsed.arguments || typeof parsed.arguments !== "object") {
|
|
62
|
+
return { valid: false, error: "Missing arguments" };
|
|
63
|
+
}
|
|
64
|
+
if (parsed.name === "bash") {
|
|
65
|
+
const cmd = String(parsed.arguments.cmd ?? "").trim();
|
|
66
|
+
if (!cmd)
|
|
67
|
+
return { valid: false, error: "Empty command" };
|
|
68
|
+
return { valid: true, name: parsed.name, cmd };
|
|
69
|
+
}
|
|
70
|
+
const required = REQUIRED_ARGS[parsed.name] ?? [];
|
|
71
|
+
const missing = required.filter((k) => {
|
|
72
|
+
const v = parsed.arguments[k];
|
|
73
|
+
return v === undefined || v === null || v === "";
|
|
74
|
+
});
|
|
75
|
+
if (missing.length > 0) {
|
|
76
|
+
return {
|
|
77
|
+
valid: false,
|
|
78
|
+
error: `Missing required argument(s): ${missing.join(", ")}. Tool "${parsed.name}" requires: ${required.join(", ")}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return { valid: true, name: parsed.name };
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/hooks.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/tools/hooks.js
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
import { readFileSync, existsSync } from
|
|
2
|
-
import { join } from
|
|
3
|
-
import {
|
|
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,
|
|
9
|
+
const localPath = join(cwd, ".mma", "hooks.json");
|
|
9
10
|
if (existsSync(localPath)) {
|
|
10
11
|
try {
|
|
11
|
-
return {
|
|
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,
|
|
22
|
+
const rcPath = join(cwd, ".mmrc");
|
|
17
23
|
if (existsSync(rcPath)) {
|
|
18
24
|
try {
|
|
19
|
-
const rc = JSON.parse(readFileSync(rcPath,
|
|
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 {
|
|
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}\\}\\}`,
|
|
41
|
+
cmd = cmd.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value);
|
|
34
42
|
}
|
|
35
43
|
const output = execSync(cmd, {
|
|
36
|
-
encoding:
|
|
44
|
+
encoding: "utf-8",
|
|
37
45
|
timeout: 10000,
|
|
38
46
|
cwd: context.cwd || process.cwd(),
|
|
39
|
-
stdio: [
|
|
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
|
package/dist/tools/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
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,
|
|
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"}
|