@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,206 @@
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 core_1 = require("@theia/core");
26
+ const dialogs_1 = require("@theia/core/lib/browser/dialogs");
27
+ const scm_service_1 = require("@theia/scm/lib/browser/scm-service");
28
+ const scm_input_1 = require("@theia/scm/lib/browser/scm-input");
29
+ const commit_message_agent_1 = require("./commit-message-agent");
30
+ const commit_message_runner_1 = require("./commit-message-runner");
31
+ const git_changes_tool_1 = require("./git-changes-tool");
32
+ disableJSDOM();
33
+ describe('CommitMessageRunner', () => {
34
+ let container;
35
+ let runner;
36
+ let agent;
37
+ let gitChangesTool;
38
+ let scmService;
39
+ let messageService;
40
+ let logger;
41
+ let repository;
42
+ let focusSpy;
43
+ let confirmDialogOpen;
44
+ before(() => {
45
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
46
+ });
47
+ after(() => {
48
+ disableJSDOM();
49
+ });
50
+ beforeEach(() => {
51
+ container = new inversify_1.Container();
52
+ const input = new scm_input_1.ScmInput();
53
+ focusSpy = sinon.spy(input, 'focus');
54
+ repository = { input, provider: { rootUri: 'file:///workspace-root' } };
55
+ scmService = { selectedRepository: repository };
56
+ agent = { generateCommitMessage: sinon.stub().resolves('feat: add new thing') };
57
+ gitChangesTool = { getStagedChanges: sinon.stub().resolves('diff --git a b') };
58
+ messageService = {
59
+ warn: sinon.stub().resolves(undefined),
60
+ error: sinon.stub().resolves(undefined),
61
+ info: sinon.stub().resolves(undefined)
62
+ };
63
+ logger = {
64
+ error: sinon.stub(),
65
+ warn: sinon.stub(),
66
+ info: sinon.stub(),
67
+ debug: sinon.stub(),
68
+ trace: sinon.stub()
69
+ };
70
+ // The overwrite prompt is a modal `ConfirmDialog`, not a toast, so it is stubbed at the
71
+ // prototype instead of via `MessageService`.
72
+ confirmDialogOpen = sinon.stub(dialogs_1.ConfirmDialog.prototype, 'open').resolves(true);
73
+ container.bind(commit_message_agent_1.CommitMessageAgent).toConstantValue(agent);
74
+ container.bind(git_changes_tool_1.GetGitChangesTool).toConstantValue(gitChangesTool);
75
+ container.bind(scm_service_1.ScmService).toConstantValue(scmService);
76
+ container.bind(core_1.MessageService).toConstantValue(messageService);
77
+ container.bind(core_1.ILogger).toConstantValue(logger);
78
+ container.bind(commit_message_runner_1.CommitMessageRunner).toSelf();
79
+ runner = container.get(commit_message_runner_1.CommitMessageRunner);
80
+ });
81
+ afterEach(() => sinon.restore());
82
+ it('writes the generated message into the SCM input and focuses it on success', async () => {
83
+ await runner.run();
84
+ (0, chai_1.expect)(gitChangesTool.getStagedChanges.calledOnce).to.be.true;
85
+ // The diff is read for the selected repository, bypassing the model-facing tool call.
86
+ (0, chai_1.expect)(gitChangesTool.getStagedChanges.firstCall.args[0]).to.equal(repository);
87
+ (0, chai_1.expect)(agent.generateCommitMessage.calledOnce).to.be.true;
88
+ (0, chai_1.expect)(repository.input.value).to.equal('feat: add new thing');
89
+ (0, chai_1.expect)(focusSpy.calledOnce).to.be.true;
90
+ (0, chai_1.expect)(messageService.error.called).to.be.false;
91
+ });
92
+ it('warns and does not invoke the agent when no repository is selected', async () => {
93
+ scmService.selectedRepository = undefined;
94
+ await runner.run();
95
+ (0, chai_1.expect)(messageService.warn.calledOnce).to.be.true;
96
+ (0, chai_1.expect)(gitChangesTool.getStagedChanges.called).to.be.false;
97
+ (0, chai_1.expect)(agent.generateCommitMessage.called).to.be.false;
98
+ });
99
+ it('does not await notifications, so a dismissed toast cannot leave the run hanging', async () => {
100
+ scmService.selectedRepository = undefined;
101
+ // A toast the user never interacts with never settles; awaiting it would hang `run`.
102
+ messageService.warn.returns(new Promise(() => { }));
103
+ await runner.run();
104
+ (0, chai_1.expect)(runner.isRunning()).to.be.false;
105
+ });
106
+ it('warns and does not invoke the agent when there are no staged changes', async () => {
107
+ gitChangesTool.getStagedChanges.resolves(' \n ');
108
+ await runner.run();
109
+ (0, chai_1.expect)(messageService.warn.calledOnce).to.be.true;
110
+ (0, chai_1.expect)(agent.generateCommitMessage.called).to.be.false;
111
+ (0, chai_1.expect)(repository.input.value).to.equal('');
112
+ });
113
+ it('skips the overwrite prompt when the commit field is empty', async () => {
114
+ repository.input.value = '';
115
+ await runner.run();
116
+ (0, chai_1.expect)(confirmDialogOpen.called).to.be.false;
117
+ (0, chai_1.expect)(repository.input.value).to.equal('feat: add new thing');
118
+ });
119
+ it('asks for confirmation in a modal dialog and overwrites when the user accepts', async () => {
120
+ repository.input.value = 'existing text';
121
+ await runner.run();
122
+ (0, chai_1.expect)(confirmDialogOpen.calledOnce).to.be.true;
123
+ (0, chai_1.expect)(repository.input.value).to.equal('feat: add new thing');
124
+ });
125
+ it('aborts without invoking the agent when the user cancels the overwrite prompt', async () => {
126
+ repository.input.value = 'existing text';
127
+ confirmDialogOpen.resolves(undefined);
128
+ await runner.run();
129
+ (0, chai_1.expect)(agent.generateCommitMessage.called).to.be.false;
130
+ (0, chai_1.expect)(repository.input.value).to.equal('existing text');
131
+ });
132
+ it('does not invoke the agent when the run is canceled while the overwrite prompt is open', async () => {
133
+ repository.input.value = 'existing text';
134
+ let confirm = () => { };
135
+ confirmDialogOpen.callsFake(() => new Promise(resolve => { confirm = resolve; }));
136
+ const runPromise = runner.run();
137
+ await new Promise(resolve => setTimeout(resolve, 0));
138
+ runner.cancel();
139
+ confirm(true);
140
+ await runPromise;
141
+ (0, chai_1.expect)(agent.generateCommitMessage.called).to.be.false;
142
+ (0, chai_1.expect)(repository.input.value).to.equal('existing text');
143
+ });
144
+ it('shows an error notification when the agent fails', async () => {
145
+ agent.generateCommitMessage.rejects(new Error('boom'));
146
+ await runner.run();
147
+ (0, chai_1.expect)(messageService.error.calledOnce).to.be.true;
148
+ (0, chai_1.expect)(messageService.error.firstCall.args[0]).to.contain('boom');
149
+ (0, chai_1.expect)(repository.input.value).to.equal('');
150
+ });
151
+ it('shows an error notification when reading the staged changes fails', async () => {
152
+ gitChangesTool.getStagedChanges.rejects(new Error('fatal: not a git repository'));
153
+ await runner.run();
154
+ (0, chai_1.expect)(messageService.error.calledOnce).to.be.true;
155
+ (0, chai_1.expect)(messageService.error.firstCall.args[0]).to.contain('fatal: not a git repository');
156
+ (0, chai_1.expect)(agent.generateCommitMessage.called).to.be.false;
157
+ });
158
+ it('warns when the model returns an empty message', async () => {
159
+ agent.generateCommitMessage.resolves('');
160
+ await runner.run();
161
+ (0, chai_1.expect)(messageService.warn.calledOnce).to.be.true;
162
+ (0, chai_1.expect)(repository.input.value).to.equal('');
163
+ });
164
+ it('does not change the input or notify when the run is canceled mid-generation', async () => {
165
+ let resolveGeneration = () => { };
166
+ agent.generateCommitMessage.callsFake(() => new Promise(resolve => { resolveGeneration = resolve; }));
167
+ const runPromise = runner.run();
168
+ await new Promise(resolve => setTimeout(resolve, 0));
169
+ (0, chai_1.expect)(runner.isRunning()).to.be.true;
170
+ runner.cancel();
171
+ resolveGeneration('feat: ignored');
172
+ await runPromise;
173
+ (0, chai_1.expect)(repository.input.value).to.equal('');
174
+ (0, chai_1.expect)(messageService.error.called).to.be.false;
175
+ (0, chai_1.expect)(runner.isRunning()).to.be.false;
176
+ });
177
+ it('ignores a second run while one is still in flight', async () => {
178
+ let resolveChanges = () => { };
179
+ gitChangesTool.getStagedChanges.callsFake(() => new Promise(resolve => { resolveChanges = resolve; }));
180
+ const firstRun = runner.run();
181
+ await new Promise(resolve => setTimeout(resolve, 0));
182
+ (0, chai_1.expect)(runner.isRunning()).to.be.true;
183
+ await runner.run();
184
+ (0, chai_1.expect)(gitChangesTool.getStagedChanges.calledOnce).to.be.true;
185
+ resolveChanges('diff --git a b');
186
+ await firstRun;
187
+ (0, chai_1.expect)(runner.isRunning()).to.be.false;
188
+ });
189
+ it('passes its cancellation token down so the git command can be aborted', async () => {
190
+ let capturedToken;
191
+ // Mirror the tool: a canceled execution resolves with an empty diff.
192
+ gitChangesTool.getStagedChanges.callsFake((_repository, token) => {
193
+ capturedToken = token;
194
+ return new Promise(resolve => token.onCancellationRequested(() => resolve('')));
195
+ });
196
+ const runPromise = runner.run();
197
+ await new Promise(resolve => setTimeout(resolve, 0));
198
+ (0, chai_1.expect)(capturedToken?.isCancellationRequested).to.be.false;
199
+ runner.cancel();
200
+ await runPromise;
201
+ (0, chai_1.expect)(capturedToken?.isCancellationRequested).to.be.true;
202
+ (0, chai_1.expect)(agent.generateCommitMessage.called).to.be.false;
203
+ (0, chai_1.expect)(runner.isRunning()).to.be.false;
204
+ });
205
+ });
206
+ //# sourceMappingURL=commit-message-runner.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-message-runner.spec.js","sourceRoot":"","sources":["../../src/browser/commit-message-runner.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAqI/D,wBA6OG"}
1
+ {"version":3,"file":"frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AA+I/D,wBA8PG"}
@@ -62,7 +62,11 @@ const context_files_variable_1 = require("../common/context-files-variable");
62
62
  const tab_bar_toolbar_1 = require("@theia/core/lib/browser/shell/tab-bar-toolbar");
63
63
  const template_preference_contribution_1 = require("./template-preference-contribution");
64
64
  const chat_tree_view_1 = require("@theia/ai-chat-ui/lib/browser/chat-tree-view");
65
+ const walkthrough_provider_1 = require("@theia/getting-started/lib/common/walkthrough-provider");
65
66
  const ide_chat_welcome_message_provider_1 = require("./ide-chat-welcome-message-provider");
67
+ const ai_getting_started_walkthrough_1 = require("./ai-getting-started-walkthrough");
68
+ const ai_getting_started_contribution_1 = require("./ai-getting-started-contribution");
69
+ const ai_walkthrough_context_keys_1 = require("./ai-walkthrough-context-keys");
66
70
  const chat_sessions_welcome_message_provider_1 = require("./chat-sessions-welcome-message-provider");
67
71
  const chat_session_item_action_contribution_1 = require("./chat-session-item-action-contribution");
68
72
  const ai_allow_all_mode_chat_banner_1 = require("./ai-allow-all-mode-chat-banner");
@@ -114,6 +118,12 @@ const ai_first_perspective_contribution_1 = require("./ai-first-perspective-cont
114
118
  const chat_session_list_service_1 = require("./chat-session-list-service");
115
119
  const ai_sessions_widget_1 = require("./ai-sessions-widget");
116
120
  const ai_sessions_view_contribution_1 = require("./ai-sessions-view-contribution");
121
+ const commit_message_agent_1 = require("./commit-message-agent");
122
+ const commit_message_runner_1 = require("./commit-message-runner");
123
+ const commit_message_command_contribution_1 = require("./commit-message-command-contribution");
124
+ const git_changes_tool_1 = require("./git-changes-tool");
125
+ const ai_aware_scm_commit_widget_1 = require("./ai-aware-scm-commit-widget");
126
+ const scm_commit_widget_1 = require("@theia/scm/lib/browser/scm-commit-widget");
117
127
  exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebind) => {
118
128
  bind(core_1.PreferenceContribution).toConstantValue({ schema: ai_ide_preferences_1.aiIdePreferenceSchema });
119
129
  bind(core_1.PreferenceContribution).toConstantValue({ schema: workspace_preferences_1.WorkspacePreferencesSchema });
@@ -165,6 +175,10 @@ exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebi
165
175
  bind(common_2.Agent).toService(pr_review_agent_1.PRReviewAgent);
166
176
  bind(common_1.ChatAgent).toService(pr_review_agent_1.PRReviewAgent);
167
177
  bind(chat_session_list_service_1.ChatSessionListService).toSelf().inSingletonScope();
178
+ bind(walkthrough_provider_1.WalkthroughProvider).to(ai_getting_started_walkthrough_1.AiGettingStartedWalkthroughProvider).inSingletonScope();
179
+ bind(core_1.CommandContribution).to(ai_getting_started_contribution_1.AiGettingStartedContribution).inSingletonScope();
180
+ bind(ai_walkthrough_context_keys_1.AiWalkthroughContextKeys).toSelf().inSingletonScope();
181
+ bind(browser_1.FrontendApplicationContribution).toService(ai_walkthrough_context_keys_1.AiWalkthroughContextKeys);
168
182
  bind(chat_tree_view_1.ChatWelcomeMessageProvider).to(ide_chat_welcome_message_provider_1.IdeChatWelcomeMessageProvider).inSingletonScope();
169
183
  bind(chat_tree_view_1.ChatWelcomeMessageProvider).to(chat_sessions_welcome_message_provider_1.ChatSessionsWelcomeMessageProvider).inSingletonScope();
170
184
  bind(chat_banner_provider_1.ChatBannerProvider).to(ai_allow_all_mode_chat_banner_1.AiAllowAllModeChatBanner).inSingletonScope();
@@ -303,5 +317,16 @@ exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebi
303
317
  .inSingletonScope();
304
318
  (0, browser_1.bindViewContribution)(bind, ai_sessions_view_contribution_1.AISessionsViewContribution);
305
319
  bind(tab_bar_toolbar_1.TabBarToolbarContribution).toService(ai_sessions_view_contribution_1.AISessionsViewContribution);
320
+ // CommitMessageAgent is a plain (non-chat) `Agent`: it is driven exclusively from the SCM
321
+ // commit widget via `CommitMessageRunner`, so it does not appear in chat `@`-mention
322
+ // completion or the chat agent list. The `Agent` binding registers its prompt fragments
323
+ // with the prompt service.
324
+ bind(commit_message_agent_1.CommitMessageAgent).toSelf().inSingletonScope();
325
+ bind(common_2.Agent).toService(commit_message_agent_1.CommitMessageAgent);
326
+ (0, common_2.bindToolProvider)(git_changes_tool_1.GetGitChangesTool, bind);
327
+ bind(commit_message_runner_1.CommitMessageRunner).toSelf().inSingletonScope();
328
+ bind(commit_message_command_contribution_1.CommitMessageCommandContribution).toSelf().inSingletonScope();
329
+ bind(core_1.CommandContribution).toService(commit_message_command_contribution_1.CommitMessageCommandContribution);
330
+ rebind(scm_commit_widget_1.ScmCommitWidget).to(ai_aware_scm_commit_widget_1.AiAwareScmCommitWidget);
306
331
  });
307
332
  //# sourceMappingURL=frontend-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-module.js","sourceRoot":"","sources":["../../src/browser/frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-module.js","sourceRoot":"","sources":["../../src/browser/frontend-module.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,6CAA2C;AAE3C,4DAA+D;AAC/D,sDAAsF;AACtF,sDAA4F;AAC5F,uDAAmD;AACnD,+CAA2C;AAC3C,qGAA+F;AAC/F,+DAQ+B;AAC/B,2EAAsE;AACtE,qGAA+F;AAC/F,qDAMiC;AACjC,uEAAiF;AACjF,2EAIqC;AACrC,2EAA6E;AAC7E,yEAeoC;AACpC,+EAA0E;AAC1E,yEAAoE;AACpE,mEAA6D;AAC7D,2DAAsD;AACtD,uEAAiE;AACjE,2DAAgG;AAChG,+GAA0G;AAC1G,iHAA4G;AAC5G,+GAA0G;AAC1G,6HAAuH;AACvH,qHAAgH;AAChH,yHAAmH;AACnH,6GAAwG;AACxG,uIAAgI;AAChI,iIAA2H;AAC3H,4HAAwK;AACxK,uIAAsI;AACtI,4HAAsH;AACtH,qGAAoG;AACpG,kIAA2H;AAC3H,2EAAmF;AACnF,wHAAmH;AACnH,0FAA8F;AAC9F,8GAAwG;AACxG,wFAA4F;AAC5F,sGAAgG;AAChG,kGAAgI;AAChI,sGAAgG;AAChG,6EAAoF;AACpF,mFAA0F;AAC1F,yFAAoF;AACpF,iFAA0F;AAC1F,iGAA6F;AAC7F,2FAAoF;AACpF,qFAAuF;AACvF,uFAAiF;AACjF,+EAAyE;AACzE,qGAA8F;AAC9F,mGAAsI;AACtI,mFAA2E;AAC3E,6FAAwF;AACxF,2GAAoG;AACpG,yFAA4F;AAC5F,2FAAqF;AACrF,2FAAoF;AACpF,0FAA4F;AAC5F,sCAAwG;AACxG,uFAAiG;AACjG,yEAA0F;AAC1F,2EAAsI;AACtI,iEAA6D;AAC7D,qEAAqE;AACrE,wDAAiE;AACjE,2EAAyE;AACzE,yFAAoF;AACpF,kGAAwG;AACxG,mGAA6F;AAE7F,6DAAwD;AACxD,6DAAwD;AACxD,mEAAiE;AACjE,2CAA4C;AAC5C,6DAAwD;AACxD,mEAA8D;AAC9D,qFAA+E;AAC/E,2GAAqG;AACrG,gHAA0G;AAC1G,iGAA0F;AAC1F,mFAA8E;AAC9E,qEAA4K;AAC5K,yGAAgG;AAChG,qGAA+F;AAC/F,qGAA8F;AAC9F,2FAAsF;AACtF,qFAAgF;AAChF,uGAAiG;AACjG,qFAAgF;AAChF,qFAA+E;AAC/E,uFAAmH;AACnH,mDAA+C;AAC/C,+DAA0D;AAC1D,+FAAyF;AACzF,8DAAyD;AACzD,kGAA4F;AAC5F,qFAAsF;AACtF,2FAAqF;AACrF,2EAAqE;AACrE,6DAAwD;AACxD,mFAA6E;AAC7E,iEAA4D;AAC5D,mEAA8D;AAC9D,+FAAyF;AACzF,yDAAuD;AACvD,6EAAsE;AACtE,gFAA2E;AAE3E,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IACnE,IAAI,CAAC,6BAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,0CAAqB,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,6BAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,kDAA0B,EAAE,CAAC,CAAC;IAErF,IAAI,CAAC,kEAAgC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,8DAA4B,CAAC,CAAC,SAAS,CAAC,kEAAgC,CAAC,CAAC;IAE/E,IAAI,CAAC,sDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,yDAAyD;IACzD,MAAM,CAAC,6BAAmB,CAAC,CAAC,SAAS,CAAC,sDAA0B,CAAC,CAAC;IAElE,IAAI,CAAC,0EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,0DAAgC,CAAC,CAAC,SAAS,CAAC,0EAAkC,CAAC,CAAC;IAErF,IAAI,CAAC,gCAAc,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACjD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,gCAAc,CAAC,CAAC;IACtC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,gCAAc,CAAC,CAAC;IAE1C,IAAI,CAAC,wBAAU,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7C,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,wBAAU,CAAC,CAAC;IAClC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,wBAAU,CAAC,CAAC;IAEtC,IAAI,CAAC,qCAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,qCAAgB,CAAC,CAAC;IACxC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,qCAAgB,CAAC,CAAC;IAE5C,IAAI,CAAC,qCAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,qCAAgB,CAAC,CAAC;IACxC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,qCAAgB,CAAC,CAAC;IAE5C,IAAI,CAAC,+CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,+CAAqB,CAAC,CAAC;IAC7C,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,+CAAqB,CAAC,CAAC;IAEjD,IAAI,CAAC,yCAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,yCAAkB,CAAC,CAAC;IAC1C,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,yCAAkB,CAAC,CAAC;IAE9C,IAAI,CAAC,0CAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,0CAAkB,CAAC,CAAC;IAC1C,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,0CAAkB,CAAC,CAAC;IAE9C,IAAI,CAAC,mCAAe,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,mCAAe,CAAC,CAAC;IACvC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,mCAAe,CAAC,CAAC;IAC3C,IAAI,CAAC,+CAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA4B,kCAAwB,CAAC,CAAC;QACxF,OAAO,QAAQ,CAAC,WAAW,CAAoB,mDAAqB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtB,IAAI,CAAC,sCAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,sCAAgB,CAAC,CAAC;IACxC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,sCAAgB,CAAC,CAAC;IAE5C,IAAI,CAAC,4BAAY,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/C,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,4BAAY,CAAC,CAAC;IACpC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,4BAAY,CAAC,CAAC;IAExC,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,uCAAiB,CAAC,CAAC;IACzC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,uCAAiB,CAAC,CAAC;IAE7C,IAAI,CAAC,+BAAa,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,+BAAa,CAAC,CAAC;IACrC,IAAI,CAAC,kBAAS,CAAC,CAAC,SAAS,CAAC,+BAAa,CAAC,CAAC;IAEzC,IAAI,CAAC,kDAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAEzD,IAAI,CAAC,0CAAmB,CAAC,CAAC,EAAE,CAAC,oEAAmC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrF,IAAI,CAAC,0BAAmB,CAAC,CAAC,EAAE,CAAC,8DAA4B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9E,IAAI,CAAC,sDAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,sDAAwB,CAAC,CAAC;IAE1E,IAAI,CAAC,2CAA0B,CAAC,CAAC,EAAE,CAAC,iEAA6B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtF,IAAI,CAAC,2CAA0B,CAAC,CAAC,EAAE,CAAC,2EAAkC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3F,IAAI,CAAC,yCAAkB,CAAC,CAAC,EAAE,CAAC,wDAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzE,IAAA,mCAA4B,EAAC,IAAI,EAAE,yEAAiC,CAAC,CAAC;IACtE,IAAI,CAAC,gFAAwC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3E,IAAI,CAAC,yEAAiC,CAAC,CAAC,SAAS,CAAC,gFAAwC,CAAC,CAAC;IAC5F,IAAI,CAAC,uCAA8B,CAAC,CAAC,EAAE,CAAC,iFAAqC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAElG,IAAA,yBAAgB,EAAC,0CAAoB,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAA,yBAAgB,EAAC,yCAAmB,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAA,yBAAgB,EAAC,oDAA8B,EAAE,IAAI,CAAC,CAAC;IACvD,IAAA,yBAAgB,EAAC,4CAAsB,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAA,yBAAgB,EAAC,wCAAkB,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAA,yBAAgB,EAAC,0CAAmB,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,4CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAA,yBAAgB,EAAC,mDAAuB,EAAE,IAAI,CAAC,CAAC;IAEhD,IAAA,mCAA4B,EAAC,IAAI,EAAE,gDAA0B,CAAC,CAAC;IAC/D,IAAI,CAAC,4EAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,4EAAmC,CAAC,CAAC;IAC5E,IAAI,CAAC,gDAA0B,CAAC,CAAC,SAAS,CAAC,4EAAmC,CAAC,CAAC;IAEhF,IAAA,yBAAgB,EAAC,6CAAkB,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAA,yBAAgB,EAAC,2CAAgB,EAAE,IAAI,CAAC,CAAC;IACzC,IAAA,yBAAgB,EAAC,0CAAgB,EAAE,IAAI,CAAC,CAAC;IACzC,IAAA,yBAAgB,EAAC,4CAAkB,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAA,yBAAgB,EAAC,8CAAkB,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAA,yBAAgB,EAAC,gDAAoB,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAA,yBAAgB,EAAC,8CAAkB,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,6DAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,qDAA0B,CAAC,CAAC,EAAE,CAAC,4DAAiC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1F,IAAI,CAAC,+DAAoC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvE,IAAA,yBAAgB,EAAC,kDAAuB,EAAE,IAAI,CAAC,CAAC;IAChD,IAAA,yBAAgB,EAAC,yDAA8B,EAAE,IAAI,CAAC,CAAC;IACvD,IAAA,yBAAgB,EAAC,gDAAqB,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAA,yBAAgB,EAAC,uDAA4B,EAAE,IAAI,CAAC,CAAC;IACrD,IAAA,yBAAgB,EAAC,mCAAe,EAAE,IAAI,CAAC,CAAC;IACxC,IAAA,yBAAgB,EAAC,sCAAkB,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,0DAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,gGAAgG;IAChG,4FAA4F;IAC5F,kGAAkG;IAClG,iEAAiE;IACjE,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,IAAI,CAAC,wDAAyB,CAAC;SAC1B,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAA,iEAAkC,EAAC,SAAS,CAAC,CAAC,GAAG,CAAC,wDAAyB,CAAC,CAAC,CAAC;IACrH,IAAI,CAAC,wDAA8B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9C,IAAI,CAAC,uBAAa,CAAC;SACd,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,wDAA8B,CAAC,EAAE;QACrC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wDAA8B,CAAC;KACxE,CAAC,CAAC;SACF,gBAAgB,EAAE,CAAC;IAExB,IAAA,yBAAgB,EAAC,iDAAqB,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAA,yBAAgB,EAAC,gDAAoB,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAA,yBAAgB,EAAC,oDAAwB,EAAE,IAAI,CAAC,CAAC;IACjD,IAAA,yBAAgB,EAAC,4CAAgB,EAAE,IAAI,CAAC,CAAC;IAEzC,IAAA,8BAAoB,EAAC,IAAI,EAAE,oEAA+B,CAAC,CAAC;IAC5D,IAAI,CAAC,2CAAyB,CAAC,CAAC,SAAS,CAAC,oEAA+B,CAAC,CAAC;IAE3E,IAAI,CAAC,2DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,2DAA2B,CAAC,CAAC;IAErE,IAAI,CAAC,6DAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/D,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,6DAA4B,CAAC,CAAC;IAEtE,IAAI,CAAC,2DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,2DAA2B,CAAC,CAAC;IAErE,IAAI,CAAC,wEAAiC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,wEAAiC,CAAC,CAAC;IAE3E,IAAI,CAAC,iEAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACjE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,iEAA8B,CAAC,CAAC;IAExE,IAAI,CAAC,oEAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,oEAA+B,CAAC,CAAC;IAEzE,IAAI,CAAC,yDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,yDAA0B,CAAC,CAAC;IAEpE,IAAI,CAAC,iFAAqC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,iFAAqC,CAAC,CAAC;IAE/E,IAAI,CAAC,4EAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,4EAAmC,CAAC,CAAC;IAE7E,6GAA6G;IAC7G,IAAI,CAAC,iFAAqC,CAAC,CAAC,MAAM,EAAE,CAAC;IACrD,IAAI,CAAC,qEAAkC,CAAC,CAAC,EAAE,CAAC,6FAAiD,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAElH,wDAAwD;IACxD,IAAI,CAAC,kFAAsC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzE,IAAI,CAAC,+CAAuB,CAAC,CAAC,SAAS,CAAC,kFAAsC,CAAC,CAAC;IAChF,2FAA2F;IAC3F,IAAI,CAAC,uFAAwC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3E,IAAI,CAAC,0CAAyB,CAAC,CAAC,SAAS,CAAC,uFAAwC,CAAC,CAAC;IAEpF,IAAA,yBAAgB,EAAC,wDAA6B,EAAE,IAAI,CAAC,CAAC;IACtD,IAAA,yBAAgB,EAAC,sDAA2B,EAAE,IAAI,CAAC,CAAC;IACpD,IAAA,yBAAgB,EAAC,2CAAgB,EAAE,IAAI,CAAC,CAAC;IACzC,IAAA,yBAAgB,EAAC,+CAAoB,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAA,yBAAgB,EAAC,wCAAoB,EAAE,IAAI,CAAC,CAAC;IAE7C,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,yDAAgC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAErF,IAAI,CAAC,6BAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,yDAA0B,EAAE,CAAC,CAAC;IAErF,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,iEAA8B,CAAC,CAAC;IAEzE,IAAI,CAAC,yEAAsC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzE,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,yEAAsC,CAAC,CAAC;IAE/E,IAAI,CAAC,wCAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA4B,kCAAwB,CAAC,CAAC;QACxF,OAAO,QAAQ,CAAC,WAAW,CAAoB,4CAAqB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtB,IAAI,CAAC,kEAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACjE,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,kEAA8B,CAAC,CAAC;IACvE,IAAI,CAAC,iEAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChE,MAAM,CAAC,gDAAyB,CAAC,CAAC,SAAS,CAAC,iEAA6B,CAAC,CAAC;IAE3E,IAAI,CAAC,0BAAmB,CAAC,CAAC,EAAE,CAAC,4EAAmC,CAAC,CAAC;IAElE,IAAA,yBAAgB,EAAC,8CAAsB,EAAE,IAAI,CAAC,CAAC;IAE/C,qDAAqD;IACrD,IAAA,yBAAgB,EAAC,kDAAyB,EAAE,IAAI,CAAC,CAAC;IAClD,IAAA,yBAAgB,EAAC,+CAAsB,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAA,yBAAgB,EAAC,gDAAuB,EAAE,IAAI,CAAC,CAAC;IAChD,IAAA,yBAAgB,EAAC,iDAAwB,EAAE,IAAI,CAAC,CAAC;IACjD,IAAA,yBAAgB,EAAC,mDAA0B,EAAE,IAAI,CAAC,CAAC;IACnD,IAAA,yBAAgB,EAAC,yBAAa,EAAE,IAAI,CAAC,CAAC;IACtC,IAAA,yBAAgB,EAAC,2CAAmB,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,sDAAwB,CAAC,CAAC,EAAE,CAAC,qCAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvE,IAAI,CAAC,sDAAwB,CAAC,CAAC,EAAE,CAAC,4DAA2B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAElF,IAAI,CAAC,uEAAgC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,8DAA4B,CAAC,CAAC,SAAS,CAAC,uEAAgC,CAAC,CAAC;IAE/E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,2DAA2B,CAAC,CAAC;IACtE,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,6EAAkC,CAAC,CAAC;IAC7E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,2EAAkC,CAAC,CAAC;IAC7E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,4EAAmC,CAAC,CAAC;IAC9E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,mEAA+B,CAAC,CAAC;IAC1E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,6DAA4B,CAAC,CAAC;IACvE,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,8EAAoC,CAAC,CAAC;IAC/E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,6DAA4B,CAAC,CAAC;IACvE,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,4DAA2B,CAAC,CAAC;IAEtE,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,sEAAgC,CAAC,CAAC;IAC3E,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,kEAA8B,CAAC,CAAC;IAEzE,IAAI,CAAC,kEAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACjE,IAAI,CAAC,6CAAuB,CAAC,CAAC,SAAS,CAAC,kEAA8B,CAAC,CAAC;IAExE,IAAI,CAAC,qCAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,IAAI,CAAC,uBAAa,CAAC;SACd,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,qCAAgB,CAAC,EAAE;QACvB,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,qCAAgB,CAAC;KAC1D,CAAC,CAAC;SACF,gBAAgB,EAAE,CAAC;IACxB,IAAA,8BAAoB,EAAC,IAAI,EAAE,0DAA0B,CAAC,CAAC;IACvD,IAAI,CAAC,2CAAyB,CAAC,CAAC,SAAS,CAAC,0DAA0B,CAAC,CAAC;IAEtE,0FAA0F;IAC1F,qFAAqF;IACrF,wFAAwF;IACxF,2BAA2B;IAC3B,IAAI,CAAC,yCAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrD,IAAI,CAAC,cAAK,CAAC,CAAC,SAAS,CAAC,yCAAkB,CAAC,CAAC;IAC1C,IAAA,yBAAgB,EAAC,oCAAiB,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,2CAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,sEAAgC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,0BAAmB,CAAC,CAAC,SAAS,CAAC,sEAAgC,CAAC,CAAC;IACtE,MAAM,CAAC,mCAAe,CAAC,CAAC,EAAE,CAAC,mDAAsB,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { CancellationToken } from '@theia/core';
2
+ import { ToolInvocationContext, ToolRequest, ToolRequestParameters } from '@theia/ai-core';
3
+ import { ScmRepository } from '@theia/scm/lib/browser/scm-repository';
4
+ import { ScmService } from '@theia/scm/lib/browser/scm-service';
5
+ import { PredefinedShellTool } from '@theia/ai-terminal/lib/browser/predefined-shell-tool';
6
+ import { OutputTruncationOptions, ShellExecutionCanceledResult, ShellExecutionToolResult } from '@theia/ai-terminal/lib/common/shell-execution-server';
7
+ export declare const GET_GIT_CHANGES_FUNCTION_ID = "getGitChanges";
8
+ /** Returned instead of a diff when the arguments do not identify a known repository. */
9
+ export interface GitChangesRepositoryError {
10
+ error: string;
11
+ availableRepositories: string[];
12
+ }
13
+ export declare namespace GitChangesRepositoryError {
14
+ function is(result: unknown): result is GitChangesRepositoryError;
15
+ }
16
+ /**
17
+ * Returns `git diff --cached` for one of the workspace's git repositories.
18
+ *
19
+ * `git diff --cached` is a plain, operator-free command that behaves the same on POSIX shells and
20
+ * Windows `cmd.exe`, and it renders staged additions of new files as complete addition diffs, so
21
+ * untracked files need no separate handling.
22
+ *
23
+ * The `repository` argument is matched against the repositories the SCM service actually knows
24
+ * about, and the command then runs in *that* repository's root. The argument never reaches the
25
+ * shell, so a repository name cannot inject a command. An unknown or ambiguous name is answered
26
+ * with the list of valid ones rather than a silent fallback, so the model cannot mistake one
27
+ * repository's diff for another's.
28
+ */
29
+ export declare class GetGitChangesTool extends PredefinedShellTool {
30
+ protected readonly scmService: ScmService;
31
+ readonly id = "getGitChanges";
32
+ readonly description: string;
33
+ protected readonly parameters: ToolRequestParameters;
34
+ /**
35
+ * A diff is only useful as a whole, so the `shellExecute` budget of 50 head plus 50 tail
36
+ * lines is far too tight. The head is favoured over the tail because the leading hunks
37
+ * describe the change; the backend caps stdout at 1MB regardless.
38
+ */
39
+ protected readonly truncation: OutputTruncationOptions;
40
+ getTool(): ToolRequest;
41
+ /**
42
+ * Runs the diff for the given repository and returns it. Used directly by the commit-message
43
+ * generator, which already knows its repository and must not go through tool confirmation.
44
+ *
45
+ * Returns an empty string when the execution was canceled.
46
+ *
47
+ * @throws if the git command fails, so a `fatal: ...` message is never mistaken for a diff.
48
+ */
49
+ getStagedChanges(repository: ScmRepository, cancellationToken?: CancellationToken): Promise<string>;
50
+ protected buildCommand(): string;
51
+ protected handle(argString: string, ctx?: ToolInvocationContext): Promise<ShellExecutionToolResult | ShellExecutionCanceledResult | GitChangesRepositoryError>;
52
+ protected resolveWorkspaceRoot(args: Record<string, unknown>): string;
53
+ protected requestedRepository(args: Record<string, unknown>): string | undefined;
54
+ /** The repository identified by the `repository` argument, or `undefined` if it is unknown or ambiguous. */
55
+ protected findRepository(args: Record<string, unknown>): ScmRepository | undefined;
56
+ /**
57
+ * Matches the `repository` argument against the known repositories by label or path. The
58
+ * folder name alone is only used when nothing matches by label or path. Falls back to the
59
+ * selected repository when the argument is absent. More than one result means the argument
60
+ * is ambiguous.
61
+ */
62
+ protected findRepositories(args: Record<string, unknown>): ScmRepository[];
63
+ protected availableRepositories(): string[];
64
+ /**
65
+ * Identifies a repository by the path of its root relative to the workspace, so that the label
66
+ * is usable as the `repository` argument of a follow-up call. Workspace roots sharing a folder
67
+ * name produce identical labels, which {@link findRepositories} reports as ambiguous.
68
+ */
69
+ protected repositoryLabel(repository: ScmRepository): string;
70
+ /** Path separators and case differ across platforms and between user phrasings. */
71
+ protected normalize(value: string): string;
72
+ }
73
+ //# sourceMappingURL=git-changes-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-changes-tool.d.ts","sourceRoot":"","sources":["../../src/browser/git-changes-tool.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EACH,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,sDAAsD,CAAC;AAE9D,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D,wFAAwF;AACxF,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,yBAAiB,yBAAyB,CAAC;IACvC,SAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,yBAAyB,CAEvE;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,mBAAmB;IAGtD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAE1C,QAAQ,CAAC,EAAE,mBAA+B;IAE1C,QAAQ,CAAC,WAAW,SAIsC;IAE1D,mBAA4B,UAAU,EAAE,qBAAqB,CAc3D;IAEF;;;;OAIG;IACH,mBAA4B,UAAU,EAAE,uBAAuB,CAI7D;IAEO,OAAO,IAAI,WAAW;IAiB/B;;;;;;;OAOG;IACG,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBzG,SAAS,CAAC,YAAY,IAAI,MAAM;cAIhB,MAAM,CAClB,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;IAqB/F,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAUrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS;IAIhF,4GAA4G;IAC5G,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,SAAS;IAKlF;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,EAAE;IAmB1E,SAAS,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAI3C;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM;IAY5D,mFAAmF;IACnF,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG7C"}
@@ -0,0 +1,217 @@
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
+ exports.GetGitChangesTool = exports.GitChangesRepositoryError = exports.GET_GIT_CHANGES_FUNCTION_ID = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const uri_1 = require("@theia/core/lib/common/uri");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const scm_service_1 = require("@theia/scm/lib/browser/scm-service");
23
+ const predefined_shell_tool_1 = require("@theia/ai-terminal/lib/browser/predefined-shell-tool");
24
+ const shell_execution_server_1 = require("@theia/ai-terminal/lib/common/shell-execution-server");
25
+ exports.GET_GIT_CHANGES_FUNCTION_ID = 'getGitChanges';
26
+ var GitChangesRepositoryError;
27
+ (function (GitChangesRepositoryError) {
28
+ function is(result) {
29
+ return !!result && typeof result === 'object' && 'availableRepositories' in result;
30
+ }
31
+ GitChangesRepositoryError.is = is;
32
+ })(GitChangesRepositoryError || (exports.GitChangesRepositoryError = GitChangesRepositoryError = {}));
33
+ /**
34
+ * Returns `git diff --cached` for one of the workspace's git repositories.
35
+ *
36
+ * `git diff --cached` is a plain, operator-free command that behaves the same on POSIX shells and
37
+ * Windows `cmd.exe`, and it renders staged additions of new files as complete addition diffs, so
38
+ * untracked files need no separate handling.
39
+ *
40
+ * The `repository` argument is matched against the repositories the SCM service actually knows
41
+ * about, and the command then runs in *that* repository's root. The argument never reaches the
42
+ * shell, so a repository name cannot inject a command. An unknown or ambiguous name is answered
43
+ * with the list of valid ones rather than a silent fallback, so the model cannot mistake one
44
+ * repository's diff for another's.
45
+ */
46
+ let GetGitChangesTool = class GetGitChangesTool extends predefined_shell_tool_1.PredefinedShellTool {
47
+ constructor() {
48
+ super(...arguments);
49
+ this.id = exports.GET_GIT_CHANGES_FUNCTION_ID;
50
+ this.description = 'Returns the staged changes (`git diff --cached`) of a git repository in the workspace, ' +
51
+ 'including the full content of newly added files. Unstaged and untracked files are not ' +
52
+ 'included. Returns an empty diff when nothing is staged, and an error listing the known ' +
53
+ 'repositories when the requested one does not exist.';
54
+ this.parameters = {
55
+ type: 'object',
56
+ properties: {
57
+ repository: {
58
+ type: 'string',
59
+ description: 'Which repository to read. Use the path of the repository root relative to the ' +
60
+ 'workspace (e.g. "backend" or "backend/tools"), or its absolute path. Omit it to ' +
61
+ 'use the repository currently selected in the Source Control view; in a ' +
62
+ 'single-repository workspace that is always the right one, but in a workspace ' +
63
+ 'with several repositories pass the name explicitly so the diff is not taken ' +
64
+ 'from whichever repository the user happens to have selected.'
65
+ }
66
+ }
67
+ };
68
+ /**
69
+ * A diff is only useful as a whole, so the `shellExecute` budget of 50 head plus 50 tail
70
+ * lines is far too tight. The head is favoured over the tail because the leading hunks
71
+ * describe the change; the backend caps stdout at 1MB regardless.
72
+ */
73
+ this.truncation = {
74
+ headLines: 2000,
75
+ tailLines: 500,
76
+ maxLineLength: 2000
77
+ };
78
+ }
79
+ getTool() {
80
+ return {
81
+ ...super.getTool(),
82
+ // The base class runs the command unconditionally; an unknown repository has to be
83
+ // answered before that, so the handler is wrapped rather than `execute` overridden.
84
+ handler: (argString, ctx) => this.handle(argString, ctx),
85
+ getArgumentsShortLabel: (args) => {
86
+ try {
87
+ const repository = JSON.parse(args)?.repository;
88
+ return typeof repository === 'string' && repository ? { label: repository, hasMore: false } : undefined;
89
+ }
90
+ catch {
91
+ return undefined;
92
+ }
93
+ }
94
+ };
95
+ }
96
+ /**
97
+ * Runs the diff for the given repository and returns it. Used directly by the commit-message
98
+ * generator, which already knows its repository and must not go through tool confirmation.
99
+ *
100
+ * Returns an empty string when the execution was canceled.
101
+ *
102
+ * @throws if the git command fails, so a `fatal: ...` message is never mistaken for a diff.
103
+ */
104
+ async getStagedChanges(repository, cancellationToken) {
105
+ const result = await this.runShellCommand({
106
+ command: this.buildCommand(),
107
+ cwd: new uri_1.default(repository.provider.rootUri).path.fsPath(),
108
+ timeout: this.timeout,
109
+ ctx: { cancellationToken },
110
+ truncation: this.truncation
111
+ });
112
+ if (shell_execution_server_1.ShellExecutionCanceledResult.is(result)) {
113
+ return '';
114
+ }
115
+ if (!result.success) {
116
+ const detail = result.error || result.output || `exit code ${result.exitCode}`;
117
+ throw new Error(`Failed to read the staged changes: ${detail}`);
118
+ }
119
+ return result.output;
120
+ }
121
+ buildCommand() {
122
+ return 'git diff --cached --no-color';
123
+ }
124
+ async handle(argString, ctx) {
125
+ const args = argString ? JSON.parse(argString) : {};
126
+ const requested = this.requestedRepository(args);
127
+ const candidates = this.findRepositories(args);
128
+ if (candidates.length > 1) {
129
+ return {
130
+ error: `Repository '${requested}' is ambiguous. Pass the relative path shown in availableRepositories or the absolute path of the repository root.`,
131
+ availableRepositories: this.availableRepositories()
132
+ };
133
+ }
134
+ if (candidates.length === 0) {
135
+ return {
136
+ error: requested
137
+ ? `Unknown repository '${requested}'.`
138
+ : 'No repository is selected in the Source Control view. Pass the repository argument.',
139
+ availableRepositories: this.availableRepositories()
140
+ };
141
+ }
142
+ return this.execute(argString, ctx);
143
+ }
144
+ resolveWorkspaceRoot(args) {
145
+ const repository = this.findRepository(args);
146
+ if (!repository) {
147
+ // Guarded by `handle`; failing loudly here keeps an unresolved repository from
148
+ // silently running the diff in the backend process' own working directory.
149
+ throw new Error(`Unknown repository '${this.requestedRepository(args) ?? ''}'.`);
150
+ }
151
+ return new uri_1.default(repository.provider.rootUri).path.fsPath();
152
+ }
153
+ requestedRepository(args) {
154
+ return typeof args.repository === 'string' && args.repository.trim() ? args.repository.trim() : undefined;
155
+ }
156
+ /** The repository identified by the `repository` argument, or `undefined` if it is unknown or ambiguous. */
157
+ findRepository(args) {
158
+ const candidates = this.findRepositories(args);
159
+ return candidates.length === 1 ? candidates[0] : undefined;
160
+ }
161
+ /**
162
+ * Matches the `repository` argument against the known repositories by label or path. The
163
+ * folder name alone is only used when nothing matches by label or path. Falls back to the
164
+ * selected repository when the argument is absent. More than one result means the argument
165
+ * is ambiguous.
166
+ */
167
+ findRepositories(args) {
168
+ const requested = this.requestedRepository(args);
169
+ if (!requested) {
170
+ return this.scmService.selectedRepository ? [this.scmService.selectedRepository] : [];
171
+ }
172
+ const normalized = this.normalize(requested);
173
+ const repositories = this.scmService.repositories;
174
+ const byLabelOrPath = repositories.filter(repository => {
175
+ const root = new uri_1.default(repository.provider.rootUri);
176
+ return this.normalize(this.repositoryLabel(repository)) === normalized
177
+ || this.normalize(root.path.fsPath()) === normalized
178
+ || this.normalize(root.toString()) === normalized;
179
+ });
180
+ if (byLabelOrPath.length > 0) {
181
+ return byLabelOrPath;
182
+ }
183
+ return repositories.filter(repository => this.normalize(new uri_1.default(repository.provider.rootUri).path.base) === normalized);
184
+ }
185
+ availableRepositories() {
186
+ return this.scmService.repositories.map(repository => this.repositoryLabel(repository));
187
+ }
188
+ /**
189
+ * Identifies a repository by the path of its root relative to the workspace, so that the label
190
+ * is usable as the `repository` argument of a follow-up call. Workspace roots sharing a folder
191
+ * name produce identical labels, which {@link findRepositories} reports as ambiguous.
192
+ */
193
+ repositoryLabel(repository) {
194
+ const root = new uri_1.default(repository.provider.rootUri);
195
+ for (const workspaceRoot of this.workspaceService.tryGetRoots()) {
196
+ if (!workspaceRoot.resource.isEqualOrParent(root)) {
197
+ continue;
198
+ }
199
+ const relative = workspaceRoot.resource.relative(root)?.toString();
200
+ return relative ? `${workspaceRoot.resource.path.base}/${relative}` : workspaceRoot.resource.path.base;
201
+ }
202
+ return root.path.base;
203
+ }
204
+ /** Path separators and case differ across platforms and between user phrasings. */
205
+ normalize(value) {
206
+ return value.replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
207
+ }
208
+ };
209
+ exports.GetGitChangesTool = GetGitChangesTool;
210
+ tslib_1.__decorate([
211
+ (0, inversify_1.inject)(scm_service_1.ScmService),
212
+ tslib_1.__metadata("design:type", scm_service_1.ScmService)
213
+ ], GetGitChangesTool.prototype, "scmService", void 0);
214
+ exports.GetGitChangesTool = GetGitChangesTool = tslib_1.__decorate([
215
+ (0, inversify_1.injectable)()
216
+ ], GetGitChangesTool);
217
+ //# sourceMappingURL=git-changes-tool.js.map