@theia/ai-core 1.77.0-next.7 → 1.77.0-next.77

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 (172) hide show
  1. package/lib/browser/agents-md-frontend-application-contribution.d.ts +65 -0
  2. package/lib/browser/agents-md-frontend-application-contribution.d.ts.map +1 -0
  3. package/lib/browser/agents-md-frontend-application-contribution.js +269 -0
  4. package/lib/browser/agents-md-frontend-application-contribution.js.map +1 -0
  5. package/lib/browser/agents-md-frontend-application-contribution.spec.d.ts +2 -0
  6. package/lib/browser/agents-md-frontend-application-contribution.spec.d.ts.map +1 -0
  7. package/lib/browser/agents-md-frontend-application-contribution.spec.js +225 -0
  8. package/lib/browser/agents-md-frontend-application-contribution.spec.js.map +1 -0
  9. package/lib/browser/agents-md-migration-service.d.ts +78 -0
  10. package/lib/browser/agents-md-migration-service.d.ts.map +1 -0
  11. package/lib/browser/agents-md-migration-service.js +195 -0
  12. package/lib/browser/agents-md-migration-service.js.map +1 -0
  13. package/lib/browser/agents-md-migration-service.spec.d.ts +2 -0
  14. package/lib/browser/agents-md-migration-service.spec.d.ts.map +1 -0
  15. package/lib/browser/agents-md-migration-service.spec.js +278 -0
  16. package/lib/browser/agents-md-migration-service.spec.js.map +1 -0
  17. package/lib/browser/agents-md-prompt-fragment-contribution.d.ts +13 -0
  18. package/lib/browser/agents-md-prompt-fragment-contribution.d.ts.map +1 -0
  19. package/lib/browser/agents-md-prompt-fragment-contribution.js +76 -0
  20. package/lib/browser/agents-md-prompt-fragment-contribution.js.map +1 -0
  21. package/lib/browser/agents-md-service.d.ts +58 -0
  22. package/lib/browser/agents-md-service.d.ts.map +1 -0
  23. package/lib/browser/agents-md-service.js +191 -0
  24. package/lib/browser/agents-md-service.js.map +1 -0
  25. package/lib/browser/agents-md-service.spec.d.ts +2 -0
  26. package/lib/browser/agents-md-service.spec.d.ts.map +1 -0
  27. package/lib/browser/agents-md-service.spec.js +220 -0
  28. package/lib/browser/agents-md-service.spec.js.map +1 -0
  29. package/lib/browser/agents-md-variable-contribution.d.ts +66 -0
  30. package/lib/browser/agents-md-variable-contribution.d.ts.map +1 -0
  31. package/lib/browser/agents-md-variable-contribution.js +169 -0
  32. package/lib/browser/agents-md-variable-contribution.js.map +1 -0
  33. package/lib/browser/agents-md-variable-contribution.spec.d.ts +2 -0
  34. package/lib/browser/agents-md-variable-contribution.spec.d.ts.map +1 -0
  35. package/lib/browser/agents-md-variable-contribution.spec.js +148 -0
  36. package/lib/browser/agents-md-variable-contribution.spec.js.map +1 -0
  37. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -1
  38. package/lib/browser/ai-core-frontend-module.js +17 -0
  39. package/lib/browser/ai-core-frontend-module.js.map +1 -1
  40. package/lib/browser/file-variable-contribution.d.ts +2 -0
  41. package/lib/browser/file-variable-contribution.d.ts.map +1 -1
  42. package/lib/browser/file-variable-contribution.js +8 -23
  43. package/lib/browser/file-variable-contribution.js.map +1 -1
  44. package/lib/browser/file-variable-contribution.spec.d.ts +2 -0
  45. package/lib/browser/file-variable-contribution.spec.d.ts.map +1 -0
  46. package/lib/browser/file-variable-contribution.spec.js +98 -0
  47. package/lib/browser/file-variable-contribution.spec.js.map +1 -0
  48. package/lib/browser/frontend-language-model-service.d.ts.map +1 -1
  49. package/lib/browser/frontend-language-model-service.js +0 -8
  50. package/lib/browser/frontend-language-model-service.js.map +1 -1
  51. package/lib/browser/frontend-prompt-customization-service.d.ts +2 -1
  52. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
  53. package/lib/browser/frontend-prompt-customization-service.js +10 -0
  54. package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
  55. package/lib/browser/frontend-prompt-customization-service.spec.js +19 -1
  56. package/lib/browser/frontend-prompt-customization-service.spec.js.map +1 -1
  57. package/lib/browser/frontend-variable-service.js +1 -1
  58. package/lib/browser/frontend-variable-service.js.map +1 -1
  59. package/lib/browser/index.d.ts +6 -0
  60. package/lib/browser/index.d.ts.map +1 -1
  61. package/lib/browser/index.js +6 -0
  62. package/lib/browser/index.js.map +1 -1
  63. package/lib/browser/prompt-variable-contribution.js +1 -1
  64. package/lib/browser/prompt-variable-contribution.js.map +1 -1
  65. package/lib/browser/prompt-variable-contribution.spec.js +2 -1
  66. package/lib/browser/prompt-variable-contribution.spec.js.map +1 -1
  67. package/lib/browser/prompttemplate-contribution.js +1 -1
  68. package/lib/browser/prompttemplate-contribution.js.map +1 -1
  69. package/lib/browser/reasoning-labels.d.ts +4 -0
  70. package/lib/browser/reasoning-labels.d.ts.map +1 -0
  71. package/lib/browser/reasoning-labels.js +41 -0
  72. package/lib/browser/reasoning-labels.js.map +1 -0
  73. package/lib/browser/reasoning-labels.spec.d.ts +2 -0
  74. package/lib/browser/reasoning-labels.spec.d.ts.map +1 -0
  75. package/lib/browser/reasoning-labels.spec.js +28 -0
  76. package/lib/browser/reasoning-labels.spec.js.map +1 -0
  77. package/lib/browser/skill-service.spec.js +2 -1
  78. package/lib/browser/skill-service.spec.js.map +1 -1
  79. package/lib/browser/skills-variable-contribution.spec.js +2 -1
  80. package/lib/browser/skills-variable-contribution.spec.js.map +1 -1
  81. package/lib/browser/theia-variable-contribution.js +3 -3
  82. package/lib/browser/theia-variable-contribution.js.map +1 -1
  83. package/lib/browser/workspace-relative-path-resolver.d.ts +20 -0
  84. package/lib/browser/workspace-relative-path-resolver.d.ts.map +1 -0
  85. package/lib/browser/workspace-relative-path-resolver.js +78 -0
  86. package/lib/browser/workspace-relative-path-resolver.js.map +1 -0
  87. package/lib/common/agents-md.d.ts +20 -0
  88. package/lib/common/agents-md.d.ts.map +1 -0
  89. package/lib/common/agents-md.js +38 -0
  90. package/lib/common/agents-md.js.map +1 -0
  91. package/lib/common/ai-core-preferences.d.ts.map +1 -1
  92. package/lib/common/ai-core-preferences.js +6 -3
  93. package/lib/common/ai-core-preferences.js.map +1 -1
  94. package/lib/common/ai-variable-resource.js +3 -3
  95. package/lib/common/ai-variable-resource.js.map +1 -1
  96. package/lib/common/capability-variable-contribution.js +1 -1
  97. package/lib/common/capability-variable-contribution.js.map +1 -1
  98. package/lib/common/index.d.ts +2 -0
  99. package/lib/common/index.d.ts.map +1 -1
  100. package/lib/common/index.js +2 -0
  101. package/lib/common/index.js.map +1 -1
  102. package/lib/common/language-model-service.d.ts.map +1 -1
  103. package/lib/common/language-model-service.js +7 -0
  104. package/lib/common/language-model-service.js.map +1 -1
  105. package/lib/common/language-model-service.spec.js +21 -0
  106. package/lib/common/language-model-service.spec.js.map +1 -1
  107. package/lib/common/language-model.d.ts +10 -3
  108. package/lib/common/language-model.d.ts.map +1 -1
  109. package/lib/common/language-model.js +17 -4
  110. package/lib/common/language-model.js.map +1 -1
  111. package/lib/common/language-model.spec.js +18 -0
  112. package/lib/common/language-model.spec.js.map +1 -1
  113. package/lib/common/prompt-service.d.ts +12 -0
  114. package/lib/common/prompt-service.d.ts.map +1 -1
  115. package/lib/common/prompt-service.js.map +1 -1
  116. package/lib/common/prompt-service.spec.js +2 -1
  117. package/lib/common/prompt-service.spec.js.map +1 -1
  118. package/lib/common/tool-call-execution.d.ts +89 -0
  119. package/lib/common/tool-call-execution.d.ts.map +1 -0
  120. package/lib/common/tool-call-execution.js +67 -0
  121. package/lib/common/tool-call-execution.js.map +1 -0
  122. package/lib/common/tool-call-execution.spec.d.ts +2 -0
  123. package/lib/common/tool-call-execution.spec.d.ts.map +1 -0
  124. package/lib/common/tool-call-execution.spec.js +114 -0
  125. package/lib/common/tool-call-execution.spec.js.map +1 -0
  126. package/lib/common/tool-request-parameters.spec.d.ts +2 -0
  127. package/lib/common/tool-request-parameters.spec.d.ts.map +1 -0
  128. package/lib/common/tool-request-parameters.spec.js +62 -0
  129. package/lib/common/tool-request-parameters.spec.js.map +1 -0
  130. package/lib/common/variable-service.spec.js +2 -1
  131. package/lib/common/variable-service.spec.js.map +1 -1
  132. package/lib/node/ai-core-backend-module.d.ts.map +1 -1
  133. package/lib/node/ai-core-backend-module.js +2 -0
  134. package/lib/node/ai-core-backend-module.js.map +1 -1
  135. package/lib/node/model-snapshot-store.js +2 -2
  136. package/lib/node/model-snapshot-store.js.map +1 -1
  137. package/lib/node/proxy-util.js +2 -1
  138. package/lib/node/proxy-util.js.map +1 -1
  139. package/package.json +9 -9
  140. package/src/browser/agents-md-frontend-application-contribution.spec.ts +244 -0
  141. package/src/browser/agents-md-frontend-application-contribution.ts +291 -0
  142. package/src/browser/agents-md-migration-service.spec.ts +338 -0
  143. package/src/browser/agents-md-migration-service.ts +226 -0
  144. package/src/browser/agents-md-prompt-fragment-contribution.ts +73 -0
  145. package/src/browser/agents-md-service.spec.ts +258 -0
  146. package/src/browser/agents-md-service.ts +212 -0
  147. package/src/browser/agents-md-variable-contribution.spec.ts +180 -0
  148. package/src/browser/agents-md-variable-contribution.ts +182 -0
  149. package/src/browser/ai-core-frontend-module.ts +19 -0
  150. package/src/browser/file-variable-contribution.spec.ts +107 -0
  151. package/src/browser/file-variable-contribution.ts +8 -27
  152. package/src/browser/frontend-language-model-service.ts +1 -10
  153. package/src/browser/frontend-prompt-customization-service.spec.ts +24 -0
  154. package/src/browser/frontend-prompt-customization-service.ts +13 -1
  155. package/src/browser/index.ts +6 -0
  156. package/src/browser/reasoning-labels.spec.ts +28 -0
  157. package/src/browser/reasoning-labels.ts +41 -0
  158. package/src/browser/theia-variable-contribution.ts +3 -3
  159. package/src/browser/workspace-relative-path-resolver.ts +71 -0
  160. package/src/common/agents-md.ts +37 -0
  161. package/src/common/ai-core-preferences.ts +6 -3
  162. package/src/common/ai-variable-resource.ts +1 -1
  163. package/src/common/index.ts +2 -0
  164. package/src/common/language-model-service.spec.ts +23 -1
  165. package/src/common/language-model-service.ts +11 -1
  166. package/src/common/language-model.spec.ts +21 -0
  167. package/src/common/language-model.ts +26 -6
  168. package/src/common/prompt-service.ts +14 -0
  169. package/src/common/tool-call-execution.spec.ts +162 -0
  170. package/src/common/tool-call-execution.ts +161 -0
  171. package/src/common/tool-request-parameters.spec.ts +81 -0
  172. package/src/node/ai-core-backend-module.ts +5 -1
@@ -0,0 +1,66 @@
1
+ import { MaybePromise } from '@theia/core';
2
+ import { AIVariable, AIVariableContext, AIVariableContribution, AIVariableResolutionRequest, AIVariableResolver, AIVariableService, ResolvedAIVariable } from '../common/variable-service';
3
+ import { WorkspaceService } from '@theia/workspace/lib/browser';
4
+ import { AgentsMdFile, AgentsMdService } from './agents-md-service';
5
+ export declare const AGENTS_MD_AUTO_LOADED_VARIABLE: AIVariable;
6
+ export declare const AGENTS_MD_VARIABLE: AIVariable;
7
+ export declare const AGENTS_MD_CONTENT_VARIABLE: AIVariable;
8
+ /**
9
+ * Resolves the three ways of consuming `AGENTS.md`.
10
+ *
11
+ * A **single-root** workspace has an unambiguous project root, so its `AGENTS.md` is always in
12
+ * context, mirroring how other tools implementing the standard treat the root file. A workspace with
13
+ * several roots has no such file, so nothing is loaded and every discovered file is advertised
14
+ * instead, to be read on demand. {@link AGENTS_MD_AUTO_LOADED_VARIABLE} and
15
+ * {@link AGENTS_MD_VARIABLE} are therefore mutually exclusive by construction: at most one of them is
16
+ * ever non-empty.
17
+ *
18
+ * - {@link AGENTS_MD_AUTO_LOADED_VARIABLE} inlines the single root's file, or nothing.
19
+ * - {@link AGENTS_MD_VARIABLE} advertises files by path so a tool-calling agent can fetch them with
20
+ * `getFileContent`, or nothing.
21
+ * - {@link AGENTS_MD_CONTENT_VARIABLE} always inlines everything discovered, regardless of root
22
+ * count, for consumers such as code completion that have no tool-calling loop and therefore cannot
23
+ * fetch anything on demand.
24
+ *
25
+ * All three resolve to the empty string when the workspace has no `AGENTS.md`.
26
+ */
27
+ export declare class AgentsMdVariableContribution implements AIVariableContribution, AIVariableResolver {
28
+ protected readonly agentsMdService: AgentsMdService;
29
+ protected readonly workspaceService: WorkspaceService;
30
+ registerVariables(service: AIVariableService): void;
31
+ canResolve(request: AIVariableResolutionRequest, _context: AIVariableContext): MaybePromise<number>;
32
+ resolve(request: AIVariableResolutionRequest, _context: AIVariableContext): Promise<ResolvedAIVariable | undefined>;
33
+ /**
34
+ * Whether the workspace root's `AGENTS.md` is put into context rather than advertised. Keyed on
35
+ * the number of workspace **roots**, not the number of discovered files: a workspace with several
36
+ * roots has no single project root whose file could stand for the whole session, even when only
37
+ * one of those roots happens to carry an `AGENTS.md`.
38
+ */
39
+ protected isAutoLoading(): boolean;
40
+ /**
41
+ * Inlines the single root's file. The content is raw Markdown and not XML-escaped; only the path,
42
+ * which is an attribute, is.
43
+ */
44
+ protected generateAutoLoaded(files: AgentsMdFile[]): string;
45
+ /**
46
+ * Advertises the files by their `<rootName>/AGENTS.md` path, the path format the workspace tools
47
+ * accept and return, so the model can pass it to `getFileContent` verbatim.
48
+ */
49
+ protected generateAgentsMdXML(files: AgentsMdFile[]): string;
50
+ /**
51
+ * Inlines the content. A single root contributes its file verbatim; only a multi-root workspace
52
+ * gets provenance headings, mirroring how equal-priority prompt fragment sources are merged.
53
+ */
54
+ protected mergeContent(files: AgentsMdFile[]): string;
55
+ /**
56
+ * Keeps `~{...}` in inlined content literal. Function references are matched on the resolved
57
+ * prompt text, so a `~{someTool}` in a file anyone in the repository can edit would otherwise
58
+ * attach that tool to every agent using the fragment. A zero-width space between `~` and `{`
59
+ * breaks the match without changing what the model reads. `{{...}}` needs no such treatment, as
60
+ * variables are not resolved recursively.
61
+ */
62
+ protected escapeFunctionReferences(content: string): string;
63
+ protected toWorkspaceRelativePath(file: AgentsMdFile): string;
64
+ protected escapeXml(text: string): string;
65
+ }
66
+ //# sourceMappingURL=agents-md-variable-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/agents-md-variable-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAO,MAAM,aAAa,CAAC;AAChD,OAAO,EACH,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,2BAA2B,EAClF,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAC5D,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEpE,eAAO,MAAM,8BAA8B,EAAE,UAK5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,UAKhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,UAKxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,4BAA6B,YAAW,sBAAsB,EAAE,kBAAkB;IAG3F,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAMnD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IAS7F,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAoBzH;;;;;OAKG;IACH,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC;;;OAGG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM;IAQ3D;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM;IAQ5D;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM;IAUrD;;;;;;OAMG;IACH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI3D,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAI7D,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAQ5C"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.AgentsMdVariableContribution = exports.AGENTS_MD_CONTENT_VARIABLE = exports.AGENTS_MD_VARIABLE = exports.AGENTS_MD_AUTO_LOADED_VARIABLE = 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 browser_1 = require("@theia/workspace/lib/browser");
23
+ const agents_md_1 = require("../common/agents-md");
24
+ const agents_md_service_1 = require("./agents-md-service");
25
+ exports.AGENTS_MD_AUTO_LOADED_VARIABLE = {
26
+ id: 'agentsMdAutoLoaded',
27
+ name: 'agentsMdAutoLoaded',
28
+ description: core_1.nls.localize('theia/ai/core/agentsMdAutoLoadedVariable/description', 'Returns the content of the workspace root AGENTS.md when the workspace has a single root, so that it is always in context')
29
+ };
30
+ exports.AGENTS_MD_VARIABLE = {
31
+ id: 'agentsMd',
32
+ name: 'agentsMd',
33
+ description: core_1.nls.localize('theia/ai/core/agentsMdVariable/description', 'Lists the AGENTS.md files an agent has to read on demand, i.e. the ones that are not already loaded')
34
+ };
35
+ exports.AGENTS_MD_CONTENT_VARIABLE = {
36
+ id: 'agentsMdContent',
37
+ name: 'agentsMdContent',
38
+ description: core_1.nls.localize('theia/ai/core/agentsMdContentVariable/description', 'Returns the full content of the AGENTS.md files of the workspace')
39
+ };
40
+ /**
41
+ * Resolves the three ways of consuming `AGENTS.md`.
42
+ *
43
+ * A **single-root** workspace has an unambiguous project root, so its `AGENTS.md` is always in
44
+ * context, mirroring how other tools implementing the standard treat the root file. A workspace with
45
+ * several roots has no such file, so nothing is loaded and every discovered file is advertised
46
+ * instead, to be read on demand. {@link AGENTS_MD_AUTO_LOADED_VARIABLE} and
47
+ * {@link AGENTS_MD_VARIABLE} are therefore mutually exclusive by construction: at most one of them is
48
+ * ever non-empty.
49
+ *
50
+ * - {@link AGENTS_MD_AUTO_LOADED_VARIABLE} inlines the single root's file, or nothing.
51
+ * - {@link AGENTS_MD_VARIABLE} advertises files by path so a tool-calling agent can fetch them with
52
+ * `getFileContent`, or nothing.
53
+ * - {@link AGENTS_MD_CONTENT_VARIABLE} always inlines everything discovered, regardless of root
54
+ * count, for consumers such as code completion that have no tool-calling loop and therefore cannot
55
+ * fetch anything on demand.
56
+ *
57
+ * All three resolve to the empty string when the workspace has no `AGENTS.md`.
58
+ */
59
+ let AgentsMdVariableContribution = class AgentsMdVariableContribution {
60
+ registerVariables(service) {
61
+ service.registerResolver(exports.AGENTS_MD_AUTO_LOADED_VARIABLE, this);
62
+ service.registerResolver(exports.AGENTS_MD_VARIABLE, this);
63
+ service.registerResolver(exports.AGENTS_MD_CONTENT_VARIABLE, this);
64
+ }
65
+ canResolve(request, _context) {
66
+ if (request.variable.name === exports.AGENTS_MD_AUTO_LOADED_VARIABLE.name
67
+ || request.variable.name === exports.AGENTS_MD_VARIABLE.name
68
+ || request.variable.name === exports.AGENTS_MD_CONTENT_VARIABLE.name) {
69
+ return 1;
70
+ }
71
+ return -1;
72
+ }
73
+ async resolve(request, _context) {
74
+ // Without this a request issued before the initial scan completes would silently report that
75
+ // the workspace has no project context.
76
+ await this.agentsMdService.ready;
77
+ const files = this.agentsMdService.getAgentsMdFiles();
78
+ if (request.variable.name === exports.AGENTS_MD_AUTO_LOADED_VARIABLE.name) {
79
+ return { variable: request.variable, value: this.generateAutoLoaded(files) };
80
+ }
81
+ if (request.variable.name === exports.AGENTS_MD_VARIABLE.name) {
82
+ // Suppressed when the root file is already in context, so the model is never told to read
83
+ // a file it has just been handed.
84
+ return { variable: request.variable, value: this.isAutoLoading() ? '' : this.generateAgentsMdXML(files) };
85
+ }
86
+ if (request.variable.name === exports.AGENTS_MD_CONTENT_VARIABLE.name) {
87
+ return { variable: request.variable, value: this.mergeContent(files) };
88
+ }
89
+ return undefined;
90
+ }
91
+ /**
92
+ * Whether the workspace root's `AGENTS.md` is put into context rather than advertised. Keyed on
93
+ * the number of workspace **roots**, not the number of discovered files: a workspace with several
94
+ * roots has no single project root whose file could stand for the whole session, even when only
95
+ * one of those roots happens to carry an `AGENTS.md`.
96
+ */
97
+ isAutoLoading() {
98
+ return this.workspaceService.tryGetRoots().length === 1;
99
+ }
100
+ /**
101
+ * Inlines the single root's file. The content is raw Markdown and not XML-escaped; only the path,
102
+ * which is an attribute, is.
103
+ */
104
+ generateAutoLoaded(files) {
105
+ if (!this.isAutoLoading() || files.length === 0) {
106
+ return '';
107
+ }
108
+ const file = files[0];
109
+ return `<project_instructions path="${this.escapeXml(this.toWorkspaceRelativePath(file))}">\n${this.escapeFunctionReferences(file.content)}\n</project_instructions>`;
110
+ }
111
+ /**
112
+ * Advertises the files by their `<rootName>/AGENTS.md` path, the path format the workspace tools
113
+ * accept and return, so the model can pass it to `getFileContent` verbatim.
114
+ */
115
+ generateAgentsMdXML(files) {
116
+ if (files.length === 0) {
117
+ return '';
118
+ }
119
+ const entries = files.map(file => `<file>${this.escapeXml(this.toWorkspaceRelativePath(file))}</file>`).join('\n');
120
+ return `<agents_md_files>\n${entries}\n</agents_md_files>`;
121
+ }
122
+ /**
123
+ * Inlines the content. A single root contributes its file verbatim; only a multi-root workspace
124
+ * gets provenance headings, mirroring how equal-priority prompt fragment sources are merged.
125
+ */
126
+ mergeContent(files) {
127
+ if (files.length === 0) {
128
+ return '';
129
+ }
130
+ if (files.length === 1) {
131
+ return this.escapeFunctionReferences(files[0].content);
132
+ }
133
+ return files.map(file => `### ${file.rootName}\n\n${this.escapeFunctionReferences(file.content)}`).join('\n\n');
134
+ }
135
+ /**
136
+ * Keeps `~{...}` in inlined content literal. Function references are matched on the resolved
137
+ * prompt text, so a `~{someTool}` in a file anyone in the repository can edit would otherwise
138
+ * attach that tool to every agent using the fragment. A zero-width space between `~` and `{`
139
+ * breaks the match without changing what the model reads. `{{...}}` needs no such treatment, as
140
+ * variables are not resolved recursively.
141
+ */
142
+ escapeFunctionReferences(content) {
143
+ return content.replace(/~\{/g, '~\u200B{');
144
+ }
145
+ toWorkspaceRelativePath(file) {
146
+ return `${file.rootName}/${agents_md_1.AGENTS_MD_FILE_NAME}`;
147
+ }
148
+ escapeXml(text) {
149
+ return text
150
+ .replace(/&/g, '&amp;')
151
+ .replace(/</g, '&lt;')
152
+ .replace(/>/g, '&gt;')
153
+ .replace(/"/g, '&quot;')
154
+ .replace(/'/g, '&apos;');
155
+ }
156
+ };
157
+ exports.AgentsMdVariableContribution = AgentsMdVariableContribution;
158
+ tslib_1.__decorate([
159
+ (0, inversify_1.inject)(agents_md_service_1.AgentsMdService),
160
+ tslib_1.__metadata("design:type", Object)
161
+ ], AgentsMdVariableContribution.prototype, "agentsMdService", void 0);
162
+ tslib_1.__decorate([
163
+ (0, inversify_1.inject)(browser_1.WorkspaceService),
164
+ tslib_1.__metadata("design:type", browser_1.WorkspaceService)
165
+ ], AgentsMdVariableContribution.prototype, "workspaceService", void 0);
166
+ exports.AgentsMdVariableContribution = AgentsMdVariableContribution = tslib_1.__decorate([
167
+ (0, inversify_1.injectable)()
168
+ ], AgentsMdVariableContribution);
169
+ //# sourceMappingURL=agents-md-variable-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/agents-md-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agents-md-variable-contribution.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md-variable-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/agents-md-variable-contribution.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ const disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
+ // Guarded: another spec in the same mocha process may already have set it, and `set` throws on a
22
+ // second call.
23
+ try {
24
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.get();
25
+ }
26
+ catch {
27
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
28
+ }
29
+ const chai_1 = require("chai");
30
+ const core_1 = require("@theia/core");
31
+ const agents_md_variable_contribution_1 = require("./agents-md-variable-contribution");
32
+ const prompt_service_util_1 = require("../common/prompt-service-util");
33
+ disableJSDOM();
34
+ describe('AgentsMdVariableContribution', () => {
35
+ function file(rootName, content) {
36
+ return { uri: new core_1.URI(`file:///${rootName}/AGENTS.md`), content, rootName };
37
+ }
38
+ /**
39
+ * @param rootCount how many workspace roots are open. Defaults to one per discovered file, which
40
+ * is the ordinary case; pass it explicitly to build a workspace whose root count and file count
41
+ * differ, since auto-loading keys on roots rather than files.
42
+ */
43
+ function createContribution(files, rootCount = files.length) {
44
+ const contribution = new agents_md_variable_contribution_1.AgentsMdVariableContribution();
45
+ const service = {
46
+ getAgentsMdFiles: () => files,
47
+ onDidChange: () => ({ dispose: () => { } }),
48
+ ready: Promise.resolve()
49
+ };
50
+ contribution.agentsMdService = service;
51
+ contribution.workspaceService = {
52
+ tryGetRoots: () => new Array(rootCount).fill({})
53
+ };
54
+ return contribution;
55
+ }
56
+ async function resolve(files, variable, rootCount) {
57
+ const resolved = await createContribution(files, rootCount).resolve({ variable }, {});
58
+ return resolved.value;
59
+ }
60
+ describe('agentsMdAutoLoaded', () => {
61
+ it('resolves to nothing when the workspace has no AGENTS.md', async () => {
62
+ (0, chai_1.expect)(await resolve([], agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE, 1)).to.equal('');
63
+ });
64
+ it('inlines the root file when the workspace has a single root', async () => {
65
+ (0, chai_1.expect)(await resolve([file('theia', '# Project\n\nUse npm.')], agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE)).to.equal('<project_instructions path="theia/AGENTS.md">\n# Project\n\nUse npm.\n</project_instructions>');
66
+ });
67
+ it('loads nothing once the workspace has more than one root', async () => {
68
+ (0, chai_1.expect)(await resolve([file('a', 'x'), file('b', 'y')], agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE)).to.equal('');
69
+ });
70
+ it('loads nothing in a multi-root workspace where only one root has a file', async () => {
71
+ // Keyed on root count, not file count: a workspace with several roots has no single
72
+ // project root, even when only one of them carries an AGENTS.md.
73
+ (0, chai_1.expect)(await resolve([file('a', 'x')], agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE, 2)).to.equal('');
74
+ });
75
+ it('escapes the path but leaves the Markdown content untouched', async () => {
76
+ const resolved = await resolve([file('a&b', '# Heading <not xml> & "quoted"')], agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE, 1);
77
+ (0, chai_1.expect)(resolved).to.contain('path="a&amp;b/AGENTS.md"');
78
+ (0, chai_1.expect)(resolved).to.contain('# Heading <not xml> & "quoted"');
79
+ });
80
+ it('keeps function references in the content from attaching tools', async () => {
81
+ const resolved = await resolve([file('a', 'Use ~{getFileContent} and {{selectedText}}.')], agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE, 1);
82
+ (0, chai_1.expect)((0, prompt_service_util_1.matchFunctionsRegEx)(resolved)).to.be.empty;
83
+ (0, chai_1.expect)(resolved).to.contain('{{selectedText}}');
84
+ });
85
+ });
86
+ describe('agentsMd', () => {
87
+ it('resolves to nothing when the workspace has no AGENTS.md', async () => {
88
+ (0, chai_1.expect)(await resolve([], agents_md_variable_contribution_1.AGENTS_MD_VARIABLE)).to.equal('');
89
+ });
90
+ it('advertises nothing when the single root file is already loaded', async () => {
91
+ // Otherwise the model is told to read a file it has just been handed.
92
+ (0, chai_1.expect)(await resolve([file('theia', 'x')], agents_md_variable_contribution_1.AGENTS_MD_VARIABLE)).to.equal('');
93
+ });
94
+ it('advertises one entry per root once there is more than one root', async () => {
95
+ (0, chai_1.expect)(await resolve([file('a', 'x'), file('b', 'y')], agents_md_variable_contribution_1.AGENTS_MD_VARIABLE)).to.equal('<agents_md_files>\n<file>a/AGENTS.md</file>\n<file>b/AGENTS.md</file>\n</agents_md_files>');
96
+ });
97
+ it('advertises the single file of a multi-root workspace rather than loading it', async () => {
98
+ (0, chai_1.expect)(await resolve([file('a', 'x')], agents_md_variable_contribution_1.AGENTS_MD_VARIABLE, 2)).to.equal('<agents_md_files>\n<file>a/AGENTS.md</file>\n</agents_md_files>');
99
+ });
100
+ it('escapes XML in the root name', async () => {
101
+ (0, chai_1.expect)(await resolve([file('a&b', 'x')], agents_md_variable_contribution_1.AGENTS_MD_VARIABLE, 2)).to.contain('<file>a&amp;b/AGENTS.md</file>');
102
+ });
103
+ it('never inlines the content', async () => {
104
+ (0, chai_1.expect)(await resolve([file('a', 'secret project conventions'), file('b', 'y')], agents_md_variable_contribution_1.AGENTS_MD_VARIABLE))
105
+ .to.not.contain('secret project conventions');
106
+ });
107
+ });
108
+ describe('the two are mutually exclusive', () => {
109
+ it('never emits both for the same workspace', async () => {
110
+ for (const [files, roots] of [
111
+ [[file('theia', 'x')], 1],
112
+ [[file('a', 'x'), file('b', 'y')], 2],
113
+ [[file('a', 'x')], 2],
114
+ [[], 1]
115
+ ]) {
116
+ const loaded = await resolve(files, agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE, roots);
117
+ const listed = await resolve(files, agents_md_variable_contribution_1.AGENTS_MD_VARIABLE, roots);
118
+ (0, chai_1.expect)(loaded === '' || listed === '', `both were non-empty for ${roots} root(s)`).to.be.true;
119
+ }
120
+ });
121
+ });
122
+ describe('agentsMdContent', () => {
123
+ it('resolves to nothing when the workspace has no AGENTS.md', async () => {
124
+ (0, chai_1.expect)(await resolve([], agents_md_variable_contribution_1.AGENTS_MD_CONTENT_VARIABLE)).to.equal('');
125
+ });
126
+ it('inlines a single root verbatim, without provenance framing', async () => {
127
+ (0, chai_1.expect)(await resolve([file('theia', '# Project\n\nUse npm.')], agents_md_variable_contribution_1.AGENTS_MD_CONTENT_VARIABLE)).to.equal('# Project\n\nUse npm.');
128
+ });
129
+ it('labels the sources when several roots contribute', async () => {
130
+ (0, chai_1.expect)(await resolve([file('a', 'first'), file('b', 'second')], agents_md_variable_contribution_1.AGENTS_MD_CONTENT_VARIABLE)).to.equal('### a\n\nfirst\n\n### b\n\nsecond');
131
+ });
132
+ it('keeps function references in the content from attaching tools', async () => {
133
+ (0, chai_1.expect)((0, prompt_service_util_1.matchFunctionsRegEx)(await resolve([file('a', '~{getFileContent}')], agents_md_variable_contribution_1.AGENTS_MD_CONTENT_VARIABLE))).to.be.empty;
134
+ (0, chai_1.expect)((0, prompt_service_util_1.matchFunctionsRegEx)(await resolve([file('a', '~{x}'), file('b', '~{y}')], agents_md_variable_contribution_1.AGENTS_MD_CONTENT_VARIABLE))).to.be.empty;
135
+ });
136
+ });
137
+ describe('canResolve', () => {
138
+ it('claims all three variables and nothing else', () => {
139
+ const contribution = createContribution([]);
140
+ const context = {};
141
+ (0, chai_1.expect)(contribution.canResolve({ variable: agents_md_variable_contribution_1.AGENTS_MD_AUTO_LOADED_VARIABLE }, context)).to.equal(1);
142
+ (0, chai_1.expect)(contribution.canResolve({ variable: agents_md_variable_contribution_1.AGENTS_MD_VARIABLE }, context)).to.equal(1);
143
+ (0, chai_1.expect)(contribution.canResolve({ variable: agents_md_variable_contribution_1.AGENTS_MD_CONTENT_VARIABLE }, context)).to.equal(1);
144
+ (0, chai_1.expect)(contribution.canResolve({ variable: { id: 'other', name: 'other', description: '' } }, context)).to.equal(-1);
145
+ });
146
+ });
147
+ });
148
+ //# sourceMappingURL=agents-md-variable-contribution.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md-variable-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/agents-md-variable-contribution.spec.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,8DAAiE;AACjE,MAAM,YAAY,GAAG,IAAA,mBAAW,GAAE,CAAC;AAEnC,uHAAiH;AACjH,iGAAiG;AACjG,eAAe;AACf,IAAI,CAAC;IACD,wEAAiC,CAAC,GAAG,EAAE,CAAC;AAC5C,CAAC;AAAC,MAAM,CAAC;IACL,wEAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,+BAA8B;AAC9B,sCAAkC;AAElC,uFAAiK;AAEjK,uEAAoE;AAEpE,YAAY,EAAE,CAAC;AAEf,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAE1C,SAAS,IAAI,CAAC,QAAgB,EAAE,OAAe;QAC3C,OAAO,EAAE,GAAG,EAAE,IAAI,UAAG,CAAC,WAAW,QAAQ,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACH,SAAS,kBAAkB,CAAC,KAAqB,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM;QACvE,MAAM,YAAY,GAAG,IAAI,8DAA4B,EAAE,CAAC;QACxD,MAAM,OAAO,GAAoB;YAC7B,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;YAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3C,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;SAC3B,CAAC;QACD,YAAgE,CAAC,eAAe,GAAG,OAAO,CAAC;QAC3F,YAAyD,CAAC,gBAAgB,GAAG;YAC1E,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACnD,CAAC;QACF,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,KAAqB,EAAE,QAAmC,EAAE,SAAkB;QACjG,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAuB,CAAC,CAAC;QAC3G,OAAO,QAAS,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,EAAE,EAAE,gEAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,EAAE,gEAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,+FAA+F,CAClG,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,gEAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACpF,oFAAoF;YACpF,iEAAiE;YACjE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,gEAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC,EAAE,gEAA8B,EAAE,CAAC,CAAC,CAAC;YACnH,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YACxD,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC,EAAE,gEAA8B,EAAE,CAAC,CAAC,CAAC;YAC9H,IAAA,aAAM,EAAC,IAAA,yCAAmB,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClD,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,EAAE,EAAE,oDAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC5E,sEAAsE;YACtE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,oDAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC5E,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,oDAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAChF,2FAA2F,CAC9F,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YACzF,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,oDAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACnE,iEAAiE,CACpE,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC1C,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,oDAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACvC,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,oDAAkB,CAAC,CAAC;iBAC/F,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACrD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;gBACzB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,CAAC;aACoB,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,gEAA8B,EAAE,KAAK,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,oDAAkB,EAAE,KAAK,CAAC,CAAC;gBAC/D,IAAA,aAAM,EAAC,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,2BAA2B,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAClG,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,EAAE,EAAE,4DAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,EAAE,4DAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAClI,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAC9D,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,4DAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACjG,mCAAmC,CACtC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC3E,IAAA,aAAM,EAAC,IAAA,yCAAmB,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,4DAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACrH,IAAA,aAAM,EAAC,IAAA,yCAAmB,EAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,4DAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/H,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,EAAuB,CAAC;YACxC,IAAA,aAAM,EAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,gEAA8B,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnG,IAAA,aAAM,EAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,oDAAkB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvF,IAAA,aAAM,EAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,4DAA0B,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAA,aAAM,EAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -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;;AA0E/D,wBA4IG"}
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");
@@ -54,6 +55,11 @@ const product_name_variable_contribution_1 = require("./product-name-variable-co
54
55
  const capability_variable_contribution_1 = require("../common/capability-variable-contribution");
55
56
  const generic_capabilities_variable_contribution_1 = require("./generic-capabilities-variable-contribution");
56
57
  const generic_capabilities_prompt_fragment_contribution_1 = require("./generic-capabilities-prompt-fragment-contribution");
58
+ const agents_md_service_1 = require("./agents-md-service");
59
+ const agents_md_variable_contribution_1 = require("./agents-md-variable-contribution");
60
+ const agents_md_prompt_fragment_contribution_1 = require("./agents-md-prompt-fragment-contribution");
61
+ const agents_md_migration_service_1 = require("./agents-md-migration-service");
62
+ const agents_md_frontend_application_contribution_1 = require("./agents-md-frontend-application-contribution");
57
63
  const language_model_service_1 = require("../common/language-model-service");
58
64
  const frontend_language_model_service_1 = require("./frontend-language-model-service");
59
65
  const token_usage_frontend_service_1 = require("./token-usage-frontend-service");
@@ -98,6 +104,12 @@ exports.default = new inversify_1.ContainerModule(bind => {
98
104
  bind(skill_service_1.SkillService).toService(skill_service_1.DefaultSkillService);
99
105
  bind(skill_prompt_coordinator_1.SkillPromptCoordinator).toSelf().inSingletonScope();
100
106
  bind(browser_1.FrontendApplicationContribution).toService(skill_prompt_coordinator_1.SkillPromptCoordinator);
107
+ bind(agents_md_service_1.DefaultAgentsMdService).toSelf().inSingletonScope();
108
+ bind(agents_md_service_1.AgentsMdService).toService(agents_md_service_1.DefaultAgentsMdService);
109
+ bind(agents_md_migration_service_1.AgentsMdMigrationService).toSelf().inSingletonScope();
110
+ bind(agents_md_frontend_application_contribution_1.AgentsMdFrontendApplicationContribution).toSelf().inSingletonScope();
111
+ bind(browser_1.FrontendApplicationContribution).toService(agents_md_frontend_application_contribution_1.AgentsMdFrontendApplicationContribution);
112
+ bind(core_1.CommandContribution).toService(agents_md_frontend_application_contribution_1.AgentsMdFrontendApplicationContribution);
101
113
  (0, core_1.bindRootContributionProvider)(bind, skill_service_1.SkillDirectoryContribution);
102
114
  (0, core_1.bindRootContributionProvider)(bind, common_1.AIVariableContribution);
103
115
  bind(frontend_variable_service_1.DefaultFrontendVariableService).toSelf().inSingletonScope();
@@ -109,18 +121,23 @@ exports.default = new inversify_1.ContainerModule(bind => {
109
121
  bind(prompt_variable_contribution_1.PromptVariableContribution).toSelf().inSingletonScope();
110
122
  bind(common_1.AIVariableContribution).toService(prompt_variable_contribution_1.PromptVariableContribution);
111
123
  bind(common_1.AIVariableContribution).to(today_variable_contribution_1.TodayVariableContribution).inSingletonScope();
124
+ bind(workspace_relative_path_resolver_1.WorkspaceRelativePathResolver).toSelf().inSingletonScope();
112
125
  bind(common_1.AIVariableContribution).to(file_variable_contribution_1.FileVariableContribution).inSingletonScope();
113
126
  bind(agents_variable_contribution_1.AgentsVariableContribution).toSelf().inSingletonScope();
114
127
  bind(common_1.AIVariableContribution).toService(agents_variable_contribution_1.AgentsVariableContribution);
115
128
  bind(common_1.AIVariableContribution).to(open_editors_variable_contribution_1.OpenEditorsVariableContribution).inSingletonScope();
116
129
  bind(skills_variable_contribution_1.SkillsVariableContribution).toSelf().inSingletonScope();
117
130
  bind(common_1.AIVariableContribution).toService(skills_variable_contribution_1.SkillsVariableContribution);
131
+ bind(agents_md_variable_contribution_1.AgentsMdVariableContribution).toSelf().inSingletonScope();
132
+ bind(common_1.AIVariableContribution).toService(agents_md_variable_contribution_1.AgentsMdVariableContribution);
118
133
  bind(common_1.AIVariableContribution).to(capability_variable_contribution_1.CapabilityVariableContribution).inSingletonScope();
119
134
  bind(common_1.AIVariableContribution).to(product_name_variable_contribution_1.ProductNameVariableContribution).inSingletonScope();
120
135
  bind(generic_capabilities_variable_contribution_1.GenericCapabilitiesVariableContribution).toSelf().inSingletonScope();
121
136
  bind(common_1.AIVariableContribution).toService(generic_capabilities_variable_contribution_1.GenericCapabilitiesVariableContribution);
122
137
  bind(generic_capabilities_prompt_fragment_contribution_1.GenericCapabilitiesPromptFragmentContribution).toSelf().inSingletonScope();
123
138
  bind(browser_1.FrontendApplicationContribution).toService(generic_capabilities_prompt_fragment_contribution_1.GenericCapabilitiesPromptFragmentContribution);
139
+ bind(agents_md_prompt_fragment_contribution_1.AgentsMdPromptFragmentContribution).toSelf().inSingletonScope();
140
+ bind(browser_1.FrontendApplicationContribution).toService(agents_md_prompt_fragment_contribution_1.AgentsMdPromptFragmentContribution);
124
141
  bind(browser_1.FrontendApplicationContribution).to(ai_core_frontend_application_contribution_1.AICoreFrontendApplicationContribution).inSingletonScope();
125
142
  bind(common_1.ToolInvocationRegistry).to(common_1.ToolInvocationRegistryImpl).inSingletonScope();
126
143
  (0, core_1.bindRootContributionProvider)(bind, common_1.ToolProvider);
@@ -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":";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,sCAA0I;AAC1I,+GAGuE;AACvE,4DAA+D;AAC/D,qGAA6F;AAC7F,yFAAyH;AACzH,qFAA+E;AAC/E,uEAAkE;AAClE,mFAA6E;AAC7E,mFAA6E;AAC7E,yEAA4E;AAC5E,sCAyBmB;AACnB,yFAG4C;AAC5C,qDAAqG;AACrG,mFAA0F;AAC1F,iEAA2F;AAC3F,2GAAoG;AACpG,uEAAsE;AACtE,+DAA8D;AAC9D,mGAAoG;AACpG,2EAAsG;AACtG,+EAA2E;AAC3E,6EAAwE;AACxE,yFAAmF;AACnF,+EAA0E;AAC1E,uFAAkF;AAClF,yFAAoF;AACpF,6FAAuF;AACvF,iFAA4E;AAC5E,mEAAuF;AACvF,2DAAyE;AACzE,6EAAuE;AACvE,iEAA+D;AAC/D,mDAAgG;AAChG,yEAAoE;AACpE,iFAA2E;AAC3E,iFAA4E;AAC5E,6FAAuF;AACvF,iGAA4F;AAC5F,6GAAuG;AACvG,2HAAoH;AACpH,2DAA8E;AAC9E,uFAAiF;AACjF,qGAA8F;AAC9F,+EAAyE;AACzE,+GAAwG;AACxG,6EAAwE;AACxE,uFAAqF;AACrF,iFAA2E;AAC3E,2FAAiH;AACjH,qFAA8E;AAC9E,6EAAwE;AACxE,uEAAkE;AAClE,iEAA4D;AAE5D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAA,mCAA4B,EAAC,IAAI,EAAE,cAAK,CAAC,CAAC;IAC1C,IAAA,mCAA4B,EAAC,IAAI,EAAE,8BAAqB,CAAC,CAAC;IAE1D,IAAI,CAAC,oEAAiC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,sCAA6B,CAAC,CAAC,SAAS,CAAC,oEAAiC,CAAC,CAAC;IACjF,IAAI,CAAC,8BAAqB,CAAC,CAAC,SAAS,CAAC,oEAAiC,CAAC,CAAC;IAEzE,IAAI,CAAC,kEAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,oCAA2B,CAAC,CAAC,SAAS,CAAC,kEAA+B,CAAC,CAAC;IAC7E,IAAI,CAAC,oCAA2B,CAAC,CAAC,SAAS,CAAC,oCAA2B,CAAC,CAAC;IAEzE,IAAI,CAAC,8CAAqC,CAAC,CAAC,cAAc,CACtD,GAAG,CAAC,EAAE;QACF,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA4B,sDAAwB,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA8B,oCAA2B,CAAC,CAAC;QAC3F,OAAO,UAAU,CAAC,WAAW,CAAwC,0CAAiC,EAAE,MAAM,CAAC,CAAC;IACpH,CAAC,CACJ,CAAC;IAEF,IAAI,CAAC,sCAA6B,CAAC;SAC9B,cAAc,CAAC,GAAG,CAAC,EAAE;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA4B,sDAAwB,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA8B,oCAA2B,CAAC,CAAC;QAC3F,OAAO,UAAU,CAAC,WAAW,CAAgC,kCAAyB,EAAE,MAAM,CAAC,CAAC;IACpG,CAAC,CAAC;SACD,gBAAgB,EAAE,CAAC;IAExB,IAAA,2CAAqB,EAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,CAAC,iFAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,2CAAkC,CAAC,CAAC,SAAS,CAAC,iFAAyC,CAAC,CAAC;IAC9F,IAAI,CAAC,0BAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,sBAAa,CAAC,CAAC,SAAS,CAAC,0BAAiB,CAAC,CAAC;IAEjD,IAAI,CAAC,wDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,gDAAqC,CAAC,CAAC,SAAS,CAAC,wDAA0B,CAAC,CAAC;IAClF,IAAI,CAAC,0BAAmB,CAAC,CAAC,SAAS,CAAC,wDAA0B,CAAC,CAAC;IAChE,IAAI,CAAC,2CAAyB,CAAC,CAAC,SAAS,CAAC,wDAA0B,CAAC,CAAC;IAEtE,IAAI,CAAC,2CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxD,IAAI,CAAC,oCAAiB,CAAC,CAAC,SAAS,CAAC,2CAAqB,CAAC,CAAC;IAEzD,IAAI,CAAC,mCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,4BAAY,CAAC,CAAC,SAAS,CAAC,mCAAmB,CAAC,CAAC;IAElD,IAAI,CAAC,iDAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,iDAAsB,CAAC,CAAC;IAExE,IAAI,CAAC,0CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,mCAAe,CAAC,CAAC,SAAS,CAAC,0CAAsB,CAAC,CAAC;IACxD,IAAI,CAAC,sDAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,qFAAuC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1E,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,qFAAuC,CAAC,CAAC;IACzF,IAAI,CAAC,0BAAmB,CAAC,CAAC,SAAS,CAAC,qFAAuC,CAAC,CAAC;IAE7E,IAAA,mCAA4B,EAAC,IAAI,EAAE,0CAA0B,CAAC,CAAC;IAE/D,IAAA,mCAA4B,EAAC,IAAI,EAAE,+BAAsB,CAAC,CAAC;IAC3D,IAAI,CAAC,0DAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACjE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,0DAA8B,CAAC,CAAC;IACxE,IAAI,CAAC,0BAAiB,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IAC3D,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IAEzE,IAAI,CAAC,uDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IAElE,IAAI,CAAC,yDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,yDAA0B,CAAC,CAAC;IACnE,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,uDAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9E,IAAI,CAAC,gEAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,qDAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7E,IAAI,CAAC,yDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,yDAA0B,CAAC,CAAC;IACnE,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,oEAA+B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpF,IAAI,CAAC,yDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,yDAA0B,CAAC,CAAC;IACnE,IAAI,CAAC,8DAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/D,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,8DAA4B,CAAC,CAAC;IACrE,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,iEAA8B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACnF,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,oEAA+B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpF,IAAI,CAAC,oFAAuC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1E,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,oFAAuC,CAAC,CAAC;IAEhF,IAAI,CAAC,iGAA6C,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChF,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,iGAA6C,CAAC,CAAC;IAE/F,IAAI,CAAC,2EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,2EAAkC,CAAC,CAAC;IAEpF,IAAI,CAAC,yCAA+B,CAAC,CAAC,EAAE,CAAC,iFAAqC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEnG,IAAI,CAAC,+BAAsB,CAAC,CAAC,EAAE,CAAC,mCAA0B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/E,IAAA,mCAA4B,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAC;IAEjD,IAAI,CAAC,+CAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,2CAAmB,CAAC,CAAC,SAAS,CAAC,+CAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,2CAAmB,CAAC,CAAC;IAErE,IAAI,CAAC,gCAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnD,IAAI,CAAC,4BAAY,CAAC,CAAC,SAAS,CAAC,gCAAgB,CAAC,CAAC;IAE/C,IAAI,CAAC,oDAAuB,CAAC,CAAC,SAAS,CAAiB,OAAO,CAAC,EAAE,CAAC,CAAC,OAAuB,EAAE,EAAE;QAC3F,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAsB,2CAAmB,CAAC,CAAC;QAC1F,OAAO;YACH,OAAO,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACzD,SAAS,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;YACrG,SAAS,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;YACvG,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,0BAAmB,CAAC,CAAC,SAAS,CAAC,wDAAyB,CAAC,CAAC;IAC/D,IAAI,CAAC,kEAAgC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,6CAAoB,CAAC,CAAC,SAAS,CAAC,kEAAgC,CAAC,CAAC;IAEvE,IAAI,CAAC,wDAAyB,CAAC,CAAC,EAAE,CAAC,iEAA6B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrF,IAAI,CAAC,gCAAuB,CAAC,CAAC,EAAE,CAAC,+DAA2B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEjF,IAAI,CAAC,0EAAiC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,iDAA0B,CAAC,CAAC,SAAS,CAAC,0EAAiC,CAAC,CAAC;IAE9E,sGAAsG;IACtG,IAAI,CAAC,6BAAsB,CAAC,CAAC,EAAE,CAAC,gEAA6B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClF,yFAAyF;IACzF,IAAI,CAAC,6BAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,uEAAoC,EAAE,CAAC,CAAC;IAE/F,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,+CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAExD,qGAAqG;IACrG,IAAI,CAAC,0DAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE7D,IAAI,CAAC,0DAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAsB,CAAC,CAAC,SAAS,CAAC,0DAA0B,CAAC,CAAC;IAEnE,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACzC,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA4B,sDAAwB,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAA0B,gCAAuB,CAAC,CAAC;QACnF,OAAO,UAAU,CAAC,WAAW,CAAoB,iCAAwB,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,mCAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,uBAAgB,CAAC,CAAC,SAAS,CAAC,mCAA0B,CAAC,CAAC;IAC7D,IAAI,CAAC,2DAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,mCAAyB,CAAC,CAAC,SAAS,CAAC,2DAA0B,CAAC,CAAC;IAEtE,IAAI,CAAC,qDAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,+CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxD,IAAI,CAAC,yCAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrD,IAAI,CAAC,sCAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,uBAAgB,CAAC,CAAC,SAAS,CAAC,sCAA6B,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC"}
@@ -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);