@theia/ai-core 1.61.0-next.8 → 1.61.0

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 (55) hide show
  1. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-core-frontend-module.js +7 -0
  3. package/lib/browser/ai-core-frontend-module.js.map +1 -1
  4. package/lib/browser/ai-variable-uri-label-provider.d.ts +17 -0
  5. package/lib/browser/ai-variable-uri-label-provider.d.ts.map +1 -0
  6. package/lib/browser/ai-variable-uri-label-provider.js +85 -0
  7. package/lib/browser/ai-variable-uri-label-provider.js.map +1 -0
  8. package/lib/browser/file-variable-contribution.d.ts +9 -3
  9. package/lib/browser/file-variable-contribution.d.ts.map +1 -1
  10. package/lib/browser/file-variable-contribution.js +26 -8
  11. package/lib/browser/file-variable-contribution.js.map +1 -1
  12. package/lib/browser/frontend-prompt-customization-service.d.ts +22 -1
  13. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
  14. package/lib/browser/frontend-prompt-customization-service.js +63 -25
  15. package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
  16. package/lib/browser/frontend-variable-service.d.ts +28 -4
  17. package/lib/browser/frontend-variable-service.d.ts.map +1 -1
  18. package/lib/browser/frontend-variable-service.js +84 -1
  19. package/lib/browser/frontend-variable-service.js.map +1 -1
  20. package/lib/common/ai-variable-resource.d.ts +18 -0
  21. package/lib/common/ai-variable-resource.d.ts.map +1 -0
  22. package/lib/common/ai-variable-resource.js +103 -0
  23. package/lib/common/ai-variable-resource.js.map +1 -0
  24. package/lib/common/configurable-in-memory-resources.d.ts +45 -0
  25. package/lib/common/configurable-in-memory-resources.d.ts.map +1 -0
  26. package/lib/common/configurable-in-memory-resources.js +147 -0
  27. package/lib/common/configurable-in-memory-resources.js.map +1 -0
  28. package/lib/common/index.d.ts +2 -0
  29. package/lib/common/index.d.ts.map +1 -1
  30. package/lib/common/index.js +2 -0
  31. package/lib/common/index.js.map +1 -1
  32. package/lib/common/prompt-service.d.ts +16 -4
  33. package/lib/common/prompt-service.d.ts.map +1 -1
  34. package/lib/common/prompt-service.js +1 -1
  35. package/lib/common/prompt-service.js.map +1 -1
  36. package/lib/common/prompt-variable-contribution.d.ts +2 -1
  37. package/lib/common/prompt-variable-contribution.d.ts.map +1 -1
  38. package/lib/common/prompt-variable-contribution.js +10 -1
  39. package/lib/common/prompt-variable-contribution.js.map +1 -1
  40. package/lib/common/variable-service.d.ts +17 -2
  41. package/lib/common/variable-service.d.ts.map +1 -1
  42. package/lib/common/variable-service.js +43 -32
  43. package/lib/common/variable-service.js.map +1 -1
  44. package/package.json +11 -10
  45. package/src/browser/ai-core-frontend-module.ts +12 -5
  46. package/src/browser/ai-variable-uri-label-provider.ts +66 -0
  47. package/src/browser/file-variable-contribution.ts +34 -14
  48. package/src/browser/frontend-prompt-customization-service.ts +72 -25
  49. package/src/browser/frontend-variable-service.ts +115 -5
  50. package/src/common/ai-variable-resource.ts +86 -0
  51. package/src/common/configurable-in-memory-resources.ts +156 -0
  52. package/src/common/index.ts +2 -0
  53. package/src/common/prompt-service.ts +14 -4
  54. package/src/common/prompt-variable-contribution.ts +10 -2
  55. package/src/common/variable-service.ts +58 -44
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/common/prompt-variable-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAO,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EACH,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,0CAA0C,EAC1C,aAAa,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG7E,eAAO,MAAM,eAAe,EAAE,UAO7B,CAAC;AAEF,qBACa,0BAA2B,YAAW,sBAAsB,EAAE,0CAA0C;IAGjH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAE1E,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAMnD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAO9E,OAAO,CACT,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,GACzF,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;cAiB1B,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAQpD,8BAA8B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;CAwC5D"}
1
+ {"version":3,"file":"prompt-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/common/prompt-variable-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAO,MAAM,aAAa,CAAC;AAE3D,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EACH,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,0CAA0C,EAC1C,aAAa,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG7E,eAAO,MAAM,eAAe,EAAE,UAO7B,CAAC;AAEF,qBACa,0BAA2B,YAAW,sBAAsB,EAAE,0CAA0C;IAGjH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAG1E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAMnD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAO9E,OAAO,CACT,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,GACzF,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;cAsB1B,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAQpD,8BAA8B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;CAwC5D"}
@@ -57,7 +57,12 @@ let PromptVariableContribution = class PromptVariableContribution {
57
57
  }
58
58
  }
59
59
  }
60
- return undefined;
60
+ this.logger.debug(`Could not resolve prompt variable '${request.variable.name}' with arg '${request.arg}'. Returning empty string.`);
61
+ return {
62
+ variable: request.variable,
63
+ value: '',
64
+ allResolvedDependencies: []
65
+ };
61
66
  }
62
67
  async triggerArgumentPicker() {
63
68
  // Trigger the suggestion command to show argument completions
@@ -116,6 +121,10 @@ tslib_1.__decorate([
116
121
  (0, inversify_1.optional)(),
117
122
  tslib_1.__metadata("design:type", Object)
118
123
  ], PromptVariableContribution.prototype, "promptCustomizationService", void 0);
124
+ tslib_1.__decorate([
125
+ (0, inversify_1.inject)(core_1.ILogger),
126
+ tslib_1.__metadata("design:type", Object)
127
+ ], PromptVariableContribution.prototype, "logger", void 0);
119
128
  exports.PromptVariableContribution = PromptVariableContribution = tslib_1.__decorate([
120
129
  (0, inversify_1.injectable)()
121
130
  ], PromptVariableContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-variable-contribution.js","sourceRoot":"","sources":["../../src/common/prompt-variable-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-variable-contribution.js","sourceRoot":"","sources":["../../src/common/prompt-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,7 @@ export interface AIVariableResolutionRequest {
65
65
  }
66
66
  export declare namespace AIVariableResolutionRequest {
67
67
  function is(arg: unknown): arg is AIVariableResolutionRequest;
68
+ function fromResolved(arg: ResolvedAIContextVariable): AIVariableResolutionRequest;
68
69
  }
69
70
  export interface AIVariableContext {
70
71
  }
@@ -78,6 +79,10 @@ export interface AIVariableResolver {
78
79
  canResolve(request: AIVariableResolutionRequest, context: AIVariableContext): MaybePromise<number>;
79
80
  resolve(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<ResolvedAIVariable | undefined>;
80
81
  }
82
+ export interface AIVariableOpener {
83
+ canOpen(request: AIVariableResolutionRequest, context: AIVariableContext): MaybePromise<number>;
84
+ open(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<void>;
85
+ }
81
86
  export interface AIVariableResolverWithVariableDependencies extends AIVariableResolver {
82
87
  resolve(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<ResolvedAIVariable | undefined>;
83
88
  /**
@@ -98,13 +103,13 @@ export interface AIVariableService {
98
103
  registerResolver(variable: AIVariable, resolver: AIVariableResolver): Disposable;
99
104
  unregisterResolver(variable: AIVariable, resolver: AIVariableResolver): void;
100
105
  getResolver(name: string, arg: string | undefined, context: AIVariableContext): Promise<AIVariableResolver | undefined>;
106
+ resolveVariable(variable: AIVariableArg, context: AIVariableContext, cache?: Map<string, ResolveAIVariableCacheEntry>): Promise<ResolvedAIVariable | undefined>;
101
107
  registerArgumentPicker(variable: AIVariable, argPicker: AIVariableArgPicker): Disposable;
102
108
  unregisterArgumentPicker(variable: AIVariable, argPicker: AIVariableArgPicker): void;
103
109
  getArgumentPicker(name: string, context: AIVariableContext): Promise<AIVariableArgPicker | undefined>;
104
110
  registerArgumentCompletionProvider(variable: AIVariable, argPicker: AIVariableArgCompletionProvider): Disposable;
105
111
  unregisterArgumentCompletionProvider(variable: AIVariable, argPicker: AIVariableArgCompletionProvider): void;
106
112
  getArgumentCompletionProvider(name: string): Promise<AIVariableArgCompletionProvider | undefined>;
107
- resolveVariable(variable: AIVariableArg, context: AIVariableContext, cache?: Map<string, ResolveAIVariableCacheEntry>): Promise<ResolvedAIVariable | undefined>;
108
113
  }
109
114
  /** Contributions on the frontend can optionally implement `FrontendVariableContribution`. */
110
115
  export declare const AIVariableContribution: unique symbol;
@@ -117,7 +122,7 @@ export interface ResolveAIVariableCacheEntry {
117
122
  }
118
123
  export type ResolveAIVariableCache = Map<string, ResolveAIVariableCacheEntry>;
119
124
  /**
120
- * Creates a new, empty cache for AI variable resolvement to hand into `AIVariableService.resolveVariable`.
125
+ * Creates a new, empty cache for AI variable resolution to hand into `AIVariableService.resolveVariable`.
121
126
  */
122
127
  export declare function createAIResolveVariableCache(): Map<string, ResolveAIVariableCacheEntry>;
123
128
  /** Utility function to get all resolved AI variables from a {@link ResolveAIVariableCache} */
@@ -128,6 +133,7 @@ export declare class DefaultAIVariableService implements AIVariableService {
128
133
  protected variables: Map<string, AIVariable>;
129
134
  protected resolvers: Map<string, AIVariableResolver[]>;
130
135
  protected argPickers: Map<string, AIVariableArgPicker>;
136
+ protected openers: Map<string, AIVariableOpener[]>;
131
137
  protected argCompletionProviders: Map<string, AIVariableArgCompletionProvider>;
132
138
  protected readonly onDidChangeVariablesEmitter: Emitter<void>;
133
139
  readonly onDidChangeVariables: Event<void>;
@@ -150,6 +156,15 @@ export declare class DefaultAIVariableService implements AIVariableService {
150
156
  registerArgumentCompletionProvider(variable: AIVariable, completionProvider: AIVariableArgCompletionProvider): Disposable;
151
157
  unregisterArgumentCompletionProvider(variable: AIVariable, completionProvider: AIVariableArgCompletionProvider): void;
152
158
  getArgumentCompletionProvider(name: string): Promise<AIVariableArgCompletionProvider | undefined>;
159
+ protected parseRequest(request: AIVariableArg): {
160
+ variableName: string;
161
+ arg: string | undefined;
162
+ };
153
163
  resolveVariable(request: AIVariableArg, context: AIVariableContext, cache?: ResolveAIVariableCache): Promise<ResolvedAIVariable | undefined>;
164
+ /**
165
+ * Asynchronously resolves a variable, handling its dependencies while preventing cyclical resolution.
166
+ * Selects the appropriate resolver and resolution strategy based on whether nested dependency resolution is supported.
167
+ */
168
+ protected doResolve(variableName: string, arg: string | undefined, context: AIVariableContext, cache: ResolveAIVariableCache): Promise<ResolvedAIVariable | undefined>;
154
169
  }
155
170
  //# sourceMappingURL=variable-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variable-service.d.ts","sourceRoot":"","sources":["../../src/common/variable-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variable-service.d.ts","sourceRoot":"","sources":["../../src/common/variable-service.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,13 @@ var AIVariableResolutionRequest;
70
70
  typeof arg.variable.name === 'string';
71
71
  }
72
72
  AIVariableResolutionRequest.is = is;
73
+ function fromResolved(arg) {
74
+ return {
75
+ variable: arg.variable,
76
+ arg: arg.arg
77
+ };
78
+ }
79
+ AIVariableResolutionRequest.fromResolved = fromResolved;
73
80
  })(AIVariableResolutionRequest || (exports.AIVariableResolutionRequest = AIVariableResolutionRequest = {}));
74
81
  function isResolverWithDependencies(resolver) {
75
82
  return resolver !== undefined && resolver.resolve.length >= 3;
@@ -78,7 +85,7 @@ exports.AIVariableService = Symbol('AIVariableService');
78
85
  /** Contributions on the frontend can optionally implement `FrontendVariableContribution`. */
79
86
  exports.AIVariableContribution = Symbol('AIVariableContribution');
80
87
  /**
81
- * Creates a new, empty cache for AI variable resolvement to hand into `AIVariableService.resolveVariable`.
88
+ * Creates a new, empty cache for AI variable resolution to hand into `AIVariableService.resolveVariable`.
82
89
  */
83
90
  function createAIResolveVariableCache() {
84
91
  return new Map();
@@ -105,6 +112,7 @@ let DefaultAIVariableService = class DefaultAIVariableService {
105
112
  this.variables = new Map();
106
113
  this.resolvers = new Map();
107
114
  this.argPickers = new Map();
115
+ this.openers = new Map();
108
116
  this.argCompletionProviders = new Map();
109
117
  this.onDidChangeVariablesEmitter = new core_1.Emitter();
110
118
  this.onDidChangeVariables = this.onDidChangeVariablesEmitter.event;
@@ -207,17 +215,21 @@ let DefaultAIVariableService = class DefaultAIVariableService {
207
215
  var _a;
208
216
  return (_a = this.argCompletionProviders.get(this.getKey(name))) !== null && _a !== void 0 ? _a : undefined;
209
217
  }
210
- async resolveVariable(request, context, cache = createAIResolveVariableCache()) {
211
- // Calculate unique variable cache key from variable name and argument
218
+ parseRequest(request) {
212
219
  const variableName = typeof request === 'string'
213
220
  ? request
214
221
  : typeof request.variable === 'string'
215
222
  ? request.variable
216
223
  : request.variable.name;
217
224
  const arg = typeof request === 'string' ? undefined : request.arg;
225
+ return { variableName, arg };
226
+ }
227
+ async resolveVariable(request, context, cache = createAIResolveVariableCache()) {
228
+ // Calculate unique variable cache key from variable name and argument
229
+ const { variableName, arg } = this.parseRequest(request);
218
230
  const cacheKey = `${variableName}${prompt_text_1.PromptText.VARIABLE_SEPARATOR_CHAR}${arg !== null && arg !== void 0 ? arg : ''}`;
219
231
  // If the current cache key exists and is still in progress, we reached a cycle.
220
- // If we reach it but it has been resolved, it was part of another resolvement branch and we can simply return it.
232
+ // If we reach it but it has been resolved, it was part of another resolution branch and we can simply return it.
221
233
  if (cache.has(cacheKey)) {
222
234
  const existingEntry = cache.get(cacheKey);
223
235
  if (existingEntry.inProgress) {
@@ -226,35 +238,34 @@ let DefaultAIVariableService = class DefaultAIVariableService {
226
238
  }
227
239
  return existingEntry.promise;
228
240
  }
229
- const entry = { promise: Promise.resolve(undefined), inProgress: true };
241
+ const entry = { promise: this.doResolve(variableName, arg, context, cache), inProgress: true };
242
+ entry.promise.finally(() => entry.inProgress = false);
230
243
  cache.set(cacheKey, entry);
231
- // Asynchronously resolves a variable, handling its dependencies while preventing cyclical resolution.
232
- // Selects the appropriate resolver and resolution strategy based on whether nested dependency resolution is supported.
233
- const promise = (async () => {
234
- const variable = this.getVariable(variableName);
235
- if (!variable) {
236
- return undefined;
237
- }
238
- const resolver = await this.getResolver(variableName, arg, context);
239
- let resolved;
240
- if (isResolverWithDependencies(resolver)) {
241
- // Explicit cast needed because Typescript does not consider the method parameter length of the type guard at compile time
242
- resolved = await resolver.resolve({ variable, arg }, context, async (depRequest) => this.resolveVariable(depRequest, context, cache));
243
- }
244
- else if (resolver) {
245
- // Explicit cast needed because Typescript does not consider the method parameter length of the type guard at compile time
246
- resolved = await resolver.resolve({ variable, arg }, context);
247
- }
248
- else {
249
- resolved = undefined;
250
- }
251
- return resolved ? { ...resolved, arg } : undefined;
252
- })();
253
- entry.promise = promise;
254
- promise.finally(() => {
255
- entry.inProgress = false;
256
- });
257
- return promise;
244
+ return entry.promise;
245
+ }
246
+ /**
247
+ * Asynchronously resolves a variable, handling its dependencies while preventing cyclical resolution.
248
+ * Selects the appropriate resolver and resolution strategy based on whether nested dependency resolution is supported.
249
+ */
250
+ async doResolve(variableName, arg, context, cache) {
251
+ const variable = this.getVariable(variableName);
252
+ if (!variable) {
253
+ return undefined;
254
+ }
255
+ const resolver = await this.getResolver(variableName, arg, context);
256
+ let resolved;
257
+ if (isResolverWithDependencies(resolver)) {
258
+ // Explicit cast needed because Typescript does not consider the method parameter length of the type guard at compile time
259
+ resolved = await resolver.resolve({ variable, arg }, context, async (depRequest) => this.resolveVariable(depRequest, context, cache));
260
+ }
261
+ else if (resolver) {
262
+ // Explicit cast needed because Typescript does not consider the method parameter length of the type guard at compile time
263
+ resolved = await resolver.resolve({ variable, arg }, context);
264
+ }
265
+ else {
266
+ resolved = undefined;
267
+ }
268
+ return resolved ? { ...resolved, arg } : undefined;
258
269
  }
259
270
  };
260
271
  exports.DefaultAIVariableService = DefaultAIVariableService;
@@ -1 +1 @@
1
- {"version":3,"file":"variable-service.js","sourceRoot":"","sources":["../../src/common/variable-service.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;AAChF;;;gGAGgG;AAChG,gKAAgK;;;;AAEhK,sCAAsH;AACtH,4DAAyE;AAEzE,+CAA2C;AAsB3C,IAAiB,UAAU,CAO1B;AAPD,WAAiB,UAAU;IACvB,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YACnC,IAAI,IAAI,GAAG;YACX,MAAM,IAAI,GAAG;YACb,aAAa,IAAI,GAAG,CAAC;IAC7B,CAAC;IALe,aAAE,KAKjB,CAAA;AACL,CAAC,EAPgB,UAAU,0BAAV,UAAU,QAO1B;AAOD,IAAiB,iBAAiB,CAIjC;AAJD,WAAiB,iBAAiB;IAC9B,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,mBAAmB,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB,KAAK,IAAI,CAAC;IAC9F,CAAC;IAFe,oBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,iBAAiB,iCAAjB,iBAAiB,QAIjC;AAkBD,IAAiB,kBAAkB,CAQlC;AARD,WAAiB,kBAAkB;IAC/B,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YACnC,UAAU,IAAI,GAAG;YACjB,OAAO,IAAI,GAAG;YACd,OAAQ,GAA6B,CAAC,QAAQ,KAAK,QAAQ;YAC3D,OAAQ,GAA0B,CAAC,KAAK,KAAK,QAAQ,CAAC;IAC9D,CAAC;IANe,qBAAE,KAMjB,CAAA;AACL,CAAC,EARgB,kBAAkB,kCAAlB,kBAAkB,QAQlC;AAaD,IAAiB,yBAAyB,CAMzC;AAND,WAAiB,yBAAyB;IACtC,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC;YAC7B,cAAc,IAAI,GAAG;YACrB,OAAQ,GAAiC,CAAC,YAAY,KAAK,QAAQ,CAAC;IAC5E,CAAC;IAJe,4BAAE,KAIjB,CAAA;AACL,CAAC,EANgB,yBAAyB,yCAAzB,yBAAyB,QAMzC;AAOD,IAAiB,2BAA2B,CAM3C;AAND,WAAiB,2BAA2B;IACxC,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YACnC,UAAU,IAAI,GAAG;YACjB,OAAQ,GAAuC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;IACnF,CAAC;IAJe,8BAAE,KAIjB,CAAA;AACL,CAAC,EANgB,2BAA2B,2CAA3B,2BAA2B,QAM3C;AA8BD,SAAS,0BAA0B,CAAC,QAAwC;IACxE,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;AAClE,CAAC;AAEY,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAwB7D,6FAA6F;AAChF,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAWvE;;GAEG;AACH,SAAgB,4BAA4B;IACxC,OAAO,IAAI,GAAG,EAAE,CAAC;AACrB,CAAC;AAFD,oEAEC;AAED,+FAA+F;AACxF,KAAK,UAAU,yBAAyB,CAAC,KAA6B;IACzE,MAAM,iBAAiB,GAAyB,EAAE,CAAC;IACnD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAClD,IAAI,gBAAgB,EAAE,CAAC;gBACnB,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAXD,8DAWC;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IASjC,YAEI,oBAAqF,EACpE,MAAkC;QADhC,yBAAoB,GAApB,oBAAoB,CAA8C;QACjD,WAAM,GAAN,MAAM,CAAS;QAX7C,cAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC1C,cAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;QACpD,eAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;QACpD,2BAAsB,GAAG,IAAI,GAAG,EAA2C,CAAC;QAEnE,gCAA2B,GAAG,IAAI,cAAO,EAAQ,CAAC;QAC5D,yBAAoB,GAAgB,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;IAOpF,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,CAAC;IAES,MAAM,CAAC,IAAY;QACzB,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,GAAuB,EAAE,OAA0B;QAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAES,YAAY,CAAC,IAAY;;QAC/B,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mCAAI,EAAE,CAAC;IACvD,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,GAAuB,EAAE,OAA0B;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,qBAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,EAAE;YAC7F,IAAI,CAAC;gBACD,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,YAAY;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB,CAAC,QAAoB,EAAE,QAA4B;;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnC,OAAO,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB,CAAC,QAAoB,EAAE,QAA4B;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,IAAI,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,sBAAsB,CAAC,QAAoB,EAAE,SAA8B;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACpC,OAAO,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,wBAAwB,CAAC,QAAoB,EAAE,SAA8B;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;;QAChC,OAAO,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mCAAI,SAAS,CAAC;IAC/D,CAAC;IAED,kCAAkC,CAAC,QAAoB,EAAE,kBAAmD;QACxG,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACzD,OAAO,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,oCAAoC,CAAC,QAAoB,EAAE,kBAAmD;QAC1G,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,4BAA4B,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1E,IAAI,4BAA4B,KAAK,kBAAkB,EAAE,CAAC;YACtD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,IAAY;;QAC5C,OAAO,MAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mCAAI,SAAS,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,OAAsB,EACtB,OAA0B,EAC1B,QAAgC,4BAA4B,EAAE;QAE9D,sEAAsE;QACtE,MAAM,YAAY,GAAG,OAAO,OAAO,KAAK,QAAQ;YAC5C,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAClC,CAAC,CAAC,OAAO,CAAC,QAAQ;gBAClB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAClE,MAAM,QAAQ,GAAG,GAAG,YAAY,GAAG,wBAAU,CAAC,uBAAuB,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,EAAE,CAAC;QAEpF,gFAAgF;QAChF,kHAAkH;QAClH,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAC3C,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,YAAY,cAAc,GAAG,wBAAwB,CAAC,CAAC;gBACxG,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,OAAO,aAAa,CAAC,OAAO,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAgC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACrG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE3B,sGAAsG;QACtG,uHAAuH;QACvH,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACpE,IAAI,QAAwC,CAAC;YAC7C,IAAI,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,0HAA0H;gBAC1H,QAAQ,GAAG,MAAO,QAAuD,CAAC,OAAO,CAC7E,EAAE,QAAQ,EAAE,GAAG,EAAE,EACjB,OAAO,EACP,KAAK,EAAE,UAAuC,EAAE,EAAE,CAC9C,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CACvD,CAAC;YACN,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBAClB,0HAA0H;gBAC1H,QAAQ,GAAG,MAAO,QAA+B,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACJ,QAAQ,GAAG,SAAS,CAAC;YACzB,CAAC;YACD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC,CAAC,EAAE,CAAC;QAEL,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACjB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ,CAAA;AA5LY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,sBAAU,GAAE;IAWJ,mBAAA,IAAA,kBAAM,EAAC,2BAAoB,CAAC,CAAA;IAAE,mBAAA,IAAA,iBAAK,EAAC,8BAAsB,CAAC,CAAA;IAE3D,mBAAA,IAAA,kBAAM,EAAC,cAAO,CAAC,CAAA;;GAZX,wBAAwB,CA4LpC"}
1
+ {"version":3,"file":"variable-service.js","sourceRoot":"","sources":["../../src/common/variable-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "name": "@theia/ai-core",
3
- "version": "1.61.0-next.8+436de3c45",
3
+ "version": "1.61.0",
4
4
  "description": "Theia - AI Core",
5
5
  "dependencies": {
6
- "@theia/core": "1.61.0-next.8+436de3c45",
7
- "@theia/editor": "1.61.0-next.8+436de3c45",
8
- "@theia/filesystem": "1.61.0-next.8+436de3c45",
9
- "@theia/monaco": "1.61.0-next.8+436de3c45",
6
+ "@theia/core": "1.61.0",
7
+ "@theia/editor": "1.61.0",
8
+ "@theia/filesystem": "1.61.0",
9
+ "@theia/monaco": "1.61.0",
10
10
  "@theia/monaco-editor-core": "1.96.302",
11
- "@theia/output": "1.61.0-next.8+436de3c45",
12
- "@theia/variable-resolver": "1.61.0-next.8+436de3c45",
13
- "@theia/workspace": "1.61.0-next.8+436de3c45",
11
+ "@theia/output": "1.61.0",
12
+ "@theia/variable-resolver": "1.61.0",
13
+ "@theia/workspace": "1.61.0",
14
14
  "@types/js-yaml": "^4.0.9",
15
+ "fast-deep-equal": "^3.1.3",
15
16
  "js-yaml": "^4.1.0",
16
17
  "minimatch": "^5.1.0",
17
18
  "tslib": "^2.6.2"
@@ -52,10 +53,10 @@
52
53
  "watch": "theiaext watch"
53
54
  },
54
55
  "devDependencies": {
55
- "@theia/ext-scripts": "1.60.0"
56
+ "@theia/ext-scripts": "1.61.0"
56
57
  },
57
58
  "nyc": {
58
59
  "extends": "../../configs/nyc.json"
59
60
  },
60
- "gitHead": "436de3c4571e0000fdcbbf2e94ddfc992f38ccb2"
61
+ "gitHead": "c99af52568c2e1f453c80c1b0d1fb73c3a23dcc0"
61
62
  }
@@ -13,7 +13,7 @@
13
13
  //
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
- import { bindContributionProvider, CommandContribution, CommandHandler } from '@theia/core';
16
+ import { bindContributionProvider, CommandContribution, CommandHandler, ResourceResolver } from '@theia/core';
17
17
  import {
18
18
  RemoteConnectionProvider,
19
19
  ServiceConnectionProvider,
@@ -38,17 +38,17 @@ import {
38
38
  ToolProvider,
39
39
  TokenUsageService,
40
40
  TOKEN_USAGE_SERVICE_PATH,
41
- TokenUsageServiceClient
41
+ TokenUsageServiceClient,
42
+ AIVariableResourceResolver,
43
+ ConfigurableInMemoryResources
42
44
  } from '../common';
43
45
  import {
44
46
  FrontendLanguageModelRegistryImpl,
45
47
  LanguageModelDelegateClientImpl,
46
48
  } from './frontend-language-model-registry';
47
-
48
- import { FrontendApplicationContribution, PreferenceContribution } from '@theia/core/lib/browser';
49
+ import { FrontendApplicationContribution, LabelProviderContribution, PreferenceContribution } from '@theia/core/lib/browser';
49
50
  import { TabBarToolbarContribution } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
50
51
  import { LanguageGrammarDefinitionContribution } from '@theia/monaco/lib/browser/textmate';
51
-
52
52
  import { AICoreFrontendApplicationContribution } from './ai-core-frontend-application-contribution';
53
53
  import { bindAICorePreferences } from './ai-core-preferences';
54
54
  import { AgentSettingsPreferenceSchema } from './agent-preferences';
@@ -70,6 +70,7 @@ import { LanguageModelService } from '../common/language-model-service';
70
70
  import { FrontendLanguageModelServiceImpl } from './frontend-language-model-service';
71
71
  import { TokenUsageFrontendService } from './token-usage-frontend-service';
72
72
  import { TokenUsageFrontendServiceImpl, TokenUsageServiceClientImpl } from './token-usage-frontend-service-impl';
73
+ import { AIVariableUriLabelProvider } from './ai-variable-uri-label-provider';
73
74
 
74
75
  export default new ContainerModule(bind => {
75
76
  bindContributionProvider(bind, LanguageModelProvider);
@@ -158,4 +159,10 @@ export default new ContainerModule(bind => {
158
159
  const client = ctx.container.get<TokenUsageServiceClient>(TokenUsageServiceClient);
159
160
  return connection.createProxy<TokenUsageService>(TOKEN_USAGE_SERVICE_PATH, client);
160
161
  }).inSingletonScope();
162
+ bind(AIVariableResourceResolver).toSelf().inSingletonScope();
163
+ bind(ResourceResolver).toService(AIVariableResourceResolver);
164
+ bind(AIVariableUriLabelProvider).toSelf().inSingletonScope();
165
+ bind(LabelProviderContribution).toService(AIVariableUriLabelProvider);
166
+ bind(ConfigurableInMemoryResources).toSelf().inSingletonScope();
167
+ bind(ResourceResolver).toService(ConfigurableInMemoryResources);
161
168
  });
@@ -0,0 +1,66 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 Eclipse GmbH and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { inject, injectable } from '@theia/core/shared/inversify';
18
+ import { URI } from '@theia/core';
19
+ import { LabelProvider, LabelProviderContribution } from '@theia/core/lib/browser';
20
+ import { AI_VARIABLE_RESOURCE_SCHEME, AIVariableResourceResolver } from '../common/ai-variable-resource';
21
+ import { AIVariableResolutionRequest, AIVariableService } from '../common/variable-service';
22
+
23
+ @injectable()
24
+ export class AIVariableUriLabelProvider implements LabelProviderContribution {
25
+
26
+ @inject(LabelProvider) protected readonly labelProvider: LabelProvider;
27
+ @inject(AIVariableResourceResolver) protected variableResourceResolver: AIVariableResourceResolver;
28
+ @inject(AIVariableService) protected readonly variableService: AIVariableService;
29
+
30
+ protected isMine(element: object): element is URI {
31
+ return element instanceof URI && element.scheme === AI_VARIABLE_RESOURCE_SCHEME;
32
+ }
33
+
34
+ canHandle(element: object): number {
35
+ return this.isMine(element) ? 150 : -1;
36
+ }
37
+
38
+ getIcon(element: object): string | undefined {
39
+ if (!this.isMine(element)) { return undefined; }
40
+ return this.labelProvider.getIcon(this.getResolutionRequest(element)!);
41
+ }
42
+
43
+ getName(element: object): string | undefined {
44
+ if (!this.isMine(element)) { return undefined; }
45
+ return this.labelProvider.getName(this.getResolutionRequest(element)!);
46
+ }
47
+
48
+ getLongName(element: object): string | undefined {
49
+ if (!this.isMine(element)) { return undefined; }
50
+ return this.labelProvider.getLongName(this.getResolutionRequest(element)!);
51
+ }
52
+
53
+ getDetails(element: object): string | undefined {
54
+ if (!this.isMine(element)) { return undefined; }
55
+ return this.labelProvider.getDetails(this.getResolutionRequest(element)!);
56
+ }
57
+
58
+ protected getResolutionRequest(element: object): AIVariableResolutionRequest | undefined {
59
+ if (!this.isMine(element)) { return undefined; }
60
+ const metadata = this.variableResourceResolver.fromUri(element);
61
+ if (!metadata) { return undefined; }
62
+ const { variableName, arg } = metadata;
63
+ const variable = this.variableService.getVariable(variableName);
64
+ return variable && { variable, arg };
65
+ }
66
+ }
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { Path, URI } from '@theia/core';
18
- import { codiconArray } from '@theia/core/lib/browser';
18
+ import { OpenerService, codiconArray, open } from '@theia/core/lib/browser';
19
19
  import { inject, injectable } from '@theia/core/shared/inversify';
20
20
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
21
21
  import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
@@ -23,11 +23,12 @@ import {
23
23
  AIVariable,
24
24
  AIVariableContext,
25
25
  AIVariableContribution,
26
+ AIVariableOpener,
26
27
  AIVariableResolutionRequest,
27
28
  AIVariableResolver,
28
- AIVariableService,
29
29
  ResolvedAIContextVariable,
30
30
  } from '../common/variable-service';
31
+ import { FrontendVariableService } from './frontend-variable-service';
31
32
 
32
33
  export namespace FileVariableArgs {
33
34
  export const uri = 'uri';
@@ -44,15 +45,19 @@ export const FILE_VARIABLE: AIVariable = {
44
45
  };
45
46
 
46
47
  @injectable()
47
- export class FileVariableContribution implements AIVariableContribution, AIVariableResolver {
48
+ export class FileVariableContribution implements AIVariableContribution, AIVariableResolver, AIVariableOpener {
48
49
  @inject(FileService)
49
50
  protected readonly fileService: FileService;
50
51
 
51
52
  @inject(WorkspaceService)
52
53
  protected readonly wsService: WorkspaceService;
53
54
 
54
- registerVariables(service: AIVariableService): void {
55
+ @inject(OpenerService)
56
+ protected readonly openerService: OpenerService;
57
+
58
+ registerVariables(service: FrontendVariableService): void {
55
59
  service.registerResolver(FILE_VARIABLE, this);
60
+ service.registerOpener(FILE_VARIABLE, this);
56
61
  }
57
62
 
58
63
  async canResolve(request: AIVariableResolutionRequest, _: AIVariableContext): Promise<number> {
@@ -60,21 +65,15 @@ export class FileVariableContribution implements AIVariableContribution, AIVaria
60
65
  }
61
66
 
62
67
  async resolve(request: AIVariableResolutionRequest, _: AIVariableContext): Promise<ResolvedAIContextVariable | undefined> {
63
- if (request.variable.name !== FILE_VARIABLE.name || request.arg === undefined) {
64
- return undefined;
65
- }
68
+ const uri = await this.toUri(request);
66
69
 
67
- const path = request.arg;
68
- const absoluteUri = await this.makeAbsolute(path);
69
- if (!absoluteUri) {
70
- return undefined;
71
- }
70
+ if (!uri) { return undefined; }
72
71
 
73
72
  try {
74
- const content = await this.fileService.readFile(absoluteUri);
73
+ const content = await this.fileService.readFile(uri);
75
74
  return {
76
75
  variable: request.variable,
77
- value: await this.wsService.getWorkspaceRelativePath(absoluteUri),
76
+ value: await this.wsService.getWorkspaceRelativePath(uri),
78
77
  contextValue: content.value.toString(),
79
78
  };
80
79
  } catch (error) {
@@ -82,6 +81,27 @@ export class FileVariableContribution implements AIVariableContribution, AIVaria
82
81
  }
83
82
  }
84
83
 
84
+ protected async toUri(request: AIVariableResolutionRequest): Promise<URI | undefined> {
85
+ if (request.variable.name !== FILE_VARIABLE.name || request.arg === undefined) {
86
+ return undefined;
87
+ }
88
+
89
+ const path = request.arg;
90
+ return this.makeAbsolute(path);
91
+ }
92
+
93
+ canOpen(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<number> {
94
+ return this.canResolve(request, context);
95
+ }
96
+
97
+ async open(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<void> {
98
+ const uri = await this.toUri(request);
99
+ if (!uri) {
100
+ throw new Error('Unable to resolve URI for request.');
101
+ }
102
+ await open(this.openerService, uri);
103
+ }
104
+
85
105
  protected async makeAbsolute(pathStr: string): Promise<URI | undefined> {
86
106
  const path = new Path(Path.normalizePathSeparator(pathStr));
87
107
  if (!path.isAbsolute) {