@theia/ai-ide 1.75.0-next.8 → 1.75.0
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/lib/browser/ai-allow-all-mode-chat-banner.js +2 -20
- package/lib/browser/ai-allow-all-mode-chat-banner.js.map +1 -1
- package/lib/browser/ai-configuration/agent-icon.d.ts +16 -0
- package/lib/browser/ai-configuration/agent-icon.d.ts.map +1 -0
- package/lib/browser/ai-configuration/agent-icon.js +38 -0
- package/lib/browser/ai-configuration/agent-icon.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.d.ts +36 -0
- package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.js +163 -0
- package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts +50 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.js +208 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js +139 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.d.ts +13 -0
- package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js +48 -0
- package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.d.ts +22 -0
- package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.js +72 -0
- package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.js +126 -0
- package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-resource.d.ts +10 -0
- package/lib/browser/ai-configuration/ai-configuration-resource.d.ts.map +1 -0
- package/lib/browser/ai-configuration/{components/configuration-section.js → ai-configuration-resource.js} +11 -11
- package/lib/browser/ai-configuration/ai-configuration-resource.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-search-widget.d.ts +29 -0
- package/lib/browser/ai-configuration/ai-configuration-search-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-search-widget.js +106 -0
- package/lib/browser/ai-configuration/ai-configuration-search-widget.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-search.d.ts +18 -0
- package/lib/browser/ai-configuration/ai-configuration-search.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-search.js +45 -0
- package/lib/browser/ai-configuration/ai-configuration-search.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-search.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/ai-configuration-search.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-search.spec.js +79 -0
- package/lib/browser/ai-configuration/ai-configuration-search.spec.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-model.d.ts +8 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-model.d.ts.map +1 -0
- package/lib/browser/ai-configuration/{base/ai-configuration-base-widget.js → ai-configuration-tree-model.js} +11 -14
- package/lib/browser/ai-configuration/ai-configuration-tree-model.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.d.ts +57 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.js +134 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.js +134 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts +96 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.js +407 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +38 -4
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +151 -19
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +21 -23
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-widget.js +102 -70
- package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts +56 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js +195 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js +140 -0
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-chips.d.ts +15 -0
- package/lib/browser/ai-configuration/categories/agent-chips.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-chips.js +19 -0
- package/lib/browser/ai-configuration/categories/agent-chips.js.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts +37 -0
- package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-detail-model.js +99 -0
- package/lib/browser/ai-configuration/categories/agent-detail-model.js.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-detail-view.d.ts +28 -0
- package/lib/browser/ai-configuration/categories/agent-detail-view.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agent-detail-view.js +135 -0
- package/lib/browser/ai-configuration/categories/agent-detail-view.js.map +1 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts +78 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.js +352 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.js +99 -0
- package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.d.ts +93 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.js +313 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.spec.js +213 -0
- package/lib/browser/ai-configuration/categories/general-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts +53 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js +241 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js +75 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts +72 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.js +227 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js +145 -0
- package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.d.ts +114 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.js +341 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.js +199 -0
- package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts +84 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js +341 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js +184 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.d.ts +38 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js +130 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.js +51 -0
- package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.d.ts +60 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.js +302 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.js +111 -0
- package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.d.ts +72 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.js +245 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.js.map +1 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.js +131 -0
- package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.js.map +1 -0
- package/lib/browser/ai-configuration/components/agent-notification-settings.d.ts +6 -2
- package/lib/browser/ai-configuration/components/agent-notification-settings.d.ts.map +1 -1
- package/lib/browser/ai-configuration/components/agent-notification-settings.js +15 -21
- package/lib/browser/ai-configuration/components/agent-notification-settings.js.map +1 -1
- package/lib/browser/ai-configuration/language-model-renderer.d.ts +25 -1
- package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
- package/lib/browser/ai-configuration/language-model-renderer.js +159 -63
- package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
- package/lib/browser/ai-configuration/language-model-renderer.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/language-model-renderer.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.spec.js +93 -0
- package/lib/browser/ai-configuration/language-model-renderer.spec.js.map +1 -0
- package/lib/browser/ai-sessions-widget.js +12 -16
- package/lib/browser/ai-sessions-widget.js.map +1 -1
- package/lib/browser/app-tester-chat-agent.d.ts +2 -0
- package/lib/browser/app-tester-chat-agent.d.ts.map +1 -1
- package/lib/browser/app-tester-chat-agent.js +5 -0
- package/lib/browser/app-tester-chat-agent.js.map +1 -1
- package/lib/browser/architect-agent.d.ts +2 -0
- package/lib/browser/architect-agent.d.ts.map +1 -1
- package/lib/browser/architect-agent.js +5 -0
- package/lib/browser/architect-agent.js.map +1 -1
- package/lib/browser/architect-prompt-template.d.ts.map +1 -1
- package/lib/browser/architect-prompt-template.js +7 -0
- package/lib/browser/architect-prompt-template.js.map +1 -1
- package/lib/browser/chat-session-item.d.ts.map +1 -1
- package/lib/browser/chat-session-item.js +17 -30
- package/lib/browser/chat-session-item.js.map +1 -1
- package/lib/browser/chat-session-list-components.js +7 -30
- package/lib/browser/chat-session-list-components.js.map +1 -1
- package/lib/browser/chat-session-list-service.d.ts +2 -1
- package/lib/browser/chat-session-list-service.d.ts.map +1 -1
- package/lib/browser/chat-session-list-service.js +6 -1
- package/lib/browser/chat-session-list-service.js.map +1 -1
- package/lib/browser/chat-sessions-welcome-message-provider.js +3 -21
- package/lib/browser/chat-sessions-welcome-message-provider.js.map +1 -1
- package/lib/browser/code-reviewer-agent.d.ts +2 -0
- package/lib/browser/code-reviewer-agent.d.ts.map +1 -1
- package/lib/browser/code-reviewer-agent.js +5 -0
- package/lib/browser/code-reviewer-agent.js.map +1 -1
- package/lib/browser/coder-agent.d.ts +2 -0
- package/lib/browser/coder-agent.d.ts.map +1 -1
- package/lib/browser/coder-agent.js +6 -1
- package/lib/browser/coder-agent.js.map +1 -1
- package/lib/browser/context-file-validation-service-impl.spec.js +2 -0
- package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -1
- package/lib/browser/create-skill-agent.d.ts +2 -0
- package/lib/browser/create-skill-agent.d.ts.map +1 -1
- package/lib/browser/create-skill-agent.js +5 -0
- package/lib/browser/create-skill-agent.js.map +1 -1
- package/lib/browser/explore-agent.d.ts +2 -0
- package/lib/browser/explore-agent.d.ts.map +1 -1
- package/lib/browser/explore-agent.js +5 -0
- package/lib/browser/explore-agent.js.map +1 -1
- package/lib/browser/file-changeset-functions.d.ts +7 -1
- package/lib/browser/file-changeset-functions.d.ts.map +1 -1
- package/lib/browser/file-changeset-functions.js +62 -20
- package/lib/browser/file-changeset-functions.js.map +1 -1
- package/lib/browser/file-changeset-functions.spec.js +130 -1
- package/lib/browser/file-changeset-functions.spec.js.map +1 -1
- package/lib/browser/frontend-module.d.ts.map +1 -1
- package/lib/browser/frontend-module.js +65 -59
- package/lib/browser/frontend-module.js.map +1 -1
- package/lib/browser/github-chat-agent.d.ts +2 -1
- package/lib/browser/github-chat-agent.d.ts.map +1 -1
- package/lib/browser/github-chat-agent.js +5 -0
- package/lib/browser/github-chat-agent.js.map +1 -1
- package/lib/browser/github-repo-variable-contribution.d.ts +2 -1
- package/lib/browser/github-repo-variable-contribution.d.ts.map +1 -1
- package/lib/browser/github-repo-variable-contribution.js +6 -1
- package/lib/browser/github-repo-variable-contribution.js.map +1 -1
- package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
- package/lib/browser/ide-chat-welcome-message-provider.js +31 -118
- package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
- package/lib/browser/memory-capability-contribution.d.ts +8 -0
- package/lib/browser/memory-capability-contribution.d.ts.map +1 -0
- package/lib/browser/memory-capability-contribution.js +88 -0
- package/lib/browser/memory-capability-contribution.js.map +1 -0
- package/lib/browser/memory-capability-contribution.spec.d.ts +2 -0
- package/lib/browser/memory-capability-contribution.spec.d.ts.map +1 -0
- package/lib/browser/memory-capability-contribution.spec.js +74 -0
- package/lib/browser/memory-capability-contribution.spec.js.map +1 -0
- package/lib/browser/memory-directory-variable-contribution.d.ts +41 -0
- package/lib/browser/memory-directory-variable-contribution.d.ts.map +1 -0
- package/lib/browser/memory-directory-variable-contribution.js +107 -0
- package/lib/browser/memory-directory-variable-contribution.js.map +1 -0
- package/lib/browser/memory-directory-variable-contribution.spec.d.ts +2 -0
- package/lib/browser/memory-directory-variable-contribution.spec.d.ts.map +1 -0
- package/lib/browser/memory-directory-variable-contribution.spec.js +98 -0
- package/lib/browser/memory-directory-variable-contribution.spec.js.map +1 -0
- package/lib/browser/open-editors-hint-contribution.d.ts +7 -0
- package/lib/browser/open-editors-hint-contribution.d.ts.map +1 -0
- package/lib/browser/open-editors-hint-contribution.js +43 -0
- package/lib/browser/open-editors-hint-contribution.js.map +1 -0
- package/lib/browser/project-info-agent.d.ts +2 -0
- package/lib/browser/project-info-agent.d.ts.map +1 -1
- package/lib/browser/project-info-agent.js +5 -0
- package/lib/browser/project-info-agent.js.map +1 -1
- package/lib/browser/review/pr-review-agent.d.ts +2 -0
- package/lib/browser/review/pr-review-agent.d.ts.map +1 -1
- package/lib/browser/review/pr-review-agent.js +5 -0
- package/lib/browser/review/pr-review-agent.js.map +1 -1
- package/lib/browser/summarize-session-command-contribution.d.ts +2 -1
- package/lib/browser/summarize-session-command-contribution.d.ts.map +1 -1
- package/lib/browser/summarize-session-command-contribution.js +6 -1
- package/lib/browser/summarize-session-command-contribution.js.map +1 -1
- package/lib/browser/task-context-file-storage-service.d.ts.map +1 -1
- package/lib/browser/task-context-file-storage-service.js +1 -0
- package/lib/browser/task-context-file-storage-service.js.map +1 -1
- package/lib/browser/todo-tool-renderer.js +11 -19
- package/lib/browser/todo-tool-renderer.js.map +1 -1
- package/lib/browser/user-interaction-tool-renderer.js +39 -83
- package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
- package/lib/browser/user-interaction-tool.d.ts +2 -0
- package/lib/browser/user-interaction-tool.d.ts.map +1 -1
- package/lib/browser/user-interaction-tool.js +7 -1
- package/lib/browser/user-interaction-tool.js.map +1 -1
- package/lib/browser/user-interaction-tool.spec.js +4 -2
- package/lib/browser/user-interaction-tool.spec.js.map +1 -1
- package/lib/browser/workspace-functions.d.ts +45 -7
- package/lib/browser/workspace-functions.d.ts.map +1 -1
- package/lib/browser/workspace-functions.js +108 -70
- package/lib/browser/workspace-functions.js.map +1 -1
- package/lib/browser/workspace-functions.spec.js +139 -9
- package/lib/browser/workspace-functions.spec.js.map +1 -1
- package/lib/browser/workspace-launch-provider.spec.js +3 -0
- package/lib/browser/workspace-launch-provider.spec.js.map +1 -1
- package/lib/browser/workspace-search-provider.d.ts.map +1 -1
- package/lib/browser/workspace-search-provider.js +4 -7
- package/lib/browser/workspace-search-provider.js.map +1 -1
- package/lib/browser/workspace-search-provider.spec.js +1 -2
- package/lib/browser/workspace-search-provider.spec.js.map +1 -1
- package/lib/browser/workspace-task-provider.spec.js +4 -0
- package/lib/browser/workspace-task-provider.spec.js.map +1 -1
- package/lib/common/coder-replace-prompt-template.d.ts +0 -2
- package/lib/common/coder-replace-prompt-template.d.ts.map +1 -1
- package/lib/common/coder-replace-prompt-template.js +10 -11
- package/lib/common/coder-replace-prompt-template.js.map +1 -1
- package/lib/common/command-chat-agents.d.ts +2 -1
- package/lib/common/command-chat-agents.d.ts.map +1 -1
- package/lib/common/command-chat-agents.js +6 -1
- package/lib/common/command-chat-agents.js.map +1 -1
- package/lib/common/open-editors-hint-fragment-id.d.ts +2 -0
- package/lib/common/open-editors-hint-fragment-id.d.ts.map +1 -0
- package/lib/{browser/ai-configuration/components/empty-state.js → common/open-editors-hint-fragment-id.js} +5 -11
- package/lib/common/open-editors-hint-fragment-id.js.map +1 -0
- package/lib/common/orchestrator-chat-agent.d.ts +2 -1
- package/lib/common/orchestrator-chat-agent.d.ts.map +1 -1
- package/lib/common/orchestrator-chat-agent.js +5 -0
- package/lib/common/orchestrator-chat-agent.js.map +1 -1
- package/lib/common/universal-chat-agent.d.ts +2 -0
- package/lib/common/universal-chat-agent.d.ts.map +1 -1
- package/lib/common/universal-chat-agent.js +5 -0
- package/lib/common/universal-chat-agent.js.map +1 -1
- package/lib/common/universal-prompt-template.d.ts.map +1 -1
- package/lib/common/universal-prompt-template.js +3 -0
- package/lib/common/universal-prompt-template.js.map +1 -1
- package/lib/common/workspace-preferences.js +2 -2
- package/lib/common/workspace-preferences.js.map +1 -1
- package/lib/common/workspace-search-provider-util.d.ts +2 -1
- package/lib/common/workspace-search-provider-util.d.ts.map +1 -1
- package/lib/common/workspace-search-provider-util.js +3 -2
- package/lib/common/workspace-search-provider-util.js.map +1 -1
- package/lib/common/workspace-search-provider-util.spec.d.ts +2 -0
- package/lib/common/workspace-search-provider-util.spec.d.ts.map +1 -0
- package/lib/common/workspace-search-provider-util.spec.js +55 -0
- package/lib/common/workspace-search-provider-util.spec.js.map +1 -0
- package/lib/node/github-repo-service-impl.d.ts +2 -0
- package/lib/node/github-repo-service-impl.d.ts.map +1 -1
- package/lib/node/github-repo-service-impl.js +7 -1
- package/lib/node/github-repo-service-impl.js.map +1 -1
- package/package.json +26 -25
- package/src/browser/ai-configuration/agent-icon.ts +37 -0
- package/src/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.ts +164 -0
- package/src/browser/ai-configuration/ai-configuration-detail-widget.spec.ts +165 -0
- package/src/browser/ai-configuration/ai-configuration-detail-widget.tsx +237 -0
- package/src/browser/ai-configuration/ai-configuration-label-provider-contribution.ts +47 -0
- package/src/browser/ai-configuration/ai-configuration-open-preference-renderer.ts +64 -0
- package/src/browser/ai-configuration/ai-configuration-preference-ownership.spec.ts +135 -0
- package/src/browser/ai-configuration/{components/configuration-section.tsx → ai-configuration-resource.ts} +9 -19
- package/src/browser/ai-configuration/ai-configuration-search-widget.tsx +135 -0
- package/src/browser/ai-configuration/ai-configuration-search.spec.ts +91 -0
- package/src/browser/ai-configuration/ai-configuration-search.ts +43 -0
- package/src/browser/ai-configuration/{components/empty-state.tsx → ai-configuration-tree-model.ts} +7 -11
- package/src/browser/ai-configuration/ai-configuration-tree-nodes.spec.ts +150 -0
- package/src/browser/ai-configuration/ai-configuration-tree-nodes.ts +167 -0
- package/src/browser/ai-configuration/ai-configuration-tree-widget.tsx +457 -0
- package/src/browser/ai-configuration/ai-configuration-view-contribution.ts +156 -18
- package/src/browser/ai-configuration/ai-configuration-widget.tsx +107 -75
- package/src/browser/ai-configuration/categories/agent-capabilities-settings.spec.ts +161 -0
- package/src/browser/ai-configuration/categories/agent-capabilities-settings.tsx +340 -0
- package/src/browser/ai-configuration/categories/agent-chips.tsx +51 -0
- package/src/browser/ai-configuration/categories/agent-detail-model.ts +152 -0
- package/src/browser/ai-configuration/categories/agent-detail-view.tsx +329 -0
- package/src/browser/ai-configuration/categories/agents-configuration-category.spec.ts +119 -0
- package/src/browser/ai-configuration/categories/agents-configuration-category.tsx +431 -0
- package/src/browser/ai-configuration/categories/general-configuration-category.spec.ts +225 -0
- package/src/browser/ai-configuration/categories/general-configuration-category.tsx +465 -0
- package/src/browser/ai-configuration/categories/model-aliases-configuration-category.spec.ts +87 -0
- package/src/browser/ai-configuration/categories/model-aliases-configuration-category.tsx +286 -0
- package/src/browser/ai-configuration/categories/models-configuration-category.spec.ts +167 -0
- package/src/browser/ai-configuration/categories/models-configuration-category.tsx +264 -0
- package/src/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.ts +250 -0
- package/src/browser/ai-configuration/categories/prompt-snippets-configuration-category.tsx +438 -0
- package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.ts +226 -0
- package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx +419 -0
- package/src/browser/ai-configuration/categories/token-usage-configuration-category.spec.ts +57 -0
- package/src/browser/ai-configuration/categories/token-usage-configuration-category.tsx +185 -0
- package/src/browser/ai-configuration/categories/tools-configuration-category.spec.ts +130 -0
- package/src/browser/ai-configuration/categories/tools-configuration-category.tsx +421 -0
- package/src/browser/ai-configuration/categories/variables-configuration-category.spec.ts +154 -0
- package/src/browser/ai-configuration/categories/variables-configuration-category.tsx +322 -0
- package/src/browser/ai-configuration/components/agent-notification-settings.tsx +38 -33
- package/src/browser/ai-configuration/language-model-renderer.spec.ts +100 -0
- package/src/browser/ai-configuration/language-model-renderer.tsx +244 -100
- package/src/browser/app-tester-chat-agent.ts +5 -2
- package/src/browser/architect-agent.ts +5 -2
- package/src/browser/architect-prompt-template.ts +7 -0
- package/src/browser/chat-session-item.tsx +2 -4
- package/src/browser/chat-session-list-service.ts +6 -3
- package/src/browser/code-reviewer-agent.ts +5 -2
- package/src/browser/coder-agent.ts +7 -5
- package/src/browser/context-file-validation-service-impl.spec.ts +3 -2
- package/src/browser/create-skill-agent.ts +5 -2
- package/src/browser/explore-agent.ts +5 -2
- package/src/browser/file-changeset-functions.spec.ts +158 -5
- package/src/browser/file-changeset-functions.ts +61 -23
- package/src/browser/frontend-module.ts +76 -63
- package/src/browser/github-chat-agent.ts +5 -2
- package/src/browser/github-repo-variable-contribution.ts +6 -3
- package/src/browser/ide-chat-welcome-message-provider.tsx +11 -11
- package/src/browser/memory-capability-contribution.spec.ts +85 -0
- package/src/browser/memory-capability-contribution.ts +86 -0
- package/src/browser/memory-directory-variable-contribution.spec.ts +113 -0
- package/src/browser/memory-directory-variable-contribution.ts +113 -0
- package/src/browser/open-editors-hint-contribution.ts +38 -0
- package/src/browser/project-info-agent.ts +5 -2
- package/src/browser/review/pr-review-agent.ts +5 -2
- package/src/browser/style/ai-configuration-base.css +0 -6
- package/src/browser/style/ai-configuration-shell.css +416 -0
- package/src/browser/style/ai-configuration-table.css +2 -15
- package/src/browser/style/index.css +220 -276
- package/src/browser/summarize-session-command-contribution.ts +6 -3
- package/src/browser/task-context-file-storage-service.ts +5 -2
- package/src/browser/user-interaction-tool.spec.ts +5 -2
- package/src/browser/user-interaction-tool.ts +6 -2
- package/src/browser/workspace-functions.spec.ts +163 -10
- package/src/browser/workspace-functions.ts +121 -72
- package/src/browser/workspace-launch-provider.spec.ts +4 -1
- package/src/browser/workspace-search-provider.spec.ts +1 -2
- package/src/browser/workspace-search-provider.ts +4 -7
- package/src/browser/workspace-task-provider.spec.ts +5 -1
- package/src/common/coder-replace-prompt-template.ts +9 -9
- package/src/common/command-chat-agents.ts +6 -2
- package/src/{browser/ai-configuration/base/ai-configuration-base-widget.tsx → common/open-editors-hint-fragment-id.ts} +2 -22
- package/src/common/orchestrator-chat-agent.ts +5 -2
- package/src/common/universal-chat-agent.ts +5 -2
- package/src/common/universal-prompt-template.ts +3 -0
- package/src/common/workspace-preferences.ts +2 -2
- package/src/common/workspace-search-provider-util.spec.ts +61 -0
- package/src/common/workspace-search-provider-util.ts +3 -2
- package/src/node/github-repo-service-impl.ts +6 -2
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +0 -72
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/agent-configuration-widget.js +0 -620
- package/lib/browser/ai-configuration/agent-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/agent-configuration-widget.spec.d.ts +0 -2
- package/lib/browser/ai-configuration/agent-configuration-widget.spec.d.ts.map +0 -1
- package/lib/browser/ai-configuration/agent-configuration-widget.spec.js +0 -56
- package/lib/browser/ai-configuration/agent-configuration-widget.spec.js.map +0 -1
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts +0 -31
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js +0 -55
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts +0 -13
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js.map +0 -1
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts +0 -23
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js +0 -60
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts +0 -55
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js +0 -96
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts +0 -44
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js +0 -66
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/components/configuration-section.d.ts +0 -12
- package/lib/browser/ai-configuration/components/configuration-section.d.ts.map +0 -1
- package/lib/browser/ai-configuration/components/configuration-section.js.map +0 -1
- package/lib/browser/ai-configuration/components/empty-state.d.ts +0 -10
- package/lib/browser/ai-configuration/components/empty-state.d.ts.map +0 -1
- package/lib/browser/ai-configuration/components/empty-state.js.map +0 -1
- package/lib/browser/ai-configuration/components/expandable-section.d.ts +0 -13
- package/lib/browser/ai-configuration/components/expandable-section.d.ts.map +0 -1
- package/lib/browser/ai-configuration/components/expandable-section.js +0 -31
- package/lib/browser/ai-configuration/components/expandable-section.js.map +0 -1
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +0 -26
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +0 -198
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts +0 -140
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +0 -508
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/skills-configuration-widget.d.ts +0 -29
- package/lib/browser/ai-configuration/skills-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/skills-configuration-widget.js +0 -166
- package/lib/browser/ai-configuration/skills-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/skills-configuration-widget.spec.d.ts +0 -2
- package/lib/browser/ai-configuration/skills-configuration-widget.spec.d.ts.map +0 -1
- package/lib/browser/ai-configuration/skills-configuration-widget.spec.js +0 -191
- package/lib/browser/ai-configuration/skills-configuration-widget.spec.js.map +0 -1
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts +0 -9
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +0 -1
- package/lib/browser/ai-configuration/template-settings-renderer.js +0 -78
- package/lib/browser/ai-configuration/template-settings-renderer.js.map +0 -1
- package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +0 -20
- package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/token-usage-configuration-widget.js +0 -170
- package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +0 -52
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.js +0 -357
- package/lib/browser/ai-configuration/tools-configuration-widget.js.map +0 -1
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +0 -22
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +0 -1
- package/lib/browser/ai-configuration/variable-configuration-widget.js +0 -133
- package/lib/browser/ai-configuration/variable-configuration-widget.js.map +0 -1
- package/src/browser/ai-configuration/agent-configuration-widget.spec.ts +0 -71
- package/src/browser/ai-configuration/agent-configuration-widget.tsx +0 -928
- package/src/browser/ai-configuration/base/ai-card-grid-configuration-widget.tsx +0 -72
- package/src/browser/ai-configuration/base/ai-hierarchical-configuration-widget.tsx +0 -51
- package/src/browser/ai-configuration/base/ai-list-detail-configuration-widget.tsx +0 -140
- package/src/browser/ai-configuration/base/ai-table-configuration-widget.tsx +0 -107
- package/src/browser/ai-configuration/components/expandable-section.tsx +0 -51
- package/src/browser/ai-configuration/model-aliases-configuration-widget.tsx +0 -270
- package/src/browser/ai-configuration/prompt-fragments-configuration-widget.tsx +0 -736
- package/src/browser/ai-configuration/skills-configuration-widget.spec.ts +0 -248
- package/src/browser/ai-configuration/skills-configuration-widget.tsx +0 -229
- package/src/browser/ai-configuration/template-settings-renderer.tsx +0 -125
- package/src/browser/ai-configuration/token-usage-configuration-widget.tsx +0 -214
- package/src/browser/ai-configuration/tools-configuration-widget.tsx +0 -544
- package/src/browser/ai-configuration/variable-configuration-widget.tsx +0 -159
- package/src/browser/style/ai-configuration-cards.css +0 -60
|
@@ -22,7 +22,7 @@ import { open, OpenerService } from '@theia/core/lib/browser';
|
|
|
22
22
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
23
23
|
import { MEMORY_TEXT, MEMORY_TEXT_READONLY, ResourceProvider } from '@theia/core/lib/common/resource';
|
|
24
24
|
import URI from '@theia/core/lib/common/uri';
|
|
25
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
25
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
26
26
|
import { EditorManager } from '@theia/editor/lib/browser';
|
|
27
27
|
import { ScmService } from '@theia/scm/lib/browser/scm-service';
|
|
28
28
|
import { WorkspaceFunctionScope } from './workspace-functions';
|
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
parseUserInteractionArgs,
|
|
40
40
|
resolveContentRef
|
|
41
41
|
} from '../common/user-interaction-tool';
|
|
42
|
+
import { ILogger } from '@theia/core';
|
|
42
43
|
|
|
43
44
|
interface PendingInteraction {
|
|
44
45
|
deferred: Deferred<string>;
|
|
@@ -181,6 +182,9 @@ export class UserInteractionTool implements ToolProvider {
|
|
|
181
182
|
@inject(ResourceProvider)
|
|
182
183
|
protected readonly resourceProvider: ResourceProvider;
|
|
183
184
|
|
|
185
|
+
@inject(ILogger) @named('ai-ide:UserInteractionTool')
|
|
186
|
+
protected readonly logger: ILogger;
|
|
187
|
+
|
|
184
188
|
protected readonly pendingInteractions = new Map<string, PendingInteraction>();
|
|
185
189
|
|
|
186
190
|
getTool(): ToolRequest {
|
|
@@ -299,7 +303,7 @@ export class UserInteractionTool implements ToolProvider {
|
|
|
299
303
|
if (repo) {
|
|
300
304
|
return repo.toUriAtRef(fileUri, ref.gitRef);
|
|
301
305
|
}
|
|
302
|
-
|
|
306
|
+
this.logger.warn(`No SCM repository found to resolve gitRef '${ref.gitRef}' for '${ref.path}'`);
|
|
303
307
|
return undefined;
|
|
304
308
|
}
|
|
305
309
|
return fileUri;
|
|
@@ -20,8 +20,9 @@ import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/front
|
|
|
20
20
|
FrontendApplicationConfigProvider.set({});
|
|
21
21
|
|
|
22
22
|
import { expect } from 'chai';
|
|
23
|
-
import { CancellationTokenSource, OS, PreferenceService } from '@theia/core';
|
|
23
|
+
import { CancellationTokenSource, OS, PreferenceService, ILogger } from '@theia/core';
|
|
24
24
|
import {
|
|
25
|
+
AccessibleRootContribution,
|
|
25
26
|
GetWorkspaceDirectoryStructure,
|
|
26
27
|
FileContentFunction,
|
|
27
28
|
GetWorkspaceFileList,
|
|
@@ -29,6 +30,7 @@ import {
|
|
|
29
30
|
WorkspaceFunctionScope,
|
|
30
31
|
FindFilesByPattern
|
|
31
32
|
} from './workspace-functions';
|
|
33
|
+
import { bindRootContributionProvider } from '@theia/core/lib/common/contribution-provider';
|
|
32
34
|
import { AiConfigurationService, ToolInvocationContext } from '@theia/ai-core';
|
|
33
35
|
import { Container } from '@theia/core/shared/inversify';
|
|
34
36
|
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
@@ -41,6 +43,7 @@ import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-mo
|
|
|
41
43
|
import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
|
|
42
44
|
import { FileSearchService } from '@theia/file-search/lib/common/file-search-service';
|
|
43
45
|
import { Minimatch } from 'minimatch';
|
|
46
|
+
import { MockLogger } from '@theia/core/lib/common/test/mock-logger';
|
|
44
47
|
|
|
45
48
|
const makeFileSearchService = (
|
|
46
49
|
impl?: (searchPattern: string, options: FileSearchService.Options) => Promise<string[]>
|
|
@@ -164,6 +167,7 @@ describe('Workspace Functions Cancellation Tests', () => {
|
|
|
164
167
|
} as unknown as MonacoTextModelService;
|
|
165
168
|
|
|
166
169
|
// Register mocks in the container
|
|
170
|
+
container.bind(ILogger).to(MockLogger);
|
|
167
171
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
168
172
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
169
173
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -289,6 +293,7 @@ describe('FileContentFunction.getArgumentsShortLabel', () => {
|
|
|
289
293
|
getTextDocument: () => undefined
|
|
290
294
|
} as unknown as MonacoWorkspace;
|
|
291
295
|
|
|
296
|
+
container.bind(ILogger).to(MockLogger);
|
|
292
297
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
293
298
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
294
299
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -407,6 +412,7 @@ describe('FileContentFunction handler', () => {
|
|
|
407
412
|
getTextDocument: () => undefined
|
|
408
413
|
} as unknown as MonacoWorkspace;
|
|
409
414
|
|
|
415
|
+
container.bind(ILogger).to(MockLogger);
|
|
410
416
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
411
417
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
412
418
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -772,6 +778,7 @@ describe('FindFilesByPattern.getArgumentsShortLabel', () => {
|
|
|
772
778
|
get: <T>(_path: string, defaultValue: T) => defaultValue
|
|
773
779
|
};
|
|
774
780
|
|
|
781
|
+
container.bind(ILogger).to(MockLogger);
|
|
775
782
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
776
783
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
777
784
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -820,6 +827,15 @@ describe('FindFilesByPattern.findFiles', () => {
|
|
|
820
827
|
before(() => { disableJSDOMInner = enableJSDOM(); });
|
|
821
828
|
after(() => { disableJSDOMInner(); });
|
|
822
829
|
|
|
830
|
+
// External hits are rendered with `Path.fsPath()`, which branches on the backend OS, so the POSIX
|
|
831
|
+
// fixtures below pin it instead of inheriting the OS the tests happen to run on.
|
|
832
|
+
let originalIsWindows: boolean;
|
|
833
|
+
beforeEach(() => {
|
|
834
|
+
originalIsWindows = OS.backend.isWindows;
|
|
835
|
+
OS.backend.isWindows = false;
|
|
836
|
+
});
|
|
837
|
+
afterEach(() => { OS.backend.isWindows = originalIsWindows; });
|
|
838
|
+
|
|
823
839
|
beforeEach(() => {
|
|
824
840
|
container = new Container();
|
|
825
841
|
searchResults = [];
|
|
@@ -855,6 +871,7 @@ describe('FindFilesByPattern.findFiles', () => {
|
|
|
855
871
|
|
|
856
872
|
fileSearchService = makeFileSearchService(async () => searchResults);
|
|
857
873
|
|
|
874
|
+
container.bind(ILogger).to(MockLogger);
|
|
858
875
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
859
876
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
860
877
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -951,6 +968,19 @@ describe('FindFilesByPattern.findFiles', () => {
|
|
|
951
968
|
expect(result.error).to.be.undefined;
|
|
952
969
|
expect(result.files).to.deep.equal(['/external/data/x.ts']);
|
|
953
970
|
});
|
|
971
|
+
|
|
972
|
+
describe('on Windows', () => {
|
|
973
|
+
// The tool promises the returned paths can be passed back to the file tools, so an external
|
|
974
|
+
// hit must be rendered as a native path and not as the URI-style `/c:/...`.
|
|
975
|
+
it('returns native paths for an allow-listed external searchRoot', async () => {
|
|
976
|
+
OS.backend.isWindows = true;
|
|
977
|
+
allowedExternal = ['C:\\external\\data'];
|
|
978
|
+
searchResults = ['file:///c%3A/external/data/x.ts'];
|
|
979
|
+
const result = JSON.parse(await call({ pattern: '**/*.ts', searchRoot: 'C:\\external\\data' }));
|
|
980
|
+
expect(result.error).to.be.undefined;
|
|
981
|
+
expect(result.files).to.deep.equal(['C:\\external\\data\\x.ts']);
|
|
982
|
+
});
|
|
983
|
+
});
|
|
954
984
|
});
|
|
955
985
|
|
|
956
986
|
describe('WorkspaceFunctionScope gitignore caching', () => {
|
|
@@ -992,6 +1022,7 @@ describe('WorkspaceFunctionScope gitignore caching', () => {
|
|
|
992
1022
|
(path === 'ai-features.workspaceFunctions.considerGitIgnore' ? (true as unknown as T) : defaultValue)
|
|
993
1023
|
};
|
|
994
1024
|
|
|
1025
|
+
container.bind(ILogger).to(MockLogger);
|
|
995
1026
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
996
1027
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
997
1028
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1061,6 +1092,7 @@ describe('GetWorkspaceFileList resolves the target directory once', () => {
|
|
|
1061
1092
|
|
|
1062
1093
|
const mockPreferenceService = { get: <T>(_path: string, def: T) => def };
|
|
1063
1094
|
|
|
1095
|
+
container.bind(ILogger).to(MockLogger);
|
|
1064
1096
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1065
1097
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
1066
1098
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1124,6 +1156,7 @@ describe('GetWorkspaceDirectoryStructure preserves empty folders', () => {
|
|
|
1124
1156
|
(path === 'ai-features.workspaceFunctions.userExcludes' ? (['node_modules'] as unknown as T) : def)
|
|
1125
1157
|
};
|
|
1126
1158
|
|
|
1159
|
+
container.bind(ILogger).to(MockLogger);
|
|
1127
1160
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1128
1161
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
1129
1162
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1195,6 +1228,7 @@ describe('FileContentFunction external paths', () => {
|
|
|
1195
1228
|
onDidChangeTrust: () => ({ dispose: () => { /* noop */ } })
|
|
1196
1229
|
} as unknown as AiConfigurationService;
|
|
1197
1230
|
|
|
1231
|
+
container.bind(ILogger).to(MockLogger);
|
|
1198
1232
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1199
1233
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
1200
1234
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1241,7 +1275,7 @@ describe('FileContentFunction external paths', () => {
|
|
|
1241
1275
|
allowedPaths = ['/external/configs'];
|
|
1242
1276
|
const result = await callTool('/external/configs/../secrets.txt');
|
|
1243
1277
|
const parsed = JSON.parse(result);
|
|
1244
|
-
expect(parsed.error).to.include('Invalid
|
|
1278
|
+
expect(parsed.error).to.include('Invalid path');
|
|
1245
1279
|
});
|
|
1246
1280
|
|
|
1247
1281
|
it('expands ~ in allow-list entries', async () => {
|
|
@@ -1266,7 +1300,7 @@ describe('FileContentFunction external paths', () => {
|
|
|
1266
1300
|
allowedPaths = ['/home/test/configs'];
|
|
1267
1301
|
const result = await callTool('~/configs/../secrets.txt');
|
|
1268
1302
|
const parsed = JSON.parse(result);
|
|
1269
|
-
expect(parsed.error).to.include('Invalid
|
|
1303
|
+
expect(parsed.error).to.include('Invalid path');
|
|
1270
1304
|
});
|
|
1271
1305
|
|
|
1272
1306
|
it('still allows workspace-relative paths', async () => {
|
|
@@ -1301,6 +1335,105 @@ describe('FileContentFunction external paths', () => {
|
|
|
1301
1335
|
});
|
|
1302
1336
|
});
|
|
1303
1337
|
|
|
1338
|
+
describe('WorkspaceFunctionScope accessible root contributions', () => {
|
|
1339
|
+
let container: Container;
|
|
1340
|
+
let fileContentFunction: FileContentFunction;
|
|
1341
|
+
let contributedRoots: URI[];
|
|
1342
|
+
let contributionFails: boolean;
|
|
1343
|
+
let rootQueries: number;
|
|
1344
|
+
|
|
1345
|
+
let disableJSDOMInner: () => void;
|
|
1346
|
+
before(() => { disableJSDOMInner = enableJSDOM(); });
|
|
1347
|
+
after(() => { disableJSDOMInner(); });
|
|
1348
|
+
|
|
1349
|
+
beforeEach(() => {
|
|
1350
|
+
container = new Container();
|
|
1351
|
+
container.bind(ILogger).to(MockLogger);
|
|
1352
|
+
contributedRoots = [];
|
|
1353
|
+
contributionFails = false;
|
|
1354
|
+
rootQueries = 0;
|
|
1355
|
+
|
|
1356
|
+
const mockWorkspaceService = {
|
|
1357
|
+
roots: [{ resource: new URI('file:///workspace') }],
|
|
1358
|
+
tryGetRoots: () => [{ resource: new URI('file:///workspace') }],
|
|
1359
|
+
onWorkspaceChanged: () => ({ dispose: () => { } })
|
|
1360
|
+
} as unknown as WorkspaceService;
|
|
1361
|
+
|
|
1362
|
+
const mockFileService = {
|
|
1363
|
+
exists: async () => true,
|
|
1364
|
+
resolve: async (uri: URI) => ({ isFile: true, isDirectory: false, size: 1024, resource: uri }),
|
|
1365
|
+
read: async (uri: URI) => ({ value: `content-of-${uri.path.toString()}` })
|
|
1366
|
+
} as unknown as FileService;
|
|
1367
|
+
|
|
1368
|
+
const contribution: AccessibleRootContribution = {
|
|
1369
|
+
getRoots: async () => {
|
|
1370
|
+
rootQueries++;
|
|
1371
|
+
if (contributionFails) {
|
|
1372
|
+
throw new Error('cannot resolve roots');
|
|
1373
|
+
}
|
|
1374
|
+
return contributedRoots;
|
|
1375
|
+
}
|
|
1376
|
+
};
|
|
1377
|
+
|
|
1378
|
+
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1379
|
+
container.bind(FileService).toConstantValue(mockFileService);
|
|
1380
|
+
container.bind(PreferenceService).toConstantValue({ get: <T>(_path: string, defaultValue: T) => defaultValue });
|
|
1381
|
+
container.bind(MonacoWorkspace).toConstantValue({ getTextDocument: () => undefined } as unknown as MonacoWorkspace);
|
|
1382
|
+
container.bind(AiConfigurationService).toConstantValue(makeTrustAwareReader());
|
|
1383
|
+
container.bind(EnvVariablesServer).toConstantValue(makeEnvVariablesServer());
|
|
1384
|
+
bindRootContributionProvider(container, AccessibleRootContribution);
|
|
1385
|
+
container.bind(AccessibleRootContribution).toConstantValue(contribution);
|
|
1386
|
+
container.bind(WorkspaceFunctionScope).toSelf();
|
|
1387
|
+
container.bind(FileContentFunction).toSelf();
|
|
1388
|
+
|
|
1389
|
+
fileContentFunction = container.get(FileContentFunction);
|
|
1390
|
+
});
|
|
1391
|
+
|
|
1392
|
+
const callTool = (file: string) =>
|
|
1393
|
+
fileContentFunction.getTool().handler(JSON.stringify({ file }), undefined) as Promise<string>;
|
|
1394
|
+
|
|
1395
|
+
it('allows a file under a contributed root although the allow-list is empty', async () => {
|
|
1396
|
+
contributedRoots = [new URI('file:///config/workspace-metadata/uuid/memory')];
|
|
1397
|
+
const result = await callTool('/config/workspace-metadata/uuid/memory/wiki/index.md');
|
|
1398
|
+
expect(result).to.equal('content-of-/config/workspace-metadata/uuid/memory/wiki/index.md');
|
|
1399
|
+
});
|
|
1400
|
+
|
|
1401
|
+
it('rejects a sibling that only shares the contributed root\'s prefix', async () => {
|
|
1402
|
+
contributedRoots = [new URI('file:///config/memory')];
|
|
1403
|
+
const parsed = JSON.parse(await callTool('/config/memory-other/wiki/index.md'));
|
|
1404
|
+
expect(parsed.error).to.include('not allowed');
|
|
1405
|
+
});
|
|
1406
|
+
|
|
1407
|
+
it('matches a contributed root that carries a trailing separator', async () => {
|
|
1408
|
+
contributedRoots = [new URI('file:///config/memory/')];
|
|
1409
|
+
const result = await callTool('/config/memory/wiki/index.md');
|
|
1410
|
+
expect(result).to.equal('content-of-/config/memory/wiki/index.md');
|
|
1411
|
+
});
|
|
1412
|
+
|
|
1413
|
+
it('re-queries the contributions, so a root that moves needs no invalidation', async () => {
|
|
1414
|
+
contributedRoots = [new URI('file:///config/first/memory')];
|
|
1415
|
+
expect(await callTool('/config/first/memory/notes.md')).to.match(/^content-of-/);
|
|
1416
|
+
|
|
1417
|
+
contributedRoots = [new URI('file:///config/second/memory')];
|
|
1418
|
+
expect(JSON.parse(await callTool('/config/first/memory/notes.md')).error).to.include('not allowed');
|
|
1419
|
+
expect(await callTool('/config/second/memory/notes.md')).to.match(/^content-of-/);
|
|
1420
|
+
expect(rootQueries).to.equal(3);
|
|
1421
|
+
});
|
|
1422
|
+
|
|
1423
|
+
it('keeps checking the other sources when a contribution fails', async () => {
|
|
1424
|
+
contributionFails = true;
|
|
1425
|
+
const parsed = JSON.parse(await callTool('/config/memory/wiki/index.md'));
|
|
1426
|
+
expect(parsed.error).to.include('not allowed');
|
|
1427
|
+
// The workspace itself is unaffected by the broken contribution.
|
|
1428
|
+
expect(await callTool('src/index.ts')).to.equal('content-of-/workspace/src/index.ts');
|
|
1429
|
+
});
|
|
1430
|
+
|
|
1431
|
+
it('is not consulted for paths inside the workspace', async () => {
|
|
1432
|
+
expect(await callTool('src/index.ts')).to.equal('content-of-/workspace/src/index.ts');
|
|
1433
|
+
expect(rootQueries).to.equal(0);
|
|
1434
|
+
});
|
|
1435
|
+
});
|
|
1436
|
+
|
|
1304
1437
|
describe('GetWorkspaceFileList / GetWorkspaceDirectoryStructure with external paths', () => {
|
|
1305
1438
|
let container: Container;
|
|
1306
1439
|
let allowedPaths: string[];
|
|
@@ -1363,6 +1496,7 @@ describe('GetWorkspaceFileList / GetWorkspaceDirectoryStructure with external pa
|
|
|
1363
1496
|
onDidChangeTrust: () => ({ dispose: () => { /* noop */ } })
|
|
1364
1497
|
} as unknown as AiConfigurationService;
|
|
1365
1498
|
|
|
1499
|
+
container.bind(ILogger).to(MockLogger);
|
|
1366
1500
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1367
1501
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
1368
1502
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1427,6 +1561,15 @@ describe('FindFilesByPattern with searchRoot', () => {
|
|
|
1427
1561
|
before(() => { disableJSDOMInner = enableJSDOM(); });
|
|
1428
1562
|
after(() => { disableJSDOMInner(); });
|
|
1429
1563
|
|
|
1564
|
+
// External hits are rendered with `Path.fsPath()`, which branches on the backend OS, so the POSIX
|
|
1565
|
+
// fixtures below pin it instead of inheriting the OS the tests happen to run on.
|
|
1566
|
+
let originalIsWindows: boolean;
|
|
1567
|
+
beforeEach(() => {
|
|
1568
|
+
originalIsWindows = OS.backend.isWindows;
|
|
1569
|
+
OS.backend.isWindows = false;
|
|
1570
|
+
});
|
|
1571
|
+
afterEach(() => { OS.backend.isWindows = originalIsWindows; });
|
|
1572
|
+
|
|
1430
1573
|
beforeEach(() => {
|
|
1431
1574
|
container = new Container();
|
|
1432
1575
|
allowedPaths = [];
|
|
@@ -1453,6 +1596,7 @@ describe('FindFilesByPattern with searchRoot', () => {
|
|
|
1453
1596
|
onDidChangeTrust: () => ({ dispose: () => { /* noop */ } })
|
|
1454
1597
|
} as unknown as AiConfigurationService;
|
|
1455
1598
|
|
|
1599
|
+
container.bind(ILogger).to(MockLogger);
|
|
1456
1600
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1457
1601
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
1458
1602
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1548,6 +1692,7 @@ describe('WorkspaceFunctionScope path-traversal hardening', () => {
|
|
|
1548
1692
|
onDidChangeTrust: () => ({ dispose: () => { /* noop */ } })
|
|
1549
1693
|
} as unknown as AiConfigurationService;
|
|
1550
1694
|
|
|
1695
|
+
container.bind(ILogger).to(MockLogger);
|
|
1551
1696
|
container.bind(WorkspaceService).toConstantValue(mockWorkspaceService);
|
|
1552
1697
|
container.bind(FileService).toConstantValue(mockFileService);
|
|
1553
1698
|
container.bind(PreferenceService).toConstantValue(mockPreferenceService);
|
|
@@ -1683,18 +1828,16 @@ describe('WorkspaceFunctionScope path-traversal hardening', () => {
|
|
|
1683
1828
|
});
|
|
1684
1829
|
});
|
|
1685
1830
|
|
|
1686
|
-
//
|
|
1687
|
-
//
|
|
1688
|
-
// root's string prefix must not pass.
|
|
1831
|
+
// getFileDiagnostics goes through the same `resolveAccessiblePath` gate as every other tool, so a
|
|
1832
|
+
// sibling that merely shares the workspace root's string prefix must not pass.
|
|
1689
1833
|
it('FileDiagnosticProvider rejects sibling-prefix path outside the workspace', async () => {
|
|
1690
1834
|
const diag = container.get(FileDiagnosticProvider);
|
|
1691
1835
|
const handler = diag.getTool().handler;
|
|
1692
|
-
// Workspace root is file:///workspace/project
|
|
1693
|
-
//
|
|
1694
|
-
// would be (incorrectly) admitted.
|
|
1836
|
+
// Workspace root is file:///workspace/project, so file:///workspace/project-other/file.txt is
|
|
1837
|
+
// outside it — and a `..` segment is refused before it can even be resolved.
|
|
1695
1838
|
const result = await handler(JSON.stringify({ file: '../project-other/file.txt' }), undefined);
|
|
1696
1839
|
const parsed = JSON.parse(result as string);
|
|
1697
|
-
expect(parsed.error).to.include('
|
|
1840
|
+
expect(parsed.error).to.include('Invalid path');
|
|
1698
1841
|
});
|
|
1699
1842
|
});
|
|
1700
1843
|
|
|
@@ -1714,6 +1857,7 @@ describe('WorkspaceFunctionScope Multi-Root Tests', () => {
|
|
|
1714
1857
|
|
|
1715
1858
|
beforeEach(() => {
|
|
1716
1859
|
container = new Container();
|
|
1860
|
+
container.bind(ILogger).to(MockLogger);
|
|
1717
1861
|
});
|
|
1718
1862
|
|
|
1719
1863
|
describe('getRootMapping', () => {
|
|
@@ -2035,6 +2179,13 @@ describe('WorkspaceFunctionScope Multi-Root Tests', () => {
|
|
|
2035
2179
|
const result = workspaceScope.resolveRelativePath('app/src/index.ts');
|
|
2036
2180
|
expect(result.toString()).to.equal('file:///workspace/a/app/src/index.ts');
|
|
2037
2181
|
});
|
|
2182
|
+
|
|
2183
|
+
// The forms the external file change notice names files by: a root name for the mapped root, a uri for the other.
|
|
2184
|
+
it('resolves a uri for the unmapped root', async () => {
|
|
2185
|
+
workspaceScope = createScope(['file:///workspace/a/app', 'file:///workspace/b/app']);
|
|
2186
|
+
const unmapped = 'file:///workspace/b/app/src/index.ts';
|
|
2187
|
+
expect((await workspaceScope.resolveAccessiblePath(unmapped)).toString()).to.equal(unmapped);
|
|
2188
|
+
});
|
|
2038
2189
|
});
|
|
2039
2190
|
});
|
|
2040
2191
|
|
|
@@ -2068,6 +2219,7 @@ describe('WorkspaceFunctionScope Multi-Root Tests', () => {
|
|
|
2068
2219
|
onWorkspaceChanged: () => ({ dispose: () => { } })
|
|
2069
2220
|
} as unknown as WorkspaceService;
|
|
2070
2221
|
|
|
2222
|
+
container2.bind(ILogger).to(MockLogger);
|
|
2071
2223
|
container2.bind(WorkspaceService).toConstantValue(mockWorkspaceServiceB);
|
|
2072
2224
|
container2.bind(FileService).toConstantValue({} as FileService);
|
|
2073
2225
|
container2.bind(PreferenceService).toConstantValue({ get: () => false });
|
|
@@ -2189,5 +2341,6 @@ describe('WorkspaceFunctionScope Multi-Root Tests', () => {
|
|
|
2189
2341
|
expect(resolved.toString()).to.equal(fileUri.toString());
|
|
2190
2342
|
}
|
|
2191
2343
|
});
|
|
2344
|
+
|
|
2192
2345
|
});
|
|
2193
2346
|
});
|