@theia/ai-ide 1.67.0-next.3 → 1.67.0-next.59

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 (67) hide show
  1. package/README.md +1 -0
  2. package/lib/browser/ai-configuration/agent-configuration-widget.js +3 -3
  3. package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -1
  4. package/lib/browser/context-file-validation-service-impl.d.ts +13 -0
  5. package/lib/browser/context-file-validation-service-impl.d.ts.map +1 -0
  6. package/lib/browser/context-file-validation-service-impl.js +123 -0
  7. package/lib/browser/context-file-validation-service-impl.js.map +1 -0
  8. package/lib/browser/context-file-validation-service-impl.spec.d.ts +2 -0
  9. package/lib/browser/context-file-validation-service-impl.spec.d.ts.map +1 -0
  10. package/lib/browser/context-file-validation-service-impl.spec.js +340 -0
  11. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -0
  12. package/lib/browser/context-functions.d.ts +2 -0
  13. package/lib/browser/context-functions.d.ts.map +1 -1
  14. package/lib/browser/context-functions.js +41 -5
  15. package/lib/browser/context-functions.js.map +1 -1
  16. package/lib/browser/context-functions.spec.js +120 -0
  17. package/lib/browser/context-functions.spec.js.map +1 -1
  18. package/lib/browser/file-changeset-functions.d.ts +2 -2
  19. package/lib/browser/file-changeset-functions.d.ts.map +1 -1
  20. package/lib/browser/file-changeset-functions.js +18 -18
  21. package/lib/browser/file-changeset-functions.js.map +1 -1
  22. package/lib/browser/file-changeset-functions.spec.js +11 -11
  23. package/lib/browser/file-changeset-functions.spec.js.map +1 -1
  24. package/lib/browser/frontend-module.d.ts.map +1 -1
  25. package/lib/browser/frontend-module.js +8 -2
  26. package/lib/browser/frontend-module.js.map +1 -1
  27. package/lib/browser/ide-chat-welcome-message-provider.d.ts +4 -5
  28. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
  29. package/lib/browser/ide-chat-welcome-message-provider.js +38 -78
  30. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
  31. package/lib/browser/remember-command-contribution.d.ts +16 -0
  32. package/lib/browser/remember-command-contribution.d.ts.map +1 -0
  33. package/lib/browser/remember-command-contribution.js +101 -0
  34. package/lib/browser/remember-command-contribution.js.map +1 -0
  35. package/lib/browser/workspace-functions.d.ts +3 -0
  36. package/lib/browser/workspace-functions.d.ts.map +1 -1
  37. package/lib/browser/workspace-functions.js +56 -0
  38. package/lib/browser/workspace-functions.js.map +1 -1
  39. package/lib/common/ai-ide-preferences.js +1 -1
  40. package/lib/common/ai-ide-preferences.js.map +1 -1
  41. package/lib/common/coder-replace-prompt-template.d.ts.map +1 -1
  42. package/lib/common/coder-replace-prompt-template.js +7 -6
  43. package/lib/common/coder-replace-prompt-template.js.map +1 -1
  44. package/lib/common/command-prompt-template.js +5 -5
  45. package/lib/common/file-changeset-function-ids.d.ts +12 -1
  46. package/lib/common/file-changeset-function-ids.d.ts.map +1 -1
  47. package/lib/common/file-changeset-function-ids.js +13 -2
  48. package/lib/common/file-changeset-function-ids.js.map +1 -1
  49. package/lib/common/orchestrator-chat-agent.js +2 -2
  50. package/lib/common/orchestrator-chat-agent.js.map +1 -1
  51. package/package.json +21 -21
  52. package/src/browser/ai-configuration/agent-configuration-widget.tsx +3 -3
  53. package/src/browser/context-file-validation-service-impl.spec.ts +405 -0
  54. package/src/browser/context-file-validation-service-impl.ts +120 -0
  55. package/src/browser/context-functions.spec.ts +155 -1
  56. package/src/browser/context-functions.ts +40 -6
  57. package/src/browser/file-changeset-functions.spec.ts +13 -13
  58. package/src/browser/file-changeset-functions.ts +9 -9
  59. package/src/browser/frontend-module.ts +12 -4
  60. package/src/browser/ide-chat-welcome-message-provider.tsx +64 -70
  61. package/src/browser/remember-command-contribution.ts +105 -0
  62. package/src/browser/workspace-functions.ts +68 -1
  63. package/src/common/ai-ide-preferences.ts +1 -1
  64. package/src/common/coder-replace-prompt-template.ts +8 -9
  65. package/src/common/command-prompt-template.ts +5 -5
  66. package/src/common/file-changeset-function-ids.ts +15 -1
  67. package/src/common/orchestrator-chat-agent.ts +2 -2
package/README.md CHANGED
@@ -34,6 +34,7 @@ The package provides a configuration view that enables you to adjust settings re
34
34
 
35
35
  ## Additional Information
36
36
 
37
+ - [API documentation for `@theia/ai-ide`](https://eclipse-theia.github.io/theia/docs/next/modules/_theia_ai-ide.html)
37
38
  - [Theia - GitHub](https://github.com/eclipse-theia/theia)
38
39
  - [Theia - Website](https://theia-ide.org/)
39
40
 
@@ -34,17 +34,17 @@ let AIAgentConfigurationWidget = AIAgentConfigurationWidget_1 = class AIAgentCon
34
34
  super(...arguments);
35
35
  this.languageModelAliases = [];
36
36
  this.isLoadingDetails = false;
37
- this.toggleAgentEnabled = () => {
37
+ this.toggleAgentEnabled = async () => {
38
38
  const agent = this.aiConfigurationSelectionService.getActiveAgent();
39
39
  if (!agent) {
40
40
  return false;
41
41
  }
42
42
  const enabled = this.agentService.isEnabled(agent.id);
43
43
  if (enabled) {
44
- this.agentService.disableAgent(agent.id);
44
+ await this.agentService.disableAgent(agent.id);
45
45
  }
46
46
  else {
47
- this.agentService.enableAgent(agent.id);
47
+ await this.agentService.enableAgent(agent.id);
48
48
  }
49
49
  this.update();
50
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-configuration-widget.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/agent-configuration-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-configuration-widget.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/agent-configuration-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
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
+ import { ContextFileValidationService, FileValidationResult } from '@theia/ai-chat/lib/browser/context-file-validation-service';
5
+ import { WorkspaceFunctionScope } from './workspace-functions';
6
+ export declare class ContextFileValidationServiceImpl implements ContextFileValidationService {
7
+ protected readonly fileService: FileService;
8
+ protected readonly workspaceScope: WorkspaceFunctionScope;
9
+ protected readonly workspaceService: WorkspaceService;
10
+ validateFile(pathOrUri: string | URI): Promise<FileValidationResult>;
11
+ protected findInSecondaryWorkspaceRoots(pathOrUri: string | URI): Promise<URI | undefined>;
12
+ }
13
+ //# sourceMappingURL=context-file-validation-service-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-file-validation-service-impl.d.ts","sourceRoot":"","sources":["../../src/browser/context-file-validation-service-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAuB,MAAM,4DAA4D,CAAC;AACrJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBACa,gCAAiC,YAAW,4BAA4B;IAGjF,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC;cAmD1D,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;CAiCnG"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ContextFileValidationServiceImpl = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const core_1 = require("@theia/core");
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
+ const context_file_validation_service_1 = require("@theia/ai-chat/lib/browser/context-file-validation-service");
25
+ const workspace_functions_1 = require("./workspace-functions");
26
+ let ContextFileValidationServiceImpl = class ContextFileValidationServiceImpl {
27
+ async validateFile(pathOrUri) {
28
+ try {
29
+ const resolvedUri = await this.workspaceScope.resolveToUri(pathOrUri);
30
+ if (!resolvedUri) {
31
+ return {
32
+ state: context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND,
33
+ message: 'File does not exist'
34
+ };
35
+ }
36
+ const exists = await this.fileService.exists(resolvedUri);
37
+ if (!exists) {
38
+ const secondaryRootUri = await this.findInSecondaryWorkspaceRoots(pathOrUri);
39
+ if (secondaryRootUri) {
40
+ return {
41
+ state: context_file_validation_service_1.FileValidationState.INVALID_SECONDARY,
42
+ message: 'File is in a secondary workspace root. AI agents can only access files in the first workspace root.'
43
+ };
44
+ }
45
+ return {
46
+ state: context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND,
47
+ message: 'File does not exist'
48
+ };
49
+ }
50
+ if (this.workspaceScope.isInPrimaryWorkspace(resolvedUri)) {
51
+ return {
52
+ state: context_file_validation_service_1.FileValidationState.VALID
53
+ };
54
+ }
55
+ if (this.workspaceScope.isInWorkspace(resolvedUri)) {
56
+ return {
57
+ state: context_file_validation_service_1.FileValidationState.INVALID_SECONDARY,
58
+ message: 'File is in a secondary workspace root. AI agents can only access files in the first workspace root.'
59
+ };
60
+ }
61
+ return {
62
+ state: context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND,
63
+ message: 'File does not exist in the workspace'
64
+ };
65
+ }
66
+ catch (error) {
67
+ return {
68
+ state: context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND,
69
+ message: 'File does not exist'
70
+ };
71
+ }
72
+ }
73
+ async findInSecondaryWorkspaceRoots(pathOrUri) {
74
+ const roots = this.workspaceService.tryGetRoots();
75
+ if (roots.length <= 1) {
76
+ return undefined;
77
+ }
78
+ for (let i = 1; i < roots.length; i++) {
79
+ const root = roots[i];
80
+ let candidateUri;
81
+ if (pathOrUri instanceof core_1.URI) {
82
+ candidateUri = pathOrUri;
83
+ }
84
+ else if (pathOrUri.includes('://')) {
85
+ try {
86
+ candidateUri = new core_1.URI(pathOrUri);
87
+ }
88
+ catch {
89
+ continue;
90
+ }
91
+ }
92
+ else {
93
+ candidateUri = root.resource.resolve(pathOrUri);
94
+ }
95
+ try {
96
+ if (await this.fileService.exists(candidateUri)) {
97
+ return candidateUri;
98
+ }
99
+ }
100
+ catch {
101
+ continue;
102
+ }
103
+ }
104
+ return undefined;
105
+ }
106
+ };
107
+ exports.ContextFileValidationServiceImpl = ContextFileValidationServiceImpl;
108
+ tslib_1.__decorate([
109
+ (0, inversify_1.inject)(file_service_1.FileService),
110
+ tslib_1.__metadata("design:type", file_service_1.FileService)
111
+ ], ContextFileValidationServiceImpl.prototype, "fileService", void 0);
112
+ tslib_1.__decorate([
113
+ (0, inversify_1.inject)(workspace_functions_1.WorkspaceFunctionScope),
114
+ tslib_1.__metadata("design:type", workspace_functions_1.WorkspaceFunctionScope)
115
+ ], ContextFileValidationServiceImpl.prototype, "workspaceScope", void 0);
116
+ tslib_1.__decorate([
117
+ (0, inversify_1.inject)(workspace_service_1.WorkspaceService),
118
+ tslib_1.__metadata("design:type", workspace_service_1.WorkspaceService)
119
+ ], ContextFileValidationServiceImpl.prototype, "workspaceService", void 0);
120
+ exports.ContextFileValidationServiceImpl = ContextFileValidationServiceImpl = tslib_1.__decorate([
121
+ (0, inversify_1.injectable)()
122
+ ], ContextFileValidationServiceImpl);
123
+ //# sourceMappingURL=context-file-validation-service-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-file-validation-service-impl.js","sourceRoot":"","sources":["../../src/browser/context-file-validation-service-impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context-file-validation-service-impl.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-file-validation-service-impl.spec.d.ts","sourceRoot":"","sources":["../../src/browser/context-file-validation-service-impl.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 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 inversify_1 = require("@theia/core/shared/inversify");
24
+ const core_1 = require("@theia/core");
25
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
26
+ const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
27
+ const context_file_validation_service_1 = require("@theia/ai-chat/lib/browser/context-file-validation-service");
28
+ const context_file_validation_service_impl_1 = require("./context-file-validation-service-impl");
29
+ const workspace_functions_1 = require("./workspace-functions");
30
+ disableJSDOM();
31
+ describe('ContextFileValidationService', () => {
32
+ let container;
33
+ let validationService;
34
+ let mockFileService;
35
+ let mockWorkspaceService;
36
+ let mockPreferenceService;
37
+ const workspaceRoot = new core_1.URI('file:///home/user/workspace');
38
+ // Store URIs as actual URI strings, exactly as URI.toString() would produce them
39
+ const existingFiles = new Map([
40
+ // Files inside workspace
41
+ ['file:///home/user/workspace/src/index.tsx', true],
42
+ ['file:///home/user/workspace/package.json', true],
43
+ ['file:///home/user/workspace/README.md', true],
44
+ ['file:///home/user/workspace/src/components/Button.tsx', true],
45
+ ['file:///home/user/workspace/config.json', true],
46
+ ['file:///home/user/workspace/src/file%20with%20spaces.tsx', true],
47
+ // Files outside workspace (these exist but should be rejected)
48
+ ['file:///etc/passwd', true],
49
+ ['file:///etc/hosts', true],
50
+ ['file:///home/other-user/secret.txt', true],
51
+ ['file:///tmp/temporary-file.log', true]
52
+ ]);
53
+ before(() => {
54
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
55
+ });
56
+ after(() => {
57
+ disableJSDOM();
58
+ });
59
+ beforeEach(async () => {
60
+ container = new inversify_1.Container();
61
+ // Mock WorkspaceService
62
+ mockWorkspaceService = {
63
+ tryGetRoots: () => [{
64
+ resource: workspaceRoot,
65
+ isDirectory: true
66
+ }],
67
+ roots: Promise.resolve([{
68
+ resource: workspaceRoot,
69
+ isDirectory: true
70
+ }])
71
+ };
72
+ // Mock FileService
73
+ mockFileService = {
74
+ exists: async (uri) => {
75
+ const normalizedUri = uri.path.normalize();
76
+ const normalizedUriString = uri.withPath(normalizedUri).toString();
77
+ const uriString = uri.toString();
78
+ const exists = (existingFiles.has(uriString) && existingFiles.get(uriString) === true) ||
79
+ (existingFiles.has(normalizedUriString) && existingFiles.get(normalizedUriString) === true);
80
+ return exists;
81
+ },
82
+ resolve: async (uri) => {
83
+ const uriString = uri.toString();
84
+ if (existingFiles.has(uriString) && existingFiles.get(uriString) === true) {
85
+ return {
86
+ resource: uri,
87
+ isDirectory: false
88
+ };
89
+ }
90
+ throw new Error('File not found');
91
+ }
92
+ };
93
+ // Mock PreferenceService
94
+ mockPreferenceService = {
95
+ get: () => false
96
+ };
97
+ container.bind(file_service_1.FileService).toConstantValue(mockFileService);
98
+ container.bind(workspace_service_1.WorkspaceService).toConstantValue(mockWorkspaceService);
99
+ container.bind(core_1.PreferenceService).toConstantValue(mockPreferenceService);
100
+ container.bind(workspace_functions_1.WorkspaceFunctionScope).toSelf();
101
+ container.bind(context_file_validation_service_impl_1.ContextFileValidationServiceImpl).toSelf();
102
+ container.bind(context_file_validation_service_1.ContextFileValidationService).toService(context_file_validation_service_impl_1.ContextFileValidationServiceImpl);
103
+ validationService = await container.getAsync(context_file_validation_service_1.ContextFileValidationService);
104
+ });
105
+ describe('validateFile with relative paths', () => {
106
+ it('should validate existing file with relative path', async () => {
107
+ const result = await validationService.validateFile('src/index.tsx');
108
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
109
+ });
110
+ it('should reject non-existing file with relative path', async () => {
111
+ const result = await validationService.validateFile('src/missing.tsx');
112
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
113
+ });
114
+ it('should validate nested file with relative path', async () => {
115
+ const result = await validationService.validateFile('src/components/Button.tsx');
116
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
117
+ });
118
+ it('should validate file in root with relative path', async () => {
119
+ const result = await validationService.validateFile('package.json');
120
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
121
+ });
122
+ });
123
+ describe('validateFile with absolute file paths', () => {
124
+ it('should validate existing file with absolute path within workspace', async () => {
125
+ const result = await validationService.validateFile('/home/user/workspace/src/index.tsx');
126
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
127
+ });
128
+ it('should reject non-existing file with absolute path within workspace', async () => {
129
+ const result = await validationService.validateFile('/home/user/workspace/src/missing.tsx');
130
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
131
+ });
132
+ it('should reject existing file with absolute path outside workspace (/etc/passwd)', async () => {
133
+ const result = await validationService.validateFile('/etc/passwd');
134
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
135
+ });
136
+ it('should reject existing file with absolute path outside workspace (/etc/hosts)', async () => {
137
+ const result = await validationService.validateFile('/etc/hosts');
138
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
139
+ });
140
+ it('should reject existing file with absolute path in other user directory', async () => {
141
+ const result = await validationService.validateFile('/home/other-user/secret.txt');
142
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
143
+ });
144
+ it('should reject existing file with absolute path in /tmp', async () => {
145
+ const result = await validationService.validateFile('/tmp/temporary-file.log');
146
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
147
+ });
148
+ it('should reject non-existing file with absolute path outside workspace', async () => {
149
+ const result = await validationService.validateFile('/var/log/nonexistent.log');
150
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
151
+ });
152
+ it('should validate nested file with absolute path within workspace', async () => {
153
+ const result = await validationService.validateFile('/home/user/workspace/src/components/Button.tsx');
154
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
155
+ });
156
+ });
157
+ describe('validateFile with file:// URIs', () => {
158
+ it('should validate existing file with file:// URI within workspace', async () => {
159
+ const result = await validationService.validateFile('file:///home/user/workspace/src/index.tsx');
160
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
161
+ });
162
+ it('should reject non-existing file with file:// URI within workspace', async () => {
163
+ const result = await validationService.validateFile('file:///home/user/workspace/src/missing.tsx');
164
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
165
+ });
166
+ it('should reject existing file with file:// URI outside workspace (/etc/passwd)', async () => {
167
+ const result = await validationService.validateFile('file:///etc/passwd');
168
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
169
+ });
170
+ it('should reject existing file with file:// URI outside workspace (/etc/hosts)', async () => {
171
+ const result = await validationService.validateFile('file:///etc/hosts');
172
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
173
+ });
174
+ it('should reject existing file with file:// URI in other user directory', async () => {
175
+ const result = await validationService.validateFile('file:///home/other-user/secret.txt');
176
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
177
+ });
178
+ it('should reject existing file with file:// URI in /tmp', async () => {
179
+ const result = await validationService.validateFile('file:///tmp/temporary-file.log');
180
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
181
+ });
182
+ it('should reject non-existing file with file:// URI outside workspace', async () => {
183
+ const result = await validationService.validateFile('file:///var/log/nonexistent.log');
184
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
185
+ });
186
+ it('should validate file at workspace root with file:// URI', async () => {
187
+ const result = await validationService.validateFile('file:///home/user/workspace/package.json');
188
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
189
+ });
190
+ });
191
+ describe('validateFile with URI objects', () => {
192
+ it('should validate existing file with URI object within workspace', async () => {
193
+ const uri = new core_1.URI('file:///home/user/workspace/src/index.tsx');
194
+ const result = await validationService.validateFile(uri);
195
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
196
+ });
197
+ it('should reject non-existing file with URI object within workspace', async () => {
198
+ const uri = new core_1.URI('file:///home/user/workspace/src/missing.tsx');
199
+ const result = await validationService.validateFile(uri);
200
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
201
+ });
202
+ it('should reject existing file with URI object outside workspace', async () => {
203
+ const uri = new core_1.URI('file:///etc/passwd');
204
+ const result = await validationService.validateFile(uri);
205
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
206
+ });
207
+ it('should reject another existing file with URI object outside workspace', async () => {
208
+ const uri = new core_1.URI('file:///home/other-user/secret.txt');
209
+ const result = await validationService.validateFile(uri);
210
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
211
+ });
212
+ });
213
+ describe('validateFile with no workspace', () => {
214
+ beforeEach(async () => {
215
+ // Override mock to return no workspace roots
216
+ mockWorkspaceService.tryGetRoots = () => [];
217
+ });
218
+ it('should reject any file when no workspace is open', async () => {
219
+ const result = await validationService.validateFile('src/index.tsx');
220
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
221
+ });
222
+ it('should reject absolute path when no workspace is open', async () => {
223
+ const result = await validationService.validateFile('/home/user/file.txt');
224
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
225
+ });
226
+ it('should reject file:// URI when no workspace is open', async () => {
227
+ const result = await validationService.validateFile('file:///home/user/file.txt');
228
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
229
+ });
230
+ });
231
+ describe('validateFile with multiple workspace roots', () => {
232
+ const workspaceRoot2 = new core_1.URI('file:///home/user/other-project');
233
+ beforeEach(async () => {
234
+ // Override mock to return multiple workspace roots
235
+ mockWorkspaceService.tryGetRoots = () => [
236
+ {
237
+ resource: workspaceRoot,
238
+ isDirectory: true
239
+ },
240
+ {
241
+ resource: workspaceRoot2,
242
+ isDirectory: true
243
+ }
244
+ ];
245
+ // Add files in the second workspace
246
+ existingFiles.set('file:///home/user/other-project/index.js', true);
247
+ existingFiles.set('file:///home/user/other-project/lib/utils.js', true);
248
+ });
249
+ afterEach(() => {
250
+ // Clean up files added for this test
251
+ existingFiles.delete('file:///home/user/other-project/index.js');
252
+ existingFiles.delete('file:///home/user/other-project/lib/utils.js');
253
+ });
254
+ it('should validate file in first workspace root', async () => {
255
+ const result = await validationService.validateFile('src/index.tsx');
256
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
257
+ });
258
+ it('should validate file in second workspace root with relative path', async () => {
259
+ const result = await validationService.validateFile('index.js');
260
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_SECONDARY);
261
+ });
262
+ it('should validate file in second workspace root with absolute path', async () => {
263
+ const result = await validationService.validateFile('/home/user/other-project/index.js');
264
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_SECONDARY);
265
+ });
266
+ it('should validate file in second workspace root with file:// URI', async () => {
267
+ const result = await validationService.validateFile('file:///home/user/other-project/lib/utils.js');
268
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_SECONDARY);
269
+ });
270
+ it('should still reject files outside both workspace roots', async () => {
271
+ const result = await validationService.validateFile('/etc/passwd');
272
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
273
+ });
274
+ });
275
+ describe('validateFile error handling', () => {
276
+ it('should return false when FileService.exists throws error', async () => {
277
+ mockFileService.exists = async () => {
278
+ throw new Error('Permission denied');
279
+ };
280
+ const result = await validationService.validateFile('src/index.tsx');
281
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
282
+ });
283
+ it('should handle Windows-style paths', async () => {
284
+ // Add a Windows path to existing files
285
+ // Note: URI encoding will convert 'c:' to 'c%3A'
286
+ const windowsRoot = new core_1.URI('file:///c:/Users/user/project');
287
+ const windowsFile = new core_1.URI('file:///c:/Users/user/project/file.txt');
288
+ existingFiles.set(windowsFile.toString(), true);
289
+ // Override workspace to use Windows path
290
+ mockWorkspaceService.tryGetRoots = () => [{
291
+ resource: windowsRoot,
292
+ isDirectory: true
293
+ }];
294
+ const result = await validationService.validateFile('file:///c:/Users/user/project/file.txt');
295
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
296
+ // Clean up
297
+ existingFiles.delete(windowsFile.toString());
298
+ });
299
+ it('should reject Windows system files outside workspace', async () => {
300
+ // Add Windows system file
301
+ const windowsSystemFile = 'file:///c:/Windows/System32/config/sam';
302
+ existingFiles.set(windowsSystemFile, true);
303
+ // Keep workspace as Linux for this test
304
+ const result = await validationService.validateFile('file:///c:/Windows/System32/config/sam');
305
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
306
+ // Clean up
307
+ existingFiles.delete(windowsSystemFile);
308
+ });
309
+ });
310
+ describe('edge cases', () => {
311
+ it('should handle paths with special characters', async () => {
312
+ const result = await validationService.validateFile('file:///home/user/workspace/src/file%20with%20spaces.tsx');
313
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
314
+ });
315
+ it('should handle paths with normalized separators', async () => {
316
+ const result = await validationService.validateFile('src\\components\\Button.tsx');
317
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.VALID);
318
+ });
319
+ it('should reject empty path', async () => {
320
+ const result = await validationService.validateFile('');
321
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
322
+ });
323
+ it('should reject parent directory references in relative paths', async () => {
324
+ // Parent directory references are not allowed for security and clarity
325
+ const result = await validationService.validateFile('src/../config.json');
326
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
327
+ });
328
+ it('should reject path traversal attempts with parent directory references', async () => {
329
+ // Path traversal attempts should be rejected
330
+ const result = await validationService.validateFile('../../../../../../etc/passwd');
331
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
332
+ });
333
+ it('should reject absolute paths with parent directory references', async () => {
334
+ // Even absolute paths with .. should be rejected for consistency
335
+ const result = await validationService.validateFile('/home/user/workspace/src/../config.json');
336
+ (0, chai_1.expect)(result.state).to.equal(context_file_validation_service_1.FileValidationState.INVALID_NOT_FOUND);
337
+ });
338
+ });
339
+ });
340
+ //# sourceMappingURL=context-file-validation-service-impl.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-file-validation-service-impl.spec.js","sourceRoot":"","sources":["../../src/browser/context-file-validation-service-impl.spec.ts"],"names":[],"mappings":"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"}