@theia/ai-chat-ui 1.58.2 → 1.59.0-next.62

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 (51) hide show
  1. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-ui-contribution.js +7 -7
  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 +7 -4
  6. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  7. package/lib/browser/chat-input-widget.d.ts +21 -4
  8. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  9. package/lib/browser/chat-input-widget.js +177 -37
  10. package/lib/browser/chat-input-widget.js.map +1 -1
  11. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
  12. package/lib/browser/chat-response-renderer/code-part-renderer.js +4 -3
  13. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
  14. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -1
  15. package/lib/browser/chat-response-renderer/text-part-renderer.js +3 -1
  16. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -1
  17. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -1
  18. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +7 -3
  19. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -1
  20. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  21. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +25 -16
  22. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  23. package/lib/browser/chat-view-contribution.d.ts +2 -2
  24. package/lib/browser/chat-view-contribution.d.ts.map +1 -1
  25. package/lib/browser/chat-view-contribution.js +6 -6
  26. package/lib/browser/chat-view-contribution.js.map +1 -1
  27. package/lib/browser/chat-view-language-contribution.d.ts +10 -5
  28. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
  29. package/lib/browser/chat-view-language-contribution.js +94 -14
  30. package/lib/browser/chat-view-language-contribution.js.map +1 -1
  31. package/lib/browser/chat-view-widget.d.ts +4 -1
  32. package/lib/browser/chat-view-widget.d.ts.map +1 -1
  33. package/lib/browser/chat-view-widget.js +18 -7
  34. package/lib/browser/chat-view-widget.js.map +1 -1
  35. package/lib/browser/context-variable-picker.d.ts +9 -0
  36. package/lib/browser/context-variable-picker.d.ts.map +1 -0
  37. package/lib/browser/context-variable-picker.js +86 -0
  38. package/lib/browser/context-variable-picker.js.map +1 -0
  39. package/package.json +11 -11
  40. package/src/browser/ai-chat-ui-contribution.ts +8 -8
  41. package/src/browser/ai-chat-ui-frontend-module.ts +8 -4
  42. package/src/browser/chat-input-widget.tsx +255 -49
  43. package/src/browser/chat-response-renderer/code-part-renderer.tsx +4 -3
  44. package/src/browser/chat-response-renderer/text-part-renderer.tsx +4 -1
  45. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +9 -3
  46. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +26 -16
  47. package/src/browser/chat-view-contribution.ts +6 -6
  48. package/src/browser/chat-view-language-contribution.ts +103 -19
  49. package/src/browser/chat-view-widget.tsx +22 -8
  50. package/src/browser/context-variable-picker.ts +85 -0
  51. package/src/browser/style/index.css +95 -9
@@ -17,29 +17,41 @@ const tslib_1 = require("tslib");
17
17
  //
18
18
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
19
19
  // *****************************************************************************
20
- const inversify_1 = require("@theia/core/shared/inversify");
21
- const monaco = require("@theia/monaco-editor-core");
22
- const core_1 = require("@theia/core");
23
20
  const ai_chat_1 = require("@theia/ai-chat");
24
21
  const common_1 = require("@theia/ai-core/lib/common");
22
+ const prompt_text_1 = require("@theia/ai-core/lib/common/prompt-text");
25
23
  const tool_invocation_registry_1 = require("@theia/ai-core/lib/common/tool-invocation-registry");
24
+ const core_1 = require("@theia/core");
25
+ const browser_1 = require("@theia/core/lib/browser");
26
+ const inversify_1 = require("@theia/core/shared/inversify");
27
+ const monaco = require("@theia/monaco-editor-core");
28
+ const chat_view_widget_1 = require("./chat-view-widget");
26
29
  exports.CHAT_VIEW_LANGUAGE_ID = 'theia-ai-chat-view-language';
27
30
  exports.CHAT_VIEW_LANGUAGE_EXTENSION = 'aichatviewlanguage';
31
+ const VARIABLE_RESOLUTION_CONTEXT = { context: 'chat-input-autocomplete' };
32
+ const VARIABLE_ARGUMENT_PICKER_COMMAND = 'trigger-variable-argument-picker';
33
+ const VARIABLE_ADD_CONTEXT_COMMAND = 'add-context-variable';
28
34
  let ChatViewLanguageContribution = class ChatViewLanguageContribution {
29
35
  onStart(_app) {
30
36
  monaco.languages.register({ id: exports.CHAT_VIEW_LANGUAGE_ID, extensions: [exports.CHAT_VIEW_LANGUAGE_EXTENSION] });
31
37
  monaco.languages.registerCompletionItemProvider(exports.CHAT_VIEW_LANGUAGE_ID, {
32
- triggerCharacters: ['@'],
38
+ triggerCharacters: [prompt_text_1.PromptText.AGENT_CHAR],
33
39
  provideCompletionItems: (model, position, _context, _token) => this.provideAgentCompletions(model, position),
34
40
  });
35
41
  monaco.languages.registerCompletionItemProvider(exports.CHAT_VIEW_LANGUAGE_ID, {
36
- triggerCharacters: ['#'],
42
+ triggerCharacters: [prompt_text_1.PromptText.VARIABLE_CHAR],
37
43
  provideCompletionItems: (model, position, _context, _token) => this.provideVariableCompletions(model, position),
38
44
  });
39
45
  monaco.languages.registerCompletionItemProvider(exports.CHAT_VIEW_LANGUAGE_ID, {
40
- triggerCharacters: ['~'],
46
+ triggerCharacters: [prompt_text_1.PromptText.VARIABLE_CHAR, prompt_text_1.PromptText.VARIABLE_SEPARATOR_CHAR],
47
+ provideCompletionItems: (model, position, _context, _token) => this.provideVariableWithArgCompletions(model, position),
48
+ });
49
+ monaco.languages.registerCompletionItemProvider(exports.CHAT_VIEW_LANGUAGE_ID, {
50
+ triggerCharacters: [prompt_text_1.PromptText.FUNCTION_CHAR],
41
51
  provideCompletionItems: (model, position, _context, _token) => this.provideToolCompletions(model, position),
42
52
  });
53
+ monaco.editor.registerCommand(VARIABLE_ARGUMENT_PICKER_COMMAND, this.triggerVariableArgumentPicker.bind(this));
54
+ monaco.editor.registerCommand(VARIABLE_ADD_CONTEXT_COMMAND, (_, ...args) => args.length > 1 ? this.addContextVariable(args[0], args[1]) : undefined);
43
55
  }
44
56
  getCompletionRange(model, position, triggerCharacter) {
45
57
  // Check if the character before the current position is the trigger character
@@ -49,11 +61,11 @@ let ChatViewLanguageContribution = class ChatViewLanguageContribution {
49
61
  // Do not return agent suggestions if the user didn't just type the trigger character
50
62
  return undefined;
51
63
  }
52
- // Calculate the range from the position of the '@' character
64
+ // Calculate the range from the position of the trigger character
53
65
  const wordInfo = model.getWordUntilPosition(position);
54
66
  return new monaco.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, position.column);
55
67
  }
56
- getSuggestions(model, position, triggerChar, items, kind, getId, getName, getDescription) {
68
+ getSuggestions(model, position, triggerChar, items, kind, getId, getName, getDescription, command) {
57
69
  const completionRange = this.getCompletionRange(model, position, triggerChar);
58
70
  if (completionRange === undefined) {
59
71
  return { suggestions: [] };
@@ -64,17 +76,82 @@ let ChatViewLanguageContribution = class ChatViewLanguageContribution {
64
76
  label: getName(item),
65
77
  range: completionRange,
66
78
  detail: getDescription(item),
79
+ command
67
80
  }));
68
81
  return { suggestions };
69
82
  }
70
83
  provideAgentCompletions(model, position) {
71
- return this.getSuggestions(model, position, '@', this.agentService.getAgents(), monaco.languages.CompletionItemKind.Value, agent => agent.id, agent => agent.name, agent => agent.description);
84
+ return this.getSuggestions(model, position, prompt_text_1.PromptText.AGENT_CHAR, this.agentService.getAgents(), monaco.languages.CompletionItemKind.Value, agent => agent.id, agent => agent.name, agent => agent.description);
72
85
  }
73
86
  provideVariableCompletions(model, position) {
74
- return this.getSuggestions(model, position, '#', this.variableService.getVariables(), monaco.languages.CompletionItemKind.Variable, variable => variable.name, variable => variable.name, variable => variable.description);
87
+ return this.getSuggestions(model, position, prompt_text_1.PromptText.VARIABLE_CHAR, this.variableService.getVariables(), monaco.languages.CompletionItemKind.Variable, variable => variable.name, variable => variable.name, variable => variable.description, {
88
+ title: core_1.nls.localize('theia/ai/chat-ui/selectVariableArguments', 'Select variable arguments'),
89
+ id: VARIABLE_ARGUMENT_PICKER_COMMAND,
90
+ });
91
+ }
92
+ async provideVariableWithArgCompletions(model, position) {
93
+ const variables = this.variableService.getVariables();
94
+ const suggestions = [];
95
+ for (const variable of variables) {
96
+ const provider = await this.variableService.getArgumentCompletionProvider(variable.name);
97
+ if (provider) {
98
+ const items = await provider(model, position);
99
+ if (items) {
100
+ suggestions.push(...items.map(item => ({
101
+ ...item,
102
+ // trigger command to check if we should add a context variable
103
+ command: {
104
+ title: core_1.nls.localize('theia/ai/chat-ui/addContextVariable', 'Add context variable'),
105
+ id: VARIABLE_ADD_CONTEXT_COMMAND,
106
+ arguments: [variable.name, item.insertText]
107
+ }
108
+ })));
109
+ }
110
+ }
111
+ }
112
+ return { suggestions };
75
113
  }
76
114
  provideToolCompletions(model, position) {
77
- return this.getSuggestions(model, position, '~', this.providers.getContributions().map(provider => provider.getTool()), monaco.languages.CompletionItemKind.Function, tool => tool.id, tool => tool.name, tool => { var _a; return (_a = tool.description) !== null && _a !== void 0 ? _a : ''; });
115
+ return this.getSuggestions(model, position, prompt_text_1.PromptText.FUNCTION_CHAR, this.toolInvocationRegistry.getAllFunctions(), monaco.languages.CompletionItemKind.Function, tool => tool.id, tool => tool.name, tool => { var _a; return (_a = tool.description) !== null && _a !== void 0 ? _a : ''; });
116
+ }
117
+ async triggerVariableArgumentPicker() {
118
+ var _a;
119
+ const inputEditor = monaco.editor.getEditors().find(editor => editor.hasTextFocus());
120
+ if (!inputEditor) {
121
+ return;
122
+ }
123
+ const model = inputEditor.getModel();
124
+ const position = inputEditor.getPosition();
125
+ if (!model || !position) {
126
+ return;
127
+ }
128
+ const variableName = (_a = model.getWordAtPosition(position)) === null || _a === void 0 ? void 0 : _a.word;
129
+ if (!variableName) {
130
+ return;
131
+ }
132
+ const provider = await this.variableService.getArgumentPicker(variableName, VARIABLE_RESOLUTION_CONTEXT);
133
+ if (!provider) {
134
+ return;
135
+ }
136
+ const arg = await provider(VARIABLE_RESOLUTION_CONTEXT);
137
+ if (!arg) {
138
+ return;
139
+ }
140
+ inputEditor.executeEdits('variable-argument-picker', [{
141
+ range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column),
142
+ text: prompt_text_1.PromptText.VARIABLE_SEPARATOR_CHAR + arg
143
+ }]);
144
+ await this.addContextVariable(variableName, arg);
145
+ }
146
+ async addContextVariable(variableName, arg) {
147
+ const variable = this.variableService.getVariable(variableName);
148
+ if (!variable || !common_1.AIContextVariable.is(variable)) {
149
+ return;
150
+ }
151
+ const widget = this.shell.getWidgetById(chat_view_widget_1.ChatViewWidget.ID);
152
+ if (widget instanceof chat_view_widget_1.ChatViewWidget) {
153
+ widget.addContext({ variable, arg });
154
+ }
78
155
  }
79
156
  };
80
157
  exports.ChatViewLanguageContribution = ChatViewLanguageContribution;
@@ -87,10 +164,13 @@ tslib_1.__decorate([
87
164
  tslib_1.__metadata("design:type", Object)
88
165
  ], ChatViewLanguageContribution.prototype, "variableService", void 0);
89
166
  tslib_1.__decorate([
90
- (0, inversify_1.inject)(core_1.ContributionProvider),
91
- (0, inversify_1.named)(tool_invocation_registry_1.ToolProvider),
167
+ (0, inversify_1.inject)(tool_invocation_registry_1.ToolInvocationRegistry),
92
168
  tslib_1.__metadata("design:type", Object)
93
- ], ChatViewLanguageContribution.prototype, "providers", void 0);
169
+ ], ChatViewLanguageContribution.prototype, "toolInvocationRegistry", void 0);
170
+ tslib_1.__decorate([
171
+ (0, inversify_1.inject)(browser_1.ApplicationShell),
172
+ tslib_1.__metadata("design:type", browser_1.ApplicationShell)
173
+ ], ChatViewLanguageContribution.prototype, "shell", void 0);
94
174
  exports.ChatViewLanguageContribution = ChatViewLanguageContribution = tslib_1.__decorate([
95
175
  (0, inversify_1.injectable)()
96
176
  ], ChatViewLanguageContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-view-language-contribution.js","sourceRoot":"","sources":["../../src/browser/chat-view-language-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-view-language-contribution.js","sourceRoot":"","sources":["../../src/browser/chat-view-language-contribution.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { BaseWidget, ExtractableWidget, Message, PreferenceService, StatefulWidg
4
4
  import { AIChatInputWidget } from './chat-input-widget';
5
5
  import { ChatViewTreeWidget } from './chat-tree-view/chat-view-tree-widget';
6
6
  import { AIActivationService } from '@theia/ai-core/lib/browser/ai-activation-service';
7
+ import { AIVariableResolutionRequest } from '@theia/ai-core';
7
8
  export declare namespace ChatViewWidget {
8
9
  interface State {
9
10
  locked?: boolean;
@@ -32,7 +33,8 @@ export declare class ChatViewWidget extends BaseWidget implements ExtractableWid
32
33
  protected get state(): ChatViewWidget.State;
33
34
  protected set state(state: ChatViewWidget.State);
34
35
  get onStateChanged(): Event<ChatViewWidget.State>;
35
- protected onQuery(query: string): Promise<void>;
36
+ protected onQuery(query: string, contextVariableRequests?: AIVariableResolutionRequest[]): Promise<void>;
37
+ protected onUnpin(): void;
36
38
  protected onCancel(requestModel: ChatRequestModel): void;
37
39
  protected onDeleteChangeSet(sessionId: string): void;
38
40
  protected onDeleteChangeSetElement(sessionId: string, index: number): void;
@@ -40,5 +42,6 @@ export declare class ChatViewWidget extends BaseWidget implements ExtractableWid
40
42
  unlock(): void;
41
43
  get isLocked(): boolean;
42
44
  get isExtractable(): boolean;
45
+ addContext(variable: AIVariableResolutionRequest): void;
43
46
  }
44
47
  //# sourceMappingURL=chat-view-widget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-view-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAa,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAe,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAW,iBAAiB,EAAE,OAAO,EAAe,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG1I,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,yBAAiB,cAAc,CAAC;IAC5B,UAAiB,KAAK;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB;CACJ;AAED,qBACa,cAAe,SAAQ,UAAW,YAAW,iBAAiB,EAAE,cAAc;IA6BnF,QAAQ,CAAC,UAAU,EAAE,kBAAkB;IAEvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB;IA7B3C,OAAc,EAAE,SAAsB;IACtC,MAAM,CAAC,KAAK,SAAuD;IAGnE,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAGnC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAGzC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAE1D,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAEnC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAqB;IAC3D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,gCAAuC;IAE/E,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;gBAIvB,UAAU,EAAE,kBAAkB,EAE9B,WAAW,EAAE,iBAAiB;IAa3C,SAAS,CAAC,IAAI,IAAI,IAAI;IAoCtB,SAAS,CAAC,aAAa,IAAI,IAAI;cAkBZ,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKxD,UAAU,IAAI,MAAM;IAIpB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI;IAQpE,SAAS,KAAK,KAAK,IAAI,cAAc,CAAC,KAAK,CAE1C;IAED,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAG9C;IAED,IAAI,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAEhD;cAEe,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBrD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAIxD,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpD,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1E,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;IAId,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;CACJ"}
1
+ {"version":3,"file":"chat-view-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAa,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAe,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAW,iBAAiB,EAAE,OAAO,EAAe,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG1I,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,yBAAiB,cAAc,CAAC;IAC5B,UAAiB,KAAK;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB;CACJ;AAED,qBACa,cAAe,SAAQ,UAAW,YAAW,iBAAiB,EAAE,cAAc;IA6BnF,QAAQ,CAAC,UAAU,EAAE,kBAAkB;IAEvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB;IA7B3C,OAAc,EAAE,SAAsB;IACtC,MAAM,CAAC,KAAK,SAAsC;IAGlD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAGnC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAGzC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAE1D,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAEnC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAqB;IAC3D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,gCAAuC;IAE/E,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;gBAIvB,UAAU,EAAE,kBAAkB,EAE9B,WAAW,EAAE,iBAAiB;IAa3C,SAAS,CAAC,IAAI,IAAI,IAAI;IAsCtB,SAAS,CAAC,aAAa,IAAI,IAAI;cAmBZ,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKxD,UAAU,IAAI,MAAM;IAIpB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI;IAQpE,SAAS,KAAK,KAAK,IAAI,cAAc,CAAC,KAAK,CAE1C;IAED,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAG9C;IAED,IAAI,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAEhD;cAEe,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,2BAA2B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9G,SAAS,CAAC,OAAO,IAAI,IAAI;IAKzB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAIxD,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpD,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1E,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;IAId,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,UAAU,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;CAG1D"}
@@ -57,8 +57,10 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
57
57
  layout.addWidget(this.inputWidget);
58
58
  this.chatSession = this.chatService.createSession();
59
59
  this.inputWidget.onQuery = this.onQuery.bind(this);
60
+ this.inputWidget.onUnpin = this.onUnpin.bind(this);
60
61
  this.inputWidget.onCancel = this.onCancel.bind(this);
61
62
  this.inputWidget.chatModel = this.chatSession.model;
63
+ this.inputWidget.pinnedAgent = this.chatSession.pinnedAgent;
62
64
  this.inputWidget.onDeleteChangeSet = this.onDeleteChangeSet.bind(this);
63
65
  this.inputWidget.onDeleteChangeSetElement = this.onDeleteChangeSetElement.bind(this);
64
66
  this.treeWidget.trackChatModel(this.chatSession.model);
@@ -78,6 +80,7 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
78
80
  this.chatSession = session;
79
81
  this.treeWidget.trackChatModel(this.chatSession.model);
80
82
  this.inputWidget.chatModel = this.chatSession.model;
83
+ this.inputWidget.pinnedAgent = this.chatSession.pinnedAgent;
81
84
  if (event.focus) {
82
85
  this.show();
83
86
  }
@@ -111,19 +114,20 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
111
114
  get onStateChanged() {
112
115
  return this.onStateChangedEmitter.event;
113
116
  }
114
- async onQuery(query) {
117
+ async onQuery(query, contextVariableRequests) {
115
118
  if (query.length === 0) {
116
119
  return;
117
120
  }
118
- const chatRequest = {
119
- text: query
120
- };
121
- const requestProgress = await this.chatService.sendRequest(this.chatSession.id, chatRequest);
121
+ const chatRequest = { text: query };
122
+ const context = { variableRequests: contextVariableRequests !== null && contextVariableRequests !== void 0 ? contextVariableRequests : [] };
123
+ const requestProgress = await this.chatService.sendRequest(this.chatSession.id, chatRequest, context);
122
124
  requestProgress === null || requestProgress === void 0 ? void 0 : requestProgress.responseCompleted.then(responseModel => {
123
125
  var _a, _b;
124
126
  if (responseModel.isError) {
125
- this.messageService.error((_b = (_a = responseModel.errorObject) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : 'An error occurred during chat service invocation.');
127
+ this.messageService.error((_b = (_a = responseModel.errorObject) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : nls_1.nls.localize('theia/ai/chat-ui/errorChatInvocation', 'An error occurred during chat service invocation.'));
126
128
  }
129
+ }).finally(() => {
130
+ this.inputWidget.pinnedAgent = this.chatSession.pinnedAgent;
127
131
  });
128
132
  if (!requestProgress) {
129
133
  this.messageService.error(`Was not able to send request "${chatRequest.text}" to session ${this.chatSession.id}`);
@@ -131,6 +135,10 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
131
135
  }
132
136
  // Tree Widget currently tracks the ChatModel itself. Therefore no notification necessary.
133
137
  }
138
+ onUnpin() {
139
+ this.chatSession.pinnedAgent = undefined;
140
+ this.inputWidget.pinnedAgent = this.chatSession.pinnedAgent;
141
+ }
134
142
  onCancel(requestModel) {
135
143
  this.chatService.cancelRequest(requestModel.session.id, requestModel.id);
136
144
  }
@@ -152,10 +160,13 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
152
160
  get isExtractable() {
153
161
  return this.secondaryWindow === undefined;
154
162
  }
163
+ addContext(variable) {
164
+ this.inputWidget.addContext(variable);
165
+ }
155
166
  };
156
167
  exports.ChatViewWidget = ChatViewWidget;
157
168
  ChatViewWidget.ID = 'chat-view-widget';
158
- ChatViewWidget.LABEL = `✨ ${nls_1.nls.localizeByDefault('Chat')} [Experimental]`;
169
+ ChatViewWidget.LABEL = `${nls_1.nls.localizeByDefault('Chat')}`;
159
170
  tslib_1.__decorate([
160
171
  (0, inversify_1.inject)(ai_chat_1.ChatService),
161
172
  tslib_1.__metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"chat-view-widget.js","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":";;;;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,sCAAwF;AACxF,4CAAyF;AACzF,qDAA0I;AAC1I,oDAAiD;AACjD,4DAAiF;AACjF,2DAAwD;AACxD,kFAA4E;AAC5E,4FAAuF;AAShF,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,oBAAU;IA2B1C,YAEI,UAAuC,EAEvC,WAAuC;QAEvC,KAAK,EAAE,CAAC;QAJC,eAAU,GAAV,UAAU,CAAoB;QAE9B,gBAAW,GAAX,WAAW,CAAmB;QATjC,WAAM,GAAyB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACxC,0BAAqB,GAAG,IAAI,cAAO,EAAwB,CAAC;QAW3E,IAAI,CAAC,EAAE,GAAG,gBAAc,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAc,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,gBAAc,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAA,iBAAO,EAAC,oBAAoB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAGS,IAAI;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACnB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,CAAC;SACL,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAW,EAAE,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QAEpD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;YACpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,aAAa;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CACf,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAClH,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACpD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,SAAS,aAAa,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAEkB,iBAAiB,CAAC,GAAY;QAC7C,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,QAAgD;QACzD,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAc,KAAK;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAc,KAAK,CAAC,KAA2B;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC5C,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,KAAa;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAEnC,MAAM,WAAW,GAAgB;YAC7B,IAAI,EAAE,KAAK;SACd,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;;YACpD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAA,MAAA,aAAa,CAAC,WAAW,0CAAE,OAAO,mCAAI,mDAAmD,CAAC,CAAC;YACzH,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iCAAiC,WAAW,CAAC,IAAI,gBAAgB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;YAClH,OAAO;QACX,CAAC;QACD,0FAA0F;IAC9F,CAAC;IAES,QAAQ,CAAC,YAA8B;QAC7C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAES,iBAAiB,CAAC,SAAiB;QACzC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAES,wBAAwB,CAAC,SAAiB,EAAE,KAAa;QAC/D,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI;QACA,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM;QACF,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC;IAC9C,CAAC;;AA9KQ,wCAAc;AAET,iBAAE,GAAG,kBAAkB,AAArB,CAAsB;AAC/B,oBAAK,GAAG,KAAK,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,AAAtD,CAAuD;AAGzD;IADT,IAAA,kBAAM,EAAC,qBAAW,CAAC;;mDACe;AAGzB;IADT,IAAA,kBAAM,EAAC,qBAAc,CAAC;sCACG,qBAAc;sDAAC;AAGtB;IADlB,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;yDAC8B;AAGrC;IADlB,IAAA,kBAAM,EAAC,qBAAc,CAAC;;sDAC2B;AAG/B;IADlB,IAAA,kBAAM,EAAC,2CAAmB,CAAC;sCACU,2CAAmB;yDAAC;AA0BhD;IADT,IAAA,yBAAa,GAAE;;;;0CAmCf;yBA9EQ,cAAc;IAD1B,IAAA,sBAAU,GAAE;IA6BJ,mBAAA,IAAA,kBAAM,EAAC,0CAAkB,CAAC,CAAA;IAE1B,mBAAA,IAAA,kBAAM,EAAC,qCAAiB,CAAC,CAAA;6CADL,0CAAkB;QAEjB,qCAAiB;GA/BlC,cAAc,CA+K1B"}
1
+ {"version":3,"file":"chat-view-widget.js","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { AIContextVariable, AIVariableResolutionRequest, AIVariableService } from '@theia/ai-core';
2
+ import { QuickInputService } from '@theia/core';
3
+ export declare class ContextVariablePicker {
4
+ protected readonly variableService: AIVariableService;
5
+ protected readonly quickInputService: QuickInputService;
6
+ pickContextVariable(): Promise<AIVariableResolutionRequest | undefined>;
7
+ protected useGenericArgumentPicker(variable: AIContextVariable): Promise<AIVariableResolutionRequest | undefined>;
8
+ }
9
+ //# sourceMappingURL=context-variable-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-variable-picker.d.ts","sourceRoot":"","sources":["../../src/browser/context-variable-picker.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD,qBACa,qBAAqB;IAG9B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAElD,mBAAmB,IAAI,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;cAgC7D,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;CAqB1H"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ContextVariablePicker = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const ai_core_1 = require("@theia/ai-core");
21
+ const core_1 = require("@theia/core");
22
+ const inversify_1 = require("@theia/core/shared/inversify");
23
+ const QUERY_CONTEXT = { type: 'context-variable-picker' };
24
+ let ContextVariablePicker = class ContextVariablePicker {
25
+ async pickContextVariable() {
26
+ const variables = this.variableService.getContextVariables();
27
+ const selection = await this.quickInputService.showQuickPick(variables.map(v => {
28
+ var _a;
29
+ return ({
30
+ id: v.id,
31
+ label: (_a = v.label) !== null && _a !== void 0 ? _a : v.name,
32
+ variable: v,
33
+ iconClasses: v.iconClasses,
34
+ });
35
+ }), { placeholder: 'Select a context variable to be attached to the message', });
36
+ if (!selection) {
37
+ return undefined;
38
+ }
39
+ const variable = selection.variable;
40
+ if (!variable.args || variable.args.length === 0) {
41
+ return { variable };
42
+ }
43
+ const argumentPicker = await this.variableService.getArgumentPicker(variable.name, QUERY_CONTEXT);
44
+ if (!argumentPicker) {
45
+ return this.useGenericArgumentPicker(variable);
46
+ }
47
+ const arg = await argumentPicker(QUERY_CONTEXT);
48
+ if (!arg) {
49
+ return undefined;
50
+ }
51
+ return { variable, arg };
52
+ }
53
+ async useGenericArgumentPicker(variable) {
54
+ var _a;
55
+ const args = [];
56
+ for (const argument of (_a = variable.args) !== null && _a !== void 0 ? _a : []) {
57
+ const placeHolder = argument.description;
58
+ let input;
59
+ if (argument.enum) {
60
+ const picked = await this.quickInputService.pick(argument.enum.map(enumItem => ({ label: enumItem })), { placeHolder, canPickMany: false });
61
+ input = picked === null || picked === void 0 ? void 0 : picked.label;
62
+ }
63
+ else {
64
+ input = await this.quickInputService.input({ placeHolder });
65
+ }
66
+ if (!input && !argument.isOptional) {
67
+ return;
68
+ }
69
+ args.push(input !== null && input !== void 0 ? input : '');
70
+ }
71
+ return { variable, arg: args.join(ai_core_1.PromptText.VARIABLE_SEPARATOR_CHAR) };
72
+ }
73
+ };
74
+ exports.ContextVariablePicker = ContextVariablePicker;
75
+ tslib_1.__decorate([
76
+ (0, inversify_1.inject)(ai_core_1.AIVariableService),
77
+ tslib_1.__metadata("design:type", Object)
78
+ ], ContextVariablePicker.prototype, "variableService", void 0);
79
+ tslib_1.__decorate([
80
+ (0, inversify_1.inject)(core_1.QuickInputService),
81
+ tslib_1.__metadata("design:type", Object)
82
+ ], ContextVariablePicker.prototype, "quickInputService", void 0);
83
+ exports.ContextVariablePicker = ContextVariablePicker = tslib_1.__decorate([
84
+ (0, inversify_1.injectable)()
85
+ ], ContextVariablePicker);
86
+ //# sourceMappingURL=context-variable-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-variable-picker.js","sourceRoot":"","sources":["../../src/browser/context-variable-picker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@theia/ai-chat-ui",
3
- "version": "1.58.2",
3
+ "version": "1.59.0-next.62+9e43c93ad",
4
4
  "description": "Theia - AI Chat UI Extension",
5
5
  "dependencies": {
6
- "@theia/ai-chat": "1.58.2",
7
- "@theia/ai-core": "1.58.2",
8
- "@theia/core": "1.58.2",
9
- "@theia/editor": "1.58.2",
10
- "@theia/editor-preview": "1.58.2",
11
- "@theia/filesystem": "1.58.2",
12
- "@theia/monaco": "1.58.2",
6
+ "@theia/ai-chat": "1.59.0-next.62+9e43c93ad",
7
+ "@theia/ai-core": "1.59.0-next.62+9e43c93ad",
8
+ "@theia/core": "1.59.0-next.62+9e43c93ad",
9
+ "@theia/editor": "1.59.0-next.62+9e43c93ad",
10
+ "@theia/editor-preview": "1.59.0-next.62+9e43c93ad",
11
+ "@theia/filesystem": "1.59.0-next.62+9e43c93ad",
12
+ "@theia/monaco": "1.59.0-next.62+9e43c93ad",
13
13
  "@theia/monaco-editor-core": "1.96.302",
14
- "@theia/workspace": "1.58.2",
14
+ "@theia/workspace": "1.59.0-next.62+9e43c93ad",
15
15
  "minimatch": "^5.1.0",
16
16
  "tslib": "^2.6.2",
17
17
  "uuid": "^9.0.1"
@@ -50,10 +50,10 @@
50
50
  "watch": "theiaext watch"
51
51
  },
52
52
  "devDependencies": {
53
- "@theia/ext-scripts": "1.58.2"
53
+ "@theia/ext-scripts": "1.58.0"
54
54
  },
55
55
  "nyc": {
56
56
  "extends": "../../configs/nyc.json"
57
57
  },
58
- "gitHead": "4af367c0a63547aff14a27c98d929ee77a22aafe"
58
+ "gitHead": "9e43c93ad61ea977db3974207bac5d7c1fd3ccd6"
59
59
  }
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { inject, injectable } from '@theia/core/shared/inversify';
18
- import { CommandRegistry, QuickInputButton, QuickInputService, QuickPickItem } from '@theia/core';
18
+ import { CommandRegistry, isOSX, nls, QuickInputButton, QuickInputService, QuickPickItem } from '@theia/core';
19
19
  import { Widget } from '@theia/core/lib/browser';
20
20
  import { AI_CHAT_NEW_CHAT_WINDOW_COMMAND, AI_CHAT_SHOW_CHATS_COMMAND, ChatCommands } from './chat-view-commands';
21
21
  import { ChatAgentLocation, ChatService } from '@theia/ai-chat';
@@ -37,7 +37,7 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
37
37
 
38
38
  protected static readonly REMOVE_CHAT_BUTTON: QuickInputButton = {
39
39
  iconClass: 'codicon-remove-close',
40
- tooltip: 'Remove Chat',
40
+ tooltip: nls.localize('theia/ai/chat-ui/removeChat', 'Remove Chat'),
41
41
  };
42
42
 
43
43
  @inject(SecondaryWindowHandler)
@@ -48,11 +48,11 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
48
48
  widgetId: ChatViewWidget.ID,
49
49
  widgetName: ChatViewWidget.LABEL,
50
50
  defaultWidgetOptions: {
51
- area: 'left',
51
+ area: 'right',
52
52
  rank: 100
53
53
  },
54
54
  toggleCommandId: AI_CHAT_TOGGLE_COMMAND_ID,
55
- toggleKeybinding: 'ctrlcmd+alt+i'
55
+ toggleKeybinding: isOSX ? 'ctrl+cmd+i' : 'ctrl+alt+i'
56
56
  });
57
57
  }
58
58
 
@@ -90,13 +90,13 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
90
90
  registry.registerItem({
91
91
  id: AI_CHAT_NEW_CHAT_WINDOW_COMMAND.id,
92
92
  command: AI_CHAT_NEW_CHAT_WINDOW_COMMAND.id,
93
- tooltip: 'New Chat',
93
+ tooltip: nls.localizeByDefault('New Chat'),
94
94
  isVisible: widget => this.isChatViewWidget(widget)
95
95
  });
96
96
  registry.registerItem({
97
97
  id: AI_CHAT_SHOW_CHATS_COMMAND.id,
98
98
  command: AI_CHAT_SHOW_CHATS_COMMAND.id,
99
- tooltip: 'Show Chats...',
99
+ tooltip: nls.localizeByDefault('Show Chats...'),
100
100
  isVisible: widget => this.isChatViewWidget(widget),
101
101
  });
102
102
  }
@@ -122,14 +122,14 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
122
122
  protected askForChatSession(): Promise<QuickPickItem | undefined> {
123
123
  const getItems = () =>
124
124
  this.chatService.getSessions().filter(session => !session.isActive).map(session => <QuickPickItem>({
125
- label: session.title ?? 'New Chat',
125
+ label: session.title ?? nls.localizeByDefault('New Chat'),
126
126
  id: session.id,
127
127
  buttons: [AIChatContribution.REMOVE_CHAT_BUTTON]
128
128
  })).reverse();
129
129
 
130
130
  const defer = new Deferred<QuickPickItem | undefined>();
131
131
  const quickPick = this.quickInputService.createQuickPick();
132
- quickPick.placeholder = 'Select chat';
132
+ quickPick.placeholder = nls.localize('theia/ai/chat-ui/selectChat', 'Select chat');
133
133
  quickPick.canSelectMany = false;
134
134
  quickPick.items = getItems();
135
135
 
@@ -18,7 +18,9 @@ import { bindContributionProvider, CommandContribution, MenuContribution } from
18
18
  import { bindViewContribution, FrontendApplicationContribution, WidgetFactory } from '@theia/core/lib/browser';
19
19
  import { TabBarToolbarContribution } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
20
20
  import { ContainerModule, interfaces } from '@theia/core/shared/inversify';
21
+ import { EditorPreviewManager } from '@theia/editor-preview/lib/browser/editor-preview-manager';
21
22
  import { EditorManager } from '@theia/editor/lib/browser';
23
+ import '../../src/browser/style/index.css';
22
24
  import { AIChatContribution } from './ai-chat-ui-contribution';
23
25
  import { AIChatInputConfiguration, AIChatInputWidget } from './chat-input-widget';
24
26
  import { ChatNodeToolbarActionContribution } from './chat-node-toolbar-action-contribution';
@@ -41,15 +43,14 @@ import {
41
43
  TextFragmentSelectionResolver,
42
44
  TypeDocSymbolSelectionResolver,
43
45
  } from './chat-response-renderer/ai-editor-manager';
46
+ import { QuestionPartRenderer } from './chat-response-renderer/question-part-renderer';
44
47
  import { createChatViewTreeWidget } from './chat-tree-view';
45
48
  import { ChatViewTreeWidget } from './chat-tree-view/chat-view-tree-widget';
46
49
  import { ChatViewMenuContribution } from './chat-view-contribution';
47
50
  import { ChatViewLanguageContribution } from './chat-view-language-contribution';
48
51
  import { ChatViewWidget } from './chat-view-widget';
49
52
  import { ChatViewWidgetToolbarContribution } from './chat-view-widget-toolbar-contribution';
50
- import { EditorPreviewManager } from '@theia/editor-preview/lib/browser/editor-preview-manager';
51
- import { QuestionPartRenderer } from './chat-response-renderer/question-part-renderer';
52
- import '../../src/browser/style/index.css';
53
+ import { ContextVariablePicker } from './context-variable-picker';
53
54
 
54
55
  export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
55
56
  bindViewContribution(bind, AIChatContribution);
@@ -61,7 +62,8 @@ export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
61
62
 
62
63
  bind(AIChatInputWidget).toSelf();
63
64
  bind(AIChatInputConfiguration).toConstantValue({
64
- showContext: false
65
+ showContext: true,
66
+ showPinnedAgent: true
65
67
  });
66
68
  bind(WidgetFactory).toDynamicValue(({ container }) => ({
67
69
  id: AIChatInputWidget.ID,
@@ -76,6 +78,8 @@ export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
76
78
  createWidget: () => container.get(ChatViewTreeWidget)
77
79
  })).inSingletonScope();
78
80
 
81
+ bind(ContextVariablePicker).toSelf().inSingletonScope();
82
+
79
83
  bind(ChatResponsePartRenderer).to(HorizontalLayoutPartRenderer).inSingletonScope();
80
84
  bind(ChatResponsePartRenderer).to(ErrorPartRenderer).inSingletonScope();
81
85
  bind(ChatResponsePartRenderer).to(MarkdownPartRenderer).inSingletonScope();