@theia/ai-ide 1.76.0-next.7 → 1.76.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 (174) hide show
  1. package/lib/browser/ai-allow-all-mode-chat-banner.js +1 -1
  2. package/lib/browser/ai-allow-all-mode-chat-banner.js.map +1 -1
  3. package/lib/browser/ai-aware-scm-commit-widget.d.ts +27 -0
  4. package/lib/browser/ai-aware-scm-commit-widget.d.ts.map +1 -0
  5. package/lib/browser/ai-aware-scm-commit-widget.js +142 -0
  6. package/lib/browser/ai-aware-scm-commit-widget.js.map +1 -0
  7. package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts +10 -4
  8. package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts.map +1 -1
  9. package/lib/browser/ai-configuration/ai-configuration-detail-widget.js +12 -7
  10. package/lib/browser/ai-configuration/ai-configuration-detail-widget.js.map +1 -1
  11. package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js +14 -14
  12. package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js.map +1 -1
  13. package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts +6 -0
  14. package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts.map +1 -1
  15. package/lib/browser/ai-configuration/ai-configuration-tree-widget.js +9 -0
  16. package/lib/browser/ai-configuration/ai-configuration-tree-widget.js.map +1 -1
  17. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts.map +1 -1
  18. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js +2 -1
  19. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js.map +1 -1
  20. package/lib/browser/ai-configuration/categories/agent-chips.js +1 -1
  21. package/lib/browser/ai-configuration/categories/agent-chips.js.map +1 -1
  22. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts +8 -0
  23. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts.map +1 -1
  24. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js +27 -8
  25. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js.map +1 -1
  26. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js +38 -2
  27. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js.map +1 -1
  28. package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts +13 -2
  29. package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts.map +1 -1
  30. package/lib/browser/ai-configuration/categories/models-configuration-category.js +41 -2
  31. package/lib/browser/ai-configuration/categories/models-configuration-category.js.map +1 -1
  32. package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js +32 -2
  33. package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js.map +1 -1
  34. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.d.ts +26 -0
  35. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.d.ts.map +1 -0
  36. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js +212 -0
  37. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js.map +1 -0
  38. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.d.ts +2 -0
  39. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.d.ts.map +1 -0
  40. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js +423 -0
  41. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js.map +1 -0
  42. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
  43. package/lib/browser/ai-configuration/language-model-renderer.js +10 -3
  44. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
  45. package/lib/browser/ai-getting-started-commands.d.ts +10 -0
  46. package/lib/browser/ai-getting-started-commands.d.ts.map +1 -0
  47. package/lib/browser/ai-getting-started-commands.js +34 -0
  48. package/lib/browser/ai-getting-started-commands.js.map +1 -0
  49. package/lib/browser/ai-getting-started-contribution.d.ts +20 -0
  50. package/lib/browser/ai-getting-started-contribution.d.ts.map +1 -0
  51. package/lib/browser/ai-getting-started-contribution.js +70 -0
  52. package/lib/browser/ai-getting-started-contribution.js.map +1 -0
  53. package/lib/browser/ai-getting-started-walkthrough.d.ts +41 -0
  54. package/lib/browser/ai-getting-started-walkthrough.d.ts.map +1 -0
  55. package/lib/browser/ai-getting-started-walkthrough.js +225 -0
  56. package/lib/browser/ai-getting-started-walkthrough.js.map +1 -0
  57. package/lib/browser/ai-getting-started-walkthrough.spec.d.ts +2 -0
  58. package/lib/browser/ai-getting-started-walkthrough.spec.d.ts.map +1 -0
  59. package/lib/browser/ai-getting-started-walkthrough.spec.js +124 -0
  60. package/lib/browser/ai-getting-started-walkthrough.spec.js.map +1 -0
  61. package/lib/browser/ai-walkthrough-context-keys.d.ts +55 -0
  62. package/lib/browser/ai-walkthrough-context-keys.d.ts.map +1 -0
  63. package/lib/browser/ai-walkthrough-context-keys.js +145 -0
  64. package/lib/browser/ai-walkthrough-context-keys.js.map +1 -0
  65. package/lib/browser/ai-walkthrough-context-keys.spec.d.ts +2 -0
  66. package/lib/browser/ai-walkthrough-context-keys.spec.d.ts.map +1 -0
  67. package/lib/browser/ai-walkthrough-context-keys.spec.js +166 -0
  68. package/lib/browser/ai-walkthrough-context-keys.spec.js.map +1 -0
  69. package/lib/browser/chat-session-item.js +2 -2
  70. package/lib/browser/chat-session-item.js.map +1 -1
  71. package/lib/browser/commit-message-agent.d.ts +31 -0
  72. package/lib/browser/commit-message-agent.d.ts.map +1 -0
  73. package/lib/browser/commit-message-agent.js +99 -0
  74. package/lib/browser/commit-message-agent.js.map +1 -0
  75. package/lib/browser/commit-message-agent.spec.d.ts +2 -0
  76. package/lib/browser/commit-message-agent.spec.d.ts.map +1 -0
  77. package/lib/browser/commit-message-agent.spec.js +82 -0
  78. package/lib/browser/commit-message-agent.spec.js.map +1 -0
  79. package/lib/browser/commit-message-command-contribution.d.ts +15 -0
  80. package/lib/browser/commit-message-command-contribution.d.ts.map +1 -0
  81. package/lib/browser/commit-message-command-contribution.js +73 -0
  82. package/lib/browser/commit-message-command-contribution.js.map +1 -0
  83. package/lib/browser/commit-message-commands.d.ts +5 -0
  84. package/lib/browser/commit-message-commands.d.ts.map +1 -0
  85. package/lib/browser/commit-message-commands.js +28 -0
  86. package/lib/browser/commit-message-commands.js.map +1 -0
  87. package/lib/browser/commit-message-prompt-template.d.ts +11 -0
  88. package/lib/browser/commit-message-prompt-template.d.ts.map +1 -0
  89. package/lib/browser/commit-message-prompt-template.js +63 -0
  90. package/lib/browser/commit-message-prompt-template.js.map +1 -0
  91. package/lib/browser/commit-message-runner.d.ts +41 -0
  92. package/lib/browser/commit-message-runner.d.ts.map +1 -0
  93. package/lib/browser/commit-message-runner.js +143 -0
  94. package/lib/browser/commit-message-runner.js.map +1 -0
  95. package/lib/browser/commit-message-runner.spec.d.ts +2 -0
  96. package/lib/browser/commit-message-runner.spec.d.ts.map +1 -0
  97. package/lib/browser/commit-message-runner.spec.js +206 -0
  98. package/lib/browser/commit-message-runner.spec.js.map +1 -0
  99. package/lib/browser/frontend-module.d.ts.map +1 -1
  100. package/lib/browser/frontend-module.js +25 -0
  101. package/lib/browser/frontend-module.js.map +1 -1
  102. package/lib/browser/git-changes-tool.d.ts +73 -0
  103. package/lib/browser/git-changes-tool.d.ts.map +1 -0
  104. package/lib/browser/git-changes-tool.js +217 -0
  105. package/lib/browser/git-changes-tool.js.map +1 -0
  106. package/lib/browser/git-changes-tool.spec.d.ts +2 -0
  107. package/lib/browser/git-changes-tool.spec.d.ts.map +1 -0
  108. package/lib/browser/git-changes-tool.spec.js +167 -0
  109. package/lib/browser/git-changes-tool.spec.js.map +1 -0
  110. package/lib/browser/ide-chat-welcome-message-provider.d.ts +26 -28
  111. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
  112. package/lib/browser/ide-chat-welcome-message-provider.js +61 -151
  113. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
  114. package/lib/browser/review/pr-review-capability-contribution.js +1 -1
  115. package/lib/browser/review/pr-review-capability-contribution.js.map +1 -1
  116. package/lib/browser/user-interaction-tool-renderer.d.ts +6 -0
  117. package/lib/browser/user-interaction-tool-renderer.d.ts.map +1 -1
  118. package/lib/browser/user-interaction-tool-renderer.js +36 -7
  119. package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
  120. package/lib/browser/user-interaction-tool.d.ts +23 -1
  121. package/lib/browser/user-interaction-tool.d.ts.map +1 -1
  122. package/lib/browser/user-interaction-tool.js +56 -17
  123. package/lib/browser/user-interaction-tool.js.map +1 -1
  124. package/lib/browser/user-interaction-tool.spec.js +151 -2
  125. package/lib/browser/user-interaction-tool.spec.js.map +1 -1
  126. package/lib/common/command-prompt-template.js +1 -1
  127. package/lib/common/user-interaction-tool.d.ts +19 -1
  128. package/lib/common/user-interaction-tool.d.ts.map +1 -1
  129. package/lib/common/user-interaction-tool.js +100 -29
  130. package/lib/common/user-interaction-tool.js.map +1 -1
  131. package/lib/common/user-interaction-tool.spec.js +215 -174
  132. package/lib/common/user-interaction-tool.spec.js.map +1 -1
  133. package/package.json +26 -25
  134. package/src/browser/ai-allow-all-mode-chat-banner.tsx +2 -2
  135. package/src/browser/ai-aware-scm-commit-widget.tsx +153 -0
  136. package/src/browser/ai-configuration/ai-configuration-detail-widget.spec.ts +14 -14
  137. package/src/browser/ai-configuration/ai-configuration-detail-widget.tsx +12 -7
  138. package/src/browser/ai-configuration/ai-configuration-tree-widget.tsx +8 -0
  139. package/src/browser/ai-configuration/categories/agent-capabilities-settings.tsx +7 -8
  140. package/src/browser/ai-configuration/categories/agent-chips.tsx +1 -1
  141. package/src/browser/ai-configuration/categories/model-aliases-configuration-category.spec.ts +40 -2
  142. package/src/browser/ai-configuration/categories/model-aliases-configuration-category.tsx +31 -10
  143. package/src/browser/ai-configuration/categories/models-configuration-category.spec.ts +47 -2
  144. package/src/browser/ai-configuration/categories/models-configuration-category.tsx +52 -5
  145. package/src/browser/ai-configuration/categories/provider-model-discovery-section.spec.tsx +451 -0
  146. package/src/browser/ai-configuration/categories/provider-model-discovery-section.tsx +341 -0
  147. package/src/browser/ai-configuration/language-model-renderer.tsx +11 -3
  148. package/src/browser/ai-getting-started-commands.ts +33 -0
  149. package/src/browser/ai-getting-started-contribution.ts +64 -0
  150. package/src/browser/ai-getting-started-walkthrough.spec.ts +146 -0
  151. package/src/browser/ai-getting-started-walkthrough.ts +249 -0
  152. package/src/browser/ai-walkthrough-context-keys.spec.ts +209 -0
  153. package/src/browser/ai-walkthrough-context-keys.ts +147 -0
  154. package/src/browser/chat-session-item.tsx +2 -2
  155. package/src/browser/commit-message-agent.spec.ts +97 -0
  156. package/src/browser/commit-message-agent.ts +113 -0
  157. package/src/browser/commit-message-command-contribution.ts +67 -0
  158. package/src/browser/commit-message-commands.ts +25 -0
  159. package/src/browser/commit-message-prompt-template.ts +65 -0
  160. package/src/browser/commit-message-runner.spec.ts +266 -0
  161. package/src/browser/commit-message-runner.ts +163 -0
  162. package/src/browser/frontend-module.ts +27 -0
  163. package/src/browser/git-changes-tool.spec.ts +200 -0
  164. package/src/browser/git-changes-tool.ts +239 -0
  165. package/src/browser/ide-chat-welcome-message-provider.tsx +93 -230
  166. package/src/browser/review/pr-review-capability-contribution.ts +1 -1
  167. package/src/browser/style/commit-message-overlay.css +64 -0
  168. package/src/browser/style/index.css +4 -42
  169. package/src/browser/user-interaction-tool-renderer.tsx +38 -8
  170. package/src/browser/user-interaction-tool.spec.ts +201 -2
  171. package/src/browser/user-interaction-tool.ts +69 -18
  172. package/src/common/command-prompt-template.ts +1 -1
  173. package/src/common/user-interaction-tool.spec.ts +217 -161
  174. package/src/common/user-interaction-tool.ts +127 -32
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-changes-tool.js","sourceRoot":"","sources":["../../src/browser/git-changes-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git-changes-tool.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-changes-tool.spec.d.ts","sourceRoot":"","sources":["../../src/browser/git-changes-tool.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 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
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
22
+ const chai_1 = require("chai");
23
+ const sinon = require("sinon");
24
+ const inversify_1 = require("@theia/core/shared/inversify");
25
+ const uri_1 = require("@theia/core/lib/common/uri");
26
+ const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
27
+ const scm_service_1 = require("@theia/scm/lib/browser/scm-service");
28
+ const shell_execution_server_1 = require("@theia/ai-terminal/lib/common/shell-execution-server");
29
+ const git_changes_tool_1 = require("./git-changes-tool");
30
+ disableJSDOM();
31
+ function shellResult(overrides = {}) {
32
+ return { success: true, exitCode: 0, stdout: 'staged diff', stderr: '', duration: 1, ...overrides };
33
+ }
34
+ function makeRepo(rootUri) {
35
+ return { provider: { rootUri } };
36
+ }
37
+ describe('GetGitChangesTool', () => {
38
+ let container;
39
+ let shellServer;
40
+ let scmService;
41
+ let workspaceRoots;
42
+ let tool;
43
+ const backend = makeRepo('file:///work/backend');
44
+ const frontend = makeRepo('file:///work/frontend');
45
+ const nested = makeRepo('file:///work/backend/vendor/lib');
46
+ function cwdOfCall(index = 0) {
47
+ return shellServer.execute.getCall(index).args[0].cwd?.replace(/\\/g, '/');
48
+ }
49
+ before(() => {
50
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
51
+ });
52
+ after(() => {
53
+ disableJSDOM();
54
+ });
55
+ beforeEach(() => {
56
+ container = new inversify_1.Container();
57
+ shellServer = { execute: sinon.stub().resolves(shellResult()), cancel: sinon.stub().resolves(true) };
58
+ workspaceRoots = [new uri_1.default('file:///work/backend'), new uri_1.default('file:///work/frontend')];
59
+ scmService = { repositories: [backend, frontend, nested], selectedRepository: frontend };
60
+ const workspaceService = {
61
+ tryGetRoots: () => workspaceRoots.map(resource => ({ resource }))
62
+ };
63
+ container.bind(shell_execution_server_1.ShellExecutionServer).toConstantValue(shellServer);
64
+ container.bind(scm_service_1.ScmService).toConstantValue(scmService);
65
+ container.bind(workspace_service_1.WorkspaceService).toConstantValue(workspaceService);
66
+ container.bind(git_changes_tool_1.GetGitChangesTool).toSelf();
67
+ tool = container.get(git_changes_tool_1.GetGitChangesTool);
68
+ });
69
+ afterEach(() => sinon.restore());
70
+ it('exposes the well-known tool id getGitChanges with a repository parameter', () => {
71
+ const request = tool.getTool();
72
+ (0, chai_1.expect)(request.id).to.equal(git_changes_tool_1.GET_GIT_CHANGES_FUNCTION_ID);
73
+ (0, chai_1.expect)(request.parameters.properties.repository.type).to.equal('string');
74
+ (0, chai_1.expect)(request.parameters.required ?? []).to.not.contain('repository');
75
+ });
76
+ it('runs a cross-platform "git diff --cached" with no POSIX-only shell operators', async () => {
77
+ await tool.getTool().handler('{}');
78
+ const command = shellServer.execute.firstCall.args[0].command;
79
+ (0, chai_1.expect)(command).to.equal('git diff --cached --no-color');
80
+ (0, chai_1.expect)(command).to.not.match(/;|\||xargs|sh -c|\/dev\/null/);
81
+ });
82
+ it('falls back to the selected repository when no repository argument is given', async () => {
83
+ await tool.getTool().handler('{}');
84
+ (0, chai_1.expect)(cwdOfCall()).to.equal('/work/frontend');
85
+ });
86
+ it('runs in the named repository rather than the selected one', async () => {
87
+ const result = await tool.getTool().handler(JSON.stringify({ repository: 'backend' }));
88
+ (0, chai_1.expect)(result.output).to.equal('staged diff');
89
+ (0, chai_1.expect)(cwdOfCall()).to.equal('/work/backend');
90
+ });
91
+ it('identifies a repository nested inside a workspace root by its relative path', async () => {
92
+ await tool.getTool().handler(JSON.stringify({ repository: 'backend/vendor/lib' }));
93
+ (0, chai_1.expect)(cwdOfCall()).to.equal('/work/backend/vendor/lib');
94
+ });
95
+ it('labels the argument with the repository for the tool-call summary', () => {
96
+ const label = tool.getTool().getArgumentsShortLabel(JSON.stringify({ repository: 'backend' }));
97
+ (0, chai_1.expect)(label).to.deep.equal({ label: 'backend', hasMore: false });
98
+ });
99
+ it('accepts an absolute path and ignores separator and case differences', async () => {
100
+ await tool.getTool().handler(JSON.stringify({ repository: '/work/backend' }));
101
+ (0, chai_1.expect)(cwdOfCall()).to.equal('/work/backend');
102
+ await tool.getTool().handler(JSON.stringify({ repository: 'BackEnd/' }));
103
+ (0, chai_1.expect)(cwdOfCall(1)).to.equal('/work/backend');
104
+ });
105
+ it('reports the known repositories instead of running an unknown one', async () => {
106
+ const result = await tool.getTool().handler(JSON.stringify({ repository: '../../etc' }));
107
+ (0, chai_1.expect)(result.error).to.contain('../../etc');
108
+ (0, chai_1.expect)(result.availableRepositories).to.deep.equal(['backend', 'frontend', 'backend/vendor/lib']);
109
+ (0, chai_1.expect)(shellServer.execute.called).to.be.false;
110
+ });
111
+ it('reports an ambiguous folder name instead of picking the first matching repository', async () => {
112
+ const otherLib = makeRepo('file:///work/frontend/vendor/lib');
113
+ scmService.repositories = [backend, frontend, nested, otherLib];
114
+ const result = await tool.getTool().handler(JSON.stringify({ repository: 'lib' }));
115
+ (0, chai_1.expect)(result.error).to.contain('ambiguous');
116
+ (0, chai_1.expect)(shellServer.execute.called).to.be.false;
117
+ await tool.getTool().handler(JSON.stringify({ repository: 'frontend/vendor/lib' }));
118
+ (0, chai_1.expect)(cwdOfCall()).to.equal('/work/frontend/vendor/lib');
119
+ });
120
+ it('prefers an exact label match over a folder name shared with a nested repository', async () => {
121
+ const nestedBackend = makeRepo('file:///work/frontend/backend');
122
+ scmService.repositories = [backend, frontend, nestedBackend];
123
+ await tool.getTool().handler(JSON.stringify({ repository: 'backend' }));
124
+ (0, chai_1.expect)(cwdOfCall()).to.equal('/work/backend');
125
+ });
126
+ it('never derives the working directory from the argument, only from the matched repository', async () => {
127
+ await tool.getTool().handler(JSON.stringify({ repository: 'backend; rm -rf /' }));
128
+ (0, chai_1.expect)(shellServer.execute.called).to.be.false;
129
+ });
130
+ it('asks for a repository when none is named and none is selected', async () => {
131
+ scmService.selectedRepository = undefined;
132
+ const result = await tool.getTool().handler('{}');
133
+ (0, chai_1.expect)(result.error).to.contain('repository argument');
134
+ (0, chai_1.expect)(shellServer.execute.called).to.be.false;
135
+ });
136
+ it('throws instead of returning the error output when the git command fails', async () => {
137
+ shellServer.execute.resolves(shellResult({
138
+ success: false,
139
+ exitCode: 128,
140
+ stdout: '',
141
+ stderr: 'fatal: not a git repository'
142
+ }));
143
+ let caught;
144
+ try {
145
+ await tool.getStagedChanges(backend);
146
+ }
147
+ catch (error) {
148
+ caught = error;
149
+ }
150
+ (0, chai_1.expect)(caught?.message).to.match(/fatal: not a git repository/);
151
+ });
152
+ it('returns an empty diff when the execution was canceled', async () => {
153
+ shellServer.execute.resolves(shellResult({ canceled: true, stdout: 'partial' }));
154
+ (0, chai_1.expect)(await tool.getStagedChanges(backend)).to.equal('');
155
+ });
156
+ it('keeps far more diff lines than the default shellExecute budget', async () => {
157
+ const stdout = Array.from({ length: 600 }, (_unused, index) => `+line ${index}`).join('\n');
158
+ shellServer.execute.resolves(shellResult({ stdout }));
159
+ const diff = await tool.getStagedChanges(backend);
160
+ (0, chai_1.expect)(diff).to.contain('+line 300');
161
+ (0, chai_1.expect)(diff).to.not.contain('lines omitted');
162
+ });
163
+ it('does not declare checkAutoAction so confirmation flows through the normal ToolConfirmationManager', () => {
164
+ (0, chai_1.expect)(tool.getTool().checkAutoAction).to.be.undefined;
165
+ });
166
+ });
167
+ //# sourceMappingURL=git-changes-tool.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-changes-tool.spec.js","sourceRoot":"","sources":["../../src/browser/git-changes-tool.spec.ts"],"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;;AAEhF,8DAAiE;AACjE,IAAI,YAAY,GAAG,IAAA,mBAAW,GAAE,CAAC;AACjC,uHAAiH;AACjH,wEAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE1C,+BAA8B;AAC9B,+BAA+B;AAC/B,4DAAyD;AACzD,oDAA6C;AAC7C,sFAAkF;AAElF,oEAAgE;AAChE,iGAAyI;AACzI,yDAA+G;AAE/G,YAAY,EAAE,CAAC;AAEf,SAAS,WAAW,CAAC,YAA2C,EAAE;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;AACxG,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAA8B,CAAC;AACjE,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE/B,IAAI,SAAoB,CAAC;IACzB,IAAI,WAAkE,CAAC;IACvE,IAAI,UAA4F,CAAC;IACjG,IAAI,cAAqB,CAAC;IAC1B,IAAI,IAAuB,CAAC;IAE5B,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,iCAAiC,CAAC,CAAC;IAE3D,SAAS,SAAS,CAAC,KAAK,GAAG,CAAC;QACxB,OAAQ,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAA2B,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,CAAC,GAAG,EAAE;QACR,YAAY,GAAG,IAAA,mBAAW,GAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,YAAY,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACZ,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC5B,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrG,cAAc,GAAG,CAAC,IAAI,aAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,aAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACrF,UAAU,GAAG,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;QACzF,MAAM,gBAAgB,GAA8B;YAChD,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAY,CAAA,CAAC;SAC7E,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,6CAAoB,CAAC,CAAC,eAAe,CAAC,WAA8C,CAAC,CAAC;QACrG,SAAS,CAAC,IAAI,CAAC,wBAAU,CAAC,CAAC,eAAe,CAAC,UAAmC,CAAC,CAAC;QAChF,SAAS,CAAC,IAAI,CAAC,oCAAgB,CAAC,CAAC,eAAe,CAAC,gBAAoC,CAAC,CAAC;QACvF,SAAS,CAAC,IAAI,CAAC,oCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,oCAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAEjC,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAA,aAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8CAA2B,CAAC,CAAC;QACzD,IAAA,aAAM,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAA+B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/F,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAA2B,CAAC,OAAO,CAAC;QACzF,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACzD,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAuB,CAAC;QAC7G,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QACnF,IAAA,aAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,sBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChG,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAC9E,IAAA,aAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACzE,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAA8B,CAAC;QACtH,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAClG,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,QAAQ,GAAG,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAC9D,UAAU,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAA8B,CAAC;QAChH,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAE/C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACpF,IAAA,aAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,aAAa,GAAG,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAChE,UAAU,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE7D,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACxE,IAAA,aAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAClF,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC3E,UAAU,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAA8B,CAAC;QAC/E,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACrF,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YACrC,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,6BAA6B;SACxC,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,KAAc,CAAC;QAC5B,CAAC;QACD,IAAA,aAAM,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACnE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACjF,IAAA,aAAM,EAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAElD,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrC,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;QACzG,IAAA,aAAM,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -2,68 +2,66 @@ import { ChatWelcomeMessageProvider } from '@theia/ai-chat-ui/lib/browser/chat-t
2
2
  import * as React from '@theia/core/shared/react';
3
3
  import { MarkdownRenderer } from '@theia/core/lib/browser';
4
4
  import { CommandRegistry, DisposableCollection, Emitter, Event } from '@theia/core';
5
- import { AgentService, FrontendLanguageModelRegistry } from '@theia/ai-core/lib/common';
5
+ import { FrontendLanguageModelRegistry } from '@theia/ai-core/lib/common';
6
6
  import { PreferenceService } from '@theia/core/lib/common';
7
- import { ChatAgentRecommendationService, ChatAgentService, ChatService } from '@theia/ai-chat/lib/common';
8
- import { ToolConfirmationManager } from '@theia/ai-chat/lib/browser/chat-tool-preference-bindings';
7
+ import { WalkthroughService } from '@theia/getting-started/lib/browser/walkthrough-service';
9
8
  import { AIActivationService } from '@theia/ai-core/lib/browser';
9
+ /**
10
+ * The welcome message of the chat view.
11
+ *
12
+ * It only covers what has to be shown right here: the states that keep the chat from working (no language
13
+ * model, AI turned off, workspace not trusted) and a one-line reminder of how to talk to the agents. Everything
14
+ * that teaches the AI features lives in the "Get started with AI" walkthrough, which each state links to.
15
+ */
10
16
  export declare class IdeChatWelcomeMessageProvider implements ChatWelcomeMessageProvider {
11
17
  readonly priority = 100;
12
18
  protected readonly markdownRenderer: MarkdownRenderer;
13
19
  protected readonly commandRegistry: CommandRegistry;
14
20
  protected languageModelRegistry: FrontendLanguageModelRegistry;
15
21
  protected preferenceService: PreferenceService;
16
- protected recommendationService: ChatAgentRecommendationService;
17
- protected chatAgentService: ChatAgentService;
18
- protected agentService: AgentService;
19
- protected readonly toolConfirmationManager: ToolConfirmationManager;
20
22
  protected readonly activationService: AIActivationService;
21
- protected readonly chatService: ChatService;
23
+ protected readonly walkthroughService: WalkthroughService;
22
24
  protected readonly toDispose: DisposableCollection;
23
25
  protected _hasReadyModels: boolean;
24
26
  protected _modelRequirementBypassed: boolean;
25
- protected _defaultAgent: string;
27
+ protected _hasDefaultAgent: boolean;
26
28
  protected modelConfig: {
27
29
  hasModels: boolean;
28
30
  errorMessages: string[];
29
31
  } | undefined;
30
- /** True once the user has any chat (active or persisted). Drives the compact "has-chats" welcome variant. */
31
- protected hasAnyChat: boolean;
32
32
  protected readonly onStateChangedEmitter: Emitter<void>;
33
33
  get onStateChanged(): Event<void>;
34
34
  protected init(): void;
35
+ protected updateDefaultAgentState(): void;
35
36
  protected checkLanguageModelStatus(): Promise<void>;
36
37
  protected analyzeModelConfiguration(): Promise<{
37
38
  hasModels: boolean;
38
39
  errorMessages: string[];
39
40
  }>;
40
41
  protected notifyStateChanged(): void;
41
- /**
42
- * Recomputes {@link hasAnyChat} (true when the user has any titled active session or any
43
- * persisted session on disk). Fires a state change when the flag flips so the welcome
44
- * variant updates between the rich onboarding (no chats yet) and the compact mode.
45
- */
46
- protected refreshHasAnyChat(): Promise<void>;
47
42
  get hasReadyModels(): boolean;
48
43
  get modelRequirementBypassed(): boolean;
49
- get defaultAgent(): string;
50
44
  /**
51
- * Whether to show the tool-confirmation explainer on the welcome screen.
52
- *
53
- * Only shown while the user is still in the default state, i.e. every tool call is confirmed and
54
- * no per-tool overrides exist. Once the user has changed the default mode (e.g. to always allow
55
- * or to disable tools) or pre-approved individual tools (including via bulk approval), they are
56
- * already aware of the mechanism, so the explainer is suppressed.
45
+ * Whether the getting started walkthrough still has something to offer. Once it is finished, the chat view
46
+ * stops advertising it.
57
47
  */
58
- protected get shouldShowToolConfirmationInfo(): boolean;
48
+ protected get hasPendingWalkthroughSteps(): boolean;
49
+ protected openWalkthrough: () => Promise<unknown>;
50
+ protected openAiConfiguration: () => Promise<unknown>;
59
51
  protected setModelRequirementBypassed(bypassed: boolean): void;
60
- protected setDefaultAgent(agentId: string): void;
61
52
  dispose(): void;
62
53
  renderWelcomeMessage(): React.ReactNode;
63
54
  protected renderWelcomeScreen(): React.ReactNode;
64
- protected renderToolConfirmationAlert(): React.ReactNode;
55
+ /**
56
+ * Nothing answers a message that does not name an agent while no default agent is configured, so the chat
57
+ * has to say so where the message is typed rather than leaving the first request to fail.
58
+ */
59
+ protected renderDefaultAgentAlert(): React.ReactNode;
60
+ /**
61
+ * The entry point into the walkthrough, shown while it is unfinished.
62
+ */
63
+ protected renderWalkthroughAction(): React.ReactNode;
65
64
  protected renderModelConfigurationScreen(): React.ReactNode;
66
- protected renderAgentSelectionScreen(): React.ReactNode;
67
65
  renderDisabledMessage(): React.ReactNode;
68
66
  protected renderTrustRestrictedMessage(): React.ReactNode;
69
67
  protected renderPreferenceDisabledMessage(): React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ide-chat-welcome-message-provider.d.ts","sourceRoot":"","sources":["../../src/browser/ide-chat-welcome-message-provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ide-chat-welcome-message-provider.d.ts","sourceRoot":"","sources":["../../src/browser/ide-chat-welcome-message-provider.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAA8B,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAmB,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAE5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAkCjE;;;;;;GAMG;AACH,qBACa,6BAA8B,YAAW,0BAA0B;IAE5E,QAAQ,CAAC,QAAQ,OAAO;IAGxB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAG/D,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAE1D,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,yBAAyB,UAAS;IAC5C,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,WAAW,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAEnF,SAAS,CAAC,QAAQ,CAAC,qBAAqB,gBAAuB;IAE/D,IAAI,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,CAEhC;IAGD,SAAS,CAAC,IAAI,IAAI,IAAI;IA8CtB,SAAS,CAAC,uBAAuB,IAAI,IAAI;cAQzB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;cAOzC,yBAAyB,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAWrG,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAIpC,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,wBAAwB,IAAI,OAAO,CAEtC;IAED;;;OAGG;IACH,SAAS,KAAK,0BAA0B,IAAI,OAAO,CAGlD;IAED,SAAS,CAAC,eAAe,yBAAqF;IAE9G,SAAS,CAAC,mBAAmB,yBAAqE;IAElG,SAAS,CAAC,2BAA2B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI9D,OAAO,IAAI,IAAI;IAKf,oBAAoB,IAAI,KAAK,CAAC,SAAS;IAOvC,SAAS,CAAC,mBAAmB,IAAI,KAAK,CAAC,SAAS;IAuBhD;;;OAGG;IACH,SAAS,CAAC,uBAAuB,IAAI,KAAK,CAAC,SAAS;IAuBpD;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,KAAK,CAAC,SAAS;IAapD,SAAS,CAAC,8BAA8B,IAAI,KAAK,CAAC,SAAS;IAqF3D,qBAAqB,IAAI,KAAK,CAAC,SAAS;IAOxC,SAAS,CAAC,4BAA4B,IAAI,KAAK,CAAC,SAAS;IA8BzD,SAAS,CAAC,+BAA+B,IAAI,KAAK,CAAC,SAAS;CAoC/D"}