@theia/ai-chat-ui 1.74.0-next.9 → 1.74.1

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