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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-expert
|
|
3
|
+
description: Git branching, merge conflicts, rebasing, workflow strategies
|
|
4
|
+
keywords: [git, branch, merge, rebase, commit, conflict, workflow]
|
|
5
|
+
mma_version: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Git Expert
|
|
9
|
+
|
|
10
|
+
## Branching Strategies
|
|
11
|
+
|
|
12
|
+
- **Feature branches**: `feature/xxx` from `main`, merge via PR
|
|
13
|
+
- **Hotfix**: `hotfix/xxx` from `main`, merge to both `main` and `develop`
|
|
14
|
+
- **Release**: `release/xxx` from `develop`, merge to `main` + `develop`
|
|
15
|
+
|
|
16
|
+
## Conflict Resolution
|
|
17
|
+
|
|
18
|
+
1. `git fetch origin` — get latest
|
|
19
|
+
2. `git checkout your-branch`
|
|
20
|
+
3. `git rebase origin/main` — apply your commits on top
|
|
21
|
+
4. Resolve conflicts file by file
|
|
22
|
+
5. `git add <files>` then `git rebase --continue`
|
|
23
|
+
|
|
24
|
+
## Useful Commands
|
|
25
|
+
|
|
26
|
+
- `git log --oneline --graph --all` — visualize history
|
|
27
|
+
- `git diff --stat` — summary of changes
|
|
28
|
+
- `git stash pop` — restore stashed changes
|
|
29
|
+
- `git cherry-pick <commit>` — apply specific commit
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
|
|
33
|
+
- Commit often with clear messages
|
|
34
|
+
- Keep commits atomic (one logical change)
|
|
35
|
+
- Never force push to shared branches
|
|
36
|
+
- Use `git rebase -i` to clean up before PR
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: typescript-expert
|
|
3
|
+
description: TypeScript type system, generics, advanced patterns, compiler API
|
|
4
|
+
keywords: [typescript, types, generics, tsconfig, compiler, interface, type]
|
|
5
|
+
mma_version: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# TypeScript Expert
|
|
9
|
+
|
|
10
|
+
## Key Patterns
|
|
11
|
+
|
|
12
|
+
- Use `readonly` for immutable properties
|
|
13
|
+
- Prefer `interface` over `type` for object shapes
|
|
14
|
+
- Use `as const` for literal types
|
|
15
|
+
- Prefer `unknown` over `any` for type safety
|
|
16
|
+
|
|
17
|
+
## Common Pitfalls
|
|
18
|
+
|
|
19
|
+
- Avoid `any` — use `unknown` + type guards
|
|
20
|
+
- Don't use `enum` — use `const` objects or union types
|
|
21
|
+
- Avoid `namespace` — use ES modules
|
|
22
|
+
|
|
23
|
+
## Type Guards
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
function isString(val: unknown): val is string {
|
|
27
|
+
return typeof val === 'string'
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Generics
|
|
32
|
+
|
|
33
|
+
- Use `extends` for constraints
|
|
34
|
+
- Use `infer` for conditional type extraction
|
|
35
|
+
- Prefer explicit over implicit for complex cases
|
package/package.json
CHANGED
|
@@ -1,47 +1,41 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "micro-models-agent",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Micro Models Agent (MMA) — LLM agent harness for small models (Qwen3.5-9B, 32K-64K context)",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"mma": "dist/
|
|
8
|
-
},
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"build": "
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"test": "
|
|
27
|
-
"test:integration": "
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"@types/node": "^26.1.1",
|
|
43
|
-
"tsx": "^4.0.0",
|
|
44
|
-
"typescript": "^5.8.0",
|
|
45
|
-
"vitest": "^3.0.0"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "micro-models-agent",
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "Micro Models Agent (MMA) — LLM agent harness for small models (Qwen3.5-9B, 32K-64K context)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"mma": "dist/main.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/"
|
|
11
|
+
],
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=20"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"mma": "bun run src/cli/main.ts",
|
|
17
|
+
"build": "bun run build:tsc && bun run build:copy-assets",
|
|
18
|
+
"build:tsc": "tsc -p tsconfig.build.json",
|
|
19
|
+
"build:copy-assets": "powershell -Command \"Copy-Item -Recurse -Force 'src/modules/skills/builtin' 'dist/skills/builtin'\"",
|
|
20
|
+
"build:prod": "bun run 'build:bundle' && bun run 'build:copy-assets'",
|
|
21
|
+
"build:clean": "cmd /c \"if exist dist rmdir /s /q dist\"",
|
|
22
|
+
"build:bundle": "bun build ./src/cli/main.ts --outfile ./dist/main.js --target node --format esm --external playwright",
|
|
23
|
+
"dev": "bun --watch src/cli/main.ts",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"test:integration": "vitest run --config vitest.integration.config.ts"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"commander": "^12.0.0",
|
|
31
|
+
"js-tiktoken": "^1.0.0",
|
|
32
|
+
"jsonrepair": "^3.15.0",
|
|
33
|
+
"picocolors": "^1.1.1",
|
|
34
|
+
"playwright": "^1.62.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "^22.0.0",
|
|
38
|
+
"typescript": "^5.8.0",
|
|
39
|
+
"vitest": "^3.0.0"
|
|
40
|
+
}
|
|
41
|
+
}
|
package/dist/agent/context.d.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { ChatMessage } from '../llm/provider.js';
|
|
2
|
-
/**
|
|
3
|
-
* Менеджер контекста — управляет историей сообщений и компактификацией.
|
|
4
|
-
* Создаётся один раз на сессию агента.
|
|
5
|
-
*/
|
|
6
|
-
export declare class ContextManager {
|
|
7
|
-
private contextWindow;
|
|
8
|
-
private compactThreshold;
|
|
9
|
-
private responseBuffer;
|
|
10
|
-
private tokenCache;
|
|
11
|
-
private compacted;
|
|
12
|
-
private _totalTokens;
|
|
13
|
-
private _history;
|
|
14
|
-
private _lastCountedIndex;
|
|
15
|
-
/**
|
|
16
|
-
* @param contextWindow - размер контекстного окна модели (в токенах)
|
|
17
|
-
* @param compactThreshold - порог компактификации (по умолчанию 70%)
|
|
18
|
-
* @param responseBuffer - резерв под ответ модели (по умолчанию 4096 токенов)
|
|
19
|
-
*/
|
|
20
|
-
constructor(contextWindow: number, compactThreshold?: number, responseBuffer?: number);
|
|
21
|
-
get totalTokens(): number;
|
|
22
|
-
get usagePercent(): number;
|
|
23
|
-
get needsCompact(): boolean;
|
|
24
|
-
/** Контекст переполнен — нет места для ответа модели */
|
|
25
|
-
get isOverflow(): boolean;
|
|
26
|
-
/** Количество компактификаций за сессию */
|
|
27
|
-
get compactCount(): number;
|
|
28
|
-
/**
|
|
29
|
-
* Оценивает важность сообщения для компактификации.
|
|
30
|
-
*
|
|
31
|
-
* Алгоритм:
|
|
32
|
-
* - System: 100 (всегда сохраняется отдельно)
|
|
33
|
-
* - Tool: 70
|
|
34
|
-
* - User: 60
|
|
35
|
-
* - Assistant: 65
|
|
36
|
-
* + Recency bonus: (index/total) * 20
|
|
37
|
-
*/
|
|
38
|
-
private scoreMessage;
|
|
39
|
-
/**
|
|
40
|
-
* Инкрементальный подсчёт токенов — считает только новые сообщения.
|
|
41
|
-
* Используется в основном цикле для производительности.
|
|
42
|
-
* После компактинга вызывать полный updateTokens().
|
|
43
|
-
*/
|
|
44
|
-
updateTokensIncremental(messages: ChatMessage[]): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Полный подсчёт токенов для всех сообщений.
|
|
47
|
-
* Используется после компактификации (когда сообщения заменены).
|
|
48
|
-
*/
|
|
49
|
-
updateTokens(messages: ChatMessage[]): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Emergency compact — агрессивное сжатие при переполнении контекста.
|
|
52
|
-
* Оставляет system prompt + последние 4 сообщения.
|
|
53
|
-
*/
|
|
54
|
-
emergencyCompact(messages: ChatMessage[]): ChatMessage[];
|
|
55
|
-
/**
|
|
56
|
-
* Компактификация истории сообщений.
|
|
57
|
-
*
|
|
58
|
-
* Стратегия:
|
|
59
|
-
* 1. Сохраняем system prompt (всегда первый)
|
|
60
|
-
* 2. Сохраняем первое user-сообщение (контекст задачи)
|
|
61
|
-
* 3. Остальные сообщения оцениваем по score
|
|
62
|
-
* 4. Сохраняем топ-6 по score + последние 6 по позиции
|
|
63
|
-
* 5. Tool-вызовы и результаты сохраняются в summary
|
|
64
|
-
* 6. Остальные суммируем в "[Ранее в разговоре (сжато):]"
|
|
65
|
-
*
|
|
66
|
-
* @param messages - полная история сообщений
|
|
67
|
-
* @returns Сжатая история
|
|
68
|
-
*/
|
|
69
|
-
compact(messages: ChatMessage[]): ChatMessage[];
|
|
70
|
-
/** Форматирует строку использования контекста для отображения в UI */
|
|
71
|
-
formatUsage(): string;
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA8BtD;;;GAGG;AACH,qBAAa,cAAc;IAavB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IAdxB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,iBAAiB,CAAK;IAE9B;;;;OAIG;gBAEO,aAAa,EAAE,MAAM,EACrB,gBAAgB,GAAE,MAAa,EAC/B,cAAc,GAAE,MAAa;IAGvC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,wDAAwD;IACxD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,2CAA2C;IAC3C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;OAIG;IACG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrE;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1D;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAwBxD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAmH/C,sEAAsE;IACtE,WAAW,IAAI,MAAM;CAiBtB"}
|
package/dist/agent/context.js
DELETED
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import { countTokens } from '../llm/token-counter.js';
|
|
2
|
-
import { getTheme } from '../styling/index.js';
|
|
3
|
-
import { logInfo, logDebug } from '../logger.js';
|
|
4
|
-
/**
|
|
5
|
-
* Менеджер контекста — управляет историей сообщений и компактификацией.
|
|
6
|
-
* Создаётся один раз на сессию агента.
|
|
7
|
-
*/
|
|
8
|
-
export class ContextManager {
|
|
9
|
-
contextWindow;
|
|
10
|
-
compactThreshold;
|
|
11
|
-
responseBuffer;
|
|
12
|
-
tokenCache = new WeakMap(); // кэш подсчёта токенов
|
|
13
|
-
compacted = 0; // количество компактификаций за сессию
|
|
14
|
-
_totalTokens = 0; // общее количество токенов в истории
|
|
15
|
-
_history = []; // история по ролям
|
|
16
|
-
_lastCountedIndex = 0; // индекс последнего подсчитанного сообщения (для инкрементального подсчёта)
|
|
17
|
-
/**
|
|
18
|
-
* @param contextWindow - размер контекстного окна модели (в токенах)
|
|
19
|
-
* @param compactThreshold - порог компактификации (по умолчанию 70%)
|
|
20
|
-
* @param responseBuffer - резерв под ответ модели (по умолчанию 4096 токенов)
|
|
21
|
-
*/
|
|
22
|
-
constructor(contextWindow, compactThreshold = 0.50, responseBuffer = 4096) {
|
|
23
|
-
this.contextWindow = contextWindow;
|
|
24
|
-
this.compactThreshold = compactThreshold;
|
|
25
|
-
this.responseBuffer = responseBuffer;
|
|
26
|
-
}
|
|
27
|
-
get totalTokens() {
|
|
28
|
-
return this._totalTokens;
|
|
29
|
-
}
|
|
30
|
-
get usagePercent() {
|
|
31
|
-
return (this._totalTokens / this.contextWindow) * 100;
|
|
32
|
-
}
|
|
33
|
-
get needsCompact() {
|
|
34
|
-
return this.usagePercent >= this.compactThreshold * 100;
|
|
35
|
-
}
|
|
36
|
-
/** Контекст переполнен — нет места для ответа модели */
|
|
37
|
-
get isOverflow() {
|
|
38
|
-
return this._totalTokens + this.responseBuffer >= this.contextWindow;
|
|
39
|
-
}
|
|
40
|
-
/** Количество компактификаций за сессию */
|
|
41
|
-
get compactCount() {
|
|
42
|
-
return this.compacted;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Оценивает важность сообщения для компактификации.
|
|
46
|
-
*
|
|
47
|
-
* Алгоритм:
|
|
48
|
-
* - System: 100 (всегда сохраняется отдельно)
|
|
49
|
-
* - Tool: 70
|
|
50
|
-
* - User: 60
|
|
51
|
-
* - Assistant: 65
|
|
52
|
-
* + Recency bonus: (index/total) * 20
|
|
53
|
-
*/
|
|
54
|
-
scoreMessage(msg, index, total) {
|
|
55
|
-
// Оценка по роли сообщения
|
|
56
|
-
const roleScore = msg.role === 'system' ? 100 :
|
|
57
|
-
msg.role === 'tool' ? 70 :
|
|
58
|
-
msg.role === 'assistant' ? 65 :
|
|
59
|
-
60; // user и прочие
|
|
60
|
-
// Бонус за свежесть: чем позже сообщение, тем выше бонус
|
|
61
|
-
const recencyBonus = (index / total) * 20;
|
|
62
|
-
return roleScore + recencyBonus;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Инкрементальный подсчёт токенов — считает только новые сообщения.
|
|
66
|
-
* Используется в основном цикле для производительности.
|
|
67
|
-
* После компактинга вызывать полный updateTokens().
|
|
68
|
-
*/
|
|
69
|
-
async updateTokensIncremental(messages) {
|
|
70
|
-
const start = performance.now();
|
|
71
|
-
const prevIndex = this._lastCountedIndex;
|
|
72
|
-
for (let i = this._lastCountedIndex; i < messages.length; i++) {
|
|
73
|
-
let t = this.tokenCache.get(messages[i]);
|
|
74
|
-
if (t === undefined) {
|
|
75
|
-
t = await countTokens(messages[i].content || '');
|
|
76
|
-
this.tokenCache.set(messages[i], t);
|
|
77
|
-
}
|
|
78
|
-
this._totalTokens += t;
|
|
79
|
-
this._history.push({ role: messages[i].role, tokens: t });
|
|
80
|
-
}
|
|
81
|
-
this._lastCountedIndex = messages.length;
|
|
82
|
-
const elapsed = (performance.now() - start).toFixed(1);
|
|
83
|
-
logDebug('CONTEXT', `updateTokensIncremental: +${messages.length - prevIndex} msgs, total ${this._totalTokens} tokens, ${elapsed}ms`);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Полный подсчёт токенов для всех сообщений.
|
|
87
|
-
* Используется после компактификации (когда сообщения заменены).
|
|
88
|
-
*/
|
|
89
|
-
async updateTokens(messages) {
|
|
90
|
-
const start = performance.now();
|
|
91
|
-
let total = 0;
|
|
92
|
-
this._history = [];
|
|
93
|
-
for (const msg of messages) {
|
|
94
|
-
let t = this.tokenCache.get(msg);
|
|
95
|
-
if (t === undefined) {
|
|
96
|
-
t = await countTokens(msg.content || '');
|
|
97
|
-
this.tokenCache.set(msg, t);
|
|
98
|
-
}
|
|
99
|
-
total += t;
|
|
100
|
-
this._history.push({ role: msg.role, tokens: t });
|
|
101
|
-
}
|
|
102
|
-
this._totalTokens = total;
|
|
103
|
-
this._lastCountedIndex = messages.length;
|
|
104
|
-
const elapsed = (performance.now() - start).toFixed(1);
|
|
105
|
-
logDebug('CONTEXT', `updateTokens: ${messages.length} msgs, ${total} tokens, ${elapsed}ms`);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Emergency compact — агрессивное сжатие при переполнении контекста.
|
|
109
|
-
* Оставляет system prompt + последние 4 сообщения.
|
|
110
|
-
*/
|
|
111
|
-
emergencyCompact(messages) {
|
|
112
|
-
const start = performance.now();
|
|
113
|
-
const system = messages.filter(m => m.role === 'system');
|
|
114
|
-
const nonSystem = messages.filter(m => m.role !== 'system');
|
|
115
|
-
const recent = nonSystem.slice(-4);
|
|
116
|
-
if (recent.length >= nonSystem.length)
|
|
117
|
-
return messages;
|
|
118
|
-
const summary = `[Emergency compact: ${nonSystem.length - recent.length} messages compressed to free context space. Continue from the most recent messages.]`;
|
|
119
|
-
this.compacted++;
|
|
120
|
-
this.tokenCache = new WeakMap();
|
|
121
|
-
this._lastCountedIndex = 0;
|
|
122
|
-
const result = [
|
|
123
|
-
...system,
|
|
124
|
-
{ role: 'system', content: summary },
|
|
125
|
-
...recent,
|
|
126
|
-
];
|
|
127
|
-
const elapsed = (performance.now() - start).toFixed(1);
|
|
128
|
-
logInfo('CONTEXT', `emergencyCompact: ${messages.length} → ${result.length} msgs in ${elapsed}ms`);
|
|
129
|
-
return result;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Компактификация истории сообщений.
|
|
133
|
-
*
|
|
134
|
-
* Стратегия:
|
|
135
|
-
* 1. Сохраняем system prompt (всегда первый)
|
|
136
|
-
* 2. Сохраняем первое user-сообщение (контекст задачи)
|
|
137
|
-
* 3. Остальные сообщения оцениваем по score
|
|
138
|
-
* 4. Сохраняем топ-6 по score + последние 6 по позиции
|
|
139
|
-
* 5. Tool-вызовы и результаты сохраняются в summary
|
|
140
|
-
* 6. Остальные суммируем в "[Ранее в разговоре (сжато):]"
|
|
141
|
-
*
|
|
142
|
-
* @param messages - полная история сообщений
|
|
143
|
-
* @returns Сжатая история
|
|
144
|
-
*/
|
|
145
|
-
compact(messages) {
|
|
146
|
-
const start = performance.now();
|
|
147
|
-
logInfo('CONTEXT', `compact: ${messages.length} messages before`);
|
|
148
|
-
if (messages.length <= 4)
|
|
149
|
-
return messages;
|
|
150
|
-
// Извлекаем system prompt и первое user-сообщение
|
|
151
|
-
const systemIdx = messages.findIndex(m => m.role === 'system');
|
|
152
|
-
const system = systemIdx >= 0 ? [messages[systemIdx]] : [];
|
|
153
|
-
const keepFirstUser = [];
|
|
154
|
-
const remaining = [];
|
|
155
|
-
for (let i = 0; i < messages.length; i++) {
|
|
156
|
-
if (systemIdx === i)
|
|
157
|
-
continue;
|
|
158
|
-
if (keepFirstUser.length === 0 && messages[i].role === 'user') {
|
|
159
|
-
keepFirstUser.push(messages[i]);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
remaining.push(messages[i]);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// Оцениваем все оставшиеся сообщения
|
|
166
|
-
const scored = remaining.map((msg, i) => ({
|
|
167
|
-
msg,
|
|
168
|
-
score: this.scoreMessage(msg, i, remaining.length),
|
|
169
|
-
tokens: this.tokenCache.get(msg) || 0,
|
|
170
|
-
}));
|
|
171
|
-
// Сортируем по убыванию score
|
|
172
|
-
scored.sort((a, b) => b.score - a.score);
|
|
173
|
-
// Сохраняем топ-6 по score + последние 6 по позиции
|
|
174
|
-
const recentMsgs = remaining.slice(-6);
|
|
175
|
-
const recentIds = new Set(recentMsgs.map(m => m));
|
|
176
|
-
const importantByScore = scored
|
|
177
|
-
.filter(s => !recentIds.has(s.msg))
|
|
178
|
-
.slice(0, 6)
|
|
179
|
-
.map(s => s.msg);
|
|
180
|
-
// Сообщения, которые будут сжаты в summary
|
|
181
|
-
const toCompact = remaining.filter(m => !recentMsgs.includes(m) && !importantByScore.includes(m));
|
|
182
|
-
if (toCompact.length === 0)
|
|
183
|
-
return messages;
|
|
184
|
-
// Формируем структурированную сводку с сохранением tool-контекста
|
|
185
|
-
const compactedPairs = [];
|
|
186
|
-
const toolOps = []; // уникальные tool-операции
|
|
187
|
-
const filesTouched = []; // затронутые файлы
|
|
188
|
-
let i = 0;
|
|
189
|
-
while (i < toCompact.length) {
|
|
190
|
-
const msg = toCompact[i];
|
|
191
|
-
if (msg.role === 'user') {
|
|
192
|
-
const assistant = i + 1 < toCompact.length ? toCompact[i + 1] : null;
|
|
193
|
-
if (assistant?.role === 'assistant') {
|
|
194
|
-
// Извлекаем tool-вызовы из ответа ассистента
|
|
195
|
-
const toolMatches = assistant.content.matchAll(/<tool_call>\{"name":"(\w+)"/g);
|
|
196
|
-
for (const match of toolMatches) {
|
|
197
|
-
toolOps.push(match[1]);
|
|
198
|
-
}
|
|
199
|
-
// Извлекаем затронутые файлы из tool-вызовов
|
|
200
|
-
const fileMatches = assistant.content.matchAll(/"path"\s*:\s*"([^"]+)"/g);
|
|
201
|
-
for (const match of fileMatches) {
|
|
202
|
-
filesTouched.push(match[1]);
|
|
203
|
-
}
|
|
204
|
-
const preview = assistant.content.slice(0, 200).replace(/\n/g, ' ');
|
|
205
|
-
compactedPairs.push(`User: ${msg.content.slice(0, 150)}... → ${preview}...`);
|
|
206
|
-
i += 2;
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
compactedPairs.push(`[user]: ${msg.content.slice(0, 150)}...`);
|
|
210
|
-
i++;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
else if (msg.role === 'tool') {
|
|
214
|
-
// Tool-результаты: сохраняем краткую сводку
|
|
215
|
-
const toolPreview = (msg.content || '').slice(0, 200).replace(/\n/g, ' ');
|
|
216
|
-
compactedPairs.push(`[tool result]: ${toolPreview}...`);
|
|
217
|
-
i++;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
compactedPairs.push(`[${msg.role}]: ${(msg.content || '').slice(0, 150)}...`);
|
|
221
|
-
i++;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
// Добавляем сводку tool-операций и затронутых файлов
|
|
225
|
-
const toolSummary = toolOps.length > 0
|
|
226
|
-
? `\nTools used: ${[...new Set(toolOps)].join(', ')}${filesTouched.length > 0 ? '\nFiles touched: ' + [...new Set(filesTouched)].join(', ') : ''}`
|
|
227
|
-
: '';
|
|
228
|
-
let summary = `[Ранее в разговоре (сжато):\n${compactedPairs.join('\n')}${toolSummary}\n]`;
|
|
229
|
-
if (summary.length > 3000) {
|
|
230
|
-
summary = summary.slice(0, 3000) + '\n...]';
|
|
231
|
-
}
|
|
232
|
-
this.compacted++;
|
|
233
|
-
this.tokenCache = new WeakMap();
|
|
234
|
-
this._lastCountedIndex = 0;
|
|
235
|
-
const result = [
|
|
236
|
-
...system,
|
|
237
|
-
...keepFirstUser,
|
|
238
|
-
{ role: 'system', content: summary },
|
|
239
|
-
...importantByScore,
|
|
240
|
-
...recentMsgs,
|
|
241
|
-
];
|
|
242
|
-
const elapsed = (performance.now() - start).toFixed(1);
|
|
243
|
-
logInfo('CONTEXT', `compact: ${messages.length} → ${result.length} msgs in ${elapsed}ms`);
|
|
244
|
-
return result;
|
|
245
|
-
}
|
|
246
|
-
/** Форматирует строку использования контекста для отображения в UI */
|
|
247
|
-
formatUsage() {
|
|
248
|
-
const theme = getTheme();
|
|
249
|
-
const pct = this.usagePercent;
|
|
250
|
-
const barLen = 10;
|
|
251
|
-
const bar = theme.contextBar(pct, barLen);
|
|
252
|
-
const roleTokens = {};
|
|
253
|
-
for (const h of this._history) {
|
|
254
|
-
roleTokens[h.role] = (roleTokens[h.role] || 0) + h.tokens;
|
|
255
|
-
}
|
|
256
|
-
const breakdown = Object.entries(roleTokens)
|
|
257
|
-
.map(([role, tokens]) => `${role}:${tokens}`)
|
|
258
|
-
.join(' ');
|
|
259
|
-
return `Context: ${this._totalTokens.toLocaleString()} / ${this.contextWindow.toLocaleString()} (${pct.toFixed(0)}%) ${bar} compacted:${this.compacted} ${breakdown}`;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { LLMProvider, ChatMessage } from "../llm/provider.js";
|
|
2
|
-
import type { ToolRegistry } from "../tools/registry.js";
|
|
3
|
-
import type { ToolExecutor } from "./tool-executor.js";
|
|
4
|
-
import type { OutputRenderer } from "../ui/renderer.js";
|
|
5
|
-
/**
|
|
6
|
-
* Управляет эскалацией ошибок инструментов: отслеживание,
|
|
7
|
-
* вызов specialist'а, переключение стратегии и блокировка.
|
|
8
|
-
*/
|
|
9
|
-
export declare class ErrorEscalator {
|
|
10
|
-
consecutiveToolErrors: Map<string, number>;
|
|
11
|
-
lastToolArgs: Map<string, string>;
|
|
12
|
-
totalToolErrors: number;
|
|
13
|
-
specialistSpawnedFor: string | null;
|
|
14
|
-
errorStrategy: "normal" | "subagent-hint" | "force-subagent";
|
|
15
|
-
resetForTool(toolName: string): void;
|
|
16
|
-
reset(): void;
|
|
17
|
-
handleToolError(toolName: string, toolOutput: string, toolArgs: Record<string, unknown>, toolId: string, messages: ChatMessage[], createdFiles: string[], enrichedPrompt: string, renderer: OutputRenderer | undefined, quiet: boolean, provider: LLMProvider, registry: ToolRegistry, toolExecutor: ToolExecutor, modeConfig: any, llmCfg: any): Promise<"continue" | "block">;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=error-escalation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-escalation.d.ts","sourceRoot":"","sources":["../../src/agent/error-escalation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgGxD;;;GAGG;AACH,qBAAa,cAAc;IACzB,qBAAqB,sBAA6B;IAClD,YAAY,sBAA6B;IACzC,eAAe,SAAK;IACpB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,aAAa,EAAE,QAAQ,GAAG,eAAe,GAAG,gBAAgB,CAAY;IAExE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAWpC,KAAK,IAAI,IAAI;IAQP,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,EAAE,EACvB,YAAY,EAAE,MAAM,EAAE,EACtB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,GAAG,EACf,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;CA2GjC"}
|