@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
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
AIVariable, AIVariableContext, AIVariableContribution, AIVariableResolutionRequest, AIVariableResolver, AIVariableService, ResolvedAIVariable
|
|
19
|
+
} from '@theia/ai-core/lib/common';
|
|
20
|
+
import { MaybePromise, URI, nls } from '@theia/core';
|
|
21
|
+
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
22
|
+
import { WorkspaceMetadataStorageService, WorkspaceMetadataStore } from '@theia/workspace/lib/browser/metadata-storage';
|
|
23
|
+
import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
|
|
24
|
+
import { AccessibleRootContribution } from './workspace-functions';
|
|
25
|
+
|
|
26
|
+
/** Key under which the memory directory is requested from the workspace metadata storage. */
|
|
27
|
+
export const MEMORY_METADATA_STORE_KEY = 'memory';
|
|
28
|
+
|
|
29
|
+
export const MEMORY_DIRECTORY_VARIABLE: AIVariable = {
|
|
30
|
+
id: 'memory-directory',
|
|
31
|
+
name: 'memoryDirectory',
|
|
32
|
+
description: nls.localize('theia/ai/ide/memoryDirectoryVariable/description',
|
|
33
|
+
'The absolute path of the directory in which the agent keeps its memory for the current workspace.')
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Resolves the memory directory of the current workspace and makes it reachable for the AI workspace
|
|
38
|
+
* tools. The directory is the workspace's metadata store, so every workspace has its own memory and none
|
|
39
|
+
* of it ends up in the user's repository.
|
|
40
|
+
*
|
|
41
|
+
* Its path is generated and changes with the workspace, which is why it is contributed as an accessible
|
|
42
|
+
* root instead of being configured in `ai-features.workspaceFunctions.allowedExternalPaths`: the user
|
|
43
|
+
* cannot name a path they do not know, and prompts learn it from {@link MEMORY_DIRECTORY_VARIABLE}.
|
|
44
|
+
*
|
|
45
|
+
* A window without a workspace has no metadata store and therefore no memory. The variable then resolves
|
|
46
|
+
* to nothing and no directory is made accessible.
|
|
47
|
+
*/
|
|
48
|
+
@injectable()
|
|
49
|
+
export class MemoryDirectoryVariableContribution implements AIVariableContribution, AIVariableResolver, AccessibleRootContribution {
|
|
50
|
+
|
|
51
|
+
@inject(WorkspaceMetadataStorageService)
|
|
52
|
+
protected readonly metadataStorageService: WorkspaceMetadataStorageService;
|
|
53
|
+
|
|
54
|
+
@inject(WorkspaceService)
|
|
55
|
+
protected readonly workspaceService: WorkspaceService;
|
|
56
|
+
|
|
57
|
+
protected store: WorkspaceMetadataStore | undefined;
|
|
58
|
+
protected ensuredLocation: string | undefined;
|
|
59
|
+
|
|
60
|
+
registerVariables(service: AIVariableService): void {
|
|
61
|
+
service.registerResolver(MEMORY_DIRECTORY_VARIABLE, this);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
canResolve(request: AIVariableResolutionRequest, context: AIVariableContext): MaybePromise<number> {
|
|
65
|
+
return request.variable.name === MEMORY_DIRECTORY_VARIABLE.name ? 1 : 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async resolve(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<ResolvedAIVariable | undefined> {
|
|
69
|
+
if (request.variable.name !== MEMORY_DIRECTORY_VARIABLE.name) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const store = await this.getStore();
|
|
73
|
+
if (!store) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
// Resolving the variable means a prompt is about to send the agent to this directory, so create
|
|
77
|
+
// it now: listing an empty memory is a clearer answer than a missing path.
|
|
78
|
+
if (this.ensuredLocation !== store.location.toString()) {
|
|
79
|
+
await store.ensureExists();
|
|
80
|
+
this.ensuredLocation = store.location.toString();
|
|
81
|
+
}
|
|
82
|
+
return { variable: request.variable, value: store.location.path.fsPath() };
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async getRoots(): Promise<URI[]> {
|
|
86
|
+
const store = await this.getStore();
|
|
87
|
+
return store ? [store.location] : [];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* The memory store of the current workspace, or undefined when there is no workspace to store
|
|
92
|
+
* memory for. The store instance is kept because it tracks the workspace itself: its `location`
|
|
93
|
+
* follows a workspace change, so nothing has to be invalidated when the workspace is replaced.
|
|
94
|
+
*
|
|
95
|
+
* Closing a workspace is the exception: the store cannot compute a location without one, so it
|
|
96
|
+
* keeps the location of the closed workspace. Whether a workspace is open is therefore checked on
|
|
97
|
+
* every call rather than only when the store is created.
|
|
98
|
+
*/
|
|
99
|
+
protected async getStore(): Promise<WorkspaceMetadataStore | undefined> {
|
|
100
|
+
if (this.workspaceService.tryGetRoots().length === 0) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
if (!this.store) {
|
|
105
|
+
this.store = await this.metadataStorageService.getOrCreateStore(MEMORY_METADATA_STORE_KEY);
|
|
106
|
+
}
|
|
107
|
+
return this.store;
|
|
108
|
+
} catch (error) {
|
|
109
|
+
// No workspace is open: memory is unavailable rather than shared between unrelated windows.
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
18
|
+
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
|
+
import { PromptService } from '@theia/ai-core/lib/common';
|
|
20
|
+
import { OPEN_EDITORS_HINT_FRAGMENT_ID } from '../common/open-editors-hint-fragment-id';
|
|
21
|
+
|
|
22
|
+
@injectable()
|
|
23
|
+
export class OpenEditorsHintContribution implements FrontendApplicationContribution {
|
|
24
|
+
|
|
25
|
+
@inject(PromptService)
|
|
26
|
+
protected readonly promptService: PromptService;
|
|
27
|
+
|
|
28
|
+
onStart(): void {
|
|
29
|
+
this.promptService.addBuiltInPromptFragment({
|
|
30
|
+
id: OPEN_EDITORS_HINT_FRAGMENT_ID,
|
|
31
|
+
template: `## Open Editors
|
|
32
|
+
The following files are currently open in the user's editor. This is provided as contextual information only \
|
|
33
|
+
— these files may or may not be relevant to the current request. Do not assume they are related unless the user explicitly refers to them.
|
|
34
|
+
|
|
35
|
+
{{openEditors}}`
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -15,13 +15,16 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
import { AbstractStreamParsingChatAgent } from '@theia/ai-chat';
|
|
17
17
|
import { LanguageModelRequirement } from '@theia/ai-core';
|
|
18
|
-
import { injectable } from '@theia/core/shared/inversify';
|
|
18
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
19
19
|
import { projectInfoSystemVariants, projectInfoTemplateVariants } from '../common/project-info-prompt-template';
|
|
20
|
-
import { nls } from '@theia/core';
|
|
20
|
+
import { ILogger, nls } from '@theia/core';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class ProjectInfoAgent extends AbstractStreamParsingChatAgent {
|
|
24
24
|
|
|
25
|
+
@inject(ILogger) @named('ai-ide:ProjectInfoAgent')
|
|
26
|
+
protected override readonly logger: ILogger;
|
|
27
|
+
|
|
25
28
|
name = 'ProjectInfo';
|
|
26
29
|
id = 'ProjectInfo';
|
|
27
30
|
languageModelRequirements: LanguageModelRequirement[] = [{
|
|
@@ -16,14 +16,17 @@
|
|
|
16
16
|
|
|
17
17
|
import { AbstractStreamParsingChatAgent } from '@theia/ai-chat';
|
|
18
18
|
import { LanguageModelRequirement } from '@theia/ai-core/lib/common';
|
|
19
|
-
import { nls } from '@theia/core';
|
|
20
|
-
import { injectable } from '@theia/core/shared/inversify';
|
|
19
|
+
import { ILogger, nls } from '@theia/core';
|
|
20
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
21
21
|
import { PR_REVIEW_SYSTEM_PROMPT_ID, prReviewSystemPrompt } from './pr-review-prompt-template';
|
|
22
22
|
|
|
23
23
|
export const PRReviewAgentId = 'pr-reviewer';
|
|
24
24
|
|
|
25
25
|
@injectable()
|
|
26
26
|
export class PRReviewAgent extends AbstractStreamParsingChatAgent {
|
|
27
|
+
@inject(ILogger) @named('ai-ide:PRReviewAgent')
|
|
28
|
+
protected override readonly logger: ILogger;
|
|
29
|
+
|
|
27
30
|
id = PRReviewAgentId;
|
|
28
31
|
name = 'PR Reviewer';
|
|
29
32
|
languageModelRequirements: LanguageModelRequirement[] = [{
|
|
@@ -49,12 +49,6 @@
|
|
|
49
49
|
padding: var(--theia-ui-padding) 0;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.ai-configuration-section-content ul,
|
|
53
|
-
.ai-configuration-section-content ol {
|
|
54
|
-
padding-left: calc(var(--theia-ui-padding) * 2);
|
|
55
|
-
margin: 0 var(--theia-ui-padding) 0;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
52
|
/* Expandable section styling */
|
|
59
53
|
.ai-expandable-section {
|
|
60
54
|
margin-bottom: var(--theia-ui-padding);
|
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
.ai-configuration-shell {
|
|
18
|
+
height: 100%;
|
|
19
|
+
width: 100%;
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
background-color: var(--theia-editor-background);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Body split */
|
|
25
|
+
.ai-configuration-body {
|
|
26
|
+
min-height: 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Tree column: search box + category tree */
|
|
30
|
+
.ai-configuration-tree-column {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
min-height: 0;
|
|
34
|
+
/* Floor the tree width so it never collapses to nothing when the view is docked narrow. Lumino's
|
|
35
|
+
SplitPanel reads this CSS min-width as the child's minimum size. */
|
|
36
|
+
min-width: 180px;
|
|
37
|
+
border-right: var(--theia-border-width) solid var(--theia-widget-border);
|
|
38
|
+
/* Match the Settings UI: no separate panel colour, share the editor background. */
|
|
39
|
+
background-color: var(--theia-editor-background);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Search box + deep-results dropdown */
|
|
43
|
+
.ai-configuration-search {
|
|
44
|
+
flex: 0 0 auto;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.ai-configuration-search-wrap {
|
|
48
|
+
position: relative;
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
padding: var(--theia-ui-padding) calc(var(--theia-ui-padding) * 1.5);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.ai-configuration-search-icon {
|
|
55
|
+
position: absolute;
|
|
56
|
+
left: calc(var(--theia-ui-padding) * 1.5 + 6px);
|
|
57
|
+
color: var(--theia-descriptionForeground);
|
|
58
|
+
pointer-events: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ai-configuration-search-input {
|
|
62
|
+
width: 100%;
|
|
63
|
+
padding-left: 24px;
|
|
64
|
+
/* Room for the clear button on the right. */
|
|
65
|
+
padding-right: 24px;
|
|
66
|
+
/* A visible resting border: `input.border` is undefined in many themes (so `.theia-input` renders no
|
|
67
|
+
visible border), which made the box hard to spot. Fall back to the widget border, like the Settings UI. */
|
|
68
|
+
border: var(--theia-border-width) solid var(--theia-input-border, var(--theia-widget-border));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.ai-configuration-search-input:focus {
|
|
72
|
+
border-color: var(--theia-focusBorder);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Clear (x) button inside the search box, shown only while there is a query. */
|
|
76
|
+
.ai-configuration-search-clear {
|
|
77
|
+
position: absolute;
|
|
78
|
+
right: calc(var(--theia-ui-padding) * 1.5 + 4px);
|
|
79
|
+
display: inline-flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
justify-content: center;
|
|
82
|
+
width: 18px;
|
|
83
|
+
height: 18px;
|
|
84
|
+
padding: 0;
|
|
85
|
+
border: none;
|
|
86
|
+
background: none;
|
|
87
|
+
border-radius: 3px;
|
|
88
|
+
color: var(--theia-descriptionForeground);
|
|
89
|
+
cursor: pointer;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.ai-configuration-search-clear:hover {
|
|
93
|
+
color: var(--theia-foreground);
|
|
94
|
+
background: var(--theia-list-hoverBackground);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.ai-configuration-search-clear:focus-visible {
|
|
98
|
+
outline: 1px solid var(--theia-focusBorder);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Expand/Collapse All controls, directly under the search input. */
|
|
102
|
+
.ai-configuration-tree-toolbar {
|
|
103
|
+
flex: 0 0 auto;
|
|
104
|
+
display: flex;
|
|
105
|
+
justify-content: flex-end;
|
|
106
|
+
gap: calc(var(--theia-ui-padding) / 2);
|
|
107
|
+
padding: 0 calc(var(--theia-ui-padding) * 1.5) calc(var(--theia-ui-padding) / 2);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.ai-configuration-tree-toolbar-button {
|
|
111
|
+
display: inline-flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
justify-content: center;
|
|
114
|
+
border: none;
|
|
115
|
+
background: none;
|
|
116
|
+
color: var(--theia-icon-foreground);
|
|
117
|
+
cursor: pointer;
|
|
118
|
+
padding: 2px;
|
|
119
|
+
border-radius: 3px;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.ai-configuration-tree-toolbar-button:hover {
|
|
123
|
+
background-color: var(--theia-toolbar-hoverBackground, var(--theia-list-hoverBackground));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.ai-configuration-tree-toolbar-button:focus-visible {
|
|
127
|
+
outline: 1px solid var(--theia-focusBorder);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.ai-configuration-search-results {
|
|
131
|
+
position: absolute;
|
|
132
|
+
top: calc(100% - var(--theia-ui-padding) / 2);
|
|
133
|
+
left: calc(var(--theia-ui-padding) * 1.5);
|
|
134
|
+
right: calc(var(--theia-ui-padding) * 1.5);
|
|
135
|
+
z-index: 900;
|
|
136
|
+
max-height: 380px;
|
|
137
|
+
overflow-y: auto;
|
|
138
|
+
padding: calc(var(--theia-ui-padding) / 2);
|
|
139
|
+
background-color: var(--theia-editorWidget-background);
|
|
140
|
+
border: var(--theia-border-width) solid var(--theia-dropdown-border, var(--theia-widget-border));
|
|
141
|
+
border-radius: 4px;
|
|
142
|
+
box-shadow: 0 6px 18px var(--theia-widget-shadow);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.ai-configuration-search-result {
|
|
146
|
+
display: flex;
|
|
147
|
+
align-items: center;
|
|
148
|
+
gap: var(--theia-ui-padding);
|
|
149
|
+
padding: calc(var(--theia-ui-padding) / 2) var(--theia-ui-padding);
|
|
150
|
+
border-radius: 3px;
|
|
151
|
+
cursor: pointer;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.ai-configuration-search-result:hover,
|
|
155
|
+
.ai-configuration-search-result.focused {
|
|
156
|
+
background-color: var(--theia-list-activeSelectionBackground);
|
|
157
|
+
color: var(--theia-list-activeSelectionForeground);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.ai-configuration-search-result-type {
|
|
161
|
+
flex: none;
|
|
162
|
+
padding: 0 calc(var(--theia-ui-padding) / 2);
|
|
163
|
+
border: var(--theia-border-width) solid var(--theia-badge-background);
|
|
164
|
+
border-radius: 8px;
|
|
165
|
+
font-size: var(--theia-ui-font-size0);
|
|
166
|
+
color: var(--theia-descriptionForeground);
|
|
167
|
+
white-space: nowrap;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.ai-configuration-search-result-label {
|
|
171
|
+
overflow: hidden;
|
|
172
|
+
text-overflow: ellipsis;
|
|
173
|
+
white-space: nowrap;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.ai-configuration-search-result-label b {
|
|
177
|
+
color: var(--theia-textLink-foreground);
|
|
178
|
+
font-weight: 600;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.ai-configuration-search-result-category {
|
|
182
|
+
margin-left: auto;
|
|
183
|
+
flex: none;
|
|
184
|
+
color: var(--theia-descriptionForeground);
|
|
185
|
+
font-size: var(--theia-ui-font-size0);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.ai-configuration-search-result:hover .ai-configuration-search-result-category,
|
|
189
|
+
.ai-configuration-search-result.focused .ai-configuration-search-result-category {
|
|
190
|
+
color: inherit;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.ai-configuration-search-empty {
|
|
194
|
+
padding: var(--theia-ui-padding);
|
|
195
|
+
color: var(--theia-descriptionForeground);
|
|
196
|
+
font-size: var(--theia-ui-font-size1);
|
|
197
|
+
text-align: center;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* Category tree */
|
|
201
|
+
.ai-configuration-tree {
|
|
202
|
+
flex: 1 1 0;
|
|
203
|
+
min-height: 0;
|
|
204
|
+
overflow: auto;
|
|
205
|
+
background-color: transparent;
|
|
206
|
+
/* Keep the tree off the side-bar edge, mirroring the Settings UI gutter. */
|
|
207
|
+
padding: 0 var(--theia-ui-padding);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/*
|
|
211
|
+
* Tree icons share the neutral tree foreground. `!important` is required because core's symbol-icon.css
|
|
212
|
+
* colours `.codicon-symbol-*` (and friends) through a selector that includes a `:not(#id)` clause, giving
|
|
213
|
+
* it higher specificity than any plain class selector here — without this such icons render tinted. A
|
|
214
|
+
* fixed 16px box reserves the icon gutter even for nodes without an icon (categories, non-agent items), so
|
|
215
|
+
* labels stay aligned, and centres the glyph so differently-sized codicons all occupy the same width.
|
|
216
|
+
*/
|
|
217
|
+
.ai-configuration-tree .ai-configuration-tree-node-icon {
|
|
218
|
+
display: inline-flex;
|
|
219
|
+
align-items: center;
|
|
220
|
+
justify-content: center;
|
|
221
|
+
flex: 0 0 16px;
|
|
222
|
+
width: 16px;
|
|
223
|
+
height: 16px;
|
|
224
|
+
font-size: 16px;
|
|
225
|
+
margin-right: var(--theia-ui-padding);
|
|
226
|
+
color: var(--theia-icon-foreground) !important;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* Selected node: the icon tracks the label colour. When the tree is focused the selected label uses the
|
|
230
|
+
active-selection foreground (e.g. white in the light theme); when selected but not focused it uses the
|
|
231
|
+
(neutral) inactive-selection foreground. Mirror both so the icon never stays white on an unfocused tree. */
|
|
232
|
+
.ai-configuration-tree .theia-TreeNode.theia-mod-selected .ai-configuration-tree-node-icon {
|
|
233
|
+
color: var(--theia-list-inactiveSelectionForeground, var(--theia-foreground)) !important;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.ai-configuration-tree.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected .ai-configuration-tree-node-icon {
|
|
237
|
+
color: var(--theia-list-activeSelectionForeground) !important;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Shared trailing slot for a row's decoration: the item state dot and a category's action button occupy the
|
|
241
|
+
same box, so a dot and a `+` on neighbouring rows are centred on the same vertical line. `flex: none` keeps
|
|
242
|
+
the slot from being squeezed by a long label, which would otherwise clip the dot to an ellipse. */
|
|
243
|
+
.ai-configuration-tree .ai-configuration-tree-node-decoration {
|
|
244
|
+
display: inline-flex;
|
|
245
|
+
align-items: center;
|
|
246
|
+
justify-content: center;
|
|
247
|
+
flex: none;
|
|
248
|
+
box-sizing: border-box;
|
|
249
|
+
width: 20px;
|
|
250
|
+
height: 20px;
|
|
251
|
+
/* Zero the native button padding so the action's hover background is a snug square. */
|
|
252
|
+
padding: 0;
|
|
253
|
+
margin-left: var(--theia-ui-padding);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* A category's inline "create item" action (add an agent, add an MCP server). Hidden until the row is
|
|
257
|
+
hovered or the button itself is focused, so the tree stays quiet while remaining keyboard reachable. */
|
|
258
|
+
.ai-configuration-tree .ai-configuration-tree-node-action {
|
|
259
|
+
border: none;
|
|
260
|
+
background: none;
|
|
261
|
+
color: var(--theia-icon-foreground);
|
|
262
|
+
cursor: pointer;
|
|
263
|
+
border-radius: 3px;
|
|
264
|
+
visibility: hidden;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.ai-configuration-tree .theia-TreeNode:hover .ai-configuration-tree-node-action,
|
|
268
|
+
.ai-configuration-tree .ai-configuration-tree-node-action:focus-visible {
|
|
269
|
+
visibility: visible;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.ai-configuration-tree .ai-configuration-tree-node-action:hover {
|
|
273
|
+
background: var(--theia-list-hoverBackground);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.ai-configuration-tree .ai-configuration-tree-node-action:focus-visible {
|
|
277
|
+
outline: 1px solid var(--theia-focusBorder);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/* Selected node: the action tracks the label colour, as the node icon does. */
|
|
281
|
+
.ai-configuration-tree .theia-TreeNode.theia-mod-selected .ai-configuration-tree-node-action {
|
|
282
|
+
color: var(--theia-list-inactiveSelectionForeground, var(--theia-foreground));
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.ai-configuration-tree.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected .ai-configuration-tree-node-action {
|
|
286
|
+
color: var(--theia-list-activeSelectionForeground);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* "Contributed by extensions" group header: a real section divider (top rule + breathing room + an
|
|
290
|
+
uppercase caption) rather than a faint floating row. Non-interactive (no hover/selection). */
|
|
291
|
+
.ai-configuration-tree-separator {
|
|
292
|
+
margin-top: calc(var(--theia-ui-padding) * 1.5);
|
|
293
|
+
border-top: var(--theia-border-width) solid var(--theia-widget-border);
|
|
294
|
+
pointer-events: none;
|
|
295
|
+
height: auto;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.ai-configuration-tree-separator .theia-TreeNodeContent {
|
|
299
|
+
color: var(--theia-descriptionForeground);
|
|
300
|
+
font-size: var(--theia-ui-font-size0);
|
|
301
|
+
font-weight: 600;
|
|
302
|
+
text-transform: uppercase;
|
|
303
|
+
letter-spacing: 0.05em;
|
|
304
|
+
cursor: default;
|
|
305
|
+
padding-top: var(--theia-ui-padding);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/* In-pane category header (icon + name), aligned with the centred page column below it. */
|
|
309
|
+
.ai-configuration-category-header {
|
|
310
|
+
max-width: 860px;
|
|
311
|
+
margin: 0 auto calc(var(--theia-ui-padding) * 2);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/* Detail pane */
|
|
315
|
+
.ai-configuration-detail-widget {
|
|
316
|
+
height: 100%;
|
|
317
|
+
overflow: hidden;
|
|
318
|
+
background-color: var(--theia-editor-background);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.ai-configuration-detail-container {
|
|
322
|
+
display: flex;
|
|
323
|
+
flex-direction: column;
|
|
324
|
+
height: 100%;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.ai-configuration-detail-breadcrumb {
|
|
328
|
+
display: flex;
|
|
329
|
+
align-items: center;
|
|
330
|
+
gap: calc(var(--theia-ui-padding) / 2);
|
|
331
|
+
padding: var(--theia-ui-padding) calc(var(--theia-ui-padding) * 2);
|
|
332
|
+
border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
|
|
333
|
+
font-size: var(--theia-ui-font-size1);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.ai-configuration-detail-breadcrumb-segment {
|
|
337
|
+
display: inline-flex;
|
|
338
|
+
align-items: center;
|
|
339
|
+
gap: calc(var(--theia-ui-padding) / 2);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.ai-configuration-detail-breadcrumb-icon {
|
|
343
|
+
color: var(--theia-icon-foreground);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.ai-configuration-detail-breadcrumb-separator {
|
|
347
|
+
color: var(--theia-descriptionForeground);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.ai-configuration-detail-scope-banner {
|
|
351
|
+
display: flex;
|
|
352
|
+
align-items: center;
|
|
353
|
+
gap: var(--theia-ui-padding);
|
|
354
|
+
padding: var(--theia-ui-padding) calc(var(--theia-ui-padding) * 2);
|
|
355
|
+
background-color: var(--theia-editorInfo-background, var(--theia-editorWidget-background));
|
|
356
|
+
border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.ai-configuration-detail-body {
|
|
360
|
+
flex: 1;
|
|
361
|
+
min-height: 0;
|
|
362
|
+
overflow: auto;
|
|
363
|
+
/* The larger left padding reserves room for the setting rows' left gutter (gear + modified indicator),
|
|
364
|
+
which hangs in the margin left of the aligned content, so it is never clipped or jammed against the
|
|
365
|
+
pane edge. */
|
|
366
|
+
padding: calc(var(--theia-ui-padding) * 2) calc(var(--theia-ui-padding) * 3) calc(var(--theia-ui-padding) * 2) calc(var(--theia-ui-padding) * 6);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/* In-view cross-reference links (e.g. an agent linking to a model alias) act as buttons. */
|
|
370
|
+
.ai-configuration-detail-body a {
|
|
371
|
+
cursor: pointer;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.ai-configuration-detail-placeholder {
|
|
375
|
+
display: flex;
|
|
376
|
+
align-items: center;
|
|
377
|
+
justify-content: center;
|
|
378
|
+
height: 100%;
|
|
379
|
+
padding: calc(var(--theia-ui-padding) * 2);
|
|
380
|
+
color: var(--theia-descriptionForeground);
|
|
381
|
+
font-style: italic;
|
|
382
|
+
text-align: center;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/* Deep-search / navigation highlight flash.
|
|
386
|
+
The ring matters as much as the background: a collapsible list row paints its header on top of the row
|
|
387
|
+
element that carries this animation, so a background-only flash is invisible on exactly the rows a
|
|
388
|
+
cross-page link (an agent capability pointing at its snippet, say) tends to target. `box-shadow` draws
|
|
389
|
+
outside that header and does not affect layout, so the flash reads on every row shape. */
|
|
390
|
+
.ai-configuration-row-flash {
|
|
391
|
+
animation: ai-configuration-flash 1.2s ease-out;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
@keyframes ai-configuration-flash {
|
|
395
|
+
0% {
|
|
396
|
+
background-color: var(--theia-list-hoverBackground);
|
|
397
|
+
box-shadow: 0 0 0 2px var(--theia-focusBorder);
|
|
398
|
+
}
|
|
399
|
+
100% {
|
|
400
|
+
background-color: transparent;
|
|
401
|
+
box-shadow: 0 0 0 2px transparent;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/* High contrast: as in `ai-configuration-components.css`, these states only tint a background, and the
|
|
406
|
+
high-contrast themes define neither `list.hoverBackground` nor `list.activeSelectionBackground`. The ring
|
|
407
|
+
uses `contrastActiveBorder`, which exists only there, so other themes are untouched. The focused search
|
|
408
|
+
result is included because keyboard navigation through the results would otherwise leave no trace. */
|
|
409
|
+
.ai-configuration-search-clear:hover,
|
|
410
|
+
.ai-configuration-tree-toolbar-button:hover,
|
|
411
|
+
.ai-configuration-search-result:hover,
|
|
412
|
+
.ai-configuration-search-result.focused,
|
|
413
|
+
.ai-configuration-tree .ai-configuration-tree-node-action:hover {
|
|
414
|
+
outline: 1px dotted var(--theia-contrastActiveBorder, transparent);
|
|
415
|
+
outline-offset: -1px;
|
|
416
|
+
}
|
|
@@ -43,13 +43,14 @@
|
|
|
43
43
|
font-weight: 600;
|
|
44
44
|
border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
|
|
45
45
|
color: var(--theia-foreground);
|
|
46
|
+
/* Opaque background so the sticky header hides the rows scrolling underneath instead of overlapping them. */
|
|
47
|
+
background-color: var(--theia-editor-background);
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
.ai-configuration-table td {
|
|
49
51
|
padding: calc(var(--theia-ui-padding) / 2) var(--theia-ui-padding);
|
|
50
52
|
border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
|
|
51
53
|
color: var(--theia-foreground);
|
|
52
|
-
vertical-align: top;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
.ai-configuration-table .skill-description-column,
|
|
@@ -122,17 +123,3 @@
|
|
|
122
123
|
flex-wrap: wrap;
|
|
123
124
|
gap: calc(var(--theia-ui-padding) / 2);
|
|
124
125
|
}
|
|
125
|
-
|
|
126
|
-
.ai-slash-commands-section .agent-chip {
|
|
127
|
-
display: inline-flex;
|
|
128
|
-
align-items: center;
|
|
129
|
-
justify-content: center;
|
|
130
|
-
background-color: var(--theia-button-background);
|
|
131
|
-
color: var(--theia-editor-background);
|
|
132
|
-
gap: calc(var(--theia-ui-padding) / 2);
|
|
133
|
-
padding: calc(var(--theia-ui-padding) / 3) calc(var(--theia-ui-padding) / 1.5);
|
|
134
|
-
border-radius: 1em;
|
|
135
|
-
font-size: var(--theia-ui-font-size0);
|
|
136
|
-
font-weight: 500;
|
|
137
|
-
white-space: nowrap;
|
|
138
|
-
}
|