orquesta-cli 0.1.12
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/.eslintrc.json +26 -0
- package/.prettierrc.json +10 -0
- package/CLAUDE.md +199 -0
- package/LICENSE +21 -0
- package/README.md +280 -0
- package/SECURITY.md +290 -0
- package/TEST_LOCAL.md +245 -0
- package/dist/agents/base/base-agent.d.ts +38 -0
- package/dist/agents/base/base-agent.d.ts.map +1 -0
- package/dist/agents/base/base-agent.js +69 -0
- package/dist/agents/base/base-agent.js.map +1 -0
- package/dist/agents/docs-search/index.d.ts +33 -0
- package/dist/agents/docs-search/index.d.ts.map +1 -0
- package/dist/agents/docs-search/index.js +244 -0
- package/dist/agents/docs-search/index.js.map +1 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/planner/index.d.ts +17 -0
- package/dist/agents/planner/index.d.ts.map +1 -0
- package/dist/agents/planner/index.js +250 -0
- package/dist/agents/planner/index.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +144 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/compact/compact-manager.d.ts +22 -0
- package/dist/core/compact/compact-manager.d.ts.map +1 -0
- package/dist/core/compact/compact-manager.js +75 -0
- package/dist/core/compact/compact-manager.js.map +1 -0
- package/dist/core/compact/compact-prompts.d.ts +11 -0
- package/dist/core/compact/compact-prompts.d.ts.map +1 -0
- package/dist/core/compact/compact-prompts.js +90 -0
- package/dist/core/compact/compact-prompts.js.map +1 -0
- package/dist/core/compact/context-tracker.d.ts +28 -0
- package/dist/core/compact/context-tracker.d.ts.map +1 -0
- package/dist/core/compact/context-tracker.js +71 -0
- package/dist/core/compact/context-tracker.js.map +1 -0
- package/dist/core/compact/index.d.ts +4 -0
- package/dist/core/compact/index.d.ts.map +1 -0
- package/dist/core/compact/index.js +4 -0
- package/dist/core/compact/index.js.map +1 -0
- package/dist/core/config/config-manager.d.ts +44 -0
- package/dist/core/config/config-manager.d.ts.map +1 -0
- package/dist/core/config/config-manager.js +259 -0
- package/dist/core/config/config-manager.js.map +1 -0
- package/dist/core/config/index.d.ts +2 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +2 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/docs-manager.d.ts +46 -0
- package/dist/core/docs-manager.d.ts.map +1 -0
- package/dist/core/docs-manager.js +475 -0
- package/dist/core/docs-manager.js.map +1 -0
- package/dist/core/git-auto-updater.d.ts +58 -0
- package/dist/core/git-auto-updater.d.ts.map +1 -0
- package/dist/core/git-auto-updater.js +374 -0
- package/dist/core/git-auto-updater.js.map +1 -0
- package/dist/core/llm/index.d.ts +2 -0
- package/dist/core/llm/index.d.ts.map +1 -0
- package/dist/core/llm/index.js +2 -0
- package/dist/core/llm/index.js.map +1 -0
- package/dist/core/llm/llm-client.d.ts +97 -0
- package/dist/core/llm/llm-client.d.ts.map +1 -0
- package/dist/core/llm/llm-client.js +1000 -0
- package/dist/core/llm/llm-client.js.map +1 -0
- package/dist/core/session/index.d.ts +2 -0
- package/dist/core/session/index.d.ts.map +1 -0
- package/dist/core/session/index.js +2 -0
- package/dist/core/session/index.js.map +1 -0
- package/dist/core/session/session-manager.d.ts +71 -0
- package/dist/core/session/session-manager.d.ts.map +1 -0
- package/dist/core/session/session-manager.js +250 -0
- package/dist/core/session/session-manager.js.map +1 -0
- package/dist/core/slash-command-handler.d.ts +31 -0
- package/dist/core/slash-command-handler.d.ts.map +1 -0
- package/dist/core/slash-command-handler.js +302 -0
- package/dist/core/slash-command-handler.js.map +1 -0
- package/dist/core/usage-tracker.d.ts +70 -0
- package/dist/core/usage-tracker.d.ts.map +1 -0
- package/dist/core/usage-tracker.js +251 -0
- package/dist/core/usage-tracker.js.map +1 -0
- package/dist/errors/base.d.ts +22 -0
- package/dist/errors/base.d.ts.map +1 -0
- package/dist/errors/base.js +43 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/file.d.ts +31 -0
- package/dist/errors/file.d.ts.map +1 -0
- package/dist/errors/file.js +110 -0
- package/dist/errors/file.js.map +1 -0
- package/dist/errors/index.d.ts +10 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +41 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/llm.d.ts +26 -0
- package/dist/errors/llm.d.ts.map +1 -0
- package/dist/errors/llm.js +86 -0
- package/dist/errors/llm.js.map +1 -0
- package/dist/errors/network.d.ts +19 -0
- package/dist/errors/network.d.ts.map +1 -0
- package/dist/errors/network.js +82 -0
- package/dist/errors/network.js.map +1 -0
- package/dist/errors/validation.d.ts +19 -0
- package/dist/errors/validation.d.ts.map +1 -0
- package/dist/errors/validation.js +62 -0
- package/dist/errors/validation.js.map +1 -0
- package/dist/eval/eval-runner.d.ts +24 -0
- package/dist/eval/eval-runner.d.ts.map +1 -0
- package/dist/eval/eval-runner.js +309 -0
- package/dist/eval/eval-runner.js.map +1 -0
- package/dist/eval/index.d.ts +3 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +3 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/types.d.ts +77 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +2 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestration/index.d.ts +4 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +3 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/plan-executor.d.ts +28 -0
- package/dist/orchestration/plan-executor.d.ts.map +1 -0
- package/dist/orchestration/plan-executor.js +382 -0
- package/dist/orchestration/plan-executor.js.map +1 -0
- package/dist/orchestration/types.d.ts +66 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/orchestration/types.js +2 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/orchestration/utils.d.ts +13 -0
- package/dist/orchestration/utils.d.ts.map +1 -0
- package/dist/orchestration/utils.js +78 -0
- package/dist/orchestration/utils.js.map +1 -0
- package/dist/orquesta/connection.d.ts +35 -0
- package/dist/orquesta/connection.d.ts.map +1 -0
- package/dist/orquesta/connection.js +189 -0
- package/dist/orquesta/connection.js.map +1 -0
- package/dist/prompts/agents/docs-search-decision.d.ts +6 -0
- package/dist/prompts/agents/docs-search-decision.d.ts.map +1 -0
- package/dist/prompts/agents/docs-search-decision.js +46 -0
- package/dist/prompts/agents/docs-search-decision.js.map +1 -0
- package/dist/prompts/agents/docs-search.d.ts +4 -0
- package/dist/prompts/agents/docs-search.d.ts.map +1 -0
- package/dist/prompts/agents/docs-search.js +70 -0
- package/dist/prompts/agents/docs-search.js.map +1 -0
- package/dist/prompts/agents/planning.d.ts +4 -0
- package/dist/prompts/agents/planning.d.ts.map +1 -0
- package/dist/prompts/agents/planning.js +119 -0
- package/dist/prompts/agents/planning.js.map +1 -0
- package/dist/prompts/index.d.ts +10 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +10 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/shared/codebase-rules.d.ts +4 -0
- package/dist/prompts/shared/codebase-rules.d.ts.map +1 -0
- package/dist/prompts/shared/codebase-rules.js +16 -0
- package/dist/prompts/shared/codebase-rules.js.map +1 -0
- package/dist/prompts/shared/git-rules.d.ts +2 -0
- package/dist/prompts/shared/git-rules.d.ts.map +1 -0
- package/dist/prompts/shared/git-rules.js +87 -0
- package/dist/prompts/shared/git-rules.js.map +1 -0
- package/dist/prompts/shared/language-rules.d.ts +4 -0
- package/dist/prompts/shared/language-rules.d.ts.map +1 -0
- package/dist/prompts/shared/language-rules.js +22 -0
- package/dist/prompts/shared/language-rules.js.map +1 -0
- package/dist/prompts/shared/tool-usage.d.ts +12 -0
- package/dist/prompts/shared/tool-usage.d.ts.map +1 -0
- package/dist/prompts/shared/tool-usage.js +51 -0
- package/dist/prompts/shared/tool-usage.js.map +1 -0
- package/dist/prompts/system/compact.d.ts +3 -0
- package/dist/prompts/system/compact.d.ts.map +1 -0
- package/dist/prompts/system/compact.js +73 -0
- package/dist/prompts/system/compact.js.map +1 -0
- package/dist/prompts/system/plan-execute.d.ts +3 -0
- package/dist/prompts/system/plan-execute.d.ts.map +1 -0
- package/dist/prompts/system/plan-execute.js +83 -0
- package/dist/prompts/system/plan-execute.js.map +1 -0
- package/dist/tools/browser/browser-client.d.ts +107 -0
- package/dist/tools/browser/browser-client.d.ts.map +1 -0
- package/dist/tools/browser/browser-client.js +958 -0
- package/dist/tools/browser/browser-client.js.map +1 -0
- package/dist/tools/browser/browser-tools.d.ts +17 -0
- package/dist/tools/browser/browser-tools.d.ts.map +1 -0
- package/dist/tools/browser/browser-tools.js +972 -0
- package/dist/tools/browser/browser-tools.js.map +1 -0
- package/dist/tools/browser/index.d.ts +7 -0
- package/dist/tools/browser/index.d.ts.map +1 -0
- package/dist/tools/browser/index.js +17 -0
- package/dist/tools/browser/index.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/llm/agents/docs-search-tools.d.ts +17 -0
- package/dist/tools/llm/agents/docs-search-tools.d.ts.map +1 -0
- package/dist/tools/llm/agents/docs-search-tools.js +265 -0
- package/dist/tools/llm/agents/docs-search-tools.js.map +1 -0
- package/dist/tools/llm/agents/index.d.ts +4 -0
- package/dist/tools/llm/agents/index.d.ts.map +1 -0
- package/dist/tools/llm/agents/index.js +3 -0
- package/dist/tools/llm/agents/index.js.map +1 -0
- package/dist/tools/llm/index.d.ts +3 -0
- package/dist/tools/llm/index.d.ts.map +1 -0
- package/dist/tools/llm/index.js +3 -0
- package/dist/tools/llm/index.js.map +1 -0
- package/dist/tools/llm/simple/ask-user-tool.d.ts +5 -0
- package/dist/tools/llm/simple/ask-user-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/ask-user-tool.js +7 -0
- package/dist/tools/llm/simple/ask-user-tool.js.map +1 -0
- package/dist/tools/llm/simple/background-bash-tool.d.ts +30 -0
- package/dist/tools/llm/simple/background-bash-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/background-bash-tool.js +323 -0
- package/dist/tools/llm/simple/background-bash-tool.js.map +1 -0
- package/dist/tools/llm/simple/background-powershell-tool.d.ts +30 -0
- package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/background-powershell-tool.js +305 -0
- package/dist/tools/llm/simple/background-powershell-tool.js.map +1 -0
- package/dist/tools/llm/simple/bash-tool.d.ts +4 -0
- package/dist/tools/llm/simple/bash-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/bash-tool.js +178 -0
- package/dist/tools/llm/simple/bash-tool.js.map +1 -0
- package/dist/tools/llm/simple/docs-search-agent-tool.d.ts +6 -0
- package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/docs-search-agent-tool.js +104 -0
- package/dist/tools/llm/simple/docs-search-agent-tool.js.map +1 -0
- package/dist/tools/llm/simple/file-tools.d.ts +13 -0
- package/dist/tools/llm/simple/file-tools.d.ts.map +1 -0
- package/dist/tools/llm/simple/file-tools.js +785 -0
- package/dist/tools/llm/simple/file-tools.js.map +1 -0
- package/dist/tools/llm/simple/final-response-tool.d.ts +12 -0
- package/dist/tools/llm/simple/final-response-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/final-response-tool.js +107 -0
- package/dist/tools/llm/simple/final-response-tool.js.map +1 -0
- package/dist/tools/llm/simple/index.d.ts +11 -0
- package/dist/tools/llm/simple/index.d.ts.map +1 -0
- package/dist/tools/llm/simple/index.js +20 -0
- package/dist/tools/llm/simple/index.js.map +1 -0
- package/dist/tools/llm/simple/planning-tools.d.ts +5 -0
- package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -0
- package/dist/tools/llm/simple/planning-tools.js +117 -0
- package/dist/tools/llm/simple/planning-tools.js.map +1 -0
- package/dist/tools/llm/simple/powershell-tool.d.ts +4 -0
- package/dist/tools/llm/simple/powershell-tool.d.ts.map +1 -0
- package/dist/tools/llm/simple/powershell-tool.js +178 -0
- package/dist/tools/llm/simple/powershell-tool.js.map +1 -0
- package/dist/tools/llm/simple/simple-tool-executor.d.ts +38 -0
- package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +1 -0
- package/dist/tools/llm/simple/simple-tool-executor.js +134 -0
- package/dist/tools/llm/simple/simple-tool-executor.js.map +1 -0
- package/dist/tools/llm/simple/todo-tools.d.ts +15 -0
- package/dist/tools/llm/simple/todo-tools.d.ts.map +1 -0
- package/dist/tools/llm/simple/todo-tools.js +145 -0
- package/dist/tools/llm/simple/todo-tools.js.map +1 -0
- package/dist/tools/llm/simple/user-interaction-tools.d.ts +22 -0
- package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +1 -0
- package/dist/tools/llm/simple/user-interaction-tools.js +168 -0
- package/dist/tools/llm/simple/user-interaction-tools.js.map +1 -0
- package/dist/tools/office/common/constants.d.ts +194 -0
- package/dist/tools/office/common/constants.d.ts.map +1 -0
- package/dist/tools/office/common/constants.js +169 -0
- package/dist/tools/office/common/constants.js.map +1 -0
- package/dist/tools/office/common/index.d.ts +4 -0
- package/dist/tools/office/common/index.d.ts.map +1 -0
- package/dist/tools/office/common/index.js +3 -0
- package/dist/tools/office/common/index.js.map +1 -0
- package/dist/tools/office/common/types.d.ts +82 -0
- package/dist/tools/office/common/types.d.ts.map +1 -0
- package/dist/tools/office/common/types.js +2 -0
- package/dist/tools/office/common/types.js.map +1 -0
- package/dist/tools/office/common/utils.d.ts +14 -0
- package/dist/tools/office/common/utils.d.ts.map +1 -0
- package/dist/tools/office/common/utils.js +58 -0
- package/dist/tools/office/common/utils.js.map +1 -0
- package/dist/tools/office/excel-client.d.ts +123 -0
- package/dist/tools/office/excel-client.d.ts.map +1 -0
- package/dist/tools/office/excel-client.js +1037 -0
- package/dist/tools/office/excel-client.js.map +1 -0
- package/dist/tools/office/excel-tools/cells.d.ts +10 -0
- package/dist/tools/office/excel-tools/cells.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/cells.js +279 -0
- package/dist/tools/office/excel-tools/cells.js.map +1 -0
- package/dist/tools/office/excel-tools/charts.d.ts +6 -0
- package/dist/tools/office/excel-tools/charts.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/charts.js +124 -0
- package/dist/tools/office/excel-tools/charts.js.map +1 -0
- package/dist/tools/office/excel-tools/comments.d.ts +6 -0
- package/dist/tools/office/excel-tools/comments.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/comments.js +114 -0
- package/dist/tools/office/excel-tools/comments.js.map +1 -0
- package/dist/tools/office/excel-tools/data-ops.d.ts +10 -0
- package/dist/tools/office/excel-tools/data-ops.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/data-ops.js +266 -0
- package/dist/tools/office/excel-tools/data-ops.js.map +1 -0
- package/dist/tools/office/excel-tools/export.d.ts +5 -0
- package/dist/tools/office/excel-tools/export.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/export.js +75 -0
- package/dist/tools/office/excel-tools/export.js.map +1 -0
- package/dist/tools/office/excel-tools/formatting.d.ts +10 -0
- package/dist/tools/office/excel-tools/formatting.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/formatting.js +276 -0
- package/dist/tools/office/excel-tools/formatting.js.map +1 -0
- package/dist/tools/office/excel-tools/index.d.ts +16 -0
- package/dist/tools/office/excel-tools/index.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/index.js +42 -0
- package/dist/tools/office/excel-tools/index.js.map +1 -0
- package/dist/tools/office/excel-tools/launch.d.ts +10 -0
- package/dist/tools/office/excel-tools/launch.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/launch.js +248 -0
- package/dist/tools/office/excel-tools/launch.js.map +1 -0
- package/dist/tools/office/excel-tools/media.d.ts +5 -0
- package/dist/tools/office/excel-tools/media.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/media.js +84 -0
- package/dist/tools/office/excel-tools/media.js.map +1 -0
- package/dist/tools/office/excel-tools/named-ranges.d.ts +6 -0
- package/dist/tools/office/excel-tools/named-ranges.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/named-ranges.js +113 -0
- package/dist/tools/office/excel-tools/named-ranges.js.map +1 -0
- package/dist/tools/office/excel-tools/protection.d.ts +5 -0
- package/dist/tools/office/excel-tools/protection.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/protection.js +75 -0
- package/dist/tools/office/excel-tools/protection.js.map +1 -0
- package/dist/tools/office/excel-tools/rows-columns.d.ts +11 -0
- package/dist/tools/office/excel-tools/rows-columns.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/rows-columns.js +293 -0
- package/dist/tools/office/excel-tools/rows-columns.js.map +1 -0
- package/dist/tools/office/excel-tools/sheets.d.ts +8 -0
- package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/sheets.js +177 -0
- package/dist/tools/office/excel-tools/sheets.js.map +1 -0
- package/dist/tools/office/excel-tools/validation.d.ts +7 -0
- package/dist/tools/office/excel-tools/validation.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/validation.js +175 -0
- package/dist/tools/office/excel-tools/validation.js.map +1 -0
- package/dist/tools/office/excel-tools.d.ts +3 -0
- package/dist/tools/office/excel-tools.d.ts.map +1 -0
- package/dist/tools/office/excel-tools.js +3 -0
- package/dist/tools/office/excel-tools.js.map +1 -0
- package/dist/tools/office/index.d.ts +6 -0
- package/dist/tools/office/index.d.ts.map +1 -0
- package/dist/tools/office/index.js +9 -0
- package/dist/tools/office/index.js.map +1 -0
- package/dist/tools/office/office-client-base.d.ts +31 -0
- package/dist/tools/office/office-client-base.d.ts.map +1 -0
- package/dist/tools/office/office-client-base.js +154 -0
- package/dist/tools/office/office-client-base.js.map +1 -0
- package/dist/tools/office/office-client.d.ts +196 -0
- package/dist/tools/office/office-client.d.ts.map +1 -0
- package/dist/tools/office/office-client.js +200 -0
- package/dist/tools/office/office-client.js.map +1 -0
- package/dist/tools/office/powerpoint-client.d.ts +135 -0
- package/dist/tools/office/powerpoint-client.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-client.js +1136 -0
- package/dist/tools/office/powerpoint-client.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/effects.d.ts +9 -0
- package/dist/tools/office/powerpoint-tools/effects.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/effects.js +246 -0
- package/dist/tools/office/powerpoint-tools/effects.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/export.d.ts +6 -0
- package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/export.js +108 -0
- package/dist/tools/office/powerpoint-tools/export.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/index.d.ts +13 -0
- package/dist/tools/office/powerpoint-tools/index.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/index.js +33 -0
- package/dist/tools/office/powerpoint-tools/index.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/launch.d.ts +9 -0
- package/dist/tools/office/powerpoint-tools/launch.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/launch.js +214 -0
- package/dist/tools/office/powerpoint-tools/launch.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/media.d.ts +8 -0
- package/dist/tools/office/powerpoint-tools/media.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/media.js +211 -0
- package/dist/tools/office/powerpoint-tools/media.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/notes.d.ts +8 -0
- package/dist/tools/office/powerpoint-tools/notes.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/notes.js +171 -0
- package/dist/tools/office/powerpoint-tools/notes.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/sections.d.ts +6 -0
- package/dist/tools/office/powerpoint-tools/sections.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/sections.js +104 -0
- package/dist/tools/office/powerpoint-tools/sections.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/shapes.d.ts +22 -0
- package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/shapes.js +681 -0
- package/dist/tools/office/powerpoint-tools/shapes.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/slides.d.ts +11 -0
- package/dist/tools/office/powerpoint-tools/slides.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/slides.js +283 -0
- package/dist/tools/office/powerpoint-tools/slides.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/tables.d.ts +6 -0
- package/dist/tools/office/powerpoint-tools/tables.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/tables.js +132 -0
- package/dist/tools/office/powerpoint-tools/tables.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/text.d.ts +12 -0
- package/dist/tools/office/powerpoint-tools/text.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/text.js +366 -0
- package/dist/tools/office/powerpoint-tools/text.js.map +1 -0
- package/dist/tools/office/powerpoint-tools.d.ts +3 -0
- package/dist/tools/office/powerpoint-tools.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools.js +3 -0
- package/dist/tools/office/powerpoint-tools.js.map +1 -0
- package/dist/tools/office/word-client.d.ts +147 -0
- package/dist/tools/office/word-client.d.ts.map +1 -0
- package/dist/tools/office/word-client.js +1341 -0
- package/dist/tools/office/word-client.js.map +1 -0
- package/dist/tools/office/word-tools/bookmarks.d.ts +7 -0
- package/dist/tools/office/word-tools/bookmarks.d.ts.map +1 -0
- package/dist/tools/office/word-tools/bookmarks.js +146 -0
- package/dist/tools/office/word-tools/bookmarks.js.map +1 -0
- package/dist/tools/office/word-tools/comments.d.ts +7 -0
- package/dist/tools/office/word-tools/comments.d.ts.map +1 -0
- package/dist/tools/office/word-tools/comments.js +146 -0
- package/dist/tools/office/word-tools/comments.js.map +1 -0
- package/dist/tools/office/word-tools/content.d.ts +7 -0
- package/dist/tools/office/word-tools/content.d.ts.map +1 -0
- package/dist/tools/office/word-tools/content.js +168 -0
- package/dist/tools/office/word-tools/content.js.map +1 -0
- package/dist/tools/office/word-tools/export.d.ts +5 -0
- package/dist/tools/office/word-tools/export.d.ts.map +1 -0
- package/dist/tools/office/word-tools/export.js +73 -0
- package/dist/tools/office/word-tools/export.js.map +1 -0
- package/dist/tools/office/word-tools/formatting.d.ts +6 -0
- package/dist/tools/office/word-tools/formatting.d.ts.map +1 -0
- package/dist/tools/office/word-tools/formatting.js +129 -0
- package/dist/tools/office/word-tools/formatting.js.map +1 -0
- package/dist/tools/office/word-tools/headers-footers.d.ts +6 -0
- package/dist/tools/office/word-tools/headers-footers.d.ts.map +1 -0
- package/dist/tools/office/word-tools/headers-footers.js +117 -0
- package/dist/tools/office/word-tools/headers-footers.js.map +1 -0
- package/dist/tools/office/word-tools/index.d.ts +16 -0
- package/dist/tools/office/word-tools/index.d.ts.map +1 -0
- package/dist/tools/office/word-tools/index.js +45 -0
- package/dist/tools/office/word-tools/index.js.map +1 -0
- package/dist/tools/office/word-tools/launch.d.ts +10 -0
- package/dist/tools/office/word-tools/launch.d.ts.map +1 -0
- package/dist/tools/office/word-tools/launch.js +255 -0
- package/dist/tools/office/word-tools/launch.js.map +1 -0
- package/dist/tools/office/word-tools/lists.d.ts +5 -0
- package/dist/tools/office/word-tools/lists.d.ts.map +1 -0
- package/dist/tools/office/word-tools/lists.js +73 -0
- package/dist/tools/office/word-tools/lists.js.map +1 -0
- package/dist/tools/office/word-tools/navigation.d.ts +5 -0
- package/dist/tools/office/word-tools/navigation.d.ts.map +1 -0
- package/dist/tools/office/word-tools/navigation.js +85 -0
- package/dist/tools/office/word-tools/navigation.js.map +1 -0
- package/dist/tools/office/word-tools/page-setup.d.ts +7 -0
- package/dist/tools/office/word-tools/page-setup.d.ts.map +1 -0
- package/dist/tools/office/word-tools/page-setup.js +152 -0
- package/dist/tools/office/word-tools/page-setup.js.map +1 -0
- package/dist/tools/office/word-tools/tables.d.ts +8 -0
- package/dist/tools/office/word-tools/tables.d.ts.map +1 -0
- package/dist/tools/office/word-tools/tables.js +197 -0
- package/dist/tools/office/word-tools/tables.js.map +1 -0
- package/dist/tools/office/word-tools/text.d.ts +9 -0
- package/dist/tools/office/word-tools/text.d.ts.map +1 -0
- package/dist/tools/office/word-tools/text.js +235 -0
- package/dist/tools/office/word-tools/text.js.map +1 -0
- package/dist/tools/office/word-tools/undo-redo.d.ts +5 -0
- package/dist/tools/office/word-tools/undo-redo.d.ts.map +1 -0
- package/dist/tools/office/word-tools/undo-redo.js +73 -0
- package/dist/tools/office/word-tools/undo-redo.js.map +1 -0
- package/dist/tools/office/word-tools/watermarks.d.ts +5 -0
- package/dist/tools/office/word-tools/watermarks.d.ts.map +1 -0
- package/dist/tools/office/word-tools/watermarks.js +81 -0
- package/dist/tools/office/word-tools/watermarks.js.map +1 -0
- package/dist/tools/office/word-tools.d.ts +3 -0
- package/dist/tools/office/word-tools.d.ts.map +1 -0
- package/dist/tools/office/word-tools.js +3 -0
- package/dist/tools/office/word-tools.js.map +1 -0
- package/dist/tools/registry.d.ts +53 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +278 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +88 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +19 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types/index.d.ts +126 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/PlanExecuteView.d.ts +11 -0
- package/dist/ui/PlanExecuteView.d.ts.map +1 -0
- package/dist/ui/PlanExecuteView.js +29 -0
- package/dist/ui/PlanExecuteView.js.map +1 -0
- package/dist/ui/TodoPanel.d.ts +13 -0
- package/dist/ui/TodoPanel.d.ts.map +1 -0
- package/dist/ui/TodoPanel.js +135 -0
- package/dist/ui/TodoPanel.js.map +1 -0
- package/dist/ui/UpdateNotification.d.ts +13 -0
- package/dist/ui/UpdateNotification.d.ts.map +1 -0
- package/dist/ui/UpdateNotification.js +42 -0
- package/dist/ui/UpdateNotification.js.map +1 -0
- package/dist/ui/components/ActivityIndicator.d.ts +25 -0
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -0
- package/dist/ui/components/ActivityIndicator.js +115 -0
- package/dist/ui/components/ActivityIndicator.js.map +1 -0
- package/dist/ui/components/CommandBrowser.d.ts +10 -0
- package/dist/ui/components/CommandBrowser.d.ts.map +1 -0
- package/dist/ui/components/CommandBrowser.js +53 -0
- package/dist/ui/components/CommandBrowser.js.map +1 -0
- package/dist/ui/components/CustomTextInput.d.ts +13 -0
- package/dist/ui/components/CustomTextInput.d.ts.map +1 -0
- package/dist/ui/components/CustomTextInput.js +245 -0
- package/dist/ui/components/CustomTextInput.js.map +1 -0
- package/dist/ui/components/DocsSearchProgress.d.ts +13 -0
- package/dist/ui/components/DocsSearchProgress.d.ts.map +1 -0
- package/dist/ui/components/DocsSearchProgress.js +37 -0
- package/dist/ui/components/DocsSearchProgress.js.map +1 -0
- package/dist/ui/components/FileBrowser.d.ts +11 -0
- package/dist/ui/components/FileBrowser.d.ts.map +1 -0
- package/dist/ui/components/FileBrowser.js +45 -0
- package/dist/ui/components/FileBrowser.js.map +1 -0
- package/dist/ui/components/LLMSetupWizard.d.ts +8 -0
- package/dist/ui/components/LLMSetupWizard.d.ts.map +1 -0
- package/dist/ui/components/LLMSetupWizard.js +192 -0
- package/dist/ui/components/LLMSetupWizard.js.map +1 -0
- package/dist/ui/components/Logo.d.ts +19 -0
- package/dist/ui/components/Logo.d.ts.map +1 -0
- package/dist/ui/components/Logo.js +55 -0
- package/dist/ui/components/Logo.js.map +1 -0
- package/dist/ui/components/MarkdownRenderer.d.ts +9 -0
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -0
- package/dist/ui/components/MarkdownRenderer.js +198 -0
- package/dist/ui/components/MarkdownRenderer.js.map +1 -0
- package/dist/ui/components/ModelSelector.d.ts +8 -0
- package/dist/ui/components/ModelSelector.d.ts.map +1 -0
- package/dist/ui/components/ModelSelector.js +111 -0
- package/dist/ui/components/ModelSelector.js.map +1 -0
- package/dist/ui/components/PlanExecuteApp.d.ts +23 -0
- package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -0
- package/dist/ui/components/PlanExecuteApp.js +1324 -0
- package/dist/ui/components/PlanExecuteApp.js.map +1 -0
- package/dist/ui/components/ProgressBar.d.ts +10 -0
- package/dist/ui/components/ProgressBar.d.ts.map +1 -0
- package/dist/ui/components/ProgressBar.js +26 -0
- package/dist/ui/components/ProgressBar.js.map +1 -0
- package/dist/ui/components/StatusBar.d.ts +23 -0
- package/dist/ui/components/StatusBar.d.ts.map +1 -0
- package/dist/ui/components/StatusBar.js +162 -0
- package/dist/ui/components/StatusBar.js.map +1 -0
- package/dist/ui/components/ThinkingIndicator.d.ts +14 -0
- package/dist/ui/components/ThinkingIndicator.d.ts.map +1 -0
- package/dist/ui/components/ThinkingIndicator.js +63 -0
- package/dist/ui/components/ThinkingIndicator.js.map +1 -0
- package/dist/ui/components/TodoListView.d.ts +11 -0
- package/dist/ui/components/TodoListView.d.ts.map +1 -0
- package/dist/ui/components/TodoListView.js +69 -0
- package/dist/ui/components/TodoListView.js.map +1 -0
- package/dist/ui/components/ToolSelector.d.ts +7 -0
- package/dist/ui/components/ToolSelector.d.ts.map +1 -0
- package/dist/ui/components/ToolSelector.js +111 -0
- package/dist/ui/components/ToolSelector.js.map +1 -0
- package/dist/ui/components/dialogs/ApprovalDialog.d.ts +13 -0
- package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +1 -0
- package/dist/ui/components/dialogs/ApprovalDialog.js +173 -0
- package/dist/ui/components/dialogs/ApprovalDialog.js.map +1 -0
- package/dist/ui/components/dialogs/AskUserDialog.d.ts +9 -0
- package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +1 -0
- package/dist/ui/components/dialogs/AskUserDialog.js +111 -0
- package/dist/ui/components/dialogs/AskUserDialog.js.map +1 -0
- package/dist/ui/components/dialogs/DocsBrowser.d.ts +8 -0
- package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +1 -0
- package/dist/ui/components/dialogs/DocsBrowser.js +127 -0
- package/dist/ui/components/dialogs/DocsBrowser.js.map +1 -0
- package/dist/ui/components/dialogs/SettingsDialog.d.ts +10 -0
- package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +1 -0
- package/dist/ui/components/dialogs/SettingsDialog.js +563 -0
- package/dist/ui/components/dialogs/SettingsDialog.js.map +1 -0
- package/dist/ui/components/dialogs/index.d.ts +4 -0
- package/dist/ui/components/dialogs/index.d.ts.map +1 -0
- package/dist/ui/components/dialogs/index.js +4 -0
- package/dist/ui/components/dialogs/index.js.map +1 -0
- package/dist/ui/components/index.d.ts +12 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +9 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/components/panels/LogPanel.d.ts +7 -0
- package/dist/ui/components/panels/LogPanel.d.ts.map +1 -0
- package/dist/ui/components/panels/LogPanel.js +280 -0
- package/dist/ui/components/panels/LogPanel.js.map +1 -0
- package/dist/ui/components/panels/SessionPanel.d.ts +8 -0
- package/dist/ui/components/panels/SessionPanel.d.ts.map +1 -0
- package/dist/ui/components/panels/SessionPanel.js +81 -0
- package/dist/ui/components/panels/SessionPanel.js.map +1 -0
- package/dist/ui/components/panels/index.d.ts +4 -0
- package/dist/ui/components/panels/index.d.ts.map +1 -0
- package/dist/ui/components/panels/index.js +4 -0
- package/dist/ui/components/panels/index.js.map +1 -0
- package/dist/ui/components/views/ChatView.d.ts +12 -0
- package/dist/ui/components/views/ChatView.d.ts.map +1 -0
- package/dist/ui/components/views/ChatView.js +289 -0
- package/dist/ui/components/views/ChatView.js.map +1 -0
- package/dist/ui/components/views/index.d.ts +2 -0
- package/dist/ui/components/views/index.d.ts.map +1 -0
- package/dist/ui/components/views/index.js +2 -0
- package/dist/ui/components/views/index.js.map +1 -0
- package/dist/ui/contexts/TokenContext.d.ts +29 -0
- package/dist/ui/contexts/TokenContext.d.ts.map +1 -0
- package/dist/ui/contexts/TokenContext.js +79 -0
- package/dist/ui/contexts/TokenContext.js.map +1 -0
- package/dist/ui/hooks/atFileProcessor.d.ts +15 -0
- package/dist/ui/hooks/atFileProcessor.d.ts.map +1 -0
- package/dist/ui/hooks/atFileProcessor.js +88 -0
- package/dist/ui/hooks/atFileProcessor.js.map +1 -0
- package/dist/ui/hooks/index.d.ts +8 -0
- package/dist/ui/hooks/index.d.ts.map +1 -0
- package/dist/ui/hooks/index.js +8 -0
- package/dist/ui/hooks/index.js.map +1 -0
- package/dist/ui/hooks/slashCommandProcessor.d.ts +21 -0
- package/dist/ui/hooks/slashCommandProcessor.d.ts.map +1 -0
- package/dist/ui/hooks/slashCommandProcessor.js +100 -0
- package/dist/ui/hooks/slashCommandProcessor.js.map +1 -0
- package/dist/ui/hooks/useCommandBrowserState.d.ts +12 -0
- package/dist/ui/hooks/useCommandBrowserState.d.ts.map +1 -0
- package/dist/ui/hooks/useCommandBrowserState.js +66 -0
- package/dist/ui/hooks/useCommandBrowserState.js.map +1 -0
- package/dist/ui/hooks/useFileBrowserState.d.ts +15 -0
- package/dist/ui/hooks/useFileBrowserState.d.ts.map +1 -0
- package/dist/ui/hooks/useFileBrowserState.js +80 -0
- package/dist/ui/hooks/useFileBrowserState.js.map +1 -0
- package/dist/ui/hooks/useFileList.d.ts +20 -0
- package/dist/ui/hooks/useFileList.d.ts.map +1 -0
- package/dist/ui/hooks/useFileList.js +57 -0
- package/dist/ui/hooks/useFileList.js.map +1 -0
- package/dist/ui/hooks/useInputHistory.d.ts +9 -0
- package/dist/ui/hooks/useInputHistory.d.ts.map +1 -0
- package/dist/ui/hooks/useInputHistory.js +68 -0
- package/dist/ui/hooks/useInputHistory.js.map +1 -0
- package/dist/ui/hooks/usePlanExecution.d.ts +8 -0
- package/dist/ui/hooks/usePlanExecution.d.ts.map +1 -0
- package/dist/ui/hooks/usePlanExecution.js +214 -0
- package/dist/ui/hooks/usePlanExecution.js.map +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +7 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/ink-entry.d.ts +3 -0
- package/dist/ui/ink-entry.d.ts.map +1 -0
- package/dist/ui/ink-entry.js +22 -0
- package/dist/ui/ink-entry.js.map +1 -0
- package/dist/utils/env-filter.d.ts +4 -0
- package/dist/utils/env-filter.d.ts.map +1 -0
- package/dist/utils/env-filter.js +101 -0
- package/dist/utils/env-filter.js.map +1 -0
- package/dist/utils/file-system.d.ts +9 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +99 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/git-utils.d.ts +2 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +16 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/dist/utils/json-stream-logger.d.ts +74 -0
- package/dist/utils/json-stream-logger.d.ts.map +1 -0
- package/dist/utils/json-stream-logger.js +808 -0
- package/dist/utils/json-stream-logger.js.map +1 -0
- package/dist/utils/logger.d.ts +152 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +1672 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/platform-utils.d.ts +19 -0
- package/dist/utils/platform-utils.d.ts.map +1 -0
- package/dist/utils/platform-utils.js +134 -0
- package/dist/utils/platform-utils.js.map +1 -0
- package/dist/utils/wsl-utils.d.ts +4 -0
- package/dist/utils/wsl-utils.d.ts.map +1 -0
- package/dist/utils/wsl-utils.js +72 -0
- package/dist/utils/wsl-utils.js.map +1 -0
- package/electron.vite.config.ts +63 -0
- package/google374b9eba0c52b043.html +1 -0
- package/package.json +122 -0
- package/src/agents/base/base-agent.ts +159 -0
- package/src/agents/docs-search/index.ts +365 -0
- package/src/agents/index.ts +34 -0
- package/src/agents/planner/index.ts +544 -0
- package/src/cli.ts +201 -0
- package/src/constants.ts +47 -0
- package/src/core/compact/compact-manager.ts +160 -0
- package/src/core/compact/compact-prompts.ts +150 -0
- package/src/core/compact/context-tracker.ts +164 -0
- package/src/core/compact/index.ts +25 -0
- package/src/core/config/config-manager.ts +460 -0
- package/src/core/config/index.ts +5 -0
- package/src/core/docs-manager.ts +678 -0
- package/src/core/llm/index.ts +7 -0
- package/src/core/llm/llm-client.ts +1550 -0
- package/src/core/session/index.ts +5 -0
- package/src/core/session/session-manager.ts +464 -0
- package/src/core/slash-command-handler.ts +410 -0
- package/src/core/usage-tracker.ts +438 -0
- package/src/errors/base.ts +81 -0
- package/src/errors/file.ts +183 -0
- package/src/errors/index.ts +95 -0
- package/src/errors/llm.ts +151 -0
- package/src/errors/network.ts +124 -0
- package/src/errors/validation.ts +111 -0
- package/src/eval/eval-runner.ts +456 -0
- package/src/eval/index.ts +8 -0
- package/src/eval/types.ts +139 -0
- package/src/index.ts +22 -0
- package/src/orchestration/index.ts +30 -0
- package/src/orchestration/plan-executor.ts +652 -0
- package/src/orchestration/types.ts +127 -0
- package/src/orchestration/utils.ts +119 -0
- package/src/orquesta/connection.ts +291 -0
- package/src/prompts/agents/docs-search-decision.ts +74 -0
- package/src/prompts/agents/docs-search.ts +84 -0
- package/src/prompts/agents/planning.ts +143 -0
- package/src/prompts/index.ts +31 -0
- package/src/prompts/shared/codebase-rules.ts +29 -0
- package/src/prompts/shared/git-rules.ts +94 -0
- package/src/prompts/shared/language-rules.ts +36 -0
- package/src/prompts/shared/tool-usage.ts +72 -0
- package/src/prompts/system/compact.ts +80 -0
- package/src/prompts/system/plan-execute.ts +89 -0
- package/src/tools/browser/browser-client.ts +1363 -0
- package/src/tools/browser/browser-tools.ts +1139 -0
- package/src/tools/browser/index.ts +65 -0
- package/src/tools/index.ts +23 -0
- package/src/tools/llm/agents/docs-search-tools.ts +368 -0
- package/src/tools/llm/agents/index.ts +22 -0
- package/src/tools/llm/index.ts +11 -0
- package/src/tools/llm/simple/ask-user-tool.ts +25 -0
- package/src/tools/llm/simple/background-bash-tool.ts +443 -0
- package/src/tools/llm/simple/background-powershell-tool.ts +421 -0
- package/src/tools/llm/simple/bash-tool.ts +238 -0
- package/src/tools/llm/simple/docs-search-agent-tool.ts +146 -0
- package/src/tools/llm/simple/file-tools.ts +1051 -0
- package/src/tools/llm/simple/final-response-tool.ts +180 -0
- package/src/tools/llm/simple/index.ts +42 -0
- package/src/tools/llm/simple/planning-tools.ts +143 -0
- package/src/tools/llm/simple/powershell-tool.ts +241 -0
- package/src/tools/llm/simple/simple-tool-executor.ts +279 -0
- package/src/tools/llm/simple/todo-tools.ts +207 -0
- package/src/tools/llm/simple/user-interaction-tools.ts +277 -0
- package/src/tools/office/common/constants.ts +335 -0
- package/src/tools/office/common/index.ts +133 -0
- package/src/tools/office/common/types.ts +286 -0
- package/src/tools/office/common/utils.ts +116 -0
- package/src/tools/office/excel-client.ts +1336 -0
- package/src/tools/office/excel-tools/cells.ts +359 -0
- package/src/tools/office/excel-tools/charts.ts +166 -0
- package/src/tools/office/excel-tools/comments.ts +155 -0
- package/src/tools/office/excel-tools/data-ops.ts +349 -0
- package/src/tools/office/excel-tools/export.ts +105 -0
- package/src/tools/office/excel-tools/formatting.ts +357 -0
- package/src/tools/office/excel-tools/index.ts +55 -0
- package/src/tools/office/excel-tools/launch.ts +303 -0
- package/src/tools/office/excel-tools/media.ts +117 -0
- package/src/tools/office/excel-tools/named-ranges.ts +148 -0
- package/src/tools/office/excel-tools/protection.ts +105 -0
- package/src/tools/office/excel-tools/rows-columns.ts +386 -0
- package/src/tools/office/excel-tools/sheets.ts +228 -0
- package/src/tools/office/excel-tools/validation.ts +226 -0
- package/src/tools/office/excel-tools.ts +9 -0
- package/src/tools/office/index.ts +259 -0
- package/src/tools/office/office-client-base.ts +242 -0
- package/src/tools/office/office-client.ts +377 -0
- package/src/tools/office/powerpoint-client.ts +1498 -0
- package/src/tools/office/powerpoint-tools/effects.ts +315 -0
- package/src/tools/office/powerpoint-tools/export.ts +138 -0
- package/src/tools/office/powerpoint-tools/index.ts +45 -0
- package/src/tools/office/powerpoint-tools/launch.ts +263 -0
- package/src/tools/office/powerpoint-tools/media.ts +291 -0
- package/src/tools/office/powerpoint-tools/notes.ts +220 -0
- package/src/tools/office/powerpoint-tools/sections.ts +140 -0
- package/src/tools/office/powerpoint-tools/shapes.ts +870 -0
- package/src/tools/office/powerpoint-tools/slides.ts +350 -0
- package/src/tools/office/powerpoint-tools/tables.ts +182 -0
- package/src/tools/office/powerpoint-tools/text.ts +473 -0
- package/src/tools/office/powerpoint-tools.ts +9 -0
- package/src/tools/office/word-client.ts +1697 -0
- package/src/tools/office/word-tools/bookmarks.ts +186 -0
- package/src/tools/office/word-tools/comments.ts +185 -0
- package/src/tools/office/word-tools/content.ts +229 -0
- package/src/tools/office/word-tools/export.ts +97 -0
- package/src/tools/office/word-tools/formatting.ts +161 -0
- package/src/tools/office/word-tools/headers-footers.ts +155 -0
- package/src/tools/office/word-tools/index.ts +57 -0
- package/src/tools/office/word-tools/launch.ts +312 -0
- package/src/tools/office/word-tools/lists.ts +97 -0
- package/src/tools/office/word-tools/navigation.ts +114 -0
- package/src/tools/office/word-tools/page-setup.ts +195 -0
- package/src/tools/office/word-tools/tables.ts +262 -0
- package/src/tools/office/word-tools/text.ts +294 -0
- package/src/tools/office/word-tools/undo-redo.ts +97 -0
- package/src/tools/office/word-tools/watermarks.ts +105 -0
- package/src/tools/office/word-tools.ts +9 -0
- package/src/tools/registry.ts +527 -0
- package/src/tools/types.ts +231 -0
- package/src/types/index.ts +181 -0
- package/src/ui/PlanExecuteView.tsx +119 -0
- package/src/ui/TodoPanel.tsx +240 -0
- package/src/ui/UpdateNotification.tsx +105 -0
- package/src/ui/components/ActivityIndicator.tsx +234 -0
- package/src/ui/components/CommandBrowser.tsx +114 -0
- package/src/ui/components/CustomTextInput.tsx +389 -0
- package/src/ui/components/DocsSearchProgress.tsx +85 -0
- package/src/ui/components/FileBrowser.tsx +93 -0
- package/src/ui/components/LLMSetupWizard.tsx +333 -0
- package/src/ui/components/Logo.tsx +125 -0
- package/src/ui/components/MarkdownRenderer.tsx +358 -0
- package/src/ui/components/ModelSelector.tsx +203 -0
- package/src/ui/components/PlanExecuteApp.tsx +2007 -0
- package/src/ui/components/ProgressBar.tsx +51 -0
- package/src/ui/components/StatusBar.tsx +302 -0
- package/src/ui/components/ThinkingIndicator.tsx +120 -0
- package/src/ui/components/TodoListView.tsx +140 -0
- package/src/ui/components/ToolSelector.tsx +215 -0
- package/src/ui/components/dialogs/ApprovalDialog.tsx +259 -0
- package/src/ui/components/dialogs/AskUserDialog.tsx +159 -0
- package/src/ui/components/dialogs/DocsBrowser.tsx +222 -0
- package/src/ui/components/dialogs/SettingsDialog.tsx +939 -0
- package/src/ui/components/dialogs/index.ts +13 -0
- package/src/ui/components/index.ts +27 -0
- package/src/ui/components/panels/LogPanel.tsx +385 -0
- package/src/ui/components/panels/SessionPanel.tsx +146 -0
- package/src/ui/components/panels/index.ts +13 -0
- package/src/ui/components/views/ChatView.tsx +447 -0
- package/src/ui/components/views/index.ts +5 -0
- package/src/ui/contexts/TokenContext.tsx +139 -0
- package/src/ui/hooks/atFileProcessor.ts +167 -0
- package/src/ui/hooks/index.ts +11 -0
- package/src/ui/hooks/slashCommandProcessor.ts +174 -0
- package/src/ui/hooks/useCommandBrowserState.ts +97 -0
- package/src/ui/hooks/useFileBrowserState.ts +116 -0
- package/src/ui/hooks/useFileList.ts +132 -0
- package/src/ui/hooks/useInputHistory.ts +89 -0
- package/src/ui/hooks/usePlanExecution.ts +339 -0
- package/src/ui/index.ts +10 -0
- package/src/ui/ink-entry.tsx +36 -0
- package/src/utils/env-filter.ts +164 -0
- package/src/utils/file-system.ts +133 -0
- package/src/utils/git-utils.ts +30 -0
- package/src/utils/json-stream-logger.ts +1259 -0
- package/src/utils/logger.ts +2767 -0
- package/src/utils/platform-utils.ts +256 -0
- package/src/utils/wsl-utils.ts +113 -0
- package/tsconfig.electron.json +39 -0
- package/tsconfig.json +64 -0
|
@@ -0,0 +1,544 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planning Agent
|
|
3
|
+
*
|
|
4
|
+
* System Planning Agent with full shell access.
|
|
5
|
+
* - Clarify requirements with ask_to_user
|
|
6
|
+
* - Create comprehensive TODO lists for Execution LLM
|
|
7
|
+
* - Supports parallel docs search decision
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// DISABLED: docs-search feature temporarily disabled (used by getDocsFolderStructure)
|
|
11
|
+
// import * as fs from 'fs/promises';
|
|
12
|
+
// import * as path from 'path';
|
|
13
|
+
// import * as os from 'os';
|
|
14
|
+
import { LLMClient } from '../../core/llm/llm-client.js';
|
|
15
|
+
import { Message, TodoItem, PlanningResult, TodoStatus } from '../../types/index.js';
|
|
16
|
+
import { logger } from '../../utils/logger.js';
|
|
17
|
+
import { buildPlanningSystemPrompt } from '../../prompts/agents/planning.js';
|
|
18
|
+
import { toolRegistry } from '../../tools/registry.js';
|
|
19
|
+
// DISABLED: docs-search feature temporarily disabled
|
|
20
|
+
// import {
|
|
21
|
+
// buildDocsSearchDecisionPrompt,
|
|
22
|
+
// parseDocsSearchDecision,
|
|
23
|
+
// DOCS_SEARCH_DECISION_RETRY_PROMPT,
|
|
24
|
+
// } from '../../prompts/agents/docs-search-decision.js';
|
|
25
|
+
import {
|
|
26
|
+
AskUserResponse,
|
|
27
|
+
AskUserCallback,
|
|
28
|
+
} from '../../tools/llm/simple/user-interaction-tools.js';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Result of parallel planning with docs decision
|
|
32
|
+
*/
|
|
33
|
+
export interface PlanningWithDocsResult extends PlanningResult {
|
|
34
|
+
docsSearchNeeded: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Planning LLM
|
|
39
|
+
* System Planning Agent that converts user requests into executable TODO lists
|
|
40
|
+
* Supports ask_to_user for requirement clarification
|
|
41
|
+
*/
|
|
42
|
+
export class PlanningLLM {
|
|
43
|
+
private llmClient: LLMClient;
|
|
44
|
+
private askUserCallback: AskUserCallback | null = null;
|
|
45
|
+
|
|
46
|
+
constructor(llmClient: LLMClient) {
|
|
47
|
+
this.llmClient = llmClient;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Set the ask-user callback for Planning LLM
|
|
52
|
+
* This enables the ask_to_user tool during planning
|
|
53
|
+
*/
|
|
54
|
+
setAskUserCallback(callback: AskUserCallback): void {
|
|
55
|
+
logger.flow('Setting ask-user callback for Planning LLM');
|
|
56
|
+
this.askUserCallback = callback;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Clear ask-user callback
|
|
61
|
+
*/
|
|
62
|
+
clearAskUserCallback(): void {
|
|
63
|
+
logger.flow('Clearing ask-user callback for Planning LLM');
|
|
64
|
+
this.askUserCallback = null;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Convert user request to TODO list
|
|
69
|
+
* Uses actual tool definitions for Planning LLM
|
|
70
|
+
* Supports ask_to_user for requirement clarification (loops until final decision)
|
|
71
|
+
* Returns clarificationMessages for caller to inject into conversation history
|
|
72
|
+
* @param userRequest The user's request
|
|
73
|
+
* @param contextMessages Optional context messages (e.g., docs search results)
|
|
74
|
+
*/
|
|
75
|
+
async generateTODOList(
|
|
76
|
+
userRequest: string,
|
|
77
|
+
contextMessages?: Message[],
|
|
78
|
+
): Promise<PlanningResult> {
|
|
79
|
+
// Build dynamic system prompt with available tools
|
|
80
|
+
const toolSummary = toolRegistry.getToolSummaryForPlanning();
|
|
81
|
+
const optionalToolsInfo = toolRegistry.getEnabledOptionalToolsInfo();
|
|
82
|
+
const systemPrompt = buildPlanningSystemPrompt(toolSummary, optionalToolsInfo);
|
|
83
|
+
|
|
84
|
+
// Track clarification messages (ask_to_user Q&A) to return to caller
|
|
85
|
+
const clarificationMessages: Message[] = [];
|
|
86
|
+
|
|
87
|
+
const messages: Message[] = [
|
|
88
|
+
{
|
|
89
|
+
role: 'system',
|
|
90
|
+
content: systemPrompt,
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
// Include conversation history (excluding system messages)
|
|
95
|
+
// System prompts are injected per-LLM call, not stored in history
|
|
96
|
+
if (contextMessages && contextMessages.length > 0) {
|
|
97
|
+
const conversationMsgs = contextMessages.filter(m => m.role !== 'system');
|
|
98
|
+
messages.push(...conversationMsgs);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Check if last message is already the same user request (avoid duplicate)
|
|
102
|
+
const lastMsg = messages[messages.length - 1];
|
|
103
|
+
if (!(lastMsg?.role === 'user' && lastMsg?.content === userRequest)) {
|
|
104
|
+
// Add [NEW REQUEST] marker to distinguish from previous conversation
|
|
105
|
+
// This helps LLM understand this is a fresh request, not continuation of completed tasks
|
|
106
|
+
messages.push({
|
|
107
|
+
role: 'user',
|
|
108
|
+
content: `[NEW REQUEST]\n${userRequest}`,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Get Planning tool definitions (ask_to_user, create_todos, respond_to_user)
|
|
113
|
+
const planningTools = toolRegistry.getLLMPlanningToolDefinitions();
|
|
114
|
+
|
|
115
|
+
const MAX_RETRIES = 3;
|
|
116
|
+
const MAX_ASK_ITERATIONS = 5;
|
|
117
|
+
let askIterations = 0;
|
|
118
|
+
let lastError: Error | null = null;
|
|
119
|
+
|
|
120
|
+
// Main planning loop - continues until create_todos or respond_to_user is called
|
|
121
|
+
while (askIterations < MAX_ASK_ITERATIONS) {
|
|
122
|
+
let shouldContinueMainLoop = false; // Track if we should continue after ask_to_user
|
|
123
|
+
|
|
124
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
125
|
+
try {
|
|
126
|
+
// Add retry prompt if this is a retry attempt
|
|
127
|
+
if (attempt > 1) {
|
|
128
|
+
messages.push({
|
|
129
|
+
role: 'user',
|
|
130
|
+
content: `[RETRY ${attempt}/${MAX_RETRIES}] ⚠️ CRITICAL: You are the PLANNING LLM, not the Execution LLM.
|
|
131
|
+
|
|
132
|
+
You have ONLY 3 tools available:
|
|
133
|
+
1. 'ask_to_user' - To clarify ambiguous requirements (use FIRST if unclear)
|
|
134
|
+
2. 'create_todos' - For ANY action/implementation request
|
|
135
|
+
3. 'respond_to_user' - For pure knowledge questions/greetings only
|
|
136
|
+
|
|
137
|
+
❌ DO NOT use tools like 'write_todos', 'read_file', 'bash', etc. Those are for Execution LLM, NOT you.
|
|
138
|
+
❌ You saw those tools in conversation history, but they are NOT available to you.
|
|
139
|
+
|
|
140
|
+
Previous error: ${lastError?.message || 'Invalid response'}
|
|
141
|
+
|
|
142
|
+
Choose one of your 3 tools now.`,
|
|
143
|
+
});
|
|
144
|
+
logger.warn(`Planning LLM retry attempt ${attempt}/${MAX_RETRIES}`, { lastError: lastError?.message });
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const response = await this.llmClient.chatCompletion({
|
|
148
|
+
messages,
|
|
149
|
+
tools: planningTools,
|
|
150
|
+
tool_choice: 'required',
|
|
151
|
+
temperature: 0.7,
|
|
152
|
+
max_tokens: 2000,
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Debug: Log raw response structure
|
|
156
|
+
const choicesCount = response.choices?.length ?? 0;
|
|
157
|
+
const message = response.choices?.[0]?.message;
|
|
158
|
+
const toolCalls = message?.tool_calls;
|
|
159
|
+
const finishReason = response.choices?.[0]?.finish_reason;
|
|
160
|
+
|
|
161
|
+
logger.debug('Planning LLM response', {
|
|
162
|
+
choicesCount,
|
|
163
|
+
hasMessage: !!message,
|
|
164
|
+
hasToolCalls: !!(toolCalls && toolCalls.length > 0),
|
|
165
|
+
hasContent: !!message?.content,
|
|
166
|
+
contentLength: message?.content?.length ?? 0,
|
|
167
|
+
finishReason,
|
|
168
|
+
toolCallsCount: toolCalls?.length ?? 0,
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
// Handle tool call
|
|
172
|
+
if (toolCalls && toolCalls.length > 0) {
|
|
173
|
+
const toolCall = toolCalls[0]!;
|
|
174
|
+
const toolName = toolCall.function?.name;
|
|
175
|
+
|
|
176
|
+
let toolArgs;
|
|
177
|
+
try {
|
|
178
|
+
toolArgs = JSON.parse(toolCall.function?.arguments || '{}');
|
|
179
|
+
} catch (error) {
|
|
180
|
+
logger.warn('Failed to parse tool arguments', { args: toolCall.function?.arguments, error });
|
|
181
|
+
lastError = error as Error;
|
|
182
|
+
continue; // Retry
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Handle ask_to_user - clarify requirements before planning
|
|
186
|
+
if (toolName === 'ask_to_user') {
|
|
187
|
+
logger.flow('Planning LLM asking user for clarification');
|
|
188
|
+
|
|
189
|
+
const question = toolArgs.question as string;
|
|
190
|
+
const options = toolArgs.options as string[];
|
|
191
|
+
|
|
192
|
+
if (!question || !Array.isArray(options) || options.length < 2) {
|
|
193
|
+
logger.warn('ask_to_user called with invalid parameters', { toolArgs });
|
|
194
|
+
lastError = new Error('ask_to_user requires a question and 2-4 options');
|
|
195
|
+
continue; // Retry
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
askIterations++;
|
|
199
|
+
|
|
200
|
+
// Check if callback is available
|
|
201
|
+
if (!this.askUserCallback) {
|
|
202
|
+
logger.warn('ask_to_user called but no callback is set, forcing create_todos');
|
|
203
|
+
messages.push({
|
|
204
|
+
role: 'assistant',
|
|
205
|
+
content: `[ask_to_user was called but user interaction is not available.]`,
|
|
206
|
+
});
|
|
207
|
+
messages.push({
|
|
208
|
+
role: 'user',
|
|
209
|
+
content: `User interaction is unavailable. You MUST call 'create_todos' now with your best judgment. Do NOT call ask_to_user again.`,
|
|
210
|
+
});
|
|
211
|
+
shouldContinueMainLoop = true;
|
|
212
|
+
break; // Exit retry loop, continue main loop
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
try {
|
|
216
|
+
// Record the assistant's question in history
|
|
217
|
+
const assistantMsg: Message = {
|
|
218
|
+
role: 'assistant',
|
|
219
|
+
content: `[Clarification needed] ${question}\nOptions: ${options.join(', ')}`,
|
|
220
|
+
};
|
|
221
|
+
messages.push(assistantMsg);
|
|
222
|
+
clarificationMessages.push(assistantMsg);
|
|
223
|
+
|
|
224
|
+
// Call the UI callback to ask user
|
|
225
|
+
const userResponse: AskUserResponse = await this.askUserCallback({ question, options });
|
|
226
|
+
|
|
227
|
+
// Build user response text
|
|
228
|
+
const userAnswerText = userResponse.isOther && userResponse.customText
|
|
229
|
+
? userResponse.customText
|
|
230
|
+
: userResponse.selectedOption;
|
|
231
|
+
|
|
232
|
+
// Record user's response in history
|
|
233
|
+
const userMsg: Message = {
|
|
234
|
+
role: 'user',
|
|
235
|
+
content: `[User's answer] ${userAnswerText}`,
|
|
236
|
+
};
|
|
237
|
+
messages.push(userMsg);
|
|
238
|
+
clarificationMessages.push(userMsg);
|
|
239
|
+
|
|
240
|
+
logger.flow('User responded to clarification question', {
|
|
241
|
+
question,
|
|
242
|
+
answer: userAnswerText,
|
|
243
|
+
isCustom: userResponse.isOther,
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
// Continue main loop - LLM will process the answer and decide next step
|
|
247
|
+
shouldContinueMainLoop = true;
|
|
248
|
+
break; // Exit retry loop, continue main loop
|
|
249
|
+
|
|
250
|
+
} catch (error) {
|
|
251
|
+
logger.error('Error during ask_to_user', error as Error);
|
|
252
|
+
lastError = error as Error;
|
|
253
|
+
// Continue retry loop
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Handle create_todos - final planning decision
|
|
259
|
+
if (toolName === 'create_todos') {
|
|
260
|
+
logger.flow('TODO list created via create_todos tool');
|
|
261
|
+
|
|
262
|
+
// Validate todos is an array (handle string-wrapped JSON from LLM)
|
|
263
|
+
let rawTodos = toolArgs.todos;
|
|
264
|
+
|
|
265
|
+
// If todos is a string, try to parse it as JSON
|
|
266
|
+
if (typeof rawTodos === 'string') {
|
|
267
|
+
try {
|
|
268
|
+
rawTodos = JSON.parse(rawTodos);
|
|
269
|
+
logger.debug('Parsed string-wrapped todos array');
|
|
270
|
+
} catch {
|
|
271
|
+
logger.warn('Failed to parse string todos as JSON', { todos: rawTodos });
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
if (!Array.isArray(rawTodos)) {
|
|
276
|
+
logger.warn('create_todos called with non-array todos', { toolArgs });
|
|
277
|
+
lastError = new Error('Planning LLM returned invalid todos format (expected array).');
|
|
278
|
+
continue; // Retry
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
const todos: TodoItem[] = rawTodos.map((todo: any, index: number) => ({
|
|
282
|
+
id: todo.id || `todo-${Date.now()}-${index}`,
|
|
283
|
+
title: todo.title || 'Untitled task',
|
|
284
|
+
// First TODO starts as in_progress, rest are pending
|
|
285
|
+
status: (index === 0 ? 'in_progress' : 'pending') as TodoStatus,
|
|
286
|
+
}));
|
|
287
|
+
|
|
288
|
+
return {
|
|
289
|
+
todos,
|
|
290
|
+
complexity: toolArgs.complexity || 'moderate',
|
|
291
|
+
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// Handle respond_to_user - direct response without TODOs
|
|
296
|
+
if (toolName === 'respond_to_user') {
|
|
297
|
+
logger.flow('Direct response via respond_to_user tool');
|
|
298
|
+
const responseText = toolArgs.response || '';
|
|
299
|
+
|
|
300
|
+
if (!responseText) {
|
|
301
|
+
logger.warn('respond_to_user called with empty response');
|
|
302
|
+
lastError = new Error('Planning LLM returned empty response.');
|
|
303
|
+
continue; // Retry
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
return {
|
|
307
|
+
todos: [],
|
|
308
|
+
complexity: 'simple',
|
|
309
|
+
directResponse: responseText,
|
|
310
|
+
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Unknown tool - retry
|
|
315
|
+
logger.warn(`Unknown tool called: ${toolName}`);
|
|
316
|
+
lastError = new Error(`Invalid tool "${toolName}". You only have 3 tools: ask_to_user, create_todos, or respond_to_user. Tools like write_todos are for Execution LLM, not Planning LLM.`);
|
|
317
|
+
continue; // Retry
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// No tool call - this should not happen with tool_choice: "required"
|
|
321
|
+
const contentOnly = message?.content;
|
|
322
|
+
if (contentOnly) {
|
|
323
|
+
logger.warn(`Planning LLM returned content without tool call (attempt ${attempt}/${MAX_RETRIES})`, {
|
|
324
|
+
contentPreview: contentOnly.substring(0, 100),
|
|
325
|
+
});
|
|
326
|
+
lastError = new Error(
|
|
327
|
+
'You MUST call one of your tools: ask_to_user, create_todos, or respond_to_user. Do NOT respond with plain text.'
|
|
328
|
+
);
|
|
329
|
+
} else {
|
|
330
|
+
logger.warn(`Planning LLM returned no tool call and no content (attempt ${attempt}/${MAX_RETRIES})`);
|
|
331
|
+
lastError = new Error('Planning LLM must use one of: ask_to_user, create_todos, or respond_to_user');
|
|
332
|
+
}
|
|
333
|
+
// Continue to next retry
|
|
334
|
+
} catch (error) {
|
|
335
|
+
// Network or API error - will retry
|
|
336
|
+
logger.warn(`Planning LLM error (attempt ${attempt}/${MAX_RETRIES}):`, error as Error);
|
|
337
|
+
lastError = error as Error;
|
|
338
|
+
// Continue to next retry
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// If ask_to_user was successful, continue main loop for next LLM call
|
|
343
|
+
if (shouldContinueMainLoop) {
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// All retries exhausted without successful ask_to_user - break to fallback
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// All retries exhausted - use fallback
|
|
352
|
+
logger.warn('All planning retries exhausted, using fallback TODO', { lastError: lastError?.message });
|
|
353
|
+
return {
|
|
354
|
+
todos: [
|
|
355
|
+
{
|
|
356
|
+
id: `todo-${Date.now()}`,
|
|
357
|
+
title: userRequest.length > 100 ? userRequest.substring(0, 100) + '...' : userRequest,
|
|
358
|
+
status: 'in_progress',
|
|
359
|
+
},
|
|
360
|
+
],
|
|
361
|
+
complexity: 'simple',
|
|
362
|
+
clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Generate TODO list with parallel docs search decision
|
|
368
|
+
* Runs planning and docs decision in parallel, then injects docs search TODO if needed
|
|
369
|
+
*
|
|
370
|
+
* NOTE: docs-search feature is currently DISABLED. Always returns docsSearchNeeded: false
|
|
371
|
+
*/
|
|
372
|
+
async generateTODOListWithDocsDecision(
|
|
373
|
+
userRequest: string,
|
|
374
|
+
contextMessages?: Message[]
|
|
375
|
+
): Promise<PlanningWithDocsResult> {
|
|
376
|
+
logger.enter('PlanningLLM.generateTODOListWithDocsDecision', { requestLength: userRequest.length });
|
|
377
|
+
logger.startTimer('parallel-planning');
|
|
378
|
+
|
|
379
|
+
// DISABLED: docs-search feature temporarily disabled
|
|
380
|
+
// Only run planning, skip docs search decision
|
|
381
|
+
const planningResult = await this.generateTODOList(userRequest, contextMessages);
|
|
382
|
+
|
|
383
|
+
logger.vars(
|
|
384
|
+
{ name: 'todoCount', value: planningResult.todos.length },
|
|
385
|
+
{ name: 'docsSearchNeeded', value: false }
|
|
386
|
+
);
|
|
387
|
+
|
|
388
|
+
logger.endTimer('parallel-planning');
|
|
389
|
+
logger.exit('PlanningLLM.generateTODOListWithDocsDecision', { docsSearchNeeded: false });
|
|
390
|
+
|
|
391
|
+
return {
|
|
392
|
+
...planningResult,
|
|
393
|
+
docsSearchNeeded: false,
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
/* DISABLED: Original docs-search logic preserved for future use
|
|
397
|
+
// Run planning and docs decision in parallel
|
|
398
|
+
const [planningResult, docsSearchNeeded] = await Promise.all([
|
|
399
|
+
this.generateTODOList(userRequest, contextMessages),
|
|
400
|
+
this.shouldSearchDocs(userRequest),
|
|
401
|
+
]);
|
|
402
|
+
|
|
403
|
+
logger.vars(
|
|
404
|
+
{ name: 'todoCount', value: planningResult.todos.length },
|
|
405
|
+
{ name: 'docsSearchNeeded', value: docsSearchNeeded }
|
|
406
|
+
);
|
|
407
|
+
|
|
408
|
+
// If docs search is needed, prepend a docs search TODO
|
|
409
|
+
if (docsSearchNeeded) {
|
|
410
|
+
const docsSearchTodo: TodoItem = {
|
|
411
|
+
id: `todo-docs-${Date.now()}`,
|
|
412
|
+
title: 'Search local documentation (use call_docs_search_agent)',
|
|
413
|
+
status: 'pending' as TodoStatus,
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
logger.flow('Prepended docs search TODO');
|
|
417
|
+
logger.endTimer('parallel-planning');
|
|
418
|
+
logger.exit('PlanningLLM.generateTODOListWithDocsDecision', { docsSearchNeeded: true });
|
|
419
|
+
|
|
420
|
+
return {
|
|
421
|
+
...planningResult,
|
|
422
|
+
todos: [docsSearchTodo, ...planningResult.todos],
|
|
423
|
+
docsSearchNeeded: true,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
logger.endTimer('parallel-planning');
|
|
428
|
+
logger.exit('PlanningLLM.generateTODOListWithDocsDecision', { docsSearchNeeded: false });
|
|
429
|
+
|
|
430
|
+
return {
|
|
431
|
+
...planningResult,
|
|
432
|
+
docsSearchNeeded: false,
|
|
433
|
+
};
|
|
434
|
+
*/
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/* DISABLED: docs-search feature temporarily disabled
|
|
438
|
+
private async shouldSearchDocs(userMessage: string): Promise<boolean> {
|
|
439
|
+
logger.enter('PlanningLLM.shouldSearchDocs', { messageLength: userMessage.length });
|
|
440
|
+
|
|
441
|
+
// Get folder structure
|
|
442
|
+
const folderStructure = await this.getDocsFolderStructure();
|
|
443
|
+
|
|
444
|
+
// If no docs available, skip search
|
|
445
|
+
if (
|
|
446
|
+
folderStructure.includes('empty') ||
|
|
447
|
+
folderStructure.includes('does not exist')
|
|
448
|
+
) {
|
|
449
|
+
logger.flow('No docs available, skipping search decision');
|
|
450
|
+
logger.exit('PlanningLLM.shouldSearchDocs', { decision: false, reason: 'no-docs' });
|
|
451
|
+
return false;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
// Build prompt
|
|
455
|
+
const prompt = buildDocsSearchDecisionPrompt(folderStructure, userMessage);
|
|
456
|
+
|
|
457
|
+
const messages: Message[] = [
|
|
458
|
+
{ role: 'user', content: prompt },
|
|
459
|
+
];
|
|
460
|
+
|
|
461
|
+
let retries = 0;
|
|
462
|
+
const MAX_RETRIES = 2;
|
|
463
|
+
|
|
464
|
+
while (retries <= MAX_RETRIES) {
|
|
465
|
+
logger.flow(`Asking LLM for docs search decision (attempt ${retries + 1})`);
|
|
466
|
+
|
|
467
|
+
const response = await this.llmClient.chatCompletion({
|
|
468
|
+
messages,
|
|
469
|
+
temperature: 0.1,
|
|
470
|
+
max_tokens: 10,
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
const content = response.choices[0]?.message?.content || '';
|
|
474
|
+
logger.debug('LLM decision response', { content });
|
|
475
|
+
|
|
476
|
+
const decision = parseDocsSearchDecision(content);
|
|
477
|
+
|
|
478
|
+
if (decision !== null) {
|
|
479
|
+
logger.exit('PlanningLLM.shouldSearchDocs', { decision, attempts: retries + 1 });
|
|
480
|
+
return decision;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// Invalid response, retry
|
|
484
|
+
retries++;
|
|
485
|
+
if (retries <= MAX_RETRIES) {
|
|
486
|
+
messages.push({ role: 'assistant', content });
|
|
487
|
+
messages.push({ role: 'user', content: DOCS_SEARCH_DECISION_RETRY_PROMPT });
|
|
488
|
+
logger.warn('Invalid decision response, retrying', { response: content });
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
// Default to false if all retries failed
|
|
493
|
+
logger.warn('All decision retries failed, defaulting to no search');
|
|
494
|
+
logger.exit('PlanningLLM.shouldSearchDocs', { decision: false, reason: 'retries-exhausted' });
|
|
495
|
+
return false;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
private async getDocsFolderStructure(): Promise<string> {
|
|
499
|
+
const docsBasePath = path.join(os.homedir(), '.hanseol', 'docs');
|
|
500
|
+
|
|
501
|
+
try {
|
|
502
|
+
const entries = await fs.readdir(docsBasePath, { withFileTypes: true });
|
|
503
|
+
|
|
504
|
+
const lines: string[] = [];
|
|
505
|
+
|
|
506
|
+
for (const entry of entries) {
|
|
507
|
+
if (entry.isDirectory()) {
|
|
508
|
+
// Depth 0: Show top-level directory
|
|
509
|
+
lines.push(`📁 ${entry.name}/`);
|
|
510
|
+
|
|
511
|
+
// Depth 1: Show only immediate subdirectory names
|
|
512
|
+
try {
|
|
513
|
+
const subPath = path.join(docsBasePath, entry.name);
|
|
514
|
+
const subEntries = await fs.readdir(subPath, { withFileTypes: true });
|
|
515
|
+
const subDirs = subEntries.filter(e => e.isDirectory());
|
|
516
|
+
|
|
517
|
+
if (subDirs.length > 0) {
|
|
518
|
+
const subDirNames = subDirs.map(d => d.name).join(', ');
|
|
519
|
+
lines.push(` └── [${subDirNames}]`);
|
|
520
|
+
}
|
|
521
|
+
} catch {
|
|
522
|
+
// Ignore errors reading subdirectories
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
// Skip files at root level - only show directories
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
if (lines.length === 0) {
|
|
529
|
+
return '(empty - no documentation available)';
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
return lines.join('\n');
|
|
533
|
+
} catch (error) {
|
|
534
|
+
const err = error as NodeJS.ErrnoException;
|
|
535
|
+
if (err.code === 'ENOENT') {
|
|
536
|
+
return '(docs directory does not exist)';
|
|
537
|
+
}
|
|
538
|
+
return '(error reading docs directory)';
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
*/
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
export default PlanningLLM;
|