@theia/ai-chat-ui 1.74.0-next.8 → 1.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/ai-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 +166 -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 +222 -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":"AAeA,OAAO,EAC0B,SAAS,EAAmB,mBAAmB,EAC5E,SAAS,EAAE,gBAAgB,EAAE,WAAW,EACxC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAC3C,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EACH,2BAA2B,EAAE,2BAA2B,EAAE,gBAAgB,EAC1E,6BAA6B,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EACM,oBAAoB,EAC/G,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,mBAAmB,EAA4B,MAAM,4BAA4B,CAAC;AAC9I,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,EAAO,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9I,OAAO,EAAkB,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGhJ,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAS,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAA2B,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAGjH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAuB,MAAM,4DAA4D,CAAC;AACrJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAkBvE,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B,CAAC,EAAE,2BAA2B,EAChJ,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AACtE,KAAK,KAAK,GAAG,MAAM,IAAI,CAAC;AACxB,KAAK,MAAM,GAAG,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;AACvD,KAAK,eAAe,GAAG,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAChE,KAAK,sBAAsB,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAGtF,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAC3E,MAAM,WAAW,wBAAwB;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBACa,iBAAkB,SAAQ,WAAW;IAC9C,OAAc,EAAE,SAAuB;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,WAA+B;IAG3D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAGtE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAGxE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAG/E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAEtF,SAAS,CAAC,mBAAmB,oCAA2C;IAGxE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAGxE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAElD,SAAS,CAAC,iBAAiB,UAAS;IACpC,uHAAuH;IACvH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,cAAqB;IAExD,SAAS,CAAC,eAAe,EAAE,wBAAwB,CAAC;IAEpD,SAAS,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAa;IAChE,SAAS,CAAC,QAAQ,CAAC,WAAW,iBAAwB;IAEtD,IAAI,MAAM,IAAI,kBAAkB,GAAG,SAAS,CAE3C;IAED,IAAI,kBAAkB,IAAI,wBAAwB,GAAG,SAAS,CAE7D;IAED,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAO3D,aAAa,IAAI,MAAM,GAAG,SAAS;IAOnC,kBAAkB,IAAI,IAAI;IAK1B,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASlE,SAAS,CAAC,6BAA6B,IAAI,MAAM,GAAG,SAAS;IAI7D,SAAS,CAAC,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAIrD,SAAS,IAAI,IAAI;IAUjB,SAAS,CAAC,gBAAgB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAK9D;IAEF,+GAA+G;IAC/G,SAAS,CAAC,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IACrD,0HAA0H;IAC1H,SAAS,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAC1C,sJAAsJ;IACtJ,SAAS,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACzC,wIAAwI;IACxI,SAAS,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAC7C,qHAAqH;IACrH,SAAS,CAAC,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtD,yFAAyF;IACzF,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAEtC,SAAS,CAAC,qBAAqB,GAAU,OAAO,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CA6B5E;IAEF;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,cAAc,GAAG,SAAS;IAehE,SAAS,CAAC,+BAA+B,IAAI,cAAc,GAAG,SAAS;cASvD,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDlF,SAAS,CAAC,sBAAsB,GAAI,YAAY,MAAM,EAAE,SAAS,OAAO,KAAG,IAAI,CAc7E;IAEF,SAAS,CAAC,6BAA6B,GAAI,MAAM,MAAM,2BAA2B,EAAE,KAAK,MAAM,EAAE,KAAG,IAAI,CAMtG;IAEF,SAAS,CAAC,8BAA8B,QAAO,IAAI,CAIjD;IAEF,SAAS,CAAC,sBAAsB,GAAI,KAAK,MAAM,EAAE,KAAG,IAAI,CAStD;cAEc,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCxH,+FAA+F;IAC/F,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI;cAmBjE,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnE;;;OAGG;IACH,SAAS,CAAC,mCAAmC,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAazF;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAS1E;;;OAGG;IACH,SAAS,CAAC,2CAA2C,CAAC,SAAS,EAAE,SAAS,GAAG,2BAA2B;IASxG;;;OAGG;IACH,SAAS,CAAC,oCAAoC,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAS9F;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB,GAAG,SAAS;IAejE,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIxD;;;OAGG;cACa,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpD;;OAEG;IACH,SAAS,CAAC,6BAA6B,IAAI,OAAO;IAYlD;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO;IAiBjE,wEAAwE;IACxE,SAAS,CAAC,2BAA2B,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO;IAIpF;;OAEG;IACH,SAAS,CAAC,oCAAoC,IAAI,OAAO;IAiBzD;;OAEG;IACH,SAAS,CAAC,6BAA6B,IAAI,OAAO;IAYlD;;;OAGG;IACI,sBAAsB,IAAI,OAAO;IASxC;;;OAGG;IACU,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC7D,SAAS,CAAC,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS,CAAC,qBAAqB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACrD,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,SAAS,CAAC,0BAA0B,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzD,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,SAAS,CAAC,gBAAgB,UAAS;IAEnC,SAAS,CAAC,SAAS,UAAS;IAC5B,SAAS,CAAC,aAAa,SAAM;IAE7B,SAAS,CAAC,2BAA2B,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,wBAAwB,UAAS;IAC3C,SAAS,CAAC,cAAc,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,SAAS,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,CAAM;IACtD;;OAEG;IACH,SAAS,CAAC,2BAA2B,EAAE,2BAA2B,CAAM;IACxE;;OAEG;IACH,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAC9D;;OAEG;IACH,SAAS,CAAC,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IAC1E;;OAEG;IACH,SAAS,CAAC,4BAA4B,EAAE,4BAA4B,CAOlE;IACF;;OAEG;IACH,SAAS,CAAC,2BAA2B,EAAE,2BAA2B,CAAM;IACxE;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IACpE;;;OAGG;IACH,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACxE;;;OAGG;IACH,SAAS,CAAC,gCAAgC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAEpF,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,EAKjD;IAED,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1B,0FAA0F;IAC1F,SAAS,CAAC,aAAa,UAAS;IAChC,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAcvB;IACD,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1B,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAEvB;IACD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAE1B;IACD,SAAS,CAAC,kBAAkB,EAAE,eAAe,CAAC;IAC9C,IAAI,iBAAiB,CAAC,eAAe,EAAE,eAAe,EAErD;IACD,SAAS,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;IAC5D,IAAI,wBAAwB,CAAC,sBAAsB,EAAE,sBAAsB,EAE1E;IAED,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACjC,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEzC;IAED,SAAS,CAAC,qBAAqB,uBAA8B;IAC7D,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,uBAAuB,0BAAiC;IAClE,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,EAyDjC;IACD,SAAS,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9C,IAAI,WAAW,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS,EAIjD;IAED,SAAS,CAAC,kBAAkB,gBAAuB;IACnD,QAAQ,CAAC,WAAW,oCAAiC;IAGrD,SAAS,CAAC,IAAI,IAAI,IAAI;IAgFtB,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAQvC,wBAAwB,IAAI,IAAI;IAoChC,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,2EAA2E;IAC3E,SAAS,CAAC,6BAA6B,IAAI,MAAM;IAKjD,SAAS,CAAC,uCAAuC,IAAI,MAAM;IAW3D,SAAS,CAAC,0BAA0B,IAAI,OAAO;IAI/C;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;cAyB/C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BtD,SAAS,CAAC,4BAA4B,IAAI,IAAI;cAgB9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CrD;;;;OAIG;IACH,SAAS,CAAC,6BAA6B,CACnC,aAAa,EAAE,iBAAiB,EAChC,OAAO,CAAC,EAAE,WAAW,GACtB,SAAS,GAAG,SAAS;IAOxB;;OAEG;cACa,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC7E;;;OAGG;IACH,SAAS,CAAC,2BAA2B,IAAI,IAAI;IAoB7C,SAAS,CAAC,yBAAyB,IAAI,IAAI;cAyCxB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;cASxC,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/E;;;OAGG;IACH,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI1D;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAInD,SAAS,CAAC,cAAc,IAAI,GAAG;IAI/B,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;IAuGnC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAWlD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAyC9C,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAa9C;;;;;;OAMG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAW5C,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiCvG,SAAS,CAAC,sBAAsB,CAAC,aAAa,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO;IAY7E,SAAS,CAAC,QAAQ,IAAI,IAAI;cAOV,kBAAkB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAchF,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKzC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAQnC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAUrD,UAAU,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAKvD;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,MAAM;IAK/B;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,MAAM;IAqBnE;;OAEG;IACH,4BAA4B,IAAI,IAAI;IAWpC;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,GAAG,MAAM;IAUvE;;;OAGG;IACH,yBAAyB,IAAI,2BAA2B,EAAE;IAI1D,SAAS,CAAC,UAAU,IAAI,SAAS,2BAA2B,EAAE;IAI9D;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGtD"}
|
|
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");
|
|
@@ -54,7 +53,6 @@ const preferences_1 = require("@theia/core/lib/common/preferences");
|
|
|
54
53
|
const chat_view_preferences_1 = require("./chat-view-preferences");
|
|
55
54
|
const chat_token_usage_indicator_util_1 = require("./chat-token-usage-indicator-util");
|
|
56
55
|
const chat_view_commands_1 = require("./chat-view-commands");
|
|
57
|
-
const chat_session_focus_1 = require("./chat-session-focus");
|
|
58
56
|
exports.AIChatInputConfiguration = Symbol('AIChatInputConfiguration');
|
|
59
57
|
let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
60
58
|
constructor() {
|
|
@@ -71,6 +69,10 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
71
69
|
await this.updateCapabilitiesForAgent(this.receivingAgent.agentId, mode);
|
|
72
70
|
}
|
|
73
71
|
};
|
|
72
|
+
/** Monotonic token for the latest async {@link updateReasoningSupport} run; older, out-of-order runs discard their results when this changes. */
|
|
73
|
+
this.reasoningStateGeneration = 0;
|
|
74
|
+
/** Monotonic token for the latest async {@link updateResolvedDefaultModel} run; older, out-of-order runs discard their results when this changes. */
|
|
75
|
+
this.resolvedDefaultGeneration = 0;
|
|
74
76
|
this.handleReasoningChange = async (level) => {
|
|
75
77
|
const session = this.chatService.getSessions().find(s => s.model.id === this._chatModel?.id);
|
|
76
78
|
if (!session) {
|
|
@@ -136,6 +138,31 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
136
138
|
};
|
|
137
139
|
this.update();
|
|
138
140
|
};
|
|
141
|
+
/** Language models available for the per-session model selector; refreshed on registry changes. */
|
|
142
|
+
this.availableModels = [];
|
|
143
|
+
/** Sets (or clears, with `undefined`) the per-session model override for the active session. */
|
|
144
|
+
this.handleSessionModelChange = (modelId) => {
|
|
145
|
+
const session = this.chatService.getSessions().find(s => s.model.id === this._chatModel?.id);
|
|
146
|
+
if (!session) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const currentSettings = session.model.settings ?? {};
|
|
150
|
+
const currentCommon = currentSettings.commonSettings ?? {};
|
|
151
|
+
if ((currentCommon.modelId ?? undefined) === (modelId ?? undefined)) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const newCommon = { ...currentCommon };
|
|
155
|
+
if (modelId) {
|
|
156
|
+
newCommon.modelId = modelId;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
delete newCommon.modelId;
|
|
160
|
+
}
|
|
161
|
+
session.model.setSettings({ ...currentSettings, commonSettings: newCommon });
|
|
162
|
+
// The override changes the effective model, so refresh all model-dependent state.
|
|
163
|
+
this.updateReasoningSupport(this.receivingAgent?.agentId);
|
|
164
|
+
this.update();
|
|
165
|
+
};
|
|
139
166
|
this.capabilitiesOpen = false;
|
|
140
167
|
this.isEnabled = false;
|
|
141
168
|
this.heightInLines = 12;
|
|
@@ -263,12 +290,26 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
263
290
|
return (0, frontend_language_model_service_1.mergeReasoningSettings)(entries, modelId, providerId, this.receivingAgent?.agentId)?.reasoning?.level;
|
|
264
291
|
}
|
|
265
292
|
async updateReasoningSupport(agentId) {
|
|
293
|
+
// Guard against out-of-order completion: if the model/session changes while the async lookups
|
|
294
|
+
// below are in flight, a stale run must not overwrite the fields with outdated values.
|
|
295
|
+
const generation = ++this.reasoningStateGeneration;
|
|
266
296
|
let support;
|
|
267
297
|
let modelId;
|
|
268
298
|
let maxInputTokens;
|
|
269
299
|
let serverTools;
|
|
270
300
|
let vendor;
|
|
271
|
-
|
|
301
|
+
// A per-session model override drives all model-dependent state (reasoning support, context
|
|
302
|
+
// size, server tools, vendor) instead of the agent's configured default.
|
|
303
|
+
const overrideId = this.getSessionModelOverride();
|
|
304
|
+
const overrideModel = overrideId ? await this.languageModelRegistry.getReadyLanguageModel(overrideId) : undefined;
|
|
305
|
+
if (overrideModel) {
|
|
306
|
+
support = overrideModel.reasoningSupport;
|
|
307
|
+
modelId = overrideModel.id;
|
|
308
|
+
maxInputTokens = overrideModel.maxInputTokens;
|
|
309
|
+
serverTools = overrideModel.serverTools;
|
|
310
|
+
vendor = overrideModel.vendor;
|
|
311
|
+
}
|
|
312
|
+
else if (agentId) {
|
|
272
313
|
const agent = this.chatAgentService.getAgent(agentId);
|
|
273
314
|
if (agent) {
|
|
274
315
|
for (const requirement of agent.languageModelRequirements ?? []) {
|
|
@@ -299,6 +340,10 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
299
340
|
}
|
|
300
341
|
}
|
|
301
342
|
}
|
|
343
|
+
if (generation !== this.reasoningStateGeneration) {
|
|
344
|
+
// A newer refresh started while we awaited; its results win.
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
302
347
|
if (support !== this.currentReasoningSupport
|
|
303
348
|
|| modelId !== this.currentLanguageModelId
|
|
304
349
|
|| maxInputTokens !== this.currentMaxInputTokens
|
|
@@ -311,6 +356,7 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
311
356
|
this.currentModelVendor = vendor;
|
|
312
357
|
this.update();
|
|
313
358
|
}
|
|
359
|
+
this.updateResolvedDefaultModel();
|
|
314
360
|
}
|
|
315
361
|
async updateCapabilitiesForAgent(agentId, modeId, preserveOverrides) {
|
|
316
362
|
const capabilities = await this.capabilitiesService.getCapabilitiesForAgent(agentId, modeId);
|
|
@@ -361,6 +407,55 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
361
407
|
}
|
|
362
408
|
session.model.setSettings({ ...currentSettings, commonSettings: newCommon });
|
|
363
409
|
}
|
|
410
|
+
async loadAvailableModels() {
|
|
411
|
+
this.availableModels = await this.languageModelRegistry.getLanguageModels();
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Resolves the model a new session would use for this agent, honoring the per-agent override
|
|
415
|
+
* configured in the AI configuration (via {@link AISettingsService}) and following aliases, so
|
|
416
|
+
* the selector's "Default" reflects the effective, resolved target.
|
|
417
|
+
*/
|
|
418
|
+
async updateResolvedDefaultModel() {
|
|
419
|
+
// Guard against out-of-order completion, mirroring updateReasoningSupport.
|
|
420
|
+
const generation = ++this.resolvedDefaultGeneration;
|
|
421
|
+
const agent = this.receivingAgent ? this.chatAgentService.getAgent(this.receivingAgent.agentId) : undefined;
|
|
422
|
+
const requirement = agent?.languageModelRequirements?.[0];
|
|
423
|
+
let label;
|
|
424
|
+
if (agent && requirement) {
|
|
425
|
+
const agentSettings = await this.aiSettingsService.getAgentSettings(agent.id);
|
|
426
|
+
const effective = agentSettings?.languageModelRequirements?.find(r => r.purpose === requirement.purpose)?.identifier
|
|
427
|
+
?? requirement.identifier;
|
|
428
|
+
const resolved = await this.languageModelRegistry.selectLanguageModel({ agent: agent.id, ...requirement });
|
|
429
|
+
const resolvedId = resolved?.id;
|
|
430
|
+
// Show "alias → resolved" when the effective default is an alias that resolves to a concrete model.
|
|
431
|
+
label = resolvedId && effective && resolvedId !== effective ? `${effective} → ${resolvedId}` : (resolvedId ?? effective);
|
|
432
|
+
}
|
|
433
|
+
if (generation !== this.resolvedDefaultGeneration) {
|
|
434
|
+
// A newer refresh started while we awaited; its results win.
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
if (label !== this.resolvedDefaultLabel) {
|
|
438
|
+
this.resolvedDefaultLabel = label;
|
|
439
|
+
this.update();
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/** The per-session model override id for the active session, if any. */
|
|
443
|
+
getSessionModelOverride() {
|
|
444
|
+
const session = this.chatService.getSessions().find(s => s.model.id === this._chatModel?.id);
|
|
445
|
+
return session?.model.settings?.commonSettings?.modelId;
|
|
446
|
+
}
|
|
447
|
+
/** Builds the props for the per-session model selector. */
|
|
448
|
+
getModelSelectorProps() {
|
|
449
|
+
const currentModelId = this.getSessionModelOverride();
|
|
450
|
+
const defaultLabel = this.resolvedDefaultLabel
|
|
451
|
+
?? core_1.nls.localize('theia/ai/chat-ui/agentDefaultModel', 'agent default');
|
|
452
|
+
return {
|
|
453
|
+
models: this.availableModels,
|
|
454
|
+
currentModelId,
|
|
455
|
+
defaultLabel,
|
|
456
|
+
onModelChange: this.handleSessionModelChange,
|
|
457
|
+
};
|
|
458
|
+
}
|
|
364
459
|
async updateAvailableGenericCapabilities() {
|
|
365
460
|
if (!this.genericCapabilitiesService) {
|
|
366
461
|
return;
|
|
@@ -722,12 +817,22 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
722
817
|
this.toDispose.push(this.capabilitiesService.onDidChangeCapabilities(() => {
|
|
723
818
|
this.refreshCapabilities();
|
|
724
819
|
}));
|
|
725
|
-
// Refresh reasoning capability if the language model registry
|
|
820
|
+
// Refresh reasoning capability and the model selector list if the language model registry
|
|
821
|
+
// changes (model added/removed/alias re-resolved).
|
|
726
822
|
this.toDispose.push(this.languageModelRegistry.onChange(() => {
|
|
823
|
+
this.loadAvailableModels().then(() => this.update());
|
|
727
824
|
if (this.receivingAgent) {
|
|
728
825
|
this.updateReasoningSupport(this.receivingAgent.agentId);
|
|
729
826
|
}
|
|
730
827
|
}));
|
|
828
|
+
// When the agent's model is changed in the AI configuration, refresh the selector's resolved
|
|
829
|
+
// default and the model-dependent state (reasoning support, context size, server tools, vendor).
|
|
830
|
+
this.toDispose.push(this.aiSettingsService.onDidChange(() => {
|
|
831
|
+
this.updateResolvedDefaultModel();
|
|
832
|
+
this.updateReasoningSupport(this.receivingAgent?.agentId);
|
|
833
|
+
}));
|
|
834
|
+
this.loadAvailableModels().then(() => this.update());
|
|
835
|
+
this.updateResolvedDefaultModel();
|
|
731
836
|
// When the default mode changes externally (e.g. via AI Configuration),
|
|
732
837
|
// sync the mode selector. Deferred via queueMicrotask so the prompt service's
|
|
733
838
|
// internal state is fully updated before we read agent.modes.
|
|
@@ -1023,39 +1128,6 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1023
1128
|
}
|
|
1024
1129
|
});
|
|
1025
1130
|
}
|
|
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
1131
|
getResourceUri() {
|
|
1060
1132
|
return new core_1.URI(`ai-chat:/input.${chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION}`);
|
|
1061
1133
|
}
|
|
@@ -1069,7 +1141,7 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1069
1141
|
const isEditing = !!(currentRequest && (ai_chat_1.EditableChatRequestModel.isEditing(currentRequest)));
|
|
1070
1142
|
const isPending = () => !!(currentRequest && !isEditing && ai_chat_1.ChatRequestModel.isInProgress(currentRequest));
|
|
1071
1143
|
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,
|
|
1144
|
+
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
1145
|
this.editorRef = editor;
|
|
1074
1146
|
this.setupEditorEventListeners();
|
|
1075
1147
|
this.editorReady.resolve();
|
|
@@ -1087,7 +1159,7 @@ let AIChatInputWidget = class AIChatInputWidget extends browser_2.ReactWidget {
|
|
|
1087
1159
|
reasoningSupport: this.currentReasoningSupport,
|
|
1088
1160
|
currentLevel: this.getCurrentReasoningLevel(),
|
|
1089
1161
|
onReasoningChange: this.handleReasoningChange,
|
|
1090
|
-
}, capabilitiesProps: {
|
|
1162
|
+
}, modelSelectorProps: this.getModelSelectorProps(), capabilitiesProps: {
|
|
1091
1163
|
capabilities: this.capabilityDefaults,
|
|
1092
1164
|
overrides: this.userCapabilityOverrides,
|
|
1093
1165
|
onCapabilityChange: this.handleCapabilityChange,
|
|
@@ -1368,10 +1440,6 @@ tslib_1.__decorate([
|
|
|
1368
1440
|
(0, inversify_1.inject)(change_set_action_service_1.ChangeSetActionService),
|
|
1369
1441
|
tslib_1.__metadata("design:type", change_set_action_service_1.ChangeSetActionService)
|
|
1370
1442
|
], 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
1443
|
tslib_1.__decorate([
|
|
1376
1444
|
(0, inversify_1.inject)(change_set_decorator_service_1.ChangeSetDecoratorService),
|
|
1377
1445
|
tslib_1.__metadata("design:type", change_set_decorator_service_1.ChangeSetDecoratorService)
|
|
@@ -1427,10 +1495,6 @@ tslib_1.__decorate([
|
|
|
1427
1495
|
(0, inversify_1.inject)(context_key_service_1.ContextKeyService),
|
|
1428
1496
|
tslib_1.__metadata("design:type", Object)
|
|
1429
1497
|
], 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
1498
|
tslib_1.__decorate([
|
|
1435
1499
|
(0, inversify_1.inject)(keybinding_1.KeybindingRegistry),
|
|
1436
1500
|
tslib_1.__metadata("design:type", keybinding_1.KeybindingRegistry)
|
|
@@ -1639,15 +1703,6 @@ const ChatInput = (props) => {
|
|
|
1639
1703
|
if (ai_chat_1.ChatChangeEvent.isChangeSetEvent(event)) {
|
|
1640
1704
|
setChangeSetUI(buildChangeSetUI(props.chatModel.changeSet, props.labelProvider, props.decoratorService, props.actionService.getActionsForChangeset(props.chatModel.changeSet), onDeleteChangeSet, onDeleteChangeSetElement));
|
|
1641
1705
|
}
|
|
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
1706
|
});
|
|
1652
1707
|
return () => {
|
|
1653
1708
|
listener.dispose();
|
|
@@ -1842,7 +1897,7 @@ const ChatInput = (props) => {
|
|
|
1842
1897
|
const tokenColorClass = showTokenUsage ? (0, chat_token_usage_indicator_util_1.getUsageColorClass)(totalTokens, props.tokenUsageWarningThreshold, props.contextWindowSize) : '';
|
|
1843
1898
|
const tokenIsWarningOrError = tokenColorClass === 'token-usage-yellow' || tokenColorClass === 'token-usage-red';
|
|
1844
1899
|
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)
|
|
1900
|
+
? (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
1901
|
: undefined;
|
|
1847
1902
|
return (React.createElement("div", { className: "theia-ChatInput", "data-ai-disabled": !props.isEnabled, onDragOver: props.onDragOver, onDrop: props.onDrop, ref: containerRef },
|
|
1848
1903
|
props.showSuggestions !== false && React.createElement(chat_input_agent_suggestions_1.ChatInputAgentSuggestions, { suggestions: props.suggestions, opener: props.openerService }),
|
|
@@ -1869,7 +1924,7 @@ const ChatInput = (props) => {
|
|
|
1869
1924
|
reasoningSupport: props.reasoningSelectorProps.reasoningSupport,
|
|
1870
1925
|
currentLevel: props.reasoningSelectorProps.currentLevel,
|
|
1871
1926
|
onReasoningChange: props.reasoningSelectorProps.onReasoningChange,
|
|
1872
|
-
}, capabilitiesToggle: {
|
|
1927
|
+
}, modelSelectorProps: props.modelSelectorProps, capabilitiesToggle: {
|
|
1873
1928
|
show: props.showCapabilities !== false,
|
|
1874
1929
|
isOpen: props.capabilitiesProps.isOpen,
|
|
1875
1930
|
hasActiveSelections: props.capabilitiesProps.overrides.size > 0
|
|
@@ -1892,7 +1947,7 @@ function hoverHandler(hoverService, content, position = 'bottom') {
|
|
|
1892
1947
|
});
|
|
1893
1948
|
};
|
|
1894
1949
|
}
|
|
1895
|
-
const ChatInputOptions = ({ leftOptions, rightOptions, isEnabled, hoverService, tokenUsage, modeSelectorProps, reasoningSelectorProps, capabilitiesToggle }) => {
|
|
1950
|
+
const ChatInputOptions = ({ leftOptions, rightOptions, isEnabled, hoverService, tokenUsage, modeSelectorProps, reasoningSelectorProps, modelSelectorProps, capabilitiesToggle }) => {
|
|
1896
1951
|
const capabilitiesLabel = core_1.nls.localize('theia/ai/chat-ui/toggleCapabilitiesConfig', 'Toggle Capabilities Configuration');
|
|
1897
1952
|
const capabilitiesTitle = capabilitiesToggle.keybindingHint
|
|
1898
1953
|
? `${capabilitiesLabel} (${capabilitiesToggle.keybindingHint})`
|
|
@@ -1933,7 +1988,8 @@ const ChatInputOptions = ({ leftOptions, rightOptions, isEnabled, hoverService,
|
|
|
1933
1988
|
} },
|
|
1934
1989
|
React.createElement("span", { className: "codicon codicon-tools" }),
|
|
1935
1990
|
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 }))
|
|
1991
|
+
reasoningSelectorProps.show && reasoningSelectorProps.reasoningSupport && (React.createElement(ReasoningSelector, { reasoningSupport: reasoningSelectorProps.reasoningSupport, currentLevel: reasoningSelectorProps.currentLevel, onReasoningChange: reasoningSelectorProps.onReasoningChange, disabled: !isEnabled, hoverService: hoverService })),
|
|
1992
|
+
(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
1993
|
};
|
|
1938
1994
|
/**
|
|
1939
1995
|
* Combined capabilities bar that shows:
|
|
@@ -1978,6 +2034,56 @@ const ChatModeSelector = React.memo(({ modes, currentMode, onModeChange, disable
|
|
|
1978
2034
|
return (React.createElement("span", { onMouseEnter: hoverHandler(hoverService, title) },
|
|
1979
2035
|
React.createElement(select_component_1.SelectComponent, { className: `theia-ChatInput-ModeSelector${disabled ? ' disabled' : ''}`, options: options, defaultValue: currentMode ?? modes[0]?.id ?? '', onChange: handleChange })));
|
|
1980
2036
|
});
|
|
2037
|
+
/**
|
|
2038
|
+
* Per-session model selector. The first option ("Default") reverts to the agent's configured
|
|
2039
|
+
* model that new sessions use; picking any other model overrides it for the current session only.
|
|
2040
|
+
*/
|
|
2041
|
+
const ChatModelSelector = React.memo(({ models, currentModelId, defaultLabel, onModelChange, disabled, hoverService }) => {
|
|
2042
|
+
// Sentinel value for the "use the agent default" option (SelectComponent needs a non-empty value).
|
|
2043
|
+
const defaultValueId = '__default__';
|
|
2044
|
+
const isOverridden = !!currentModelId;
|
|
2045
|
+
// The override points at a model that is no longer ready/available. Guard on a loaded model list so
|
|
2046
|
+
// the override is not flagged as unavailable during the initial (still empty) load.
|
|
2047
|
+
const isUnavailable = isOverridden && models.length > 0
|
|
2048
|
+
&& !models.some(model => model.id === currentModelId && model.status.status === 'ready');
|
|
2049
|
+
const options = React.useMemo(() => {
|
|
2050
|
+
const readyModels = models.filter(model => model.status.status === 'ready')
|
|
2051
|
+
// Stable, predictable order: the registry adds models as their async metadata resolves.
|
|
2052
|
+
.sort((left, right) => left.id.localeCompare(right.id));
|
|
2053
|
+
const opts = [
|
|
2054
|
+
{
|
|
2055
|
+
value: defaultValueId,
|
|
2056
|
+
label: core_1.nls.localizeByDefault('Default'),
|
|
2057
|
+
detail: defaultLabel
|
|
2058
|
+
},
|
|
2059
|
+
...readyModels.map(model => ({
|
|
2060
|
+
value: model.id,
|
|
2061
|
+
label: model.id,
|
|
2062
|
+
detail: model.name && model.name !== model.id ? model.name : undefined
|
|
2063
|
+
}))
|
|
2064
|
+
];
|
|
2065
|
+
// Keep the active override visible even if its model is no longer ready/available, so the
|
|
2066
|
+
// selector reflects the stored modelId instead of silently falling back to "Default". Once we
|
|
2067
|
+
// know it is unavailable, show it as a disabled (struck-through) entry that cannot be reselected.
|
|
2068
|
+
if (currentModelId && !opts.some(option => option.value === currentModelId)) {
|
|
2069
|
+
opts.push({
|
|
2070
|
+
value: currentModelId,
|
|
2071
|
+
label: currentModelId,
|
|
2072
|
+
detail: core_1.nls.localize('theia/ai/chat-ui/modelUnavailable', 'unavailable'),
|
|
2073
|
+
disabled: isUnavailable
|
|
2074
|
+
});
|
|
2075
|
+
}
|
|
2076
|
+
return opts;
|
|
2077
|
+
}, [models, defaultLabel, currentModelId, isUnavailable]);
|
|
2078
|
+
const handleChange = React.useCallback((option) => onModelChange(!option.value || option.value === defaultValueId ? undefined : option.value), [onModelChange]);
|
|
2079
|
+
const title = isUnavailable
|
|
2080
|
+
? core_1.nls.localize('theia/ai/chat-ui/sessionModelUnavailable', 'Model for this chat is unavailable ({0}); requests use the agent default', currentModelId)
|
|
2081
|
+
: isOverridden
|
|
2082
|
+
? core_1.nls.localize('theia/ai/chat-ui/sessionModel', 'Model for this chat')
|
|
2083
|
+
: core_1.nls.localize('theia/ai/chat-ui/sessionModelDefault', 'Model for this chat ({0})', defaultLabel);
|
|
2084
|
+
return (React.createElement("span", { className: 'theia-ChatInput-ModelSelector-container', onMouseEnter: hoverHandler(hoverService, title) },
|
|
2085
|
+
React.createElement(select_component_1.SelectComponent, { className: `theia-ChatInput-ModelSelector${isOverridden ? ' session-override' : ''}${disabled ? ' disabled' : ''}`, options: options, defaultValue: currentModelId ?? defaultValueId, onChange: handleChange })));
|
|
2086
|
+
});
|
|
1981
2087
|
const reasoningLevelLabel = (level) => {
|
|
1982
2088
|
switch (level) {
|
|
1983
2089
|
case 'off': return core_1.nls.localizeByDefault('Off');
|