hanseol 3.2.7
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/LICENSE +21 -0
- package/README.md +267 -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 +15 -0
- package/dist/agents/planner/index.d.ts.map +1 -0
- package/dist/agents/planner/index.js +270 -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 +97 -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/auth/auth-manager.d.ts +23 -0
- package/dist/core/auth/auth-manager.d.ts.map +1 -0
- package/dist/core/auth/auth-manager.js +159 -0
- package/dist/core/auth/auth-manager.js.map +1 -0
- package/dist/core/auth/index.d.ts +4 -0
- package/dist/core/auth/index.d.ts.map +1 -0
- package/dist/core/auth/index.js +4 -0
- package/dist/core/auth/index.js.map +1 -0
- package/dist/core/auth/jwt-decoder.d.ts +7 -0
- package/dist/core/auth/jwt-decoder.d.ts.map +1 -0
- package/dist/core/auth/jwt-decoder.js +101 -0
- package/dist/core/auth/jwt-decoder.js.map +1 -0
- package/dist/core/auth/sso-client.d.ts +20 -0
- package/dist/core/auth/sso-client.d.ts.map +1 -0
- package/dist/core/auth/sso-client.js +164 -0
- package/dist/core/auth/sso-client.js.map +1 -0
- package/dist/core/auth/types.d.ts +45 -0
- package/dist/core/auth/types.d.ts.map +1 -0
- package/dist/core/auth/types.js +2 -0
- package/dist/core/auth/types.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 +74 -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 +80 -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 +43 -0
- package/dist/core/config/config-manager.d.ts.map +1 -0
- package/dist/core/config/config-manager.js +247 -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/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 +1002 -0
- package/dist/core/llm/llm-client.js.map +1 -0
- package/dist/core/model-sync.d.ts +20 -0
- package/dist/core/model-sync.d.ts.map +1 -0
- package/dist/core/model-sync.js +182 -0
- package/dist/core/model-sync.js.map +1 -0
- package/dist/core/notification-manager.d.ts +23 -0
- package/dist/core/notification-manager.d.ts.map +1 -0
- package/dist/core/notification-manager.js +76 -0
- package/dist/core/notification-manager.js.map +1 -0
- package/dist/core/s3-auto-updater.d.ts +51 -0
- package/dist/core/s3-auto-updater.d.ts.map +1 -0
- package/dist/core/s3-auto-updater.js +292 -0
- package/dist/core/s3-auto-updater.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 +235 -0
- package/dist/core/session/session-manager.js.map +1 -0
- package/dist/core/slash-command-handler.d.ts +32 -0
- package/dist/core/slash-command-handler.d.ts.map +1 -0
- package/dist/core/slash-command-handler.js +402 -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 +291 -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 +368 -0
- package/dist/orchestration/plan-executor.js.map +1 -0
- package/dist/orchestration/types.d.ts +65 -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 +81 -0
- package/dist/orchestration/utils.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 +49 -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 +888 -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 +320 -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 +302 -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 +167 -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 +12 -0
- package/dist/tools/llm/simple/file-tools.d.ts.map +1 -0
- package/dist/tools/llm/simple/file-tools.js +597 -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 +150 -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 +132 -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 +21 -0
- package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +1 -0
- package/dist/tools/llm/simple/user-interaction-tools.js +167 -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 +29 -0
- package/dist/tools/office/office-client-base.d.ts.map +1 -0
- package/dist/tools/office/office-client-base.js +148 -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 +111 -0
- package/dist/tools/office/word-client.d.ts.map +1 -0
- package/dist/tools/office/word-client.js +995 -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 +46 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +258 -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 +122 -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 +27 -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 +183 -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 +99 -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 +1432 -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 +112 -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/RatingDialog.d.ts +9 -0
- package/dist/ui/components/dialogs/RatingDialog.d.ts.map +1 -0
- package/dist/ui/components/dialogs/RatingDialog.js +54 -0
- package/dist/ui/components/dialogs/RatingDialog.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/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 +3 -0
- package/dist/ui/components/panels/index.d.ts.map +1 -0
- package/dist/ui/components/panels/index.js +3 -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 +79 -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 +56 -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 +208 -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 +21 -0
- package/dist/ui/ink-entry.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 +52 -0
- package/dist/utils/json-stream-logger.d.ts.map +1 -0
- package/dist/utils/json-stream-logger.js +442 -0
- package/dist/utils/json-stream-logger.js.map +1 -0
- package/dist/utils/logger.d.ts +86 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +588 -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/package.json +150 -0
- package/scripts/patch-yoga.js +48 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import React, { createContext, useContext, useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import { logger } from '../../utils/logger.js';
|
|
3
|
+
const initialStats = {
|
|
4
|
+
sessionTotal: 0,
|
|
5
|
+
sessionPrompt: 0,
|
|
6
|
+
sessionCompletion: 0,
|
|
7
|
+
lastRequestTokens: 0,
|
|
8
|
+
lastResponseTokens: 0,
|
|
9
|
+
tokensPerSecond: 0,
|
|
10
|
+
lastUpdateTime: Date.now(),
|
|
11
|
+
recentRates: [],
|
|
12
|
+
};
|
|
13
|
+
const TokenContext = createContext(null);
|
|
14
|
+
export const TokenProvider = ({ children }) => {
|
|
15
|
+
const [stats, setStats] = useState(initialStats);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
logger.debug('TokenProvider mounted');
|
|
18
|
+
return () => {
|
|
19
|
+
logger.debug('TokenProvider unmounted', { finalStats: stats });
|
|
20
|
+
};
|
|
21
|
+
}, []);
|
|
22
|
+
const addUsage = useCallback((usage, durationMs) => {
|
|
23
|
+
setStats(prev => {
|
|
24
|
+
const newSessionTotal = prev.sessionTotal + usage.total_tokens;
|
|
25
|
+
const newSessionPrompt = prev.sessionPrompt + usage.prompt_tokens;
|
|
26
|
+
const newSessionCompletion = prev.sessionCompletion + usage.completion_tokens;
|
|
27
|
+
let tokensPerSecond = prev.tokensPerSecond;
|
|
28
|
+
const recentRates = [...prev.recentRates];
|
|
29
|
+
if (durationMs && durationMs > 0) {
|
|
30
|
+
const rate = (usage.completion_tokens / durationMs) * 1000;
|
|
31
|
+
recentRates.push(rate);
|
|
32
|
+
if (recentRates.length > 5) {
|
|
33
|
+
recentRates.shift();
|
|
34
|
+
}
|
|
35
|
+
tokensPerSecond = recentRates.reduce((a, b) => a + b, 0) / recentRates.length;
|
|
36
|
+
}
|
|
37
|
+
logger.debug('Token usage updated', {
|
|
38
|
+
added: usage.total_tokens,
|
|
39
|
+
sessionTotal: newSessionTotal,
|
|
40
|
+
tokensPerSecond: tokensPerSecond.toFixed(1),
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
sessionTotal: newSessionTotal,
|
|
44
|
+
sessionPrompt: newSessionPrompt,
|
|
45
|
+
sessionCompletion: newSessionCompletion,
|
|
46
|
+
lastRequestTokens: usage.prompt_tokens,
|
|
47
|
+
lastResponseTokens: usage.completion_tokens,
|
|
48
|
+
tokensPerSecond,
|
|
49
|
+
lastUpdateTime: Date.now(),
|
|
50
|
+
recentRates,
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}, []);
|
|
54
|
+
const resetSession = useCallback(() => {
|
|
55
|
+
logger.debug('Token stats reset');
|
|
56
|
+
setStats(initialStats);
|
|
57
|
+
}, []);
|
|
58
|
+
return (React.createElement(TokenContext.Provider, { value: { stats, addUsage, resetSession } }, children));
|
|
59
|
+
};
|
|
60
|
+
export const useTokenStats = () => {
|
|
61
|
+
const context = useContext(TokenContext);
|
|
62
|
+
if (!context) {
|
|
63
|
+
throw new Error('useTokenStats must be used within a TokenProvider');
|
|
64
|
+
}
|
|
65
|
+
return context;
|
|
66
|
+
};
|
|
67
|
+
export function formatTokenCount(tokens) {
|
|
68
|
+
if (tokens < 1000)
|
|
69
|
+
return tokens.toString();
|
|
70
|
+
if (tokens < 1000000)
|
|
71
|
+
return `${(tokens / 1000).toFixed(1)}k`;
|
|
72
|
+
return `${(tokens / 1000000).toFixed(2)}M`;
|
|
73
|
+
}
|
|
74
|
+
export function formatTokenRate(rate) {
|
|
75
|
+
if (rate < 1)
|
|
76
|
+
return `${(rate * 1000).toFixed(0)}ms/tok`;
|
|
77
|
+
return `${rate.toFixed(1)} tok/s`;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=TokenContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenContext.js","sourceRoot":"","sources":["../../../src/ui/contexts/TokenContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface AtTriggerInfo {
|
|
2
|
+
detected: boolean;
|
|
3
|
+
position: number;
|
|
4
|
+
filter: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function detectAtTrigger(input: string): AtTriggerInfo;
|
|
7
|
+
export declare function insertFilePaths(input: string, atPosition: number, filterLength: number, filePaths: string[]): string;
|
|
8
|
+
export interface ProcessedMessage {
|
|
9
|
+
content: string;
|
|
10
|
+
includedFiles: string[];
|
|
11
|
+
failedFiles: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function extractFileReferences(input: string): string[];
|
|
14
|
+
export declare function processFileReferences(input: string): Promise<ProcessedMessage>;
|
|
15
|
+
//# sourceMappingURL=atFileProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atFileProcessor.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/atFileProcessor.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAgB5D;AAOD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,CAiBR;AAKD,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB7D;AAMD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8DpF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export function detectAtTrigger(input) {
|
|
4
|
+
const atMatch = input.match(/(^|[\s])@([^\s]*?)$/);
|
|
5
|
+
if (!atMatch) {
|
|
6
|
+
return { detected: false, position: -1, filter: '' };
|
|
7
|
+
}
|
|
8
|
+
const position = atMatch.index + atMatch[1].length;
|
|
9
|
+
const filter = atMatch[2] || '';
|
|
10
|
+
return {
|
|
11
|
+
detected: true,
|
|
12
|
+
position,
|
|
13
|
+
filter,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function insertFilePaths(input, atPosition, filterLength, filePaths) {
|
|
17
|
+
const before = input.slice(0, atPosition);
|
|
18
|
+
const after = input.slice(atPosition + 1 + filterLength);
|
|
19
|
+
const formattedPaths = filePaths.map((p) => `@${p}`).join(' ');
|
|
20
|
+
if (after.trim()) {
|
|
21
|
+
return `${before}${formattedPaths} ${after}`.trim();
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return `${before}${formattedPaths} `;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function extractFileReferences(input) {
|
|
28
|
+
const regex = /@([^\s@]+)/g;
|
|
29
|
+
const matches = [];
|
|
30
|
+
let match;
|
|
31
|
+
while ((match = regex.exec(input)) !== null) {
|
|
32
|
+
const filePath = match[1];
|
|
33
|
+
if (filePath && filePath.length > 1 && (filePath.includes('/') || filePath.includes('.'))) {
|
|
34
|
+
matches.push(filePath);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return matches;
|
|
38
|
+
}
|
|
39
|
+
export async function processFileReferences(input) {
|
|
40
|
+
const fileRefs = extractFileReferences(input);
|
|
41
|
+
if (fileRefs.length === 0) {
|
|
42
|
+
return {
|
|
43
|
+
content: input,
|
|
44
|
+
includedFiles: [],
|
|
45
|
+
failedFiles: [],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const includedFiles = [];
|
|
49
|
+
const failedFiles = [];
|
|
50
|
+
const fileContents = [];
|
|
51
|
+
for (const filePath of fileRefs) {
|
|
52
|
+
try {
|
|
53
|
+
const resolvedPath = path.resolve(process.cwd(), filePath);
|
|
54
|
+
if (!resolvedPath.startsWith(process.cwd())) {
|
|
55
|
+
failedFiles.push(filePath);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const stat = await fs.stat(resolvedPath);
|
|
59
|
+
if (stat.isDirectory()) {
|
|
60
|
+
const entries = await fs.readdir(resolvedPath);
|
|
61
|
+
fileContents.push(`\n--- Directory: ${filePath} ---\n${entries.join('\n')}\n---`);
|
|
62
|
+
includedFiles.push(filePath);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const content = await fs.readFile(resolvedPath, 'utf-8');
|
|
66
|
+
const ext = path.extname(filePath).slice(1) || 'txt';
|
|
67
|
+
fileContents.push(`\n--- File: ${filePath} ---\n\`\`\`${ext}\n${content}\n\`\`\`\n---`);
|
|
68
|
+
includedFiles.push(filePath);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
failedFiles.push(filePath);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
let cleanedInput = input;
|
|
76
|
+
for (const filePath of new Set(fileRefs)) {
|
|
77
|
+
cleanedInput = cleanedInput.replaceAll(`@${filePath}`, `[${filePath}]`);
|
|
78
|
+
}
|
|
79
|
+
const finalContent = fileContents.length > 0
|
|
80
|
+
? `${cleanedInput}\n\n<attached_files>${fileContents.join('\n')}</attached_files>`
|
|
81
|
+
: cleanedInput;
|
|
82
|
+
return {
|
|
83
|
+
content: finalContent,
|
|
84
|
+
includedFiles,
|
|
85
|
+
failedFiles,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=atFileProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atFileProcessor.js","sourceRoot":"","sources":["../../../src/ui/hooks/atFileProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './atFileProcessor.js';
|
|
2
|
+
export * from './useFileList.js';
|
|
3
|
+
export * from './slashCommandProcessor.js';
|
|
4
|
+
export * from './useFileBrowserState.js';
|
|
5
|
+
export * from './useCommandBrowserState.js';
|
|
6
|
+
export * from './usePlanExecution.js';
|
|
7
|
+
export * from './useInputHistory.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './atFileProcessor.js';
|
|
2
|
+
export * from './useFileList.js';
|
|
3
|
+
export * from './slashCommandProcessor.js';
|
|
4
|
+
export * from './useFileBrowserState.js';
|
|
5
|
+
export * from './useCommandBrowserState.js';
|
|
6
|
+
export * from './usePlanExecution.js';
|
|
7
|
+
export * from './useInputHistory.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface SlashCommandInfo {
|
|
2
|
+
detected: boolean;
|
|
3
|
+
position: number;
|
|
4
|
+
partialCommand: string;
|
|
5
|
+
fullCommand: string | null;
|
|
6
|
+
args: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CommandMetadata {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
argsHint?: string;
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
handler?: (args: string) => void | Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare const SLASH_COMMANDS: CommandMetadata[];
|
|
16
|
+
export declare function detectSlashTrigger(input: string): SlashCommandInfo;
|
|
17
|
+
export declare function filterCommands(partialCommand: string, maxResults?: number): CommandMetadata[];
|
|
18
|
+
export declare function isValidCommand(input: string): boolean;
|
|
19
|
+
export declare function getCommandArgsHint(commandName: string): string | undefined;
|
|
20
|
+
export declare function insertSlashCommand(_input: string, selectedCommand: string): string;
|
|
21
|
+
//# sourceMappingURL=slashCommandProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slashCommandProcessor.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/slashCommandProcessor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAKD,eAAO,MAAM,cAAc,EAAE,eAAe,EA2C3C,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAyClE;AAOD,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,UAAU,GAAE,MAAW,GACtB,eAAe,EAAE,CAenB;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOrD;AAKD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1E;AAMD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,MAAM,CAGR"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export const SLASH_COMMANDS = [
|
|
2
|
+
{
|
|
3
|
+
name: '/exit',
|
|
4
|
+
description: 'Exit the application',
|
|
5
|
+
aliases: ['/quit'],
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
name: '/clear',
|
|
9
|
+
description: 'Clear conversation and TODOs',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: '/compact',
|
|
13
|
+
description: 'Compact conversation to free up context',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: '/settings',
|
|
17
|
+
description: 'Open settings menu',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: '/model',
|
|
21
|
+
description: 'Switch between LLM models',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: '/load',
|
|
25
|
+
description: 'Load a saved session',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: '/docs',
|
|
29
|
+
description: 'Download framework documentation (agno, adk)',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: '/tool',
|
|
33
|
+
description: 'Enable/disable optional tools (Browser, Background)',
|
|
34
|
+
aliases: ['/tools'],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: '/usage',
|
|
38
|
+
description: 'Show token usage statistics',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: '/help',
|
|
42
|
+
description: 'Show help message',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
export function detectSlashTrigger(input) {
|
|
46
|
+
if (input.startsWith('//')) {
|
|
47
|
+
return {
|
|
48
|
+
detected: false,
|
|
49
|
+
position: -1,
|
|
50
|
+
partialCommand: '',
|
|
51
|
+
fullCommand: null,
|
|
52
|
+
args: '',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const slashMatch = input.match(/^\/([^\s]*)([\s](.*))?$/);
|
|
56
|
+
if (!slashMatch) {
|
|
57
|
+
return {
|
|
58
|
+
detected: false,
|
|
59
|
+
position: -1,
|
|
60
|
+
partialCommand: '',
|
|
61
|
+
fullCommand: null,
|
|
62
|
+
args: '',
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const partialCommand = slashMatch[1] || '';
|
|
66
|
+
const args = slashMatch[3] || '';
|
|
67
|
+
const fullInput = `/${partialCommand}`;
|
|
68
|
+
const matchedCommand = SLASH_COMMANDS.find((cmd) => cmd.name === fullInput || cmd.aliases?.includes(fullInput));
|
|
69
|
+
return {
|
|
70
|
+
detected: true,
|
|
71
|
+
position: 0,
|
|
72
|
+
partialCommand,
|
|
73
|
+
fullCommand: matchedCommand ? matchedCommand.name : null,
|
|
74
|
+
args,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export function filterCommands(partialCommand, maxResults = 10) {
|
|
78
|
+
if (!partialCommand) {
|
|
79
|
+
return SLASH_COMMANDS.slice(0, maxResults);
|
|
80
|
+
}
|
|
81
|
+
const filtered = SLASH_COMMANDS.filter((cmd) => {
|
|
82
|
+
const searchTerm = `/${partialCommand.toLowerCase()}`;
|
|
83
|
+
return (cmd.name.toLowerCase().startsWith(searchTerm) ||
|
|
84
|
+
cmd.aliases?.some((alias) => alias.toLowerCase().startsWith(searchTerm)));
|
|
85
|
+
});
|
|
86
|
+
return filtered.slice(0, maxResults);
|
|
87
|
+
}
|
|
88
|
+
export function isValidCommand(input) {
|
|
89
|
+
const trimmed = input.trim();
|
|
90
|
+
return SLASH_COMMANDS.some((cmd) => trimmed.startsWith(cmd.name) ||
|
|
91
|
+
cmd.aliases?.some((alias) => trimmed.startsWith(alias)));
|
|
92
|
+
}
|
|
93
|
+
export function getCommandArgsHint(commandName) {
|
|
94
|
+
const command = SLASH_COMMANDS.find((cmd) => cmd.name === commandName);
|
|
95
|
+
return command?.argsHint;
|
|
96
|
+
}
|
|
97
|
+
export function insertSlashCommand(_input, selectedCommand) {
|
|
98
|
+
return `${selectedCommand} `;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=slashCommandProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slashCommandProcessor.js","sourceRoot":"","sources":["../../../src/ui/hooks/slashCommandProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface CommandBrowserState {
|
|
2
|
+
showCommandBrowser: boolean;
|
|
3
|
+
partialCommand: string;
|
|
4
|
+
commandArgs: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CommandBrowserActions {
|
|
7
|
+
handleCommandSelect: (command: string, shouldSubmit: boolean, input: string, onSubmit: (value: string) => void) => string | null;
|
|
8
|
+
handleCommandBrowserCancel: () => void;
|
|
9
|
+
resetCommandBrowser: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useCommandBrowserState(input: string, isProcessing: boolean): CommandBrowserState & CommandBrowserActions;
|
|
12
|
+
//# sourceMappingURL=useCommandBrowserState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCommandBrowserState.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useCommandBrowserState.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;IACjI,0BAA0B,EAAE,MAAM,IAAI,CAAC;IACvC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GACpB,mBAAmB,GAAG,qBAAqB,CAwE7C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { detectSlashTrigger, insertSlashCommand } from './slashCommandProcessor.js';
|
|
3
|
+
export function useCommandBrowserState(input, isProcessing) {
|
|
4
|
+
const [showCommandBrowser, setShowCommandBrowser] = useState(false);
|
|
5
|
+
const [partialCommand, setPartialCommand] = useState('');
|
|
6
|
+
const [commandArgs, setCommandArgs] = useState('');
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (isProcessing) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!input) {
|
|
12
|
+
if (showCommandBrowser) {
|
|
13
|
+
setShowCommandBrowser(false);
|
|
14
|
+
setPartialCommand('');
|
|
15
|
+
setCommandArgs('');
|
|
16
|
+
}
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const slashInfo = detectSlashTrigger(input);
|
|
20
|
+
if (slashInfo.detected && !showCommandBrowser) {
|
|
21
|
+
setShowCommandBrowser(true);
|
|
22
|
+
setPartialCommand(slashInfo.partialCommand);
|
|
23
|
+
setCommandArgs(slashInfo.args);
|
|
24
|
+
}
|
|
25
|
+
else if (slashInfo.detected && showCommandBrowser) {
|
|
26
|
+
setPartialCommand(slashInfo.partialCommand);
|
|
27
|
+
setCommandArgs(slashInfo.args);
|
|
28
|
+
}
|
|
29
|
+
else if (!slashInfo.detected && showCommandBrowser) {
|
|
30
|
+
setShowCommandBrowser(false);
|
|
31
|
+
setPartialCommand('');
|
|
32
|
+
setCommandArgs('');
|
|
33
|
+
}
|
|
34
|
+
}, [input, isProcessing, showCommandBrowser]);
|
|
35
|
+
const handleCommandSelect = useCallback((command, shouldSubmit, currentInput, onSubmit) => {
|
|
36
|
+
setShowCommandBrowser(false);
|
|
37
|
+
setPartialCommand('');
|
|
38
|
+
setCommandArgs('');
|
|
39
|
+
if (shouldSubmit) {
|
|
40
|
+
onSubmit(command);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return insertSlashCommand(currentInput, command);
|
|
45
|
+
}
|
|
46
|
+
}, []);
|
|
47
|
+
const handleCommandBrowserCancel = useCallback(() => {
|
|
48
|
+
setShowCommandBrowser(false);
|
|
49
|
+
setPartialCommand('');
|
|
50
|
+
setCommandArgs('');
|
|
51
|
+
}, []);
|
|
52
|
+
const resetCommandBrowser = useCallback(() => {
|
|
53
|
+
setShowCommandBrowser(false);
|
|
54
|
+
setPartialCommand('');
|
|
55
|
+
setCommandArgs('');
|
|
56
|
+
}, []);
|
|
57
|
+
return {
|
|
58
|
+
showCommandBrowser,
|
|
59
|
+
partialCommand,
|
|
60
|
+
commandArgs,
|
|
61
|
+
handleCommandSelect,
|
|
62
|
+
handleCommandBrowserCancel,
|
|
63
|
+
resetCommandBrowser,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=useCommandBrowserState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCommandBrowserState.js","sourceRoot":"","sources":["../../../src/ui/hooks/useCommandBrowserState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FileItem } from './useFileList.js';
|
|
2
|
+
export interface FileBrowserState {
|
|
3
|
+
showFileBrowser: boolean;
|
|
4
|
+
atPosition: number;
|
|
5
|
+
filterText: string;
|
|
6
|
+
cachedFileList: FileItem[];
|
|
7
|
+
isLoadingFiles: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface FileBrowserActions {
|
|
10
|
+
handleFileSelect: (filePaths: string[], input: string) => string;
|
|
11
|
+
handleFileBrowserCancel: () => void;
|
|
12
|
+
resetFileBrowser: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useFileBrowserState(input: string, isProcessing: boolean): FileBrowserState & FileBrowserActions;
|
|
15
|
+
//# sourceMappingURL=useFileBrowserState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileBrowserState.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useFileBrowserState.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GACpB,gBAAgB,GAAG,kBAAkB,CAuFvC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { loadFileList } from './useFileList.js';
|
|
3
|
+
import { detectAtTrigger, insertFilePaths } from './atFileProcessor.js';
|
|
4
|
+
export function useFileBrowserState(input, isProcessing) {
|
|
5
|
+
const [showFileBrowser, setShowFileBrowser] = useState(false);
|
|
6
|
+
const [atPosition, setAtPosition] = useState(-1);
|
|
7
|
+
const [filterText, setFilterText] = useState('');
|
|
8
|
+
const [cachedFileList, setCachedFileList] = useState([]);
|
|
9
|
+
const [isLoadingFiles, setIsLoadingFiles] = useState(true);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
let mounted = true;
|
|
12
|
+
const preloadFiles = async () => {
|
|
13
|
+
try {
|
|
14
|
+
const files = await loadFileList();
|
|
15
|
+
if (mounted) {
|
|
16
|
+
setCachedFileList(files);
|
|
17
|
+
setIsLoadingFiles(false);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (mounted) {
|
|
22
|
+
console.error('Failed to preload file list:', error);
|
|
23
|
+
setIsLoadingFiles(false);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
preloadFiles();
|
|
28
|
+
return () => {
|
|
29
|
+
mounted = false;
|
|
30
|
+
};
|
|
31
|
+
}, []);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (isProcessing) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const triggerInfo = detectAtTrigger(input);
|
|
37
|
+
if (triggerInfo.detected && !showFileBrowser) {
|
|
38
|
+
setShowFileBrowser(true);
|
|
39
|
+
setAtPosition(triggerInfo.position);
|
|
40
|
+
setFilterText(triggerInfo.filter);
|
|
41
|
+
}
|
|
42
|
+
else if (triggerInfo.detected && showFileBrowser) {
|
|
43
|
+
setFilterText(triggerInfo.filter);
|
|
44
|
+
}
|
|
45
|
+
else if (!triggerInfo.detected && showFileBrowser) {
|
|
46
|
+
setShowFileBrowser(false);
|
|
47
|
+
setAtPosition(-1);
|
|
48
|
+
setFilterText('');
|
|
49
|
+
}
|
|
50
|
+
}, [input, isProcessing, showFileBrowser]);
|
|
51
|
+
const handleFileSelect = useCallback((filePaths, currentInput) => {
|
|
52
|
+
const newInput = insertFilePaths(currentInput, atPosition, filterText.length, filePaths);
|
|
53
|
+
setShowFileBrowser(false);
|
|
54
|
+
setAtPosition(-1);
|
|
55
|
+
setFilterText('');
|
|
56
|
+
return newInput;
|
|
57
|
+
}, [atPosition, filterText.length]);
|
|
58
|
+
const handleFileBrowserCancel = useCallback(() => {
|
|
59
|
+
setShowFileBrowser(false);
|
|
60
|
+
setAtPosition(-1);
|
|
61
|
+
setFilterText('');
|
|
62
|
+
}, []);
|
|
63
|
+
const resetFileBrowser = useCallback(() => {
|
|
64
|
+
setShowFileBrowser(false);
|
|
65
|
+
setAtPosition(-1);
|
|
66
|
+
setFilterText('');
|
|
67
|
+
}, []);
|
|
68
|
+
return {
|
|
69
|
+
showFileBrowser,
|
|
70
|
+
atPosition,
|
|
71
|
+
filterText,
|
|
72
|
+
cachedFileList,
|
|
73
|
+
isLoadingFiles,
|
|
74
|
+
handleFileSelect,
|
|
75
|
+
handleFileBrowserCancel,
|
|
76
|
+
resetFileBrowser,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=useFileBrowserState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileBrowserState.js","sourceRoot":"","sources":["../../../src/ui/hooks/useFileBrowserState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface FileItem {
|
|
2
|
+
name: string;
|
|
3
|
+
type: 'file' | 'directory';
|
|
4
|
+
path: string;
|
|
5
|
+
}
|
|
6
|
+
interface UseFileListOptions {
|
|
7
|
+
filter?: string;
|
|
8
|
+
maxResults?: number;
|
|
9
|
+
cachedFiles?: FileItem[];
|
|
10
|
+
}
|
|
11
|
+
interface UseFileListResult {
|
|
12
|
+
files: FileItem[];
|
|
13
|
+
loading: boolean;
|
|
14
|
+
error: string | null;
|
|
15
|
+
totalCount: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function loadFileList(): Promise<FileItem[]>;
|
|
18
|
+
export declare function useFileList(options?: UseFileListOptions): UseFileListResult;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=useFileList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileList.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useFileList.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CA+DxD;AAMD,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CA6B/E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { listFilesTool } from '../../tools/llm/simple/file-tools.js';
|
|
3
|
+
export async function loadFileList() {
|
|
4
|
+
try {
|
|
5
|
+
const result = await listFilesTool.execute({ directory_path: '.', recursive: true });
|
|
6
|
+
if (!result.success) {
|
|
7
|
+
console.error('Failed to load files:', result.error);
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
const files = JSON.parse(result.result || '[]');
|
|
11
|
+
const filteredFiles = files.filter((file) => {
|
|
12
|
+
const pathParts = file.path.split('/');
|
|
13
|
+
return !pathParts.some((part) => part.startsWith('.') ||
|
|
14
|
+
part === 'node_modules' ||
|
|
15
|
+
part === 'dist' ||
|
|
16
|
+
part === 'build' ||
|
|
17
|
+
part === 'coverage');
|
|
18
|
+
});
|
|
19
|
+
const filesOnly = filteredFiles.filter((file) => file.type === 'file');
|
|
20
|
+
filesOnly.sort((a, b) => {
|
|
21
|
+
const depthA = a.path.split('/').length - 1;
|
|
22
|
+
const depthB = b.path.split('/').length - 1;
|
|
23
|
+
if (depthA !== depthB) {
|
|
24
|
+
return depthA - depthB;
|
|
25
|
+
}
|
|
26
|
+
return a.path.localeCompare(b.path);
|
|
27
|
+
});
|
|
28
|
+
return filesOnly;
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
console.error('Error loading file list:', err);
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function useFileList(options = {}) {
|
|
36
|
+
const { filter = '', maxResults = 10, cachedFiles = [] } = options;
|
|
37
|
+
const allFiles = cachedFiles;
|
|
38
|
+
const loading = false;
|
|
39
|
+
const error = null;
|
|
40
|
+
const filteredFiles = useMemo(() => {
|
|
41
|
+
if (!filter)
|
|
42
|
+
return allFiles;
|
|
43
|
+
const lowerFilter = filter.toLowerCase();
|
|
44
|
+
return allFiles.filter((file) => file.path.toLowerCase().includes(lowerFilter));
|
|
45
|
+
}, [allFiles, filter]);
|
|
46
|
+
const limitedFiles = useMemo(() => {
|
|
47
|
+
return filteredFiles.slice(0, maxResults);
|
|
48
|
+
}, [filteredFiles, maxResults]);
|
|
49
|
+
return {
|
|
50
|
+
files: limitedFiles,
|
|
51
|
+
loading,
|
|
52
|
+
error,
|
|
53
|
+
totalCount: filteredFiles.length,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=useFileList.js.map
|