@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.
Files changed (131) hide show
  1. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-ui-contribution.js +54 -31
  3. package/lib/browser/ai-chat-ui-contribution.js.map +1 -1
  4. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
  5. package/lib/browser/ai-chat-ui-frontend-module.js +11 -3
  6. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  7. package/lib/browser/chat-banner-provider.d.ts +20 -0
  8. package/lib/browser/chat-banner-provider.d.ts.map +1 -0
  9. package/lib/browser/chat-banner-provider.js +28 -0
  10. package/lib/browser/chat-banner-provider.js.map +1 -0
  11. package/lib/browser/chat-banner-widget.d.ts +20 -0
  12. package/lib/browser/chat-banner-widget.d.ts.map +1 -0
  13. package/lib/browser/chat-banner-widget.js +81 -0
  14. package/lib/browser/chat-banner-widget.js.map +1 -0
  15. package/lib/browser/chat-input-widget.d.ts +34 -15
  16. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  17. package/lib/browser/chat-input-widget.js +166 -60
  18. package/lib/browser/chat-input-widget.js.map +1 -1
  19. package/lib/browser/chat-response-renderer/block-external-resources.d.ts +22 -0
  20. package/lib/browser/chat-response-renderer/block-external-resources.d.ts.map +1 -0
  21. package/lib/browser/chat-response-renderer/block-external-resources.js +331 -0
  22. package/lib/browser/chat-response-renderer/block-external-resources.js.map +1 -0
  23. package/lib/browser/chat-response-renderer/block-external-resources.spec.d.ts +2 -0
  24. package/lib/browser/chat-response-renderer/block-external-resources.spec.d.ts.map +1 -0
  25. package/lib/browser/chat-response-renderer/block-external-resources.spec.js +351 -0
  26. package/lib/browser/chat-response-renderer/block-external-resources.spec.js.map +1 -0
  27. package/lib/browser/chat-response-renderer/blocked-resource-placeholder.d.ts +7 -0
  28. package/lib/browser/chat-response-renderer/blocked-resource-placeholder.d.ts.map +1 -0
  29. package/lib/browser/chat-response-renderer/blocked-resource-placeholder.js +39 -0
  30. package/lib/browser/chat-response-renderer/blocked-resource-placeholder.js.map +1 -0
  31. package/lib/browser/chat-response-renderer/compaction-part-renderer.d.ts +8 -0
  32. package/lib/browser/chat-response-renderer/compaction-part-renderer.d.ts.map +1 -0
  33. package/lib/browser/chat-response-renderer/compaction-part-renderer.js +47 -0
  34. package/lib/browser/chat-response-renderer/compaction-part-renderer.js.map +1 -0
  35. package/lib/browser/chat-response-renderer/delegation-tool-renderer.js +1 -1
  36. package/lib/browser/chat-response-renderer/delegation-tool-renderer.js.map +1 -1
  37. package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.d.ts +11 -0
  38. package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.d.ts.map +1 -0
  39. package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.js +47 -0
  40. package/lib/browser/chat-response-renderer/external-resource-allowlist-contribution.js.map +1 -0
  41. package/lib/browser/chat-response-renderer/index.d.ts +1 -0
  42. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -1
  43. package/lib/browser/chat-response-renderer/index.js +1 -0
  44. package/lib/browser/chat-response-renderer/index.js.map +1 -1
  45. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +4 -1
  46. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -1
  47. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +41 -10
  48. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -1
  49. package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.d.ts +2 -0
  50. package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.d.ts.map +1 -0
  51. package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.js +167 -0
  52. package/lib/browser/chat-response-renderer/markdown-part-renderer.spec.js.map +1 -0
  53. package/lib/browser/chat-session-notification-contribution.d.ts +36 -0
  54. package/lib/browser/chat-session-notification-contribution.d.ts.map +1 -0
  55. package/lib/browser/chat-session-notification-contribution.js +128 -0
  56. package/lib/browser/chat-session-notification-contribution.js.map +1 -0
  57. package/lib/browser/chat-session-notification-contribution.spec.d.ts +2 -0
  58. package/lib/browser/chat-session-notification-contribution.spec.d.ts.map +1 -0
  59. package/lib/browser/chat-session-notification-contribution.spec.js +233 -0
  60. package/lib/browser/chat-session-notification-contribution.spec.js.map +1 -0
  61. package/lib/browser/chat-token-usage-indicator-util.d.ts +8 -1
  62. package/lib/browser/chat-token-usage-indicator-util.d.ts.map +1 -1
  63. package/lib/browser/chat-token-usage-indicator-util.js +50 -5
  64. package/lib/browser/chat-token-usage-indicator-util.js.map +1 -1
  65. package/lib/browser/chat-token-usage-indicator-util.spec.js +86 -2
  66. package/lib/browser/chat-token-usage-indicator-util.spec.js.map +1 -1
  67. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +12 -27
  68. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  69. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +39 -127
  70. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  71. package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.d.ts +2 -0
  72. package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.d.ts.map +1 -0
  73. package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.js +83 -0
  74. package/lib/browser/chat-tree-view/chat-view-tree-widget.spec.js.map +1 -0
  75. package/lib/browser/chat-tree-view/model-badge.d.ts +13 -0
  76. package/lib/browser/chat-tree-view/model-badge.d.ts.map +1 -0
  77. package/lib/browser/chat-tree-view/model-badge.js +41 -0
  78. package/lib/browser/chat-tree-view/model-badge.js.map +1 -0
  79. package/lib/browser/chat-view-commands.d.ts +1 -0
  80. package/lib/browser/chat-view-commands.d.ts.map +1 -1
  81. package/lib/browser/chat-view-commands.js +6 -1
  82. package/lib/browser/chat-view-commands.js.map +1 -1
  83. package/lib/browser/chat-view-preferences.d.ts +2 -0
  84. package/lib/browser/chat-view-preferences.d.ts.map +1 -1
  85. package/lib/browser/chat-view-preferences.js +13 -1
  86. package/lib/browser/chat-view-preferences.js.map +1 -1
  87. package/lib/browser/chat-view-widget.d.ts +3 -1
  88. package/lib/browser/chat-view-widget.d.ts.map +1 -1
  89. package/lib/browser/chat-view-widget.js +8 -2
  90. package/lib/browser/chat-view-widget.js.map +1 -1
  91. package/lib/browser/session-settings-dialog.d.ts +5 -0
  92. package/lib/browser/session-settings-dialog.d.ts.map +1 -1
  93. package/lib/browser/session-settings-dialog.js +61 -2
  94. package/lib/browser/session-settings-dialog.js.map +1 -1
  95. package/package.json +13 -13
  96. package/src/browser/ai-chat-ui-contribution.ts +64 -36
  97. package/src/browser/ai-chat-ui-frontend-module.ts +12 -3
  98. package/src/browser/chat-banner-provider.ts +36 -0
  99. package/src/browser/chat-banner-widget.tsx +69 -0
  100. package/src/browser/chat-input-widget.tsx +222 -62
  101. package/src/browser/chat-response-renderer/block-external-resources.spec.ts +449 -0
  102. package/src/browser/chat-response-renderer/block-external-resources.ts +370 -0
  103. package/src/browser/chat-response-renderer/blocked-resource-placeholder.tsx +44 -0
  104. package/src/browser/chat-response-renderer/compaction-part-renderer.tsx +52 -0
  105. package/src/browser/chat-response-renderer/delegation-tool-renderer.tsx +1 -1
  106. package/src/browser/chat-response-renderer/external-resource-allowlist-contribution.ts +42 -0
  107. package/src/browser/chat-response-renderer/index.ts +1 -0
  108. package/src/browser/chat-response-renderer/markdown-part-renderer.spec.tsx +203 -0
  109. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +47 -10
  110. package/src/browser/chat-session-notification-contribution.spec.ts +314 -0
  111. package/src/browser/chat-session-notification-contribution.ts +132 -0
  112. package/src/browser/chat-token-usage-indicator-util.spec.ts +100 -2
  113. package/src/browser/chat-token-usage-indicator-util.ts +52 -5
  114. package/src/browser/chat-tree-view/chat-view-tree-widget.spec.tsx +117 -0
  115. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +53 -153
  116. package/src/browser/chat-tree-view/model-badge.tsx +52 -0
  117. package/src/browser/chat-view-commands.ts +6 -0
  118. package/src/browser/chat-view-preferences.ts +16 -0
  119. package/src/browser/chat-view-widget.tsx +6 -1
  120. package/src/browser/session-settings-dialog.tsx +140 -1
  121. package/src/browser/style/index.css +195 -34
  122. package/lib/browser/chat-input-needed-notification-contribution.d.ts +0 -28
  123. package/lib/browser/chat-input-needed-notification-contribution.d.ts.map +0 -1
  124. package/lib/browser/chat-input-needed-notification-contribution.js +0 -104
  125. package/lib/browser/chat-input-needed-notification-contribution.js.map +0 -1
  126. package/lib/browser/chat-input-needed-notification-contribution.spec.d.ts +0 -2
  127. package/lib/browser/chat-input-needed-notification-contribution.spec.d.ts.map +0 -1
  128. package/lib/browser/chat-input-needed-notification-contribution.spec.js +0 -171
  129. package/lib/browser/chat-input-needed-notification-contribution.spec.js.map +0 -1
  130. package/src/browser/chat-input-needed-notification-contribution.spec.ts +0 -223
  131. 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 { AgentNotificationService, FrontendVariableService, AIActivationService } from '@theia/ai-core/lib/browser';
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");
@@ -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
- if (agentId) {
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 changes (model added/removed/alias re-resolved).
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, onAgentCompletion: this.handleAgentCompletion.bind(this), chatModel: this._chatModel, pinnedAgent: this._pinnedAgent, editorProvider: this.editorProvider, uri: this.getResourceUri(), contextMenuCallback: this.handleContextMenu.bind(this), isEnabled: this.isEnabled, setEditorRef: editor => {
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');