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
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
import { runPreToolUseHooks, runPostToolUseHooks, runLintAfterWrite, } from "../tools/hooks.js";
|
|
2
|
-
import { notifyFileChanged } from "../indexer/cache.js";
|
|
3
|
-
import { invalidateSystemPromptCache } from "./system-prompt.js";
|
|
4
|
-
import { resolve, dirname } from "node:path";
|
|
5
|
-
import { existsSync } from "node:fs";
|
|
6
|
-
import { getGroundingConfig } from "../config/config.js";
|
|
7
|
-
/**
|
|
8
|
-
* Диспетчер инструментов с пайплайном: pre-hooks → execute → post-hooks → truncate.
|
|
9
|
-
*
|
|
10
|
-
* ToolExecutor — чистый диспетчер. Никакой domain-логики.
|
|
11
|
-
* Вся поведенческая логика (plan enforcement, write streak, syntax check)
|
|
12
|
-
* остаётся в loop.ts.
|
|
13
|
-
*
|
|
14
|
-
* @module agent/tool-executor
|
|
15
|
-
*/
|
|
16
|
-
/** Инструменты, требующие path validation: путь должен существовать */
|
|
17
|
-
const FS_TOOLS_REQUIRE_EXIST = new Set([
|
|
18
|
-
"read_file",
|
|
19
|
-
"edit_file",
|
|
20
|
-
"delete_file",
|
|
21
|
-
"file_info",
|
|
22
|
-
]);
|
|
23
|
-
/** Инструменты, для которых проверяем только родительскую директорию */
|
|
24
|
-
const FS_TOOLS_CHECK_PARENT = new Set(["create_dir"]);
|
|
25
|
-
/** Инструменты с source/destination */
|
|
26
|
-
const FS_TOOLS_COPY_MOVE = new Set(["copy_file", "move_file"]);
|
|
27
|
-
/** Инструменты, которые модифицируют файловую систему */
|
|
28
|
-
const MODIFYING_TOOLS = new Set([
|
|
29
|
-
"write_file",
|
|
30
|
-
"edit_file",
|
|
31
|
-
"delete_file",
|
|
32
|
-
"copy_file",
|
|
33
|
-
"move_file",
|
|
34
|
-
]);
|
|
35
|
-
/** Извлекает пути изменённых файлов из аргументов инструмента */
|
|
36
|
-
function getChangedFilePaths(toolName, args) {
|
|
37
|
-
const normalize = (p) => String(p ?? "").replace(/\\/g, "/");
|
|
38
|
-
switch (toolName) {
|
|
39
|
-
case "write_file":
|
|
40
|
-
return [normalize(args.path)];
|
|
41
|
-
case "edit_file":
|
|
42
|
-
return [normalize(args.path)];
|
|
43
|
-
case "delete_file":
|
|
44
|
-
return [normalize(args.path)];
|
|
45
|
-
case "copy_file":
|
|
46
|
-
return [normalize(args.destination)];
|
|
47
|
-
case "move_file":
|
|
48
|
-
return [normalize(args.source), normalize(args.destination)];
|
|
49
|
-
default:
|
|
50
|
-
return [];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/** Лимиты обрезки вывода по инструментам (в символах) */
|
|
54
|
-
const TRUNCATION_LIMITS = {
|
|
55
|
-
read_file: 2000,
|
|
56
|
-
write_file: 200,
|
|
57
|
-
edit_file: 300,
|
|
58
|
-
bash: 1500,
|
|
59
|
-
list_dir: 1500,
|
|
60
|
-
glob_search: 1000,
|
|
61
|
-
grep_search: 1500,
|
|
62
|
-
tree: 1500,
|
|
63
|
-
subagent: 500,
|
|
64
|
-
web_search: 1000,
|
|
65
|
-
web_fetch: 1500,
|
|
66
|
-
web_browse: 2000,
|
|
67
|
-
};
|
|
68
|
-
const DEFAULT_LIMIT = 800;
|
|
69
|
-
const ERROR_LIMIT = 3000;
|
|
70
|
-
/** Паттерны ошибок "path not found" */
|
|
71
|
-
const PATH_NOT_FOUND_PATTERNS = [
|
|
72
|
-
/cannot find path/i,
|
|
73
|
-
/no such file/i,
|
|
74
|
-
/does not exist/i,
|
|
75
|
-
/not found/i,
|
|
76
|
-
/enoent/i,
|
|
77
|
-
];
|
|
78
|
-
/** Проверяет, является ли ошибка ошибкой "path not found" */
|
|
79
|
-
function isPathNotFoundError(stderr) {
|
|
80
|
-
return PATH_NOT_FOUND_PATTERNS.some((p) => p.test(stderr));
|
|
81
|
-
}
|
|
82
|
-
/** Извлекает путь из ошибки */
|
|
83
|
-
function extractPathFromError(stderr) {
|
|
84
|
-
// Windows: "Cannot find path 'E:\foo\bar' because it does not exist."
|
|
85
|
-
const winMatch = stderr.match(/(?:cannot find path|no such file|does not exist)['"]\s*['"]?([A-Z]:\\[^'"]+)['"]?/i);
|
|
86
|
-
if (winMatch)
|
|
87
|
-
return winMatch[1];
|
|
88
|
-
// Unix: "No such file or directory '/foo/bar'"
|
|
89
|
-
const unixMatch = stderr.match(/['"]?(\/[^\s'"]+)['"]?\s*(?:because|no such)/i);
|
|
90
|
-
if (unixMatch)
|
|
91
|
-
return unixMatch[1];
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
/** Обрезка вывода инструмента для экономии токенов */
|
|
95
|
-
export function truncateOutput(toolName, output, exitCode) {
|
|
96
|
-
if (exitCode !== 0) {
|
|
97
|
-
return output.length > ERROR_LIMIT
|
|
98
|
-
? output.slice(0, ERROR_LIMIT) + "\n...[truncated]"
|
|
99
|
-
: output;
|
|
100
|
-
}
|
|
101
|
-
const limit = TRUNCATION_LIMITS[toolName] ?? DEFAULT_LIMIT;
|
|
102
|
-
if (output.length <= limit)
|
|
103
|
-
return output;
|
|
104
|
-
return output.slice(0, limit) + "\n...[truncated]";
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Диспетчер инструментов.
|
|
108
|
-
*
|
|
109
|
-
* Пайплайн для каждого tool call:
|
|
110
|
-
* 1. pre-hooks (runPreToolUseHooks) — могут заблокировать выполнение
|
|
111
|
-
* 2. handler.execute() — выполнение инструмента
|
|
112
|
-
* 3. post-hooks (runPostToolUseHooks)
|
|
113
|
-
* 4. Уведомление indexer (для модифицирующих инструментов)
|
|
114
|
-
* 5. Обрезка вывода (truncateOutput)
|
|
115
|
-
*/
|
|
116
|
-
/**
|
|
117
|
-
* Хэш ошибки для детекции повторяющихся паттернов.
|
|
118
|
-
* Нормализует stderr, убирая вариативные части (пути, timestamps).
|
|
119
|
-
*/
|
|
120
|
-
function hashError(toolName, stderr) {
|
|
121
|
-
// Убираем пути файлов, numbers, timestamps для нормализации
|
|
122
|
-
const normalized = stderr
|
|
123
|
-
.replace(/[A-Z]:\\[^\s"']+/gi, "<PATH>")
|
|
124
|
-
.replace(/\/[^\s"']+/g, "<PATH>")
|
|
125
|
-
.replace(/\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}/g, "<TS>")
|
|
126
|
-
.replace(/\b\d{10,13}\b/g, "<ID>")
|
|
127
|
-
.trim();
|
|
128
|
-
return `${toolName}::${normalized}`;
|
|
129
|
-
}
|
|
130
|
-
export class ToolExecutor {
|
|
131
|
-
handlers = new Map();
|
|
132
|
-
/** Повторяющиеся ошибки: hash → { count, lastStderr } */
|
|
133
|
-
recentErrors = new Map();
|
|
134
|
-
/** Регистрация обработчика инструмента */
|
|
135
|
-
register(handler) {
|
|
136
|
-
this.handlers.set(handler.name, handler);
|
|
137
|
-
}
|
|
138
|
-
/** Регистрация нескольких обработчиков */
|
|
139
|
-
registerAll(handlers) {
|
|
140
|
-
for (const h of handlers) {
|
|
141
|
-
this.register(h);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/** Проверка существования обработчика */
|
|
145
|
-
has(name) {
|
|
146
|
-
return this.handlers.has(name);
|
|
147
|
-
}
|
|
148
|
-
/** Получение обработчика по имени */
|
|
149
|
-
get(name) {
|
|
150
|
-
return this.handlers.get(name);
|
|
151
|
-
}
|
|
152
|
-
/** Получение определений всех инструментов для LLM */
|
|
153
|
-
getDefinitions() {
|
|
154
|
-
return Array.from(this.handlers.values()).map((h) => h.definition);
|
|
155
|
-
}
|
|
156
|
-
/** Pre-flight проверка существования пути для FS-тулов */
|
|
157
|
-
preFlightCheck(name, args, cwd) {
|
|
158
|
-
const groundingCfg = getGroundingConfig();
|
|
159
|
-
if (!groundingCfg.checkFiles)
|
|
160
|
-
return null;
|
|
161
|
-
const pathArg = String(args.path ?? "");
|
|
162
|
-
const sourceArg = String(args.source ?? "");
|
|
163
|
-
const destArg = String(args.destination ?? "");
|
|
164
|
-
if (FS_TOOLS_REQUIRE_EXIST.has(name) && pathArg) {
|
|
165
|
-
const resolved = resolve(cwd, pathArg);
|
|
166
|
-
if (!existsSync(resolved)) {
|
|
167
|
-
return `ENOENT: path not found — "${pathArg}" does not exist.\nCheck the path with glob_search before calling ${name}.`;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
if (FS_TOOLS_CHECK_PARENT.has(name) && pathArg) {
|
|
171
|
-
const resolved = resolve(cwd, pathArg);
|
|
172
|
-
const parent = dirname(resolved);
|
|
173
|
-
if (parent !== resolved && !existsSync(parent)) {
|
|
174
|
-
return `ENOENT: parent directory "${dirname(pathArg)}" does not exist.\nCreate it first with create_dir before calling ${name}.`;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
if (FS_TOOLS_COPY_MOVE.has(name)) {
|
|
178
|
-
if (sourceArg) {
|
|
179
|
-
const resolvedSource = resolve(cwd, sourceArg);
|
|
180
|
-
if (!existsSync(resolvedSource)) {
|
|
181
|
-
return `ENOENT: source path not found — "${sourceArg}" does not exist.\nCheck the source path with glob_search before calling ${name}.`;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
if (destArg && name === "copy_file") {
|
|
185
|
-
const resolvedDest = resolve(cwd, destArg);
|
|
186
|
-
const parent = dirname(resolvedDest);
|
|
187
|
-
if (parent !== resolvedDest && !existsSync(parent)) {
|
|
188
|
-
return `ENOENT: parent directory of destination "${dirname(destArg)}" does not exist.\nCreate it first with create_dir.`;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Выполнение tool call через пайплайн.
|
|
196
|
-
*
|
|
197
|
-
* @param call - инструментальный вызов из LLM
|
|
198
|
-
* @param context - контекст выполнения (cwd, renderer и т.д.)
|
|
199
|
-
* @param hookCmd - строка для хуков (bash command или tool name + args)
|
|
200
|
-
* @returns результат выполнения с обрезанным выводом
|
|
201
|
-
*/
|
|
202
|
-
async execute(call, context, hookCmd) {
|
|
203
|
-
const start = performance.now();
|
|
204
|
-
// 1. Pre-hooks
|
|
205
|
-
const preHook = runPreToolUseHooks(context.cwd, call.name, hookCmd);
|
|
206
|
-
if (!preHook.continue) {
|
|
207
|
-
return {
|
|
208
|
-
result: {
|
|
209
|
-
stdout: "",
|
|
210
|
-
stderr: `Hook blocked: ${preHook.message || ""}`,
|
|
211
|
-
exitCode: 1,
|
|
212
|
-
truncated: false,
|
|
213
|
-
},
|
|
214
|
-
elapsed: (performance.now() - start) / 1000,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
// 2. Execute handler
|
|
218
|
-
const handler = this.handlers.get(call.name);
|
|
219
|
-
if (!handler) {
|
|
220
|
-
return {
|
|
221
|
-
result: {
|
|
222
|
-
stdout: "",
|
|
223
|
-
stderr: `Unknown tool: ${call.name}`,
|
|
224
|
-
exitCode: 1,
|
|
225
|
-
truncated: false,
|
|
226
|
-
},
|
|
227
|
-
elapsed: (performance.now() - start) / 1000,
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
// 2.5 Pre-flight validation путей для FS-тулов
|
|
231
|
-
const preFlightError = this.preFlightCheck(call.name, call.arguments, context.cwd);
|
|
232
|
-
if (preFlightError) {
|
|
233
|
-
return {
|
|
234
|
-
result: {
|
|
235
|
-
stdout: "",
|
|
236
|
-
stderr: preFlightError,
|
|
237
|
-
exitCode: 1,
|
|
238
|
-
truncated: false,
|
|
239
|
-
},
|
|
240
|
-
elapsed: (performance.now() - start) / 1000,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
let result;
|
|
244
|
-
try {
|
|
245
|
-
result = await handler.execute(call.arguments, context);
|
|
246
|
-
}
|
|
247
|
-
catch (e) {
|
|
248
|
-
result = {
|
|
249
|
-
stdout: "",
|
|
250
|
-
stderr: `Tool error: ${e.message}`,
|
|
251
|
-
exitCode: 1,
|
|
252
|
-
truncated: false,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
// 3. Post-hooks
|
|
256
|
-
runPostToolUseHooks(context.cwd, call.name, hookCmd, result.stdout, result.exitCode);
|
|
257
|
-
// 4. Notify indexer (для модифицирующих инструментов)
|
|
258
|
-
if (result.exitCode === 0 && MODIFYING_TOOLS.has(call.name)) {
|
|
259
|
-
const paths = getChangedFilePaths(call.name, call.arguments);
|
|
260
|
-
for (const p of paths) {
|
|
261
|
-
notifyFileChanged(p);
|
|
262
|
-
}
|
|
263
|
-
invalidateSystemPromptCache();
|
|
264
|
-
}
|
|
265
|
-
// 4.5. Lint-on-write hook (after write_file/edit_file)
|
|
266
|
-
if (result.exitCode === 0 &&
|
|
267
|
-
(call.name === "write_file" || call.name === "edit_file")) {
|
|
268
|
-
const filePath = String(call.arguments.path ?? "");
|
|
269
|
-
const lintError = runLintAfterWrite(context.cwd, filePath);
|
|
270
|
-
if (lintError) {
|
|
271
|
-
result = { ...result, stderr: result.stderr + "\n[LINT] " + lintError };
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
// 5. Truncate output
|
|
275
|
-
const truncatedStdout = truncateOutput(call.name, result.stdout, result.exitCode);
|
|
276
|
-
let truncatedStderr = truncateOutput(call.name, result.stderr, result.exitCode);
|
|
277
|
-
// 5.5. Path-not-found enrichment — показываем содержимое родительской директории
|
|
278
|
-
if (result.exitCode !== 0 && isPathNotFoundError(result.stderr)) {
|
|
279
|
-
const errPath = extractPathFromError(result.stderr) ?? call.arguments?.path;
|
|
280
|
-
if (errPath) {
|
|
281
|
-
const parentDir = dirname(String(errPath));
|
|
282
|
-
const listDirHandler = this.handlers.get("list_dir");
|
|
283
|
-
if (listDirHandler) {
|
|
284
|
-
try {
|
|
285
|
-
const dirResult = await listDirHandler.execute({ path: parentDir }, context);
|
|
286
|
-
if (dirResult.exitCode === 0 && dirResult.stdout.trim()) {
|
|
287
|
-
truncatedStderr += `\n\n[ENRICHMENT] Contents of ${parentDir}:\n${dirResult.stdout}`;
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
truncatedStderr += `\n\n[ENRICHMENT] Parent directory ${parentDir} is empty or inaccessible.`;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
catch {
|
|
294
|
-
/* enrichment is best-effort */
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
// 6. Error pattern detection — обогащение при повторяющихся ошибках
|
|
300
|
-
if (result.exitCode !== 0 && truncatedStderr) {
|
|
301
|
-
const errHash = hashError(call.name, truncatedStderr);
|
|
302
|
-
const prev = this.recentErrors.get(errHash);
|
|
303
|
-
if (prev) {
|
|
304
|
-
prev.count++;
|
|
305
|
-
if (prev.count === 2) {
|
|
306
|
-
truncatedStderr += `\n[HINT] This error occurred ${prev.count} times. The input is likely wrong — double-check arguments before retrying.`;
|
|
307
|
-
}
|
|
308
|
-
else if (prev.count >= 3) {
|
|
309
|
-
truncatedStderr += `\n[WARNING] Same error ${prev.count} times in a row. STOP retrying this exact call. Try a different approach or ask for help.`;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
this.recentErrors.set(errHash, {
|
|
314
|
-
count: 1,
|
|
315
|
-
lastStderr: truncatedStderr,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
// Ограничиваем размер карты
|
|
319
|
-
if (this.recentErrors.size > 50) {
|
|
320
|
-
const first = this.recentErrors.keys().next().value;
|
|
321
|
-
this.recentErrors.delete(first);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
else if (result.exitCode === 0) {
|
|
325
|
-
// При успехе — сбрасываем счётчик для этого инструмента
|
|
326
|
-
for (const [key] of this.recentErrors) {
|
|
327
|
-
if (key.startsWith(call.name + "::")) {
|
|
328
|
-
this.recentErrors.delete(key);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
const elapsed = (performance.now() - start) / 1000;
|
|
333
|
-
return {
|
|
334
|
-
result: {
|
|
335
|
-
...result,
|
|
336
|
-
stdout: truncatedStdout,
|
|
337
|
-
stderr: truncatedStderr,
|
|
338
|
-
truncated: result.truncated ||
|
|
339
|
-
truncatedStdout !== result.stdout ||
|
|
340
|
-
truncatedStderr !== result.stderr,
|
|
341
|
-
},
|
|
342
|
-
elapsed,
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
//# sourceMappingURL=tool-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/agent/tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/** Секции профиля пользователя */
|
|
2
|
-
type Section = "OS" | "Tech Stack" | "Coding Style" | "Session Patterns" | "Notes";
|
|
3
|
-
/** Создаёт директорию профиля если не существует */
|
|
4
|
-
export declare function ensureUserDir(): void;
|
|
5
|
-
/** Загружает содержимое профиля пользователя */
|
|
6
|
-
export declare function loadProfile(): string;
|
|
7
|
-
/** Проверяет существует ли файл профиля */
|
|
8
|
-
export declare function profileExists(): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Добавляет или обновляет запись в секции.
|
|
11
|
-
* Если запись с таким же содержимым (без учёта даты) уже существует —
|
|
12
|
-
* обновляет её дату (версия повышается). Иначе добавляет новую с сегодняшней датой.
|
|
13
|
-
*/
|
|
14
|
-
export declare function upsertEntry(section: string, content: string): void;
|
|
15
|
-
/** Добавляет заметку в указанную секцию профиля */
|
|
16
|
-
export declare function appendNote(note: string, section?: Section): void;
|
|
17
|
-
/** Собирает информацию об ОС (вызывается при старте REPL, один раз) */
|
|
18
|
-
export declare function collectOS(): void;
|
|
19
|
-
/**
|
|
20
|
-
* Формирует блок для system prompt с учётом версионности.
|
|
21
|
-
*/
|
|
22
|
-
export declare function loadProfileSummary(): string;
|
|
23
|
-
/** Создаёт пустой профиль если не существует */
|
|
24
|
-
export declare function initDefaultProfile(): void;
|
|
25
|
-
export {};
|
|
26
|
-
//# sourceMappingURL=user-profile.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-profile.d.ts","sourceRoot":"","sources":["../../src/agent/user-profile.ts"],"names":[],"mappings":"AA0BA,kCAAkC;AAClC,KAAK,OAAO,GACV,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEtE,oDAAoD;AACpD,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,gDAAgD;AAChD,wBAAgB,WAAW,IAAI,MAAM,CAOpC;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,IAAI,OAAO,CAGvC;AAwCD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAkClE;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAiB,GAAG,IAAI,CAEzE;AAED,uEAAuE;AACvE,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAgC3C;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { homedir, platform, version as osVersion } from "node:os";
|
|
4
|
-
/**
|
|
5
|
-
* Профиль пользователя — автоматический сбор наблюдений.
|
|
6
|
-
*
|
|
7
|
-
* Собирает данные:
|
|
8
|
-
* - OS (platform, version, hostname) — при старте REPL
|
|
9
|
-
* - Tech Stack (dependencies из package.json) — при старте REPL
|
|
10
|
-
* - Coding Style (indent, quotes, semicolons) — после записи файлов
|
|
11
|
-
* - Session Patterns (время начала/конца сессии) — старт/стоп REPL
|
|
12
|
-
*
|
|
13
|
-
* Записи версионируются с датой: [2026-07-18] content
|
|
14
|
-
* При повторном обнаружении того же факта дата обновляется.
|
|
15
|
-
* Записи старше 30 дней помечаются как (stale Nd ago).
|
|
16
|
-
*
|
|
17
|
-
* @module agent/user-profile
|
|
18
|
-
*/
|
|
19
|
-
// ─── Константы ──────────────────────────────────────────
|
|
20
|
-
const USER_DIR = join(homedir(), ".mma", "user");
|
|
21
|
-
const PROFILE_FILE = join(USER_DIR, "profile.md");
|
|
22
|
-
const COUNTER_FILE = join(USER_DIR, ".counter");
|
|
23
|
-
const STALE_DAYS = 30; // дни до пометки записи как stale
|
|
24
|
-
/** Создаёт директорию профиля если не существует */
|
|
25
|
-
export function ensureUserDir() {
|
|
26
|
-
if (!existsSync(USER_DIR))
|
|
27
|
-
mkdirSync(USER_DIR, { recursive: true });
|
|
28
|
-
}
|
|
29
|
-
/** Загружает содержимое профиля пользователя */
|
|
30
|
-
export function loadProfile() {
|
|
31
|
-
ensureUserDir();
|
|
32
|
-
try {
|
|
33
|
-
return readFileSync(PROFILE_FILE, "utf-8");
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
return "";
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/** Проверяет существует ли файл профиля */
|
|
40
|
-
export function profileExists() {
|
|
41
|
-
ensureUserDir();
|
|
42
|
-
return existsSync(PROFILE_FILE);
|
|
43
|
-
}
|
|
44
|
-
/** Внутренняя: загружает профиль или создаёт заголовок по умолчанию */
|
|
45
|
-
function getProfile() {
|
|
46
|
-
ensureUserDir();
|
|
47
|
-
try {
|
|
48
|
-
return readFileSync(PROFILE_FILE, "utf-8");
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
return "# User Profile\n";
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/** Внутренняя: записывает содержимое профиля */
|
|
55
|
-
function writeProfile(content) {
|
|
56
|
-
ensureUserDir();
|
|
57
|
-
writeFileSync(PROFILE_FILE, content, "utf-8");
|
|
58
|
-
}
|
|
59
|
-
/** Возвращает сегодняшнюю дату в формате YYYY-MM-DD */
|
|
60
|
-
function today() {
|
|
61
|
-
return new Date().toISOString().split("T")[0];
|
|
62
|
-
}
|
|
63
|
-
/** Считает количество дней между датой и текущим моментом */
|
|
64
|
-
function daysAgo(dateStr) {
|
|
65
|
-
const d = new Date(dateStr);
|
|
66
|
-
if (isNaN(d.getTime()))
|
|
67
|
-
return Infinity;
|
|
68
|
-
return Math.floor((Date.now() - d.getTime()) / 86400000);
|
|
69
|
-
}
|
|
70
|
-
/** Удаляет дату из строки записи для сравнения содержимого */
|
|
71
|
-
function stripDate(line) {
|
|
72
|
-
return line.replace(/^-\s*\[\d{4}-\d{2}-\d{2}\]\s*/, "- ").trim();
|
|
73
|
-
}
|
|
74
|
-
/** Проверяет содержит ли строка дату в формате [YYYY-MM-DD] */
|
|
75
|
-
function hasDate(line) {
|
|
76
|
-
return /^-\s*\[\d{4}-\d{2}-\d{2}\]/.test(line);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Добавляет или обновляет запись в секции.
|
|
80
|
-
* Если запись с таким же содержимым (без учёта даты) уже существует —
|
|
81
|
-
* обновляет её дату (версия повышается). Иначе добавляет новую с сегодняшней датой.
|
|
82
|
-
*/
|
|
83
|
-
export function upsertEntry(section, content) {
|
|
84
|
-
let profile = getProfile();
|
|
85
|
-
const sectionHeader = `## ${section}`;
|
|
86
|
-
const date = today();
|
|
87
|
-
const newLine = `- [${date}] ${content}`;
|
|
88
|
-
const sectionIdx = profile.indexOf(sectionHeader);
|
|
89
|
-
if (sectionIdx === -1) {
|
|
90
|
-
profile += `\n${sectionHeader}\n${newLine}\n`;
|
|
91
|
-
writeProfile(profile);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const sectionEnd = profile.indexOf("\n## ", sectionIdx + 1);
|
|
95
|
-
const secStart = sectionIdx + sectionHeader.length + 1;
|
|
96
|
-
const secEnd = sectionEnd === -1 ? profile.length : sectionEnd;
|
|
97
|
-
const before = profile.slice(0, secStart);
|
|
98
|
-
const after = profile.slice(secEnd);
|
|
99
|
-
const sectionBody = profile.slice(secStart, secEnd);
|
|
100
|
-
const lines = sectionBody.split("\n").filter((l) => l.trim());
|
|
101
|
-
const strippedNew = stripDate(newLine);
|
|
102
|
-
let found = false;
|
|
103
|
-
const updated = lines.map((line) => {
|
|
104
|
-
if (hasDate(line) && stripDate(line) === strippedNew) {
|
|
105
|
-
found = true;
|
|
106
|
-
return newLine;
|
|
107
|
-
}
|
|
108
|
-
return line;
|
|
109
|
-
});
|
|
110
|
-
if (!found)
|
|
111
|
-
updated.push(newLine);
|
|
112
|
-
writeProfile(before + "\n" + updated.join("\n") + "\n" + after);
|
|
113
|
-
}
|
|
114
|
-
/** Добавляет заметку в указанную секцию профиля */
|
|
115
|
-
export function appendNote(note, section = "Notes") {
|
|
116
|
-
upsertEntry(section, note);
|
|
117
|
-
}
|
|
118
|
-
/** Собирает информацию об ОС (вызывается при старте REPL, один раз) */
|
|
119
|
-
export function collectOS() {
|
|
120
|
-
const existing = loadProfile();
|
|
121
|
-
if (existing.includes("## OS"))
|
|
122
|
-
return;
|
|
123
|
-
const osVer = `${platform()} (${osVersion()})`;
|
|
124
|
-
upsertEntry("OS", `Platform: ${platform()}`);
|
|
125
|
-
upsertEntry("OS", `Version: ${osVer}`);
|
|
126
|
-
upsertEntry("OS", `Node.js: ${process.version}`);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Формирует блок для system prompt с учётом версионности.
|
|
130
|
-
*/
|
|
131
|
-
export function loadProfileSummary() {
|
|
132
|
-
const profile = loadProfile();
|
|
133
|
-
if (!profile)
|
|
134
|
-
return "";
|
|
135
|
-
const lines = profile.split("\n");
|
|
136
|
-
const sections = [];
|
|
137
|
-
let currentSection = "";
|
|
138
|
-
let items = [];
|
|
139
|
-
for (const line of lines) {
|
|
140
|
-
if (line.startsWith("## ")) {
|
|
141
|
-
if (currentSection && currentSection !== "Notes" && items.length > 0) {
|
|
142
|
-
sections.push(` ${currentSection}: ${items.join(", ")}`);
|
|
143
|
-
}
|
|
144
|
-
currentSection = line.replace("## ", "").trim();
|
|
145
|
-
items = [];
|
|
146
|
-
}
|
|
147
|
-
else if (line.startsWith("- ") &&
|
|
148
|
-
currentSection &&
|
|
149
|
-
currentSection !== "Notes") {
|
|
150
|
-
const match = line.match(/^-\s*\[\d{4}-\d{2}-\d{2}\]\s*(.*)/);
|
|
151
|
-
if (match)
|
|
152
|
-
items.push(match[1].trim());
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (currentSection && currentSection !== "Notes" && items.length > 0) {
|
|
156
|
-
sections.push(` ${currentSection}: ${items.join(", ")}`);
|
|
157
|
-
}
|
|
158
|
-
if (sections.length === 0)
|
|
159
|
-
return "";
|
|
160
|
-
return `\n## User Profile\n${sections.join("\n")}\n`;
|
|
161
|
-
}
|
|
162
|
-
/** Создаёт пустой профиль если не существует */
|
|
163
|
-
export function initDefaultProfile() {
|
|
164
|
-
ensureUserDir();
|
|
165
|
-
if (existsSync(PROFILE_FILE))
|
|
166
|
-
return;
|
|
167
|
-
writeProfile("# User Profile\n\n");
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=user-profile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-profile.js","sourceRoot":"","sources":["../../src/agent/user-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ParsedCall } from "../tools/parse-tool-call.js";
|
|
2
|
-
import type { ChatMessage } from "../llm/provider.js";
|
|
3
|
-
import type { OutputRenderer } from "../ui/renderer.js";
|
|
4
|
-
export declare class WriteEnforcer {
|
|
5
|
-
enforceSingleWrite(_validCalls: ParsedCall[], _messages: ChatMessage[], _quiet?: boolean, _renderer?: OutputRenderer): void;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=write-enforcer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-enforcer.d.ts","sourceRoot":"","sources":["../../src/agent/write-enforcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,qBAAa,aAAa;IACxB,kBAAkB,CAChB,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,EAAE,WAAW,EAAE,EACxB,MAAM,CAAC,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,cAAc,GACzB,IAAI;CAKR"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export class WriteEnforcer {
|
|
2
|
-
enforceSingleWrite(_validCalls, _messages, _quiet, _renderer) {
|
|
3
|
-
// Больше не блокируем множественные записи.
|
|
4
|
-
// Синтаксическая проверка работает per-file,
|
|
5
|
-
// а write-трекинг ведётся через createdFiles.
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=write-enforcer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-enforcer.js","sourceRoot":"","sources":["../../src/agent/write-enforcer.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACxB,kBAAkB,CAChB,WAAyB,EACzB,SAAwB,EACxB,MAAgB,EAChB,SAA0B;QAE1B,4CAA4C;QAC5C,6CAA6C;QAC7C,8CAA8C;IAChD,CAAC;CACF"}
|
package/dist/cli/config.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
/**
|
|
3
|
-
* CLI-команды управления конфигурацией.
|
|
4
|
-
*
|
|
5
|
-
* Команды:
|
|
6
|
-
* - mma config show — показать конфигурацию
|
|
7
|
-
* - mma config reset — сбросить к_defaults
|
|
8
|
-
* - mma config set <key> <value> — установить значение
|
|
9
|
-
*
|
|
10
|
-
* @module cli/config
|
|
11
|
-
*/
|
|
12
|
-
export declare function registerConfigCommands(program: Command): void;
|
|
13
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dist/cli/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC;;;;;;;;;GASG;AAEH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8E7D"}
|