micro-models-agent 0.6.4 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +286 -436
- package/dist/main.js +11706 -0
- package/dist/skills/builtin/git.md +36 -0
- package/dist/skills/builtin/typescript.md +35 -0
- package/package.json +41 -47
- package/dist/agent/context.d.ts +0 -73
- package/dist/agent/context.d.ts.map +0 -1
- package/dist/agent/context.js +0 -262
- package/dist/agent/context.js.map +0 -1
- package/dist/agent/error-escalation.d.ts +0 -19
- package/dist/agent/error-escalation.d.ts.map +0 -1
- package/dist/agent/error-escalation.js +0 -168
- package/dist/agent/error-escalation.js.map +0 -1
- package/dist/agent/loop.d.ts +0 -46
- package/dist/agent/loop.d.ts.map +0 -1
- package/dist/agent/loop.js +0 -1043
- package/dist/agent/loop.js.map +0 -1
- package/dist/agent/memory.d.ts +0 -40
- package/dist/agent/memory.d.ts.map +0 -1
- package/dist/agent/memory.js +0 -231
- package/dist/agent/memory.js.map +0 -1
- package/dist/agent/modes/applier.d.ts +0 -43
- package/dist/agent/modes/applier.d.ts.map +0 -1
- package/dist/agent/modes/applier.js +0 -30
- package/dist/agent/modes/applier.js.map +0 -1
- package/dist/agent/modes/registry.d.ts +0 -35
- package/dist/agent/modes/registry.d.ts.map +0 -1
- package/dist/agent/modes/registry.js +0 -169
- package/dist/agent/modes/registry.js.map +0 -1
- package/dist/agent/modes/types.d.ts +0 -61
- package/dist/agent/modes/types.d.ts.map +0 -1
- package/dist/agent/modes/types.js +0 -13
- package/dist/agent/modes/types.js.map +0 -1
- package/dist/agent/react-loop.d.ts +0 -65
- package/dist/agent/react-loop.d.ts.map +0 -1
- package/dist/agent/react-loop.js +0 -101
- package/dist/agent/react-loop.js.map +0 -1
- package/dist/agent/system-prompt.d.ts +0 -26
- package/dist/agent/system-prompt.d.ts.map +0 -1
- package/dist/agent/system-prompt.js +0 -478
- package/dist/agent/system-prompt.js.map +0 -1
- package/dist/agent/tool-executor.d.ts +0 -36
- package/dist/agent/tool-executor.d.ts.map +0 -1
- package/dist/agent/tool-executor.js +0 -346
- package/dist/agent/tool-executor.js.map +0 -1
- package/dist/agent/user-profile.d.ts +0 -26
- package/dist/agent/user-profile.d.ts.map +0 -1
- package/dist/agent/user-profile.js +0 -169
- package/dist/agent/user-profile.js.map +0 -1
- package/dist/agent/write-enforcer.d.ts +0 -7
- package/dist/agent/write-enforcer.d.ts.map +0 -1
- package/dist/agent/write-enforcer.js +0 -8
- package/dist/agent/write-enforcer.js.map +0 -1
- package/dist/cli/config.d.ts +0 -13
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js +0 -82
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/model.d.ts +0 -13
- package/dist/cli/model.d.ts.map +0 -1
- package/dist/cli/model.js +0 -170
- package/dist/cli/model.js.map +0 -1
- package/dist/cli/provider.d.ts +0 -12
- package/dist/cli/provider.d.ts.map +0 -1
- package/dist/cli/provider.js +0 -90
- package/dist/cli/provider.js.map +0 -1
- package/dist/cli/update.d.ts +0 -12
- package/dist/cli/update.d.ts.map +0 -1
- package/dist/cli/update.js +0 -69
- package/dist/cli/update.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -310
- package/dist/cli.js.map +0 -1
- package/dist/config/config.d.ts +0 -59
- package/dist/config/config.d.ts.map +0 -1
- package/dist/config/config.js +0 -232
- package/dist/config/config.js.map +0 -1
- package/dist/config/types.d.ts +0 -122
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -13
- package/dist/config/types.js.map +0 -1
- package/dist/file-loader.d.ts +0 -20
- package/dist/file-loader.d.ts.map +0 -1
- package/dist/file-loader.js +0 -121
- package/dist/file-loader.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/indexer/cache.d.ts +0 -34
- package/dist/indexer/cache.d.ts.map +0 -1
- package/dist/indexer/cache.js +0 -221
- package/dist/indexer/cache.js.map +0 -1
- package/dist/indexer/code-index.d.ts +0 -27
- package/dist/indexer/code-index.d.ts.map +0 -1
- package/dist/indexer/code-index.js +0 -219
- package/dist/indexer/code-index.js.map +0 -1
- package/dist/indexer/project-map.d.ts +0 -23
- package/dist/indexer/project-map.d.ts.map +0 -1
- package/dist/indexer/project-map.js +0 -264
- package/dist/indexer/project-map.js.map +0 -1
- package/dist/llm/lmstudio-native.d.ts +0 -10
- package/dist/llm/lmstudio-native.d.ts.map +0 -1
- package/dist/llm/lmstudio-native.js +0 -179
- package/dist/llm/lmstudio-native.js.map +0 -1
- package/dist/llm/openai-compat.d.ts +0 -11
- package/dist/llm/openai-compat.d.ts.map +0 -1
- package/dist/llm/openai-compat.js +0 -161
- package/dist/llm/openai-compat.js.map +0 -1
- package/dist/llm/provider.d.ts +0 -46
- package/dist/llm/provider.d.ts.map +0 -1
- package/dist/llm/provider.js +0 -13
- package/dist/llm/provider.js.map +0 -1
- package/dist/llm/token-counter.d.ts +0 -15
- package/dist/llm/token-counter.d.ts.map +0 -1
- package/dist/llm/token-counter.js +0 -51
- package/dist/llm/token-counter.js.map +0 -1
- package/dist/logger.d.ts +0 -24
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -156
- package/dist/logger.js.map +0 -1
- package/dist/plugins/adapters/hooks-adapter.d.ts +0 -12
- package/dist/plugins/adapters/hooks-adapter.d.ts.map +0 -1
- package/dist/plugins/adapters/hooks-adapter.js +0 -23
- package/dist/plugins/adapters/hooks-adapter.js.map +0 -1
- package/dist/plugins/builtin/lint-on-write/index.d.ts +0 -12
- package/dist/plugins/builtin/lint-on-write/index.d.ts.map +0 -1
- package/dist/plugins/builtin/lint-on-write/index.js +0 -98
- package/dist/plugins/builtin/lint-on-write/index.js.map +0 -1
- package/dist/plugins/builtin/lint-on-write/index.ts +0 -97
- package/dist/plugins/builtin/lint-on-write/manifest.json +0 -13
- package/dist/plugins/builtin/notify/index.d.ts +0 -11
- package/dist/plugins/builtin/notify/index.d.ts.map +0 -1
- package/dist/plugins/builtin/notify/index.js +0 -102
- package/dist/plugins/builtin/notify/index.js.map +0 -1
- package/dist/plugins/builtin/notify/index.ts +0 -105
- package/dist/plugins/builtin/notify/manifest.json +0 -16
- package/dist/plugins/loader.d.ts +0 -18
- package/dist/plugins/loader.d.ts.map +0 -1
- package/dist/plugins/loader.js +0 -182
- package/dist/plugins/loader.js.map +0 -1
- package/dist/plugins/manager.d.ts +0 -55
- package/dist/plugins/manager.d.ts.map +0 -1
- package/dist/plugins/manager.js +0 -190
- package/dist/plugins/manager.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -76
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/plugins/types.js +0 -8
- package/dist/plugins/types.js.map +0 -1
- package/dist/repl/commands.d.ts +0 -63
- package/dist/repl/commands.d.ts.map +0 -1
- package/dist/repl/commands.js +0 -1070
- package/dist/repl/commands.js.map +0 -1
- package/dist/repl/history.d.ts +0 -32
- package/dist/repl/history.d.ts.map +0 -1
- package/dist/repl/history.js +0 -40
- package/dist/repl/history.js.map +0 -1
- package/dist/repl/index.d.ts +0 -14
- package/dist/repl/index.d.ts.map +0 -1
- package/dist/repl/index.js +0 -235
- package/dist/repl/index.js.map +0 -1
- package/dist/session/store.d.ts +0 -46
- package/dist/session/store.d.ts.map +0 -1
- package/dist/session/store.js +0 -154
- package/dist/session/store.js.map +0 -1
- package/dist/setup-wizard.d.ts +0 -3
- package/dist/setup-wizard.d.ts.map +0 -1
- package/dist/setup-wizard.js +0 -410
- package/dist/setup-wizard.js.map +0 -1
- package/dist/skills/builtin/agent-test/SKILL.md +0 -68
- package/dist/skills/builtin/cli-expert/SKILL.md +0 -848
- package/dist/skills/builtin/code-review/SKILL.md +0 -424
- package/dist/skills/builtin/git-expert/SKILL.md +0 -522
- package/dist/skills/builtin/grill-me/SKILL.md +0 -46
- package/dist/skills/builtin/jest-testing-expert/SKILL.md +0 -957
- package/dist/skills/builtin/nodejs-expert/SKILL.md +0 -192
- package/dist/skills/builtin/systematic-debugging/SKILL.md +0 -296
- package/dist/skills/builtin/test-driven-development/SKILL.md +0 -371
- package/dist/skills/builtin/typescript-expert/SKILL.md +0 -429
- package/dist/skills/builtin/web-scraping/SKILL.md +0 -422
- package/dist/skills/loader.d.ts +0 -49
- package/dist/skills/loader.d.ts.map +0 -1
- package/dist/skills/loader.js +0 -401
- package/dist/skills/loader.js.map +0 -1
- package/dist/styling/engine.d.ts +0 -39
- package/dist/styling/engine.d.ts.map +0 -1
- package/dist/styling/engine.js +0 -122
- package/dist/styling/engine.js.map +0 -1
- package/dist/styling/index.d.ts +0 -15
- package/dist/styling/index.d.ts.map +0 -1
- package/dist/styling/index.js +0 -40
- package/dist/styling/index.js.map +0 -1
- package/dist/styling/loader.d.ts +0 -9
- package/dist/styling/loader.d.ts.map +0 -1
- package/dist/styling/loader.js +0 -169
- package/dist/styling/loader.js.map +0 -1
- package/dist/styling/types.d.ts +0 -64
- package/dist/styling/types.d.ts.map +0 -1
- package/dist/styling/types.js +0 -12
- package/dist/styling/types.js.map +0 -1
- package/dist/subagent/chat.d.ts +0 -19
- package/dist/subagent/chat.d.ts.map +0 -1
- package/dist/subagent/chat.js +0 -279
- package/dist/subagent/chat.js.map +0 -1
- package/dist/subagent/context.d.ts +0 -9
- package/dist/subagent/context.d.ts.map +0 -1
- package/dist/subagent/context.js +0 -75
- package/dist/subagent/context.js.map +0 -1
- package/dist/subagent/definition.d.ts +0 -7
- package/dist/subagent/definition.d.ts.map +0 -1
- package/dist/subagent/definition.js +0 -26
- package/dist/subagent/definition.js.map +0 -1
- package/dist/subagent/errors.d.ts +0 -24
- package/dist/subagent/errors.d.ts.map +0 -1
- package/dist/subagent/errors.js +0 -85
- package/dist/subagent/errors.js.map +0 -1
- package/dist/subagent/validation.d.ts +0 -17
- package/dist/subagent/validation.d.ts.map +0 -1
- package/dist/subagent/validation.js +0 -83
- package/dist/subagent/validation.js.map +0 -1
- package/dist/tools/adapters/bash-to-fs.d.ts +0 -20
- package/dist/tools/adapters/bash-to-fs.d.ts.map +0 -1
- package/dist/tools/adapters/bash-to-fs.js +0 -74
- package/dist/tools/adapters/bash-to-fs.js.map +0 -1
- package/dist/tools/adapters/content-sanitizer.d.ts +0 -13
- package/dist/tools/adapters/content-sanitizer.d.ts.map +0 -1
- package/dist/tools/adapters/content-sanitizer.js +0 -73
- package/dist/tools/adapters/content-sanitizer.js.map +0 -1
- package/dist/tools/adapters/grounding-fixer.d.ts +0 -15
- package/dist/tools/adapters/grounding-fixer.d.ts.map +0 -1
- package/dist/tools/adapters/grounding-fixer.js +0 -57
- package/dist/tools/adapters/grounding-fixer.js.map +0 -1
- package/dist/tools/adapters/index.d.ts +0 -6
- package/dist/tools/adapters/index.d.ts.map +0 -1
- package/dist/tools/adapters/index.js +0 -5
- package/dist/tools/adapters/index.js.map +0 -1
- package/dist/tools/adapters/pipeline.d.ts +0 -34
- package/dist/tools/adapters/pipeline.d.ts.map +0 -1
- package/dist/tools/adapters/pipeline.js +0 -58
- package/dist/tools/adapters/pipeline.js.map +0 -1
- package/dist/tools/adapters/types.d.ts +0 -46
- package/dist/tools/adapters/types.d.ts.map +0 -1
- package/dist/tools/adapters/types.js +0 -2
- package/dist/tools/adapters/types.js.map +0 -1
- package/dist/tools/approve.d.ts +0 -27
- package/dist/tools/approve.d.ts.map +0 -1
- package/dist/tools/approve.js +0 -45
- package/dist/tools/approve.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -25
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/bash.js +0 -292
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/fs/copy-file.d.ts +0 -13
- package/dist/tools/fs/copy-file.d.ts.map +0 -1
- package/dist/tools/fs/copy-file.js +0 -54
- package/dist/tools/fs/copy-file.js.map +0 -1
- package/dist/tools/fs/create-dir.d.ts +0 -13
- package/dist/tools/fs/create-dir.d.ts.map +0 -1
- package/dist/tools/fs/create-dir.js +0 -44
- package/dist/tools/fs/create-dir.js.map +0 -1
- package/dist/tools/fs/delete-file.d.ts +0 -13
- package/dist/tools/fs/delete-file.d.ts.map +0 -1
- package/dist/tools/fs/delete-file.js +0 -52
- package/dist/tools/fs/delete-file.js.map +0 -1
- package/dist/tools/fs/edit-file.d.ts +0 -15
- package/dist/tools/fs/edit-file.d.ts.map +0 -1
- package/dist/tools/fs/edit-file.js +0 -95
- package/dist/tools/fs/edit-file.js.map +0 -1
- package/dist/tools/fs/file-info.d.ts +0 -13
- package/dist/tools/fs/file-info.d.ts.map +0 -1
- package/dist/tools/fs/file-info.js +0 -50
- package/dist/tools/fs/file-info.js.map +0 -1
- package/dist/tools/fs/glob-search.d.ts +0 -13
- package/dist/tools/fs/glob-search.d.ts.map +0 -1
- package/dist/tools/fs/glob-search.js +0 -112
- package/dist/tools/fs/glob-search.js.map +0 -1
- package/dist/tools/fs/grep-search.d.ts +0 -14
- package/dist/tools/fs/grep-search.d.ts.map +0 -1
- package/dist/tools/fs/grep-search.js +0 -135
- package/dist/tools/fs/grep-search.js.map +0 -1
- package/dist/tools/fs/list-dir.d.ts +0 -13
- package/dist/tools/fs/list-dir.d.ts.map +0 -1
- package/dist/tools/fs/list-dir.js +0 -74
- package/dist/tools/fs/list-dir.js.map +0 -1
- package/dist/tools/fs/move-file.d.ts +0 -13
- package/dist/tools/fs/move-file.d.ts.map +0 -1
- package/dist/tools/fs/move-file.js +0 -54
- package/dist/tools/fs/move-file.js.map +0 -1
- package/dist/tools/fs/path-utils.d.ts +0 -51
- package/dist/tools/fs/path-utils.d.ts.map +0 -1
- package/dist/tools/fs/path-utils.js +0 -103
- package/dist/tools/fs/path-utils.js.map +0 -1
- package/dist/tools/fs/read-file.d.ts +0 -13
- package/dist/tools/fs/read-file.d.ts.map +0 -1
- package/dist/tools/fs/read-file.js +0 -64
- package/dist/tools/fs/read-file.js.map +0 -1
- package/dist/tools/fs/tree.d.ts +0 -13
- package/dist/tools/fs/tree.d.ts.map +0 -1
- package/dist/tools/fs/tree.js +0 -89
- package/dist/tools/fs/tree.js.map +0 -1
- package/dist/tools/fs/types.d.ts +0 -14
- package/dist/tools/fs/types.d.ts.map +0 -1
- package/dist/tools/fs/types.js +0 -11
- package/dist/tools/fs/types.js.map +0 -1
- package/dist/tools/fs/write-file.d.ts +0 -14
- package/dist/tools/fs/write-file.d.ts.map +0 -1
- package/dist/tools/fs/write-file.js +0 -83
- package/dist/tools/fs/write-file.js.map +0 -1
- package/dist/tools/hooks.d.ts +0 -44
- package/dist/tools/hooks.d.ts.map +0 -1
- package/dist/tools/hooks.js +0 -217
- package/dist/tools/hooks.js.map +0 -1
- package/dist/tools/id-gen.d.ts +0 -4
- package/dist/tools/id-gen.d.ts.map +0 -1
- package/dist/tools/id-gen.js +0 -12
- package/dist/tools/id-gen.js.map +0 -1
- package/dist/tools/mcp.d.ts +0 -36
- package/dist/tools/mcp.d.ts.map +0 -1
- package/dist/tools/mcp.js +0 -93
- package/dist/tools/mcp.js.map +0 -1
- package/dist/tools/native/approve.d.ts +0 -11
- package/dist/tools/native/approve.d.ts.map +0 -1
- package/dist/tools/native/approve.js +0 -39
- package/dist/tools/native/approve.js.map +0 -1
- package/dist/tools/native/plan.d.ts +0 -10
- package/dist/tools/native/plan.d.ts.map +0 -1
- package/dist/tools/native/plan.js +0 -115
- package/dist/tools/native/plan.js.map +0 -1
- package/dist/tools/native/project-map.d.ts +0 -15
- package/dist/tools/native/project-map.d.ts.map +0 -1
- package/dist/tools/native/project-map.js +0 -203
- package/dist/tools/native/project-map.js.map +0 -1
- package/dist/tools/native/question.d.ts +0 -11
- package/dist/tools/native/question.d.ts.map +0 -1
- package/dist/tools/native/question.js +0 -41
- package/dist/tools/native/question.js.map +0 -1
- package/dist/tools/native/scaffold.d.ts +0 -5
- package/dist/tools/native/scaffold.d.ts.map +0 -1
- package/dist/tools/native/scaffold.js +0 -246
- package/dist/tools/native/scaffold.js.map +0 -1
- package/dist/tools/native/theme.d.ts +0 -10
- package/dist/tools/native/theme.d.ts.map +0 -1
- package/dist/tools/native/theme.js +0 -101
- package/dist/tools/native/theme.js.map +0 -1
- package/dist/tools/native/todo.d.ts +0 -10
- package/dist/tools/native/todo.d.ts.map +0 -1
- package/dist/tools/native/todo.js +0 -58
- package/dist/tools/native/todo.js.map +0 -1
- package/dist/tools/native/user-profile.d.ts +0 -10
- package/dist/tools/native/user-profile.d.ts.map +0 -1
- package/dist/tools/native/user-profile.js +0 -58
- package/dist/tools/native/user-profile.js.map +0 -1
- package/dist/tools/parse-tool-call.d.ts +0 -11
- package/dist/tools/parse-tool-call.d.ts.map +0 -1
- package/dist/tools/parse-tool-call.js +0 -87
- package/dist/tools/parse-tool-call.js.map +0 -1
- package/dist/tools/plan.d.ts +0 -40
- package/dist/tools/plan.d.ts.map +0 -1
- package/dist/tools/plan.js +0 -143
- package/dist/tools/plan.js.map +0 -1
- package/dist/tools/question.d.ts +0 -33
- package/dist/tools/question.d.ts.map +0 -1
- package/dist/tools/question.js +0 -62
- package/dist/tools/question.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -37
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -97
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/sanitizer.d.ts +0 -30
- package/dist/tools/sanitizer.d.ts.map +0 -1
- package/dist/tools/sanitizer.js +0 -77
- package/dist/tools/sanitizer.js.map +0 -1
- package/dist/tools/subagent.d.ts +0 -39
- package/dist/tools/subagent.d.ts.map +0 -1
- package/dist/tools/subagent.js +0 -225
- package/dist/tools/subagent.js.map +0 -1
- package/dist/tools/syntax-check.d.ts +0 -32
- package/dist/tools/syntax-check.d.ts.map +0 -1
- package/dist/tools/syntax-check.js +0 -272
- package/dist/tools/syntax-check.js.map +0 -1
- package/dist/tools/todo.d.ts +0 -28
- package/dist/tools/todo.d.ts.map +0 -1
- package/dist/tools/todo.js +0 -125
- package/dist/tools/todo.js.map +0 -1
- package/dist/tools/types.d.ts +0 -51
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js +0 -2
- package/dist/tools/types.js.map +0 -1
- package/dist/tools/web-browse.d.ts +0 -5
- package/dist/tools/web-browse.d.ts.map +0 -1
- package/dist/tools/web-browse.js +0 -757
- package/dist/tools/web-browse.js.map +0 -1
- package/dist/tools/web-fetch.d.ts +0 -19
- package/dist/tools/web-fetch.d.ts.map +0 -1
- package/dist/tools/web-fetch.js +0 -90
- package/dist/tools/web-fetch.js.map +0 -1
- package/dist/tools/web-search.d.ts +0 -19
- package/dist/tools/web-search.d.ts.map +0 -1
- package/dist/tools/web-search.js +0 -97
- package/dist/tools/web-search.js.map +0 -1
- package/dist/ui/components/status-bar.d.ts +0 -11
- package/dist/ui/components/status-bar.d.ts.map +0 -1
- package/dist/ui/components/status-bar.js +0 -20
- package/dist/ui/components/status-bar.js.map +0 -1
- package/dist/ui/index.d.ts +0 -8
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -9
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/ink/components/App.d.ts +0 -98
- package/dist/ui/ink/components/App.d.ts.map +0 -1
- package/dist/ui/ink/components/App.js +0 -212
- package/dist/ui/ink/components/App.js.map +0 -1
- package/dist/ui/ink/components/Conversation.d.ts +0 -20
- package/dist/ui/ink/components/Conversation.d.ts.map +0 -1
- package/dist/ui/ink/components/Conversation.js +0 -15
- package/dist/ui/ink/components/Conversation.js.map +0 -1
- package/dist/ui/ink/components/MessageBlock.d.ts +0 -27
- package/dist/ui/ink/components/MessageBlock.d.ts.map +0 -1
- package/dist/ui/ink/components/MessageBlock.js +0 -41
- package/dist/ui/ink/components/MessageBlock.js.map +0 -1
- package/dist/ui/ink/components/PromptInput.d.ts +0 -25
- package/dist/ui/ink/components/PromptInput.d.ts.map +0 -1
- package/dist/ui/ink/components/PromptInput.js +0 -167
- package/dist/ui/ink/components/PromptInput.js.map +0 -1
- package/dist/ui/ink/components/SelectInput.d.ts +0 -9
- package/dist/ui/ink/components/SelectInput.d.ts.map +0 -1
- package/dist/ui/ink/components/SelectInput.js +0 -30
- package/dist/ui/ink/components/SelectInput.js.map +0 -1
- package/dist/ui/ink/components/StatusBar.d.ts +0 -14
- package/dist/ui/ink/components/StatusBar.d.ts.map +0 -1
- package/dist/ui/ink/components/StatusBar.js +0 -20
- package/dist/ui/ink/components/StatusBar.js.map +0 -1
- package/dist/ui/ink/components/StreamBlock.d.ts +0 -8
- package/dist/ui/ink/components/StreamBlock.d.ts.map +0 -1
- package/dist/ui/ink/components/StreamBlock.js +0 -15
- package/dist/ui/ink/components/StreamBlock.js.map +0 -1
- package/dist/ui/ink/components/Tags.d.ts +0 -26
- package/dist/ui/ink/components/Tags.d.ts.map +0 -1
- package/dist/ui/ink/components/Tags.js +0 -37
- package/dist/ui/ink/components/Tags.js.map +0 -1
- package/dist/ui/ink/components/ToolCallBlock.d.ts +0 -31
- package/dist/ui/ink/components/ToolCallBlock.d.ts.map +0 -1
- package/dist/ui/ink/components/ToolCallBlock.js +0 -17
- package/dist/ui/ink/components/ToolCallBlock.js.map +0 -1
- package/dist/ui/ink/renderer.d.ts +0 -69
- package/dist/ui/ink/renderer.d.ts.map +0 -1
- package/dist/ui/ink/renderer.js +0 -142
- package/dist/ui/ink/renderer.js.map +0 -1
- package/dist/ui/ink/theme.d.ts +0 -28
- package/dist/ui/ink/theme.d.ts.map +0 -1
- package/dist/ui/ink/theme.js +0 -45
- package/dist/ui/ink/theme.js.map +0 -1
- package/dist/ui/md-formatter.d.ts +0 -16
- package/dist/ui/md-formatter.d.ts.map +0 -1
- package/dist/ui/md-formatter.js +0 -448
- package/dist/ui/md-formatter.js.map +0 -1
- package/dist/ui/readline-renderer.d.ts +0 -45
- package/dist/ui/readline-renderer.d.ts.map +0 -1
- package/dist/ui/readline-renderer.js +0 -181
- package/dist/ui/readline-renderer.js.map +0 -1
- package/dist/ui/renderer.d.ts +0 -66
- package/dist/ui/renderer.d.ts.map +0 -1
- package/dist/ui/renderer.js +0 -16
- package/dist/ui/renderer.js.map +0 -1
- package/dist/ui/subagent-renderer.d.ts +0 -58
- package/dist/ui/subagent-renderer.d.ts.map +0 -1
- package/dist/ui/subagent-renderer.js +0 -100
- package/dist/ui/subagent-renderer.js.map +0 -1
- package/dist/updater.d.ts +0 -15
- package/dist/updater.d.ts.map +0 -1
- package/dist/updater.js +0 -166
- package/dist/updater.js.map +0 -1
package/dist/tools/plan.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/** Переопределяет директорию хранения плана (для тестов) */
|
|
2
|
-
export declare function setPlanDir(dir: string): void;
|
|
3
|
-
/** Шаг плана */
|
|
4
|
-
export interface PlanStep {
|
|
5
|
-
id: number;
|
|
6
|
-
title: string;
|
|
7
|
-
status: 'pending' | 'in_progress' | 'done' | 'skipped';
|
|
8
|
-
}
|
|
9
|
-
/** План агента */
|
|
10
|
-
export interface Plan {
|
|
11
|
-
name: string;
|
|
12
|
-
steps: PlanStep[];
|
|
13
|
-
createdAt: string;
|
|
14
|
-
updatedAt: string;
|
|
15
|
-
}
|
|
16
|
-
/** Создаёт новый план с указанными шагами */
|
|
17
|
-
export declare function createPlan(name: string, steps: string[]): string;
|
|
18
|
-
/** Обновляет статус шага плана */
|
|
19
|
-
export declare function updatePlanStep(stepId: number, status: PlanStep['status']): string;
|
|
20
|
-
/** Показывает текущий план с прогрессом */
|
|
21
|
-
export declare function showPlan(): string;
|
|
22
|
-
/** Удаляет текущий план */
|
|
23
|
-
export declare function clearPlan(): string;
|
|
24
|
-
/** Возвращает количество незавершённых шагов плана (0 = все готово или нет плана) */
|
|
25
|
-
export declare function getPlanPendingCount(): number;
|
|
26
|
-
/** Возвращает заголовок шага плана по его ID (или null если плана нет/шаг не найден) */
|
|
27
|
-
export declare function getPlanStepTitle(stepId: number): string | null;
|
|
28
|
-
/** Возвращает следующий pending шаг плана (или null) */
|
|
29
|
-
export declare function getNextPendingStep(): PlanStep | null;
|
|
30
|
-
/** Извлекает ожидаемую директорию из заголовка шага.
|
|
31
|
-
* Например: "Create src/db.ts" → "src"
|
|
32
|
-
* "Создать index.html в src/" → "src"
|
|
33
|
-
* Возвращает null если директория не найдена. */
|
|
34
|
-
export declare function extractDirFromStepTitle(title: string): string | null;
|
|
35
|
-
/** Парсит аргументы команды plan (create, done, progress, show, clear) */
|
|
36
|
-
export declare function parsePlanCommand(args: string): {
|
|
37
|
-
action: string;
|
|
38
|
-
params: string[];
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=plan.d.ts.map
|
package/dist/tools/plan.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAoBA,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG5C;AAED,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;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,QAAQ,GAAG,IAAI,CAIpD;AAED;;;kDAGkD;AAClD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpE;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
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { homedir } from 'node:os';
|
|
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
|
-
*/
|
|
15
|
-
/** Директория для хранения плана (может быть переопределена через setPlanDir или env PLAN_DIR) */
|
|
16
|
-
let PLAN_DIR = process.env.PLAN_DIR || join(homedir(), '.mma', 'state');
|
|
17
|
-
let PLAN_FILE = join(PLAN_DIR, 'current-plan.json');
|
|
18
|
-
/** Переопределяет директорию хранения плана (для тестов) */
|
|
19
|
-
export function setPlanDir(dir) {
|
|
20
|
-
PLAN_DIR = dir;
|
|
21
|
-
PLAN_FILE = join(PLAN_DIR, 'current-plan.json');
|
|
22
|
-
}
|
|
23
|
-
/** Создаёт директорию для планов если не существует */
|
|
24
|
-
function ensureDir() {
|
|
25
|
-
if (!existsSync(PLAN_DIR))
|
|
26
|
-
mkdirSync(PLAN_DIR, { recursive: true });
|
|
27
|
-
}
|
|
28
|
-
/** Загружает текущий план из файла */
|
|
29
|
-
function loadPlan() {
|
|
30
|
-
try {
|
|
31
|
-
if (existsSync(PLAN_FILE)) {
|
|
32
|
-
return JSON.parse(readFileSync(PLAN_FILE, 'utf-8'));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
catch { /* ignore */ }
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
/** Сохраняет план в файл */
|
|
39
|
-
function savePlan(plan) {
|
|
40
|
-
ensureDir();
|
|
41
|
-
writeFileSync(PLAN_FILE, JSON.stringify(plan, null, 2), 'utf-8');
|
|
42
|
-
}
|
|
43
|
-
/** Создаёт новый план с указанными шагами */
|
|
44
|
-
export function createPlan(name, steps) {
|
|
45
|
-
const plan = {
|
|
46
|
-
name,
|
|
47
|
-
steps: steps.map((title, i) => ({
|
|
48
|
-
id: i + 1,
|
|
49
|
-
title,
|
|
50
|
-
status: 'pending',
|
|
51
|
-
})),
|
|
52
|
-
createdAt: new Date().toISOString(),
|
|
53
|
-
updatedAt: new Date().toISOString(),
|
|
54
|
-
};
|
|
55
|
-
savePlan(plan);
|
|
56
|
-
return formatPlan(plan);
|
|
57
|
-
}
|
|
58
|
-
/** Обновляет статус шага плана */
|
|
59
|
-
export function updatePlanStep(stepId, status) {
|
|
60
|
-
const plan = loadPlan();
|
|
61
|
-
if (!plan)
|
|
62
|
-
return 'No active plan. Create one first with plan(create).';
|
|
63
|
-
const step = plan.steps.find(s => s.id === stepId);
|
|
64
|
-
if (!step)
|
|
65
|
-
return `Step ${stepId} not found.`;
|
|
66
|
-
step.status = status;
|
|
67
|
-
plan.updatedAt = new Date().toISOString();
|
|
68
|
-
savePlan(plan);
|
|
69
|
-
return formatPlan(plan);
|
|
70
|
-
}
|
|
71
|
-
/** Показывает текущий план с прогрессом */
|
|
72
|
-
export function showPlan() {
|
|
73
|
-
const plan = loadPlan();
|
|
74
|
-
if (!plan)
|
|
75
|
-
return 'No active plan. Create one with plan(create).';
|
|
76
|
-
return formatPlan(plan);
|
|
77
|
-
}
|
|
78
|
-
/** Удаляет текущий план */
|
|
79
|
-
export function clearPlan() {
|
|
80
|
-
const plan = loadPlan();
|
|
81
|
-
if (!plan)
|
|
82
|
-
return 'No active plan to clear.';
|
|
83
|
-
try {
|
|
84
|
-
unlinkSync(PLAN_FILE);
|
|
85
|
-
}
|
|
86
|
-
catch { /* ignore */ }
|
|
87
|
-
return `Plan "${plan.name}" cleared.`;
|
|
88
|
-
}
|
|
89
|
-
/** Возвращает количество незавершённых шагов плана (0 = все готово или нет плана) */
|
|
90
|
-
export function getPlanPendingCount() {
|
|
91
|
-
const plan = loadPlan();
|
|
92
|
-
if (!plan)
|
|
93
|
-
return 0;
|
|
94
|
-
return plan.steps.filter(s => s.status !== 'done' && s.status !== 'skipped').length;
|
|
95
|
-
}
|
|
96
|
-
/** Возвращает заголовок шага плана по его ID (или null если плана нет/шаг не найден) */
|
|
97
|
-
export function getPlanStepTitle(stepId) {
|
|
98
|
-
const plan = loadPlan();
|
|
99
|
-
if (!plan)
|
|
100
|
-
return null;
|
|
101
|
-
const step = plan.steps.find(s => s.id === stepId);
|
|
102
|
-
return step?.title ?? null;
|
|
103
|
-
}
|
|
104
|
-
/** Возвращает следующий pending шаг плана (или null) */
|
|
105
|
-
export function getNextPendingStep() {
|
|
106
|
-
const plan = loadPlan();
|
|
107
|
-
if (!plan)
|
|
108
|
-
return null;
|
|
109
|
-
return plan.steps.find(s => s.status === 'pending') ?? null;
|
|
110
|
-
}
|
|
111
|
-
/** Извлекает ожидаемую директорию из заголовка шага.
|
|
112
|
-
* Например: "Create src/db.ts" → "src"
|
|
113
|
-
* "Создать index.html в src/" → "src"
|
|
114
|
-
* Возвращает null если директория не найдена. */
|
|
115
|
-
export function extractDirFromStepTitle(title) {
|
|
116
|
-
// Паттерн: "Create dir/file" или "Создать file в dir/"
|
|
117
|
-
const match = title.match(/(?:Create|Создать|Add|Добавить)\s+(\w[\w-]*)\//i)
|
|
118
|
-
|| title.match(/(?:Create|Создать|Add|Добавить)\s+\S+\s+(?:in|в)\s+(\w[\w-]*)\//i);
|
|
119
|
-
return match?.[1] ?? null;
|
|
120
|
-
}
|
|
121
|
-
/** Форматирует план для отображения (с иконками и прогрессом) */
|
|
122
|
-
function formatPlan(plan) {
|
|
123
|
-
const theme = getTheme();
|
|
124
|
-
const done = plan.steps.filter(s => s.status === 'done').length;
|
|
125
|
-
const total = plan.steps.length;
|
|
126
|
-
const progress = total > 0 ? Math.round((done / total) * 100) : 0;
|
|
127
|
-
const lines = [];
|
|
128
|
-
lines.push(`${theme.heading(`Plan: ${plan.name}`)} [${done}/${total} ${progress}%]`);
|
|
129
|
-
lines.push('');
|
|
130
|
-
for (const step of plan.steps) {
|
|
131
|
-
const icon = theme.stepIcon(step.status);
|
|
132
|
-
lines.push(` ${icon} ${theme.dim(String(step.id))}. ${step.title}`);
|
|
133
|
-
}
|
|
134
|
-
return lines.join('\n');
|
|
135
|
-
}
|
|
136
|
-
/** Парсит аргументы команды plan (create, done, progress, show, clear) */
|
|
137
|
-
export function parsePlanCommand(args) {
|
|
138
|
-
const parts = args.trim().split(/\s+/);
|
|
139
|
-
const action = parts[0] || 'show';
|
|
140
|
-
const params = parts.slice(1);
|
|
141
|
-
return { action, params };
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=plan.js.map
|
package/dist/tools/plan.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,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,kGAAkG;AAClG,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACxE,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAEpD,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,QAAQ,GAAG,GAAG,CAAC;IACf,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAiBD,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,UAAU,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,OAAO,SAAS,IAAI,CAAC,IAAI,YAAY,CAAC;AACxC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,mBAAmB;IACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;AACtF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC;AAC9D,CAAC;AAED;;;kDAGkD;AAClD,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,uDAAuD;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC;WACvE,KAAK,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACrF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,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
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Инструмент вопроса пользователю.
|
|
3
|
-
*
|
|
4
|
-
* Позволяет агенту задавать вопросы с вариантами ответов.
|
|
5
|
-
* Используется когда агенту нужен выбор или уточнение.
|
|
6
|
-
*
|
|
7
|
-
* @module tools/question
|
|
8
|
-
*/
|
|
9
|
-
/** Состояние вопроса */
|
|
10
|
-
export interface QuestionState {
|
|
11
|
-
active: boolean;
|
|
12
|
-
question: string;
|
|
13
|
-
choices?: string[];
|
|
14
|
-
response?: string;
|
|
15
|
-
}
|
|
16
|
-
/** Создаёт новый вопрос для пользователя */
|
|
17
|
-
export declare function askQuestion(question: string, choices?: string[]): QuestionState;
|
|
18
|
-
/** Возвращает текущий активный вопрос */
|
|
19
|
-
export declare function getQuestion(): QuestionState | null;
|
|
20
|
-
/** Записывает ответ пользователя на вопрос */
|
|
21
|
-
export declare function answerQuestion(response: string): void;
|
|
22
|
-
/** Проверяет есть ли активный вопрос */
|
|
23
|
-
export declare function hasActiveQuestion(): boolean;
|
|
24
|
-
/** Форматирует вопрос для отображения (без цвета) */
|
|
25
|
-
export declare function formatQuestion(q: QuestionState): string;
|
|
26
|
-
/** Форматирует вопрос с цветом (Ink UI) */
|
|
27
|
-
export declare function formatQuestionColored(q: QuestionState): string;
|
|
28
|
-
/** Парсит аргументы команды question (формат: text | choice1 | choice2) */
|
|
29
|
-
export declare function parseQuestionCommand(args: string): {
|
|
30
|
-
question: string;
|
|
31
|
-
choices: string[];
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=question.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { getTheme } from '../styling/index.js';
|
|
2
|
-
let currentQuestion = null;
|
|
3
|
-
/** Создаёт новый вопрос для пользователя */
|
|
4
|
-
export function askQuestion(question, choices) {
|
|
5
|
-
currentQuestion = {
|
|
6
|
-
active: true,
|
|
7
|
-
question,
|
|
8
|
-
choices,
|
|
9
|
-
};
|
|
10
|
-
return currentQuestion;
|
|
11
|
-
}
|
|
12
|
-
/** Возвращает текущий активный вопрос */
|
|
13
|
-
export function getQuestion() {
|
|
14
|
-
return currentQuestion;
|
|
15
|
-
}
|
|
16
|
-
/** Записывает ответ пользователя на вопрос */
|
|
17
|
-
export function answerQuestion(response) {
|
|
18
|
-
if (currentQuestion) {
|
|
19
|
-
currentQuestion.response = response;
|
|
20
|
-
currentQuestion.active = false;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/** Проверяет есть ли активный вопрос */
|
|
24
|
-
export function hasActiveQuestion() {
|
|
25
|
-
return currentQuestion?.active === true;
|
|
26
|
-
}
|
|
27
|
-
/** Форматирует вопрос для отображения (без цвета) */
|
|
28
|
-
export function formatQuestion(q) {
|
|
29
|
-
const lines = [];
|
|
30
|
-
lines.push(`Question: ${q.question}`);
|
|
31
|
-
if (q.choices && q.choices.length > 0) {
|
|
32
|
-
lines.push('');
|
|
33
|
-
for (let i = 0; i < q.choices.length; i++) {
|
|
34
|
-
lines.push(` ${i + 1}. ${q.choices[i]}`);
|
|
35
|
-
}
|
|
36
|
-
lines.push('');
|
|
37
|
-
lines.push(`Enter number (1-${q.choices.length}) or custom text:`);
|
|
38
|
-
}
|
|
39
|
-
return lines.join('\n');
|
|
40
|
-
}
|
|
41
|
-
/** Форматирует вопрос с цветом (Ink UI) */
|
|
42
|
-
export function formatQuestionColored(q) {
|
|
43
|
-
const theme = getTheme();
|
|
44
|
-
const lines = [];
|
|
45
|
-
lines.push(theme.warning(` ${theme.icon.separator} Question: ${q.question}`));
|
|
46
|
-
if (q.choices && q.choices.length > 0) {
|
|
47
|
-
lines.push('');
|
|
48
|
-
for (let i = 0; i < q.choices.length; i++) {
|
|
49
|
-
lines.push(` ${theme.highlight(String(i + 1))}. ${q.choices[i]}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return lines.join('\n');
|
|
53
|
-
}
|
|
54
|
-
/** Парсит аргументы команды question (формат: text | choice1 | choice2) */
|
|
55
|
-
export function parseQuestionCommand(args) {
|
|
56
|
-
// Формат: question text | choice1 | choice2 | ...
|
|
57
|
-
const parts = args.split('|').map(s => s.trim());
|
|
58
|
-
const question = parts[0] || '';
|
|
59
|
-
const choices = parts.slice(1).filter(Boolean);
|
|
60
|
-
return { question, choices };
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=question.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/tools/question.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/registry.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { ChatMessage } from "../llm/provider.js";
|
|
2
|
-
import type { BashResult } from "./bash.js";
|
|
3
|
-
/**
|
|
4
|
-
* Реестр всех инструментов агента.
|
|
5
|
-
*
|
|
6
|
-
* Хранит определения инструментов для LLM и валидирует имена.
|
|
7
|
-
* Исполнение вынесено в ToolExecutor (src/agent/tool-executor.ts).
|
|
8
|
-
*
|
|
9
|
-
* @module tools/registry
|
|
10
|
-
*/
|
|
11
|
-
export interface ToolDefinition {
|
|
12
|
-
type: "function";
|
|
13
|
-
function: {
|
|
14
|
-
name: string;
|
|
15
|
-
description: string;
|
|
16
|
-
parameters: Record<string, unknown>;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
export interface ToolCall {
|
|
20
|
-
id: string;
|
|
21
|
-
name: string;
|
|
22
|
-
arguments: Record<string, unknown>;
|
|
23
|
-
}
|
|
24
|
-
export type ToolResult = BashResult;
|
|
25
|
-
/** Все определения инструментов (для system prompt) */
|
|
26
|
-
export declare const ALL_DEFINITIONS: ToolDefinition[];
|
|
27
|
-
/**
|
|
28
|
-
* Реестр инструментов — хранит определения и валидирует имена.
|
|
29
|
-
* Исполнение — через ToolExecutor.
|
|
30
|
-
*/
|
|
31
|
-
export declare class ToolRegistry {
|
|
32
|
-
/** Возвращает определения всех доступных инструментов для system prompt */
|
|
33
|
-
getDefinitions(): ToolDefinition[];
|
|
34
|
-
isToolCall(message: ChatMessage): boolean;
|
|
35
|
-
isValidTool(name: string): boolean;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/tools/registry.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
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";
|
|
25
|
-
/** Все определения инструментов (для system prompt) */
|
|
26
|
-
export const ALL_DEFINITIONS = [
|
|
27
|
-
// Native
|
|
28
|
-
{
|
|
29
|
-
type: "function",
|
|
30
|
-
function: {
|
|
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).",
|
|
33
|
-
parameters: {
|
|
34
|
-
type: "object",
|
|
35
|
-
properties: {
|
|
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
|
-
},
|
|
44
|
-
},
|
|
45
|
-
required: ["task"],
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
// Bash
|
|
50
|
-
bashDefinition,
|
|
51
|
-
// Scaffold
|
|
52
|
-
scaffoldDefinition,
|
|
53
|
-
// Project Map
|
|
54
|
-
projectMapDefinition,
|
|
55
|
-
// FS
|
|
56
|
-
readFileDefinition,
|
|
57
|
-
writeFileDefinition,
|
|
58
|
-
editFileDefinition,
|
|
59
|
-
listDirDefinition,
|
|
60
|
-
createDirDefinition,
|
|
61
|
-
deleteFileDefinition,
|
|
62
|
-
copyFileDefinition,
|
|
63
|
-
moveFileDefinition,
|
|
64
|
-
fileInfoDefinition,
|
|
65
|
-
globSearchDefinition,
|
|
66
|
-
grepSearchDefinition,
|
|
67
|
-
treeDefinition,
|
|
68
|
-
// Web
|
|
69
|
-
webSearchDefinition,
|
|
70
|
-
webFetchDefinition,
|
|
71
|
-
webBrowseDefinition,
|
|
72
|
-
// Native
|
|
73
|
-
planDefinition,
|
|
74
|
-
todoDefinition,
|
|
75
|
-
questionDefinition,
|
|
76
|
-
approveDefinition,
|
|
77
|
-
userProfileDefinition,
|
|
78
|
-
themeDefinition,
|
|
79
|
-
];
|
|
80
|
-
const VALID_TOOL_NAMES = new Set(ALL_DEFINITIONS.map((d) => d.function.name));
|
|
81
|
-
/**
|
|
82
|
-
* Реестр инструментов — хранит определения и валидирует имена.
|
|
83
|
-
* Исполнение — через ToolExecutor.
|
|
84
|
-
*/
|
|
85
|
-
export class ToolRegistry {
|
|
86
|
-
/** Возвращает определения всех доступных инструментов для system prompt */
|
|
87
|
-
getDefinitions() {
|
|
88
|
-
return ALL_DEFINITIONS;
|
|
89
|
-
}
|
|
90
|
-
isToolCall(message) {
|
|
91
|
-
return message.role === "assistant" && message.content === "";
|
|
92
|
-
}
|
|
93
|
-
isValidTool(name) {
|
|
94
|
-
return VALID_TOOL_NAMES.has(name);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA6BpD,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,SAAS;IACT;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,6MAA6M;YAC/M,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,oEAAoE;qBACvE;iBACF;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;IACnB,SAAS;IACT,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,eAAe;CAChB,CAAC;AAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAE9E;;;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,30 +0,0 @@
|
|
|
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
|
-
/** Результат санитайзинга */
|
|
17
|
-
export interface SanitizeResult {
|
|
18
|
-
safe: boolean;
|
|
19
|
-
reason?: string;
|
|
20
|
-
readOnly: boolean;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Главная функция санитайзинга.
|
|
24
|
-
* Проверяет команду на опасные паттерны и определяет является ли она read-only.
|
|
25
|
-
*
|
|
26
|
-
* @param cmd - shell-команда для проверки
|
|
27
|
-
* @returns Результат: safe/unsafe + readOnly флаг
|
|
28
|
-
*/
|
|
29
|
-
export declare function sanitize(cmd: string): SanitizeResult;
|
|
30
|
-
//# sourceMappingURL=sanitizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/tools/sanitizer.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
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
|
-
// ─── Опасные паттерны ────────────────────────────────────
|
|
17
|
-
const DANGEROUS_PATTERNS = [
|
|
18
|
-
/rm\s+-rf\s+\//i,
|
|
19
|
-
/:\(\)\s*\{[^}]*\}.*:/,
|
|
20
|
-
/chmod\s+777/i,
|
|
21
|
-
/dd\s+if=.*of=\/dev\//i,
|
|
22
|
-
/>\s*\/dev\/(sda|sdb|sdc|nvme)/i,
|
|
23
|
-
/mkfs\./i,
|
|
24
|
-
/fdisk\s+\/dev\//i,
|
|
25
|
-
/dd\s+if=\/dev\/zero/i,
|
|
26
|
-
];
|
|
27
|
-
// Read-only команды (не модифицируют файловую систему)
|
|
28
|
-
const READ_ONLY_COMMANDS = new Set([
|
|
29
|
-
'ls', 'cat', 'echo', 'pwd', 'head', 'tail', 'grep', 'find',
|
|
30
|
-
'git log', 'git status', 'git diff', 'git show',
|
|
31
|
-
'npm ls', 'npm list',
|
|
32
|
-
]);
|
|
33
|
-
/** Удаляет обёртки (timeout, time, nice) для анализа базовой команды */
|
|
34
|
-
function stripWrappers(cmd) {
|
|
35
|
-
return cmd.replace(/^(timeout|time|nice)\s+(-\w+\s+)?/i, '');
|
|
36
|
-
}
|
|
37
|
-
/** Разбивает цепочку команд (&&, ||, ;) на отдельные подкоманды */
|
|
38
|
-
function parseCommands(cmd) {
|
|
39
|
-
const parts = cmd.split(/\s*&&\s*|\s*\|\|\s*|\s*;\s*/);
|
|
40
|
-
const result = [];
|
|
41
|
-
for (const part of parts) {
|
|
42
|
-
const trimmed = part.trim();
|
|
43
|
-
if (trimmed)
|
|
44
|
-
result.push(trimmed);
|
|
45
|
-
}
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
/** Извлекает имя команды (с учётом npx/sudo/doas префиксов) */
|
|
49
|
-
function getCommandName(cmd) {
|
|
50
|
-
const match = cmd.match(/^(?:npx\s+|sudo\s+|doas\s+)?(\S+)/);
|
|
51
|
-
return match ? match[1] : cmd;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Главная функция санитайзинга.
|
|
55
|
-
* Проверяет команду на опасные паттерны и определяет является ли она read-only.
|
|
56
|
-
*
|
|
57
|
-
* @param cmd - shell-команда для проверки
|
|
58
|
-
* @returns Результат: safe/unsafe + readOnly флаг
|
|
59
|
-
*/
|
|
60
|
-
export function sanitize(cmd) {
|
|
61
|
-
const stripped = stripWrappers(cmd);
|
|
62
|
-
const subCommands = parseCommands(stripped);
|
|
63
|
-
for (const sub of subCommands) {
|
|
64
|
-
for (const pattern of DANGEROUS_PATTERNS) {
|
|
65
|
-
if (pattern.test(sub)) {
|
|
66
|
-
return { safe: false, reason: `Command matches dangerous pattern: ${pattern}`, readOnly: false };
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
const firstCmd = getCommandName(stripped);
|
|
71
|
-
const readOnly = subCommands.every(sub => {
|
|
72
|
-
const name = getCommandName(sub);
|
|
73
|
-
return READ_ONLY_COMMANDS.has(name);
|
|
74
|
-
});
|
|
75
|
-
return { safe: true, readOnly };
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=sanitizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/tools/sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4DAA4D;AAC5D,MAAM,kBAAkB,GAAa;IACnC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,uBAAuB;IACvB,gCAAgC;IAChC,SAAS;IACT,kBAAkB;IAClB,sBAAsB;CACvB,CAAC;AAEF,uDAAuD;AACvD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC1D,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;IAC/C,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC;AAEH,wEAAwE;AACxE,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,mEAAmE;AACnE,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,sCAAsC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACnG,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACvC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC"}
|
package/dist/tools/subagent.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { LLMProvider } from "../llm/provider.js";
|
|
2
|
-
import { ToolRegistry } from "./registry.js";
|
|
3
|
-
import type { ToolExecutor } from "../agent/tool-executor.js";
|
|
4
|
-
import type { OutputRenderer } from "../ui/renderer.js";
|
|
5
|
-
/**
|
|
6
|
-
* Изолированный цикл агента для субагентов.
|
|
7
|
-
*
|
|
8
|
-
* Субагенты работают в изолированном контексте — они не видят
|
|
9
|
-
* историю родительского агента, но получают информацию о структуре
|
|
10
|
-
* проекта (файлы, зависимости, tsconfig).
|
|
11
|
-
*
|
|
12
|
-
* Используется для:
|
|
13
|
-
* - Создания отдельных файлов в multi-file проектах
|
|
14
|
-
* - Запуска верификации (tsc --noEmit)
|
|
15
|
-
* - Изоляции задач для предотвращения потери контекста
|
|
16
|
-
*
|
|
17
|
-
* @module tools/subagent
|
|
18
|
-
*/
|
|
19
|
-
/** Результат выполнения изолированного цикла субагента */
|
|
20
|
-
export interface IsolatedLoopResult {
|
|
21
|
-
createdFiles: string[];
|
|
22
|
-
errors: string[];
|
|
23
|
-
summary: string;
|
|
24
|
-
turns: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Запуск изолированного цикла агента (субагент).
|
|
28
|
-
*
|
|
29
|
-
* Субагент:
|
|
30
|
-
* - Получает свежий контекст (system prompt + задача + info о проекте)
|
|
31
|
-
* - Работает максимум 20 ходов
|
|
32
|
-
* - Не может создавать вложенных субагентов (max depth 1)
|
|
33
|
-
* - Автоматически компактирует контекст при необходимости
|
|
34
|
-
* - Отслеживает созданные файлы и ошибки
|
|
35
|
-
*
|
|
36
|
-
* @returns Результат: созданные файлы, ошибки, краткое описание, количество ходов
|
|
37
|
-
*/
|
|
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>;
|
|
39
|
-
//# sourceMappingURL=subagent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;;;;;;;;;GAaG;AAIH,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAsHD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAuM7B"}
|