@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.
- package/lib/browser/ai-allow-all-mode-chat-banner.js +1 -1
- package/lib/browser/ai-allow-all-mode-chat-banner.js.map +1 -1
- package/lib/browser/ai-aware-scm-commit-widget.d.ts +27 -0
- package/lib/browser/ai-aware-scm-commit-widget.d.ts.map +1 -0
- package/lib/browser/ai-aware-scm-commit-widget.js +142 -0
- package/lib/browser/ai-aware-scm-commit-widget.js.map +1 -0
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts +10 -4
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.js +12 -7
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.js.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js +14 -14
- package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts +6 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.js +9 -0
- package/lib/browser/ai-configuration/ai-configuration-tree-widget.js.map +1 -1
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts.map +1 -1
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js +2 -1
- package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js.map +1 -1
- package/lib/browser/ai-configuration/categories/agent-chips.js +1 -1
- package/lib/browser/ai-configuration/categories/agent-chips.js.map +1 -1
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts +8 -0
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts.map +1 -1
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js +27 -8
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js.map +1 -1
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js +38 -2
- package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js.map +1 -1
- package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts +13 -2
- package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts.map +1 -1
- package/lib/browser/ai-configuration/categories/models-configuration-category.js +41 -2
- package/lib/browser/ai-configuration/categories/models-configuration-category.js.map +1 -1
- package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js +32 -2
- package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js.map +1 -1
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.d.ts +26 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js +212 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js.map +1 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.d.ts +2 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.d.ts.map +1 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js +423 -0
- package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
- package/lib/browser/ai-configuration/language-model-renderer.js +10 -3
- package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
- package/lib/browser/ai-getting-started-commands.d.ts +10 -0
- package/lib/browser/ai-getting-started-commands.d.ts.map +1 -0
- package/lib/browser/ai-getting-started-commands.js +34 -0
- package/lib/browser/ai-getting-started-commands.js.map +1 -0
- package/lib/browser/ai-getting-started-contribution.d.ts +20 -0
- package/lib/browser/ai-getting-started-contribution.d.ts.map +1 -0
- package/lib/browser/ai-getting-started-contribution.js +70 -0
- package/lib/browser/ai-getting-started-contribution.js.map +1 -0
- package/lib/browser/ai-getting-started-walkthrough.d.ts +41 -0
- package/lib/browser/ai-getting-started-walkthrough.d.ts.map +1 -0
- package/lib/browser/ai-getting-started-walkthrough.js +225 -0
- package/lib/browser/ai-getting-started-walkthrough.js.map +1 -0
- package/lib/browser/ai-getting-started-walkthrough.spec.d.ts +2 -0
- package/lib/browser/ai-getting-started-walkthrough.spec.d.ts.map +1 -0
- package/lib/browser/ai-getting-started-walkthrough.spec.js +124 -0
- package/lib/browser/ai-getting-started-walkthrough.spec.js.map +1 -0
- package/lib/browser/ai-walkthrough-context-keys.d.ts +55 -0
- package/lib/browser/ai-walkthrough-context-keys.d.ts.map +1 -0
- package/lib/browser/ai-walkthrough-context-keys.js +145 -0
- package/lib/browser/ai-walkthrough-context-keys.js.map +1 -0
- package/lib/browser/ai-walkthrough-context-keys.spec.d.ts +2 -0
- package/lib/browser/ai-walkthrough-context-keys.spec.d.ts.map +1 -0
- package/lib/browser/ai-walkthrough-context-keys.spec.js +166 -0
- package/lib/browser/ai-walkthrough-context-keys.spec.js.map +1 -0
- package/lib/browser/chat-session-item.js +2 -2
- package/lib/browser/chat-session-item.js.map +1 -1
- package/lib/browser/commit-message-agent.d.ts +31 -0
- package/lib/browser/commit-message-agent.d.ts.map +1 -0
- package/lib/browser/commit-message-agent.js +99 -0
- package/lib/browser/commit-message-agent.js.map +1 -0
- package/lib/browser/commit-message-agent.spec.d.ts +2 -0
- package/lib/browser/commit-message-agent.spec.d.ts.map +1 -0
- package/lib/browser/commit-message-agent.spec.js +82 -0
- package/lib/browser/commit-message-agent.spec.js.map +1 -0
- package/lib/browser/commit-message-command-contribution.d.ts +15 -0
- package/lib/browser/commit-message-command-contribution.d.ts.map +1 -0
- package/lib/browser/commit-message-command-contribution.js +73 -0
- package/lib/browser/commit-message-command-contribution.js.map +1 -0
- package/lib/browser/commit-message-commands.d.ts +5 -0
- package/lib/browser/commit-message-commands.d.ts.map +1 -0
- package/lib/browser/commit-message-commands.js +28 -0
- package/lib/browser/commit-message-commands.js.map +1 -0
- package/lib/browser/commit-message-prompt-template.d.ts +11 -0
- package/lib/browser/commit-message-prompt-template.d.ts.map +1 -0
- package/lib/browser/commit-message-prompt-template.js +63 -0
- package/lib/browser/commit-message-prompt-template.js.map +1 -0
- package/lib/browser/commit-message-runner.d.ts +41 -0
- package/lib/browser/commit-message-runner.d.ts.map +1 -0
- package/lib/browser/commit-message-runner.js +143 -0
- package/lib/browser/commit-message-runner.js.map +1 -0
- package/lib/browser/commit-message-runner.spec.d.ts +2 -0
- package/lib/browser/commit-message-runner.spec.d.ts.map +1 -0
- package/lib/browser/commit-message-runner.spec.js +206 -0
- package/lib/browser/commit-message-runner.spec.js.map +1 -0
- package/lib/browser/frontend-module.d.ts.map +1 -1
- package/lib/browser/frontend-module.js +25 -0
- package/lib/browser/frontend-module.js.map +1 -1
- package/lib/browser/git-changes-tool.d.ts +73 -0
- package/lib/browser/git-changes-tool.d.ts.map +1 -0
- package/lib/browser/git-changes-tool.js +217 -0
- package/lib/browser/git-changes-tool.js.map +1 -0
- package/lib/browser/git-changes-tool.spec.d.ts +2 -0
- package/lib/browser/git-changes-tool.spec.d.ts.map +1 -0
- package/lib/browser/git-changes-tool.spec.js +167 -0
- package/lib/browser/git-changes-tool.spec.js.map +1 -0
- package/lib/browser/ide-chat-welcome-message-provider.d.ts +26 -28
- package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
- package/lib/browser/ide-chat-welcome-message-provider.js +61 -151
- package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
- package/lib/browser/review/pr-review-capability-contribution.js +1 -1
- package/lib/browser/review/pr-review-capability-contribution.js.map +1 -1
- package/lib/browser/user-interaction-tool-renderer.d.ts +6 -0
- package/lib/browser/user-interaction-tool-renderer.d.ts.map +1 -1
- package/lib/browser/user-interaction-tool-renderer.js +36 -7
- package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
- package/lib/browser/user-interaction-tool.d.ts +23 -1
- package/lib/browser/user-interaction-tool.d.ts.map +1 -1
- package/lib/browser/user-interaction-tool.js +56 -17
- package/lib/browser/user-interaction-tool.js.map +1 -1
- package/lib/browser/user-interaction-tool.spec.js +151 -2
- package/lib/browser/user-interaction-tool.spec.js.map +1 -1
- package/lib/common/command-prompt-template.js +1 -1
- package/lib/common/user-interaction-tool.d.ts +19 -1
- package/lib/common/user-interaction-tool.d.ts.map +1 -1
- package/lib/common/user-interaction-tool.js +100 -29
- package/lib/common/user-interaction-tool.js.map +1 -1
- package/lib/common/user-interaction-tool.spec.js +215 -174
- package/lib/common/user-interaction-tool.spec.js.map +1 -1
- package/package.json +26 -25
- package/src/browser/ai-allow-all-mode-chat-banner.tsx +2 -2
- package/src/browser/ai-aware-scm-commit-widget.tsx +153 -0
- package/src/browser/ai-configuration/ai-configuration-detail-widget.spec.ts +14 -14
- package/src/browser/ai-configuration/ai-configuration-detail-widget.tsx +12 -7
- package/src/browser/ai-configuration/ai-configuration-tree-widget.tsx +8 -0
- package/src/browser/ai-configuration/categories/agent-capabilities-settings.tsx +7 -8
- package/src/browser/ai-configuration/categories/agent-chips.tsx +1 -1
- package/src/browser/ai-configuration/categories/model-aliases-configuration-category.spec.ts +40 -2
- package/src/browser/ai-configuration/categories/model-aliases-configuration-category.tsx +31 -10
- package/src/browser/ai-configuration/categories/models-configuration-category.spec.ts +47 -2
- package/src/browser/ai-configuration/categories/models-configuration-category.tsx +52 -5
- package/src/browser/ai-configuration/categories/provider-model-discovery-section.spec.tsx +451 -0
- package/src/browser/ai-configuration/categories/provider-model-discovery-section.tsx +341 -0
- package/src/browser/ai-configuration/language-model-renderer.tsx +11 -3
- package/src/browser/ai-getting-started-commands.ts +33 -0
- package/src/browser/ai-getting-started-contribution.ts +64 -0
- package/src/browser/ai-getting-started-walkthrough.spec.ts +146 -0
- package/src/browser/ai-getting-started-walkthrough.ts +249 -0
- package/src/browser/ai-walkthrough-context-keys.spec.ts +209 -0
- package/src/browser/ai-walkthrough-context-keys.ts +147 -0
- package/src/browser/chat-session-item.tsx +2 -2
- package/src/browser/commit-message-agent.spec.ts +97 -0
- package/src/browser/commit-message-agent.ts +113 -0
- package/src/browser/commit-message-command-contribution.ts +67 -0
- package/src/browser/commit-message-commands.ts +25 -0
- package/src/browser/commit-message-prompt-template.ts +65 -0
- package/src/browser/commit-message-runner.spec.ts +266 -0
- package/src/browser/commit-message-runner.ts +163 -0
- package/src/browser/frontend-module.ts +27 -0
- package/src/browser/git-changes-tool.spec.ts +200 -0
- package/src/browser/git-changes-tool.ts +239 -0
- package/src/browser/ide-chat-welcome-message-provider.tsx +93 -230
- package/src/browser/review/pr-review-capability-contribution.ts +1 -1
- package/src/browser/style/commit-message-overlay.css +64 -0
- package/src/browser/style/index.css +4 -42
- package/src/browser/user-interaction-tool-renderer.tsx +38 -8
- package/src/browser/user-interaction-tool.spec.ts +201 -2
- package/src/browser/user-interaction-tool.ts +69 -18
- package/src/common/command-prompt-template.ts +1 -1
- package/src/common/user-interaction-tool.spec.ts +217 -161
- 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 @@
|
|
|
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":"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"}
|
|
@@ -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 {
|
|
5
|
+
import { FrontendLanguageModelRegistry } from '@theia/ai-core/lib/common';
|
|
6
6
|
import { PreferenceService } from '@theia/core/lib/common';
|
|
7
|
-
import {
|
|
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
|
|
23
|
+
protected readonly walkthroughService: WalkthroughService;
|
|
22
24
|
protected readonly toDispose: DisposableCollection;
|
|
23
25
|
protected _hasReadyModels: boolean;
|
|
24
26
|
protected _modelRequirementBypassed: boolean;
|
|
25
|
-
protected
|
|
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
|
|
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
|
|
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
|
-
|
|
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":"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,
|
|
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"}
|