orquesta-cli 0.1.13 → 0.1.14
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 +30 -4
- package/dist/cli.js +65 -4
- package/dist/core/config/config-manager.d.ts +13 -1
- package/dist/core/config/config-manager.js +83 -0
- package/dist/core/slash-command-handler.d.ts +1 -0
- package/dist/core/slash-command-handler.js +129 -0
- package/dist/orquesta/config-sync.d.ts +73 -0
- package/dist/orquesta/config-sync.js +230 -0
- package/dist/orquesta/prompt-reporter.d.ts +16 -0
- package/dist/orquesta/prompt-reporter.js +85 -0
- package/dist/setup/first-run-setup.d.ts +15 -0
- package/dist/setup/first-run-setup.js +238 -0
- package/dist/types/index.d.ts +11 -2
- package/dist/ui/TodoPanel.d.ts +1 -0
- package/dist/ui/TodoPanel.js +6 -1
- package/dist/ui/components/LLMSetupWizard.js +373 -7
- package/dist/ui/components/Logo.d.ts +2 -0
- package/dist/ui/components/Logo.js +10 -3
- package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
- package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
- package/dist/ui/components/PlanExecuteApp.js +30 -4
- package/dist/ui/components/ProjectSelector.d.ts +8 -0
- package/dist/ui/components/ProjectSelector.js +119 -0
- package/dist/ui/components/StatusBar.d.ts +2 -0
- package/dist/ui/components/StatusBar.js +6 -1
- package/dist/ui/hooks/slashCommandProcessor.js +8 -4
- package/package.json +11 -5
- package/.eslintrc.json +0 -26
- package/.prettierrc.json +0 -10
- package/CLAUDE.md +0 -199
- package/SECURITY.md +0 -290
- package/TEST_LOCAL.md +0 -245
- package/dist/agents/base/base-agent.d.ts.map +0 -1
- package/dist/agents/base/base-agent.js.map +0 -1
- package/dist/agents/docs-search/index.d.ts.map +0 -1
- package/dist/agents/docs-search/index.js.map +0 -1
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/planner/index.d.ts.map +0 -1
- package/dist/agents/planner/index.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/core/compact/compact-manager.d.ts.map +0 -1
- package/dist/core/compact/compact-manager.js.map +0 -1
- package/dist/core/compact/compact-prompts.d.ts.map +0 -1
- package/dist/core/compact/compact-prompts.js.map +0 -1
- package/dist/core/compact/context-tracker.d.ts.map +0 -1
- package/dist/core/compact/context-tracker.js.map +0 -1
- package/dist/core/compact/index.d.ts.map +0 -1
- package/dist/core/compact/index.js.map +0 -1
- package/dist/core/config/config-manager.d.ts.map +0 -1
- package/dist/core/config/config-manager.js.map +0 -1
- package/dist/core/config/index.d.ts.map +0 -1
- package/dist/core/config/index.js.map +0 -1
- package/dist/core/docs-manager.d.ts.map +0 -1
- package/dist/core/docs-manager.js.map +0 -1
- package/dist/core/git-auto-updater.d.ts.map +0 -1
- package/dist/core/git-auto-updater.js.map +0 -1
- package/dist/core/llm/index.d.ts.map +0 -1
- package/dist/core/llm/index.js.map +0 -1
- package/dist/core/llm/llm-client.d.ts.map +0 -1
- package/dist/core/llm/llm-client.js.map +0 -1
- package/dist/core/session/index.d.ts.map +0 -1
- package/dist/core/session/index.js.map +0 -1
- package/dist/core/session/session-manager.d.ts.map +0 -1
- package/dist/core/session/session-manager.js.map +0 -1
- package/dist/core/slash-command-handler.d.ts.map +0 -1
- package/dist/core/slash-command-handler.js.map +0 -1
- package/dist/core/usage-tracker.d.ts.map +0 -1
- package/dist/core/usage-tracker.js.map +0 -1
- package/dist/errors/base.d.ts.map +0 -1
- package/dist/errors/base.js.map +0 -1
- package/dist/errors/file.d.ts.map +0 -1
- package/dist/errors/file.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/llm.d.ts.map +0 -1
- package/dist/errors/llm.js.map +0 -1
- package/dist/errors/network.d.ts.map +0 -1
- package/dist/errors/network.js.map +0 -1
- package/dist/errors/validation.d.ts.map +0 -1
- package/dist/errors/validation.js.map +0 -1
- package/dist/eval/eval-runner.d.ts.map +0 -1
- package/dist/eval/eval-runner.js.map +0 -1
- package/dist/eval/index.d.ts.map +0 -1
- package/dist/eval/index.js.map +0 -1
- package/dist/eval/types.d.ts.map +0 -1
- package/dist/eval/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/orchestration/index.d.ts.map +0 -1
- package/dist/orchestration/index.js.map +0 -1
- package/dist/orchestration/plan-executor.d.ts.map +0 -1
- package/dist/orchestration/plan-executor.js.map +0 -1
- package/dist/orchestration/types.d.ts.map +0 -1
- package/dist/orchestration/types.js.map +0 -1
- package/dist/orchestration/utils.d.ts.map +0 -1
- package/dist/orchestration/utils.js.map +0 -1
- package/dist/orquesta/connection.d.ts.map +0 -1
- package/dist/orquesta/connection.js.map +0 -1
- package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
- package/dist/prompts/agents/docs-search-decision.js.map +0 -1
- package/dist/prompts/agents/docs-search.d.ts.map +0 -1
- package/dist/prompts/agents/docs-search.js.map +0 -1
- package/dist/prompts/agents/planning.d.ts.map +0 -1
- package/dist/prompts/agents/planning.js.map +0 -1
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js.map +0 -1
- package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
- package/dist/prompts/shared/codebase-rules.js.map +0 -1
- package/dist/prompts/shared/git-rules.d.ts.map +0 -1
- package/dist/prompts/shared/git-rules.js.map +0 -1
- package/dist/prompts/shared/language-rules.d.ts.map +0 -1
- package/dist/prompts/shared/language-rules.js.map +0 -1
- package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
- package/dist/prompts/shared/tool-usage.js.map +0 -1
- package/dist/prompts/system/compact.d.ts.map +0 -1
- package/dist/prompts/system/compact.js.map +0 -1
- package/dist/prompts/system/plan-execute.d.ts.map +0 -1
- package/dist/prompts/system/plan-execute.js.map +0 -1
- package/dist/tools/browser/browser-client.d.ts.map +0 -1
- package/dist/tools/browser/browser-client.js.map +0 -1
- package/dist/tools/browser/browser-tools.d.ts.map +0 -1
- package/dist/tools/browser/browser-tools.js.map +0 -1
- package/dist/tools/browser/index.d.ts.map +0 -1
- package/dist/tools/browser/index.js.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
- package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
- package/dist/tools/llm/agents/index.d.ts.map +0 -1
- package/dist/tools/llm/agents/index.js.map +0 -1
- package/dist/tools/llm/index.d.ts.map +0 -1
- package/dist/tools/llm/index.js.map +0 -1
- package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
- package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
- package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
- package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/bash-tool.js.map +0 -1
- package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
- package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
- package/dist/tools/llm/simple/file-tools.js.map +0 -1
- package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
- package/dist/tools/llm/simple/index.d.ts.map +0 -1
- package/dist/tools/llm/simple/index.js.map +0 -1
- package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
- package/dist/tools/llm/simple/planning-tools.js.map +0 -1
- package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
- package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
- package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
- package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
- package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
- package/dist/tools/llm/simple/todo-tools.js.map +0 -1
- package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
- package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
- package/dist/tools/office/common/constants.d.ts.map +0 -1
- package/dist/tools/office/common/constants.js.map +0 -1
- package/dist/tools/office/common/index.d.ts.map +0 -1
- package/dist/tools/office/common/index.js.map +0 -1
- package/dist/tools/office/common/types.d.ts.map +0 -1
- package/dist/tools/office/common/types.js.map +0 -1
- package/dist/tools/office/common/utils.d.ts.map +0 -1
- package/dist/tools/office/common/utils.js.map +0 -1
- package/dist/tools/office/excel-client.d.ts.map +0 -1
- package/dist/tools/office/excel-client.js.map +0 -1
- package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/cells.js.map +0 -1
- package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/charts.js.map +0 -1
- package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/comments.js.map +0 -1
- package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
- package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/export.js.map +0 -1
- package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/formatting.js.map +0 -1
- package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/index.js.map +0 -1
- package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/launch.js.map +0 -1
- package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/media.js.map +0 -1
- package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
- package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/protection.js.map +0 -1
- package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
- package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/sheets.js.map +0 -1
- package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
- package/dist/tools/office/excel-tools/validation.js.map +0 -1
- package/dist/tools/office/excel-tools.d.ts.map +0 -1
- package/dist/tools/office/excel-tools.js.map +0 -1
- package/dist/tools/office/index.d.ts.map +0 -1
- package/dist/tools/office/index.js.map +0 -1
- package/dist/tools/office/office-client-base.d.ts.map +0 -1
- package/dist/tools/office/office-client-base.js.map +0 -1
- package/dist/tools/office/office-client.d.ts.map +0 -1
- package/dist/tools/office/office-client.js.map +0 -1
- package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-client.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
- package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
- package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
- package/dist/tools/office/powerpoint-tools.js.map +0 -1
- package/dist/tools/office/word-client.d.ts.map +0 -1
- package/dist/tools/office/word-client.js.map +0 -1
- package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
- package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
- package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
- package/dist/tools/office/word-tools/comments.js.map +0 -1
- package/dist/tools/office/word-tools/content.d.ts.map +0 -1
- package/dist/tools/office/word-tools/content.js.map +0 -1
- package/dist/tools/office/word-tools/export.d.ts.map +0 -1
- package/dist/tools/office/word-tools/export.js.map +0 -1
- package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
- package/dist/tools/office/word-tools/formatting.js.map +0 -1
- package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
- package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
- package/dist/tools/office/word-tools/index.d.ts.map +0 -1
- package/dist/tools/office/word-tools/index.js.map +0 -1
- package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
- package/dist/tools/office/word-tools/launch.js.map +0 -1
- package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
- package/dist/tools/office/word-tools/lists.js.map +0 -1
- package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
- package/dist/tools/office/word-tools/navigation.js.map +0 -1
- package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
- package/dist/tools/office/word-tools/page-setup.js.map +0 -1
- package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
- package/dist/tools/office/word-tools/tables.js.map +0 -1
- package/dist/tools/office/word-tools/text.d.ts.map +0 -1
- package/dist/tools/office/word-tools/text.js.map +0 -1
- package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
- package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
- package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
- package/dist/tools/office/word-tools/watermarks.js.map +0 -1
- package/dist/tools/office/word-tools.d.ts.map +0 -1
- package/dist/tools/office/word-tools.js.map +0 -1
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/ui/PlanExecuteView.d.ts.map +0 -1
- package/dist/ui/PlanExecuteView.js.map +0 -1
- package/dist/ui/TodoPanel.d.ts.map +0 -1
- package/dist/ui/TodoPanel.js.map +0 -1
- package/dist/ui/UpdateNotification.d.ts.map +0 -1
- package/dist/ui/UpdateNotification.js.map +0 -1
- package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
- package/dist/ui/components/ActivityIndicator.js.map +0 -1
- package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
- package/dist/ui/components/CommandBrowser.js.map +0 -1
- package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
- package/dist/ui/components/CustomTextInput.js.map +0 -1
- package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
- package/dist/ui/components/DocsSearchProgress.js.map +0 -1
- package/dist/ui/components/FileBrowser.d.ts.map +0 -1
- package/dist/ui/components/FileBrowser.js.map +0 -1
- package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
- package/dist/ui/components/LLMSetupWizard.js.map +0 -1
- package/dist/ui/components/Logo.d.ts.map +0 -1
- package/dist/ui/components/Logo.js.map +0 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
- package/dist/ui/components/MarkdownRenderer.js.map +0 -1
- package/dist/ui/components/ModelSelector.d.ts.map +0 -1
- package/dist/ui/components/ModelSelector.js.map +0 -1
- package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
- package/dist/ui/components/PlanExecuteApp.js.map +0 -1
- package/dist/ui/components/ProgressBar.d.ts.map +0 -1
- package/dist/ui/components/ProgressBar.js.map +0 -1
- package/dist/ui/components/StatusBar.d.ts.map +0 -1
- package/dist/ui/components/StatusBar.js.map +0 -1
- package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
- package/dist/ui/components/ThinkingIndicator.js.map +0 -1
- package/dist/ui/components/TodoListView.d.ts.map +0 -1
- package/dist/ui/components/TodoListView.js.map +0 -1
- package/dist/ui/components/ToolSelector.d.ts.map +0 -1
- package/dist/ui/components/ToolSelector.js.map +0 -1
- package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
- package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
- package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
- package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
- package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
- package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
- package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
- package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
- package/dist/ui/components/dialogs/index.d.ts.map +0 -1
- package/dist/ui/components/dialogs/index.js.map +0 -1
- package/dist/ui/components/index.d.ts.map +0 -1
- package/dist/ui/components/index.js.map +0 -1
- package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
- package/dist/ui/components/panels/LogPanel.js.map +0 -1
- package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
- package/dist/ui/components/panels/SessionPanel.js.map +0 -1
- package/dist/ui/components/panels/index.d.ts.map +0 -1
- package/dist/ui/components/panels/index.js.map +0 -1
- package/dist/ui/components/views/ChatView.d.ts.map +0 -1
- package/dist/ui/components/views/ChatView.js.map +0 -1
- package/dist/ui/components/views/index.d.ts.map +0 -1
- package/dist/ui/components/views/index.js.map +0 -1
- package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
- package/dist/ui/contexts/TokenContext.js.map +0 -1
- package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
- package/dist/ui/hooks/atFileProcessor.js.map +0 -1
- package/dist/ui/hooks/index.d.ts.map +0 -1
- package/dist/ui/hooks/index.js.map +0 -1
- package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
- package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
- package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
- package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
- package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
- package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
- package/dist/ui/hooks/useFileList.d.ts.map +0 -1
- package/dist/ui/hooks/useFileList.js.map +0 -1
- package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
- package/dist/ui/hooks/useInputHistory.js.map +0 -1
- package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
- package/dist/ui/hooks/usePlanExecution.js.map +0 -1
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/ink-entry.d.ts.map +0 -1
- package/dist/ui/ink-entry.js.map +0 -1
- package/dist/utils/env-filter.d.ts.map +0 -1
- package/dist/utils/env-filter.js.map +0 -1
- package/dist/utils/file-system.d.ts.map +0 -1
- package/dist/utils/file-system.js.map +0 -1
- package/dist/utils/git-utils.d.ts.map +0 -1
- package/dist/utils/git-utils.js.map +0 -1
- package/dist/utils/json-stream-logger.d.ts.map +0 -1
- package/dist/utils/json-stream-logger.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/platform-utils.d.ts.map +0 -1
- package/dist/utils/platform-utils.js.map +0 -1
- package/dist/utils/wsl-utils.d.ts.map +0 -1
- package/dist/utils/wsl-utils.js.map +0 -1
- package/electron.vite.config.ts +0 -63
- package/google374b9eba0c52b043.html +0 -1
- package/src/agents/base/base-agent.ts +0 -159
- package/src/agents/docs-search/index.ts +0 -365
- package/src/agents/index.ts +0 -34
- package/src/agents/planner/index.ts +0 -544
- package/src/cli.ts +0 -201
- package/src/constants.ts +0 -47
- package/src/core/compact/compact-manager.ts +0 -160
- package/src/core/compact/compact-prompts.ts +0 -150
- package/src/core/compact/context-tracker.ts +0 -164
- package/src/core/compact/index.ts +0 -25
- package/src/core/config/config-manager.ts +0 -460
- package/src/core/config/index.ts +0 -5
- package/src/core/docs-manager.ts +0 -678
- package/src/core/llm/index.ts +0 -7
- package/src/core/llm/llm-client.ts +0 -1550
- package/src/core/session/index.ts +0 -5
- package/src/core/session/session-manager.ts +0 -464
- package/src/core/slash-command-handler.ts +0 -410
- package/src/core/usage-tracker.ts +0 -438
- package/src/errors/base.ts +0 -81
- package/src/errors/file.ts +0 -183
- package/src/errors/index.ts +0 -95
- package/src/errors/llm.ts +0 -151
- package/src/errors/network.ts +0 -124
- package/src/errors/validation.ts +0 -111
- package/src/eval/eval-runner.ts +0 -456
- package/src/eval/index.ts +0 -8
- package/src/eval/types.ts +0 -139
- package/src/index.ts +0 -22
- package/src/orchestration/index.ts +0 -30
- package/src/orchestration/plan-executor.ts +0 -652
- package/src/orchestration/types.ts +0 -127
- package/src/orchestration/utils.ts +0 -119
- package/src/orquesta/connection.ts +0 -291
- package/src/prompts/agents/docs-search-decision.ts +0 -74
- package/src/prompts/agents/docs-search.ts +0 -84
- package/src/prompts/agents/planning.ts +0 -143
- package/src/prompts/index.ts +0 -31
- package/src/prompts/shared/codebase-rules.ts +0 -29
- package/src/prompts/shared/git-rules.ts +0 -94
- package/src/prompts/shared/language-rules.ts +0 -36
- package/src/prompts/shared/tool-usage.ts +0 -72
- package/src/prompts/system/compact.ts +0 -80
- package/src/prompts/system/plan-execute.ts +0 -89
- package/src/tools/browser/browser-client.ts +0 -1363
- package/src/tools/browser/browser-tools.ts +0 -1139
- package/src/tools/browser/index.ts +0 -65
- package/src/tools/index.ts +0 -23
- package/src/tools/llm/agents/docs-search-tools.ts +0 -368
- package/src/tools/llm/agents/index.ts +0 -22
- package/src/tools/llm/index.ts +0 -11
- package/src/tools/llm/simple/ask-user-tool.ts +0 -25
- package/src/tools/llm/simple/background-bash-tool.ts +0 -443
- package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
- package/src/tools/llm/simple/bash-tool.ts +0 -238
- package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
- package/src/tools/llm/simple/file-tools.ts +0 -1051
- package/src/tools/llm/simple/final-response-tool.ts +0 -180
- package/src/tools/llm/simple/index.ts +0 -42
- package/src/tools/llm/simple/planning-tools.ts +0 -143
- package/src/tools/llm/simple/powershell-tool.ts +0 -241
- package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
- package/src/tools/llm/simple/todo-tools.ts +0 -207
- package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
- package/src/tools/office/common/constants.ts +0 -335
- package/src/tools/office/common/index.ts +0 -133
- package/src/tools/office/common/types.ts +0 -286
- package/src/tools/office/common/utils.ts +0 -116
- package/src/tools/office/excel-client.ts +0 -1336
- package/src/tools/office/excel-tools/cells.ts +0 -359
- package/src/tools/office/excel-tools/charts.ts +0 -166
- package/src/tools/office/excel-tools/comments.ts +0 -155
- package/src/tools/office/excel-tools/data-ops.ts +0 -349
- package/src/tools/office/excel-tools/export.ts +0 -105
- package/src/tools/office/excel-tools/formatting.ts +0 -357
- package/src/tools/office/excel-tools/index.ts +0 -55
- package/src/tools/office/excel-tools/launch.ts +0 -303
- package/src/tools/office/excel-tools/media.ts +0 -117
- package/src/tools/office/excel-tools/named-ranges.ts +0 -148
- package/src/tools/office/excel-tools/protection.ts +0 -105
- package/src/tools/office/excel-tools/rows-columns.ts +0 -386
- package/src/tools/office/excel-tools/sheets.ts +0 -228
- package/src/tools/office/excel-tools/validation.ts +0 -226
- package/src/tools/office/excel-tools.ts +0 -9
- package/src/tools/office/index.ts +0 -259
- package/src/tools/office/office-client-base.ts +0 -242
- package/src/tools/office/office-client.ts +0 -377
- package/src/tools/office/powerpoint-client.ts +0 -1498
- package/src/tools/office/powerpoint-tools/effects.ts +0 -315
- package/src/tools/office/powerpoint-tools/export.ts +0 -138
- package/src/tools/office/powerpoint-tools/index.ts +0 -45
- package/src/tools/office/powerpoint-tools/launch.ts +0 -263
- package/src/tools/office/powerpoint-tools/media.ts +0 -291
- package/src/tools/office/powerpoint-tools/notes.ts +0 -220
- package/src/tools/office/powerpoint-tools/sections.ts +0 -140
- package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
- package/src/tools/office/powerpoint-tools/slides.ts +0 -350
- package/src/tools/office/powerpoint-tools/tables.ts +0 -182
- package/src/tools/office/powerpoint-tools/text.ts +0 -473
- package/src/tools/office/powerpoint-tools.ts +0 -9
- package/src/tools/office/word-client.ts +0 -1697
- package/src/tools/office/word-tools/bookmarks.ts +0 -186
- package/src/tools/office/word-tools/comments.ts +0 -185
- package/src/tools/office/word-tools/content.ts +0 -229
- package/src/tools/office/word-tools/export.ts +0 -97
- package/src/tools/office/word-tools/formatting.ts +0 -161
- package/src/tools/office/word-tools/headers-footers.ts +0 -155
- package/src/tools/office/word-tools/index.ts +0 -57
- package/src/tools/office/word-tools/launch.ts +0 -312
- package/src/tools/office/word-tools/lists.ts +0 -97
- package/src/tools/office/word-tools/navigation.ts +0 -114
- package/src/tools/office/word-tools/page-setup.ts +0 -195
- package/src/tools/office/word-tools/tables.ts +0 -262
- package/src/tools/office/word-tools/text.ts +0 -294
- package/src/tools/office/word-tools/undo-redo.ts +0 -97
- package/src/tools/office/word-tools/watermarks.ts +0 -105
- package/src/tools/office/word-tools.ts +0 -9
- package/src/tools/registry.ts +0 -527
- package/src/tools/types.ts +0 -231
- package/src/types/index.ts +0 -181
- package/src/ui/PlanExecuteView.tsx +0 -119
- package/src/ui/TodoPanel.tsx +0 -240
- package/src/ui/UpdateNotification.tsx +0 -105
- package/src/ui/components/ActivityIndicator.tsx +0 -234
- package/src/ui/components/CommandBrowser.tsx +0 -114
- package/src/ui/components/CustomTextInput.tsx +0 -389
- package/src/ui/components/DocsSearchProgress.tsx +0 -85
- package/src/ui/components/FileBrowser.tsx +0 -93
- package/src/ui/components/LLMSetupWizard.tsx +0 -333
- package/src/ui/components/Logo.tsx +0 -125
- package/src/ui/components/MarkdownRenderer.tsx +0 -358
- package/src/ui/components/ModelSelector.tsx +0 -203
- package/src/ui/components/PlanExecuteApp.tsx +0 -2007
- package/src/ui/components/ProgressBar.tsx +0 -51
- package/src/ui/components/StatusBar.tsx +0 -302
- package/src/ui/components/ThinkingIndicator.tsx +0 -120
- package/src/ui/components/TodoListView.tsx +0 -140
- package/src/ui/components/ToolSelector.tsx +0 -215
- package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
- package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
- package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
- package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
- package/src/ui/components/dialogs/index.ts +0 -13
- package/src/ui/components/index.ts +0 -27
- package/src/ui/components/panels/LogPanel.tsx +0 -385
- package/src/ui/components/panels/SessionPanel.tsx +0 -146
- package/src/ui/components/panels/index.ts +0 -13
- package/src/ui/components/views/ChatView.tsx +0 -447
- package/src/ui/components/views/index.ts +0 -5
- package/src/ui/contexts/TokenContext.tsx +0 -139
- package/src/ui/hooks/atFileProcessor.ts +0 -167
- package/src/ui/hooks/index.ts +0 -11
- package/src/ui/hooks/slashCommandProcessor.ts +0 -174
- package/src/ui/hooks/useCommandBrowserState.ts +0 -97
- package/src/ui/hooks/useFileBrowserState.ts +0 -116
- package/src/ui/hooks/useFileList.ts +0 -132
- package/src/ui/hooks/useInputHistory.ts +0 -89
- package/src/ui/hooks/usePlanExecution.ts +0 -339
- package/src/ui/index.ts +0 -10
- package/src/ui/ink-entry.tsx +0 -36
- package/src/utils/env-filter.ts +0 -164
- package/src/utils/file-system.ts +0 -133
- package/src/utils/git-utils.ts +0 -30
- package/src/utils/json-stream-logger.ts +0 -1259
- package/src/utils/logger.ts +0 -2767
- package/src/utils/platform-utils.ts +0 -256
- package/src/utils/wsl-utils.ts +0 -113
- package/tsconfig.electron.json +0 -39
- package/tsconfig.json +0 -64
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Background PowerShell Tool (Native Windows Only)
|
|
3
|
-
*
|
|
4
|
-
* Tool for running and managing PowerShell processes in the background
|
|
5
|
-
* Useful for long-running commands like npm run dev, npm start, etc.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { spawn, ChildProcess } from 'child_process';
|
|
9
|
-
import { ToolDefinition } from '../../../types/index.js';
|
|
10
|
-
import { LLMSimpleTool, ToolResult, ToolCategory } from '../../types.js';
|
|
11
|
-
import { logger } from '../../../utils/logger.js';
|
|
12
|
-
import { isNativeWindows, findNativePowerShellPath } from '../../../utils/platform-utils.js';
|
|
13
|
-
import { filterSafeEnv } from '../../../utils/env-filter.js';
|
|
14
|
-
import { configManager } from '../../../core/config/config-manager.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Background process info
|
|
18
|
-
*/
|
|
19
|
-
interface BackgroundProcess {
|
|
20
|
-
id: string;
|
|
21
|
-
command: string;
|
|
22
|
-
process: ChildProcess;
|
|
23
|
-
startedAt: Date;
|
|
24
|
-
cwd: string;
|
|
25
|
-
output: string[];
|
|
26
|
-
maxOutputLines: number;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Background PowerShell Process Manager
|
|
31
|
-
*/
|
|
32
|
-
class BackgroundPowerShellProcessManager {
|
|
33
|
-
private processes: Map<string, BackgroundProcess> = new Map();
|
|
34
|
-
private nextId = 1;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Start a background process
|
|
38
|
-
*/
|
|
39
|
-
start(command: string, cwd?: string, explicitEnv?: Record<string, string>): { id: string; pid: number } {
|
|
40
|
-
const id = `ps-bg-${this.nextId++}`;
|
|
41
|
-
const workingDir = cwd || process.cwd();
|
|
42
|
-
|
|
43
|
-
const psPath = findNativePowerShellPath();
|
|
44
|
-
|
|
45
|
-
// Get user-configured safe env vars
|
|
46
|
-
const userSafeVars = configManager.getSafeEnvVars();
|
|
47
|
-
|
|
48
|
-
const child = spawn(psPath, ['-NoProfile', '-Command', command], {
|
|
49
|
-
cwd: workingDir,
|
|
50
|
-
env: filterSafeEnv(process.env, userSafeVars, explicitEnv || {}), // Merge: filtered process.env + user config + explicit vars
|
|
51
|
-
detached: false,
|
|
52
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
const bgProcess: BackgroundProcess = {
|
|
56
|
-
id,
|
|
57
|
-
command,
|
|
58
|
-
process: child,
|
|
59
|
-
startedAt: new Date(),
|
|
60
|
-
cwd: workingDir,
|
|
61
|
-
output: [],
|
|
62
|
-
maxOutputLines: 100,
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
// Capture output
|
|
66
|
-
child.stdout?.on('data', (data) => {
|
|
67
|
-
const lines = data.toString().split('\n').filter((l: string) => l.trim());
|
|
68
|
-
bgProcess.output.push(...lines);
|
|
69
|
-
// Keep only last N lines
|
|
70
|
-
if (bgProcess.output.length > bgProcess.maxOutputLines) {
|
|
71
|
-
bgProcess.output = bgProcess.output.slice(-bgProcess.maxOutputLines);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
child.stderr?.on('data', (data) => {
|
|
76
|
-
const lines = data.toString().split('\n').filter((l: string) => l.trim());
|
|
77
|
-
bgProcess.output.push(...lines.map((l: string) => `[stderr] ${l}`));
|
|
78
|
-
if (bgProcess.output.length > bgProcess.maxOutputLines) {
|
|
79
|
-
bgProcess.output = bgProcess.output.slice(-bgProcess.maxOutputLines);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
child.on('close', (code) => {
|
|
84
|
-
bgProcess.output.push(`[Process exited with code ${code}]`);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
child.on('error', (error) => {
|
|
88
|
-
bgProcess.output.push(`[Error: ${error.message}]`);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
this.processes.set(id, bgProcess);
|
|
92
|
-
|
|
93
|
-
return { id, pid: child.pid || 0 };
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Kill a background process
|
|
98
|
-
*/
|
|
99
|
-
kill(id: string): boolean {
|
|
100
|
-
const bgProcess = this.processes.get(id);
|
|
101
|
-
if (!bgProcess) {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
try {
|
|
106
|
-
bgProcess.process.kill('SIGTERM');
|
|
107
|
-
// Give it a moment, then force kill if needed
|
|
108
|
-
setTimeout(() => {
|
|
109
|
-
if (!bgProcess.process.killed) {
|
|
110
|
-
bgProcess.process.kill('SIGKILL');
|
|
111
|
-
}
|
|
112
|
-
}, 2000);
|
|
113
|
-
this.processes.delete(id);
|
|
114
|
-
return true;
|
|
115
|
-
} catch {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Get process status
|
|
122
|
-
*/
|
|
123
|
-
getStatus(id: string): { running: boolean; output: string[] } | null {
|
|
124
|
-
const bgProcess = this.processes.get(id);
|
|
125
|
-
if (!bgProcess) {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return {
|
|
130
|
-
running: !bgProcess.process.killed && bgProcess.process.exitCode === null,
|
|
131
|
-
output: bgProcess.output.slice(-20), // Last 20 lines
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* List all processes
|
|
137
|
-
*/
|
|
138
|
-
list(): Array<{
|
|
139
|
-
id: string;
|
|
140
|
-
command: string;
|
|
141
|
-
pid: number;
|
|
142
|
-
running: boolean;
|
|
143
|
-
startedAt: Date;
|
|
144
|
-
cwd: string;
|
|
145
|
-
}> {
|
|
146
|
-
return Array.from(this.processes.values()).map(p => ({
|
|
147
|
-
id: p.id,
|
|
148
|
-
command: p.command,
|
|
149
|
-
pid: p.process.pid || 0,
|
|
150
|
-
running: !p.process.killed && p.process.exitCode === null,
|
|
151
|
-
startedAt: p.startedAt,
|
|
152
|
-
cwd: p.cwd,
|
|
153
|
-
}));
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Kill all processes
|
|
158
|
-
*/
|
|
159
|
-
killAll(): number {
|
|
160
|
-
let killed = 0;
|
|
161
|
-
for (const [id] of this.processes) {
|
|
162
|
-
if (this.kill(id)) {
|
|
163
|
-
killed++;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return killed;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Global instance
|
|
171
|
-
export const backgroundPowerShellProcessManager = new BackgroundPowerShellProcessManager();
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* powershell_background Tool Definition
|
|
175
|
-
*/
|
|
176
|
-
const POWERSHELL_BACKGROUND_DEFINITION: ToolDefinition = {
|
|
177
|
-
type: 'function',
|
|
178
|
-
function: {
|
|
179
|
-
name: 'powershell_background',
|
|
180
|
-
description: `Start a PowerShell command in the background on Windows. Use this for long-running processes like:
|
|
181
|
-
- npm run dev (development server)
|
|
182
|
-
- npm start (application server)
|
|
183
|
-
- python -m http.server (simple HTTP server)
|
|
184
|
-
- docker-compose up
|
|
185
|
-
|
|
186
|
-
The command will continue running after this tool returns.
|
|
187
|
-
Use powershell_background_status to check output, or powershell_background_kill to stop it.`,
|
|
188
|
-
parameters: {
|
|
189
|
-
type: 'object',
|
|
190
|
-
properties: {
|
|
191
|
-
reason: {
|
|
192
|
-
type: 'string',
|
|
193
|
-
description: 'Explanation of why you are running this in background',
|
|
194
|
-
},
|
|
195
|
-
command: {
|
|
196
|
-
type: 'string',
|
|
197
|
-
description: 'The PowerShell command to run in background',
|
|
198
|
-
},
|
|
199
|
-
cwd: {
|
|
200
|
-
type: 'string',
|
|
201
|
-
description: 'Working directory (optional)',
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
required: ['reason', 'command'],
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
};
|
|
208
|
-
|
|
209
|
-
async function executePowerShellBackground(args: Record<string, unknown>): Promise<ToolResult> {
|
|
210
|
-
const command = args['command'] as string;
|
|
211
|
-
const cwd = args['cwd'] as string | undefined;
|
|
212
|
-
|
|
213
|
-
logger.enter('powershellBackground.execute', { command, cwd });
|
|
214
|
-
|
|
215
|
-
// Check platform - should only run on Native Windows
|
|
216
|
-
if (!isNativeWindows()) {
|
|
217
|
-
return {
|
|
218
|
-
success: false,
|
|
219
|
-
error: 'powershell_background tool is only available on Native Windows. Use bash_background instead.',
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
try {
|
|
224
|
-
const { id, pid } = backgroundPowerShellProcessManager.start(command, cwd);
|
|
225
|
-
|
|
226
|
-
// Wait a moment to check if it started successfully
|
|
227
|
-
await new Promise(r => setTimeout(r, 1000));
|
|
228
|
-
|
|
229
|
-
const status = backgroundPowerShellProcessManager.getStatus(id);
|
|
230
|
-
const running = status?.running ?? false;
|
|
231
|
-
|
|
232
|
-
if (!running) {
|
|
233
|
-
const output = status?.output.join('\n') || '(no output)';
|
|
234
|
-
return {
|
|
235
|
-
success: false,
|
|
236
|
-
error: `Process failed to start or exited immediately.\nOutput:\n${output}`,
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
logger.exit('powershellBackground.execute', { id, pid });
|
|
241
|
-
|
|
242
|
-
return {
|
|
243
|
-
success: true,
|
|
244
|
-
result: `Background process started\nID: ${id}\nPID: ${pid}\nCommand: ${command}\n\nUse powershell_background_status with id="${id}" to check output.\nUse powershell_background_kill with id="${id}" to stop it.`,
|
|
245
|
-
};
|
|
246
|
-
} catch (error) {
|
|
247
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
248
|
-
return {
|
|
249
|
-
success: false,
|
|
250
|
-
error: `Failed to start background process: ${errorMessage}`,
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
export const powershellBackgroundTool: LLMSimpleTool = {
|
|
256
|
-
definition: POWERSHELL_BACKGROUND_DEFINITION,
|
|
257
|
-
execute: executePowerShellBackground,
|
|
258
|
-
categories: ['llm-simple'] as ToolCategory[],
|
|
259
|
-
description: 'Run PowerShell command in background',
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* powershell_background_status Tool Definition
|
|
264
|
-
*/
|
|
265
|
-
const POWERSHELL_BACKGROUND_STATUS_DEFINITION: ToolDefinition = {
|
|
266
|
-
type: 'function',
|
|
267
|
-
function: {
|
|
268
|
-
name: 'powershell_background_status',
|
|
269
|
-
description: `Check the status and recent output of a background PowerShell process.
|
|
270
|
-
Use this to see if a server started successfully or to check for errors.`,
|
|
271
|
-
parameters: {
|
|
272
|
-
type: 'object',
|
|
273
|
-
properties: {
|
|
274
|
-
reason: {
|
|
275
|
-
type: 'string',
|
|
276
|
-
description: 'Explanation of why you are checking status',
|
|
277
|
-
},
|
|
278
|
-
id: {
|
|
279
|
-
type: 'string',
|
|
280
|
-
description: 'The process ID (e.g., "ps-bg-1") returned by powershell_background',
|
|
281
|
-
},
|
|
282
|
-
},
|
|
283
|
-
required: ['reason', 'id'],
|
|
284
|
-
},
|
|
285
|
-
},
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
async function executePowerShellBackgroundStatus(args: Record<string, unknown>): Promise<ToolResult> {
|
|
289
|
-
const id = args['id'] as string;
|
|
290
|
-
|
|
291
|
-
// Check platform
|
|
292
|
-
if (!isNativeWindows()) {
|
|
293
|
-
return {
|
|
294
|
-
success: false,
|
|
295
|
-
error: 'powershell_background_status tool is only available on Native Windows.',
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
const status = backgroundPowerShellProcessManager.getStatus(id);
|
|
300
|
-
|
|
301
|
-
if (!status) {
|
|
302
|
-
// Check if it's a list request
|
|
303
|
-
if (!id || id === 'list') {
|
|
304
|
-
const processes = backgroundPowerShellProcessManager.list();
|
|
305
|
-
if (processes.length === 0) {
|
|
306
|
-
return {
|
|
307
|
-
success: true,
|
|
308
|
-
result: 'No background PowerShell processes running.',
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
const list = processes.map(p => {
|
|
313
|
-
const status = p.running ? 'running' : 'stopped';
|
|
314
|
-
return `- ${p.id}: ${p.command} (PID: ${p.pid}, ${status})`;
|
|
315
|
-
}).join('\n');
|
|
316
|
-
|
|
317
|
-
return {
|
|
318
|
-
success: true,
|
|
319
|
-
result: `Background PowerShell processes:\n${list}`,
|
|
320
|
-
};
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
return {
|
|
324
|
-
success: false,
|
|
325
|
-
error: `No background process found with ID: ${id}`,
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
const statusStr = status.running ? 'Running' : 'Stopped';
|
|
330
|
-
const output = status.output.length > 0
|
|
331
|
-
? status.output.join('\n')
|
|
332
|
-
: '(no output yet)';
|
|
333
|
-
|
|
334
|
-
return {
|
|
335
|
-
success: true,
|
|
336
|
-
result: `Process ${id}:\nStatus: ${statusStr}\n\nRecent output:\n${output}`,
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
export const powershellBackgroundStatusTool: LLMSimpleTool = {
|
|
341
|
-
definition: POWERSHELL_BACKGROUND_STATUS_DEFINITION,
|
|
342
|
-
execute: executePowerShellBackgroundStatus,
|
|
343
|
-
categories: ['llm-simple'] as ToolCategory[],
|
|
344
|
-
description: 'Check background PowerShell process status',
|
|
345
|
-
};
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* powershell_background_kill Tool Definition
|
|
349
|
-
*/
|
|
350
|
-
const POWERSHELL_BACKGROUND_KILL_DEFINITION: ToolDefinition = {
|
|
351
|
-
type: 'function',
|
|
352
|
-
function: {
|
|
353
|
-
name: 'powershell_background_kill',
|
|
354
|
-
description: `Stop a background PowerShell process.
|
|
355
|
-
Use this to stop development servers, watchers, or other long-running processes.`,
|
|
356
|
-
parameters: {
|
|
357
|
-
type: 'object',
|
|
358
|
-
properties: {
|
|
359
|
-
reason: {
|
|
360
|
-
type: 'string',
|
|
361
|
-
description: 'Explanation of why you are killing this process',
|
|
362
|
-
},
|
|
363
|
-
id: {
|
|
364
|
-
type: 'string',
|
|
365
|
-
description: 'The process ID (e.g., "ps-bg-1") to kill, or "all" to kill all background processes',
|
|
366
|
-
},
|
|
367
|
-
},
|
|
368
|
-
required: ['reason', 'id'],
|
|
369
|
-
},
|
|
370
|
-
},
|
|
371
|
-
};
|
|
372
|
-
|
|
373
|
-
async function executePowerShellBackgroundKill(args: Record<string, unknown>): Promise<ToolResult> {
|
|
374
|
-
const id = args['id'] as string;
|
|
375
|
-
|
|
376
|
-
// Check platform
|
|
377
|
-
if (!isNativeWindows()) {
|
|
378
|
-
return {
|
|
379
|
-
success: false,
|
|
380
|
-
error: 'powershell_background_kill tool is only available on Native Windows.',
|
|
381
|
-
};
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
if (id === 'all') {
|
|
385
|
-
const killed = backgroundPowerShellProcessManager.killAll();
|
|
386
|
-
return {
|
|
387
|
-
success: true,
|
|
388
|
-
result: `Killed ${killed} background PowerShell process(es).`,
|
|
389
|
-
};
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
const success = backgroundPowerShellProcessManager.kill(id);
|
|
393
|
-
|
|
394
|
-
if (!success) {
|
|
395
|
-
return {
|
|
396
|
-
success: false,
|
|
397
|
-
error: `No background process found with ID: ${id}`,
|
|
398
|
-
};
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
return {
|
|
402
|
-
success: true,
|
|
403
|
-
result: `Background process ${id} has been killed.`,
|
|
404
|
-
};
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
export const powershellBackgroundKillTool: LLMSimpleTool = {
|
|
408
|
-
definition: POWERSHELL_BACKGROUND_KILL_DEFINITION,
|
|
409
|
-
execute: executePowerShellBackgroundKill,
|
|
410
|
-
categories: ['llm-simple'] as ToolCategory[],
|
|
411
|
-
description: 'Kill background PowerShell process',
|
|
412
|
-
};
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* All background PowerShell tools
|
|
416
|
-
*/
|
|
417
|
-
export const BACKGROUND_POWERSHELL_TOOLS: LLMSimpleTool[] = [
|
|
418
|
-
powershellBackgroundTool,
|
|
419
|
-
powershellBackgroundStatusTool,
|
|
420
|
-
powershellBackgroundKillTool,
|
|
421
|
-
];
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bash Tool (WSL/Linux Only)
|
|
3
|
-
*
|
|
4
|
-
* Tool that allows LLM to execute bash shell commands
|
|
5
|
-
* Only registered in WSL and Native Linux environments
|
|
6
|
-
* Native Windows uses powershell tool instead
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { spawn } from 'child_process';
|
|
10
|
-
import * as fs from 'fs';
|
|
11
|
-
import { ToolDefinition } from '../../../types/index.js';
|
|
12
|
-
import { LLMSimpleTool, ToolResult, ToolCategory } from '../../types.js';
|
|
13
|
-
import { logger } from '../../../utils/logger.js';
|
|
14
|
-
import { isNativeWindows, isDangerousBashCommand } from '../../../utils/platform-utils.js';
|
|
15
|
-
import { filterSafeEnv } from '../../../utils/env-filter.js';
|
|
16
|
-
import { configManager } from '../../../core/config/config-manager.js';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Execute bash command (WSL/Linux only)
|
|
20
|
-
*/
|
|
21
|
-
async function executeBash(
|
|
22
|
-
command: string,
|
|
23
|
-
cwd?: string,
|
|
24
|
-
timeout: number = 30000,
|
|
25
|
-
explicitEnv?: Record<string, string>
|
|
26
|
-
): Promise<{ stdout: string; stderr: string; exitCode: number }> {
|
|
27
|
-
return new Promise((resolve, reject) => {
|
|
28
|
-
// Always use bash on WSL/Linux
|
|
29
|
-
const shell = '/bin/bash';
|
|
30
|
-
const shellArgs = ['-c', command];
|
|
31
|
-
|
|
32
|
-
// Get user-configured safe env vars
|
|
33
|
-
const userSafeVars = configManager.getSafeEnvVars();
|
|
34
|
-
|
|
35
|
-
const child = spawn(shell, shellArgs, {
|
|
36
|
-
cwd: cwd || process.cwd(),
|
|
37
|
-
env: filterSafeEnv(process.env, userSafeVars, explicitEnv || {}), // Merge: filtered process.env + user config + explicit vars
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
let stdout = '';
|
|
41
|
-
let stderr = '';
|
|
42
|
-
let killed = false;
|
|
43
|
-
|
|
44
|
-
child.stdout?.on('data', (data) => {
|
|
45
|
-
stdout += data.toString();
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
child.stderr?.on('data', (data) => {
|
|
49
|
-
stderr += data.toString();
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
child.on('close', (code) => {
|
|
53
|
-
if (!killed) {
|
|
54
|
-
resolve({
|
|
55
|
-
stdout: stdout.trim(),
|
|
56
|
-
stderr: stderr.trim(),
|
|
57
|
-
exitCode: code ?? 0,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
child.on('error', (error) => {
|
|
63
|
-
reject(error);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
// Timeout handling
|
|
67
|
-
const timer = setTimeout(() => {
|
|
68
|
-
killed = true;
|
|
69
|
-
child.kill('SIGTERM');
|
|
70
|
-
reject(new Error(`Command timed out after ${timeout}ms`));
|
|
71
|
-
}, timeout);
|
|
72
|
-
|
|
73
|
-
child.on('close', () => {
|
|
74
|
-
clearTimeout(timer);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Bash Tool Definition
|
|
81
|
-
*/
|
|
82
|
-
const BASH_TOOL_DEFINITION: ToolDefinition = {
|
|
83
|
-
type: 'function',
|
|
84
|
-
function: {
|
|
85
|
-
name: 'bash',
|
|
86
|
-
description: `Execute a shell command. Use this to run terminal commands like git, npm, docker, python, etc.
|
|
87
|
-
|
|
88
|
-
IMPORTANT:
|
|
89
|
-
- Do NOT use for file reading/writing - use read_file, create_file, edit_file instead
|
|
90
|
-
- Commands have a 30 second timeout by default
|
|
91
|
-
- Dangerous commands (rm -rf /, sudo rm, etc.) are blocked
|
|
92
|
-
- Output is truncated if too long`,
|
|
93
|
-
parameters: {
|
|
94
|
-
type: 'object',
|
|
95
|
-
properties: {
|
|
96
|
-
reason: {
|
|
97
|
-
type: 'string',
|
|
98
|
-
description: `A natural, conversational explanation for the user about what you're doing (in user's language).
|
|
99
|
-
Write as if you're talking to the user directly.
|
|
100
|
-
Examples:
|
|
101
|
-
- "Installing project dependencies"
|
|
102
|
-
- "Running tests to check the results"
|
|
103
|
-
- "Checking git status"
|
|
104
|
-
- "Running the build"`,
|
|
105
|
-
},
|
|
106
|
-
command: {
|
|
107
|
-
type: 'string',
|
|
108
|
-
description: 'The shell command to execute',
|
|
109
|
-
},
|
|
110
|
-
cwd: {
|
|
111
|
-
type: 'string',
|
|
112
|
-
description: 'Working directory for the command (optional, defaults to current directory)',
|
|
113
|
-
},
|
|
114
|
-
timeout: {
|
|
115
|
-
type: 'number',
|
|
116
|
-
description: 'Timeout in milliseconds (optional, default: 30000)',
|
|
117
|
-
},
|
|
118
|
-
env: {
|
|
119
|
-
type: 'object',
|
|
120
|
-
description: 'Environment variables to set for this command (optional). These will be merged with safe system env vars.',
|
|
121
|
-
additionalProperties: {
|
|
122
|
-
type: 'string',
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
required: ['reason', 'command'],
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Bash Tool (LLM Simple)
|
|
133
|
-
*/
|
|
134
|
-
export const bashTool: LLMSimpleTool = {
|
|
135
|
-
definition: BASH_TOOL_DEFINITION,
|
|
136
|
-
categories: ['llm-simple'] as ToolCategory[],
|
|
137
|
-
|
|
138
|
-
async execute(args: Record<string, unknown>): Promise<ToolResult> {
|
|
139
|
-
const command = args['command'] as string;
|
|
140
|
-
const cwd = args['cwd'] as string | undefined;
|
|
141
|
-
const timeout = (args['timeout'] as number) || 30000;
|
|
142
|
-
const env = args['env'] as Record<string, string> | undefined;
|
|
143
|
-
|
|
144
|
-
logger.enter('bashTool.execute', { command, cwd, timeout, envKeys: env ? Object.keys(env) : [] });
|
|
145
|
-
|
|
146
|
-
// Check platform - should only run on WSL/Linux
|
|
147
|
-
if (isNativeWindows()) {
|
|
148
|
-
return {
|
|
149
|
-
success: false,
|
|
150
|
-
error: 'bash tool is not available on Native Windows. Use powershell instead.',
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Validate command
|
|
155
|
-
if (!command || typeof command !== 'string') {
|
|
156
|
-
return {
|
|
157
|
-
success: false,
|
|
158
|
-
error: 'command is required and must be a string',
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// Check for dangerous commands
|
|
163
|
-
if (isDangerousBashCommand(command)) {
|
|
164
|
-
logger.warn('Dangerous command blocked', { command });
|
|
165
|
-
return {
|
|
166
|
-
success: false,
|
|
167
|
-
error: 'This command is blocked for safety reasons',
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Validate cwd exists and is a directory
|
|
172
|
-
if (cwd) {
|
|
173
|
-
if (!fs.existsSync(cwd)) {
|
|
174
|
-
logger.warn('Invalid cwd provided (does not exist)', { cwd });
|
|
175
|
-
return {
|
|
176
|
-
success: false,
|
|
177
|
-
error: `Working directory does not exist: ${cwd}`,
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
if (!fs.statSync(cwd).isDirectory()) {
|
|
181
|
-
logger.warn('Invalid cwd provided (not a directory)', { cwd });
|
|
182
|
-
return {
|
|
183
|
-
success: false,
|
|
184
|
-
error: `Working directory path is not a directory: ${cwd}`,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
try {
|
|
190
|
-
const execResult = await executeBash(command, cwd, timeout, env);
|
|
191
|
-
|
|
192
|
-
// Combine output
|
|
193
|
-
let output = '';
|
|
194
|
-
if (execResult.stdout) {
|
|
195
|
-
output += execResult.stdout;
|
|
196
|
-
}
|
|
197
|
-
if (execResult.stderr) {
|
|
198
|
-
output += (output ? '\n\n' : '') + `stderr:\n${execResult.stderr}`;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Truncate if too long
|
|
202
|
-
const MAX_OUTPUT_LENGTH = 50000;
|
|
203
|
-
if (output.length > MAX_OUTPUT_LENGTH) {
|
|
204
|
-
output = output.slice(0, MAX_OUTPUT_LENGTH) + '\n\n... [output truncated]';
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Add exit code if non-zero
|
|
208
|
-
if (execResult.exitCode !== 0) {
|
|
209
|
-
output += `\n\n[Exit code: ${execResult.exitCode}]`;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
logger.exit('bashTool.execute', { exitCode: execResult.exitCode, outputLength: output.length });
|
|
213
|
-
|
|
214
|
-
// Return with error field when command fails
|
|
215
|
-
if (execResult.exitCode !== 0) {
|
|
216
|
-
return {
|
|
217
|
-
success: false,
|
|
218
|
-
error: output || '(no output)',
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return {
|
|
223
|
-
success: true,
|
|
224
|
-
result: output || '(no output)',
|
|
225
|
-
};
|
|
226
|
-
} catch (error) {
|
|
227
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
228
|
-
logger.error('bashTool.execute failed', error as Error);
|
|
229
|
-
|
|
230
|
-
return {
|
|
231
|
-
success: false,
|
|
232
|
-
error: `Error executing command: ${errorMessage}`,
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
},
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
export default bashTool;
|