micro-models-agent 0.2.44 → 0.2.45
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 +39 -0
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +52 -10
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/loop.d.ts +27 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +79 -16
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory.d.ts +46 -0
- package/dist/agent/memory.d.ts.map +1 -1
- package/dist/agent/memory.js +67 -3
- package/dist/agent/memory.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +20 -0
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +50 -0
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/user-profile.d.ts +21 -0
- package/dist/agent/user-profile.d.ts.map +1 -1
- package/dist/agent/user-profile.js +43 -1
- package/dist/agent/user-profile.js.map +1 -1
- package/dist/cli/config.d.ts +10 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +10 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/model.d.ts +10 -0
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +10 -0
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/provider.d.ts +9 -0
- package/dist/cli/provider.d.ts.map +1 -1
- package/dist/cli/provider.js +9 -0
- package/dist/cli/provider.js.map +1 -1
- package/dist/cli/update.d.ts +9 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +9 -0
- package/dist/cli/update.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -1
- package/dist/config/config.d.ts +6 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +22 -0
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +18 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +11 -0
- package/dist/config/types.js.map +1 -1
- package/dist/file-loader.d.ts +8 -0
- package/dist/file-loader.d.ts.map +1 -1
- package/dist/file-loader.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/indexer/cache.d.ts.map +1 -1
- package/dist/indexer/cache.js +12 -0
- package/dist/indexer/cache.js.map +1 -1
- package/dist/indexer/code-index.d.ts.map +1 -1
- package/dist/indexer/code-index.js +17 -0
- package/dist/indexer/code-index.js.map +1 -1
- package/dist/indexer/project-map.d.ts.map +1 -1
- package/dist/indexer/project-map.js +17 -0
- package/dist/indexer/project-map.js.map +1 -1
- package/dist/llm/openai-compat.d.ts.map +1 -1
- package/dist/llm/openai-compat.js.map +1 -1
- package/dist/llm/provider.d.ts +15 -0
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +11 -0
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/token-counter.d.ts +8 -0
- package/dist/llm/token-counter.d.ts.map +1 -1
- package/dist/llm/token-counter.js +8 -0
- package/dist/llm/token-counter.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +12 -0
- package/dist/logger.js.map +1 -1
- package/dist/repl/commands.d.ts +18 -0
- package/dist/repl/commands.d.ts.map +1 -1
- package/dist/repl/commands.js +2 -0
- package/dist/repl/commands.js.map +1 -1
- package/dist/repl/history.d.ts +9 -0
- package/dist/repl/history.d.ts.map +1 -1
- package/dist/repl/history.js +9 -0
- package/dist/repl/history.js.map +1 -1
- package/dist/repl/index.d.ts +4 -0
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +17 -0
- package/dist/repl/index.js.map +1 -1
- package/dist/session/store.d.ts +12 -0
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +30 -0
- package/dist/session/store.js.map +1 -1
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +13 -0
- package/dist/skills/loader.js.map +1 -1
- package/dist/styling/engine.d.ts +1 -0
- package/dist/styling/engine.d.ts.map +1 -1
- package/dist/styling/engine.js +10 -0
- package/dist/styling/engine.js.map +1 -1
- package/dist/styling/index.d.ts +5 -0
- package/dist/styling/index.d.ts.map +1 -1
- package/dist/styling/index.js +16 -0
- package/dist/styling/index.js.map +1 -1
- package/dist/styling/loader.d.ts.map +1 -1
- package/dist/styling/loader.js +11 -0
- package/dist/styling/loader.js.map +1 -1
- package/dist/styling/types.d.ts +14 -0
- package/dist/styling/types.d.ts.map +1 -1
- package/dist/styling/types.js +10 -0
- package/dist/styling/types.js.map +1 -1
- package/dist/tools/approve.d.ts +14 -0
- package/dist/tools/approve.d.ts.map +1 -1
- package/dist/tools/approve.js +13 -0
- package/dist/tools/approve.js.map +1 -1
- package/dist/tools/bash.d.ts +13 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +3 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/fs/copy-file.d.ts +6 -0
- package/dist/tools/fs/copy-file.d.ts.map +1 -1
- package/dist/tools/fs/copy-file.js +6 -0
- package/dist/tools/fs/copy-file.js.map +1 -1
- package/dist/tools/fs/create-dir.d.ts +6 -0
- package/dist/tools/fs/create-dir.d.ts.map +1 -1
- package/dist/tools/fs/create-dir.js +6 -0
- package/dist/tools/fs/create-dir.js.map +1 -1
- package/dist/tools/fs/delete-file.d.ts +6 -0
- package/dist/tools/fs/delete-file.d.ts.map +1 -1
- package/dist/tools/fs/delete-file.js +6 -0
- package/dist/tools/fs/delete-file.js.map +1 -1
- package/dist/tools/fs/edit-file.d.ts +8 -0
- package/dist/tools/fs/edit-file.d.ts.map +1 -1
- package/dist/tools/fs/edit-file.js +8 -0
- package/dist/tools/fs/edit-file.js.map +1 -1
- package/dist/tools/fs/file-info.d.ts +6 -0
- package/dist/tools/fs/file-info.d.ts.map +1 -1
- package/dist/tools/fs/file-info.js +6 -0
- package/dist/tools/fs/file-info.js.map +1 -1
- package/dist/tools/fs/glob-search.d.ts +6 -0
- package/dist/tools/fs/glob-search.d.ts.map +1 -1
- package/dist/tools/fs/glob-search.js +7 -0
- package/dist/tools/fs/glob-search.js.map +1 -1
- package/dist/tools/fs/grep-search.d.ts +7 -0
- package/dist/tools/fs/grep-search.d.ts.map +1 -1
- package/dist/tools/fs/grep-search.js +8 -0
- package/dist/tools/fs/grep-search.js.map +1 -1
- package/dist/tools/fs/list-dir.d.ts +6 -0
- package/dist/tools/fs/list-dir.d.ts.map +1 -1
- package/dist/tools/fs/list-dir.js +6 -0
- package/dist/tools/fs/list-dir.js.map +1 -1
- package/dist/tools/fs/move-file.d.ts +6 -0
- package/dist/tools/fs/move-file.d.ts.map +1 -1
- package/dist/tools/fs/move-file.js +6 -0
- package/dist/tools/fs/move-file.js.map +1 -1
- package/dist/tools/fs/path-utils.d.ts +21 -0
- package/dist/tools/fs/path-utils.d.ts.map +1 -1
- package/dist/tools/fs/path-utils.js +22 -0
- package/dist/tools/fs/path-utils.js.map +1 -1
- package/dist/tools/fs/read-file.d.ts +6 -0
- package/dist/tools/fs/read-file.d.ts.map +1 -1
- package/dist/tools/fs/read-file.js +6 -0
- package/dist/tools/fs/read-file.js.map +1 -1
- package/dist/tools/fs/tree.d.ts +6 -0
- package/dist/tools/fs/tree.d.ts.map +1 -1
- package/dist/tools/fs/tree.js +7 -0
- package/dist/tools/fs/tree.js.map +1 -1
- package/dist/tools/fs/types.d.ts +7 -0
- package/dist/tools/fs/types.d.ts.map +1 -1
- package/dist/tools/fs/types.js +4 -2
- package/dist/tools/fs/types.js.map +1 -1
- package/dist/tools/fs/write-file.d.ts +7 -0
- package/dist/tools/fs/write-file.d.ts.map +1 -1
- package/dist/tools/fs/write-file.js +7 -0
- package/dist/tools/fs/write-file.js.map +1 -1
- package/dist/tools/hooks.d.ts +27 -0
- package/dist/tools/hooks.d.ts.map +1 -1
- package/dist/tools/hooks.js +6 -0
- package/dist/tools/hooks.js.map +1 -1
- package/dist/tools/mcp.d.ts +14 -0
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mcp.js +3 -0
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/plan.d.ts +7 -0
- package/dist/tools/plan.d.ts.map +1 -1
- package/dist/tools/plan.js +19 -0
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/question.d.ts +16 -0
- package/dist/tools/question.d.ts.map +1 -1
- package/dist/tools/question.js +8 -1
- package/dist/tools/question.js.map +1 -1
- package/dist/tools/registry.d.ts +9 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +26 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/sanitizer.d.ts +23 -0
- package/dist/tools/sanitizer.d.ts.map +1 -1
- package/dist/tools/sanitizer.js +27 -0
- package/dist/tools/sanitizer.js.map +1 -1
- package/dist/tools/subagent.d.ts +59 -0
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +46 -2
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/syntax-check.d.ts +16 -0
- package/dist/tools/syntax-check.d.ts.map +1 -1
- package/dist/tools/syntax-check.js.map +1 -1
- package/dist/tools/todo.d.ts +7 -0
- package/dist/tools/todo.d.ts.map +1 -1
- package/dist/tools/todo.js +17 -0
- package/dist/tools/todo.js.map +1 -1
- package/dist/tools/web-fetch.d.ts +8 -0
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +8 -0
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-search.d.ts +8 -0
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +8 -0
- package/dist/tools/web-search.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +8 -0
- package/dist/ui/components/status-bar.d.ts.map +1 -1
- package/dist/ui/components/status-bar.js +8 -0
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/index.d.ts +12 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/ink/components/App.d.ts +12 -0
- package/dist/ui/ink/components/App.d.ts.map +1 -1
- package/dist/ui/ink/components/App.js.map +1 -1
- package/dist/ui/ink/components/MessageBlock.d.ts +12 -0
- package/dist/ui/ink/components/MessageBlock.d.ts.map +1 -1
- package/dist/ui/ink/components/MessageBlock.js.map +1 -1
- package/dist/ui/ink/components/PromptInput.d.ts +11 -0
- package/dist/ui/ink/components/PromptInput.d.ts.map +1 -1
- package/dist/ui/ink/components/PromptInput.js +1 -0
- package/dist/ui/ink/components/PromptInput.js.map +1 -1
- package/dist/ui/ink/components/ToolCallBlock.d.ts +12 -0
- package/dist/ui/ink/components/ToolCallBlock.d.ts.map +1 -1
- package/dist/ui/ink/components/ToolCallBlock.js.map +1 -1
- package/dist/ui/ink/renderer.d.ts +12 -0
- package/dist/ui/ink/renderer.d.ts.map +1 -1
- package/dist/ui/ink/renderer.js +1 -0
- package/dist/ui/ink/renderer.js.map +1 -1
- package/dist/ui/ink/theme.d.ts +8 -0
- package/dist/ui/ink/theme.d.ts.map +1 -1
- package/dist/ui/ink/theme.js.map +1 -1
- package/dist/ui/readline-renderer.d.ts.map +1 -1
- package/dist/ui/readline-renderer.js +11 -0
- package/dist/ui/readline-renderer.js.map +1 -1
- package/dist/ui/renderer.d.ts +16 -0
- package/dist/ui/renderer.d.ts.map +1 -1
- package/dist/ui/renderer.js +14 -0
- package/dist/ui/renderer.js.map +1 -1
- package/dist/updater.d.ts.map +1 -1
- package/dist/updater.js +9 -1
- package/dist/updater.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,13 @@ import { writeFileSync, mkdirSync, renameSync, unlinkSync, existsSync } from 'no
|
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
3
|
import { resolvePath, normalizePath } from './path-utils.js';
|
|
4
4
|
import { fsError, fsOk } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Инструмент записи файла.
|
|
7
|
+
* Создаёт родительские директории автоматически.
|
|
8
|
+
* Атомарная запись через временный файл (crash-safe).
|
|
9
|
+
*
|
|
10
|
+
* @module tools/fs/write-file
|
|
11
|
+
*/
|
|
5
12
|
export const writeFileDefinition = {
|
|
6
13
|
type: 'function',
|
|
7
14
|
function: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kGAAkG;QAC/G,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBAC7E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;aAClE;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9B;KACF;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,IAA6B,EAC7B,GAAW;IAEX,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,+FAA+F,CAAC,CAAC;IAC3H,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC;QACH,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC;IAC1C,IAAI,CAAC;QACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,8BAA8B;QAC9B,IAAI,CAAC;YAAC,IAAI,UAAU,CAAC,OAAO,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5E,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,WAAW,KAAK,cAAc,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC"}
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kGAAkG;QAC/G,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBAC7E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;aAClE;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9B;KACF;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,IAA6B,EAC7B,GAAW;IAEX,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,+FAA+F,CAAC,CAAC;IAC3H,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC;QACH,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC;IAC1C,IAAI,CAAC;QACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,8BAA8B;QAC9B,IAAI,CAAC;YAAC,IAAI,UAAU,CAAC,OAAO,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5E,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,WAAW,KAAK,cAAc,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC"}
|
package/dist/tools/hooks.d.ts
CHANGED
|
@@ -1,15 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Хуки жизненного цикла инструментов.
|
|
3
|
+
*
|
|
4
|
+
* Позволяют выполнять пользовательские команды до/после вызова инструментов:
|
|
5
|
+
* - preToolUse: перед вызовом любого инструмента
|
|
6
|
+
* - postToolUse: после вызова любого инструмента
|
|
7
|
+
* - postEdit: после записи/редактирования файла
|
|
8
|
+
*
|
|
9
|
+
* Конфигурация в .mma/hooks.json или .mmrc (секция hooks).
|
|
10
|
+
* Хуки могут блокировать выполнение (exit code 1).
|
|
11
|
+
*
|
|
12
|
+
* Доступные переменные в шаблонах:
|
|
13
|
+
* - {{tool}} — имя инструмента
|
|
14
|
+
* - {{cmd}} — команда/аргументы
|
|
15
|
+
* - {{file}} — путь к файлу
|
|
16
|
+
* - {{output}} — вывод (postToolUse)
|
|
17
|
+
* - {{exitCode}} — код возврата (postToolUse)
|
|
18
|
+
* - {{cwd}} — текущая директория
|
|
19
|
+
*
|
|
20
|
+
* @module tools/hooks
|
|
21
|
+
*/
|
|
22
|
+
/** Конфигурация хуков из .mma/hooks.json */
|
|
1
23
|
export interface HookConfig {
|
|
2
24
|
preToolUse?: string[];
|
|
3
25
|
postToolUse?: string[];
|
|
4
26
|
postEdit?: string[];
|
|
5
27
|
}
|
|
28
|
+
/** Результат выполнения хука: continue (продолжить) или блокировка */
|
|
6
29
|
interface HookResult {
|
|
7
30
|
continue: boolean;
|
|
8
31
|
message?: string;
|
|
9
32
|
}
|
|
33
|
+
/** Запуск хуков перед вызовом инструмента. Возвращает false для блокировки. */
|
|
10
34
|
export declare function runPreToolUseHooks(cwd: string, toolName: string, cmd: string): HookResult;
|
|
35
|
+
/** Запуск хуков после вызова инструмента (с выводом и кодом возврата) */
|
|
11
36
|
export declare function runPostToolUseHooks(cwd: string, toolName: string, cmd: string, output: string, exitCode: number): HookResult;
|
|
37
|
+
/** Запуск хуков после записи/редактирования файла */
|
|
12
38
|
export declare function runPostEditHooks(cwd: string, filePath: string): HookResult;
|
|
39
|
+
/** Возвращает список всех зарегистрированных хуков */
|
|
13
40
|
export declare function listHooks(cwd: string): string[];
|
|
14
41
|
export {};
|
|
15
42
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"AAIA,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,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
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"}
|
package/dist/tools/hooks.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFileSync, existsSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { execSync } from 'node:child_process';
|
|
4
4
|
const DEFAULT_HOOKS = {};
|
|
5
|
+
/** Загружает конфигурацию хуков из .mma/hooks.json или .mmrc */
|
|
5
6
|
function loadHooksConfig(cwd) {
|
|
6
7
|
// Check .mma/hooks.json
|
|
7
8
|
const localPath = join(cwd, '.mma', 'hooks.json');
|
|
@@ -23,6 +24,7 @@ function loadHooksConfig(cwd) {
|
|
|
23
24
|
}
|
|
24
25
|
return DEFAULT_HOOKS;
|
|
25
26
|
}
|
|
27
|
+
/** Выполняет одну hook-команду с подстановкой переменных */
|
|
26
28
|
function runHook(command, context) {
|
|
27
29
|
try {
|
|
28
30
|
// Replace {{variable}} placeholders
|
|
@@ -46,6 +48,7 @@ function runHook(command, context) {
|
|
|
46
48
|
return { continue: true, message: `[hook error: ${e.message}]` };
|
|
47
49
|
}
|
|
48
50
|
}
|
|
51
|
+
/** Запуск хуков перед вызовом инструмента. Возвращает false для блокировки. */
|
|
49
52
|
export function runPreToolUseHooks(cwd, toolName, cmd) {
|
|
50
53
|
const config = loadHooksConfig(cwd);
|
|
51
54
|
if (!config.preToolUse || config.preToolUse.length === 0) {
|
|
@@ -60,6 +63,7 @@ export function runPreToolUseHooks(cwd, toolName, cmd) {
|
|
|
60
63
|
}
|
|
61
64
|
return { continue: true };
|
|
62
65
|
}
|
|
66
|
+
/** Запуск хуков после вызова инструмента (с выводом и кодом возврата) */
|
|
63
67
|
export function runPostToolUseHooks(cwd, toolName, cmd, output, exitCode) {
|
|
64
68
|
const config = loadHooksConfig(cwd);
|
|
65
69
|
if (!config.postToolUse || config.postToolUse.length === 0) {
|
|
@@ -81,6 +85,7 @@ export function runPostToolUseHooks(cwd, toolName, cmd, output, exitCode) {
|
|
|
81
85
|
}
|
|
82
86
|
return { continue: true };
|
|
83
87
|
}
|
|
88
|
+
/** Запуск хуков после записи/редактирования файла */
|
|
84
89
|
export function runPostEditHooks(cwd, filePath) {
|
|
85
90
|
const config = loadHooksConfig(cwd);
|
|
86
91
|
if (!config.postEdit || config.postEdit.length === 0) {
|
|
@@ -95,6 +100,7 @@ export function runPostEditHooks(cwd, filePath) {
|
|
|
95
100
|
}
|
|
96
101
|
return { continue: true };
|
|
97
102
|
}
|
|
103
|
+
/** Возвращает список всех зарегистрированных хуков */
|
|
98
104
|
export function listHooks(cwd) {
|
|
99
105
|
const config = loadHooksConfig(cwd);
|
|
100
106
|
const hooks = [];
|
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;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/mcp.d.ts
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Интеграция с MCP (Model Context Protocol) серверами.
|
|
3
|
+
*
|
|
4
|
+
* Позволяет агенту вызывать инструменты внешних MCP-серверов.
|
|
5
|
+
* Конфигурация в .mma/mcp.json или .mmrc (секция mcp).
|
|
6
|
+
*
|
|
7
|
+
* Формат вызова: bash "mcp <server> <tool> [args_json]"
|
|
8
|
+
*
|
|
9
|
+
* @module tools/mcp
|
|
10
|
+
*/
|
|
11
|
+
/** Определение MCP-сервера */
|
|
1
12
|
export interface MCPServer {
|
|
2
13
|
name: string;
|
|
3
14
|
command: string;
|
|
4
15
|
args?: string[];
|
|
5
16
|
env?: Record<string, string>;
|
|
6
17
|
}
|
|
18
|
+
/** Определение MCP-инструмента */
|
|
7
19
|
export interface MCPTool {
|
|
8
20
|
name: string;
|
|
9
21
|
description: string;
|
|
10
22
|
server: string;
|
|
11
23
|
parameters?: Record<string, unknown>;
|
|
12
24
|
}
|
|
25
|
+
/** Возвращает список MCP-серверов из конфигурации */
|
|
13
26
|
export declare function listMCPServers(cwd: string): MCPServer[];
|
|
27
|
+
/** Вызывает инструмент MCP-сервера через npx mcp-client */
|
|
14
28
|
export declare function callMCPTool(cwd: string, serverName: string, toolName: string, args: Record<string, unknown>): string;
|
|
15
29
|
export declare function parseMCPCommand(cmd: string): {
|
|
16
30
|
server: string;
|
package/dist/tools/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,kCAAkC;AAClC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AA4BD,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAEvD;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA0BpH;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CAuBnH;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAW9D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
package/dist/tools/mcp.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { execSync } from 'node:child_process';
|
|
4
|
+
/** Загружает конфигурацию MCP из .mma/mcp.json или .mmrc */
|
|
4
5
|
function loadMCPConfig(cwd) {
|
|
5
6
|
// Check .mma/mcp.json
|
|
6
7
|
const localPath = join(cwd, '.mma', 'mcp.json');
|
|
@@ -22,9 +23,11 @@ function loadMCPConfig(cwd) {
|
|
|
22
23
|
}
|
|
23
24
|
return { servers: [] };
|
|
24
25
|
}
|
|
26
|
+
/** Возвращает список MCP-серверов из конфигурации */
|
|
25
27
|
export function listMCPServers(cwd) {
|
|
26
28
|
return loadMCPConfig(cwd).servers;
|
|
27
29
|
}
|
|
30
|
+
/** Вызывает инструмент MCP-сервера через npx mcp-client */
|
|
28
31
|
export function callMCPTool(cwd, serverName, toolName, args) {
|
|
29
32
|
const config = loadMCPConfig(cwd);
|
|
30
33
|
const server = config.servers.find(s => s.name === serverName);
|
package/dist/tools/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/plan.d.ts
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
+
/** Шаг плана */
|
|
1
2
|
export interface PlanStep {
|
|
2
3
|
id: number;
|
|
3
4
|
title: string;
|
|
4
5
|
status: 'pending' | 'in_progress' | 'done' | 'skipped';
|
|
5
6
|
}
|
|
7
|
+
/** План агента */
|
|
6
8
|
export interface Plan {
|
|
7
9
|
name: string;
|
|
8
10
|
steps: PlanStep[];
|
|
9
11
|
createdAt: string;
|
|
10
12
|
updatedAt: string;
|
|
11
13
|
}
|
|
14
|
+
/** Создаёт новый план с указанными шагами */
|
|
12
15
|
export declare function createPlan(name: string, steps: string[]): string;
|
|
16
|
+
/** Обновляет статус шага плана */
|
|
13
17
|
export declare function updatePlanStep(stepId: number, status: PlanStep['status']): string;
|
|
18
|
+
/** Показывает текущий план с прогрессом */
|
|
14
19
|
export declare function showPlan(): string;
|
|
20
|
+
/** Удаляет текущий план */
|
|
15
21
|
export declare function clearPlan(): string;
|
|
22
|
+
/** Парсит аргументы команды plan (create, done, progress, show, clear) */
|
|
16
23
|
export declare function parsePlanCommand(args: string): {
|
|
17
24
|
action: string;
|
|
18
25
|
params: string[];
|
package/dist/tools/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAmBA,gBAAgB;AAChB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;CACxD;AAED,kBAAkB;AAClB,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAuBD,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAahE;AAED,kCAAkC;AAClC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAWjF;AAED,2CAA2C;AAC3C,wBAAgB,QAAQ,IAAI,MAAM,CAIjC;AAED,2BAA2B;AAC3B,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAqBD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAKnF"}
|
package/dist/tools/plan.js
CHANGED
|
@@ -2,12 +2,24 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { getTheme } from '../styling/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Управление планами агента.
|
|
7
|
+
*
|
|
8
|
+
* План — это список шагов со статусами (pending/in_progress/done/skipped).
|
|
9
|
+
* Хранится в ~/.mma/state/current-plan.json.
|
|
10
|
+
*
|
|
11
|
+
* Используется агентом для структурирования сложных задач (3+ шагов).
|
|
12
|
+
*
|
|
13
|
+
* @module tools/plan
|
|
14
|
+
*/
|
|
5
15
|
const PLAN_DIR = join(homedir(), '.mma', 'state');
|
|
6
16
|
const PLAN_FILE = join(PLAN_DIR, 'current-plan.json');
|
|
17
|
+
/** Создаёт директорию для планов если не существует */
|
|
7
18
|
function ensureDir() {
|
|
8
19
|
if (!existsSync(PLAN_DIR))
|
|
9
20
|
mkdirSync(PLAN_DIR, { recursive: true });
|
|
10
21
|
}
|
|
22
|
+
/** Загружает текущий план из файла */
|
|
11
23
|
function loadPlan() {
|
|
12
24
|
try {
|
|
13
25
|
if (existsSync(PLAN_FILE)) {
|
|
@@ -17,10 +29,12 @@ function loadPlan() {
|
|
|
17
29
|
catch { /* ignore */ }
|
|
18
30
|
return null;
|
|
19
31
|
}
|
|
32
|
+
/** Сохраняет план в файл */
|
|
20
33
|
function savePlan(plan) {
|
|
21
34
|
ensureDir();
|
|
22
35
|
writeFileSync(PLAN_FILE, JSON.stringify(plan, null, 2), 'utf-8');
|
|
23
36
|
}
|
|
37
|
+
/** Создаёт новый план с указанными шагами */
|
|
24
38
|
export function createPlan(name, steps) {
|
|
25
39
|
const plan = {
|
|
26
40
|
name,
|
|
@@ -35,6 +49,7 @@ export function createPlan(name, steps) {
|
|
|
35
49
|
savePlan(plan);
|
|
36
50
|
return formatPlan(plan);
|
|
37
51
|
}
|
|
52
|
+
/** Обновляет статус шага плана */
|
|
38
53
|
export function updatePlanStep(stepId, status) {
|
|
39
54
|
const plan = loadPlan();
|
|
40
55
|
if (!plan)
|
|
@@ -47,12 +62,14 @@ export function updatePlanStep(stepId, status) {
|
|
|
47
62
|
savePlan(plan);
|
|
48
63
|
return formatPlan(plan);
|
|
49
64
|
}
|
|
65
|
+
/** Показывает текущий план с прогрессом */
|
|
50
66
|
export function showPlan() {
|
|
51
67
|
const plan = loadPlan();
|
|
52
68
|
if (!plan)
|
|
53
69
|
return 'No active plan. Create one with plan(create).';
|
|
54
70
|
return formatPlan(plan);
|
|
55
71
|
}
|
|
72
|
+
/** Удаляет текущий план */
|
|
56
73
|
export function clearPlan() {
|
|
57
74
|
const plan = loadPlan();
|
|
58
75
|
if (!plan)
|
|
@@ -63,6 +80,7 @@ export function clearPlan() {
|
|
|
63
80
|
catch { /* ignore */ }
|
|
64
81
|
return `Plan "${plan.name}" cleared.`;
|
|
65
82
|
}
|
|
83
|
+
/** Форматирует план для отображения (с иконками и прогрессом) */
|
|
66
84
|
function formatPlan(plan) {
|
|
67
85
|
const theme = getTheme();
|
|
68
86
|
const done = plan.steps.filter(s => s.status === 'done').length;
|
|
@@ -77,6 +95,7 @@ function formatPlan(plan) {
|
|
|
77
95
|
}
|
|
78
96
|
return lines.join('\n');
|
|
79
97
|
}
|
|
98
|
+
/** Парсит аргументы команды plan (create, done, progress, show, clear) */
|
|
80
99
|
export function parsePlanCommand(args) {
|
|
81
100
|
const parts = args.trim().split(/\s+/);
|
|
82
101
|
const action = parts[0] || 'show';
|
package/dist/tools/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;;;;;GASG;AAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAiBtD,uDAAuD;AACvD,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,sCAAsC;AACtC,SAAS,QAAQ;IACf,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4BAA4B;AAC5B,SAAS,QAAQ,CAAC,IAAU;IAC1B,SAAS,EAAE,CAAC;IACZ,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAe;IACtD,MAAM,IAAI,GAAS;QACjB,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,EAAE,EAAE,CAAC,GAAG,CAAC;YACT,KAAK;YACL,MAAM,EAAE,SAAkB;SAC3B,CAAC,CAAC;QACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,MAA0B;IACvE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,qDAAqD,CAAC;IAExE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,MAAM,aAAa,CAAC;IAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,+CAA+C,CAAC;IAClE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,SAAS;IACvB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,0BAA0B,CAAC;IAC7C,IAAI,CAAC;QAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxE,OAAO,SAAS,IAAI,CAAC,IAAI,YAAY,CAAC;AACxC,CAAC;AAED,iEAAiE;AACjE,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,QAAQ,IAAI,CAAC,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/tools/question.d.ts
CHANGED
|
@@ -1,15 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Инструмент вопроса пользователю.
|
|
3
|
+
*
|
|
4
|
+
* Позволяет агенту задавать вопросы с вариантами ответов.
|
|
5
|
+
* Используется когда агенту нужен выбор или уточнение.
|
|
6
|
+
*
|
|
7
|
+
* @module tools/question
|
|
8
|
+
*/
|
|
9
|
+
/** Состояние вопроса */
|
|
1
10
|
export interface QuestionState {
|
|
2
11
|
active: boolean;
|
|
3
12
|
question: string;
|
|
4
13
|
choices?: string[];
|
|
5
14
|
response?: string;
|
|
6
15
|
}
|
|
16
|
+
/** Создаёт новый вопрос для пользователя */
|
|
7
17
|
export declare function askQuestion(question: string, choices?: string[]): QuestionState;
|
|
18
|
+
/** Возвращает текущий активный вопрос */
|
|
8
19
|
export declare function getQuestion(): QuestionState | null;
|
|
20
|
+
/** Записывает ответ пользователя на вопрос */
|
|
9
21
|
export declare function answerQuestion(response: string): void;
|
|
22
|
+
/** Проверяет есть ли активный вопрос */
|
|
10
23
|
export declare function hasActiveQuestion(): boolean;
|
|
24
|
+
/** Форматирует вопрос для отображения (без цвета) */
|
|
11
25
|
export declare function formatQuestion(q: QuestionState): string;
|
|
26
|
+
/** Форматирует вопрос с цветом (Ink UI) */
|
|
12
27
|
export declare function formatQuestionColored(q: QuestionState): string;
|
|
28
|
+
/** Парсит аргументы команды question (формат: text | choice1 | choice2) */
|
|
13
29
|
export declare function parseQuestionCommand(args: string): {
|
|
14
30
|
question: string;
|
|
15
31
|
choices: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../src/tools/question.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,CAO/E;AAED,wBAAgB,WAAW,IAAI,aAAa,GAAG,IAAI,CAElD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKrD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAcvD;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAa9D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAM1F"}
|
|
1
|
+
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../src/tools/question.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,CAO/E;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,aAAa,GAAG,IAAI,CAElD;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKrD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAcvD;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAa9D;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAM1F"}
|
package/dist/tools/question.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getTheme } from '../styling/index.js';
|
|
2
2
|
let currentQuestion = null;
|
|
3
|
+
/** Создаёт новый вопрос для пользователя */
|
|
3
4
|
export function askQuestion(question, choices) {
|
|
4
5
|
currentQuestion = {
|
|
5
6
|
active: true,
|
|
@@ -8,18 +9,22 @@ export function askQuestion(question, choices) {
|
|
|
8
9
|
};
|
|
9
10
|
return currentQuestion;
|
|
10
11
|
}
|
|
12
|
+
/** Возвращает текущий активный вопрос */
|
|
11
13
|
export function getQuestion() {
|
|
12
14
|
return currentQuestion;
|
|
13
15
|
}
|
|
16
|
+
/** Записывает ответ пользователя на вопрос */
|
|
14
17
|
export function answerQuestion(response) {
|
|
15
18
|
if (currentQuestion) {
|
|
16
19
|
currentQuestion.response = response;
|
|
17
20
|
currentQuestion.active = false;
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
/** Проверяет есть ли активный вопрос */
|
|
20
24
|
export function hasActiveQuestion() {
|
|
21
25
|
return currentQuestion?.active === true;
|
|
22
26
|
}
|
|
27
|
+
/** Форматирует вопрос для отображения (без цвета) */
|
|
23
28
|
export function formatQuestion(q) {
|
|
24
29
|
const lines = [];
|
|
25
30
|
lines.push(`Question: ${q.question}`);
|
|
@@ -33,6 +38,7 @@ export function formatQuestion(q) {
|
|
|
33
38
|
}
|
|
34
39
|
return lines.join('\n');
|
|
35
40
|
}
|
|
41
|
+
/** Форматирует вопрос с цветом (Ink UI) */
|
|
36
42
|
export function formatQuestionColored(q) {
|
|
37
43
|
const theme = getTheme();
|
|
38
44
|
const lines = [];
|
|
@@ -45,8 +51,9 @@ export function formatQuestionColored(q) {
|
|
|
45
51
|
}
|
|
46
52
|
return lines.join('\n');
|
|
47
53
|
}
|
|
54
|
+
/** Парсит аргументы команды question (формат: text | choice1 | choice2) */
|
|
48
55
|
export function parseQuestionCommand(args) {
|
|
49
|
-
//
|
|
56
|
+
// Формат: question text | choice1 | choice2 | ...
|
|
50
57
|
const parts = args.split('|').map(s => s.trim());
|
|
51
58
|
const question = parts[0] || '';
|
|
52
59
|
const choices = parts.slice(1).filter(Boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/tools/question.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/tools/question.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -14,10 +14,19 @@ export interface ToolCall {
|
|
|
14
14
|
arguments: Record<string, unknown>;
|
|
15
15
|
}
|
|
16
16
|
export type ToolResult = BashResult;
|
|
17
|
+
/**
|
|
18
|
+
* Реестр инструментов — центральная точка регистрации и исполнения.
|
|
19
|
+
* Все инструменты регистрируются здесь и вызываются через execute().
|
|
20
|
+
*/
|
|
17
21
|
export declare class ToolRegistry {
|
|
18
22
|
private cwd;
|
|
19
23
|
constructor(cwd?: string);
|
|
24
|
+
/**
|
|
25
|
+
* Исполняет tool call: определяет тип инструмента и вызывает handler.
|
|
26
|
+
* После успешной модификации файла уведомляет indexer и инвалидирует кэш.
|
|
27
|
+
*/
|
|
20
28
|
execute(toolCall: ToolCall): Promise<ToolResult>;
|
|
29
|
+
/** Возвращает определения всех доступных инструментов для system prompt */
|
|
21
30
|
getDefinitions(): ToolDefinition[];
|
|
22
31
|
isToolCall(message: ChatMessage): boolean;
|
|
23
32
|
isValidTool(name: string): boolean;
|
|
@@ -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;AACtD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAmDzD,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;AA4CpC;;;GAGG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,GAAG;gBAAH,GAAG,GAAE,MAAsB;IAE/C;;;OAGG;IACG,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IA+CtD,2EAA2E;IAC3E,cAAc,IAAI,cAAc,EAAE;IA+BlC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -16,7 +16,24 @@ import { notifyFileChanged } from '../indexer/cache.js';
|
|
|
16
16
|
import { invalidateSystemPromptCache } from '../agent/system-prompt.js';
|
|
17
17
|
import { webSearchDefinition, handleWebSearch } from './web-search.js';
|
|
18
18
|
import { webFetchDefinition, handleWebFetch } from './web-fetch.js';
|
|
19
|
+
/**
|
|
20
|
+
* Реестр всех инструментов агента.
|
|
21
|
+
*
|
|
22
|
+
* Управляет:
|
|
23
|
+
* - Файловыми инструментами (read, write, edit, list, search и т.д.)
|
|
24
|
+
* - Bash-командами
|
|
25
|
+
* - Веб-инструментами (search, fetch)
|
|
26
|
+
* - Нативными инструментами (subagent)
|
|
27
|
+
*
|
|
28
|
+
* При записи файлов автоматически:
|
|
29
|
+
* - Уведомляет indexer об изменениях (notifyFileChanged)
|
|
30
|
+
* - Инвалидирует кэш system prompt
|
|
31
|
+
*
|
|
32
|
+
* @module tools/registry
|
|
33
|
+
*/
|
|
34
|
+
// Инструменты, которые модифицируют файловую систему
|
|
19
35
|
const MODIFYING_TOOLS = new Set(['write_file', 'edit_file', 'delete_file', 'copy_file', 'move_file']);
|
|
36
|
+
/** Извлекает пути изменённых файлов из аргументов инструмента */
|
|
20
37
|
function getChangedFilePaths(toolName, args) {
|
|
21
38
|
const normalize = (p) => String(p ?? '').replace(/\\/g, '/');
|
|
22
39
|
switch (toolName) {
|
|
@@ -64,11 +81,19 @@ const NATIVE_TOOL_DEFS = [
|
|
|
64
81
|
},
|
|
65
82
|
];
|
|
66
83
|
const VALID_TOOL_NAMES = new Set(['bash', 'subagent', ...FS_HANDLERS.keys(), ...WEB_TOOLS.keys()]);
|
|
84
|
+
/**
|
|
85
|
+
* Реестр инструментов — центральная точка регистрации и исполнения.
|
|
86
|
+
* Все инструменты регистрируются здесь и вызываются через execute().
|
|
87
|
+
*/
|
|
67
88
|
export class ToolRegistry {
|
|
68
89
|
cwd;
|
|
69
90
|
constructor(cwd = process.cwd()) {
|
|
70
91
|
this.cwd = cwd;
|
|
71
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Исполняет tool call: определяет тип инструмента и вызывает handler.
|
|
95
|
+
* После успешной модификации файла уведомляет indexer и инвалидирует кэш.
|
|
96
|
+
*/
|
|
72
97
|
async execute(toolCall) {
|
|
73
98
|
const start = performance.now();
|
|
74
99
|
const preview = JSON.stringify(toolCall.arguments).slice(0, 120);
|
|
@@ -114,6 +139,7 @@ export class ToolRegistry {
|
|
|
114
139
|
logToolCall(toolCall.name, preview, 'unknown tool');
|
|
115
140
|
return { stdout: '', stderr: `Unknown tool: ${toolCall.name}`, exitCode: 1, truncated: false };
|
|
116
141
|
}
|
|
142
|
+
/** Возвращает определения всех доступных инструментов для system prompt */
|
|
117
143
|
getDefinitions() {
|
|
118
144
|
const defs = [
|
|
119
145
|
...NATIVE_TOOL_DEFS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Санитайзер shell-команд.
|
|
3
|
+
*
|
|
4
|
+
* Блокирует опасные паттерны:
|
|
5
|
+
* - rm -rf / (уничтожение корневой файловой системы)
|
|
6
|
+
* - Fork bomb (:(){ :|:& };:)
|
|
7
|
+
* - chmod 777 (небезопасные права)
|
|
8
|
+
* - dd if=... of=/dev/... (запись на диск)
|
|
9
|
+
* - mkfs (форматирование)
|
|
10
|
+
* - fdisk (разметка диска)
|
|
11
|
+
*
|
|
12
|
+
* Определяет read-only команды (ls, cat, git log и т.д.)
|
|
13
|
+
*
|
|
14
|
+
* @module tools/sanitizer
|
|
15
|
+
*/
|
|
16
|
+
/** Результат санитайзинга */
|
|
1
17
|
export interface SanitizeResult {
|
|
2
18
|
safe: boolean;
|
|
3
19
|
reason?: string;
|
|
4
20
|
readOnly: boolean;
|
|
5
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Главная функция санитайзинга.
|
|
24
|
+
* Проверяет команду на опасные паттерны и определяет является ли она read-only.
|
|
25
|
+
*
|
|
26
|
+
* @param cmd - shell-команда для проверки
|
|
27
|
+
* @returns Результат: safe/unsafe + readOnly флаг
|
|
28
|
+
*/
|
|
6
29
|
export declare function sanitize(cmd: string): SanitizeResult;
|
|
7
30
|
//# sourceMappingURL=sanitizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../../src/tools/sanitizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../../src/tools/sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA2CH,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAmBpD"}
|