@theia/ai-ide 1.77.0-next.57 → 1.77.0-next.63

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 (42) hide show
  1. package/lib/browser/context-file-validation-service-impl.spec.js +2 -1
  2. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -1
  3. package/lib/browser/file-changeset-functions.spec.js +3 -2
  4. package/lib/browser/file-changeset-functions.spec.js.map +1 -1
  5. package/lib/browser/git-changes-tool.d.ts +3 -3
  6. package/lib/browser/git-changes-tool.d.ts.map +1 -1
  7. package/lib/browser/git-changes-tool.js +6 -10
  8. package/lib/browser/git-changes-tool.js.map +1 -1
  9. package/lib/browser/git-changes-tool.spec.js +13 -1
  10. package/lib/browser/git-changes-tool.spec.js.map +1 -1
  11. package/lib/browser/multi-root-paths.spec.d.ts +2 -0
  12. package/lib/browser/multi-root-paths.spec.d.ts.map +1 -0
  13. package/lib/browser/multi-root-paths.spec.js +293 -0
  14. package/lib/browser/multi-root-paths.spec.js.map +1 -0
  15. package/lib/browser/user-interaction-tool.d.ts +12 -1
  16. package/lib/browser/user-interaction-tool.d.ts.map +1 -1
  17. package/lib/browser/user-interaction-tool.js +34 -8
  18. package/lib/browser/user-interaction-tool.js.map +1 -1
  19. package/lib/browser/user-interaction-tool.spec.js +13 -1
  20. package/lib/browser/user-interaction-tool.spec.js.map +1 -1
  21. package/lib/browser/workspace-functions.d.ts +20 -17
  22. package/lib/browser/workspace-functions.d.ts.map +1 -1
  23. package/lib/browser/workspace-functions.js +76 -114
  24. package/lib/browser/workspace-functions.js.map +1 -1
  25. package/lib/browser/workspace-functions.spec.js +54 -60
  26. package/lib/browser/workspace-functions.spec.js.map +1 -1
  27. package/lib/browser/workspace-launch-provider.spec.js +3 -2
  28. package/lib/browser/workspace-launch-provider.spec.js.map +1 -1
  29. package/lib/browser/workspace-task-provider.spec.js +4 -3
  30. package/lib/browser/workspace-task-provider.spec.js.map +1 -1
  31. package/package.json +25 -25
  32. package/src/browser/context-file-validation-service-impl.spec.ts +2 -1
  33. package/src/browser/file-changeset-functions.spec.ts +3 -2
  34. package/src/browser/git-changes-tool.spec.ts +16 -1
  35. package/src/browser/git-changes-tool.ts +6 -10
  36. package/src/browser/multi-root-paths.spec.ts +340 -0
  37. package/src/browser/user-interaction-tool.spec.ts +18 -1
  38. package/src/browser/user-interaction-tool.ts +34 -9
  39. package/src/browser/workspace-functions.spec.ts +54 -60
  40. package/src/browser/workspace-functions.ts +80 -125
  41. package/src/browser/workspace-launch-provider.spec.ts +3 -2
  42. package/src/browser/workspace-task-provider.spec.ts +4 -3
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
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 core_1 = require("@theia/core");
24
+ const uri_1 = require("@theia/core/lib/common/uri");
25
+ const mock_logger_1 = require("@theia/core/lib/common/test/mock-logger");
26
+ const env_variables_1 = require("@theia/core/lib/common/env-variables");
27
+ const inversify_1 = require("@theia/core/shared/inversify");
28
+ const ai_core_1 = require("@theia/ai-core");
29
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
30
+ const file_search_service_1 = require("@theia/file-search/lib/common/file-search-service");
31
+ const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
32
+ const search_in_workspace_service_1 = require("@theia/search-in-workspace/lib/browser/search-in-workspace-service");
33
+ const shell_execution_server_1 = require("@theia/ai-terminal/lib/common/shell-execution-server");
34
+ const shell_execution_tool_1 = require("@theia/ai-terminal/lib/browser/shell-execution-tool");
35
+ const shell_command_permission_service_1 = require("@theia/ai-terminal/lib/browser/shell-command-permission-service");
36
+ const minimatch_1 = require("minimatch");
37
+ const workspace_functions_1 = require("./workspace-functions");
38
+ const workspace_search_provider_1 = require("./workspace-search-provider");
39
+ disableJSDOM();
40
+ /**
41
+ * Regression tests for https://github.com/eclipse-theia/theia/issues/17612: in a multi-root workspace,
42
+ * paths that one tool or variable emits must be accepted by the others and refer to the same file.
43
+ *
44
+ * The workspace roots, in workspace order:
45
+ * - `/ws/theia` and `/ws/other`: plain roots;
46
+ * - `/y/app` and `/x/app`: roots sharing a basename, listed so that workspace order differs from URI sort order;
47
+ * - `/ws/theia/packages/nested`: a root nested in `/ws/theia`.
48
+ *
49
+ * The `/ws/theia/other` folder is named like the `/ws/other` root.
50
+ *
51
+ * Where a fix may change how paths are displayed (e.g. `x/app/...` for a duplicate basename), the tests check
52
+ * that the output resolves back to the right file rather than asserting a particular string.
53
+ */
54
+ describe('Multi-root path consistency (#17612)', () => {
55
+ const ROOTS = [
56
+ 'file:///ws/theia',
57
+ 'file:///ws/other',
58
+ 'file:///y/app',
59
+ 'file:///x/app',
60
+ 'file:///ws/theia/packages/nested'
61
+ ];
62
+ /** The files that exist, as found by a search in each root. */
63
+ const FILES = [
64
+ 'file:///ws/theia/packages/core/a.ts',
65
+ 'file:///ws/theia/other/c.md',
66
+ 'file:///ws/theia/packages/nested/n.ts',
67
+ 'file:///ws/other/b.ts',
68
+ 'file:///x/app/shared.ts',
69
+ 'file:///y/app/shared.ts',
70
+ 'file:///y/app/only-here.ts'
71
+ ];
72
+ let container;
73
+ let workspaceService;
74
+ let workspaceScope;
75
+ let originalIsWindows;
76
+ before(() => {
77
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
78
+ });
79
+ after(() => {
80
+ disableJSDOM();
81
+ });
82
+ beforeEach(() => {
83
+ // Paths are rendered with `Path.fsPath()`, which branches on the backend OS.
84
+ originalIsWindows = core_1.OS.backend.isWindows;
85
+ core_1.OS.backend.isWindows = false;
86
+ });
87
+ afterEach(() => {
88
+ core_1.OS.backend.isWindows = originalIsWindows;
89
+ });
90
+ /** Mimics ripgrep: the files under the requested root that match the include and not the exclude globs, relative to that root. */
91
+ const makeFileSearchService = (files = FILES) => ({
92
+ find: async (_searchPattern, options) => {
93
+ const rootUri = new uri_1.URI(options.rootUris[0]);
94
+ const includes = (options.includePatterns ?? []).map(pattern => new minimatch_1.Minimatch(pattern, { dot: true }));
95
+ const excludes = (options.excludePatterns ?? []).map(pattern => new minimatch_1.Minimatch(pattern, { dot: true }));
96
+ return files.filter(file => {
97
+ const relativePath = rootUri.relative(new uri_1.URI(file))?.toString();
98
+ return relativePath !== undefined
99
+ && (includes.length === 0 || includes.some(matcher => matcher.match(relativePath)))
100
+ && !excludes.some(matcher => matcher.match(relativePath));
101
+ }).slice(0, options.limit);
102
+ }
103
+ });
104
+ /** Reports a match in every file under the searched roots. */
105
+ const makeSearchInWorkspaceService = (searchedRoots) => ({
106
+ searchWithCallback: async (_query, rootUris, callbacks) => {
107
+ searchedRoots.push(rootUris);
108
+ const searchId = 1;
109
+ setTimeout(() => {
110
+ for (const file of FILES) {
111
+ if (rootUris.some(root => new uri_1.URI(root).isEqualOrParent(new uri_1.URI(file)))) {
112
+ const result = { root: '', fileUri: file, matches: [{ line: 1, character: 1, length: 1, lineText: 'match' }] };
113
+ callbacks.onResult(searchId, result);
114
+ }
115
+ }
116
+ callbacks.onDone(searchId);
117
+ });
118
+ return searchId;
119
+ },
120
+ cancel: () => { }
121
+ });
122
+ beforeEach(() => {
123
+ container = new inversify_1.Container();
124
+ // A real `WorkspaceService` prototype, so that `getRootPrefixedPath` (used by the chat variables) is the production code.
125
+ workspaceService = Object.create(workspace_service_1.WorkspaceService.prototype, {
126
+ tryGetRoots: { value: () => ROOTS.map(root => ({ resource: new uri_1.URI(root), isDirectory: true })) },
127
+ onWorkspaceChanged: { value: () => ({ dispose: () => { } }) }
128
+ });
129
+ const fileService = {
130
+ exists: async (uri) => FILES.includes(uri.toString()) || ROOTS.includes(uri.toString()),
131
+ resolve: async (uri) => ({ isDirectory: !FILES.includes(uri.toString()), children: [], resource: uri })
132
+ };
133
+ const aiConfigurationService = {
134
+ get: (_name, fallback) => fallback,
135
+ ready: Promise.resolve(),
136
+ onDidChangeTrust: () => ({ dispose: () => { } })
137
+ };
138
+ const envVariablesServer = {
139
+ getHomeDirUri: async () => 'file:///home/test'
140
+ };
141
+ container.bind(core_1.ILogger).to(mock_logger_1.MockLogger);
142
+ container.bind(workspace_service_1.WorkspaceService).toConstantValue(workspaceService);
143
+ container.bind(file_service_1.FileService).toConstantValue(fileService);
144
+ container.bind(core_1.PreferenceService).toConstantValue({ get: (_path, defaultValue) => defaultValue });
145
+ container.bind(ai_core_1.AiConfigurationService).toConstantValue(aiConfigurationService);
146
+ container.bind(env_variables_1.EnvVariablesServer).toConstantValue(envVariablesServer);
147
+ container.bind(file_search_service_1.FileSearchService).toConstantValue(makeFileSearchService());
148
+ container.bind(workspace_functions_1.WorkspaceFunctionScope).toSelf().inSingletonScope();
149
+ container.bind(workspace_functions_1.FindFilesByPattern).toSelf();
150
+ container.bind(workspace_functions_1.GetWorkspaceFileList).toSelf();
151
+ workspaceScope = container.get(workspace_functions_1.WorkspaceFunctionScope);
152
+ });
153
+ const resolve = async (path) => (await workspaceScope.resolveAccessiblePath(path)).toString();
154
+ const findFiles = async (args) => JSON.parse(await container.get(workspace_functions_1.FindFilesByPattern).getTool().handler(JSON.stringify(args), undefined));
155
+ describe('findFilesByPattern', () => {
156
+ it('accepts a root-prefixed glob, as returned in its own results (B1)', async () => {
157
+ const result = await findFiles({ pattern: 'theia/packages/core/**/*.ts' });
158
+ (0, chai_1.expect)(result.files).to.have.length(1);
159
+ (0, chai_1.expect)(await resolve(result.files[0])).to.equal('file:///ws/theia/packages/core/a.ts');
160
+ });
161
+ it('finds a file that exists only in the second root of a duplicate basename (A1)', async () => {
162
+ const result = await findFiles({ pattern: '**/only-here.ts' });
163
+ (0, chai_1.expect)(result.files).to.have.length(1);
164
+ (0, chai_1.expect)(await resolve(result.files[0])).to.equal('file:///y/app/only-here.ts');
165
+ });
166
+ it('returns paths that resolve to distinct files for roots sharing a basename (A1, A2)', async () => {
167
+ const result = await findFiles({ pattern: '**/shared.ts' });
168
+ const resolved = await Promise.all((result.files ?? []).map(resolve));
169
+ (0, chai_1.expect)(resolved).to.have.members(['file:///x/app/shared.ts', 'file:///y/app/shared.ts']);
170
+ });
171
+ it('returns paths that resolve back to the file when searchRoot is in the workspace (B2)', async () => {
172
+ const result = await findFiles({ pattern: '**/*.ts', searchRoot: 'theia/packages/core' });
173
+ (0, chai_1.expect)(result.error).to.be.undefined;
174
+ (0, chai_1.expect)(result.files).to.have.length(1);
175
+ (0, chai_1.expect)(await resolve(result.files[0])).to.equal('file:///ws/theia/packages/core/a.ts');
176
+ });
177
+ it('applies a root-prefixed exclude to that root only', async () => {
178
+ const result = await findFiles({ pattern: '**/shared.ts', exclude: ['x/app/**'] });
179
+ const resolved = await Promise.all((result.files ?? []).map(resolve));
180
+ (0, chai_1.expect)(resolved).to.deep.equal(['file:///y/app/shared.ts']);
181
+ });
182
+ it('includes files of a nested root when searching the outer root only', async () => {
183
+ const result = await findFiles({ pattern: 'theia/packages/**/*.ts' });
184
+ const resolved = await Promise.all((result.files ?? []).map(resolve));
185
+ (0, chai_1.expect)(resolved).to.have.members(['file:///ws/theia/packages/core/a.ts', 'file:///ws/theia/packages/nested/n.ts']);
186
+ });
187
+ it('searches a folder named like a root in every root', async () => {
188
+ const result = await findFiles({ pattern: 'other/**/*.md' });
189
+ const resolved = await Promise.all((result.files ?? []).map(resolve));
190
+ (0, chai_1.expect)(resolved).to.deep.equal(['file:///ws/theia/other/c.md']);
191
+ });
192
+ it('excludes a folder named like a root in every root', async () => {
193
+ const result = await findFiles({ pattern: '**/*.md', exclude: ['other/**'] });
194
+ (0, chai_1.expect)(result.files).to.deep.equal([]);
195
+ });
196
+ it('keeps the escapes of a root-prefixed glob', async () => {
197
+ const result = await findFiles({ pattern: 'theia/packages/core/\\*.ts' });
198
+ (0, chai_1.expect)(result.files).to.deep.equal([]);
199
+ });
200
+ it('reports a file in a nested root only once (C1)', async () => {
201
+ const result = await findFiles({ pattern: '**/n.ts' });
202
+ (0, chai_1.expect)(result.files).to.have.length(1);
203
+ (0, chai_1.expect)(await resolve(result.files[0])).to.equal('file:///ws/theia/packages/nested/n.ts');
204
+ });
205
+ it('reports a file in a nested root that only the glob relative to the outer root matches', async () => {
206
+ const result = await findFiles({ pattern: 'packages/*/n.ts' });
207
+ const resolved = await Promise.all((result.files ?? []).map(resolve));
208
+ (0, chai_1.expect)(resolved).to.deep.equal(['file:///ws/theia/packages/nested/n.ts']);
209
+ });
210
+ it('reports truncated results when files of a nested root fill the limit of the outer root', async () => {
211
+ const nestedFiles = Array.from({ length: 250 }, (_, i) => `file:///ws/theia/packages/nested/f${i}.ts`);
212
+ container.rebind(file_search_service_1.FileSearchService).toConstantValue(makeFileSearchService([...nestedFiles, ...FILES]));
213
+ const result = await findFiles({ pattern: 'packages/**/*.ts' });
214
+ (0, chai_1.expect)(result.files).to.have.length(200);
215
+ (0, chai_1.expect)(result.truncated).to.be.true;
216
+ });
217
+ it('reports the files of a nested root once without truncating the results', async () => {
218
+ const nestedFiles = Array.from({ length: 150 }, (_, i) => `file:///ws/theia/packages/nested/f${i}.ts`);
219
+ container.rebind(file_search_service_1.FileSearchService).toConstantValue(makeFileSearchService([...nestedFiles, ...FILES]));
220
+ const result = await findFiles({ pattern: '**/*.ts' });
221
+ (0, chai_1.expect)(result.files).to.have.length(nestedFiles.length + FILES.filter(file => file.endsWith('.ts')).length);
222
+ (0, chai_1.expect)(new Set(result.files).size).to.equal(result.files.length);
223
+ (0, chai_1.expect)(result.truncated).to.be.undefined;
224
+ });
225
+ });
226
+ describe('getWorkspaceFileList', () => {
227
+ it('lists every workspace root at the top level (A1)', async () => {
228
+ const tool = container.get(workspace_functions_1.GetWorkspaceFileList).getTool();
229
+ const result = JSON.parse(await tool.handler(JSON.stringify({ path: '' }), undefined));
230
+ (0, chai_1.expect)(Object.keys(result)).to.have.length(ROOTS.length);
231
+ const resolved = await Promise.all(Object.keys(result).map(resolve));
232
+ (0, chai_1.expect)(resolved).to.have.members(ROOTS);
233
+ });
234
+ });
235
+ describe('searchInWorkspace', () => {
236
+ let searchedRoots;
237
+ beforeEach(() => {
238
+ searchedRoots = [];
239
+ container.bind(search_in_workspace_service_1.SearchInWorkspaceService).toConstantValue(makeSearchInWorkspaceService(searchedRoots));
240
+ container.bind(workspace_search_provider_1.WorkspaceSearchProvider).toSelf();
241
+ });
242
+ it('searches every workspace root (A1)', async () => {
243
+ const tool = container.get(workspace_search_provider_1.WorkspaceSearchProvider).getTool();
244
+ const result = JSON.parse(await tool.handler(JSON.stringify({ query: 'match', useRegExp: false }), undefined));
245
+ (0, chai_1.expect)(searchedRoots.flat()).to.include('file:///y/app');
246
+ const resolved = await Promise.all(result.map(entry => resolve(entry.file)));
247
+ (0, chai_1.expect)(resolved).to.include('file:///y/app/only-here.ts');
248
+ });
249
+ });
250
+ describe('chat variable paths', () => {
251
+ it('resolve to the same file in the workspace tools, for every root (A2)', async () => {
252
+ // `getRootPrefixedPath` renders the paths of `#file`, `#openEditors`, `#changeSetSummary` and `#editorContext`.
253
+ for (const file of FILES) {
254
+ const displayed = workspaceService.getRootPrefixedPath(new uri_1.URI(file));
255
+ (0, chai_1.expect)(await resolve(displayed), `'${displayed}' for ${file}`).to.equal(file);
256
+ }
257
+ });
258
+ });
259
+ describe('shellExecute', () => {
260
+ let executed;
261
+ beforeEach(() => {
262
+ executed = [];
263
+ const shellServer = {
264
+ execute: async (request) => {
265
+ executed.push(request);
266
+ return { success: true, exitCode: 0, stdout: '', stderr: '', duration: 0, resolvedCwd: request.cwd };
267
+ },
268
+ cancel: async () => true
269
+ };
270
+ container.bind(shell_execution_server_1.ShellExecutionServer).toConstantValue(shellServer);
271
+ container.bind(shell_command_permission_service_1.ShellCommandPermissionService).toConstantValue({});
272
+ container.bind(shell_execution_tool_1.ShellExecutionTool).toSelf();
273
+ });
274
+ const cwdFor = async (cwd) => {
275
+ await container.get(shell_execution_tool_1.ShellExecutionTool).getTool().handler(JSON.stringify({ command: 'pwd', description: 'Print the working directory', cwd }), undefined);
276
+ return executed[executed.length - 1]?.cwd;
277
+ };
278
+ it('resolves each root name to the same directory as the workspace tools (A3)', async () => {
279
+ for (const name of workspaceScope.getRootMapping().keys()) {
280
+ const expected = new uri_1.URI(await resolve(name)).path.fsPath();
281
+ (0, chai_1.expect)(await cwdFor(name), `cwd '${name}'`).to.equal(expected);
282
+ }
283
+ });
284
+ it('accepts the directory forms that the workspace tools accept (D3)', async () => {
285
+ // Root-prefixed, parent-qualified (the only relative form that reaches a shadowed duplicate root) and URI.
286
+ for (const cwd of ['theia/packages', 'y/app', 'file:///ws/other']) {
287
+ const expected = new uri_1.URI(await resolve(cwd)).path.fsPath();
288
+ (0, chai_1.expect)(await cwdFor(cwd), `cwd '${cwd}'`).to.equal(expected);
289
+ }
290
+ });
291
+ });
292
+ });
293
+ //# sourceMappingURL=multi-root-paths.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-root-paths.spec.js","sourceRoot":"","sources":["../../src/browser/multi-root-paths.spec.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,18 @@ export declare class UserInteractionTool implements ToolProvider {
67
67
  protected resolveInteraction(toolCallId: string, result: UserInteractionResult): void;
68
68
  protected cancelPending(toolCallId: string): void;
69
69
  openLink(link: UserInteractionLink): Promise<void>;
70
- protected resolveUri(ref: PathContentRef): URI | undefined;
70
+ /**
71
+ * Resolves a content reference like {@link resolveUri}, or returns `'notFound'` if its path cannot
72
+ * be resolved, e.g. because it lacks the root name in a multi-root workspace.
73
+ */
74
+ protected resolveUriOrNotFound(ref: PathContentRef): Promise<URI | undefined | 'notFound'>;
75
+ /**
76
+ * Resolves a content reference with the same parsing and access checks as the workspace tools.
77
+ *
78
+ * @returns `undefined` if the reference has a git ref that no SCM repository can resolve.
79
+ * @throws if the path cannot be resolved or may not be accessed.
80
+ */
81
+ protected resolveUri(ref: PathContentRef): Promise<URI | undefined>;
71
82
  protected handleInteraction(argString: string, ctx: ToolInvocationContext | undefined): Promise<string>;
72
83
  protected resolveDiffSideUri(ref: ContentRef): Promise<URI>;
73
84
  protected errorContentUri(path: string, gitRef: string): URI;
@@ -1 +1 @@
1
- {"version":3,"file":"user-interaction-tool.d.ts","sourceRoot":"","sources":["../../src/browser/user-interaction-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-interaction-tool.d.ts","sourceRoot":"","sources":["../../src/browser/user-interaction-tool.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,8 @@ const CONTENT_REF_SCHEMA = {
41
41
  properties: {
42
42
  path: {
43
43
  type: 'string',
44
- description: 'Workspace-relative file path. Required unless "empty" is true.'
44
+ description: 'File path, in the format of the workspace tools: workspace-relative (\'rootName/path\') or absolute. ' +
45
+ 'Required unless "empty" is true.'
45
46
  },
46
47
  gitRef: {
47
48
  type: 'string',
@@ -249,9 +250,12 @@ let UserInteractionTool = class UserInteractionTool {
249
250
  }
250
251
  const left = (0, user_interaction_tool_1.resolveContentRef)(link.ref);
251
252
  if (left.gitRef) {
252
- const uri = this.resolveUri(left);
253
+ const uri = await this.resolveUriOrNotFound(left);
253
254
  let targetUri;
254
- if (uri === undefined) {
255
+ if (uri === 'notFound') {
256
+ targetUri = this.fileNotFoundUri(left.path);
257
+ }
258
+ else if (uri === undefined) {
255
259
  targetUri = this.errorContentUri(left.path, left.gitRef);
256
260
  }
257
261
  else if (await this.canResolveUri(uri)) {
@@ -265,8 +269,8 @@ let UserInteractionTool = class UserInteractionTool {
265
269
  await (0, browser_1.open)(this.openerService, targetUri);
266
270
  }
267
271
  else {
268
- const fileUri = this.workspaceScope.resolveRelativePath(left.path);
269
- if (!(await this.canResolveUri(fileUri))) {
272
+ const fileUri = await this.resolveUriOrNotFound(left);
273
+ if (fileUri === 'notFound' || fileUri === undefined || !(await this.canResolveUri(fileUri))) {
270
274
  await (0, browser_1.open)(this.openerService, this.fileNotFoundUri(left.path));
271
275
  return;
272
276
  }
@@ -277,8 +281,27 @@ let UserInteractionTool = class UserInteractionTool {
277
281
  }
278
282
  }
279
283
  }
280
- resolveUri(ref) {
281
- const fileUri = this.workspaceScope.resolveRelativePath(ref.path);
284
+ /**
285
+ * Resolves a content reference like {@link resolveUri}, or returns `'notFound'` if its path cannot
286
+ * be resolved, e.g. because it lacks the root name in a multi-root workspace.
287
+ */
288
+ async resolveUriOrNotFound(ref) {
289
+ try {
290
+ return await this.resolveUri(ref);
291
+ }
292
+ catch (error) {
293
+ this.logger.warn(`Could not resolve '${ref.path}': ${error.message}`);
294
+ return 'notFound';
295
+ }
296
+ }
297
+ /**
298
+ * Resolves a content reference with the same parsing and access checks as the workspace tools.
299
+ *
300
+ * @returns `undefined` if the reference has a git ref that no SCM repository can resolve.
301
+ * @throws if the path cannot be resolved or may not be accessed.
302
+ */
303
+ async resolveUri(ref) {
304
+ const fileUri = await this.workspaceScope.resolveAccessiblePath(ref.path);
282
305
  if (ref.gitRef) {
283
306
  const repo = this.scmService.findRepository(fileUri);
284
307
  if (repo) {
@@ -354,7 +377,10 @@ let UserInteractionTool = class UserInteractionTool {
354
377
  return this.emptyContentUri(ref.label || '');
355
378
  }
356
379
  const resolved = (0, user_interaction_tool_1.resolveContentRef)(ref);
357
- const uri = this.resolveUri(resolved);
380
+ const uri = await this.resolveUriOrNotFound(resolved);
381
+ if (uri === 'notFound') {
382
+ return this.fileNotFoundUri(resolved.path);
383
+ }
358
384
  if (uri === undefined) {
359
385
  // No SCM provider could resolve the gitRef — surface as an actionable error.
360
386
  return this.errorContentUri(resolved.path, resolved.gitRef);
@@ -1 +1 @@
1
- {"version":3,"file":"user-interaction-tool.js","sourceRoot":"","sources":["../../src/browser/user-interaction-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-interaction-tool.js","sourceRoot":"","sources":["../../src/browser/user-interaction-tool.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ describe('UserInteractionTool', () => {
67
67
  container = new inversify_1.Container();
68
68
  container.bind(core_1.ILogger).to(mock_logger_1.MockLogger).inSingletonScope();
69
69
  mockWorkspaceScope = {
70
- resolveRelativePath: sinon.stub().callsFake((path) => workspaceRoot.resolve(path)),
70
+ resolveAccessiblePath: sinon.stub().callsFake(async (path) => workspaceRoot.resolve(path)),
71
71
  getContainingRoot: sinon.stub().returns(workspaceRoot)
72
72
  };
73
73
  mockOpenerService = {
@@ -505,6 +505,18 @@ describe('UserInteractionTool', () => {
505
505
  (0, chai_1.expect)(leftUri.query).to.contain('Unable to resolve revision');
506
506
  (0, chai_1.expect)(leftUri.query).to.contain('abc123');
507
507
  });
508
+ it('should show the not-found content when a file link path cannot be resolved', async () => {
509
+ mockWorkspaceScope.resolveAccessiblePath.rejects(new Error('Could not resolve path'));
510
+ await tool.openLink({ ref: 'src/file.ts' });
511
+ (0, chai_1.expect)(mockEditorManager.open.called).to.be.false;
512
+ const openedUri = mockOpenerService.getOpener.getCall(0).args[0];
513
+ (0, chai_1.expect)(openedUri.scheme).to.equal(resource_1.MEMORY_TEXT_READONLY);
514
+ (0, chai_1.expect)(openedUri.query).to.contain('does not exist');
515
+ });
516
+ it('should resolve link paths with the same parsing as the workspace tools', async () => {
517
+ await tool.openLink({ ref: '/abs/src/file.ts' });
518
+ (0, chai_1.expect)(mockWorkspaceScope.resolveAccessiblePath.calledWith('/abs/src/file.ts')).to.be.true;
519
+ });
508
520
  it('should not open anything when single link ref is EmptyContentRef', async () => {
509
521
  await tool.openLink({ ref: { empty: true } });
510
522
  (0, chai_1.expect)(mockOpenerService.getOpener.called).to.be.false;