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,181 +0,0 @@
|
|
|
1
|
-
import { createInterface } from 'node:readline/promises';
|
|
2
|
-
import { stdin as input, stdout as output } from 'node:process';
|
|
3
|
-
import { getTheme } from '../styling/index.js';
|
|
4
|
-
import { MdStreamFormatter } from './md-formatter.js';
|
|
5
|
-
/**
|
|
6
|
-
* Readline-рендерер — простой текстовый вывод в терминал.
|
|
7
|
-
*
|
|
8
|
-
* Используется по умолчанию. Поддерживает:
|
|
9
|
-
* - Автодополнение слэш-команд (Tab)
|
|
10
|
-
* - Streaming markdown (пошаговый вывод)
|
|
11
|
-
* - Спиннер (анимированный индикатор)
|
|
12
|
-
* - Status bar (обновление в реальном времени)
|
|
13
|
-
*
|
|
14
|
-
* @module ui/readline-renderer
|
|
15
|
-
*/
|
|
16
|
-
const CLEAR_LINE = '\r\x1b[K';
|
|
17
|
-
export class ReadlineRenderer {
|
|
18
|
-
rl = null;
|
|
19
|
-
closed = false;
|
|
20
|
-
commands = [];
|
|
21
|
-
_streamRole = null;
|
|
22
|
-
_streamStarted = false;
|
|
23
|
-
_mdFormatter = new MdStreamFormatter();
|
|
24
|
-
setCommands(cmds) {
|
|
25
|
-
this.commands = cmds;
|
|
26
|
-
}
|
|
27
|
-
async start() {
|
|
28
|
-
this.rl = createInterface({
|
|
29
|
-
input,
|
|
30
|
-
output,
|
|
31
|
-
prompt: '',
|
|
32
|
-
completer: this.makeCompleter(),
|
|
33
|
-
});
|
|
34
|
-
this.closed = false;
|
|
35
|
-
this.rl.on('close', () => { this.closed = true; });
|
|
36
|
-
}
|
|
37
|
-
makeCompleter() {
|
|
38
|
-
return (line) => {
|
|
39
|
-
const hit = line.startsWith('/');
|
|
40
|
-
if (!hit)
|
|
41
|
-
return [[], line];
|
|
42
|
-
const partial = line.slice(1);
|
|
43
|
-
const matches = this.commands
|
|
44
|
-
.filter(c => c.name.startsWith(partial))
|
|
45
|
-
.map(c => `/${c.name}`);
|
|
46
|
-
return [matches.length ? matches : [], line];
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
get theme() {
|
|
50
|
-
return getTheme();
|
|
51
|
-
}
|
|
52
|
-
write(text) {
|
|
53
|
-
process.stdout.write(text);
|
|
54
|
-
}
|
|
55
|
-
writeLine(text) {
|
|
56
|
-
if (text !== undefined) {
|
|
57
|
-
console.log(text);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
console.log();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
writeNewline() {
|
|
64
|
-
console.log();
|
|
65
|
-
}
|
|
66
|
-
writeInfo(text) {
|
|
67
|
-
console.log(this.theme.info(text));
|
|
68
|
-
}
|
|
69
|
-
writeSuccess(text) {
|
|
70
|
-
console.log(this.theme.successMsg(text));
|
|
71
|
-
}
|
|
72
|
-
writeWarning(text) {
|
|
73
|
-
console.log(this.theme.warning(text));
|
|
74
|
-
}
|
|
75
|
-
writeError(text) {
|
|
76
|
-
console.error(this.theme.error(text));
|
|
77
|
-
}
|
|
78
|
-
writeDim(text) {
|
|
79
|
-
console.log(this.theme.dim(text));
|
|
80
|
-
}
|
|
81
|
-
writeBracketTag(tag, message) {
|
|
82
|
-
console.log(this.theme.bracketTag(tag, message));
|
|
83
|
-
}
|
|
84
|
-
writeHeading(text) {
|
|
85
|
-
console.log(this.theme.heading(text));
|
|
86
|
-
}
|
|
87
|
-
writeToolHeader(name) {
|
|
88
|
-
console.log();
|
|
89
|
-
console.log(this.theme.toolHeader(name));
|
|
90
|
-
}
|
|
91
|
-
writeToolPreview(toolName, argsJson) {
|
|
92
|
-
const preview = formatToolArgs(toolName, argsJson);
|
|
93
|
-
console.log(` ${this.theme.dim(preview)}`);
|
|
94
|
-
}
|
|
95
|
-
writeToolResult(time, exitCode, result) {
|
|
96
|
-
console.log(this.theme.timingLine(time, exitCode));
|
|
97
|
-
if (result) {
|
|
98
|
-
console.log(` ${this.theme.dim(result)}`);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
setStreamRole(role) {
|
|
102
|
-
this._streamRole = role;
|
|
103
|
-
this._streamStarted = false;
|
|
104
|
-
this._mdFormatter.reset();
|
|
105
|
-
}
|
|
106
|
-
writeMarkdownChunk(chunk) {
|
|
107
|
-
if (!this._streamStarted && this._streamRole) {
|
|
108
|
-
const prefix = this.theme.bracketTag(this._streamRole, '');
|
|
109
|
-
process.stdout.write(`\n${prefix}\n`);
|
|
110
|
-
this._streamStarted = true;
|
|
111
|
-
}
|
|
112
|
-
const formatted = this._mdFormatter.push(chunk);
|
|
113
|
-
if (formatted) {
|
|
114
|
-
process.stdout.write(formatted);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
commitMarkdown() {
|
|
118
|
-
const flushed = this._mdFormatter.flush();
|
|
119
|
-
if (flushed) {
|
|
120
|
-
process.stdout.write(flushed);
|
|
121
|
-
}
|
|
122
|
-
this._streamRole = null;
|
|
123
|
-
this._streamStarted = false;
|
|
124
|
-
this._mdFormatter.reset();
|
|
125
|
-
console.log();
|
|
126
|
-
}
|
|
127
|
-
writeSpinner(text) {
|
|
128
|
-
process.stdout.write(this.theme.spinner(text ?? ''));
|
|
129
|
-
}
|
|
130
|
-
clearSpinner() {
|
|
131
|
-
process.stdout.write(CLEAR_LINE);
|
|
132
|
-
}
|
|
133
|
-
updateContextUsage(text) {
|
|
134
|
-
console.log(`\n ${text}\n`);
|
|
135
|
-
}
|
|
136
|
-
updateStatus(_info) {
|
|
137
|
-
// noop — no status bar in readline mode
|
|
138
|
-
}
|
|
139
|
-
clear() {
|
|
140
|
-
process.stdout.write('\x1Bc');
|
|
141
|
-
}
|
|
142
|
-
undoLastMessage() {
|
|
143
|
-
// readline mode — no-op, printed text cannot be undone
|
|
144
|
-
}
|
|
145
|
-
setMode(_mode) {
|
|
146
|
-
// mode is shown via prompt message formatting in REPL
|
|
147
|
-
}
|
|
148
|
-
async prompt(msg) {
|
|
149
|
-
if (!this.rl)
|
|
150
|
-
return '';
|
|
151
|
-
return this.rl.question(msg);
|
|
152
|
-
}
|
|
153
|
-
writeFileOutput(lines, startIndex = 1) {
|
|
154
|
-
for (let i = 0; i < lines.length; i++) {
|
|
155
|
-
const lineNum = (startIndex + i).toString().padStart(4);
|
|
156
|
-
console.log(`${this.theme.lineNumbers(lineNum)}| ${lines[i]}`);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
destroy() {
|
|
160
|
-
if (this.rl && !this.closed) {
|
|
161
|
-
this.rl.close();
|
|
162
|
-
}
|
|
163
|
-
this.rl = null;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
function formatToolArgs(toolName, argsJson) {
|
|
167
|
-
if (toolName === 'subagent') {
|
|
168
|
-
try {
|
|
169
|
-
const args = JSON.parse(argsJson);
|
|
170
|
-
const task = args.task || '';
|
|
171
|
-
const files = args.existingFiles || '';
|
|
172
|
-
let result = task.length > 100 ? task.slice(0, 97) + '…' : task;
|
|
173
|
-
if (files)
|
|
174
|
-
result += ` ← ${files}`;
|
|
175
|
-
return result;
|
|
176
|
-
}
|
|
177
|
-
catch { /* fall through */ }
|
|
178
|
-
}
|
|
179
|
-
return argsJson.length > 120 ? argsJson.slice(0, 117) + '…' : argsJson;
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=readline-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readline-renderer.js","sourceRoot":"","sources":["../../src/ui/readline-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/renderer.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Интерфейс рендерера вывода.
|
|
3
|
-
*
|
|
4
|
-
* Определяет контракт для readline-рендерера:
|
|
5
|
-
* - Вывод текста (write, writeLine, writeError)
|
|
6
|
-
* - Вывод инструментов (writeToolHeader, writeToolResult)
|
|
7
|
-
* - Streaming markdown (writeMarkdownChunk)
|
|
8
|
-
* - Спиннер (writeSpinner)
|
|
9
|
-
* - Статус-бар (updateContextUsage, updateStatus)
|
|
10
|
-
* - Ввод (prompt, promptWithChoices)
|
|
11
|
-
* - Прерывание (abort, abortSignal)
|
|
12
|
-
*
|
|
13
|
-
* @module ui/renderer
|
|
14
|
-
*/
|
|
15
|
-
/** Информация о статусе для отображения в status bar */
|
|
16
|
-
export interface StatusInfo {
|
|
17
|
-
provider?: string;
|
|
18
|
-
model?: string;
|
|
19
|
-
tokens?: number;
|
|
20
|
-
contextWindow?: number;
|
|
21
|
-
step?: number;
|
|
22
|
-
maxSteps?: number;
|
|
23
|
-
}
|
|
24
|
-
/** Интерфейс readline-рендерера */
|
|
25
|
-
export interface OutputRenderer {
|
|
26
|
-
write(text: string): void;
|
|
27
|
-
writeLine(text?: string): void;
|
|
28
|
-
writeNewline(): void;
|
|
29
|
-
writeInfo(text: string): void;
|
|
30
|
-
writeSuccess(text: string): void;
|
|
31
|
-
writeWarning(text: string): void;
|
|
32
|
-
writeError(text: string): void;
|
|
33
|
-
writeDim(text: string): void;
|
|
34
|
-
writeBracketTag(tag: string, message: string): void;
|
|
35
|
-
writeHeading(text: string): void;
|
|
36
|
-
writeToolHeader(name: string): void;
|
|
37
|
-
writeToolPreview(toolName: string, argsJson: string): void;
|
|
38
|
-
writeToolResult(time: string, exitCode?: number, result?: string): void;
|
|
39
|
-
writeToolBuffer?(data: {
|
|
40
|
-
lines: string[];
|
|
41
|
-
toolCalls: {
|
|
42
|
-
name: string;
|
|
43
|
-
args: string;
|
|
44
|
-
result: string;
|
|
45
|
-
}[];
|
|
46
|
-
}): void;
|
|
47
|
-
writeMarkdownChunk(chunk: string): void;
|
|
48
|
-
commitMarkdown(): void;
|
|
49
|
-
setStreamRole?(role: 'assistant' | 'subagent' | 'expert' | null): void;
|
|
50
|
-
writeSpinner(text?: string): void;
|
|
51
|
-
clearSpinner(): void;
|
|
52
|
-
updateContextUsage(text: string): void;
|
|
53
|
-
updateStatus(info: StatusInfo): void;
|
|
54
|
-
clear(): void;
|
|
55
|
-
undoLastMessage(): void;
|
|
56
|
-
prompt(msg: string): Promise<string>;
|
|
57
|
-
promptWithChoices?(msg: string, choices: string[]): Promise<string>;
|
|
58
|
-
writeFileOutput(lines: string[], startIndex?: number): void;
|
|
59
|
-
setMode?(mode: string): void;
|
|
60
|
-
start(): Promise<void>;
|
|
61
|
-
destroy(): void;
|
|
62
|
-
readonly abortSignal?: AbortSignal;
|
|
63
|
-
abort?(): void;
|
|
64
|
-
resetAbort?(): void;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/ui/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,IAAI,IAAI,CAAA;IAEpB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACnD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvE,eAAe,CAAC,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,GAAG,IAAI,CAAA;IAE9G,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,cAAc,IAAI,IAAI,CAAA;IACtB,aAAa,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAA;IAEtE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,YAAY,IAAI,IAAI,CAAA;IAEpB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAEpC,KAAK,IAAI,IAAI,CAAA;IACb,eAAe,IAAI,IAAI,CAAA;IAEvB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpC,iBAAiB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE3D,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;IAEf,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,KAAK,CAAC,IAAI,IAAI,CAAA;IACd,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB"}
|
package/dist/ui/renderer.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Интерфейс рендерера вывода.
|
|
3
|
-
*
|
|
4
|
-
* Определяет контракт для readline-рендерера:
|
|
5
|
-
* - Вывод текста (write, writeLine, writeError)
|
|
6
|
-
* - Вывод инструментов (writeToolHeader, writeToolResult)
|
|
7
|
-
* - Streaming markdown (writeMarkdownChunk)
|
|
8
|
-
* - Спиннер (writeSpinner)
|
|
9
|
-
* - Статус-бар (updateContextUsage, updateStatus)
|
|
10
|
-
* - Ввод (prompt, promptWithChoices)
|
|
11
|
-
* - Прерывание (abort, abortSignal)
|
|
12
|
-
*
|
|
13
|
-
* @module ui/renderer
|
|
14
|
-
*/
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=renderer.js.map
|
package/dist/ui/renderer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/ui/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { OutputRenderer, StatusInfo } from './renderer.js';
|
|
2
|
-
/**
|
|
3
|
-
* Буферизированный рендерер для субагентов.
|
|
4
|
-
*
|
|
5
|
-
* Перехватывает весь вывод субагента (streaming, tool calls, сообщения)
|
|
6
|
-
* и сохраняет его в буфер вместо отправки в основной UI.
|
|
7
|
-
* Родительский компонент может прочитать буфер для отображения
|
|
8
|
-
* прогресса субагента в его ToolCallBlock.
|
|
9
|
-
*
|
|
10
|
-
* @module ui/subagent-renderer
|
|
11
|
-
*/
|
|
12
|
-
export interface SubagentBuffer {
|
|
13
|
-
lines: string[];
|
|
14
|
-
toolCalls: {
|
|
15
|
-
name: string;
|
|
16
|
-
args: string;
|
|
17
|
-
result: string;
|
|
18
|
-
}[];
|
|
19
|
-
streaming: string;
|
|
20
|
-
}
|
|
21
|
-
export declare class SubagentRenderer implements OutputRenderer {
|
|
22
|
-
private buffer;
|
|
23
|
-
private _abortController;
|
|
24
|
-
get abortSignal(): AbortSignal;
|
|
25
|
-
getBuffer(): SubagentBuffer;
|
|
26
|
-
clearBuffer(): void;
|
|
27
|
-
write(text: string): void;
|
|
28
|
-
writeLine(text?: string): void;
|
|
29
|
-
writeNewline(): void;
|
|
30
|
-
writeInfo(text: string): void;
|
|
31
|
-
writeSuccess(text: string): void;
|
|
32
|
-
writeWarning(text: string): void;
|
|
33
|
-
writeError(text: string): void;
|
|
34
|
-
writeDim(text: string): void;
|
|
35
|
-
writeBracketTag(tag: string, message: string): void;
|
|
36
|
-
writeHeading(text: string): void;
|
|
37
|
-
writeToolHeader(name: string): void;
|
|
38
|
-
writeToolPreview(_toolName: string, argsJson: string): void;
|
|
39
|
-
writeToolResult(time: string, exitCode?: number, result?: string): void;
|
|
40
|
-
setStreamRole(_role: 'assistant' | 'subagent' | 'expert' | null): void;
|
|
41
|
-
writeMarkdownChunk(chunk: string): void;
|
|
42
|
-
commitMarkdown(): void;
|
|
43
|
-
writeSpinner(_text?: string): void;
|
|
44
|
-
clearSpinner(): void;
|
|
45
|
-
updateContextUsage(_text: string): void;
|
|
46
|
-
updateStatus(_info: StatusInfo): void;
|
|
47
|
-
clear(): void;
|
|
48
|
-
undoLastMessage(): void;
|
|
49
|
-
prompt(_msg: string): Promise<string>;
|
|
50
|
-
promptWithChoices(_msg: string, _choices: string[]): Promise<string>;
|
|
51
|
-
writeFileOutput(_lines: string[], _startIndex?: number): void;
|
|
52
|
-
setMode(_mode: string): void;
|
|
53
|
-
start(): Promise<void>;
|
|
54
|
-
destroy(): void;
|
|
55
|
-
abort(): void;
|
|
56
|
-
resetAbort(): void;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=subagent-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-renderer.d.ts","sourceRoot":"","sources":["../../src/ui/subagent-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;;;;GASG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,SAAS,IAAI,cAAc;IAI3B,WAAW,IAAI,IAAI;IAKnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGzB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9B,YAAY,IAAI,IAAI;IAKpB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAG7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGhC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAG9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAG5B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAGnD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGnC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQvE,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI;IAKtE,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGvC,cAAc,IAAI,IAAI;IAQtB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAClC,YAAY,IAAI,IAAI;IAGpB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACvC,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAErC,KAAK,IAAI,IAAI;IAIb,eAAe,IAAI,IAAI;IAKjB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAE7D,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAEtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC5B,OAAO,IAAI,IAAI;IAEf,KAAK,IAAI,IAAI;IAGb,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
export class SubagentRenderer {
|
|
2
|
-
buffer = { lines: [], toolCalls: [], streaming: '' };
|
|
3
|
-
_abortController = new AbortController();
|
|
4
|
-
get abortSignal() {
|
|
5
|
-
return this._abortController.signal;
|
|
6
|
-
}
|
|
7
|
-
getBuffer() {
|
|
8
|
-
return this.buffer;
|
|
9
|
-
}
|
|
10
|
-
clearBuffer() {
|
|
11
|
-
this.buffer = { lines: [], toolCalls: [], streaming: '' };
|
|
12
|
-
}
|
|
13
|
-
// ── Текст ──
|
|
14
|
-
write(text) {
|
|
15
|
-
this.buffer.lines.push(text);
|
|
16
|
-
}
|
|
17
|
-
writeLine(text) {
|
|
18
|
-
this.buffer.lines.push(text ?? '');
|
|
19
|
-
}
|
|
20
|
-
writeNewline() {
|
|
21
|
-
this.buffer.lines.push('');
|
|
22
|
-
}
|
|
23
|
-
// ── Стилизованный вывод ──
|
|
24
|
-
writeInfo(text) {
|
|
25
|
-
this.buffer.lines.push(text);
|
|
26
|
-
}
|
|
27
|
-
writeSuccess(text) {
|
|
28
|
-
this.buffer.lines.push(text);
|
|
29
|
-
}
|
|
30
|
-
writeWarning(text) {
|
|
31
|
-
this.buffer.lines.push(text);
|
|
32
|
-
}
|
|
33
|
-
writeError(text) {
|
|
34
|
-
this.buffer.lines.push(text);
|
|
35
|
-
}
|
|
36
|
-
writeDim(text) {
|
|
37
|
-
this.buffer.lines.push(text);
|
|
38
|
-
}
|
|
39
|
-
writeBracketTag(tag, message) {
|
|
40
|
-
this.buffer.lines.push(`[${tag}] ${message}`);
|
|
41
|
-
}
|
|
42
|
-
writeHeading(text) {
|
|
43
|
-
this.buffer.lines.push(text);
|
|
44
|
-
}
|
|
45
|
-
// ── Tool calls ──
|
|
46
|
-
writeToolHeader(name) {
|
|
47
|
-
this.buffer.toolCalls.push({ name, args: '', result: '' });
|
|
48
|
-
}
|
|
49
|
-
writeToolPreview(_toolName, argsJson) {
|
|
50
|
-
const last = this.buffer.toolCalls[this.buffer.toolCalls.length - 1];
|
|
51
|
-
if (last)
|
|
52
|
-
last.args = argsJson;
|
|
53
|
-
}
|
|
54
|
-
writeToolResult(time, exitCode, result) {
|
|
55
|
-
const last = this.buffer.toolCalls[this.buffer.toolCalls.length - 1];
|
|
56
|
-
if (last) {
|
|
57
|
-
last.result = result ?? '';
|
|
58
|
-
this.buffer.lines.push(`[${last.name}] ${exitCode === 0 ? 'ok' : `exit ${exitCode}`} (${time}s)`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
setStreamRole(_role) {
|
|
62
|
-
// Subagent buffers output — no-op
|
|
63
|
-
}
|
|
64
|
-
// ── Streaming ──
|
|
65
|
-
writeMarkdownChunk(chunk) {
|
|
66
|
-
this.buffer.streaming += chunk;
|
|
67
|
-
}
|
|
68
|
-
commitMarkdown() {
|
|
69
|
-
if (this.buffer.streaming) {
|
|
70
|
-
this.buffer.lines.push(this.buffer.streaming);
|
|
71
|
-
this.buffer.streaming = '';
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// ── Спиннер (не показываем в буфере) ──
|
|
75
|
-
writeSpinner(_text) { }
|
|
76
|
-
clearSpinner() { }
|
|
77
|
-
// ── Статус (игнорируем) ──
|
|
78
|
-
updateContextUsage(_text) { }
|
|
79
|
-
updateStatus(_info) { }
|
|
80
|
-
clear() {
|
|
81
|
-
this.clearBuffer();
|
|
82
|
-
}
|
|
83
|
-
undoLastMessage() {
|
|
84
|
-
// subagent buffer — no-op, streaming content is internal
|
|
85
|
-
}
|
|
86
|
-
// ── Ввод (не используется в субагентах) ──
|
|
87
|
-
async prompt(_msg) { return ''; }
|
|
88
|
-
async promptWithChoices(_msg, _choices) { return ''; }
|
|
89
|
-
writeFileOutput(_lines, _startIndex) { }
|
|
90
|
-
setMode(_mode) { }
|
|
91
|
-
async start() { }
|
|
92
|
-
destroy() { }
|
|
93
|
-
abort() {
|
|
94
|
-
this._abortController.abort();
|
|
95
|
-
}
|
|
96
|
-
resetAbort() {
|
|
97
|
-
this._abortController = new AbortController();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=subagent-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-renderer.js","sourceRoot":"","sources":["../../src/ui/subagent-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/updater.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare function getCurrentVersion(): string;
|
|
2
|
-
export declare function checkForUpdate(): {
|
|
3
|
-
available: boolean;
|
|
4
|
-
current: string;
|
|
5
|
-
latest: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function checkForUpdateAsync(): void;
|
|
8
|
-
export declare function getUpdateCommand(): string;
|
|
9
|
-
/**
|
|
10
|
-
* Проверяет patch-обновление и автоматически устанавливает.
|
|
11
|
-
* Работает только для patch-версий (третье число).
|
|
12
|
-
* Например: 0.2.74 → 0.2.76 (авто), 0.3.0 → не трогает.
|
|
13
|
-
*/
|
|
14
|
-
export declare function autoUpdatePatch(): void;
|
|
15
|
-
//# sourceMappingURL=updater.d.ts.map
|
package/dist/updater.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AA6BA,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED,wBAAgB,cAAc,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8BxF;AAaD,wBAAgB,mBAAmB,IAAI,IAAI,CAuC1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAoCtC"}
|
package/dist/updater.js
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
2
|
-
import { execSync } from 'node:child_process';
|
|
3
|
-
import { join, dirname } from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
6
|
-
import { logInfo } from './logger.js';
|
|
7
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
-
const __dirname = dirname(__filename);
|
|
9
|
-
/**
|
|
10
|
-
* Проверка и установка обновлений MMA.
|
|
11
|
-
*
|
|
12
|
-
* Кэширует результат проверки на 24 часа.
|
|
13
|
-
* Сравнивает текущую версию с последней в npm.
|
|
14
|
-
*
|
|
15
|
-
* @module updater
|
|
16
|
-
*/
|
|
17
|
-
const MMA_DIR = join(homedir(), '.mma');
|
|
18
|
-
const CACHE_FILE = join(MMA_DIR, 'update-check.json');
|
|
19
|
-
const CACHE_TTL = 0; // кэш отключён — всегда проверяем актуальную версию
|
|
20
|
-
const PKG_NAME = 'micro-models-agent';
|
|
21
|
-
export function getCurrentVersion() {
|
|
22
|
-
const pkgPath = join(__dirname, '..', 'package.json');
|
|
23
|
-
try {
|
|
24
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
25
|
-
return pkg.version || '0.0.0';
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
return '0.0.0';
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export function checkForUpdate() {
|
|
32
|
-
const current = getCurrentVersion();
|
|
33
|
-
const cached = readCache();
|
|
34
|
-
if (cached && Date.now() - cached.checkedAt < CACHE_TTL) {
|
|
35
|
-
return {
|
|
36
|
-
available: isNewerVersion(current, cached.latestVersion),
|
|
37
|
-
current,
|
|
38
|
-
latest: cached.latestVersion,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
const stdout = execSync(`npm view ${PKG_NAME} version`, {
|
|
43
|
-
timeout: 5000,
|
|
44
|
-
encoding: 'utf-8',
|
|
45
|
-
windowsHide: true,
|
|
46
|
-
});
|
|
47
|
-
const latest = stdout.trim();
|
|
48
|
-
writeCache({ latestVersion: latest, checkedAt: Date.now() });
|
|
49
|
-
return {
|
|
50
|
-
available: isNewerVersion(current, latest),
|
|
51
|
-
current,
|
|
52
|
-
latest,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
return { available: false, current, latest: current };
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
function isNewerVersion(a, b) {
|
|
60
|
-
const pa = a.split('.').map(Number);
|
|
61
|
-
const pb = b.split('.').map(Number);
|
|
62
|
-
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
63
|
-
const na = pa[i] || 0;
|
|
64
|
-
const nb = pb[i] || 0;
|
|
65
|
-
if (na !== nb)
|
|
66
|
-
return nb > na;
|
|
67
|
-
}
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
export function checkForUpdateAsync() {
|
|
71
|
-
const current = getCurrentVersion();
|
|
72
|
-
const cached = readCache();
|
|
73
|
-
const cacheValid = cached && Date.now() - cached.checkedAt < CACHE_TTL;
|
|
74
|
-
// Если текущая версия совпадает с кэшированной — значит обновление не проверялось
|
|
75
|
-
// (пользователь не обновлял пакет). Проверяем заново.
|
|
76
|
-
const shouldForceCheck = cached && cached.latestVersion === current && isNewerVersion(current, cached.latestVersion) === false;
|
|
77
|
-
if (cacheValid && !shouldForceCheck) {
|
|
78
|
-
const msg = `v${current} → npm v${cached.latestVersion} (cached)${isNewerVersion(current, cached.latestVersion) ? ' ⬆ update available' : ' ✓ up to date'}`;
|
|
79
|
-
console.error(`[Update] ${msg}`);
|
|
80
|
-
logInfo('Update', msg);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
console.error(`[Update] Checking v${current} against npm…`);
|
|
84
|
-
logInfo('Update', `Checking v${current} against npm…`);
|
|
85
|
-
if (cached) {
|
|
86
|
-
logInfo('Update', `Cache ${shouldForceCheck ? 'same version as current' : 'stale'} (v${cached.latestVersion} @ ${new Date(cached.checkedAt).toISOString()}), re-checking`);
|
|
87
|
-
}
|
|
88
|
-
setTimeout(() => {
|
|
89
|
-
try {
|
|
90
|
-
const stdout = execSync(`npm view ${PKG_NAME} version`, {
|
|
91
|
-
timeout: 5000,
|
|
92
|
-
encoding: 'utf-8',
|
|
93
|
-
windowsHide: true,
|
|
94
|
-
});
|
|
95
|
-
const latest = stdout.trim();
|
|
96
|
-
writeCache({ latestVersion: latest, checkedAt: Date.now() });
|
|
97
|
-
const msg = `v${current} → npm v${latest}${isNewerVersion(current, latest) ? ' ⬆ update available' : ' ✓ up to date'}`;
|
|
98
|
-
console.error(`[Update] ${msg}`);
|
|
99
|
-
logInfo('Update', msg);
|
|
100
|
-
}
|
|
101
|
-
catch (e) {
|
|
102
|
-
console.error(`[Update] Check failed: ${e.message}`);
|
|
103
|
-
logInfo('Update', `npm check failed: ${e.message}`);
|
|
104
|
-
}
|
|
105
|
-
}, 100);
|
|
106
|
-
}
|
|
107
|
-
export function getUpdateCommand() {
|
|
108
|
-
return `npm install -g ${PKG_NAME}`;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Проверяет patch-обновление и автоматически устанавливает.
|
|
112
|
-
* Работает только для patch-версий (третье число).
|
|
113
|
-
* Например: 0.2.74 → 0.2.76 (авто), 0.3.0 → не трогает.
|
|
114
|
-
*/
|
|
115
|
-
export function autoUpdatePatch() {
|
|
116
|
-
const current = getCurrentVersion();
|
|
117
|
-
setTimeout(() => {
|
|
118
|
-
try {
|
|
119
|
-
const stdout = execSync(`npm view ${PKG_NAME} version`, {
|
|
120
|
-
timeout: 5000,
|
|
121
|
-
encoding: 'utf-8',
|
|
122
|
-
windowsHide: true,
|
|
123
|
-
});
|
|
124
|
-
const latest = stdout.trim();
|
|
125
|
-
if (!isNewerVersion(current, latest))
|
|
126
|
-
return;
|
|
127
|
-
const cur = current.split('.').map(Number);
|
|
128
|
-
const lat = latest.split('.').map(Number);
|
|
129
|
-
// Только patch: major и minor должны совпадать
|
|
130
|
-
if (cur[0] !== lat[0] || cur[1] !== lat[1])
|
|
131
|
-
return;
|
|
132
|
-
console.error(`[Update] Auto-updating patch: v${current} → v${latest}…`);
|
|
133
|
-
logInfo('Update', `Auto-updating patch: v${current} → v${latest}`);
|
|
134
|
-
execSync(`npm install -g ${PKG_NAME}@${latest}`, {
|
|
135
|
-
timeout: 60000,
|
|
136
|
-
stdio: 'pipe',
|
|
137
|
-
windowsHide: true,
|
|
138
|
-
});
|
|
139
|
-
console.error(`[Update] Updated to v${latest}. Restart recommended.`);
|
|
140
|
-
logInfo('Update', `Updated to v${latest}`);
|
|
141
|
-
}
|
|
142
|
-
catch (e) {
|
|
143
|
-
console.error(`[Update] Auto-update failed: ${e.message}`);
|
|
144
|
-
logInfo('Update', `Auto-update failed: ${e.message}`);
|
|
145
|
-
}
|
|
146
|
-
}, 200);
|
|
147
|
-
}
|
|
148
|
-
function readCache() {
|
|
149
|
-
try {
|
|
150
|
-
if (!existsSync(CACHE_FILE))
|
|
151
|
-
return null;
|
|
152
|
-
return JSON.parse(readFileSync(CACHE_FILE, 'utf-8'));
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
function writeCache(data) {
|
|
159
|
-
try {
|
|
160
|
-
if (!existsSync(MMA_DIR))
|
|
161
|
-
mkdirSync(MMA_DIR, { recursive: true });
|
|
162
|
-
writeFileSync(CACHE_FILE, JSON.stringify(data), 'utf-8');
|
|
163
|
-
}
|
|
164
|
-
catch { /* ignore */ }
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=updater.js.map
|
package/dist/updater.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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"}
|