@theia/ai-core 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 (28) hide show
  1. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-core-frontend-module.js +2 -0
  3. package/lib/browser/ai-core-frontend-module.js.map +1 -1
  4. package/lib/browser/file-variable-contribution.d.ts +2 -0
  5. package/lib/browser/file-variable-contribution.d.ts.map +1 -1
  6. package/lib/browser/file-variable-contribution.js +8 -23
  7. package/lib/browser/file-variable-contribution.js.map +1 -1
  8. package/lib/browser/file-variable-contribution.spec.d.ts +2 -0
  9. package/lib/browser/file-variable-contribution.spec.d.ts.map +1 -0
  10. package/lib/browser/file-variable-contribution.spec.js +98 -0
  11. package/lib/browser/file-variable-contribution.spec.js.map +1 -0
  12. package/lib/browser/index.d.ts +1 -0
  13. package/lib/browser/index.d.ts.map +1 -1
  14. package/lib/browser/index.js +1 -0
  15. package/lib/browser/index.js.map +1 -1
  16. package/lib/browser/theia-variable-contribution.js +3 -3
  17. package/lib/browser/theia-variable-contribution.js.map +1 -1
  18. package/lib/browser/workspace-relative-path-resolver.d.ts +20 -0
  19. package/lib/browser/workspace-relative-path-resolver.d.ts.map +1 -0
  20. package/lib/browser/workspace-relative-path-resolver.js +78 -0
  21. package/lib/browser/workspace-relative-path-resolver.js.map +1 -0
  22. package/package.json +9 -9
  23. package/src/browser/ai-core-frontend-module.ts +2 -0
  24. package/src/browser/file-variable-contribution.spec.ts +107 -0
  25. package/src/browser/file-variable-contribution.ts +8 -27
  26. package/src/browser/index.ts +1 -0
  27. package/src/browser/theia-variable-contribution.ts +3 -3
  28. package/src/browser/workspace-relative-path-resolver.ts +71 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ai-core-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-core-frontend-module.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AA+E/D,wBAwJG"}
1
+ {"version":3,"file":"ai-core-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-core-frontend-module.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAgF/D,wBAyJG"}
@@ -37,6 +37,7 @@ const frontend_prompt_customization_service_1 = require("./frontend-prompt-custo
37
37
  const frontend_variable_service_1 = require("./frontend-variable-service");
38
38
  const prompttemplate_contribution_1 = require("./prompttemplate-contribution");
39
39
  const file_variable_contribution_1 = require("./file-variable-contribution");
40
+ const workspace_relative_path_resolver_1 = require("./workspace-relative-path-resolver");
40
41
  const theia_variable_contribution_1 = require("./theia-variable-contribution");
41
42
  const today_variable_contribution_1 = require("../common/today-variable-contribution");
42
43
  const agents_variable_contribution_1 = require("../common/agents-variable-contribution");
@@ -120,6 +121,7 @@ exports.default = new inversify_1.ContainerModule(bind => {
120
121
  bind(prompt_variable_contribution_1.PromptVariableContribution).toSelf().inSingletonScope();
121
122
  bind(common_1.AIVariableContribution).toService(prompt_variable_contribution_1.PromptVariableContribution);
122
123
  bind(common_1.AIVariableContribution).to(today_variable_contribution_1.TodayVariableContribution).inSingletonScope();
124
+ bind(workspace_relative_path_resolver_1.WorkspaceRelativePathResolver).toSelf().inSingletonScope();
123
125
  bind(common_1.AIVariableContribution).to(file_variable_contribution_1.FileVariableContribution).inSingletonScope();
124
126
  bind(agents_variable_contribution_1.AgentsVariableContribution).toSelf().inSingletonScope();
125
127
  bind(common_1.AIVariableContribution).toService(agents_variable_contribution_1.AgentsVariableContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-core-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-core-frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-core-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-core-frontend-module.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { FileService } from '@theia/filesystem/lib/browser/file-service';
4
4
  import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
5
5
  import { AIVariable, AIVariableContext, AIVariableContribution, AIVariableOpener, AIVariableResolutionRequest, AIVariableResolver, ResolvedAIContextVariable } from '../common/variable-service';
6
6
  import { FrontendVariableService } from './frontend-variable-service';
7
+ import { WorkspaceRelativePathResolver } from './workspace-relative-path-resolver';
7
8
  export declare namespace FileVariableArgs {
8
9
  const uri = "uri";
9
10
  }
@@ -12,6 +13,7 @@ export declare class FileVariableContribution implements AIVariableContribution,
12
13
  protected readonly fileService: FileService;
13
14
  protected readonly wsService: WorkspaceService;
14
15
  protected readonly openerService: OpenerService;
16
+ protected readonly pathResolver: WorkspaceRelativePathResolver;
15
17
  registerVariables(service: FrontendVariableService): void;
16
18
  canResolve(request: AIVariableResolutionRequest, _: AIVariableContext): Promise<number>;
17
19
  resolve(request: AIVariableResolutionRequest, _: AIVariableContext): Promise<ResolvedAIContextVariable | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"file-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAa,GAAG,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAsB,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,GAAG,QAAQ,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,UAQ3B,CAAC;AAEF,qBACa,wBAAyB,YAAW,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB;IAEzG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAKnD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvF,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;cAkBzG,KAAK,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IASrF,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpF,IAAI,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ3E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;CAmC1E"}
1
+ {"version":3,"file":"file-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAO,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAsB,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,GAAG,QAAQ,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,UAQ3B,CAAC;AAEF,qBACa,wBAAyB,YAAW,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB;IAEzG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;IAE/D,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAKnD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvF,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;cAkBzG,KAAK,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IASrF,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpF,IAAI,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ3E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;CAY1E"}
@@ -22,6 +22,7 @@ const browser_1 = require("@theia/core/lib/browser");
22
22
  const inversify_1 = require("@theia/core/shared/inversify");
23
23
  const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
24
24
  const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
25
+ const workspace_relative_path_resolver_1 = require("./workspace-relative-path-resolver");
25
26
  var FileVariableArgs;
26
27
  (function (FileVariableArgs) {
27
28
  FileVariableArgs.uri = 'uri';
@@ -79,29 +80,9 @@ let FileVariableContribution = class FileVariableContribution {
79
80
  await (0, browser_1.open)(this.openerService, uri);
80
81
  }
81
82
  async makeAbsolute(pathStr) {
82
- const normalizedPath = core_1.Path.normalizePathSeparator(pathStr);
83
- const path = new core_1.Path(normalizedPath);
84
- if (!path.isAbsolute) {
85
- const workspaceRoots = this.wsService.tryGetRoots();
86
- const segments = normalizedPath.split('/');
87
- if (segments.length > 0) {
88
- const potentialRootName = segments[0];
89
- for (const root of workspaceRoots) {
90
- if (root.resource.path.base === potentialRootName) {
91
- const restOfPath = segments.slice(1).join('/');
92
- const uri = restOfPath ? root.resource.resolve(restOfPath) : root.resource;
93
- if (await this.fileService.exists(uri)) {
94
- return uri;
95
- }
96
- }
97
- }
98
- }
99
- const wsUris = workspaceRoots.map(root => root.resource.resolve(path));
100
- for (const uri of wsUris) {
101
- if (await this.fileService.exists(uri)) {
102
- return uri;
103
- }
104
- }
83
+ const workspaceUri = await this.pathResolver.resolveExistingRelativePath(pathStr);
84
+ if (workspaceUri) {
85
+ return workspaceUri;
105
86
  }
106
87
  const argUri = new core_1.URI(pathStr);
107
88
  if (await this.fileService.exists(argUri)) {
@@ -123,6 +104,10 @@ tslib_1.__decorate([
123
104
  (0, inversify_1.inject)(browser_1.OpenerService),
124
105
  tslib_1.__metadata("design:type", Object)
125
106
  ], FileVariableContribution.prototype, "openerService", void 0);
107
+ tslib_1.__decorate([
108
+ (0, inversify_1.inject)(workspace_relative_path_resolver_1.WorkspaceRelativePathResolver),
109
+ tslib_1.__metadata("design:type", workspace_relative_path_resolver_1.WorkspaceRelativePathResolver)
110
+ ], FileVariableContribution.prototype, "pathResolver", void 0);
126
111
  exports.FileVariableContribution = FileVariableContribution = tslib_1.__decorate([
127
112
  (0, inversify_1.injectable)()
128
113
  ], FileVariableContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"file-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-variable-contribution.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-variable-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,98 @@
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 tslib_1 = require("tslib");
19
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
20
+ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
21
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
22
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
23
+ const chai_1 = require("chai");
24
+ const core_1 = require("@theia/core");
25
+ const browser_1 = require("@theia/core/lib/browser");
26
+ const inversify_1 = require("@theia/core/shared/inversify");
27
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
28
+ const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
29
+ const with_workspace_service_defaults_1 = require("@theia/workspace/lib/browser/test/with-workspace-service-defaults");
30
+ const file_variable_contribution_1 = require("./file-variable-contribution");
31
+ const workspace_relative_path_resolver_1 = require("./workspace-relative-path-resolver");
32
+ disableJSDOM();
33
+ let TestFileVariableContribution = class TestFileVariableContribution extends file_variable_contribution_1.FileVariableContribution {
34
+ resolvePath(path) {
35
+ return this.makeAbsolute(path);
36
+ }
37
+ };
38
+ TestFileVariableContribution = tslib_1.__decorate([
39
+ (0, inversify_1.injectable)()
40
+ ], TestFileVariableContribution);
41
+ describe('FileVariableContribution path resolution', () => {
42
+ const ROOTS = ['file:///alice/app', 'file:///bob/app', 'file:///ws/theia'];
43
+ const FILES = ['file:///alice/app/src/a.ts', 'file:///bob/app/src/a.ts', 'file:///bob/app/src/only-bob.ts', 'file:///ws/theia/README.md'];
44
+ let roots;
45
+ let workspaceService;
46
+ let contribution;
47
+ before(() => {
48
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
49
+ });
50
+ after(() => {
51
+ disableJSDOM();
52
+ });
53
+ beforeEach(() => {
54
+ roots = ROOTS;
55
+ const container = new inversify_1.Container();
56
+ const fileService = { exists: async (uri) => FILES.includes(uri.toString()) };
57
+ workspaceService = (0, with_workspace_service_defaults_1.withWorkspaceServiceDefaults)({
58
+ tryGetRoots: () => roots.map(root => ({ resource: new core_1.URI(root), isDirectory: true }))
59
+ });
60
+ container.bind(workspace_service_1.WorkspaceService).toConstantValue(workspaceService);
61
+ container.bind(file_service_1.FileService).toConstantValue(fileService);
62
+ container.bind(browser_1.OpenerService).toConstantValue({});
63
+ container.bind(workspace_relative_path_resolver_1.WorkspaceRelativePathResolver).toSelf();
64
+ container.bind(TestFileVariableContribution).toSelf();
65
+ contribution = container.get(TestFileVariableContribution);
66
+ });
67
+ const resolve = async (path) => (await contribution.resolvePath(path))?.toString();
68
+ it('resolves the root-prefixed path of a file in every root', async () => {
69
+ for (const file of FILES) {
70
+ (0, chai_1.expect)(await resolve(workspaceService.getRootPrefixedPath(new core_1.URI(file)))).to.equal(file);
71
+ }
72
+ });
73
+ it('resolves a path prefixed with a basename shared by several roots, as saved by earlier versions', async () => {
74
+ (0, chai_1.expect)(await resolve('app/src/only-bob.ts')).to.equal('file:///bob/app/src/only-bob.ts');
75
+ });
76
+ it('does not resolve a path prefixed with a basename shared by several roots that contain the file', async () => {
77
+ (0, chai_1.expect)(await resolve('app/src/a.ts')).to.be.undefined;
78
+ });
79
+ it('resolves a path prefixed with a root name that the roots no longer assign', async () => {
80
+ // Saved as `alice/app/...` while `/bob/app` was open, too; now the root is just named `app`.
81
+ roots = ['file:///alice/app', 'file:///ws/theia'];
82
+ (0, chai_1.expect)(await resolve('alice/app/src/a.ts')).to.equal('file:///alice/app/src/a.ts');
83
+ });
84
+ it('resolves a path without a root name, as saved by earlier versions', async () => {
85
+ (0, chai_1.expect)(await resolve('README.md')).to.equal('file:///ws/theia/README.md');
86
+ });
87
+ it('does not resolve a relative path that leaves its root', async () => {
88
+ FILES.push('file:///alice/secret.txt');
89
+ try {
90
+ (0, chai_1.expect)(await resolve('../secret.txt')).to.be.undefined;
91
+ (0, chai_1.expect)(await resolve('app/../../secret.txt')).to.be.undefined;
92
+ }
93
+ finally {
94
+ FILES.pop();
95
+ }
96
+ });
97
+ });
98
+ //# sourceMappingURL=file-variable-contribution.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-variable-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.spec.ts"],"names":[],"mappings":"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"}
@@ -35,4 +35,5 @@ export * from '../common/language-model-service';
35
35
  export * from './generic-capabilities-variable-contribution';
36
36
  export * from './generic-capabilities-prompt-fragment-contribution';
37
37
  export * from './prompt-variable-contribution';
38
+ export * from './workspace-relative-path-resolver';
38
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC"}
@@ -53,4 +53,5 @@ tslib_1.__exportStar(require("../common/language-model-service"), exports);
53
53
  tslib_1.__exportStar(require("./generic-capabilities-variable-contribution"), exports);
54
54
  tslib_1.__exportStar(require("./generic-capabilities-prompt-fragment-contribution"), exports);
55
55
  tslib_1.__exportStar(require("./prompt-variable-contribution"), exports);
56
+ tslib_1.__exportStar(require("./workspace-relative-path-resolver"), exports);
56
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.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,uEAA6C;AAC7C,oEAA0C;AAC1C,iEAAuC;AACvC,kEAAwC;AACxC,uEAA6C;AAC7C,sFAA4D;AAC5D,oEAA0C;AAC1C,wEAA8C;AAC9C,gEAAsC;AACtC,0EAAgD;AAChD,iEAAuC;AACvC,6EAAmD;AACnD,mFAAyD;AACzD,6EAAmD;AACnD,2EAAiD;AACjD,oEAA0C;AAC1C,8EAAoD;AACpD,sEAA4C;AAC5C,wEAA8C;AAC9C,wEAA8C;AAC9C,+EAAqD;AACrD,yEAA+C;AAC/C,0DAAgC;AAChC,8DAAoC;AACpC,4EAAkD;AAClD,mFAAyD;AACzD,wEAA8C;AAC9C,wFAA8D;AAC9D,qEAA2C;AAC3C,mEAAyC;AACzC,qEAA2C;AAC3C,sEAA4C;AAC5C,yEAA+C;AAC/C,2EAAiD;AACjD,uFAA6D;AAC7D,8FAAoE;AACpE,yEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.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,uEAA6C;AAC7C,oEAA0C;AAC1C,iEAAuC;AACvC,kEAAwC;AACxC,uEAA6C;AAC7C,sFAA4D;AAC5D,oEAA0C;AAC1C,wEAA8C;AAC9C,gEAAsC;AACtC,0EAAgD;AAChD,iEAAuC;AACvC,6EAAmD;AACnD,mFAAyD;AACzD,6EAAmD;AACnD,2EAAiD;AACjD,oEAA0C;AAC1C,8EAAoD;AACpD,sEAA4C;AAC5C,wEAA8C;AAC9C,wEAA8C;AAC9C,+EAAqD;AACrD,yEAA+C;AAC/C,0DAAgC;AAChC,8DAAoC;AACpC,4EAAkD;AAClD,mFAAyD;AACzD,wEAA8C;AAC9C,wFAA8D;AAC9D,qEAA2C;AAC3C,mEAAyC;AACzC,qEAA2C;AAC3C,sEAA4C;AAC5C,yEAA+C;AAC/C,2EAAiD;AACjD,uFAA6D;AAC7D,8FAAoE;AACpE,yEAA+C;AAC/C,6EAAmD"}
@@ -51,17 +51,17 @@ let TheiaVariableContribution = class TheiaVariableContribution {
51
51
  ['relativeFile', [
52
52
  {
53
53
  name: 'currentRelativeFilePath',
54
- description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentRelativeFilePath', 'The workspace-relative path of the currently opened file (e.g., my-project/src/index.ts).')
54
+ description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentRelativeFilePath', 'The path of the currently opened file relative to its workspace root, without the root name (e.g., src/index.ts).')
55
55
  },
56
56
  {
57
57
  name: '_f',
58
- description: nls_1.nls.localize('theia/ai/core/variable-contribution/dotRelativePath', 'Short reference to the workspace-relative path of the currently opened file (\'currentRelativeFilePath\').')
58
+ description: nls_1.nls.localize('theia/ai/core/variable-contribution/dotRelativePath', 'Short reference to the path of the currently opened file relative to its workspace root, without the root name (\'currentRelativeFilePath\').')
59
59
  }
60
60
  ]],
61
61
  ['relativeFileDirname', [
62
62
  {
63
63
  name: 'currentRelativeDirPath',
64
- description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentRelativeDirPath', 'The workspace-relative path of the directory containing the currently opened file (e.g., my-project/src).')
64
+ description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentRelativeDirPath', 'The path of the directory containing the currently opened file relative to its workspace root, without the root name (e.g., src).')
65
65
  }
66
66
  ]],
67
67
  ['lineNumber', [{}]],
@@ -1 +1 @@
1
- {"version":3,"file":"theia-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/theia-variable-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theia-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/theia-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { URI } from '@theia/core';
2
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
3
+ import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
4
+ /**
5
+ * Resolves the relative paths of files in the workspace that AI features, e.g. chat variables, refer to.
6
+ */
7
+ export declare class WorkspaceRelativePathResolver {
8
+ protected readonly workspaceService: WorkspaceService;
9
+ protected readonly fileService: FileService;
10
+ /**
11
+ * Resolves a relative path to an existing file or folder in the workspace. Besides the format of
12
+ * {@link WorkspaceService.getRootPrefixedPath}, it accepts the formats of paths saved by earlier versions,
13
+ * e.g. in chat sessions, or before the workspace roots changed: in the format of
14
+ * {@link WorkspaceService.resolveSupraRelativePath}, if only one of the roots contains the file, or relative to any root.
15
+ *
16
+ * @returns `undefined` if the path is absolute, leaves its root or does not resolve to an existing file or folder.
17
+ */
18
+ resolveExistingRelativePath(relativePath: string): Promise<URI | undefined>;
19
+ }
20
+ //# sourceMappingURL=workspace-relative-path-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-relative-path-resolver.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-relative-path-resolver.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAQ,GAAG,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAElF;;GAEG;AACH,qBACa,6BAA6B;IAGtC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C;;;;;;;OAOG;IACG,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;CA6BpF"}
@@ -0,0 +1,78 @@
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
+ exports.WorkspaceRelativePathResolver = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const core_1 = require("@theia/core");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
23
+ const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
24
+ /**
25
+ * Resolves the relative paths of files in the workspace that AI features, e.g. chat variables, refer to.
26
+ */
27
+ let WorkspaceRelativePathResolver = class WorkspaceRelativePathResolver {
28
+ /**
29
+ * Resolves a relative path to an existing file or folder in the workspace. Besides the format of
30
+ * {@link WorkspaceService.getRootPrefixedPath}, it accepts the formats of paths saved by earlier versions,
31
+ * e.g. in chat sessions, or before the workspace roots changed: in the format of
32
+ * {@link WorkspaceService.resolveSupraRelativePath}, if only one of the roots contains the file, or relative to any root.
33
+ *
34
+ * @returns `undefined` if the path is absolute, leaves its root or does not resolve to an existing file or folder.
35
+ */
36
+ async resolveExistingRelativePath(relativePath) {
37
+ const normalizedPath = core_1.Path.normalizePathSeparator(relativePath);
38
+ const path = new core_1.Path(normalizedPath).normalize();
39
+ const segments = path.toString().split('/').filter(segment => segment.length > 0);
40
+ if (path.isAbsolute || core_1.Path.isDrive(segments[0] ?? '') || segments.includes('..')) {
41
+ return undefined;
42
+ }
43
+ const rootPrefixed = this.workspaceService.resolveRootPrefixedPath(normalizedPath);
44
+ if (rootPrefixed && await this.fileService.exists(rootPrefixed)) {
45
+ return rootPrefixed;
46
+ }
47
+ const supraRelative = [];
48
+ for (const uri of this.workspaceService.resolveSupraRelativePath(normalizedPath)) {
49
+ if (await this.fileService.exists(uri)) {
50
+ supraRelative.push(uri);
51
+ }
52
+ }
53
+ if (supraRelative.length === 1) {
54
+ return supraRelative[0];
55
+ }
56
+ const roots = this.workspaceService.tryGetRoots();
57
+ for (const root of roots) {
58
+ const uri = root.resource.resolve(segments.join('/'));
59
+ if (await this.fileService.exists(uri)) {
60
+ return uri;
61
+ }
62
+ }
63
+ return undefined;
64
+ }
65
+ };
66
+ exports.WorkspaceRelativePathResolver = WorkspaceRelativePathResolver;
67
+ tslib_1.__decorate([
68
+ (0, inversify_1.inject)(workspace_service_1.WorkspaceService),
69
+ tslib_1.__metadata("design:type", workspace_service_1.WorkspaceService)
70
+ ], WorkspaceRelativePathResolver.prototype, "workspaceService", void 0);
71
+ tslib_1.__decorate([
72
+ (0, inversify_1.inject)(file_service_1.FileService),
73
+ tslib_1.__metadata("design:type", file_service_1.FileService)
74
+ ], WorkspaceRelativePathResolver.prototype, "fileService", void 0);
75
+ exports.WorkspaceRelativePathResolver = WorkspaceRelativePathResolver = tslib_1.__decorate([
76
+ (0, inversify_1.injectable)()
77
+ ], WorkspaceRelativePathResolver);
78
+ //# sourceMappingURL=workspace-relative-path-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-relative-path-resolver.js","sourceRoot":"","sources":["../../src/browser/workspace-relative-path-resolver.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,sCAAwC;AACxC,4DAAkE;AAClE,6EAAyE;AACzE,sFAAkF;AAElF;;GAEG;AAEI,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAQtC;;;;;;;OAOG;IACH,KAAK,CAAC,2BAA2B,CAAC,YAAoB;QAClD,MAAM,cAAc,GAAG,WAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,UAAU,IAAI,WAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChF,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACnF,IAAI,YAAY,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,MAAM,aAAa,GAAU,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/E,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ,CAAA;AA7CY,sEAA6B;AAGnB;IADlB,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCACY,oCAAgB;uEAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCACY,0BAAW;kEAAC;wCANnC,6BAA6B;IADzC,IAAA,sBAAU,GAAE;GACA,6BAA6B,CA6CzC"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@theia/ai-core",
3
- "version": "1.77.0-next.57+81ea5f939",
3
+ "version": "1.77.0-next.63+046af0812",
4
4
  "description": "Theia - AI Core",
5
5
  "dependencies": {
6
- "@theia/core": "1.77.0-next.57+81ea5f939",
7
- "@theia/editor": "1.77.0-next.57+81ea5f939",
8
- "@theia/filesystem": "1.77.0-next.57+81ea5f939",
9
- "@theia/monaco": "1.77.0-next.57+81ea5f939",
6
+ "@theia/core": "1.77.0-next.63+046af0812",
7
+ "@theia/editor": "1.77.0-next.63+046af0812",
8
+ "@theia/filesystem": "1.77.0-next.63+046af0812",
9
+ "@theia/monaco": "1.77.0-next.63+046af0812",
10
10
  "@theia/monaco-editor-core": "1.108.201",
11
- "@theia/output": "1.77.0-next.57+81ea5f939",
12
- "@theia/variable-resolver": "1.77.0-next.57+81ea5f939",
13
- "@theia/workspace": "1.77.0-next.57+81ea5f939",
11
+ "@theia/output": "1.77.0-next.63+046af0812",
12
+ "@theia/variable-resolver": "1.77.0-next.63+046af0812",
13
+ "@theia/workspace": "1.77.0-next.63+046af0812",
14
14
  "@types/js-yaml": "^4.0.9",
15
15
  "fast-deep-equal": "^3.1.3",
16
16
  "js-yaml": "^4.3.2",
@@ -58,5 +58,5 @@
58
58
  "nyc": {
59
59
  "extends": "../../configs/nyc.json"
60
60
  },
61
- "gitHead": "81ea5f939c40c905de91083d07e284bfd7437fac"
61
+ "gitHead": "046af0812516f46f2bf7ce3357cca0b672159b20"
62
62
  }
@@ -67,6 +67,7 @@ import { DefaultPromptFragmentCustomizationService } from './frontend-prompt-cus
67
67
  import { DefaultFrontendVariableService, FrontendVariableService } from './frontend-variable-service';
68
68
  import { PromptTemplateContribution } from './prompttemplate-contribution';
69
69
  import { FileVariableContribution } from './file-variable-contribution';
70
+ import { WorkspaceRelativePathResolver } from './workspace-relative-path-resolver';
70
71
  import { TheiaVariableContribution } from './theia-variable-contribution';
71
72
  import { TodayVariableContribution } from '../common/today-variable-contribution';
72
73
  import { AgentsVariableContribution } from '../common/agents-variable-contribution';
@@ -168,6 +169,7 @@ export default new ContainerModule(bind => {
168
169
  bind(PromptVariableContribution).toSelf().inSingletonScope();
169
170
  bind(AIVariableContribution).toService(PromptVariableContribution);
170
171
  bind(AIVariableContribution).to(TodayVariableContribution).inSingletonScope();
172
+ bind(WorkspaceRelativePathResolver).toSelf().inSingletonScope();
171
173
  bind(AIVariableContribution).to(FileVariableContribution).inSingletonScope();
172
174
  bind(AgentsVariableContribution).toSelf().inSingletonScope();
173
175
  bind(AIVariableContribution).toService(AgentsVariableContribution);
@@ -0,0 +1,107 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 STMicroelectronics and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
18
+ let disableJSDOM = enableJSDOM();
19
+ import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
20
+ FrontendApplicationConfigProvider.set({});
21
+
22
+ import { expect } from 'chai';
23
+ import { URI } from '@theia/core';
24
+ import { OpenerService } from '@theia/core/lib/browser';
25
+ import { Container, injectable } from '@theia/core/shared/inversify';
26
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
27
+ import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
28
+ import { withWorkspaceServiceDefaults } from '@theia/workspace/lib/browser/test/with-workspace-service-defaults';
29
+ import { FileVariableContribution } from './file-variable-contribution';
30
+ import { WorkspaceRelativePathResolver } from './workspace-relative-path-resolver';
31
+
32
+ disableJSDOM();
33
+
34
+ @injectable()
35
+ class TestFileVariableContribution extends FileVariableContribution {
36
+ resolvePath(path: string): Promise<URI | undefined> {
37
+ return this.makeAbsolute(path);
38
+ }
39
+ }
40
+
41
+ describe('FileVariableContribution path resolution', () => {
42
+
43
+ const ROOTS = ['file:///alice/app', 'file:///bob/app', 'file:///ws/theia'];
44
+ const FILES = ['file:///alice/app/src/a.ts', 'file:///bob/app/src/a.ts', 'file:///bob/app/src/only-bob.ts', 'file:///ws/theia/README.md'];
45
+
46
+ let roots: string[];
47
+ let workspaceService: WorkspaceService;
48
+ let contribution: TestFileVariableContribution;
49
+
50
+ before(() => {
51
+ disableJSDOM = enableJSDOM();
52
+ });
53
+ after(() => {
54
+ disableJSDOM();
55
+ });
56
+
57
+ beforeEach(() => {
58
+ roots = ROOTS;
59
+ const container = new Container();
60
+ const fileService = { exists: async (uri: URI) => FILES.includes(uri.toString()) } as unknown as FileService;
61
+ workspaceService = withWorkspaceServiceDefaults({
62
+ tryGetRoots: () => roots.map(root => ({ resource: new URI(root), isDirectory: true }))
63
+ });
64
+ container.bind(WorkspaceService).toConstantValue(workspaceService);
65
+ container.bind(FileService).toConstantValue(fileService);
66
+ container.bind(OpenerService).toConstantValue({} as OpenerService);
67
+ container.bind(WorkspaceRelativePathResolver).toSelf();
68
+ container.bind(TestFileVariableContribution).toSelf();
69
+ contribution = container.get(TestFileVariableContribution);
70
+ });
71
+
72
+ const resolve = async (path: string): Promise<string | undefined> => (await contribution.resolvePath(path))?.toString();
73
+
74
+ it('resolves the root-prefixed path of a file in every root', async () => {
75
+ for (const file of FILES) {
76
+ expect(await resolve(workspaceService.getRootPrefixedPath(new URI(file)))).to.equal(file);
77
+ }
78
+ });
79
+
80
+ it('resolves a path prefixed with a basename shared by several roots, as saved by earlier versions', async () => {
81
+ expect(await resolve('app/src/only-bob.ts')).to.equal('file:///bob/app/src/only-bob.ts');
82
+ });
83
+
84
+ it('does not resolve a path prefixed with a basename shared by several roots that contain the file', async () => {
85
+ expect(await resolve('app/src/a.ts')).to.be.undefined;
86
+ });
87
+
88
+ it('resolves a path prefixed with a root name that the roots no longer assign', async () => {
89
+ // Saved as `alice/app/...` while `/bob/app` was open, too; now the root is just named `app`.
90
+ roots = ['file:///alice/app', 'file:///ws/theia'];
91
+ expect(await resolve('alice/app/src/a.ts')).to.equal('file:///alice/app/src/a.ts');
92
+ });
93
+
94
+ it('resolves a path without a root name, as saved by earlier versions', async () => {
95
+ expect(await resolve('README.md')).to.equal('file:///ws/theia/README.md');
96
+ });
97
+
98
+ it('does not resolve a relative path that leaves its root', async () => {
99
+ FILES.push('file:///alice/secret.txt');
100
+ try {
101
+ expect(await resolve('../secret.txt')).to.be.undefined;
102
+ expect(await resolve('app/../../secret.txt')).to.be.undefined;
103
+ } finally {
104
+ FILES.pop();
105
+ }
106
+ });
107
+ });
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { nls, Path, URI } from '@theia/core';
17
+ import { nls, URI } from '@theia/core';
18
18
  import { OpenerService, codiconArray, open } from '@theia/core/lib/browser';
19
19
  import { inject, injectable } from '@theia/core/shared/inversify';
20
20
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
@@ -29,6 +29,7 @@ import {
29
29
  ResolvedAIContextVariable,
30
30
  } from '../common/variable-service';
31
31
  import { FrontendVariableService } from './frontend-variable-service';
32
+ import { WorkspaceRelativePathResolver } from './workspace-relative-path-resolver';
32
33
 
33
34
  export namespace FileVariableArgs {
34
35
  export const uri = 'uri';
@@ -55,6 +56,9 @@ export class FileVariableContribution implements AIVariableContribution, AIVaria
55
56
  @inject(OpenerService)
56
57
  protected readonly openerService: OpenerService;
57
58
 
59
+ @inject(WorkspaceRelativePathResolver)
60
+ protected readonly pathResolver: WorkspaceRelativePathResolver;
61
+
58
62
  registerVariables(service: FrontendVariableService): void {
59
63
  service.registerResolver(FILE_VARIABLE, this);
60
64
  service.registerOpener(FILE_VARIABLE, this);
@@ -104,32 +108,9 @@ export class FileVariableContribution implements AIVariableContribution, AIVaria
104
108
  }
105
109
 
106
110
  protected async makeAbsolute(pathStr: string): Promise<URI | undefined> {
107
- const normalizedPath = Path.normalizePathSeparator(pathStr);
108
- const path = new Path(normalizedPath);
109
-
110
- if (!path.isAbsolute) {
111
- const workspaceRoots = this.wsService.tryGetRoots();
112
-
113
- const segments = normalizedPath.split('/');
114
- if (segments.length > 0) {
115
- const potentialRootName = segments[0];
116
- for (const root of workspaceRoots) {
117
- if (root.resource.path.base === potentialRootName) {
118
- const restOfPath = segments.slice(1).join('/');
119
- const uri = restOfPath ? root.resource.resolve(restOfPath) : root.resource;
120
- if (await this.fileService.exists(uri)) {
121
- return uri;
122
- }
123
- }
124
- }
125
- }
126
-
127
- const wsUris = workspaceRoots.map(root => root.resource.resolve(path));
128
- for (const uri of wsUris) {
129
- if (await this.fileService.exists(uri)) {
130
- return uri;
131
- }
132
- }
111
+ const workspaceUri = await this.pathResolver.resolveExistingRelativePath(pathStr);
112
+ if (workspaceUri) {
113
+ return workspaceUri;
133
114
  }
134
115
 
135
116
  const argUri = new URI(pathStr);
@@ -51,3 +51,4 @@ export * from '../common/language-model-service';
51
51
  export * from './generic-capabilities-variable-contribution';
52
52
  export * from './generic-capabilities-prompt-fragment-contribution';
53
53
  export * from './prompt-variable-contribution';
54
+ export * from './workspace-relative-path-resolver';
@@ -72,19 +72,19 @@ export class TheiaVariableContribution implements AIVariableContribution, AIVari
72
72
  {
73
73
  name: 'currentRelativeFilePath',
74
74
  description: nls.localize('theia/ai/core/variable-contribution/currentRelativeFilePath',
75
- 'The workspace-relative path of the currently opened file (e.g., my-project/src/index.ts).')
75
+ 'The path of the currently opened file relative to its workspace root, without the root name (e.g., src/index.ts).')
76
76
  },
77
77
  {
78
78
  name: '_f',
79
79
  description: nls.localize('theia/ai/core/variable-contribution/dotRelativePath',
80
- 'Short reference to the workspace-relative path of the currently opened file (\'currentRelativeFilePath\').')
80
+ 'Short reference to the path of the currently opened file relative to its workspace root, without the root name (\'currentRelativeFilePath\').')
81
81
  }
82
82
  ]],
83
83
  ['relativeFileDirname', [
84
84
  {
85
85
  name: 'currentRelativeDirPath',
86
86
  description: nls.localize('theia/ai/core/variable-contribution/currentRelativeDirPath',
87
- 'The workspace-relative path of the directory containing the currently opened file (e.g., my-project/src).')
87
+ 'The path of the directory containing the currently opened file relative to its workspace root, without the root name (e.g., src).')
88
88
  }
89
89
  ]],
90
90
  ['lineNumber', [{}]],
@@ -0,0 +1,71 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 STMicroelectronics and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { Path, URI } from '@theia/core';
18
+ import { inject, injectable } from '@theia/core/shared/inversify';
19
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
20
+ import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
21
+
22
+ /**
23
+ * Resolves the relative paths of files in the workspace that AI features, e.g. chat variables, refer to.
24
+ */
25
+ @injectable()
26
+ export class WorkspaceRelativePathResolver {
27
+
28
+ @inject(WorkspaceService)
29
+ protected readonly workspaceService: WorkspaceService;
30
+
31
+ @inject(FileService)
32
+ protected readonly fileService: FileService;
33
+
34
+ /**
35
+ * Resolves a relative path to an existing file or folder in the workspace. Besides the format of
36
+ * {@link WorkspaceService.getRootPrefixedPath}, it accepts the formats of paths saved by earlier versions,
37
+ * e.g. in chat sessions, or before the workspace roots changed: in the format of
38
+ * {@link WorkspaceService.resolveSupraRelativePath}, if only one of the roots contains the file, or relative to any root.
39
+ *
40
+ * @returns `undefined` if the path is absolute, leaves its root or does not resolve to an existing file or folder.
41
+ */
42
+ async resolveExistingRelativePath(relativePath: string): Promise<URI | undefined> {
43
+ const normalizedPath = Path.normalizePathSeparator(relativePath);
44
+ const path = new Path(normalizedPath).normalize();
45
+ const segments = path.toString().split('/').filter(segment => segment.length > 0);
46
+ if (path.isAbsolute || Path.isDrive(segments[0] ?? '') || segments.includes('..')) {
47
+ return undefined;
48
+ }
49
+ const rootPrefixed = this.workspaceService.resolveRootPrefixedPath(normalizedPath);
50
+ if (rootPrefixed && await this.fileService.exists(rootPrefixed)) {
51
+ return rootPrefixed;
52
+ }
53
+ const supraRelative: URI[] = [];
54
+ for (const uri of this.workspaceService.resolveSupraRelativePath(normalizedPath)) {
55
+ if (await this.fileService.exists(uri)) {
56
+ supraRelative.push(uri);
57
+ }
58
+ }
59
+ if (supraRelative.length === 1) {
60
+ return supraRelative[0];
61
+ }
62
+ const roots = this.workspaceService.tryGetRoots();
63
+ for (const root of roots) {
64
+ const uri = root.resource.resolve(segments.join('/'));
65
+ if (await this.fileService.exists(uri)) {
66
+ return uri;
67
+ }
68
+ }
69
+ return undefined;
70
+ }
71
+ }