@theia/ai-chat-ui 1.74.0-next.9 → 1.74.1
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-chat-ui-contribution.d.ts.map +1 -1
- package/lib/browser/ai-chat-ui-contribution.js +54 -31
- package/lib/browser/ai-chat-ui-contribution.js.map +1 -1
- package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-chat-ui-frontend-module.js +11 -3
- package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
- package/lib/browser/chat-banner-provider.d.ts +20 -0
- package/lib/browser/chat-banner-provider.d.ts.map +1 -0
- package/lib/browser/chat-banner-provider.js +28 -0
- package/lib/browser/chat-banner-provider.js.map +1 -0
- package/lib/browser/chat-banner-widget.d.ts +20 -0
- package/lib/browser/chat-banner-widget.d.ts.map +1 -0
- package/lib/browser/chat-banner-widget.js +81 -0
- package/lib/browser/chat-banner-widget.js.map +1 -0
- package/lib/browser/chat-input-widget.d.ts +34 -15
- package/lib/browser/chat-input-widget.d.ts.map +1 -1
- package/lib/browser/chat-input-widget.js +175 -60
- package/lib/browser/chat-input-widget.js.map +1 -1
- package/lib/browser/chat-response-renderer/block-external-resources.d.ts +22 -0
- package/lib/browser/chat-response-renderer/block-external-resources.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/block-external-resources.js +331 -0
- package/lib/browser/chat-response-renderer/block-external-resources.js.map +1 -0
- package/lib/browser/chat-response-renderer/block-external-resources.spec.d.ts +2 -0
- package/lib/browser/chat-response-renderer/block-external-resources.spec.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/block-external-resources.spec.js +351 -0
- package/lib/browser/chat-response-renderer/block-external-resources.spec.js.map +1 -0
- package/lib/browser/chat-response-renderer/blocked-resource-placeholder.d.ts +7 -0
- package/lib/browser/chat-response-renderer/blocked-resource-placeholder.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/blocked-resource-placeholder.js +39 -0
- package/lib/browser/chat-response-renderer/blocked-resource-placeholder.js.map +1 -0
- package/lib/browser/chat-response-renderer/compaction-part-renderer.d.ts +8 -0
- package/lib/browser/chat-response-renderer/compaction-part-renderer.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/compaction-part-renderer.js +47 -0
- package/lib/browser/chat-response-renderer/compaction-part-renderer.js.map +1 -0
- package/lib/browser/chat-response-renderer/delegation-tool-renderer.js +1 -1
- package/lib/browser/chat-response-renderer/delegation-tool-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.d.ts +11 -0
- package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.js +47 -0
- package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.js.map +1 -0
- package/lib/browser/chat-response-renderer/index.d.ts +1 -0
- package/lib/browser/chat-response-renderer/index.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/index.js +1 -0
- package/lib/browser/chat-response-renderer/index.js.map +1 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +4 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.js +41 -10
- package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.d.ts +2 -0
- package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.js +167 -0
- package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.js.map +1 -0
- package/lib/browser/chat-session-notification-contribution.d.ts +36 -0
- package/lib/browser/chat-session-notification-contribution.d.ts.map +1 -0
- package/lib/browser/chat-session-notification-contribution.js +128 -0
- package/lib/browser/chat-session-notification-contribution.js.map +1 -0
- package/lib/browser/chat-session-notification-contribution.spec.d.ts +2 -0
- package/lib/browser/chat-session-notification-contribution.spec.d.ts.map +1 -0
- package/lib/browser/chat-session-notification-contribution.spec.js +233 -0
- package/lib/browser/chat-session-notification-contribution.spec.js.map +1 -0
- package/lib/browser/chat-token-usage-indicator-util.d.ts +8 -1
- package/lib/browser/chat-token-usage-indicator-util.d.ts.map +1 -1
- package/lib/browser/chat-token-usage-indicator-util.js +50 -5
- package/lib/browser/chat-token-usage-indicator-util.js.map +1 -1
- package/lib/browser/chat-token-usage-indicator-util.spec.js +86 -2
- package/lib/browser/chat-token-usage-indicator-util.spec.js.map +1 -1
- package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +12 -27
- package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
- package/lib/browser/chat-tree-view/chat-view-tree-widget.js +39 -127
- package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
- package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.d.ts +2 -0
- package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.d.ts.map +1 -0
- package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.js +83 -0
- package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.js.map +1 -0
- package/lib/browser/chat-tree-view/model-badge.d.ts +13 -0
- package/lib/browser/chat-tree-view/model-badge.d.ts.map +1 -0
- package/lib/browser/chat-tree-view/model-badge.js +41 -0
- package/lib/browser/chat-tree-view/model-badge.js.map +1 -0
- package/lib/browser/chat-view-commands.d.ts +1 -0
- package/lib/browser/chat-view-commands.d.ts.map +1 -1
- package/lib/browser/chat-view-commands.js +6 -1
- package/lib/browser/chat-view-commands.js.map +1 -1
- package/lib/browser/chat-view-preferences.d.ts +2 -0
- package/lib/browser/chat-view-preferences.d.ts.map +1 -1
- package/lib/browser/chat-view-preferences.js +13 -1
- package/lib/browser/chat-view-preferences.js.map +1 -1
- package/lib/browser/chat-view-widget.d.ts +3 -1
- package/lib/browser/chat-view-widget.d.ts.map +1 -1
- package/lib/browser/chat-view-widget.js +8 -2
- package/lib/browser/chat-view-widget.js.map +1 -1
- package/lib/browser/session-settings-dialog.d.ts +5 -0
- package/lib/browser/session-settings-dialog.d.ts.map +1 -1
- package/lib/browser/session-settings-dialog.js +61 -2
- package/lib/browser/session-settings-dialog.js.map +1 -1
- package/package.json +13 -13
- package/src/browser/ai-chat-ui-contribution.ts +64 -36
- package/src/browser/ai-chat-ui-frontend-module.ts +12 -3
- package/src/browser/chat-banner-provider.ts +36 -0
- package/src/browser/chat-banner-widget.tsx +69 -0
- package/src/browser/chat-input-widget.tsx +232 -62
- package/src/browser/chat-response-renderer/block-external-resources.spec.ts +449 -0
- package/src/browser/chat-response-renderer/block-external-resources.ts +370 -0
- package/src/browser/chat-response-renderer/blocked-resource-placeholder.tsx +44 -0
- package/src/browser/chat-response-renderer/compaction-part-renderer.tsx +52 -0
- package/src/browser/chat-response-renderer/delegation-tool-renderer.tsx +1 -1
- package/src/browser/chat-response-renderer/external-resource-allowlist-contribution.ts +42 -0
- package/src/browser/chat-response-renderer/index.ts +1 -0
- package/src/browser/chat-response-renderer/markdown-part-renderer.spec.tsx +203 -0
- package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +47 -10
- package/src/browser/chat-session-notification-contribution.spec.ts +314 -0
- package/src/browser/chat-session-notification-contribution.ts +132 -0
- package/src/browser/chat-token-usage-indicator-util.spec.ts +100 -2
- package/src/browser/chat-token-usage-indicator-util.ts +52 -5
- package/src/browser/chat-tree-view/chat-view-tree-widget.spec.tsx +117 -0
- package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +53 -153
- package/src/browser/chat-tree-view/model-badge.tsx +52 -0
- package/src/browser/chat-view-commands.ts +6 -0
- package/src/browser/chat-view-preferences.ts +16 -0
- package/src/browser/chat-view-widget.tsx +6 -1
- package/src/browser/session-settings-dialog.tsx +140 -1
- package/src/browser/style/index.css +195 -34
- package/lib/browser/chat-input-needed-notification-contribution.d.ts +0 -28
- package/lib/browser/chat-input-needed-notification-contribution.d.ts.map +0 -1
- package/lib/browser/chat-input-needed-notification-contribution.js +0 -104
- package/lib/browser/chat-input-needed-notification-contribution.js.map +0 -1
- package/lib/browser/chat-input-needed-notification-contribution.spec.d.ts +0 -2
- package/lib/browser/chat-input-needed-notification-contribution.spec.d.ts.map +0 -1
- package/lib/browser/chat-input-needed-notification-contribution.spec.js +0 -171
- package/lib/browser/chat-input-needed-notification-contribution.spec.js.map +0 -1
- package/src/browser/chat-input-needed-notification-contribution.spec.ts +0 -223
- package/src/browser/chat-input-needed-notification-contribution.ts +0 -103
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ChatAgent, ChatHierarchyBranch, ChatModel, ChatRequestModel, ChatService, ChatRequestParser, ChatMode, ChatSession } from '@theia/ai-chat';
|
|
2
2
|
import { ChatAgentService } from '@theia/ai-chat/lib/common/chat-agent-service';
|
|
3
3
|
import { ParsedChatRequest } from '@theia/ai-chat/lib/common/parsed-chat-request';
|
|
4
|
-
import { GenericCapabilitySelections, AIVariableResolutionRequest, ParsedCapability, FrontendLanguageModelRegistry, ReasoningLevel, ReasoningSettings, ReasoningSupport, ServerToolDescriptor } from '@theia/ai-core';
|
|
4
|
+
import { GenericCapabilitySelections, AIVariableResolutionRequest, ParsedCapability, FrontendLanguageModelRegistry, LanguageModel, ReasoningLevel, ReasoningSettings, ReasoningSupport, ServerToolDescriptor } from '@theia/ai-core';
|
|
5
5
|
import { ChangeSetDecoratorService } from '@theia/ai-chat/lib/browser/change-set-decorator-service';
|
|
6
6
|
import { ImageContextVariable } from '@theia/ai-chat/lib/common/image-context-variable';
|
|
7
|
-
import {
|
|
7
|
+
import { FrontendVariableService, AIActivationService } from '@theia/ai-core/lib/browser';
|
|
8
8
|
import { AISettingsService, PromptService } from '@theia/ai-core/lib/common';
|
|
9
|
-
import { ApplicationShell } from '@theia/core/lib/browser/shell/application-shell';
|
|
10
9
|
import { CommandService, DisposableCollection, Emitter, InMemoryResources, MessageService, URI, Disposable, ILogger } from '@theia/core';
|
|
11
10
|
import { ContextMenuRenderer, HoverService, LabelProvider, Message, OpenerService, ReactWidget } from '@theia/core/lib/browser';
|
|
12
11
|
import { ContextKey, ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
@@ -51,7 +50,6 @@ export declare class AIChatInputWidget extends ReactWidget {
|
|
|
51
50
|
protected readonly labelProvider: LabelProvider;
|
|
52
51
|
protected readonly contextVariablePicker: ContextVariablePicker;
|
|
53
52
|
protected readonly changeSetActionService: ChangeSetActionService;
|
|
54
|
-
protected readonly agentNotificationService: AgentNotificationService;
|
|
55
53
|
protected readonly changeSetDecoratorService: ChangeSetDecoratorService;
|
|
56
54
|
protected readonly openerService: OpenerService;
|
|
57
55
|
protected readonly chatService: ChatService;
|
|
@@ -66,7 +64,6 @@ export declare class AIChatInputWidget extends ReactWidget {
|
|
|
66
64
|
protected readonly genericCapabilitiesService: GenericCapabilitiesService | undefined;
|
|
67
65
|
protected fileValidationState: Map<string, FileValidationResult>;
|
|
68
66
|
protected readonly contextKeyService: ContextKeyService;
|
|
69
|
-
protected readonly applicationShell: ApplicationShell;
|
|
70
67
|
protected readonly keybindingRegistry: KeybindingRegistry;
|
|
71
68
|
protected readonly hoverService: HoverService;
|
|
72
69
|
protected readonly chatInputFocusService: ChatInputFocusService;
|
|
@@ -92,6 +89,10 @@ export declare class AIChatInputWidget extends ReactWidget {
|
|
|
92
89
|
protected getModeKeybindingHint(): string | undefined;
|
|
93
90
|
cycleMode(): void;
|
|
94
91
|
protected handleModeChange: (mode: string) => Promise<void>;
|
|
92
|
+
/** Monotonic token for the latest async {@link updateReasoningSupport} run; older, out-of-order runs discard their results when this changes. */
|
|
93
|
+
protected reasoningStateGeneration: number;
|
|
94
|
+
/** Monotonic token for the latest async {@link updateResolvedDefaultModel} run; older, out-of-order runs discard their results when this changes. */
|
|
95
|
+
protected resolvedDefaultGeneration: number;
|
|
95
96
|
/** Reasoning capability of the model the receiving agent would currently use; undefined hides the selector. */
|
|
96
97
|
protected currentReasoningSupport?: ReasoningSupport;
|
|
97
98
|
/** Id (`provider/model`) of the model that backs {@link currentReasoningSupport}; used to resolve preference defaults. */
|
|
@@ -121,6 +122,23 @@ export declare class AIChatInputWidget extends ReactWidget {
|
|
|
121
122
|
protected updateCapabilitiesForAgent(agentId: string, modeId?: string, preserveOverrides?: boolean): Promise<void>;
|
|
122
123
|
/** Updates the active chat session's `commonSettings.reasoning`; pass `undefined` to clear. */
|
|
123
124
|
protected applyReasoningToSession(reasoning: ReasoningSettings | undefined): void;
|
|
125
|
+
/** Language models available for the per-session model selector; refreshed on registry changes. */
|
|
126
|
+
protected availableModels: LanguageModel[];
|
|
127
|
+
/** Concrete model id the agent default currently resolves to (e.g. what `default/code` points at); falls back to the identifier. */
|
|
128
|
+
protected resolvedDefaultLabel?: string;
|
|
129
|
+
protected loadAvailableModels(): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Resolves the model a new session would use for this agent, honoring the per-agent override
|
|
132
|
+
* configured in the AI configuration (via {@link AISettingsService}) and following aliases, so
|
|
133
|
+
* the selector's "Default" reflects the effective, resolved target.
|
|
134
|
+
*/
|
|
135
|
+
protected updateResolvedDefaultModel(): Promise<void>;
|
|
136
|
+
/** The per-session model override id for the active session, if any. */
|
|
137
|
+
protected getSessionModelOverride(): string | undefined;
|
|
138
|
+
/** Sets (or clears, with `undefined`) the per-session model override for the active session. */
|
|
139
|
+
protected handleSessionModelChange: (modelId: string | undefined) => void;
|
|
140
|
+
/** Builds the props for the per-session model selector. */
|
|
141
|
+
protected getModelSelectorProps(): ModelSelectorWidgetProps;
|
|
124
142
|
protected updateAvailableGenericCapabilities(): Promise<void>;
|
|
125
143
|
/**
|
|
126
144
|
* Extracts capability overrides from the last request in the chat model.
|
|
@@ -300,16 +318,6 @@ export declare class AIChatInputWidget extends ReactWidget {
|
|
|
300
318
|
protected syncSelectedModeWithDefault(): void;
|
|
301
319
|
protected setupEditorEventListeners(): void;
|
|
302
320
|
protected onActivateRequest(msg: Message): void;
|
|
303
|
-
protected handleAgentCompletion(request: ChatRequestModel): Promise<void>;
|
|
304
|
-
/**
|
|
305
|
-
* Check if the specific chat session is currently focused.
|
|
306
|
-
* Returns true only if the chat widget is focused AND viewing the same session.
|
|
307
|
-
*/
|
|
308
|
-
protected isChatSessionFocused(sessionId: string): boolean;
|
|
309
|
-
/**
|
|
310
|
-
* Focus the chat session by setting it as active with focus.
|
|
311
|
-
*/
|
|
312
|
-
protected focusChatSession(sessionId: string): void;
|
|
313
321
|
protected getResourceUri(): URI;
|
|
314
322
|
protected render(): React.ReactNode;
|
|
315
323
|
protected onDragOver(event: React.DragEvent): void;
|
|
@@ -365,5 +373,16 @@ export declare class AIChatInputWidget extends ReactWidget {
|
|
|
365
373
|
*/
|
|
366
374
|
protected deleteContextElement(index: number): void;
|
|
367
375
|
}
|
|
376
|
+
/** Props for the per-session language model selector. */
|
|
377
|
+
interface ModelSelectorWidgetProps {
|
|
378
|
+
/** Models available to switch to. */
|
|
379
|
+
models: LanguageModel[];
|
|
380
|
+
/** The session's current model override id, if any (undefined = use the agent default). */
|
|
381
|
+
currentModelId?: string;
|
|
382
|
+
/** Human-readable label of the model/alias new sessions use by default. */
|
|
383
|
+
defaultLabel: string;
|
|
384
|
+
/** Set the session override (or clear it with `undefined`). */
|
|
385
|
+
onModelChange: (modelId: string | undefined) => void;
|
|
386
|
+
}
|
|
368
387
|
export {};
|
|
369
388
|
//# sourceMappingURL=chat-input-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-input-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-input-widget.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-input-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-input-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,6 @@ const change_set_decorator_service_1 = require("@theia/ai-chat/lib/browser/chang
|
|
|
26
26
|
const image_context_variable_1 = require("@theia/ai-chat/lib/common/image-context-variable");
|
|
27
27
|
const browser_1 = require("@theia/ai-core/lib/browser");
|
|
28
28
|
const common_1 = require("@theia/ai-core/lib/common");
|
|
29
|
-
const application_shell_1 = require("@theia/core/lib/browser/shell/application-shell");
|
|
30
29
|
const core_1 = require("@theia/core");
|
|
31
30
|
const browser_2 = require("@theia/core/lib/browser");
|
|
32
31
|
const select_component_1 = require("@theia/core/lib/browser/widgets/select-component");
|
|
@@ -42,6 +41,7 @@ const chat_input_agent_suggestions_1 = require("./chat-input-agent-suggestions")
|
|
|
42
41
|
const chat_view_language_contribution_1 = require("./chat-view-language-contribution");
|
|
43
42
|
const context_variable_picker_1 = require("./context-variable-picker");
|
|
44
43
|
const task_context_variable_1 = require("@theia/ai-chat/lib/browser/task-context-variable");
|
|
44
|
+
const suggestController_1 = require("@theia/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestController");
|
|
45
45
|
const chat_input_history_1 = require("./chat-input-history");
|
|
46
46
|
const context_file_validation_service_1 = require("@theia/ai-chat/lib/browser/context-file-validation-service");
|
|
47
47
|
const pending_image_registry_1 = require("@theia/ai-chat/lib/browser/pending-image-registry");
|
|
@@ -54,7 +54,6 @@ const preferences_1 = require("@theia/core/lib/common/preferences");
|
|
|
54
54
|
const chat_view_preferences_1 = require("./chat-view-preferences");
|
|
55
55
|
const chat_token_usage_indicator_util_1 = require("./chat-token-usage-indicator-util");
|
|
56
56
|
const chat_view_commands_1 = require("./chat-view-commands");
|
|
57
|
-
const chat_session_focus_1 = require("./chat-session-focus");
|
|
58
57
|
exports.AIChatInputConfiguration = Symbol('AIChatInputConfiguration');
|
|
59
58
|
let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
60
59
|
constructor() {
|
|
@@ -71,6 +70,10 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
71
70
|
await this.updateCapabilitiesForAgent(this.receivingAgent.agentId, mode);
|
|
72
71
|
}
|
|
73
72
|
};
|
|
73
|
+
/** Monotonic token for the latest async {@link updateReasoningSupport} run; older, out-of-order runs discard their results when this changes. */
|
|
74
|
+
this.reasoningStateGeneration = 0;
|
|
75
|
+
/** Monotonic token for the latest async {@link updateResolvedDefaultModel} run; older, out-of-order runs discard their results when this changes. */
|
|
76
|
+
this.resolvedDefaultGeneration = 0;
|
|
74
77
|
this.handleReasoningChange = async (level) => {
|
|
75
78
|
const session = this.chatService.getSessions().find(s => s.model.id === this._chatModel?.id);
|
|
76
79
|
if (!session) {
|
|
@@ -136,6 +139,31 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
136
139
|
};
|
|
137
140
|
this.update();
|
|
138
141
|
};
|
|
142
|
+
/** Language models available for the per-session model selector; refreshed on registry changes. */
|
|
143
|
+
this.availableModels = [];
|
|
144
|
+
/** Sets (or clears, with `undefined`) the per-session model override for the active session. */
|
|
145
|
+
this.handleSessionModelChange = (modelId) => {
|
|
146
|
+
const session = this.chatService.getSessions().find(s => s.model.id === this._chatModel?.id);
|
|
147
|
+
if (!session) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const currentSettings = session.model.settings ?? {};
|
|
151
|
+
const currentCommon = currentSettings.commonSettings ?? {};
|
|
152
|
+
if ((currentCommon.modelId ?? undefined) === (modelId ?? undefined)) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const newCommon = { ...currentCommon };
|
|
156
|
+
if (modelId) {
|
|
157
|
+
newCommon.modelId = modelId;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
delete newCommon.modelId;
|
|
161
|
+
}
|
|
162
|
+
session.model.setSettings({ ...currentSettings, commonSettings: newCommon });
|
|
163
|
+
// The override changes the effective model, so refresh all model-dependent state.
|
|
164
|
+
this.updateReasoningSupport(this.receivingAgent?.agentId);
|
|
165
|
+
this.update();
|
|
166
|
+
};
|
|
139
167
|
this.capabilitiesOpen = false;
|
|
140
168
|
this.isEnabled = false;
|
|
141
169
|
this.heightInLines = 12;
|
|
@@ -263,12 +291,26 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
263
291
|
return (0, frontend_language_model_service_1.mergeReasoningSettings)(entries, modelId, providerId, this.receivingAgent?.agentId)?.reasoning?.level;
|
|
264
292
|
}
|
|
265
293
|
async updateReasoningSupport(agentId) {
|
|
294
|
+
// Guard against out-of-order completion: if the model/session changes while the async lookups
|
|
295
|
+
// below are in flight, a stale run must not overwrite the fields with outdated values.
|
|
296
|
+
const generation = ++this.reasoningStateGeneration;
|
|
266
297
|
let support;
|
|
267
298
|
let modelId;
|
|
268
299
|
let maxInputTokens;
|
|
269
300
|
let serverTools;
|
|
270
301
|
let vendor;
|
|
271
|
-
|
|
302
|
+
// A per-session model override drives all model-dependent state (reasoning support, context
|
|
303
|
+
// size, server tools, vendor) instead of the agent's configured default.
|
|
304
|
+
const overrideId = this.getSessionModelOverride();
|
|
305
|
+
const overrideModel = overrideId ? await this.languageModelRegistry.getReadyLanguageModel(overrideId) : undefined;
|
|
306
|
+
if (overrideModel) {
|
|
307
|
+
support = overrideModel.reasoningSupport;
|
|
308
|
+
modelId = overrideModel.id;
|
|
309
|
+
maxInputTokens = overrideModel.maxInputTokens;
|
|
310
|
+
serverTools = overrideModel.serverTools;
|
|
311
|
+
vendor = overrideModel.vendor;
|
|
312
|
+
}
|
|
313
|
+
else if (agentId) {
|
|
272
314
|
const agent = this.chatAgentService.getAgent(agentId);
|
|
273
315
|
if (agent) {
|
|
274
316
|
for (const requirement of agent.languageModelRequirements ?? []) {
|
|
@@ -299,6 +341,10 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
299
341
|
}
|
|
300
342
|
}
|
|
301
343
|
}
|
|
344
|
+
if (generation !== this.reasoningStateGeneration) {
|
|
345
|
+
// A newer refresh started while we awaited; its results win.
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
302
348
|
if (support !== this.currentReasoningSupport
|
|
303
349
|
|| modelId !== this.currentLanguageModelId
|
|
304
350
|
|| maxInputTokens !== this.currentMaxInputTokens
|
|
@@ -311,6 +357,7 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
311
357
|
this.currentModelVendor = vendor;
|
|
312
358
|
this.update();
|
|
313
359
|
}
|
|
360
|
+
this.updateResolvedDefaultModel();
|
|
314
361
|
}
|
|
315
362
|
async updateCapabilitiesForAgent(agentId, modeId, preserveOverrides) {
|
|
316
363
|
const capabilities = await this.capabilitiesService.getCapabilitiesForAgent(agentId, modeId);
|
|
@@ -361,6 +408,55 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
361
408
|
}
|
|
362
409
|
session.model.setSettings({ ...currentSettings, commonSettings: newCommon });
|
|
363
410
|
}
|
|
411
|
+
async loadAvailableModels() {
|
|
412
|
+
this.availableModels = await this.languageModelRegistry.getLanguageModels();
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Resolves the model a new session would use for this agent, honoring the per-agent override
|
|
416
|
+
* configured in the AI configuration (via {@link AISettingsService}) and following aliases, so
|
|
417
|
+
* the selector's "Default" reflects the effective, resolved target.
|
|
418
|
+
*/
|
|
419
|
+
async updateResolvedDefaultModel() {
|
|
420
|
+
// Guard against out-of-order completion, mirroring updateReasoningSupport.
|
|
421
|
+
const generation = ++this.resolvedDefaultGeneration;
|
|
422
|
+
const agent = this.receivingAgent ? this.chatAgentService.getAgent(this.receivingAgent.agentId) : undefined;
|
|
423
|
+
const requirement = agent?.languageModelRequirements?.[0];
|
|
424
|
+
let label;
|
|
425
|
+
if (agent && requirement) {
|
|
426
|
+
const agentSettings = await this.aiSettingsService.getAgentSettings(agent.id);
|
|
427
|
+
const effective = agentSettings?.languageModelRequirements?.find(r => r.purpose === requirement.purpose)?.identifier
|
|
428
|
+
?? requirement.identifier;
|
|
429
|
+
const resolved = await this.languageModelRegistry.selectLanguageModel({ agent: agent.id, ...requirement });
|
|
430
|
+
const resolvedId = resolved?.id;
|
|
431
|
+
// Show "alias → resolved" when the effective default is an alias that resolves to a concrete model.
|
|
432
|
+
label = resolvedId && effective && resolvedId !== effective ? `${effective} → ${resolvedId}` : (resolvedId ?? effective);
|
|
433
|
+
}
|
|
434
|
+
if (generation !== this.resolvedDefaultGeneration) {
|
|
435
|
+
// A newer refresh started while we awaited; its results win.
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
if (label !== this.resolvedDefaultLabel) {
|
|
439
|
+
this.resolvedDefaultLabel = label;
|
|
440
|
+
this.update();
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
/** The per-session model override id for the active session, if any. */
|
|
444
|
+
getSessionModelOverride() {
|
|
445
|
+
const session = this.chatService.getSessions().find(s => s.model.id === this._chatModel?.id);
|
|
446
|
+
return session?.model.settings?.commonSettings?.modelId;
|
|
447
|
+
}
|
|
448
|
+
/** Builds the props for the per-session model selector. */
|
|
449
|
+
getModelSelectorProps() {
|
|
450
|
+
const currentModelId = this.getSessionModelOverride();
|
|
451
|
+
const defaultLabel = this.resolvedDefaultLabel
|
|
452
|
+
?? core_1.nls.localize('theia/ai/chat-ui/agentDefaultModel', 'agent default');
|
|
453
|
+
return {
|
|
454
|
+
models: this.availableModels,
|
|
455
|
+
currentModelId,
|
|
456
|
+
defaultLabel,
|
|
457
|
+
onModelChange: this.handleSessionModelChange,
|
|
458
|
+
};
|
|
459
|
+
}
|
|
364
460
|
async updateAvailableGenericCapabilities() {
|
|
365
461
|
if (!this.genericCapabilitiesService) {
|
|
366
462
|
return;
|
|
@@ -722,12 +818,22 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
722
818
|
this.toDispose.push(this.capabilitiesService.onDidChangeCapabilities(() => {
|
|
723
819
|
this.refreshCapabilities();
|
|
724
820
|
}));
|
|
725
|
-
// Refresh reasoning capability if the language model registry
|
|
821
|
+
// Refresh reasoning capability and the model selector list if the language model registry
|
|
822
|
+
// changes (model added/removed/alias re-resolved).
|
|
726
823
|
this.toDispose.push(this.languageModelRegistry.onChange(() => {
|
|
824
|
+
this.loadAvailableModels().then(() => this.update());
|
|
727
825
|
if (this.receivingAgent) {
|
|
728
826
|
this.updateReasoningSupport(this.receivingAgent.agentId);
|
|
729
827
|
}
|
|
730
828
|
}));
|
|
829
|
+
// When the agent's model is changed in the AI configuration, refresh the selector's resolved
|
|
830
|
+
// default and the model-dependent state (reasoning support, context size, server tools, vendor).
|
|
831
|
+
this.toDispose.push(this.aiSettingsService.onDidChange(() => {
|
|
832
|
+
this.updateResolvedDefaultModel();
|
|
833
|
+
this.updateReasoningSupport(this.receivingAgent?.agentId);
|
|
834
|
+
}));
|
|
835
|
+
this.loadAvailableModels().then(() => this.update());
|
|
836
|
+
this.updateResolvedDefaultModel();
|
|
731
837
|
// When the default mode changes externally (e.g. via AI Configuration),
|
|
732
838
|
// sync the mode selector. Deferred via queueMicrotask so the prompt service's
|
|
733
839
|
// internal state is fully updated before we read agent.modes.
|
|
@@ -1010,6 +1116,14 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1010
1116
|
}
|
|
1011
1117
|
this.scheduleUpdateReceivingAgent();
|
|
1012
1118
|
}));
|
|
1119
|
+
// Force the suggest widget above the input, otherwise Monaco measures the available
|
|
1120
|
+
// space against the document body and opens it downward behind the bottom panel when
|
|
1121
|
+
// the chat is in the main area. Assert this on every trigger because the inline
|
|
1122
|
+
// completions controller resets the flag whenever there is no ghost text.
|
|
1123
|
+
const suggestController = suggestController_1.SuggestController.get(editor);
|
|
1124
|
+
if (suggestController) {
|
|
1125
|
+
this.toDispose.push(suggestController.model.onDidTrigger(() => suggestController.forceRenderingAbove()));
|
|
1126
|
+
}
|
|
1013
1127
|
if (editor.hasWidgetFocus()) {
|
|
1014
1128
|
this.chatInputFocusKey.set(true);
|
|
1015
1129
|
this.updateCursorPositionKeys();
|
|
@@ -1023,39 +1137,6 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1023
1137
|
}
|
|
1024
1138
|
});
|
|
1025
1139
|
}
|
|
1026
|
-
async handleAgentCompletion(request) {
|
|
1027
|
-
try {
|
|
1028
|
-
const agentId = request.agentId;
|
|
1029
|
-
const sessionId = request.session.id;
|
|
1030
|
-
if (agentId && sessionId) {
|
|
1031
|
-
// Get the session title for display in the notification
|
|
1032
|
-
const session = this.chatService.getSession(sessionId);
|
|
1033
|
-
const sessionTitle = session?.title;
|
|
1034
|
-
const options = {
|
|
1035
|
-
shouldSuppress: () => this.isChatSessionFocused(sessionId),
|
|
1036
|
-
onActivate: () => this.focusChatSession(sessionId),
|
|
1037
|
-
sessionTitle,
|
|
1038
|
-
};
|
|
1039
|
-
await this.agentNotificationService.showNotification(agentId, ai_core_1.AGENT_NOTIFICATION_KIND_COMPLETED, options);
|
|
1040
|
-
}
|
|
1041
|
-
}
|
|
1042
|
-
catch (error) {
|
|
1043
|
-
this.logger.error('Failed to handle agent completion notification:', error);
|
|
1044
|
-
}
|
|
1045
|
-
}
|
|
1046
|
-
/**
|
|
1047
|
-
* Check if the specific chat session is currently focused.
|
|
1048
|
-
* Returns true only if the chat widget is focused AND viewing the same session.
|
|
1049
|
-
*/
|
|
1050
|
-
isChatSessionFocused(sessionId) {
|
|
1051
|
-
return (0, chat_session_focus_1.isChatSessionFocused)(this.applicationShell, this.chatService, sessionId);
|
|
1052
|
-
}
|
|
1053
|
-
/**
|
|
1054
|
-
* Focus the chat session by setting it as active with focus.
|
|
1055
|
-
*/
|
|
1056
|
-
focusChatSession(sessionId) {
|
|
1057
|
-
this.chatService.setActiveSession(sessionId, { focus: true });
|
|
1058
|
-
}
|
|
1059
1140
|
getResourceUri() {
|
|
1060
1141
|
return new core_1.URI(`ai-chat:/input.${chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION}`);
|
|
1061
1142
|
}
|
|
@@ -1069,7 +1150,7 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1069
1150
|
const isEditing = !!(currentRequest && (ai_chat_1.EditableChatRequestModel.isEditing(currentRequest)));
|
|
1070
1151
|
const isPending = () => !!(currentRequest && !isEditing && ai_chat_1.ChatRequestModel.isInProgress(currentRequest));
|
|
1071
1152
|
const pending = isPending();
|
|
1072
|
-
return (React.createElement(ChatInput, { branch: this._branch, onQuery: this._onQuery.bind(this), onUnpin: this._onUnpin.bind(this), onCancel: this._onCancel.bind(this), onDragOver: this.onDragOver.bind(this), onDrop: this.onDrop.bind(this), onPaste: this.onPaste.bind(this), onEscape: this.onEscape.bind(this), onDeleteChangeSet: this._onDeleteChangeSet.bind(this), onDeleteChangeSetElement: this._onDeleteChangeSetElement.bind(this), onAddContextElement: this.addContextElement.bind(this), onDeleteContextElement: this.deleteContextElement.bind(this), onOpenContextElement: this.openContextElement.bind(this), context: this.getContext(), fileValidationState: this.fileValidationState,
|
|
1153
|
+
return (React.createElement(ChatInput, { branch: this._branch, onQuery: this._onQuery.bind(this), onUnpin: this._onUnpin.bind(this), onCancel: this._onCancel.bind(this), onDragOver: this.onDragOver.bind(this), onDrop: this.onDrop.bind(this), onPaste: this.onPaste.bind(this), onEscape: this.onEscape.bind(this), onDeleteChangeSet: this._onDeleteChangeSet.bind(this), onDeleteChangeSetElement: this._onDeleteChangeSetElement.bind(this), onAddContextElement: this.addContextElement.bind(this), onDeleteContextElement: this.deleteContextElement.bind(this), onOpenContextElement: this.openContextElement.bind(this), context: this.getContext(), fileValidationState: this.fileValidationState, chatModel: this._chatModel, pinnedAgent: this._pinnedAgent, editorProvider: this.editorProvider, uri: this.getResourceUri(), contextMenuCallback: this.handleContextMenu.bind(this), isEnabled: this.isEnabled, setEditorRef: editor => {
|
|
1073
1154
|
this.editorRef = editor;
|
|
1074
1155
|
this.setupEditorEventListeners();
|
|
1075
1156
|
this.editorReady.resolve();
|
|
@@ -1087,7 +1168,7 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1087
1168
|
reasoningSupport: this.currentReasoningSupport,
|
|
1088
1169
|
currentLevel: this.getCurrentReasoningLevel(),
|
|
1089
1170
|
onReasoningChange: this.handleReasoningChange,
|
|
1090
|
-
}, capabilitiesProps: {
|
|
1171
|
+
}, modelSelectorProps: this.getModelSelectorProps(), capabilitiesProps: {
|
|
1091
1172
|
capabilities: this.capabilityDefaults,
|
|
1092
1173
|
overrides: this.userCapabilityOverrides,
|
|
1093
1174
|
onCapabilityChange: this.handleCapabilityChange,
|
|
@@ -1368,10 +1449,6 @@ tslib_1.__decorate([
|
|
|
1368
1449
|
(0, inversify_1.inject)(change_set_action_service_1.ChangeSetActionService),
|
|
1369
1450
|
tslib_1.__metadata("design:type", change_set_action_service_1.ChangeSetActionService)
|
|
1370
1451
|
], AIChatInputWidget.prototype, "changeSetActionService", void 0);
|
|
1371
|
-
tslib_1.__decorate([
|
|
1372
|
-
(0, inversify_1.inject)(browser_1.AgentNotificationService),
|
|
1373
|
-
tslib_1.__metadata("design:type", browser_1.AgentNotificationService)
|
|
1374
|
-
], AIChatInputWidget.prototype, "agentNotificationService", void 0);
|
|
1375
1452
|
tslib_1.__decorate([
|
|
1376
1453
|
(0, inversify_1.inject)(change_set_decorator_service_1.ChangeSetDecoratorService),
|
|
1377
1454
|
tslib_1.__metadata("design:type", change_set_decorator_service_1.ChangeSetDecoratorService)
|
|
@@ -1427,10 +1504,6 @@ tslib_1.__decorate([
|
|
|
1427
1504
|
(0, inversify_1.inject)(context_key_service_1.ContextKeyService),
|
|
1428
1505
|
tslib_1.__metadata("design:type", Object)
|
|
1429
1506
|
], AIChatInputWidget.prototype, "contextKeyService", void 0);
|
|
1430
|
-
tslib_1.__decorate([
|
|
1431
|
-
(0, inversify_1.inject)(application_shell_1.ApplicationShell),
|
|
1432
|
-
tslib_1.__metadata("design:type", application_shell_1.ApplicationShell)
|
|
1433
|
-
], AIChatInputWidget.prototype, "applicationShell", void 0);
|
|
1434
1507
|
tslib_1.__decorate([
|
|
1435
1508
|
(0, inversify_1.inject)(keybinding_1.KeybindingRegistry),
|
|
1436
1509
|
tslib_1.__metadata("design:type", keybinding_1.KeybindingRegistry)
|
|
@@ -1639,15 +1712,6 @@ const ChatInput = (props) => {
|
|
|
1639
1712
|
if (ai_chat_1.ChatChangeEvent.isChangeSetEvent(event)) {
|
|
1640
1713
|
setChangeSetUI(buildChangeSetUI(props.chatModel.changeSet, props.labelProvider, props.decoratorService, props.actionService.getActionsForChangeset(props.chatModel.changeSet), onDeleteChangeSet, onDeleteChangeSetElement));
|
|
1641
1714
|
}
|
|
1642
|
-
if (event.kind === 'addRequest') {
|
|
1643
|
-
// Listen for when this request's response becomes complete
|
|
1644
|
-
const responseListener = event.request.response.onDidChange(() => {
|
|
1645
|
-
if (event.request.response.isComplete) {
|
|
1646
|
-
props.onAgentCompletion(event.request);
|
|
1647
|
-
responseListener.dispose(); // Clean up the listener once notification is sent
|
|
1648
|
-
}
|
|
1649
|
-
});
|
|
1650
|
-
}
|
|
1651
1715
|
});
|
|
1652
1716
|
return () => {
|
|
1653
1717
|
listener.dispose();
|
|
@@ -1842,7 +1906,7 @@ const ChatInput = (props) => {
|
|
|
1842
1906
|
const tokenColorClass = showTokenUsage ? (0, chat_token_usage_indicator_util_1.getUsageColorClass)(totalTokens, props.tokenUsageWarningThreshold, props.contextWindowSize) : '';
|
|
1843
1907
|
const tokenIsWarningOrError = tokenColorClass === 'token-usage-yellow' || tokenColorClass === 'token-usage-red';
|
|
1844
1908
|
const tokenTooltip = showTokenUsage
|
|
1845
|
-
? (0, chat_token_usage_indicator_util_1.buildBarTooltip)((0, chat_token_usage_indicator_util_1.getLatestTokenUsage)(props.chatModel), totalTokens, props.tokenUsageWarningThreshold, props.contextWindowSize)
|
|
1909
|
+
? (0, chat_token_usage_indicator_util_1.buildBarTooltip)((0, chat_token_usage_indicator_util_1.getLatestTokenUsage)(props.chatModel), totalTokens, props.tokenUsageWarningThreshold, props.contextWindowSize, props.chatModel)
|
|
1846
1910
|
: undefined;
|
|
1847
1911
|
return (React.createElement("div", { className: "theia-ChatInput", "data-ai-disabled": !props.isEnabled, onDragOver: props.onDragOver, onDrop: props.onDrop, ref: containerRef },
|
|
1848
1912
|
props.showSuggestions !== false && React.createElement(chat_input_agent_suggestions_1.ChatInputAgentSuggestions, { suggestions: props.suggestions, opener: props.openerService }),
|
|
@@ -1869,7 +1933,7 @@ const ChatInput = (props) => {
|
|
|
1869
1933
|
reasoningSupport: props.reasoningSelectorProps.reasoningSupport,
|
|
1870
1934
|
currentLevel: props.reasoningSelectorProps.currentLevel,
|
|
1871
1935
|
onReasoningChange: props.reasoningSelectorProps.onReasoningChange,
|
|
1872
|
-
}, capabilitiesToggle: {
|
|
1936
|
+
}, modelSelectorProps: props.modelSelectorProps, capabilitiesToggle: {
|
|
1873
1937
|
show: props.showCapabilities !== false,
|
|
1874
1938
|
isOpen: props.capabilitiesProps.isOpen,
|
|
1875
1939
|
hasActiveSelections: props.capabilitiesProps.overrides.size > 0
|
|
@@ -1892,7 +1956,7 @@ function hoverHandler(hoverService, content, position = 'bottom') {
|
|
|
1892
1956
|
});
|
|
1893
1957
|
};
|
|
1894
1958
|
}
|
|
1895
|
-
const ChatInputOptions = ({ leftOptions, rightOptions, isEnabled, hoverService, tokenUsage, modeSelectorProps, reasoningSelectorProps, capabilitiesToggle }) => {
|
|
1959
|
+
const ChatInputOptions = ({ leftOptions, rightOptions, isEnabled, hoverService, tokenUsage, modeSelectorProps, reasoningSelectorProps, modelSelectorProps, capabilitiesToggle }) => {
|
|
1896
1960
|
const capabilitiesLabel = core_1.nls.localize('theia/ai/chat-ui/toggleCapabilitiesConfig', 'Toggle Capabilities Configuration');
|
|
1897
1961
|
const capabilitiesTitle = capabilitiesToggle.keybindingHint
|
|
1898
1962
|
? `${capabilitiesLabel} (${capabilitiesToggle.keybindingHint})`
|
|
@@ -1933,7 +1997,8 @@ const ChatInputOptions = ({ leftOptions, rightOptions, isEnabled, hoverService,
|
|
|
1933
1997
|
} },
|
|
1934
1998
|
React.createElement("span", { className: "codicon codicon-tools" }),
|
|
1935
1999
|
capabilitiesToggle.hasUnsavedChanges && (React.createElement("span", { className: "theia-capabilities-unsaved-indicator" })))),
|
|
1936
|
-
reasoningSelectorProps.show && reasoningSelectorProps.reasoningSupport && (React.createElement(ReasoningSelector, { reasoningSupport: reasoningSelectorProps.reasoningSupport, currentLevel: reasoningSelectorProps.currentLevel, onReasoningChange: reasoningSelectorProps.onReasoningChange, disabled: !isEnabled, hoverService: hoverService }))
|
|
2000
|
+
reasoningSelectorProps.show && reasoningSelectorProps.reasoningSupport && (React.createElement(ReasoningSelector, { reasoningSupport: reasoningSelectorProps.reasoningSupport, currentLevel: reasoningSelectorProps.currentLevel, onReasoningChange: reasoningSelectorProps.onReasoningChange, disabled: !isEnabled, hoverService: hoverService })),
|
|
2001
|
+
(modelSelectorProps.models.length > 0 || modelSelectorProps.currentModelId) && (React.createElement(ChatModelSelector, { models: modelSelectorProps.models, currentModelId: modelSelectorProps.currentModelId, defaultLabel: modelSelectorProps.defaultLabel, onModelChange: modelSelectorProps.onModelChange, disabled: !isEnabled, hoverService: hoverService })))));
|
|
1937
2002
|
};
|
|
1938
2003
|
/**
|
|
1939
2004
|
* Combined capabilities bar that shows:
|
|
@@ -1978,6 +2043,56 @@ const ChatModeSelector = React.memo(({ modes, currentMode, onModeChange, disable
|
|
|
1978
2043
|
return (React.createElement("span", { onMouseEnter: hoverHandler(hoverService, title) },
|
|
1979
2044
|
React.createElement(select_component_1.SelectComponent, { className: `theia-ChatInput-ModeSelector${disabled ? ' disabled' : ''}`, options: options, defaultValue: currentMode ?? modes[0]?.id ?? '', onChange: handleChange })));
|
|
1980
2045
|
});
|
|
2046
|
+
/**
|
|
2047
|
+
* Per-session model selector. The first option ("Default") reverts to the agent's configured
|
|
2048
|
+
* model that new sessions use; picking any other model overrides it for the current session only.
|
|
2049
|
+
*/
|
|
2050
|
+
const ChatModelSelector = React.memo(({ models, currentModelId, defaultLabel, onModelChange, disabled, hoverService }) => {
|
|
2051
|
+
// Sentinel value for the "use the agent default" option (SelectComponent needs a non-empty value).
|
|
2052
|
+
const defaultValueId = '__default__';
|
|
2053
|
+
const isOverridden = !!currentModelId;
|
|
2054
|
+
// The override points at a model that is no longer ready/available. Guard on a loaded model list so
|
|
2055
|
+
// the override is not flagged as unavailable during the initial (still empty) load.
|
|
2056
|
+
const isUnavailable = isOverridden && models.length > 0
|
|
2057
|
+
&& !models.some(model => model.id === currentModelId && model.status.status === 'ready');
|
|
2058
|
+
const options = React.useMemo(() => {
|
|
2059
|
+
const readyModels = models.filter(model => model.status.status === 'ready')
|
|
2060
|
+
// Stable, predictable order: the registry adds models as their async metadata resolves.
|
|
2061
|
+
.sort((left, right) => left.id.localeCompare(right.id));
|
|
2062
|
+
const opts = [
|
|
2063
|
+
{
|
|
2064
|
+
value: defaultValueId,
|
|
2065
|
+
label: core_1.nls.localizeByDefault('Default'),
|
|
2066
|
+
detail: defaultLabel
|
|
2067
|
+
},
|
|
2068
|
+
...readyModels.map(model => ({
|
|
2069
|
+
value: model.id,
|
|
2070
|
+
label: model.id,
|
|
2071
|
+
detail: model.name && model.name !== model.id ? model.name : undefined
|
|
2072
|
+
}))
|
|
2073
|
+
];
|
|
2074
|
+
// Keep the active override visible even if its model is no longer ready/available, so the
|
|
2075
|
+
// selector reflects the stored modelId instead of silently falling back to "Default". Once we
|
|
2076
|
+
// know it is unavailable, show it as a disabled (struck-through) entry that cannot be reselected.
|
|
2077
|
+
if (currentModelId && !opts.some(option => option.value === currentModelId)) {
|
|
2078
|
+
opts.push({
|
|
2079
|
+
value: currentModelId,
|
|
2080
|
+
label: currentModelId,
|
|
2081
|
+
detail: core_1.nls.localize('theia/ai/chat-ui/modelUnavailable', 'unavailable'),
|
|
2082
|
+
disabled: isUnavailable
|
|
2083
|
+
});
|
|
2084
|
+
}
|
|
2085
|
+
return opts;
|
|
2086
|
+
}, [models, defaultLabel, currentModelId, isUnavailable]);
|
|
2087
|
+
const handleChange = React.useCallback((option) => onModelChange(!option.value || option.value === defaultValueId ? undefined : option.value), [onModelChange]);
|
|
2088
|
+
const title = isUnavailable
|
|
2089
|
+
? core_1.nls.localize('theia/ai/chat-ui/sessionModelUnavailable', 'Model for this chat is unavailable ({0}); requests use the agent default', currentModelId)
|
|
2090
|
+
: isOverridden
|
|
2091
|
+
? core_1.nls.localize('theia/ai/chat-ui/sessionModel', 'Model for this chat')
|
|
2092
|
+
: core_1.nls.localize('theia/ai/chat-ui/sessionModelDefault', 'Model for this chat ({0})', defaultLabel);
|
|
2093
|
+
return (React.createElement("span", { className: 'theia-ChatInput-ModelSelector-container', onMouseEnter: hoverHandler(hoverService, title) },
|
|
2094
|
+
React.createElement(select_component_1.SelectComponent, { className: `theia-ChatInput-ModelSelector${isOverridden ? ' session-override' : ''}${disabled ? ' disabled' : ''}`, options: options, defaultValue: currentModelId ?? defaultValueId, onChange: handleChange })));
|
|
2095
|
+
});
|
|
1981
2096
|
const reasoningLevelLabel = (level) => {
|
|
1982
2097
|
switch (level) {
|
|
1983
2098
|
case 'off': return core_1.nls.localizeByDefault('Off');
|