@theia/ai-core 1.60.0-next.47 → 1.60.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 (71) hide show
  1. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-core-frontend-module.js +4 -0
  3. package/lib/browser/ai-core-frontend-module.js.map +1 -1
  4. package/lib/browser/ai-core-preferences.d.ts +22 -8
  5. package/lib/browser/ai-core-preferences.d.ts.map +1 -1
  6. package/lib/browser/ai-core-preferences.js +90 -10
  7. package/lib/browser/ai-core-preferences.js.map +1 -1
  8. package/lib/browser/frontend-language-model-registry.d.ts.map +1 -1
  9. package/lib/browser/frontend-language-model-registry.js +1 -1
  10. package/lib/browser/frontend-language-model-registry.js.map +1 -1
  11. package/lib/browser/frontend-language-model-service.d.ts +10 -0
  12. package/lib/browser/frontend-language-model-service.d.ts.map +1 -0
  13. package/lib/browser/frontend-language-model-service.js +66 -0
  14. package/lib/browser/frontend-language-model-service.js.map +1 -0
  15. package/lib/browser/frontend-prompt-customization-service.d.ts +99 -2
  16. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
  17. package/lib/browser/frontend-prompt-customization-service.js +245 -23
  18. package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
  19. package/lib/browser/index.d.ts +1 -0
  20. package/lib/browser/index.d.ts.map +1 -1
  21. package/lib/browser/index.js +1 -0
  22. package/lib/browser/index.js.map +1 -1
  23. package/lib/browser/prompttemplate-contribution.d.ts +4 -0
  24. package/lib/browser/prompttemplate-contribution.d.ts.map +1 -1
  25. package/lib/browser/prompttemplate-contribution.js +61 -2
  26. package/lib/browser/prompttemplate-contribution.js.map +1 -1
  27. package/lib/browser/theia-variable-contribution.d.ts +9 -4
  28. package/lib/browser/theia-variable-contribution.d.ts.map +1 -1
  29. package/lib/browser/theia-variable-contribution.js +67 -38
  30. package/lib/browser/theia-variable-contribution.js.map +1 -1
  31. package/lib/common/communication-recording-service.d.ts +8 -7
  32. package/lib/common/communication-recording-service.d.ts.map +1 -1
  33. package/lib/common/communication-recording-service.js.map +1 -1
  34. package/lib/common/index.d.ts +1 -0
  35. package/lib/common/index.d.ts.map +1 -1
  36. package/lib/common/index.js +1 -0
  37. package/lib/common/index.js.map +1 -1
  38. package/lib/common/language-model-service.d.ts +15 -0
  39. package/lib/common/language-model-service.d.ts.map +1 -0
  40. package/lib/common/language-model-service.js +51 -0
  41. package/lib/common/language-model-service.js.map +1 -0
  42. package/lib/common/language-model-util.d.ts.map +1 -1
  43. package/lib/common/language-model-util.js +1 -2
  44. package/lib/common/language-model-util.js.map +1 -1
  45. package/lib/common/language-model.d.ts +56 -15
  46. package/lib/common/language-model.d.ts.map +1 -1
  47. package/lib/common/language-model.js +27 -2
  48. package/lib/common/language-model.js.map +1 -1
  49. package/lib/common/tool-invocation-registry.d.ts +3 -0
  50. package/lib/common/tool-invocation-registry.d.ts.map +1 -1
  51. package/lib/common/tool-invocation-registry.js +7 -1
  52. package/lib/common/tool-invocation-registry.js.map +1 -1
  53. package/lib/common/variable-service.d.ts +1 -1
  54. package/lib/common/variable-service.d.ts.map +1 -1
  55. package/lib/common/variable-service.js.map +1 -1
  56. package/package.json +10 -10
  57. package/src/browser/ai-core-frontend-module.ts +4 -0
  58. package/src/browser/ai-core-preferences.ts +106 -15
  59. package/src/browser/frontend-language-model-registry.ts +2 -1
  60. package/src/browser/frontend-language-model-service.ts +67 -0
  61. package/src/browser/frontend-prompt-customization-service.ts +348 -27
  62. package/src/browser/index.ts +1 -0
  63. package/src/browser/prompttemplate-contribution.ts +80 -3
  64. package/src/browser/theia-variable-contribution.ts +81 -40
  65. package/src/common/communication-recording-service.ts +9 -7
  66. package/src/common/index.ts +1 -0
  67. package/src/common/language-model-service.ts +59 -0
  68. package/src/common/language-model-util.ts +9 -2
  69. package/src/common/language-model.ts +72 -15
  70. package/src/common/tool-invocation-registry.ts +7 -2
  71. package/src/common/variable-service.ts +2 -1
@@ -36,8 +36,21 @@ const templateEntry = {
36
36
  };
37
37
  let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationServiceImpl {
38
38
  constructor() {
39
+ /** Stores URI strings of template files from directories currently being monitored for changes. */
39
40
  this.trackedTemplateURIs = new Set();
40
- this.templates = new Map();
41
+ /** Contains the currently active templates, mapped by template ID. */
42
+ this.effectiveTemplates = new Map();
43
+ /** Tracks all loaded templates, including overridden ones, mapped by source URI. */
44
+ this.allLoadedTemplates = new Map();
45
+ /** Stores additional directory paths for loading template files. */
46
+ this.additionalTemplateDirs = new Set();
47
+ /** Contains file extensions that identify prompt template files. */
48
+ this.templateExtensions = new Set([prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION]);
49
+ /** Stores specific file paths that should be treated as templates. */
50
+ this.templateFiles = new Set();
51
+ /** Maps URI strings to WatchedFileInfo objects for individually watched template files. */
52
+ this.watchedFiles = new Map();
53
+ /** Collection of disposable resources for cleanup when the service updates or is disposed. */
41
54
  this.toDispose = new core_1.DisposableCollection();
42
55
  this.onDidChangePromptEmitter = new core_1.Emitter();
43
56
  this.onDidChangePrompt = this.onDidChangePromptEmitter.event;
@@ -45,6 +58,8 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
45
58
  this.onDidChangeCustomAgents = this.onDidChangeCustomAgentsEmitter.event;
46
59
  }
47
60
  init() {
61
+ // Ensure PROMPT_TEMPLATE_EXTENSION is always included in templateExtensions as a default
62
+ this.templateExtensions.add(prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION);
48
63
  this.preferences.onPreferenceChanged(event => {
49
64
  if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_PROMPT_TEMPLATES) {
50
65
  this.update();
@@ -54,12 +69,157 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
54
69
  }
55
70
  async update() {
56
71
  this.toDispose.dispose();
57
- // we need to assign a local variable, so that updates running in parallel don't interfere with each other
58
- const _templates = new Map();
59
- this.templates = _templates;
60
- this.trackedTemplateURIs.clear();
72
+ // we need to assign local variables, so that updates running in parallel don't interfere with each other
73
+ const templatesMap = new Map();
74
+ const trackedURIs = new Set();
75
+ const loadedTemplates = new Map();
76
+ const watchedFilesMap = new Map();
77
+ // Process in order of priority (lowest to highest)
78
+ // First process the main template directory (lowest priority)
61
79
  const templateURI = await this.getTemplatesDirectoryURI();
62
- this.toDispose.push(this.fileService.watch(templateURI, { recursive: true, excludes: [] }));
80
+ await this.processTemplateDirectory(templatesMap, trackedURIs, loadedTemplates, templateURI, 1 /* TemplatePriority.GLOBAL_TEMPLATE_DIR */);
81
+ // Process additional template directories (medium priority)
82
+ for (const dirPath of this.additionalTemplateDirs) {
83
+ const dirURI = core_1.URI.fromFilePath(dirPath);
84
+ await this.processTemplateDirectory(templatesMap, trackedURIs, loadedTemplates, dirURI, 2 /* TemplatePriority.ADDITIONAL_TEMPLATE_DIR */);
85
+ }
86
+ // Process specific template files (highest priority)
87
+ await this.processTemplateFiles(templatesMap, trackedURIs, loadedTemplates, watchedFilesMap);
88
+ this.effectiveTemplates = templatesMap;
89
+ this.trackedTemplateURIs = trackedURIs;
90
+ this.allLoadedTemplates = loadedTemplates;
91
+ this.watchedFiles = watchedFilesMap;
92
+ this.onDidChangeCustomAgentsEmitter.fire();
93
+ }
94
+ /**
95
+ * Adds a template to the templates map, handling conflicts based on priority
96
+ * @param templatesMap The map to add the template to
97
+ * @param id The template ID
98
+ * @param content The template content
99
+ * @param priority The template priority
100
+ * @param sourceUri The URI of the source file (used to distinguish updates from conflicts)
101
+ * @param loadedTemplates The map to track all loaded templates
102
+ */
103
+ addTemplate(templatesMap, id, content, priority, sourceUri, loadedTemplates) {
104
+ // Always add to loadedTemplates to keep track of all templates including overridden ones
105
+ if (sourceUri) {
106
+ loadedTemplates.set(sourceUri, { id, content, priority, sourceUri });
107
+ }
108
+ const existingEntry = templatesMap.get(id);
109
+ if (existingEntry) {
110
+ // If this is an update to the same file (same source URI)
111
+ if (sourceUri && existingEntry.sourceUri === sourceUri) {
112
+ // Update the content while keeping the same priority and source
113
+ templatesMap.set(id, { id, content, priority, sourceUri });
114
+ return;
115
+ }
116
+ // If the new template has higher priority, replace the existing one
117
+ if (priority > existingEntry.priority) {
118
+ templatesMap.set(id, { id, content, priority, sourceUri });
119
+ return;
120
+ }
121
+ else if (priority === existingEntry.priority) {
122
+ // There is a conflict with the same priority, we ignore the new template
123
+ const conflictSourceUri = existingEntry.sourceUri ? ` (Existing source: ${existingEntry.sourceUri}, New source: ${sourceUri})` : '';
124
+ console.warn(`Template conflict detected for ID '${id}' with equal priority.${conflictSourceUri}`);
125
+ }
126
+ return;
127
+ }
128
+ // No conflict at all, add the template
129
+ templatesMap.set(id, { id, content, priority, sourceUri });
130
+ }
131
+ /**
132
+ * Removes a template from the templates map based on the source URI and fires change event.
133
+ * Also checks for any lower-priority templates with the same ID that might need to be loaded.
134
+ * @param sourceUri The URI of the source file being removed
135
+ * @param loadedTemplates The map of all loaded templates
136
+ */
137
+ removeTemplateBySourceUri(sourceUri, loadedTemplates) {
138
+ // Get the template entry from loadedTemplates
139
+ const removedTemplate = loadedTemplates.get(sourceUri);
140
+ if (!removedTemplate) {
141
+ return;
142
+ }
143
+ const templateId = removedTemplate.id;
144
+ loadedTemplates.delete(sourceUri);
145
+ // If the template is in the active templates map, we check if there is another template previously conflicting with it
146
+ const activeTemplate = this.effectiveTemplates.get(templateId);
147
+ if (activeTemplate && activeTemplate.sourceUri === sourceUri) {
148
+ this.effectiveTemplates.delete(templateId);
149
+ // Find any lower-priority templates with the same ID that were previously ignored
150
+ const lowerPriorityTemplates = Array.from(loadedTemplates.values())
151
+ .filter(t => t.id === templateId)
152
+ .sort((a, b) => b.priority - a.priority); // Sort by priority (highest first)
153
+ // If there are any lower-priority templates, add the highest priority one
154
+ if (lowerPriorityTemplates.length > 0) {
155
+ const highestRemainingTemplate = lowerPriorityTemplates[0];
156
+ this.effectiveTemplates.set(templateId, highestRemainingTemplate);
157
+ }
158
+ this.onDidChangePromptEmitter.fire(templateId);
159
+ }
160
+ }
161
+ /**
162
+ * Process the template files specified by path, watching for changes
163
+ * and loading their content into the templates map
164
+ */
165
+ async processTemplateFiles(templatesMap, trackedURIs, loadedTemplates, watchedFilesMap) {
166
+ for (const filePath of this.templateFiles) {
167
+ const fileURI = core_1.URI.fromFilePath(filePath);
168
+ const templateId = this.getTemplateIdFromFilePath(filePath);
169
+ const uriString = fileURI.toString();
170
+ watchedFilesMap.set(uriString, { uri: fileURI, templateId });
171
+ this.toDispose.push(this.fileService.watch(fileURI, { recursive: false, excludes: [] }));
172
+ if (await this.fileService.exists(fileURI)) {
173
+ trackedURIs.add(uriString);
174
+ const fileContent = await this.fileService.read(fileURI);
175
+ this.addTemplate(templatesMap, templateId, fileContent.value, 3 /* TemplatePriority.TEMPLATE_FILE */, uriString, loadedTemplates);
176
+ }
177
+ }
178
+ this.toDispose.push(this.fileService.onDidFilesChange(async (event) => {
179
+ // Handle deleted files
180
+ for (const deletedFile of event.getDeleted()) {
181
+ const fileUriString = deletedFile.resource.toString();
182
+ const fileInfo = this.watchedFiles.get(fileUriString);
183
+ if (fileInfo) {
184
+ this.removeTemplateBySourceUri(fileUriString, loadedTemplates);
185
+ this.trackedTemplateURIs.delete(fileUriString);
186
+ this.onDidChangePromptEmitter.fire(fileInfo.templateId);
187
+ }
188
+ }
189
+ // Handle updated files
190
+ for (const updatedFile of event.getUpdated()) {
191
+ const fileUriString = updatedFile.resource.toString();
192
+ const fileInfo = this.watchedFiles.get(fileUriString);
193
+ if (fileInfo) {
194
+ const fileContent = await this.fileService.read(fileInfo.uri);
195
+ this.addTemplate(this.effectiveTemplates, fileInfo.templateId, fileContent.value, 3 /* TemplatePriority.TEMPLATE_FILE */, fileUriString, loadedTemplates);
196
+ this.onDidChangePromptEmitter.fire(fileInfo.templateId);
197
+ }
198
+ }
199
+ // Handle newly created files
200
+ for (const addedFile of event.getAdded()) {
201
+ const fileUriString = addedFile.resource.toString();
202
+ const fileInfo = this.watchedFiles.get(fileUriString);
203
+ if (fileInfo) {
204
+ const fileContent = await this.fileService.read(fileInfo.uri);
205
+ this.addTemplate(this.effectiveTemplates, fileInfo.templateId, fileContent.value, 3 /* TemplatePriority.TEMPLATE_FILE */, fileUriString, loadedTemplates);
206
+ this.trackedTemplateURIs.add(fileUriString);
207
+ this.onDidChangePromptEmitter.fire(fileInfo.templateId);
208
+ }
209
+ }
210
+ }));
211
+ }
212
+ /**
213
+ * Extract a template ID from a file path
214
+ * @param filePath The path to the template file
215
+ * @returns A template ID derived from the file name
216
+ */
217
+ getTemplateIdFromFilePath(filePath) {
218
+ const uri = core_1.URI.fromFilePath(filePath);
219
+ return this.removePromptTemplateSuffix(uri.path.name);
220
+ }
221
+ async processTemplateDirectory(templatesMap, trackedURIs, loadedTemplates, dirURI, priority) {
222
+ this.toDispose.push(this.fileService.watch(dirURI, { recursive: true, excludes: [] }));
63
223
  this.toDispose.push(this.fileService.onDidFilesChange(async (event) => {
64
224
  if (event.changes.some(change => change.resource.toString().endsWith('customAgents.yml'))) {
65
225
  this.onDidChangeCustomAgentsEmitter.fire();
@@ -69,7 +229,7 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
69
229
  if (this.trackedTemplateURIs.has(deletedFile.resource.toString())) {
70
230
  this.trackedTemplateURIs.delete(deletedFile.resource.toString());
71
231
  const templateId = this.removePromptTemplateSuffix(deletedFile.resource.path.name);
72
- _templates.delete(templateId);
232
+ this.removeTemplateBySourceUri(deletedFile.resource.toString(), loadedTemplates);
73
233
  this.onDidChangePromptEmitter.fire(templateId);
74
234
  }
75
235
  }
@@ -78,26 +238,26 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
78
238
  if (this.trackedTemplateURIs.has(updatedFile.resource.toString())) {
79
239
  const fileContent = await this.fileService.read(updatedFile.resource);
80
240
  const templateId = this.removePromptTemplateSuffix(updatedFile.resource.path.name);
81
- _templates.set(templateId, fileContent.value);
241
+ this.addTemplate(this.effectiveTemplates, templateId, fileContent.value, priority, updatedFile.resource.toString(), loadedTemplates);
82
242
  this.onDidChangePromptEmitter.fire(templateId);
83
243
  }
84
244
  }
85
245
  // check new templates
86
246
  for (const addedFile of event.getAdded()) {
87
- if (addedFile.resource.parent.toString() === templateURI.toString() && addedFile.resource.path.ext === prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION) {
247
+ if (addedFile.resource.parent.toString() === dirURI.toString() &&
248
+ this.isPromptTemplateExtension(addedFile.resource.path.ext)) {
88
249
  this.trackedTemplateURIs.add(addedFile.resource.toString());
89
250
  const fileContent = await this.fileService.read(addedFile.resource);
90
251
  const templateId = this.removePromptTemplateSuffix(addedFile.resource.path.name);
91
- _templates.set(templateId, fileContent.value);
252
+ this.addTemplate(this.effectiveTemplates, templateId, fileContent.value, priority, addedFile.resource.toString(), loadedTemplates);
92
253
  this.onDidChangePromptEmitter.fire(templateId);
93
254
  }
94
255
  }
95
256
  }));
96
- this.onDidChangeCustomAgentsEmitter.fire();
97
- if (!(await this.fileService.exists(templateURI))) {
257
+ if (!(await this.fileService.exists(dirURI))) {
98
258
  return;
99
259
  }
100
- const stat = await this.fileService.resolve(templateURI);
260
+ const stat = await this.fileService.resolve(dirURI);
101
261
  if (stat.children === undefined) {
102
262
  return;
103
263
  }
@@ -106,14 +266,74 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
106
266
  continue;
107
267
  }
108
268
  const fileURI = file.resource;
109
- if (fileURI.path.ext === prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION) {
110
- this.trackedTemplateURIs.add(fileURI.toString());
269
+ if (this.isPromptTemplateExtension(fileURI.path.ext)) {
270
+ trackedURIs.add(fileURI.toString());
111
271
  const fileContent = await this.fileService.read(fileURI);
112
272
  const templateId = this.removePromptTemplateSuffix(file.name);
113
- _templates.set(templateId, fileContent.value);
273
+ this.addTemplate(templatesMap, templateId, fileContent.value, priority, fileURI.toString(), loadedTemplates);
114
274
  this.onDidChangePromptEmitter.fire(templateId);
115
275
  }
116
276
  }
277
+ this.onDidChangeCustomAgentsEmitter.fire();
278
+ }
279
+ /**
280
+ * Checks if the given file extension is registered as a prompt template extension
281
+ * @param extension The file extension including the leading dot (e.g., '.prompttemplate')
282
+ * @returns True if the extension is registered as a prompt template extension
283
+ */
284
+ isPromptTemplateExtension(extension) {
285
+ return this.templateExtensions.has(extension);
286
+ }
287
+ /**
288
+ * Gets the list of additional template directories that are being watched.
289
+ * @returns Array of directory paths
290
+ */
291
+ getAdditionalTemplateDirectories() {
292
+ return Array.from(this.additionalTemplateDirs);
293
+ }
294
+ /**
295
+ * Gets the list of file extensions that are considered prompt templates.
296
+ * @returns Array of file extensions including the leading dot (e.g., '.prompttemplate')
297
+ */
298
+ getTemplateFileExtensions() {
299
+ return Array.from(this.templateExtensions);
300
+ }
301
+ /**
302
+ * Gets the list of specific template files that are being watched.
303
+ * @returns Array of file paths
304
+ */
305
+ getTemplateFiles() {
306
+ return Array.from(this.templateFiles);
307
+ }
308
+ /**
309
+ * Updates multiple configuration properties at once, triggering only a single update process.
310
+ *
311
+ * @param properties An object containing the properties to update
312
+ * @returns Promise that resolves when the update is complete
313
+ */
314
+ async updateConfiguration(properties) {
315
+ if (properties.directoryPaths !== undefined) {
316
+ this.additionalTemplateDirs.clear();
317
+ for (const path of properties.directoryPaths) {
318
+ this.additionalTemplateDirs.add(path);
319
+ }
320
+ }
321
+ if (properties.extensions !== undefined) {
322
+ this.templateExtensions.clear();
323
+ for (const ext of properties.extensions) {
324
+ this.templateExtensions.add(ext);
325
+ }
326
+ // Always include the default PROMPT_TEMPLATE_EXTENSION
327
+ this.templateExtensions.add(prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION);
328
+ }
329
+ if (properties.filePaths !== undefined) {
330
+ this.templateFiles.clear();
331
+ for (const path of properties.filePaths) {
332
+ this.templateFiles.add(path);
333
+ }
334
+ }
335
+ // Only run the update process once, no matter how many properties were changed
336
+ await this.update();
117
337
  }
118
338
  async getTemplatesDirectoryURI() {
119
339
  const templatesFolder = this.preferences[ai_core_preferences_1.PREFERENCE_NAME_PROMPT_TEMPLATES];
@@ -127,20 +347,22 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
127
347
  return (await this.getTemplatesDirectoryURI()).resolve(`${templateId}${prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION}`);
128
348
  }
129
349
  removePromptTemplateSuffix(filename) {
130
- const suffix = prompttemplate_contribution_1.PROMPT_TEMPLATE_EXTENSION;
131
- if (filename.endsWith(suffix)) {
132
- return filename.slice(0, -suffix.length);
350
+ for (const ext of this.templateExtensions) {
351
+ if (filename.endsWith(ext)) {
352
+ return filename.slice(0, -ext.length);
353
+ }
133
354
  }
134
355
  return filename;
135
356
  }
136
357
  isPromptTemplateCustomized(id) {
137
- return this.templates.has(id);
358
+ return this.effectiveTemplates.has(id);
138
359
  }
139
360
  getCustomizedPromptTemplate(id) {
140
- return this.templates.get(id);
361
+ const entry = this.effectiveTemplates.get(id);
362
+ return entry ? entry.content : undefined;
141
363
  }
142
364
  getCustomPromptTemplateIDs() {
143
- return Array.from(this.templates.keys());
365
+ return Array.from(this.effectiveTemplates.keys());
144
366
  }
145
367
  async editTemplate(id, defaultContent) {
146
368
  const editorUri = await this.getTemplateURI(id);
@@ -158,7 +380,7 @@ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationSe
158
380
  }
159
381
  getTemplateIDFromURI(uri) {
160
382
  const id = this.removePromptTemplateSuffix(uri.path.name);
161
- if (this.templates.has(id)) {
383
+ if (this.effectiveTemplates.has(id)) {
162
384
  return id;
163
385
  }
164
386
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-prompt-customization-service.js","sourceRoot":"","sources":["../../src/browser/frontend-prompt-customization-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-prompt-customization-service.js","sourceRoot":"","sources":["../../src/browser/frontend-prompt-customization-service.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,5 @@ export * from './prompttemplate-contribution';
10
10
  export * from './theia-variable-contribution';
11
11
  export * from './frontend-variable-service';
12
12
  export * from './ai-core-command-contribution';
13
+ export * from '../common/language-model-service';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
@@ -28,4 +28,5 @@ tslib_1.__exportStar(require("./prompttemplate-contribution"), exports);
28
28
  tslib_1.__exportStar(require("./theia-variable-contribution"), exports);
29
29
  tslib_1.__exportStar(require("./frontend-variable-service"), exports);
30
30
  tslib_1.__exportStar(require("./ai-core-command-contribution"), exports);
31
+ tslib_1.__exportStar(require("../common/language-model-service"), exports);
31
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,kEAAwC;AACxC,sFAA4D;AAC5D,oEAA0C;AAC1C,gEAAsC;AACtC,gEAAsC;AACtC,iEAAuC;AACvC,6EAAmD;AACnD,sEAA4C;AAC5C,wEAA8C;AAC9C,wEAA8C;AAC9C,sEAA4C;AAC5C,yEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,kEAAwC;AACxC,sFAA4D;AAC5D,oEAA0C;AAC1C,gEAAsC;AACtC,gEAAsC;AACtC,iEAAuC;AACvC,6EAAmD;AACnD,sEAA4C;AAC5C,wEAA8C;AAC9C,wEAA8C;AAC9C,sEAA4C;AAC5C,yEAA+C;AAC/C,2EAAiD"}
@@ -6,6 +6,7 @@ import { Widget } from '@theia/core/lib/browser';
6
6
  import { EditorWidget } from '@theia/editor/lib/browser';
7
7
  import { PromptCustomizationService, ToolInvocationRegistry } from '../common';
8
8
  import { ProviderResult } from '@theia/monaco-editor-core/esm/vs/editor/common/languages';
9
+ import { AIVariableService } from '../common/variable-service';
9
10
  export declare const PROMPT_TEMPLATE_EXTENSION = ".prompttemplate";
10
11
  export declare const DISCARD_PROMPT_TEMPLATE_CUSTOMIZATIONS: Command;
11
12
  export declare const SHOW_ALL_PROMPTS_COMMAND: Command;
@@ -14,9 +15,12 @@ export declare class PromptTemplateContribution implements LanguageGrammarDefini
14
15
  private readonly messageService;
15
16
  protected readonly customizationService: PromptCustomizationService;
16
17
  protected readonly toolInvocationRegistry: ToolInvocationRegistry;
18
+ protected readonly variableService: AIVariableService;
17
19
  readonly config: monaco.languages.LanguageConfiguration;
18
20
  registerTextmateLanguage(registry: TextmateRegistry): void;
19
21
  provideFunctionCompletions(model: monaco.editor.ITextModel, position: monaco.Position): ProviderResult<monaco.languages.CompletionList>;
22
+ provideVariableCompletions(model: monaco.editor.ITextModel, position: monaco.Position): ProviderResult<monaco.languages.CompletionList>;
23
+ provideVariableWithArgCompletions(model: monaco.editor.ITextModel, position: monaco.Position): Promise<monaco.languages.CompletionList>;
20
24
  getCompletionRange(model: monaco.editor.ITextModel, position: monaco.Position, triggerCharacters: string): monaco.Range | undefined;
21
25
  private getSuggestions;
22
26
  registerCommands(commands: CommandRegistry): void;
@@ -1 +1 @@
1
- {"version":3,"file":"prompttemplate-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgD,qCAAqC,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3J,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEjH,OAAO,EAAW,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAoB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAiB,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAK1F,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAE3D,eAAO,MAAM,sCAAsC,EAAE,OAIb,CAAC;AAGzC,eAAO,MAAM,wBAAwB,EAAE,OAKmC,CAAC;AAE3E,qBACa,0BAA2B,YAAW,qCAAqC,EAAE,mBAAmB,EAAE,yBAAyB;IAGpI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAG9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAGhD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAcjD;IAEN,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAkC1D,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAavI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;IAwBnI,OAAO,CAAC,cAAc;IAwBtB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYjD,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOzD,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;cAWnC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5D,OAAO,CAAC,cAAc;IAOtB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;CAO9D"}
1
+ {"version":3,"file":"prompttemplate-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgD,qCAAqC,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3J,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEjH,OAAO,EAAW,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAoB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAA6B,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAE3D,eAAO,MAAM,sCAAsC,EAAE,OAIb,CAAC;AAGzC,eAAO,MAAM,wBAAwB,EAAE,OAKmC,CAAC;AAE3E,qBACa,0BAA2B,YAAW,qCAAqC,EAAE,mBAAmB,EAAE,yBAAyB;IAGpI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAG9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAGhD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAEtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAoBjD;IAEN,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IA6C1D,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAavI,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAajI,iCAAiC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IA2C7I,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;IAwBnI,OAAO,CAAC,cAAc;IAwBtB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYjD,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOzD,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;cAWnC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5D,OAAO,CAAC,cAAc;IAOtB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;CAO9D"}
@@ -23,6 +23,7 @@ const core_1 = require("@theia/core");
23
23
  const browser_1 = require("@theia/core/lib/browser");
24
24
  const browser_2 = require("@theia/editor/lib/browser");
25
25
  const common_1 = require("../common");
26
+ const variable_service_1 = require("../common/variable-service");
26
27
  const PROMPT_TEMPLATE_LANGUAGE_ID = 'theia-ai-prompt-template';
27
28
  const PROMPT_TEMPLATE_TEXTMATE_SCOPE = 'source.prompttemplate';
28
29
  exports.PROMPT_TEMPLATE_EXTENSION = '.prompttemplate';
@@ -43,15 +44,21 @@ let PromptTemplateContribution = class PromptTemplateContribution {
43
44
  this.config = {
44
45
  'brackets': [
45
46
  ['${', '}'],
46
- ['~{', '}']
47
+ ['~{', '}'],
48
+ ['{{', '}}'],
49
+ ['{{{', '}}}']
47
50
  ],
48
51
  'autoClosingPairs': [
49
52
  { 'open': '${', 'close': '}' },
50
53
  { 'open': '~{', 'close': '}' },
54
+ { 'open': '{{', 'close': '}}' },
55
+ { 'open': '{{{', 'close': '}}}' }
51
56
  ],
52
57
  'surroundingPairs': [
53
58
  { 'open': '${', 'close': '}' },
54
- { 'open': '~{', 'close': '}' }
59
+ { 'open': '~{', 'close': '}' },
60
+ { 'open': '{{', 'close': '}}' },
61
+ { 'open': '{{{', 'close': '}}}' }
55
62
  ]
56
63
  };
57
64
  }
@@ -72,6 +79,16 @@ let PromptTemplateContribution = class PromptTemplateContribution {
72
79
  triggerCharacters: ['{'],
73
80
  provideCompletionItems: (model, position, _context, _token) => this.provideFunctionCompletions(model, position),
74
81
  });
82
+ monaco.languages.registerCompletionItemProvider(PROMPT_TEMPLATE_LANGUAGE_ID, {
83
+ // Monaco only supports single character trigger characters
84
+ triggerCharacters: ['{'],
85
+ provideCompletionItems: (model, position, _context, _token) => this.provideVariableCompletions(model, position),
86
+ });
87
+ monaco.languages.registerCompletionItemProvider(PROMPT_TEMPLATE_LANGUAGE_ID, {
88
+ // Monaco only supports single character trigger characters
89
+ triggerCharacters: ['{', ':'],
90
+ provideCompletionItems: (model, position, _context, _token) => this.provideVariableWithArgCompletions(model, position),
91
+ });
75
92
  const textmateGrammar = require('../../data/prompttemplate.tmLanguage.json');
76
93
  const grammarDefinitionProvider = {
77
94
  getGrammarDefinition: function () {
@@ -87,6 +104,44 @@ let PromptTemplateContribution = class PromptTemplateContribution {
87
104
  provideFunctionCompletions(model, position) {
88
105
  return this.getSuggestions(model, position, '~{', this.toolInvocationRegistry.getAllFunctions(), monaco.languages.CompletionItemKind.Function, tool => tool.id, tool => tool.name, tool => { var _a; return (_a = tool.description) !== null && _a !== void 0 ? _a : ''; });
89
106
  }
107
+ provideVariableCompletions(model, position) {
108
+ return this.getSuggestions(model, position, '{{', this.variableService.getVariables(), monaco.languages.CompletionItemKind.Variable, variable => { var _a; return ((_a = variable.args) === null || _a === void 0 ? void 0 : _a.some(arg => !arg.isOptional)) ? variable.name + common_1.PromptText.VARIABLE_SEPARATOR_CHAR : variable.name; }, variable => variable.name, variable => { var _a; return (_a = variable.description) !== null && _a !== void 0 ? _a : ''; });
109
+ }
110
+ async provideVariableWithArgCompletions(model, position) {
111
+ // Get the text of the current line up to the cursor position
112
+ const textUntilPosition = model.getValueInRange({
113
+ startLineNumber: position.lineNumber,
114
+ startColumn: 1,
115
+ endLineNumber: position.lineNumber,
116
+ endColumn: position.column,
117
+ });
118
+ // Regex that captures the variable name in contexts like {{, {{{, {{varname, {{{varname, {{varname:, or {{{varname:
119
+ const variableRegex = /(?:\{\{\{|\{\{)([\w-]+)?(?::)?/;
120
+ const match = textUntilPosition.match(variableRegex);
121
+ if (!match) {
122
+ return { suggestions: [] };
123
+ }
124
+ const currentVariableName = match[1];
125
+ const hasColonSeparator = textUntilPosition.includes(`${currentVariableName}:`);
126
+ const variables = this.variableService.getVariables();
127
+ const suggestions = [];
128
+ for (const variable of variables) {
129
+ // If we have a variable:arg pattern, only process the matching variable
130
+ if (hasColonSeparator && variable.name !== currentVariableName) {
131
+ continue;
132
+ }
133
+ const provider = await this.variableService.getArgumentCompletionProvider(variable.name);
134
+ if (provider) {
135
+ const items = await provider(model, position, '{');
136
+ if (items) {
137
+ suggestions.push(...items.map(item => ({
138
+ ...item
139
+ })));
140
+ }
141
+ }
142
+ }
143
+ return { suggestions };
144
+ }
90
145
  getCompletionRange(model, position, triggerCharacters) {
91
146
  // Check if the characters before the current position are the trigger characters
92
147
  const lineContent = model.getLineContent(position.lineNumber);
@@ -201,6 +256,10 @@ tslib_1.__decorate([
201
256
  (0, inversify_1.inject)(common_1.ToolInvocationRegistry),
202
257
  tslib_1.__metadata("design:type", Object)
203
258
  ], PromptTemplateContribution.prototype, "toolInvocationRegistry", void 0);
259
+ tslib_1.__decorate([
260
+ (0, inversify_1.inject)(variable_service_1.AIVariableService),
261
+ tslib_1.__metadata("design:type", Object)
262
+ ], PromptTemplateContribution.prototype, "variableService", void 0);
204
263
  exports.PromptTemplateContribution = PromptTemplateContribution = tslib_1.__decorate([
205
264
  (0, inversify_1.injectable)()
206
265
  ], PromptTemplateContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"prompttemplate-contribution.js","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompttemplate-contribution.js","sourceRoot":"","sources":["../../src/browser/prompttemplate-contribution.ts"],"names":[],"mappings":"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"}