@theia/ai-ide 1.67.0-next.56 → 1.67.0-next.59
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-configuration/agent-configuration-widget.d.ts +41 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.js +333 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-service.d.ts +18 -0
- package/lib/browser/ai-configuration/ai-configuration-service.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-service.js +53 -0
- package/lib/browser/ai-configuration/ai-configuration-service.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +14 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +67 -0
- package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +29 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.js +118 -0
- package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.d.ts +13 -0
- package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.js +104 -0
- package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -0
- package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts +43 -0
- package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/mcp-configuration-widget.js +302 -0
- package/lib/browser/ai-configuration/mcp-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +41 -0
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +226 -0
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts +141 -0
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +508 -0
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts +10 -0
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -0
- package/lib/browser/ai-configuration/template-settings-renderer.js +48 -0
- package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -0
- package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +22 -0
- package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/token-usage-configuration-widget.js +156 -0
- package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +30 -0
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/tools-configuration-widget.js +150 -0
- package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +19 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.js +99 -0
- package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -0
- package/lib/browser/ai-ide-activation-service.d.ts +18 -0
- package/lib/browser/ai-ide-activation-service.d.ts.map +1 -0
- package/lib/browser/ai-ide-activation-service.js +71 -0
- package/lib/browser/ai-ide-activation-service.js.map +1 -0
- package/lib/browser/ai-terminal-functions.d.ts +13 -0
- package/lib/browser/ai-terminal-functions.d.ts.map +1 -0
- package/lib/browser/ai-terminal-functions.js +114 -0
- package/lib/browser/ai-terminal-functions.js.map +1 -0
- package/lib/browser/app-tester-chat-agent.d.ts +35 -0
- package/lib/browser/app-tester-chat-agent.d.ts.map +1 -0
- package/lib/browser/app-tester-chat-agent.js +142 -0
- package/lib/browser/app-tester-chat-agent.js.map +1 -0
- package/lib/browser/app-tester-chat-functions.d.ts +25 -0
- package/lib/browser/app-tester-chat-functions.d.ts.map +1 -0
- package/lib/browser/app-tester-chat-functions.js +170 -0
- package/lib/browser/app-tester-chat-functions.js.map +1 -0
- package/lib/browser/app-tester-prompt-template.d.ts +6 -0
- package/lib/browser/app-tester-prompt-template.d.ts.map +1 -0
- package/lib/browser/app-tester-prompt-template.js +83 -0
- package/lib/browser/app-tester-prompt-template.js.map +1 -0
- package/lib/browser/architect-agent.d.ts +15 -0
- package/lib/browser/architect-agent.d.ts.map +1 -0
- package/lib/browser/architect-agent.js +68 -0
- package/lib/browser/architect-agent.js.map +1 -0
- package/lib/browser/coder-agent.d.ts +15 -0
- package/lib/browser/coder-agent.d.ts.map +1 -0
- package/lib/browser/coder-agent.js +81 -0
- package/lib/browser/coder-agent.js.map +1 -0
- package/lib/browser/context-file-validation-service-impl.d.ts +13 -0
- package/lib/browser/context-file-validation-service-impl.d.ts.map +1 -0
- package/lib/browser/context-file-validation-service-impl.js +123 -0
- package/lib/browser/context-file-validation-service-impl.js.map +1 -0
- package/lib/browser/context-file-validation-service-impl.spec.d.ts +2 -0
- package/lib/browser/context-file-validation-service-impl.spec.d.ts.map +1 -0
- package/lib/browser/context-file-validation-service-impl.spec.js +340 -0
- package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -0
- package/lib/browser/context-functions.d.ts +16 -0
- package/lib/browser/context-functions.d.ts.map +1 -0
- package/lib/browser/context-functions.js +166 -0
- package/lib/browser/context-functions.js.map +1 -0
- package/lib/browser/context-functions.spec.d.ts +2 -0
- package/lib/browser/context-functions.spec.d.ts.map +1 -0
- package/lib/browser/context-functions.spec.js +213 -0
- package/lib/browser/context-functions.spec.js.map +1 -0
- package/lib/browser/file-changeset-function.spec.d.ts +2 -0
- package/lib/browser/file-changeset-function.spec.d.ts.map +1 -0
- package/lib/browser/file-changeset-function.spec.js +45 -0
- package/lib/browser/file-changeset-function.spec.js.map +1 -0
- package/lib/browser/file-changeset-functions.d.ts +87 -0
- package/lib/browser/file-changeset-functions.d.ts.map +1 -0
- package/lib/browser/file-changeset-functions.js +645 -0
- package/lib/browser/file-changeset-functions.js.map +1 -0
- package/lib/browser/file-changeset-functions.spec.d.ts +2 -0
- package/lib/browser/file-changeset-functions.spec.d.ts.map +1 -0
- package/lib/browser/file-changeset-functions.spec.js +179 -0
- package/lib/browser/file-changeset-functions.spec.js.map +1 -0
- package/lib/browser/frontend-module.d.ts +5 -0
- package/lib/browser/frontend-module.d.ts.map +1 -0
- package/lib/browser/frontend-module.js +220 -0
- package/lib/browser/frontend-module.js.map +1 -0
- package/lib/browser/github-chat-agent.d.ts +48 -0
- package/lib/browser/github-chat-agent.d.ts.map +1 -0
- package/lib/browser/github-chat-agent.js +222 -0
- package/lib/browser/github-chat-agent.js.map +1 -0
- package/lib/browser/github-prompt-template.d.ts +6 -0
- package/lib/browser/github-prompt-template.d.ts.map +1 -0
- package/lib/browser/github-prompt-template.js +53 -0
- package/lib/browser/github-prompt-template.js.map +1 -0
- package/lib/browser/github-repo-variable-contribution.d.ts +15 -0
- package/lib/browser/github-repo-variable-contribution.d.ts.map +1 -0
- package/lib/browser/github-repo-variable-contribution.js +82 -0
- package/lib/browser/github-repo-variable-contribution.js.map +1 -0
- package/lib/browser/ide-chat-welcome-message-provider.d.ts +10 -0
- package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -0
- package/lib/browser/ide-chat-welcome-message-provider.js +102 -0
- package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -0
- package/lib/browser/project-info-agent.d.ts +13 -0
- package/lib/browser/project-info-agent.d.ts.map +1 -0
- package/lib/browser/project-info-agent.js +45 -0
- package/lib/browser/project-info-agent.js.map +1 -0
- package/lib/browser/remember-command-contribution.d.ts +16 -0
- package/lib/browser/remember-command-contribution.d.ts.map +1 -0
- package/lib/browser/remember-command-contribution.js +101 -0
- package/lib/browser/remember-command-contribution.js.map +1 -0
- package/lib/browser/summarize-session-command-contribution.d.ts +19 -0
- package/lib/browser/summarize-session-command-contribution.d.ts.map +1 -0
- package/lib/browser/summarize-session-command-contribution.js +118 -0
- package/lib/browser/summarize-session-command-contribution.js.map +1 -0
- package/lib/browser/task-background-summary-variable.d.ts +9 -0
- package/lib/browser/task-background-summary-variable.d.ts.map +1 -0
- package/lib/browser/task-background-summary-variable.js +60 -0
- package/lib/browser/task-background-summary-variable.js.map +1 -0
- package/lib/browser/task-context-agent.d.ts +13 -0
- package/lib/browser/task-context-agent.d.ts.map +1 -0
- package/lib/browser/task-context-agent.js +45 -0
- package/lib/browser/task-context-agent.js.map +1 -0
- package/lib/browser/task-context-file-storage-service.d.ts +40 -0
- package/lib/browser/task-context-file-storage-service.d.ts.map +1 -0
- package/lib/browser/task-context-file-storage-service.js +232 -0
- package/lib/browser/task-context-file-storage-service.js.map +1 -0
- package/lib/browser/template-preference-contribution.d.ts +17 -0
- package/lib/browser/template-preference-contribution.d.ts.map +1 -0
- package/lib/browser/template-preference-contribution.js +94 -0
- package/lib/browser/template-preference-contribution.js.map +1 -0
- package/lib/browser/test/tool-provider-cancellation-test-util.spec.d.ts +2 -0
- package/lib/browser/test/tool-provider-cancellation-test-util.spec.d.ts.map +1 -0
- package/lib/browser/test/tool-provider-cancellation-test-util.spec.js +52 -0
- package/lib/browser/test/tool-provider-cancellation-test-util.spec.js.map +1 -0
- package/lib/browser/workspace-functions.d.ts +78 -0
- package/lib/browser/workspace-functions.d.ts.map +1 -0
- package/lib/browser/workspace-functions.js +697 -0
- package/lib/browser/workspace-functions.js.map +1 -0
- package/lib/browser/workspace-functions.spec.d.ts +2 -0
- package/lib/browser/workspace-functions.spec.d.ts.map +1 -0
- package/lib/browser/workspace-functions.spec.js +161 -0
- package/lib/browser/workspace-functions.spec.js.map +1 -0
- package/lib/browser/workspace-launch-provider.d.ts +24 -0
- package/lib/browser/workspace-launch-provider.d.ts.map +1 -0
- package/lib/browser/workspace-launch-provider.js +216 -0
- package/lib/browser/workspace-launch-provider.js.map +1 -0
- package/lib/browser/workspace-launch-provider.spec.d.ts +2 -0
- package/lib/browser/workspace-launch-provider.spec.d.ts.map +1 -0
- package/lib/browser/workspace-launch-provider.spec.js +245 -0
- package/lib/browser/workspace-launch-provider.spec.js.map +1 -0
- package/lib/browser/workspace-search-provider.d.ts +15 -0
- package/lib/browser/workspace-search-provider.d.ts.map +1 -0
- package/lib/browser/workspace-search-provider.js +204 -0
- package/lib/browser/workspace-search-provider.js.map +1 -0
- package/lib/browser/workspace-search-provider.spec.d.ts +2 -0
- package/lib/browser/workspace-search-provider.spec.d.ts.map +1 -0
- package/lib/browser/workspace-search-provider.spec.js +82 -0
- package/lib/browser/workspace-search-provider.spec.js.map +1 -0
- package/lib/browser/workspace-task-provider.d.ts +15 -0
- package/lib/browser/workspace-task-provider.d.ts.map +1 -0
- package/lib/browser/workspace-task-provider.js +138 -0
- package/lib/browser/workspace-task-provider.js.map +1 -0
- package/lib/browser/workspace-task-provider.spec.d.ts +2 -0
- package/lib/browser/workspace-task-provider.spec.d.ts.map +1 -0
- package/lib/browser/workspace-task-provider.spec.js +109 -0
- package/lib/browser/workspace-task-provider.spec.js.map +1 -0
- package/lib/common/ai-configuration-preferences.d.ts +8 -0
- package/lib/common/ai-configuration-preferences.d.ts.map +1 -0
- package/lib/common/ai-configuration-preferences.js +41 -0
- package/lib/common/ai-configuration-preferences.js.map +1 -0
- package/lib/common/ai-ide-preferences.d.ts +5 -0
- package/lib/common/ai-ide-preferences.d.ts.map +1 -0
- package/lib/common/ai-ide-preferences.js +53 -0
- package/lib/common/ai-ide-preferences.js.map +1 -0
- package/lib/common/ai-terminal-functions.d.ts +2 -0
- package/lib/common/ai-terminal-functions.d.ts.map +1 -0
- package/lib/common/ai-terminal-functions.js +20 -0
- package/lib/common/ai-terminal-functions.js.map +1 -0
- package/lib/common/app-tester-chat-functions.d.ts +5 -0
- package/lib/common/app-tester-chat-functions.d.ts.map +1 -0
- package/lib/common/app-tester-chat-functions.js +23 -0
- package/lib/common/app-tester-chat-functions.js.map +1 -0
- package/lib/common/architect-prompt-template.d.ts +3 -0
- package/lib/common/architect-prompt-template.d.ts.map +1 -0
- package/lib/common/architect-prompt-template.js +81 -0
- package/lib/common/architect-prompt-template.js.map +1 -0
- package/lib/common/browser-automation-protocol.d.ts +15 -0
- package/lib/common/browser-automation-protocol.d.ts.map +1 -0
- package/lib/common/browser-automation-protocol.js +22 -0
- package/lib/common/browser-automation-protocol.js.map +1 -0
- package/lib/common/coder-replace-prompt-template.d.ts +11 -0
- package/lib/common/coder-replace-prompt-template.d.ts.map +1 -0
- package/lib/common/coder-replace-prompt-template.js +296 -0
- package/lib/common/coder-replace-prompt-template.js.map +1 -0
- package/lib/common/command-chat-agents.d.ts +36 -0
- package/lib/common/command-chat-agents.d.ts.map +1 -0
- package/lib/common/command-chat-agents.js +122 -0
- package/lib/common/command-chat-agents.js.map +1 -0
- package/lib/common/command-prompt-template.d.ts +3 -0
- package/lib/common/command-prompt-template.d.ts.map +1 -0
- package/lib/common/command-prompt-template.js +226 -0
- package/lib/common/command-prompt-template.js.map +1 -0
- package/lib/common/context-files-variable.d.ts +9 -0
- package/lib/common/context-files-variable.d.ts.map +1 -0
- package/lib/common/context-files-variable.js +52 -0
- package/lib/common/context-files-variable.js.map +1 -0
- package/lib/common/context-functions.d.ts +4 -0
- package/lib/common/context-functions.d.ts.map +1 -0
- package/lib/common/context-functions.js +22 -0
- package/lib/common/context-functions.js.map +1 -0
- package/lib/common/context-variables.d.ts +3 -0
- package/lib/common/context-variables.d.ts.map +1 -0
- package/lib/common/context-variables.js +21 -0
- package/lib/common/context-variables.js.map +1 -0
- package/lib/common/file-changeset-function-ids.d.ts +19 -0
- package/lib/common/file-changeset-function-ids.d.ts.map +1 -0
- package/lib/common/file-changeset-function-ids.js +37 -0
- package/lib/common/file-changeset-function-ids.js.map +1 -0
- package/lib/common/github-repo-protocol.d.ts +15 -0
- package/lib/common/github-repo-protocol.d.ts.map +1 -0
- package/lib/common/github-repo-protocol.js +21 -0
- package/lib/common/github-repo-protocol.js.map +1 -0
- package/lib/common/orchestrator-chat-agent.d.ts +36 -0
- package/lib/common/orchestrator-chat-agent.d.ts.map +1 -0
- package/lib/common/orchestrator-chat-agent.js +167 -0
- package/lib/common/orchestrator-chat-agent.js.map +1 -0
- package/lib/common/orchestrator-prompt-template.d.ts +3 -0
- package/lib/common/orchestrator-prompt-template.d.ts.map +1 -0
- package/lib/common/orchestrator-prompt-template.js +55 -0
- package/lib/common/orchestrator-prompt-template.js.map +1 -0
- package/lib/common/project-info-prompt-template.d.ts +6 -0
- package/lib/common/project-info-prompt-template.d.ts.map +1 -0
- package/lib/common/project-info-prompt-template.js +145 -0
- package/lib/common/project-info-prompt-template.js.map +1 -0
- package/lib/common/summarize-session-commands.d.ts +4 -0
- package/lib/common/summarize-session-commands.d.ts.map +1 -0
- package/lib/common/summarize-session-commands.js +28 -0
- package/lib/common/summarize-session-commands.js.map +1 -0
- package/lib/common/task-context-prompt-template.d.ts +8 -0
- package/lib/common/task-context-prompt-template.d.ts.map +1 -0
- package/lib/common/task-context-prompt-template.js +217 -0
- package/lib/common/task-context-prompt-template.js.map +1 -0
- package/lib/common/universal-chat-agent.d.ts +17 -0
- package/lib/common/universal-chat-agent.d.ts.map +1 -0
- package/lib/common/universal-chat-agent.js +47 -0
- package/lib/common/universal-chat-agent.js.map +1 -0
- package/lib/common/universal-prompt-template.d.ts +4 -0
- package/lib/common/universal-prompt-template.d.ts.map +1 -0
- package/lib/common/universal-prompt-template.js +32 -0
- package/lib/common/universal-prompt-template.js.map +1 -0
- package/lib/common/workspace-functions.d.ts +12 -0
- package/lib/common/workspace-functions.d.ts.map +1 -0
- package/lib/common/workspace-functions.js +30 -0
- package/lib/common/workspace-functions.js.map +1 -0
- package/lib/common/workspace-preferences.d.ts +10 -0
- package/lib/common/workspace-preferences.d.ts.map +1 -0
- package/lib/common/workspace-preferences.js +89 -0
- package/lib/common/workspace-preferences.js.map +1 -0
- package/lib/common/workspace-search-provider-util.d.ts +17 -0
- package/lib/common/workspace-search-provider-util.d.ts.map +1 -0
- package/lib/common/workspace-search-provider-util.js +51 -0
- package/lib/common/workspace-search-provider-util.js.map +1 -0
- package/lib/node/app-tester-agent/browser-automation-impl.d.ts +18 -0
- package/lib/node/app-tester-agent/browser-automation-impl.d.ts.map +1 -0
- package/lib/node/app-tester-agent/browser-automation-impl.js +96 -0
- package/lib/node/app-tester-agent/browser-automation-impl.js.map +1 -0
- package/lib/node/backend-module.d.ts +4 -0
- package/lib/node/backend-module.d.ts.map +1 -0
- package/lib/node/backend-module.js +45 -0
- package/lib/node/backend-module.js.map +1 -0
- package/lib/node/github-repo-service-impl.d.ts +7 -0
- package/lib/node/github-repo-service-impl.d.ts.map +1 -0
- package/lib/node/github-repo-service-impl.js +86 -0
- package/lib/node/github-repo-service-impl.js.map +1 -0
- package/lib/package.spec.d.ts +1 -0
- package/lib/package.spec.d.ts.map +1 -0
- package/lib/package.spec.js +26 -0
- package/lib/package.spec.js.map +1 -0
- package/package.json +21 -21
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
var AIPromptFragmentsConfigurationWidget_1;
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.AIPromptFragmentsConfigurationWidget = void 0;
|
|
20
|
+
const tslib_1 = require("tslib");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
23
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
24
|
+
const prompt_service_1 = require("@theia/ai-core/lib/common/prompt-service");
|
|
25
|
+
const React = require("@theia/core/shared/react");
|
|
26
|
+
const agent_service_1 = require("@theia/ai-core/lib/common/agent-service");
|
|
27
|
+
const frontend_prompt_customization_service_1 = require("@theia/ai-core/lib/browser/frontend-prompt-customization-service");
|
|
28
|
+
/**
|
|
29
|
+
* Widget for configuring AI prompt fragments and prompt variant sets.
|
|
30
|
+
* Allows users to view, create, edit, and manage various types of prompt
|
|
31
|
+
* fragments including their customizations and variants.
|
|
32
|
+
*/
|
|
33
|
+
let AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget_1 = class AIPromptFragmentsConfigurationWidget extends browser_1.ReactWidget {
|
|
34
|
+
constructor() {
|
|
35
|
+
super(...arguments);
|
|
36
|
+
/**
|
|
37
|
+
* Stores all available prompt fragments by ID
|
|
38
|
+
*/
|
|
39
|
+
this.promptFragmentMap = new Map();
|
|
40
|
+
/**
|
|
41
|
+
* Stores prompt variant sets and their variant IDs
|
|
42
|
+
*/
|
|
43
|
+
this.promptVariantsMap = new Map();
|
|
44
|
+
/**
|
|
45
|
+
* Currently active prompt fragments
|
|
46
|
+
*/
|
|
47
|
+
this.activePromptFragments = [];
|
|
48
|
+
/**
|
|
49
|
+
* Tracks expanded state of prompt fragment sections in the UI
|
|
50
|
+
*/
|
|
51
|
+
this.expandedPromptFragmentIds = new Set();
|
|
52
|
+
/**
|
|
53
|
+
* Tracks expanded state of prompt content display
|
|
54
|
+
*/
|
|
55
|
+
this.expandedPromptFragmentTemplates = new Set();
|
|
56
|
+
/**
|
|
57
|
+
* Tracks expanded state of prompt variant set sections
|
|
58
|
+
*/
|
|
59
|
+
this.expandedPromptVariantSetIds = new Set();
|
|
60
|
+
/**
|
|
61
|
+
* All available agents that may use prompts
|
|
62
|
+
*/
|
|
63
|
+
this.availableAgents = [];
|
|
64
|
+
/**
|
|
65
|
+
* Maps prompt variant set IDs to their resolved variant IDs
|
|
66
|
+
*/
|
|
67
|
+
this.effectiveVariantIds = new Map();
|
|
68
|
+
/**
|
|
69
|
+
* Maps prompt variant set IDs to their default variant IDs
|
|
70
|
+
*/
|
|
71
|
+
this.defaultVariantIds = new Map();
|
|
72
|
+
/**
|
|
73
|
+
* Maps prompt variant set IDs to their user selected variant IDs
|
|
74
|
+
*/
|
|
75
|
+
this.userSelectedVariantIds = new Map();
|
|
76
|
+
this.togglePromptVariantSetExpansion = (promptVariantSetId) => {
|
|
77
|
+
if (this.expandedPromptVariantSetIds.has(promptVariantSetId)) {
|
|
78
|
+
this.expandedPromptVariantSetIds.delete(promptVariantSetId);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.expandedPromptVariantSetIds.add(promptVariantSetId);
|
|
82
|
+
}
|
|
83
|
+
this.update();
|
|
84
|
+
};
|
|
85
|
+
this.togglePromptFragmentExpansion = (promptFragmentId) => {
|
|
86
|
+
if (this.expandedPromptFragmentIds.has(promptFragmentId)) {
|
|
87
|
+
this.expandedPromptFragmentIds.delete(promptFragmentId);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.expandedPromptFragmentIds.add(promptFragmentId);
|
|
91
|
+
}
|
|
92
|
+
this.update();
|
|
93
|
+
};
|
|
94
|
+
this.toggleTemplateExpansion = (fragmentKey, event) => {
|
|
95
|
+
event.stopPropagation();
|
|
96
|
+
if (this.expandedPromptFragmentTemplates.has(fragmentKey)) {
|
|
97
|
+
this.expandedPromptFragmentTemplates.delete(fragmentKey);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.expandedPromptFragmentTemplates.add(fragmentKey);
|
|
101
|
+
}
|
|
102
|
+
this.update();
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Call the edit action for the provided customized prompt fragment
|
|
106
|
+
* @param promptFragment Fragment to edit
|
|
107
|
+
* @param event Mouse event
|
|
108
|
+
*/
|
|
109
|
+
this.editPromptCustomization = (promptFragment, event) => {
|
|
110
|
+
event.stopPropagation();
|
|
111
|
+
this.promptService.editCustomization(promptFragment.id, promptFragment.customizationId);
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Resets a prompt fragment to use a specific customization (with confirmation dialog)
|
|
115
|
+
* @param customization customization to reset to
|
|
116
|
+
* @param event Mouse event
|
|
117
|
+
*/
|
|
118
|
+
this.resetToPromptFragment = async (customization, event) => {
|
|
119
|
+
event.stopPropagation();
|
|
120
|
+
if ((0, prompt_service_1.isCustomizedPromptFragment)(customization)) {
|
|
121
|
+
// Get the customization type to show in the confirmation dialog
|
|
122
|
+
const type = await this.promptService.getCustomizationType(customization.id, customization.customizationId);
|
|
123
|
+
const dialog = new browser_1.ConfirmDialog({
|
|
124
|
+
title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToCustomizationDialogTitle', 'Reset to Customization'),
|
|
125
|
+
msg: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToCustomizationDialogMsg', 'Are you sure you want to reset the prompt fragment "{0}" to use the {1} customization? This will remove all higher-priority customizations.', customization.id, type),
|
|
126
|
+
ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetButton', 'Reset'),
|
|
127
|
+
cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
|
|
128
|
+
});
|
|
129
|
+
const shouldReset = await dialog.open();
|
|
130
|
+
if (shouldReset) {
|
|
131
|
+
await this.promptService.resetToCustomization(customization.id, customization.customizationId);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const dialog = new browser_1.ConfirmDialog({
|
|
136
|
+
title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToBuiltInDialogTitle', 'Reset to Built-in'),
|
|
137
|
+
msg: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToBuiltInDialogMsg', 'Are you sure you want to reset the prompt fragment "{0}" to its built-in version? This will remove all customizations.', customization.id),
|
|
138
|
+
ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetButton', 'Reset'),
|
|
139
|
+
cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
|
|
140
|
+
});
|
|
141
|
+
const shouldReset = await dialog.open();
|
|
142
|
+
if (shouldReset) {
|
|
143
|
+
await this.promptService.resetToBuiltIn(customization.id);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Creates a new customization for a built-in prompt fragment
|
|
149
|
+
* @param promptFragment Built-in prompt fragment to customize
|
|
150
|
+
* @param event Mouse event
|
|
151
|
+
*/
|
|
152
|
+
this.createPromptFragmentCustomization = (promptFragment, event) => {
|
|
153
|
+
event.stopPropagation();
|
|
154
|
+
this.promptService.createBuiltInCustomization(promptFragment.id);
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Deletes a customization with confirmation dialog
|
|
158
|
+
* @param customization Customized prompt fragment to delete
|
|
159
|
+
* @param event Mouse event
|
|
160
|
+
*/
|
|
161
|
+
this.deletePromptFragmentCustomization = async (customization, event) => {
|
|
162
|
+
event.stopPropagation();
|
|
163
|
+
// First get the customization type and description to show in the confirmation dialog
|
|
164
|
+
const type = await this.promptService.getCustomizationType(customization.id, customization.customizationId) || '';
|
|
165
|
+
const description = await this.promptService.getCustomizationDescription(customization.id, customization.customizationId) || '';
|
|
166
|
+
const dialog = new browser_1.ConfirmDialog({
|
|
167
|
+
title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeCustomizationDialogTitle', 'Remove Customization'),
|
|
168
|
+
msg: description ?
|
|
169
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeCustomizationWithDescDialogMsg', 'Are you sure you want to remove the {0} customization for prompt fragment "{1}" ({2})?', type, customization.id, description) :
|
|
170
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeCustomizationDialogMsg', 'Are you sure you want to remove the {0} customization for prompt fragment "{1}"?', type, customization.id),
|
|
171
|
+
ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeButton', 'Remove'),
|
|
172
|
+
cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
|
|
173
|
+
});
|
|
174
|
+
const shouldDelete = await dialog.open();
|
|
175
|
+
if (shouldDelete) {
|
|
176
|
+
await this.promptService.removeCustomization(customization.id, customization.customizationId);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Removes all prompt customizations (resets to built-in versions) with confirmation
|
|
181
|
+
*/
|
|
182
|
+
this.removeAllCustomizations = async () => {
|
|
183
|
+
const dialog = new browser_1.ConfirmDialog({
|
|
184
|
+
title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllCustomizationsDialogTitle', 'Reset All Customizations'),
|
|
185
|
+
msg: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllCustomizationsDialogMsg', 'Are you sure you want to reset all prompt fragments to their built-in versions? This will remove all customizations.'),
|
|
186
|
+
ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllButton', 'Reset All'),
|
|
187
|
+
cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
|
|
188
|
+
});
|
|
189
|
+
const shouldReset = await dialog.open();
|
|
190
|
+
if (shouldReset) {
|
|
191
|
+
this.promptService.resetAllToBuiltIn();
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
init() {
|
|
196
|
+
this.id = AIPromptFragmentsConfigurationWidget_1.ID;
|
|
197
|
+
this.title.label = AIPromptFragmentsConfigurationWidget_1.LABEL;
|
|
198
|
+
this.title.caption = AIPromptFragmentsConfigurationWidget_1.LABEL;
|
|
199
|
+
this.title.closable = true;
|
|
200
|
+
this.addClass('ai-configuration-tab-content');
|
|
201
|
+
this.loadPromptFragments();
|
|
202
|
+
this.loadAgents();
|
|
203
|
+
this.toDispose.pushAll([
|
|
204
|
+
this.promptService.onPromptsChange(() => {
|
|
205
|
+
this.loadPromptFragments();
|
|
206
|
+
}),
|
|
207
|
+
this.agentService.onDidChangeAgents(() => {
|
|
208
|
+
this.loadAgents();
|
|
209
|
+
})
|
|
210
|
+
]);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Loads all prompt fragments and prompt variant sets from the prompt service.
|
|
214
|
+
* Preserves UI expansion states and updates variant information.
|
|
215
|
+
*/
|
|
216
|
+
loadPromptFragments() {
|
|
217
|
+
var _a;
|
|
218
|
+
this.promptFragmentMap = this.promptService.getAllPromptFragments();
|
|
219
|
+
this.promptVariantsMap = this.promptService.getPromptVariantSets();
|
|
220
|
+
this.activePromptFragments = this.promptService.getActivePromptFragments();
|
|
221
|
+
// Preserve expansion state when reloading
|
|
222
|
+
const existingExpandedFragmentIds = new Set(this.expandedPromptFragmentIds);
|
|
223
|
+
const existingExpandedPromptVariantIds = new Set(this.expandedPromptVariantSetIds);
|
|
224
|
+
const existingExpandedTemplates = new Set(this.expandedPromptFragmentTemplates);
|
|
225
|
+
if (existingExpandedFragmentIds.size > 0) {
|
|
226
|
+
// Keep existing expansion state but remove entries for fragments that no longer exist
|
|
227
|
+
this.expandedPromptFragmentIds = new Set(Array.from(existingExpandedFragmentIds).filter(id => this.promptFragmentMap.has(id)));
|
|
228
|
+
}
|
|
229
|
+
if (existingExpandedPromptVariantIds.size === 0) {
|
|
230
|
+
// Start with variant sets collapsed by default
|
|
231
|
+
this.expandedPromptVariantSetIds = new Set();
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// Keep existing expansion state but remove entries for prompt variant sets that no longer exist
|
|
235
|
+
this.expandedPromptVariantSetIds = new Set(Array.from(existingExpandedPromptVariantIds).filter(id => this.promptVariantsMap.has(id)));
|
|
236
|
+
}
|
|
237
|
+
// For templates, preserve existing expanded states - don't expand by default
|
|
238
|
+
this.expandedPromptFragmentTemplates = new Set(Array.from(existingExpandedTemplates).filter(id => {
|
|
239
|
+
const [fragmentId] = id.split('_');
|
|
240
|
+
return this.promptFragmentMap.has(fragmentId);
|
|
241
|
+
}));
|
|
242
|
+
// Update variant information (selected/default/effective) for prompt variant sets
|
|
243
|
+
for (const promptVariantSetId of this.promptVariantsMap.keys()) {
|
|
244
|
+
const effectiveId = this.promptService.getEffectiveVariantId(promptVariantSetId);
|
|
245
|
+
const defaultId = this.promptService.getDefaultVariantId(promptVariantSetId);
|
|
246
|
+
const selectedId = (_a = this.promptService.getSelectedVariantId(promptVariantSetId)) !== null && _a !== void 0 ? _a : defaultId;
|
|
247
|
+
this.userSelectedVariantIds.set(promptVariantSetId, selectedId);
|
|
248
|
+
this.effectiveVariantIds.set(promptVariantSetId, effectiveId);
|
|
249
|
+
this.defaultVariantIds.set(promptVariantSetId, defaultId);
|
|
250
|
+
}
|
|
251
|
+
this.update();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Loads all available agents from the agent service
|
|
255
|
+
*/
|
|
256
|
+
loadAgents() {
|
|
257
|
+
this.availableAgents = this.agentService.getAllAgents();
|
|
258
|
+
this.update();
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Finds agents that use a specific prompt variant set
|
|
262
|
+
* @param promptVariantSetId ID of the prompt variant set to match
|
|
263
|
+
* @returns Array of agents that use the prompt variant set
|
|
264
|
+
*/
|
|
265
|
+
getAgentsUsingPromptVariantId(promptVariantSetId) {
|
|
266
|
+
return this.availableAgents.filter((agent) => agent.prompts.find(promptVariantSet => promptVariantSet.id === promptVariantSetId));
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Determines if a prompt fragment is currently the active one for its ID
|
|
270
|
+
* @param promptFragment The prompt fragment to check
|
|
271
|
+
* @returns True if this prompt fragment is the active customization
|
|
272
|
+
*/
|
|
273
|
+
isActiveCustomization(promptFragment) {
|
|
274
|
+
const activePromptFragment = this.activePromptFragments.find(activePrompt => activePrompt.id === promptFragment.id);
|
|
275
|
+
if (!activePromptFragment) {
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
if ((0, prompt_service_1.isCustomizedPromptFragment)(activePromptFragment) && (0, prompt_service_1.isCustomizedPromptFragment)(promptFragment)) {
|
|
279
|
+
return (activePromptFragment.id === promptFragment.id &&
|
|
280
|
+
activePromptFragment.template === promptFragment.template &&
|
|
281
|
+
activePromptFragment.customizationId === promptFragment.customizationId &&
|
|
282
|
+
activePromptFragment.priority === promptFragment.priority);
|
|
283
|
+
}
|
|
284
|
+
if ((0, prompt_service_1.isBasePromptFragment)(activePromptFragment) && (0, prompt_service_1.isBasePromptFragment)(promptFragment)) {
|
|
285
|
+
return (activePromptFragment.id === promptFragment.id &&
|
|
286
|
+
activePromptFragment.template === promptFragment.template);
|
|
287
|
+
}
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Main render method for the widget
|
|
292
|
+
* @returns Complete UI for the configuration widget
|
|
293
|
+
*/
|
|
294
|
+
render() {
|
|
295
|
+
const nonSystemPromptFragments = this.getNonPromptVariantSetFragments();
|
|
296
|
+
return (React.createElement("div", { className: 'ai-prompt-fragments-configuration' },
|
|
297
|
+
React.createElement("div", { className: "prompt-fragments-header" },
|
|
298
|
+
React.createElement("h2", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/headerTitle', 'Prompt Fragments')),
|
|
299
|
+
React.createElement("div", { className: "global-actions" },
|
|
300
|
+
React.createElement("button", { className: "global-action-button", onClick: this.removeAllCustomizations, title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllCustomizationsTitle', 'Reset all customizations') },
|
|
301
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllPromptFragments', 'Reset all prompt fragments'),
|
|
302
|
+
" ",
|
|
303
|
+
React.createElement("span", { className: (0, browser_1.codicon)('clear-all') })))),
|
|
304
|
+
React.createElement("div", { className: "prompt-variants-container" },
|
|
305
|
+
React.createElement("h3", { className: "section-header" }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/promptVariantsHeader', 'Prompt Variant Sets')),
|
|
306
|
+
Array.from(this.promptVariantsMap.entries()).map(([promptVariantSetId, variantIds]) => this.renderPromptVariantSet(promptVariantSetId, variantIds))),
|
|
307
|
+
nonSystemPromptFragments.size > 0 && React.createElement("div", { className: "prompt-fragments-container" },
|
|
308
|
+
React.createElement("h3", { className: "section-header" }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/otherPromptFragmentsHeader', 'Other Prompt Fragments')),
|
|
309
|
+
Array.from(nonSystemPromptFragments.entries()).map(([promptFragmentId, fragments]) => this.renderPromptFragment(promptFragmentId, fragments))),
|
|
310
|
+
this.promptFragmentMap.size === 0 && (React.createElement("div", { className: "no-fragments" },
|
|
311
|
+
React.createElement("p", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/noFragmentsAvailable', 'No prompt fragments available.'))))));
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Renders a prompt variant set with its variants
|
|
315
|
+
* @param promptVariantSetId ID of the prompt variant set
|
|
316
|
+
* @param variantIds Array of variant IDs
|
|
317
|
+
* @returns React node for the prompt variant set group
|
|
318
|
+
*/
|
|
319
|
+
renderPromptVariantSet(promptVariantSetId, variantIds) {
|
|
320
|
+
const isSectionExpanded = this.expandedPromptVariantSetIds.has(promptVariantSetId);
|
|
321
|
+
// Get selected, effective, and default variant IDs from our class properties
|
|
322
|
+
const selectedVariantId = this.userSelectedVariantIds.get(promptVariantSetId);
|
|
323
|
+
const effectiveVariantId = this.effectiveVariantIds.get(promptVariantSetId);
|
|
324
|
+
const defaultVariantId = this.defaultVariantIds.get(promptVariantSetId);
|
|
325
|
+
// Get variant fragments grouped by ID
|
|
326
|
+
const variantGroups = new Map();
|
|
327
|
+
// First, collect all actual fragments for each variant ID
|
|
328
|
+
for (const variantId of variantIds) {
|
|
329
|
+
if (this.promptFragmentMap.has(variantId)) {
|
|
330
|
+
variantGroups.set(variantId, this.promptFragmentMap.get(variantId));
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
const relatedAgents = this.getAgentsUsingPromptVariantId(promptVariantSetId);
|
|
334
|
+
// Determine warning/error state
|
|
335
|
+
let variantSetMessage = undefined;
|
|
336
|
+
if (effectiveVariantId === undefined) {
|
|
337
|
+
// Error: effectiveId is undefined, so nothing works
|
|
338
|
+
variantSetMessage = (React.createElement("div", { className: "prompt-variant-error" },
|
|
339
|
+
React.createElement("span", { className: "codicon codicon-error" }),
|
|
340
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/variantSetError', 'The selected variant does not exist and no default could be found. Please check your configuration.')));
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
const needsWarning = selectedVariantId ? effectiveVariantId !== selectedVariantId : effectiveVariantId !== defaultVariantId;
|
|
344
|
+
if (needsWarning) {
|
|
345
|
+
// Warning: selectedId is set but does not exist, so default is used
|
|
346
|
+
variantSetMessage = (React.createElement("div", { className: "prompt-variant-warning" },
|
|
347
|
+
React.createElement("span", { className: "codicon codicon-warning" }),
|
|
348
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/variantSetWarning', 'The selected variant does not exist. The default variant is being used instead.')));
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
return (React.createElement("div", { className: "prompt-fragment-section", key: `variant-${promptVariantSetId}` },
|
|
352
|
+
React.createElement("div", { className: `prompt-fragment-header ${isSectionExpanded ? 'expanded' : ''}`, onClick: () => this.togglePromptVariantSetExpansion(promptVariantSetId) },
|
|
353
|
+
React.createElement("div", { className: "prompt-fragment-title" },
|
|
354
|
+
React.createElement("span", { className: "expansion-icon" }, isSectionExpanded ? '▼' : '▶'),
|
|
355
|
+
React.createElement("h2", null, promptVariantSetId)),
|
|
356
|
+
relatedAgents.length > 0 && (React.createElement("div", { className: "agent-chips-container" }, relatedAgents.map(agent => (React.createElement("span", { key: agent.id, className: "agent-chip", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/usedByAgentTitle', 'Used by agent: {0}', agent.name), onClick: e => e.stopPropagation() },
|
|
357
|
+
React.createElement("span", { className: (0, browser_1.codicon)('copilot') }),
|
|
358
|
+
agent.name)))))),
|
|
359
|
+
isSectionExpanded && (React.createElement("div", { className: "prompt-fragment-body" },
|
|
360
|
+
variantSetMessage,
|
|
361
|
+
React.createElement("div", { className: "prompt-fragment-description" },
|
|
362
|
+
React.createElement("p", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/variantsOfSystemPrompt', 'Variants of this prompt variant set:'))),
|
|
363
|
+
Array.from(variantGroups.entries()).map(([variantId, fragments]) => {
|
|
364
|
+
const isVariantExpanded = this.expandedPromptFragmentIds.has(variantId);
|
|
365
|
+
return (React.createElement("div", { key: variantId, className: `prompt-fragment-section ${selectedVariantId === variantId ? 'selected-variant' : ''}` },
|
|
366
|
+
React.createElement("div", { className: `prompt-fragment-header ${isVariantExpanded ? 'expanded' : ''}`, onClick: () => this.togglePromptFragmentExpansion(variantId) },
|
|
367
|
+
React.createElement("div", { className: "prompt-fragment-title" },
|
|
368
|
+
React.createElement("span", { className: "expansion-icon" }, isVariantExpanded ? '▼' : '▶'),
|
|
369
|
+
React.createElement("h4", null, variantId),
|
|
370
|
+
defaultVariantId === variantId && (React.createElement("span", { className: "badge default-variant", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/defaultVariantTitle', 'Default variant') }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/defaultVariantLabel', 'Default'))),
|
|
371
|
+
selectedVariantId === variantId && (React.createElement("span", { className: "selected-indicator", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/selectedVariantTitle', 'Selected variant') }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/selectedVariantLabel', 'Selected'))))),
|
|
372
|
+
isVariantExpanded && (React.createElement("div", { className: 'prompt-fragment-body' }, fragments.map(fragment => this.renderPromptFragmentCustomization(fragment))))));
|
|
373
|
+
})))));
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Gets fragments that aren't part of any prompt variant set
|
|
377
|
+
* @returns Map of fragment IDs to their customizations
|
|
378
|
+
*/
|
|
379
|
+
getNonPromptVariantSetFragments() {
|
|
380
|
+
const nonSystemPromptFragments = new Map();
|
|
381
|
+
const allVariantIds = new Set();
|
|
382
|
+
// Collect all variant IDs from prompt variant sets
|
|
383
|
+
this.promptVariantsMap.forEach((variants, _) => {
|
|
384
|
+
variants.forEach(variantId => allVariantIds.add(variantId));
|
|
385
|
+
});
|
|
386
|
+
// Add prompt variant set main IDs
|
|
387
|
+
this.promptVariantsMap.forEach((_, promptVariantSetId) => {
|
|
388
|
+
allVariantIds.add(promptVariantSetId);
|
|
389
|
+
});
|
|
390
|
+
// Filter the fragment map to only include non-prompt variant set fragments
|
|
391
|
+
this.promptFragmentMap.forEach((fragments, promptFragmentId) => {
|
|
392
|
+
if (!allVariantIds.has(promptFragmentId)) {
|
|
393
|
+
nonSystemPromptFragments.set(promptFragmentId, fragments);
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
return nonSystemPromptFragments;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Renders a prompt fragment with all of its customizations
|
|
400
|
+
* @param promptFragmentId ID of the prompt fragment
|
|
401
|
+
* @param customizations Array of the customizations
|
|
402
|
+
* @returns React node for the prompt fragment
|
|
403
|
+
*/
|
|
404
|
+
renderPromptFragment(promptFragmentId, customizations) {
|
|
405
|
+
const isSectionExpanded = this.expandedPromptFragmentIds.has(promptFragmentId);
|
|
406
|
+
return (React.createElement("div", { className: 'prompt-fragment-group', key: promptFragmentId },
|
|
407
|
+
React.createElement("div", { className: `prompt-fragment-header ${isSectionExpanded ? 'expanded' : ''}`, onClick: () => this.togglePromptFragmentExpansion(promptFragmentId) },
|
|
408
|
+
React.createElement("div", { className: "prompt-fragment-title" },
|
|
409
|
+
React.createElement("span", { className: "expansion-icon" }, isSectionExpanded ? '▼' : '▶'),
|
|
410
|
+
promptFragmentId)),
|
|
411
|
+
isSectionExpanded && (React.createElement("div", { className: "prompt-fragment-body" }, customizations.map(fragment => this.renderPromptFragmentCustomization(fragment))))));
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Renders a single prompt fragment customization with its controls and content
|
|
415
|
+
* @param promptFragment The prompt fragment to render
|
|
416
|
+
* @returns React node for the prompt fragment
|
|
417
|
+
*/
|
|
418
|
+
renderPromptFragmentCustomization(promptFragment) {
|
|
419
|
+
var _a;
|
|
420
|
+
const isCustomized = (0, prompt_service_1.isCustomizedPromptFragment)(promptFragment);
|
|
421
|
+
const isActive = this.isActiveCustomization(promptFragment);
|
|
422
|
+
// Create a unique key for this fragment to track expansion state
|
|
423
|
+
const fragmentKey = `${promptFragment.id}_${isCustomized ? promptFragment.customizationId : 'built-in'}`;
|
|
424
|
+
const isTemplateExpanded = this.expandedPromptFragmentTemplates.has(fragmentKey);
|
|
425
|
+
const hasCustomizedBuiltIn = (_a = this.promptFragmentMap.get(promptFragment.id)) === null || _a === void 0 ? void 0 : _a.some(fragment => (0, prompt_service_1.isCustomizedPromptFragment)(fragment) && fragment.priority === frontend_prompt_customization_service_1.CustomizationSource.CUSTOMIZED);
|
|
426
|
+
return (React.createElement("div", { className: `prompt-customization ${isActive ? 'active-customization' : ''}`, key: fragmentKey },
|
|
427
|
+
React.createElement("div", { className: "prompt-customization-header" },
|
|
428
|
+
React.createElement("div", { className: "prompt-customization-title" },
|
|
429
|
+
React.createElement(React.Suspense, { fallback: React.createElement("div", null, "Loading...") },
|
|
430
|
+
React.createElement(CustomizationTypeBadge, { promptFragment: promptFragment, promptService: this.promptService })),
|
|
431
|
+
isActive && (React.createElement("span", { className: "active-indicator", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/activeCustomizationTitle', 'Active customization') }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/activeCustomizationLabel', 'Active')))),
|
|
432
|
+
React.createElement("div", { className: "prompt-customization-actions" },
|
|
433
|
+
!isCustomized && !hasCustomizedBuiltIn && (React.createElement("button", { className: "template-action-button config-button", onClick: e => this.createPromptFragmentCustomization(promptFragment, e), title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/createCustomizationTitle', 'Create Customization') },
|
|
434
|
+
React.createElement("span", { className: (0, browser_1.codicon)('add') }))),
|
|
435
|
+
isCustomized && (React.createElement("button", { className: "source-uri-button", onClick: e => this.editPromptCustomization(promptFragment, e), title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/editTemplateTitle', 'Edit template') },
|
|
436
|
+
React.createElement("span", { className: (0, browser_1.codicon)('edit') }))),
|
|
437
|
+
!isActive && (React.createElement("button", { className: "template-action-button reset-button", onClick: e => this.resetToPromptFragment(promptFragment, e), title: !isCustomized ?
|
|
438
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToBuiltInTitle', 'Reset to this built-in') :
|
|
439
|
+
core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToCustomizationTitle', 'Reset to this customization') },
|
|
440
|
+
React.createElement("span", { className: (0, browser_1.codicon)('discard') }))),
|
|
441
|
+
isCustomized && (React.createElement("button", { className: "template-action-button delete-button", onClick: e => this.deletePromptFragmentCustomization(promptFragment, e), title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/deleteCustomizationTitle', 'Delete Customization') },
|
|
442
|
+
React.createElement("span", { className: (0, browser_1.codicon)('trash') }))))),
|
|
443
|
+
isCustomized && (React.createElement(React.Suspense, { fallback: React.createElement("div", null, "Loading...") },
|
|
444
|
+
React.createElement(DescriptionBadge, { promptFragment: promptFragment, promptService: this.promptService }))),
|
|
445
|
+
React.createElement("div", { className: "template-content-container" },
|
|
446
|
+
React.createElement("div", { className: "template-toggle-button", onClick: e => this.toggleTemplateExpansion(fragmentKey, e) },
|
|
447
|
+
React.createElement("span", { className: "template-expansion-icon" }, isTemplateExpanded ? '▼' : '▶'),
|
|
448
|
+
React.createElement("span", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/promptTemplateText', 'Prompt Template Text'))),
|
|
449
|
+
isTemplateExpanded && (React.createElement("div", { className: "template-content" },
|
|
450
|
+
React.createElement("pre", null, promptFragment.template))))));
|
|
451
|
+
}
|
|
452
|
+
};
|
|
453
|
+
exports.AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget;
|
|
454
|
+
AIPromptFragmentsConfigurationWidget.ID = 'ai-prompt-fragments-configuration';
|
|
455
|
+
AIPromptFragmentsConfigurationWidget.LABEL = core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/label', 'Prompt Fragments');
|
|
456
|
+
tslib_1.__decorate([
|
|
457
|
+
(0, inversify_1.inject)(prompt_service_1.PromptService),
|
|
458
|
+
tslib_1.__metadata("design:type", Object)
|
|
459
|
+
], AIPromptFragmentsConfigurationWidget.prototype, "promptService", void 0);
|
|
460
|
+
tslib_1.__decorate([
|
|
461
|
+
(0, inversify_1.inject)(agent_service_1.AgentService),
|
|
462
|
+
tslib_1.__metadata("design:type", Object)
|
|
463
|
+
], AIPromptFragmentsConfigurationWidget.prototype, "agentService", void 0);
|
|
464
|
+
tslib_1.__decorate([
|
|
465
|
+
(0, inversify_1.postConstruct)(),
|
|
466
|
+
tslib_1.__metadata("design:type", Function),
|
|
467
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
468
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
469
|
+
], AIPromptFragmentsConfigurationWidget.prototype, "init", null);
|
|
470
|
+
exports.AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget_1 = tslib_1.__decorate([
|
|
471
|
+
(0, inversify_1.injectable)()
|
|
472
|
+
], AIPromptFragmentsConfigurationWidget);
|
|
473
|
+
/**
|
|
474
|
+
* Displays a badge indicating the type of a prompt fragment customization (built-in, user, workspace)
|
|
475
|
+
*/
|
|
476
|
+
const CustomizationTypeBadge = ({ promptFragment, promptService }) => {
|
|
477
|
+
const [typeLabel, setTypeLabel] = React.useState('unknown');
|
|
478
|
+
React.useEffect(() => {
|
|
479
|
+
const fetchCustomizationType = async () => {
|
|
480
|
+
if ((0, prompt_service_1.isCustomizedPromptFragment)(promptFragment)) {
|
|
481
|
+
const customizationType = await promptService.getCustomizationType(promptFragment.id, promptFragment.customizationId);
|
|
482
|
+
setTypeLabel(`${customizationType ?
|
|
483
|
+
customizationType + ' ' + core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/customization', 'customization')
|
|
484
|
+
: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/customizationLabel', 'Customization')}`);
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
setTypeLabel(core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/builtInLabel', 'Built-in'));
|
|
488
|
+
}
|
|
489
|
+
};
|
|
490
|
+
fetchCustomizationType();
|
|
491
|
+
}, [promptFragment, promptService]);
|
|
492
|
+
return React.createElement("span", null, typeLabel);
|
|
493
|
+
};
|
|
494
|
+
/**
|
|
495
|
+
* Displays the description of a customized prompt fragment if available
|
|
496
|
+
*/
|
|
497
|
+
const DescriptionBadge = ({ promptFragment, promptService }) => {
|
|
498
|
+
const [description, setDescription] = React.useState('');
|
|
499
|
+
React.useEffect(() => {
|
|
500
|
+
const fetchDescription = async () => {
|
|
501
|
+
const customizationDescription = await promptService.getCustomizationDescription(promptFragment.id, promptFragment.customizationId);
|
|
502
|
+
setDescription(customizationDescription || '');
|
|
503
|
+
};
|
|
504
|
+
fetchDescription();
|
|
505
|
+
}, [promptFragment.id, promptFragment.customizationId, promptService]);
|
|
506
|
+
return React.createElement("span", { className: "prompt-customization-description" }, description);
|
|
507
|
+
};
|
|
508
|
+
//# sourceMappingURL=prompt-fragments-configuration-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-fragments-configuration-widget.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/prompt-fragments-configuration-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PromptService, PromptVariantSet } from '@theia/ai-core/lib/common';
|
|
3
|
+
import * as React from '@theia/core/shared/react';
|
|
4
|
+
export interface PromptVariantRendererProps {
|
|
5
|
+
agentId: string;
|
|
6
|
+
promptVariantSet: PromptVariantSet;
|
|
7
|
+
promptService: PromptService;
|
|
8
|
+
}
|
|
9
|
+
export declare const PromptVariantRenderer: React.FC<PromptVariantRendererProps>;
|
|
10
|
+
//# sourceMappingURL=template-settings-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-settings-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/ai-configuration/template-settings-renderer.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAGlD,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAsFtE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromptVariantRenderer = void 0;
|
|
4
|
+
const React = require("@theia/core/shared/react");
|
|
5
|
+
const nls_1 = require("@theia/core/lib/common/nls");
|
|
6
|
+
const PromptVariantRenderer = ({ agentId, promptVariantSet, promptService, }) => {
|
|
7
|
+
const variantIds = promptService.getVariantIds(promptVariantSet.id);
|
|
8
|
+
const defaultVariantId = promptService.getDefaultVariantId(promptVariantSet.id);
|
|
9
|
+
const [selectedVariant, setSelectedVariant] = React.useState(defaultVariantId);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
const currentVariant = promptService.getSelectedVariantId(promptVariantSet.id);
|
|
12
|
+
setSelectedVariant(currentVariant !== null && currentVariant !== void 0 ? currentVariant : defaultVariantId);
|
|
13
|
+
const disposable = promptService.onSelectedVariantChange(notification => {
|
|
14
|
+
var _a;
|
|
15
|
+
if (notification.promptVariantSetId === promptVariantSet.id) {
|
|
16
|
+
setSelectedVariant((_a = notification.variantId) !== null && _a !== void 0 ? _a : defaultVariantId);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return () => {
|
|
20
|
+
disposable.dispose();
|
|
21
|
+
};
|
|
22
|
+
}, [promptVariantSet.id, promptService, defaultVariantId]);
|
|
23
|
+
const isInvalidVariant = !variantIds.includes(selectedVariant);
|
|
24
|
+
const handleVariantChange = async (event) => {
|
|
25
|
+
const newVariant = event.target.value;
|
|
26
|
+
setSelectedVariant(newVariant);
|
|
27
|
+
promptService.updateSelectedVariantId(agentId, promptVariantSet.id, newVariant);
|
|
28
|
+
};
|
|
29
|
+
const openTemplate = () => {
|
|
30
|
+
promptService.editBuiltInCustomization(selectedVariant);
|
|
31
|
+
};
|
|
32
|
+
const resetTemplate = () => {
|
|
33
|
+
promptService.resetToBuiltIn(selectedVariant);
|
|
34
|
+
};
|
|
35
|
+
return (React.createElement("div", { className: "template-renderer" },
|
|
36
|
+
React.createElement("div", { className: "settings-section-title template-header" },
|
|
37
|
+
React.createElement("strong", null, promptVariantSet.id)),
|
|
38
|
+
React.createElement("div", { className: "template-controls" },
|
|
39
|
+
(variantIds.length > 1 || isInvalidVariant) && (React.createElement(React.Fragment, null,
|
|
40
|
+
React.createElement("label", { htmlFor: `variant-selector-${promptVariantSet.id}`, className: "template-select-label" }, nls_1.nls.localize('theia/ai/core/templateSettings/selectVariant', 'Select Variant:')),
|
|
41
|
+
React.createElement("select", { id: `variant-selector-${promptVariantSet.id}`, className: `theia-select template-variant-selector ${isInvalidVariant ? 'error' : ''}`, value: isInvalidVariant ? 'invalid' : selectedVariant, onChange: handleVariantChange },
|
|
42
|
+
isInvalidVariant && (React.createElement("option", { value: "invalid", disabled: true }, nls_1.nls.localize('theia/ai/core/templateSettings/unavailableVariant', 'Selected variant not available, default will be used'))),
|
|
43
|
+
variantIds.map(variantId => (React.createElement("option", { key: variantId, value: variantId }, variantId === defaultVariantId ? variantId + ' ' + nls_1.nls.localizeByDefault('(default)') : variantId)))))),
|
|
44
|
+
React.createElement("button", { className: "theia-button main", onClick: openTemplate, disabled: isInvalidVariant }, nls_1.nls.localizeByDefault('Edit')),
|
|
45
|
+
React.createElement("button", { className: "theia-button secondary", onClick: resetTemplate, disabled: isInvalidVariant }, nls_1.nls.localizeByDefault('Reset')))));
|
|
46
|
+
};
|
|
47
|
+
exports.PromptVariantRenderer = PromptVariantRenderer;
|
|
48
|
+
//# sourceMappingURL=template-settings-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-settings-renderer.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/template-settings-renderer.tsx"],"names":[],"mappings":"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"}
|