@theia/ai-ide 1.77.0-next.7 → 1.77.0-next.71

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 (190) hide show
  1. package/lib/browser/{project-info-agent.d.ts → agents-md-agent.d.ts} +2 -2
  2. package/lib/browser/agents-md-agent.d.ts.map +1 -0
  3. package/lib/browser/{project-info-agent.js → agents-md-agent.js} +16 -15
  4. package/lib/browser/agents-md-agent.js.map +1 -0
  5. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js +1 -1
  6. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js.map +1 -1
  7. package/lib/browser/ai-configuration/ai-configuration-resource.js +2 -1
  8. package/lib/browser/ai-configuration/ai-configuration-resource.js.map +1 -1
  9. package/lib/browser/ai-configuration/ai-configuration-search-widget.js +1 -1
  10. package/lib/browser/ai-configuration/ai-configuration-search-widget.js.map +1 -1
  11. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts +11 -3
  12. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts.map +1 -1
  13. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js +64 -29
  14. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js.map +1 -1
  15. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js +480 -1
  16. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js.map +1 -1
  17. package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts +10 -0
  18. package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts.map +1 -1
  19. package/lib/browser/ai-configuration/categories/agent-detail-model.js +8 -0
  20. package/lib/browser/ai-configuration/categories/agent-detail-model.js.map +1 -1
  21. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.d.ts +2 -0
  22. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.d.ts.map +1 -0
  23. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.js +74 -0
  24. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.js.map +1 -0
  25. package/lib/browser/ai-configuration/categories/agent-detail-view.d.ts.map +1 -1
  26. package/lib/browser/ai-configuration/categories/agent-detail-view.js +3 -2
  27. package/lib/browser/ai-configuration/categories/agent-detail-view.js.map +1 -1
  28. package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts +6 -1
  29. package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts.map +1 -1
  30. package/lib/browser/ai-configuration/categories/agents-configuration-category.js +20 -2
  31. package/lib/browser/ai-configuration/categories/agents-configuration-category.js.map +1 -1
  32. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js +5 -4
  33. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js.map +1 -1
  34. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js +2 -1
  35. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js.map +1 -1
  36. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js +2 -2
  37. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js.map +1 -1
  38. package/lib/browser/ai-configuration/categories/tools-configuration-category.js +1 -1
  39. package/lib/browser/ai-configuration/categories/tools-configuration-category.js.map +1 -1
  40. package/lib/browser/ai-configuration/categories/variables-configuration-category.js +1 -1
  41. package/lib/browser/ai-configuration/categories/variables-configuration-category.js.map +1 -1
  42. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
  43. package/lib/browser/ai-configuration/language-model-renderer.js +8 -15
  44. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
  45. package/lib/browser/ai-configuration/language-model-renderer.spec.js +40 -1
  46. package/lib/browser/ai-configuration/language-model-renderer.spec.js.map +1 -1
  47. package/lib/browser/ai-sessions-widget.js +1 -1
  48. package/lib/browser/ai-sessions-widget.js.map +1 -1
  49. package/lib/browser/app-tester-prompt-template.d.ts.map +1 -1
  50. package/lib/browser/app-tester-prompt-template.js +4 -6
  51. package/lib/browser/app-tester-prompt-template.js.map +1 -1
  52. package/lib/browser/architect-prompt-template.d.ts.map +1 -1
  53. package/lib/browser/architect-prompt-template.js +20 -3
  54. package/lib/browser/architect-prompt-template.js.map +1 -1
  55. package/lib/browser/chat-session-item.js +2 -1
  56. package/lib/browser/chat-session-item.js.map +1 -1
  57. package/lib/browser/chat-sessions-welcome-message-provider.js +1 -1
  58. package/lib/browser/chat-sessions-welcome-message-provider.js.map +1 -1
  59. package/lib/browser/code-reviewer-prompt-template.d.ts.map +1 -1
  60. package/lib/browser/code-reviewer-prompt-template.js +2 -1
  61. package/lib/browser/code-reviewer-prompt-template.js.map +1 -1
  62. package/lib/browser/commit-message-agent.spec.js +2 -1
  63. package/lib/browser/commit-message-agent.spec.js.map +1 -1
  64. package/lib/browser/commit-message-runner.spec.js +2 -1
  65. package/lib/browser/commit-message-runner.spec.js.map +1 -1
  66. package/lib/browser/context-file-validation-service-impl.spec.js +2 -1
  67. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -1
  68. package/lib/browser/explore-prompt-template.d.ts.map +1 -1
  69. package/lib/browser/explore-prompt-template.js +2 -1
  70. package/lib/browser/explore-prompt-template.js.map +1 -1
  71. package/lib/browser/file-changeset-functions.d.ts +3 -1
  72. package/lib/browser/file-changeset-functions.d.ts.map +1 -1
  73. package/lib/browser/file-changeset-functions.js +60 -6
  74. package/lib/browser/file-changeset-functions.js.map +1 -1
  75. package/lib/browser/file-changeset-functions.spec.js +73 -9
  76. package/lib/browser/file-changeset-functions.spec.js.map +1 -1
  77. package/lib/browser/frontend-module.js +4 -4
  78. package/lib/browser/frontend-module.js.map +1 -1
  79. package/lib/browser/git-changes-tool.d.ts +3 -3
  80. package/lib/browser/git-changes-tool.d.ts.map +1 -1
  81. package/lib/browser/git-changes-tool.js +7 -11
  82. package/lib/browser/git-changes-tool.js.map +1 -1
  83. package/lib/browser/git-changes-tool.spec.js +16 -3
  84. package/lib/browser/git-changes-tool.spec.js.map +1 -1
  85. package/lib/browser/multi-root-paths.spec.d.ts +2 -0
  86. package/lib/browser/multi-root-paths.spec.d.ts.map +1 -0
  87. package/lib/browser/multi-root-paths.spec.js +293 -0
  88. package/lib/browser/multi-root-paths.spec.js.map +1 -0
  89. package/lib/browser/remember-command-contribution.d.ts +2 -2
  90. package/lib/browser/remember-command-contribution.js +6 -6
  91. package/lib/browser/remember-command-contribution.js.map +1 -1
  92. package/lib/browser/review/pr-review-prompt-template.d.ts.map +1 -1
  93. package/lib/browser/review/pr-review-prompt-template.js +3 -2
  94. package/lib/browser/review/pr-review-prompt-template.js.map +1 -1
  95. package/lib/browser/task-context-file-storage-service.d.ts.map +1 -1
  96. package/lib/browser/task-context-file-storage-service.js +1 -2
  97. package/lib/browser/task-context-file-storage-service.js.map +1 -1
  98. package/lib/browser/task-context-file-storage-service.spec.d.ts +2 -0
  99. package/lib/browser/task-context-file-storage-service.spec.d.ts.map +1 -0
  100. package/lib/browser/task-context-file-storage-service.spec.js +111 -0
  101. package/lib/browser/task-context-file-storage-service.spec.js.map +1 -0
  102. package/lib/browser/user-interaction-tool-renderer.js +1 -1
  103. package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
  104. package/lib/browser/user-interaction-tool.d.ts +12 -1
  105. package/lib/browser/user-interaction-tool.d.ts.map +1 -1
  106. package/lib/browser/user-interaction-tool.js +35 -9
  107. package/lib/browser/user-interaction-tool.js.map +1 -1
  108. package/lib/browser/user-interaction-tool.spec.js +15 -2
  109. package/lib/browser/user-interaction-tool.spec.js.map +1 -1
  110. package/lib/browser/workspace-functions.d.ts +20 -17
  111. package/lib/browser/workspace-functions.d.ts.map +1 -1
  112. package/lib/browser/workspace-functions.js +77 -115
  113. package/lib/browser/workspace-functions.js.map +1 -1
  114. package/lib/browser/workspace-functions.spec.js +54 -60
  115. package/lib/browser/workspace-functions.spec.js.map +1 -1
  116. package/lib/browser/workspace-launch-provider.js +1 -1
  117. package/lib/browser/workspace-launch-provider.js.map +1 -1
  118. package/lib/browser/workspace-launch-provider.spec.js +5 -3
  119. package/lib/browser/workspace-launch-provider.spec.js.map +1 -1
  120. package/lib/browser/workspace-search-provider.spec.js +2 -1
  121. package/lib/browser/workspace-search-provider.spec.js.map +1 -1
  122. package/lib/browser/workspace-task-provider.js +1 -1
  123. package/lib/browser/workspace-task-provider.js.map +1 -1
  124. package/lib/browser/workspace-task-provider.spec.js +6 -4
  125. package/lib/browser/workspace-task-provider.spec.js.map +1 -1
  126. package/lib/common/agents-md-prompt-template.d.ts +6 -0
  127. package/lib/common/agents-md-prompt-template.d.ts.map +1 -0
  128. package/lib/common/agents-md-prompt-template.js +165 -0
  129. package/lib/common/agents-md-prompt-template.js.map +1 -0
  130. package/lib/common/coder-replace-prompt-template.d.ts.map +1 -1
  131. package/lib/common/coder-replace-prompt-template.js +4 -6
  132. package/lib/common/coder-replace-prompt-template.js.map +1 -1
  133. package/lib/common/command-prompt-template.js +1 -1
  134. package/lib/common/command-prompt-template.js.map +1 -1
  135. package/lib/common/orchestrator-prompt-template.js +1 -1
  136. package/lib/common/orchestrator-prompt-template.js.map +1 -1
  137. package/lib/common/universal-prompt-template.js +1 -1
  138. package/lib/common/universal-prompt-template.js.map +1 -1
  139. package/lib/common/workspace-preferences.d.ts +1 -0
  140. package/lib/common/workspace-preferences.d.ts.map +1 -1
  141. package/lib/common/workspace-preferences.js +10 -1
  142. package/lib/common/workspace-preferences.js.map +1 -1
  143. package/lib/package.spec.js +1 -0
  144. package/lib/package.spec.js.map +1 -1
  145. package/package.json +27 -28
  146. package/src/browser/{project-info-agent.ts → agents-md-agent.ts} +11 -10
  147. package/src/browser/ai-configuration/categories/agent-capabilities-settings.spec.ts +508 -2
  148. package/src/browser/ai-configuration/categories/agent-capabilities-settings.tsx +92 -33
  149. package/src/browser/ai-configuration/categories/agent-detail-model.spec.ts +78 -0
  150. package/src/browser/ai-configuration/categories/agent-detail-model.ts +18 -0
  151. package/src/browser/ai-configuration/categories/agent-detail-view.tsx +15 -12
  152. package/src/browser/ai-configuration/categories/agents-configuration-category.tsx +18 -3
  153. package/src/browser/ai-configuration/categories/provider-model-discovery-section.tsx +3 -3
  154. package/src/browser/ai-configuration/categories/token-usage-configuration-category.tsx +2 -2
  155. package/src/browser/ai-configuration/language-model-renderer.spec.ts +38 -0
  156. package/src/browser/ai-configuration/language-model-renderer.tsx +6 -15
  157. package/src/browser/app-tester-prompt-template.ts +4 -7
  158. package/src/browser/architect-prompt-template.ts +4 -4
  159. package/src/browser/code-reviewer-prompt-template.ts +2 -2
  160. package/src/browser/context-file-validation-service-impl.spec.ts +2 -1
  161. package/src/browser/explore-prompt-template.ts +2 -2
  162. package/src/browser/file-changeset-functions.spec.ts +91 -9
  163. package/src/browser/file-changeset-functions.ts +62 -7
  164. package/src/browser/frontend-module.ts +4 -4
  165. package/src/browser/git-changes-tool.spec.ts +16 -1
  166. package/src/browser/git-changes-tool.ts +6 -10
  167. package/src/browser/multi-root-paths.spec.ts +340 -0
  168. package/src/browser/remember-command-contribution.ts +7 -7
  169. package/src/browser/review/pr-review-prompt-template.ts +3 -3
  170. package/src/browser/style/index.css +15 -0
  171. package/src/browser/task-context-file-storage-service.spec.ts +125 -0
  172. package/src/browser/task-context-file-storage-service.ts +3 -4
  173. package/src/browser/user-interaction-tool.spec.ts +18 -1
  174. package/src/browser/user-interaction-tool.ts +34 -9
  175. package/src/browser/workspace-functions.spec.ts +54 -60
  176. package/src/browser/workspace-functions.ts +80 -125
  177. package/src/browser/workspace-launch-provider.spec.ts +3 -2
  178. package/src/browser/workspace-task-provider.spec.ts +4 -3
  179. package/src/common/{project-info-prompt-template.ts → agents-md-prompt-template.ts} +54 -46
  180. package/src/common/coder-replace-prompt-template.ts +5 -7
  181. package/src/common/command-prompt-template.ts +1 -1
  182. package/src/common/orchestrator-prompt-template.ts +1 -1
  183. package/src/common/universal-prompt-template.ts +1 -1
  184. package/src/common/workspace-preferences.ts +10 -0
  185. package/lib/browser/project-info-agent.d.ts.map +0 -1
  186. package/lib/browser/project-info-agent.js.map +0 -1
  187. package/lib/common/project-info-prompt-template.d.ts +0 -6
  188. package/lib/common/project-info-prompt-template.d.ts.map +0 -1
  189. package/lib/common/project-info-prompt-template.js +0 -146
  190. package/lib/common/project-info-prompt-template.js.map +0 -1
@@ -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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"}
@@ -4,8 +4,8 @@ import { PromptService } from '@theia/ai-core/lib/common';
4
4
  * Contribution that registers the `/remember` slash command for AI chat agents.
5
5
  *
6
6
  * This command allows Architect and Coder agents to extract important topics
7
- * from the current conversation and delegate to the ProjectInfo agent to update
8
- * the persistent project context file.
7
+ * from the current conversation and delegate to the AgentsMd agent to update
8
+ * the workspace's `AGENTS.md`.
9
9
  */
10
10
  export declare class RememberCommandContribution implements FrontendApplicationContribution {
11
11
  protected readonly promptService: PromptService;
@@ -27,8 +27,8 @@ const coder_agent_1 = require("./coder-agent");
27
27
  * Contribution that registers the `/remember` slash command for AI chat agents.
28
28
  *
29
29
  * This command allows Architect and Coder agents to extract important topics
30
- * from the current conversation and delegate to the ProjectInfo agent to update
31
- * the persistent project context file.
30
+ * from the current conversation and delegate to the AgentsMd agent to update
31
+ * the workspace's `AGENTS.md`.
32
32
  */
33
33
  let RememberCommandContribution = class RememberCommandContribution {
34
34
  onStart() {
@@ -76,9 +76,9 @@ let RememberCommandContribution = class RememberCommandContribution {
76
76
  - What the user corrected or clarified
77
77
  - Why your initial understanding was incomplete
78
78
  - The specific project context that was provided
79
- 3. **Delegate to ProjectInfo agent**: Use the ~{${ai_core_1.AGENT_DELEGATION_FUNCTION_ID}} tool to send the extracted information to the ProjectInfo agent:
80
- - Agent ID: 'ProjectInfo'
81
- - Prompt: Ask the ProjectInfo agent to review the extracted information and update the project information file
79
+ 3. **Delegate to the AgentsMd agent**: Use the ~{${ai_core_1.AGENT_DELEGATION_FUNCTION_ID}} tool to send the extracted information to the AgentsMd agent:
80
+ - Agent ID: 'AgentsMd'
81
+ - Prompt: Ask the AgentsMd agent to review the extracted information and update the project context file
82
82
 
83
83
  ## Example Delegation
84
84
  \`\`\`
@@ -86,7 +86,7 @@ let RememberCommandContribution = class RememberCommandContribution {
86
86
 
87
87
  [Your extracted corrections and user-provided context here]
88
88
 
89
- Update /.prompts/project-info.prompttemplate by adding this information to the appropriate sections. Focus on information that prevents future misunderstandings.
89
+ Update ${ai_core_1.AGENTS_MD_FILE_NAME} by adding this information to the appropriate sections. Focus on information that prevents future misunderstandings.
90
90
  \`\`\`
91
91
 
92
92
  Remember: Only extract information that prevents future AI agents from making the same mistakes or assumptions you made that were corrected by the user.`;
@@ -1 +1 @@
1
- {"version":3,"file":"remember-command-contribution.js","sourceRoot":"","sources":["../../src/browser/remember-command-contribution.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;;;;AAGhF,4DAAkE;AAClE,sDAA0D;AAC1D,sCAAkC;AAClC,4CAA8D;AAC9D,uDAAqD;AACrD,+CAA6C;AAE7C;;;;;;GAMG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAKpC,OAAO;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnC,CAAC;IAES,uBAAuB;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC;YACxC,EAAE,EAAE,+BAA+B;YACnC,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,UAAU;YACvB,kBAAkB,EAAE,UAAG,CAAC,QAAQ,CAC5B,0CAA0C,EAC1C,0DAA0D,CAC7D;YACD,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAC7B,2CAA2C,EAC3C,cAAc,CACjB;YACD,aAAa,EAAE,CAAC,kCAAgB,EAAE,0BAAY,CAAC;SAClD,CAAC,CAAC;IACP,CAAC;IAES,oBAAoB;QAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDA6BuC,sCAA4B;;;;;;;;;;;;;6JAa2E,CAAC;IAC1J,CAAC;CACJ,CAAA;AA1EY,kEAA2B;AAGjB;IADlB,IAAA,kBAAM,EAAC,sBAAa,CAAC;;kEAC0B;sCAHvC,2BAA2B;IADvC,IAAA,sBAAU,GAAE;GACA,2BAA2B,CA0EvC"}
1
+ {"version":3,"file":"remember-command-contribution.js","sourceRoot":"","sources":["../../src/browser/remember-command-contribution.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;;;;AAGhF,4DAAkE;AAClE,sDAA0D;AAC1D,sCAAkC;AAClC,4CAAmF;AACnF,uDAAqD;AACrD,+CAA6C;AAE7C;;;;;;GAMG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAKpC,OAAO;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnC,CAAC;IAES,uBAAuB;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC;YACxC,EAAE,EAAE,+BAA+B;YACnC,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,UAAU;YACvB,kBAAkB,EAAE,UAAG,CAAC,QAAQ,CAC5B,0CAA0C,EAC1C,0DAA0D,CAC7D;YACD,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAC7B,2CAA2C,EAC3C,cAAc,CACjB;YACD,aAAa,EAAE,CAAC,kCAAgB,EAAE,0BAAY,CAAC;SAClD,CAAC,CAAC;IACP,CAAC;IAES,oBAAoB;QAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDA6BwC,sCAA4B;;;;;;;;;;aAUtE,6BAAmB;;;6JAG6H,CAAC;IAC1J,CAAC;CACJ,CAAA;AA1EY,kEAA2B;AAGjB;IADlB,IAAA,kBAAM,EAAC,sBAAa,CAAC;;kEAC0B;sCAHvC,2BAA2B;IADvC,IAAA,sBAAU,GAAE;GACA,2BAA2B,CA0EvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pr-review-prompt-template.d.ts","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAgB/D,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,0CAA0C,iCAAiC,CAAC;AACzF,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,wCAAwC,+BAA+B,CAAC;AACrF,eAAO,MAAM,4CAA4C,mCAAmC,CAAC;AAC7F,eAAO,MAAM,6CAA6C,oCAAoC,CAAC;AAE/F,eAAO,MAAM,oBAAoB,EAAE,kBA2clC,CAAC"}
1
+ {"version":3,"file":"pr-review-prompt-template.d.ts","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAqD,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAgBlH,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,0CAA0C,iCAAiC,CAAC;AACzF,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,wCAAwC,+BAA+B,CAAC;AACrF,eAAO,MAAM,4CAA4C,mCAAmC,CAAC;AAC7F,eAAO,MAAM,6CAA6C,oCAAoC,CAAC;AAE/F,eAAO,MAAM,oBAAoB,EAAE,kBA2clC,CAAC"}
@@ -17,6 +17,7 @@
17
17
  // *****************************************************************************
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.prReviewSystemPrompt = exports.PR_REVIEW_PENDING_GITHUB_REVIEW_CAPABILITY_ID = exports.PR_REVIEW_CODEBASE_EXPLORATION_CAPABILITY_ID = exports.PR_REVIEW_LOCAL_VALIDATION_CAPABILITY_ID = exports.PR_REVIEW_LOCAL_CHECKOUT_CAPABILITY_ID = exports.PR_REVIEW_GITHUB_INFORMATION_CAPABILITY_ID = exports.PR_REVIEW_SYSTEM_PROMPT_ID = void 0;
20
+ const common_1 = require("@theia/ai-core/lib/common");
20
21
  const context_variables_1 = require("../../common/context-variables");
21
22
  const workspace_functions_1 = require("../../common/workspace-functions");
22
23
  const task_context_function_ids_1 = require("../../common/task-context-function-ids");
@@ -235,7 +236,7 @@ Review with both goals in mind.
235
236
  **Second, surface issues (this drives the Findings):**
236
237
  - **Correctness:** Does the code do what it claims?
237
238
  - **Style consistency:** Does it follow existing patterns from the exploration findings (Phase 5)?
238
- - **Project guidelines:** Does it adhere to rules from \`{{prompt:project-info}}\` (e.g., coding conventions, preferred APIs, DI patterns)?
239
+ - **Project guidelines:** Does it adhere to the rules in the project's \`${common_1.AGENTS_MD_FILE_NAME}\`, if the Project Context section lists one (e.g., coding conventions, preferred APIs, DI patterns)?
239
240
  - **Potential bugs:** Race conditions, edge cases, error handling
240
241
  - **Missing tests:** Are behavior changes covered by tests?
241
242
  - **Security:** Any vulnerabilities introduced?
@@ -482,7 +483,7 @@ Where a Mermaid diagram is genuinely useful, use one, for example to explain arc
482
483
 
483
484
  {{${context_variables_1.CONTEXT_FILES_VARIABLE_ID}}}
484
485
 
485
- {{prompt:project-info}}
486
+ {{prompt:${common_1.AGENTS_MD_PROMPT_FRAGMENT_ID}}}
486
487
 
487
488
  {{${context_variables_1.TASK_CONTEXT_SUMMARY_VARIABLE_ID}}}
488
489
  `
@@ -1 +1 @@
1
- {"version":3,"file":"pr-review-prompt-template.js","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,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;;;AAGhF,sEAA6G;AAC7G,0EAI0C;AAC1C,sFAMgD;AAChD,8EAAkF;AAErE,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,QAAA,0CAA0C,GAAG,8BAA8B,CAAC;AAC5E,QAAA,sCAAsC,GAAG,0BAA0B,CAAC;AACpE,QAAA,wCAAwC,GAAG,4BAA4B,CAAC;AACxE,QAAA,4CAA4C,GAAG,gCAAgC,CAAC;AAChF,QAAA,6CAA6C,GAAG,iCAAiC,CAAC;AAElF,QAAA,oBAAoB,GAAuB;IACpD,EAAE,EAAE,kCAA0B;IAC9B,QAAQ,EAAE;;;;;;;;;;;;;;eAcC,kDAA0C;;eAE1C,8CAAsC;;eAEtC,gDAAwC;;eAExC,oDAA4C;;eAE5C,qDAA6C;;;;;MAKtD,8CAAwB;MACxB,6CAAuB;MACvB,qDAA+B;;;MAG/B,2DAA+B;MAC/B,wDAA4B;MAC5B,yDAA6B;MAC7B,0DAA8B;MAC9B,4DAAgC;;;MAGhC,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oRAoCkP,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0JAwGtJ,8CAAwB,QAAQ,6CAAuB,YAAY,qDAA+B;;;uFAGrK,yDAA6B;;;;;;;0BAO1F,8CAAwB;8BACpB,6CAAuB;sCACf,qDAA+B;;;;;;;;;;;;;;;;;;;;;;;;QAwB7D,yDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8FAuEyD,oDAA4B;;;;;;iCAMzF,wDAA4B;;;;;;YAMjD,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmC7B,yDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAuC2B,oDAA4B;;;;;;;;;;;;;QAavF,oDAA4B;;;;;;;;;;;;;;;;;;;;;;8JAsB0H,oDAA4B;;;;;;;;;;;;;;;;;;;;;QAqBlL,oDAA4B;;;;;;;;;;;6DAWyB,8CAAwB,WAAW,qDAA+B;;;kDAG7E,4DAAgC;;;;;;;;;IAS9E,6CAAyB;;;;IAIzB,oDAAgC;CACnC;CACA,CAAC"}
1
+ {"version":3,"file":"pr-review-prompt-template.js","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,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,sDAAkH;AAClH,sEAA6G;AAC7G,0EAI0C;AAC1C,sFAMgD;AAChD,8EAAkF;AAErE,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,QAAA,0CAA0C,GAAG,8BAA8B,CAAC;AAC5E,QAAA,sCAAsC,GAAG,0BAA0B,CAAC;AACpE,QAAA,wCAAwC,GAAG,4BAA4B,CAAC;AACxE,QAAA,4CAA4C,GAAG,gCAAgC,CAAC;AAChF,QAAA,6CAA6C,GAAG,iCAAiC,CAAC;AAElF,QAAA,oBAAoB,GAAuB;IACpD,EAAE,EAAE,kCAA0B;IAC9B,QAAQ,EAAE;;;;;;;;;;;;;;eAcC,kDAA0C;;eAE1C,8CAAsC;;eAEtC,gDAAwC;;eAExC,oDAA4C;;eAE5C,qDAA6C;;;;;MAKtD,8CAAwB;MACxB,6CAAuB;MACvB,qDAA+B;;;MAG/B,2DAA+B;MAC/B,wDAA4B;MAC5B,yDAA6B;MAC7B,0DAA8B;MAC9B,4DAAgC;;;MAGhC,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oRAoCkP,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0JAwGtJ,8CAAwB,QAAQ,6CAAuB,YAAY,qDAA+B;;;uFAGrK,yDAA6B;;;;;;;0BAO1F,8CAAwB;8BACpB,6CAAuB;sCACf,qDAA+B;;;;;;;;;;;;;;;2EAeM,4BAAmB;;;;;;;;;QAStF,yDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8FAuEyD,oDAA4B;;;;;;iCAMzF,wDAA4B;;;;;;YAMjD,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmC7B,yDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAuC2B,oDAA4B;;;;;;;;;;;;;QAavF,oDAA4B;;;;;;;;;;;;;;;;;;;;;;8JAsB0H,oDAA4B;;;;;;;;;;;;;;;;;;;;;QAqBlL,oDAA4B;;;;;;;;;;;6DAWyB,8CAAwB,WAAW,qDAA+B;;;kDAG7E,4DAAgC;;;;;;;;;IAS9E,6CAAyB;;WAElB,qCAA4B;;IAEnC,oDAAgC;CACnC;CACA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-context-file-storage-service.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AACtH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AAGrG,OAAO,EAAE,oBAAoB,EAAO,OAAO,EAAE,OAAO,EAAQ,iBAAiB,EAAE,GAAG,EAAe,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,aAAa,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAkB,MAAM,oCAAoC,CAAC;AAIhF,qBACa,6BAA8B,YAAW,yBAAyB;IACvC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;IAErD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI9C,SAAS,CAAC,kBAAkB,IAAI,GAAG,GAAG,SAAS;IAU/C,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,SAAS,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnC;cAEe,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvC,SAAS,CAAC,wBAAwB,CAAC,EAAE,oBAAoB,CAAC;cAC1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAgB7B,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;cAYhC,aAAa,CAAC,eAAe,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cAOlD,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5C,MAAM,IAAI,OAAO,EAAE;IAIb,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAiBrD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,eAAe,GAAG,SAAS,CAAA;KAAE;IAK3G,SAAS,CAAC,QAAQ,GAAI,WAAW,OAAO,KAAG,SAAS,IAAI,eAAe,CACsE;IAEvI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOhD"}
1
+ {"version":3,"file":"task-context-file-storage-service.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AACtH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AAGrG,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAQ,iBAAiB,EAAE,GAAG,EAAe,MAAM,aAAa,CAAC;AAChH,OAAO,EAAE,aAAa,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAkB,MAAM,oCAAoC,CAAC;AAIhF,qBACa,6BAA8B,YAAW,yBAAyB;IACvC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;IAErD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI9C,SAAS,CAAC,kBAAkB,IAAI,GAAG,GAAG,SAAS;IAU/C,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,SAAS,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnC;cAEe,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvC,SAAS,CAAC,wBAAwB,CAAC,EAAE,oBAAoB,CAAC;cAC1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAgB7B,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;cAYhC,aAAa,CAAC,eAAe,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cAOlD,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5C,MAAM,IAAI,OAAO,EAAE;IAIb,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAiBrD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,eAAe,GAAG,SAAS,CAAA;KAAE;IAK3G,SAAS,CAAC,QAAQ,GAAI,WAAW,OAAO,KAAG,SAAS,IAAI,eAAe,CACsE;IAEvI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOhD"}
@@ -24,7 +24,6 @@ const core_1 = require("@theia/core");
24
24
  const browser_1 = require("@theia/core/lib/browser");
25
25
  const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
26
26
  const browser_2 = require("@theia/workspace/lib/browser");
27
- const yaml = require("js-yaml");
28
27
  const workspace_preferences_1 = require("../common/workspace-preferences");
29
28
  const buffer_1 = require("@theia/core/lib/common/buffer");
30
29
  let TaskContextFileStorageService = class TaskContextFileStorageService {
@@ -145,7 +144,7 @@ let TaskContextFileStorageService = class TaskContextFileStorageService {
145
144
  };
146
145
  const derivedName = label.trim().replace(/[^\p{L}\p{N}]/ug, '-').replace(/^-+|-+$/g, '');
147
146
  const filename = (derivedName.length > 32 ? derivedName.slice(0, derivedName.indexOf('-', 32)) : derivedName) + '.md';
148
- const content = yaml.dump(frontmatter).trim() + `${core_1.EOL}---${core_1.EOL}` + summary.summary;
147
+ const content = (0, frontmatter_1.serializeFrontmatter)(frontmatter, summary.summary);
149
148
  const uri = storageLocation.resolve(filename);
150
149
  summary.uri = uri;
151
150
  await this.fileService.writeFile(uri, buffer_1.BinaryBuffer.fromString(content));
@@ -1 +1 @@
1
- {"version":3,"file":"task-context-file-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-context-file-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=task-context-file-storage-service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-context-file-storage-service.spec.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 Safi Seid-Ahmad, K2view 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
+ const 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 browser_1 = require("@theia/core/lib/browser");
26
+ const ai_core_1 = require("@theia/ai-core");
27
+ const task_context_storage_service_1 = require("@theia/ai-chat/lib/browser/task-context-storage-service");
28
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
29
+ const browser_2 = require("@theia/workspace/lib/browser");
30
+ const task_context_file_storage_service_1 = require("./task-context-file-storage-service");
31
+ disableJSDOM();
32
+ const workspaceRoot = new core_1.URI('file:///workspace');
33
+ const storageLocation = workspaceRoot.resolve('.prompts/task-contexts');
34
+ describe('TaskContextFileStorageService', () => {
35
+ let files;
36
+ let container;
37
+ beforeEach(() => {
38
+ files = new Map();
39
+ container = new inversify_1.Container();
40
+ container.bind(file_service_1.FileService).toConstantValue({
41
+ watch: () => core_1.Disposable.NULL,
42
+ onDidFilesChange: () => core_1.Disposable.NULL,
43
+ resolve: async (uri) => ({
44
+ children: [...files.keys()].map(key => new core_1.URI(key)).filter(resource => uri.isEqualOrParent(resource)).map(resource => ({ resource }))
45
+ }),
46
+ read: async (uri) => {
47
+ const value = files.get(uri.toString());
48
+ if (value === undefined) {
49
+ throw new Error(`No file at ${uri}`);
50
+ }
51
+ return { value };
52
+ },
53
+ writeFile: async (uri, content) => {
54
+ files.set(uri.toString(), content.toString());
55
+ }
56
+ });
57
+ container.bind(browser_2.WorkspaceService).toConstantValue({
58
+ opened: true,
59
+ ready: Promise.resolve(),
60
+ tryGetRoots: () => [{ resource: workspaceRoot }]
61
+ });
62
+ container.bind(core_1.PreferenceService).toConstantValue({
63
+ ready: Promise.resolve(),
64
+ inspect: () => ({ defaultValue: '.prompts/task-contexts' }),
65
+ onPreferenceChanged: () => core_1.Disposable.NULL
66
+ });
67
+ container.bind(core_1.ILogger).toConstantValue({ error: () => { } });
68
+ container.bind(browser_1.OpenerService).toConstantValue({});
69
+ container.bind(ai_core_1.AIVariableResourceResolver).toConstantValue({});
70
+ container.bind(task_context_storage_service_1.InMemoryTaskContextStorage).toSelf().inSingletonScope();
71
+ container.bind(task_context_file_storage_service_1.TaskContextFileStorageService).toSelf().inSingletonScope();
72
+ });
73
+ /** Creates the service and waits for its startup scan to load the files already in the storage location. */
74
+ const loadStoredFiles = async () => {
75
+ const service = container.get(task_context_file_storage_service_1.TaskContextFileStorageService);
76
+ await core_1.Event.toPromise(service.onDidChange);
77
+ return service;
78
+ };
79
+ it('writes the metadata as standard frontmatter', async () => {
80
+ const service = container.get(task_context_file_storage_service_1.TaskContextFileStorageService);
81
+ await service.store({ id: 'task-1', sessionId: 'session-1', label: 'Fix the build', summary: '# Plan\n\nDo it.' });
82
+ const content = files.get(storageLocation.resolve('Fix-the-build.md').toString());
83
+ (0, chai_1.expect)(content).to.not.be.undefined;
84
+ const lines = content.split('\n');
85
+ (0, chai_1.expect)(lines[0]).to.equal('---');
86
+ (0, chai_1.expect)(lines).to.include.members(['id: task-1', 'sessionId: session-1', 'label: Fix the build']);
87
+ (0, chai_1.expect)(content).to.match(/\n---\n# Plan\n\nDo it\.$/);
88
+ });
89
+ it('reads back the body without the frontmatter', async () => {
90
+ const service = container.get(task_context_file_storage_service_1.TaskContextFileStorageService);
91
+ await service.store({ id: 'task-1', label: 'Fix the build', summary: '# Plan\n\nDo it.' });
92
+ const summary = await service.get('task-1');
93
+ (0, chai_1.expect)(summary?.summary).to.equal('# Plan\n\nDo it.');
94
+ (0, chai_1.expect)(summary?.label).to.equal('Fix the build');
95
+ });
96
+ it('still reads files written without the opening separator', async () => {
97
+ files.set(storageLocation.resolve('legacy.md').toString(), 'id: legacy-task\nlabel: Legacy task\n---\n# Legacy plan');
98
+ const service = await loadStoredFiles();
99
+ const summary = await service.get('legacy-task');
100
+ (0, chai_1.expect)(summary?.label).to.equal('Legacy task');
101
+ (0, chai_1.expect)(summary?.summary).to.equal('# Legacy plan');
102
+ });
103
+ it('still reads files written without the opening separator and with CRLF line endings', async () => {
104
+ files.set(storageLocation.resolve('legacy.md').toString(), 'id: legacy-task\r\nlabel: Legacy task\r\n---\r\n# Legacy plan\r\n\r\nDo it.');
105
+ const service = await loadStoredFiles();
106
+ const summary = await service.get('legacy-task');
107
+ (0, chai_1.expect)(summary?.label).to.equal('Legacy task');
108
+ (0, chai_1.expect)(summary?.summary).to.equal('# Legacy plan\r\n\r\nDo it.');
109
+ });
110
+ });
111
+ //# sourceMappingURL=task-context-file-storage-service.spec.js.map