@theia/ai-core 1.61.0 → 1.62.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 (69) hide show
  1. package/lib/browser/ai-core-frontend-module.js +2 -2
  2. package/lib/browser/ai-core-frontend-module.js.map +1 -1
  3. package/lib/browser/frontend-language-model-service.d.ts +1 -1
  4. package/lib/browser/frontend-language-model-service.d.ts.map +1 -1
  5. package/lib/browser/frontend-language-model-service.js.map +1 -1
  6. package/lib/browser/frontend-prompt-customization-service.d.ts +142 -48
  7. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
  8. package/lib/browser/frontend-prompt-customization-service.js +452 -153
  9. package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
  10. package/lib/browser/prompttemplate-contribution.d.ts +1 -2
  11. package/lib/browser/prompttemplate-contribution.d.ts.map +1 -1
  12. package/lib/browser/prompttemplate-contribution.js +5 -9
  13. package/lib/browser/prompttemplate-contribution.js.map +1 -1
  14. package/lib/common/agent-service.d.ts.map +1 -1
  15. package/lib/common/agent-service.js +14 -2
  16. package/lib/common/agent-service.js.map +1 -1
  17. package/lib/common/agent.d.ts +8 -3
  18. package/lib/common/agent.d.ts.map +1 -1
  19. package/lib/common/agent.js.map +1 -1
  20. package/lib/common/index.d.ts +0 -1
  21. package/lib/common/index.d.ts.map +1 -1
  22. package/lib/common/index.js +0 -1
  23. package/lib/common/index.js.map +1 -1
  24. package/lib/common/language-model-interaction-model.d.ts +74 -0
  25. package/lib/common/language-model-interaction-model.d.ts.map +1 -0
  26. package/lib/common/language-model-interaction-model.js +3 -0
  27. package/lib/common/language-model-interaction-model.js.map +1 -0
  28. package/lib/common/language-model-service.d.ts +26 -3
  29. package/lib/common/language-model-service.d.ts.map +1 -1
  30. package/lib/common/language-model-service.js +83 -6
  31. package/lib/common/language-model-service.js.map +1 -1
  32. package/lib/common/language-model-util.d.ts +3 -2
  33. package/lib/common/language-model-util.d.ts.map +1 -1
  34. package/lib/common/language-model-util.js +8 -0
  35. package/lib/common/language-model-util.js.map +1 -1
  36. package/lib/common/language-model.d.ts +25 -2
  37. package/lib/common/language-model.d.ts.map +1 -1
  38. package/lib/common/language-model.js +3 -1
  39. package/lib/common/language-model.js.map +1 -1
  40. package/lib/common/prompt-service.d.ts +332 -126
  41. package/lib/common/prompt-service.d.ts.map +1 -1
  42. package/lib/common/prompt-service.js +363 -102
  43. package/lib/common/prompt-service.js.map +1 -1
  44. package/lib/common/prompt-service.spec.js +104 -114
  45. package/lib/common/prompt-service.spec.js.map +1 -1
  46. package/lib/common/prompt-variable-contribution.d.ts +1 -2
  47. package/lib/common/prompt-variable-contribution.d.ts.map +1 -1
  48. package/lib/common/prompt-variable-contribution.js +17 -26
  49. package/lib/common/prompt-variable-contribution.js.map +1 -1
  50. package/package.json +10 -10
  51. package/src/browser/ai-core-frontend-module.ts +4 -4
  52. package/src/browser/frontend-language-model-service.ts +1 -1
  53. package/src/browser/frontend-prompt-customization-service.ts +574 -183
  54. package/src/browser/prompttemplate-contribution.ts +6 -9
  55. package/src/common/agent-service.ts +14 -4
  56. package/src/common/agent.ts +9 -3
  57. package/src/common/index.ts +0 -1
  58. package/src/common/language-model-interaction-model.ts +98 -0
  59. package/src/common/language-model-service.ts +115 -6
  60. package/src/common/language-model-util.ts +10 -2
  61. package/src/common/language-model.ts +28 -2
  62. package/src/common/prompt-service.spec.ts +108 -114
  63. package/src/common/prompt-service.ts +694 -221
  64. package/src/common/prompt-variable-contribution.ts +22 -27
  65. package/lib/common/communication-recording-service.d.ts +0 -30
  66. package/lib/common/communication-recording-service.d.ts.map +0 -1
  67. package/lib/common/communication-recording-service.js +0 -20
  68. package/lib/common/communication-recording-service.js.map +0 -1
  69. package/src/common/communication-recording-service.ts +0 -55
@@ -15,97 +15,173 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PromptServiceImpl = exports.PromptCustomizationService = exports.CustomAgentDescription = exports.PromptService = void 0;
18
+ exports.PromptServiceImpl = exports.PromptService = exports.PromptFragmentCustomizationService = exports.CustomAgentDescription = exports.isCustomizedPromptFragment = exports.isBasePromptFragment = void 0;
19
19
  const tslib_1 = require("tslib");
20
+ const core_1 = require("@theia/core");
20
21
  const inversify_1 = require("@theia/core/shared/inversify");
21
22
  const variable_service_1 = require("./variable-service");
22
23
  const tool_invocation_registry_1 = require("./tool-invocation-registry");
23
24
  const language_model_util_1 = require("./language-model-util");
24
25
  const prompt_service_util_1 = require("./prompt-service-util");
25
26
  const settings_service_1 = require("./settings-service");
26
- exports.PromptService = Symbol('PromptService');
27
+ /**
28
+ * Type guard to check if a PromptFragment is a built-in fragment (not customized)
29
+ * @param fragment The fragment to check
30
+ * @returns True if the fragment is a basic BasePromptFragment (not customized)
31
+ */
32
+ function isBasePromptFragment(fragment) {
33
+ return !('customizationId' in fragment && 'priority' in fragment);
34
+ }
35
+ exports.isBasePromptFragment = isBasePromptFragment;
36
+ /**
37
+ * Type guard to check if a PromptFragment is a CustomizedPromptFragment
38
+ * @param fragment The fragment to check
39
+ * @returns True if the fragment is a CustomizedPromptFragment
40
+ */
41
+ function isCustomizedPromptFragment(fragment) {
42
+ return 'customizationId' in fragment && 'priority' in fragment;
43
+ }
44
+ exports.isCustomizedPromptFragment = isCustomizedPromptFragment;
27
45
  var CustomAgentDescription;
28
46
  (function (CustomAgentDescription) {
47
+ /**
48
+ * Type guard to check if an object is a CustomAgentDescription
49
+ */
29
50
  function is(entry) {
30
51
  // eslint-disable-next-line no-null/no-null
31
52
  return typeof entry === 'object' && entry !== null
32
53
  && 'id' in entry && typeof entry.id === 'string'
33
54
  && 'name' in entry && typeof entry.name === 'string'
34
55
  && 'description' in entry && typeof entry.description === 'string'
35
- && 'prompt' in entry
36
- && typeof entry.prompt === 'string'
37
- && 'defaultLLM' in entry
38
- && typeof entry.defaultLLM === 'string';
56
+ && 'prompt' in entry && typeof entry.prompt === 'string'
57
+ && 'defaultLLM' in entry && typeof entry.defaultLLM === 'string';
39
58
  }
40
59
  CustomAgentDescription.is = is;
60
+ /**
61
+ * Compares two CustomAgentDescription objects for equality
62
+ */
41
63
  function equals(a, b) {
42
64
  return a.id === b.id && a.name === b.name && a.description === b.description && a.prompt === b.prompt && a.defaultLLM === b.defaultLLM;
43
65
  }
44
66
  CustomAgentDescription.equals = equals;
45
67
  })(CustomAgentDescription || (exports.CustomAgentDescription = CustomAgentDescription = {}));
46
- exports.PromptCustomizationService = Symbol('PromptCustomizationService');
68
+ /**
69
+ * Service responsible for customizing prompt fragments
70
+ */
71
+ exports.PromptFragmentCustomizationService = Symbol('PromptFragmentCustomizationService');
72
+ /**
73
+ * Service for managing and resolving prompt fragments
74
+ */
75
+ exports.PromptService = Symbol('PromptService');
47
76
  let PromptServiceImpl = class PromptServiceImpl {
48
77
  constructor() {
49
- this._prompts = {};
78
+ // Collection of built-in prompt fragments
79
+ this._builtInFragments = [];
80
+ // Map to store prompt variants sets (key: promptVariantSetId, value: array of variantIds)
81
+ this._promptVariantSetsMap = new Map();
82
+ // Map to store default variant for each prompt variant set (key: promptVariantSetId, value: variantId)
83
+ this._defaultVariantsMap = new Map();
84
+ // Event emitter for prompt changes
85
+ this._onPromptsChangeEmitter = new core_1.Emitter();
86
+ this.onPromptsChange = this._onPromptsChangeEmitter.event;
87
+ // Event emitter for selected variant changes
88
+ this._onSelectedVariantChangeEmitter = new core_1.Emitter();
89
+ this.onSelectedVariantChange = this._onSelectedVariantChangeEmitter.event;
50
90
  }
51
- getRawPrompt(id) {
52
- if (this.customizationService !== undefined && this.customizationService.isPromptTemplateCustomized(id)) {
53
- const template = this.customizationService.getCustomizedPromptTemplate(id);
54
- if (template !== undefined) {
55
- return { id, template };
91
+ init() {
92
+ if (this.customizationService) {
93
+ this.customizationService.onDidChangePromptFragmentCustomization(() => {
94
+ this._onPromptsChangeEmitter.fire();
95
+ });
96
+ this.customizationService.onDidChangeCustomAgents(() => {
97
+ this._onPromptsChangeEmitter.fire();
98
+ });
99
+ }
100
+ }
101
+ // ===== Fragment Retrieval Methods =====
102
+ /**
103
+ * Finds a built-in fragment by its ID
104
+ * @param fragmentId The ID of the fragment to find
105
+ * @returns The built-in fragment or undefined if not found
106
+ */
107
+ findBuiltInFragmentById(fragmentId) {
108
+ return this._builtInFragments.find(fragment => fragment.id === fragmentId);
109
+ }
110
+ getRawPromptFragment(fragmentId) {
111
+ var _a;
112
+ if ((_a = this.customizationService) === null || _a === void 0 ? void 0 : _a.isPromptFragmentCustomized(fragmentId)) {
113
+ const customizedFragment = this.customizationService.getActivePromptFragmentCustomization(fragmentId);
114
+ if (customizedFragment !== undefined) {
115
+ return customizedFragment;
56
116
  }
57
117
  }
58
- return this.getDefaultRawPrompt(id);
118
+ return this.getBuiltInRawPrompt(fragmentId);
59
119
  }
60
- getDefaultRawPrompt(id) {
61
- return this._prompts[id];
120
+ getBuiltInRawPrompt(fragmentId) {
121
+ return this.findBuiltInFragmentById(fragmentId);
62
122
  }
63
- getUnresolvedPrompt(id) {
64
- const rawPrompt = this.getRawPrompt(id);
65
- if (!rawPrompt) {
123
+ getPromptFragment(fragmentId) {
124
+ const rawFragment = this.getRawPromptFragment(fragmentId);
125
+ if (!rawFragment) {
66
126
  return undefined;
67
127
  }
68
128
  return {
69
- id: rawPrompt.id,
70
- template: this.stripComments(rawPrompt.template)
129
+ ...rawFragment,
130
+ template: this.stripComments(rawFragment.template)
71
131
  };
72
132
  }
73
- stripComments(template) {
133
+ /**
134
+ * Strips comments from a template string
135
+ * @param templateText The template text to process
136
+ * @returns Template text with comments removed
137
+ */
138
+ stripComments(templateText) {
74
139
  const commentRegex = /^\s*{{!--[\s\S]*?--}}\s*\n?/;
75
- return commentRegex.test(template) ? template.replace(commentRegex, '').trimStart() : template;
140
+ return commentRegex.test(templateText) ? templateText.replace(commentRegex, '').trimStart() : templateText;
76
141
  }
77
- async getVariantId(id) {
78
- if (this.settingsService !== undefined) {
142
+ async getSelectedVariantId(fragmentId) {
143
+ if (this.settingsService) {
79
144
  const agentSettingsMap = await this.settingsService.getSettings();
80
145
  for (const agentSettings of Object.values(agentSettingsMap)) {
81
- if (agentSettings.selectedVariants && agentSettings.selectedVariants[id]) {
82
- return agentSettings.selectedVariants[id];
146
+ if (agentSettings.selectedVariants && agentSettings.selectedVariants[fragmentId]) {
147
+ return agentSettings.selectedVariants[fragmentId];
83
148
  }
84
149
  }
85
150
  }
86
- return id;
151
+ return this.getDefaultVariantId(fragmentId);
87
152
  }
88
- async getPrompt(id, args, context) {
89
- const variantId = await this.getVariantId(id);
90
- const prompt = this.getUnresolvedPrompt(variantId);
91
- if (prompt === undefined) {
153
+ async resolvePotentialSystemPrompt(promptFragmentId) {
154
+ if (this._promptVariantSetsMap.has(promptFragmentId)) {
155
+ // This is a systemPrompt find the selected variant
156
+ const selectedVariantId = await this.getSelectedVariantId(promptFragmentId);
157
+ if (selectedVariantId === undefined) {
158
+ return undefined;
159
+ }
160
+ return this.getPromptFragment(selectedVariantId);
161
+ }
162
+ return this.getPromptFragment(promptFragmentId);
163
+ }
164
+ // ===== Fragment Resolution Methods =====
165
+ async getResolvedPromptFragment(systemOrFragmentId, args, context) {
166
+ const promptFragment = await this.resolvePotentialSystemPrompt(systemOrFragmentId);
167
+ if (promptFragment === undefined) {
92
168
  return undefined;
93
169
  }
94
170
  // First resolve variables and arguments
95
- let resolvedTemplate = prompt.template;
96
- const variableAndArgReplacements = await this.getVariableAndArgReplacements(prompt.template, args, context);
97
- variableAndArgReplacements.replacements.forEach(replacement => resolvedTemplate = resolvedTemplate.replace(replacement.placeholder, replacement.value));
171
+ let resolvedTemplate = promptFragment.template;
172
+ const variableAndArgResolutions = await this.resolveVariablesAndArgs(promptFragment.template, args, context);
173
+ variableAndArgResolutions.replacements.forEach(replacement => resolvedTemplate = resolvedTemplate.replace(replacement.placeholder, replacement.value));
98
174
  // Then resolve function references with already resolved variables and arguments
99
175
  // This allows to resolve function references contained in resolved variables (e.g. prompt fragments)
100
176
  const functionMatches = (0, prompt_service_util_1.matchFunctionsRegEx)(resolvedTemplate);
101
- const functions = new Map();
177
+ const functionMap = new Map();
102
178
  const functionReplacements = functionMatches.map(match => {
103
179
  var _a;
104
180
  const completeText = match[0];
105
181
  const functionId = match[1];
106
182
  const toolRequest = (_a = this.toolInvocationRegistry) === null || _a === void 0 ? void 0 : _a.getFunction(functionId);
107
183
  if (toolRequest) {
108
- functions.set(toolRequest.id, toolRequest);
184
+ functionMap.set(toolRequest.id, toolRequest);
109
185
  }
110
186
  return {
111
187
  placeholder: completeText,
@@ -114,43 +190,43 @@ let PromptServiceImpl = class PromptServiceImpl {
114
190
  });
115
191
  functionReplacements.forEach(replacement => resolvedTemplate = resolvedTemplate.replace(replacement.placeholder, replacement.value));
116
192
  return {
117
- id,
193
+ id: systemOrFragmentId,
118
194
  text: resolvedTemplate,
119
- functionDescriptions: functions.size > 0 ? functions : undefined,
120
- variables: variableAndArgReplacements.resolvedVariables
195
+ functionDescriptions: functionMap.size > 0 ? functionMap : undefined,
196
+ variables: variableAndArgResolutions.resolvedVariables
121
197
  };
122
198
  }
123
- async getPromptFragment(id, args, context, resolveVariable) {
124
- const variantId = await this.getVariantId(id);
125
- const prompt = this.getUnresolvedPrompt(variantId);
126
- if (prompt === undefined) {
199
+ async getResolvedPromptFragmentWithoutFunctions(systemOrFragmentId, args, context, resolveVariable) {
200
+ const promptFragment = await this.resolvePotentialSystemPrompt(systemOrFragmentId);
201
+ if (promptFragment === undefined) {
127
202
  return undefined;
128
203
  }
129
- const replacements = await this.getVariableAndArgReplacements(prompt.template, args, context, resolveVariable);
130
- let resolvedTemplate = prompt.template;
131
- replacements.replacements.forEach(replacement => resolvedTemplate = resolvedTemplate.replace(replacement.placeholder, replacement.value));
204
+ const resolutions = await this.resolveVariablesAndArgs(promptFragment.template, args, context, resolveVariable);
205
+ let resolvedTemplate = promptFragment.template;
206
+ resolutions.replacements.forEach(replacement => resolvedTemplate = resolvedTemplate.replace(replacement.placeholder, replacement.value));
132
207
  return {
133
- id,
208
+ id: systemOrFragmentId,
134
209
  text: resolvedTemplate,
135
- variables: replacements.resolvedVariables
210
+ variables: resolutions.resolvedVariables
136
211
  };
137
212
  }
138
213
  /**
139
214
  * Calculates all variable and argument replacements for an unresolved template.
140
215
  *
141
- * @param template the unresolved template text
216
+ * @param templateText the unresolved template text
142
217
  * @param args the object with placeholders, mapping the placeholder key to the value
143
218
  * @param context the {@link AIVariableContext} to use during variable resolution
144
219
  * @param resolveVariable the variable resolving method. Fall back to using the {@link AIVariableService} if not given.
220
+ * @returns Object containing replacements and resolved variables
145
221
  */
146
- async getVariableAndArgReplacements(template, args, context, resolveVariable) {
222
+ async resolveVariablesAndArgs(templateText, args, context, resolveVariable) {
147
223
  var _a, _b, _c;
148
- const matches = (0, prompt_service_util_1.matchVariablesRegEx)(template);
224
+ const variableMatches = (0, prompt_service_util_1.matchVariablesRegEx)(templateText);
149
225
  const variableCache = (0, variable_service_1.createAIResolveVariableCache)();
150
- const variableAndArgReplacements = [];
151
- const resolvedVariables = new Set();
152
- for (const match of matches) {
153
- const completeText = match[0];
226
+ const replacementsList = [];
227
+ const resolvedVariablesSet = new Set();
228
+ for (const match of variableMatches) {
229
+ const placeholderText = match[0];
154
230
  const variableAndArg = match[1];
155
231
  let variableName = variableAndArg;
156
232
  let argument;
@@ -159,66 +235,245 @@ let PromptServiceImpl = class PromptServiceImpl {
159
235
  variableName = parts[0];
160
236
  argument = parts[1];
161
237
  }
162
- let value;
238
+ let replacementValue;
163
239
  if (args && args[variableAndArg] !== undefined) {
164
- value = String(args[variableAndArg]);
240
+ replacementValue = String(args[variableAndArg]);
165
241
  }
166
242
  else {
167
- const toResolve = { variable: variableName, arg: argument };
168
- const resolved = resolveVariable
169
- ? await resolveVariable(toResolve)
170
- : await ((_a = this.variableService) === null || _a === void 0 ? void 0 : _a.resolveVariable(toResolve, context !== null && context !== void 0 ? context : {}, variableCache));
243
+ const variableToResolve = { variable: variableName, arg: argument };
244
+ const resolvedVariable = resolveVariable
245
+ ? await resolveVariable(variableToResolve)
246
+ : await ((_a = this.variableService) === null || _a === void 0 ? void 0 : _a.resolveVariable(variableToResolve, context !== null && context !== void 0 ? context : {}, variableCache));
171
247
  // Track resolved variable and its dependencies in all resolved variables
172
- if (resolved) {
173
- resolvedVariables.add(resolved);
174
- (_b = resolved.allResolvedDependencies) === null || _b === void 0 ? void 0 : _b.forEach(v => resolvedVariables.add(v));
248
+ if (resolvedVariable) {
249
+ resolvedVariablesSet.add(resolvedVariable);
250
+ (_b = resolvedVariable.allResolvedDependencies) === null || _b === void 0 ? void 0 : _b.forEach(v => resolvedVariablesSet.add(v));
251
+ }
252
+ replacementValue = String((_c = resolvedVariable === null || resolvedVariable === void 0 ? void 0 : resolvedVariable.value) !== null && _c !== void 0 ? _c : placeholderText);
253
+ }
254
+ replacementsList.push({ placeholder: placeholderText, value: replacementValue });
255
+ }
256
+ return {
257
+ replacements: replacementsList,
258
+ resolvedVariables: Array.from(resolvedVariablesSet)
259
+ };
260
+ }
261
+ // ===== Fragment Collection Management Methods =====
262
+ getAllPromptFragments() {
263
+ const fragmentsMap = new Map();
264
+ if (this.customizationService) {
265
+ const customizationIds = this.customizationService.getCustomizedPromptFragmentIds();
266
+ customizationIds.forEach(fragmentId => {
267
+ const customizations = this.customizationService.getAllCustomizations(fragmentId);
268
+ if (customizations.length > 0) {
269
+ fragmentsMap.set(fragmentId, customizations);
175
270
  }
176
- value = String((_c = resolved === null || resolved === void 0 ? void 0 : resolved.value) !== null && _c !== void 0 ? _c : completeText);
271
+ });
272
+ }
273
+ // Add all built-in fragments
274
+ for (const fragment of this._builtInFragments) {
275
+ if (fragmentsMap.has(fragment.id)) {
276
+ fragmentsMap.get(fragment.id).push(fragment);
277
+ }
278
+ else {
279
+ fragmentsMap.set(fragment.id, [fragment]);
177
280
  }
178
- variableAndArgReplacements.push({ placeholder: completeText, value });
179
- }
180
- return { replacements: variableAndArgReplacements, resolvedVariables: Array.from(resolvedVariables) };
181
- }
182
- getAllPrompts() {
183
- if (this.customizationService !== undefined) {
184
- const myCustomization = this.customizationService;
185
- const result = {};
186
- Object.keys(this._prompts).forEach(id => {
187
- if (myCustomization.isPromptTemplateCustomized(id)) {
188
- const template = myCustomization.getCustomizedPromptTemplate(id);
189
- if (template !== undefined) {
190
- result[id] = { id, template };
281
+ }
282
+ return fragmentsMap;
283
+ }
284
+ getActivePromptFragments() {
285
+ var _a;
286
+ const activeFragments = [...this._builtInFragments];
287
+ if (this.customizationService) {
288
+ // Fetch all customized fragment IDs once
289
+ const customizedIds = this.customizationService.getCustomizedPromptFragmentIds();
290
+ // For each customized ID, get the active customization
291
+ for (const fragmentId of customizedIds) {
292
+ const customFragment = (_a = this.customizationService) === null || _a === void 0 ? void 0 : _a.getActivePromptFragmentCustomization(fragmentId);
293
+ if (customFragment) {
294
+ // Find and replace existing entry with the same ID instead of just adding
295
+ const existingIndex = activeFragments.findIndex(fragment => fragment.id === fragmentId);
296
+ if (existingIndex !== -1) {
297
+ // Replace existing fragment
298
+ activeFragments[existingIndex] = customFragment;
191
299
  }
192
300
  else {
193
- result[id] = { ...this._prompts[id] };
301
+ // Add new fragment if no existing one found
302
+ activeFragments.push(customFragment);
194
303
  }
195
304
  }
196
- else {
197
- result[id] = { ...this._prompts[id] };
198
- }
199
- });
200
- return result;
305
+ }
306
+ }
307
+ return activeFragments;
308
+ }
309
+ removePromptFragment(fragmentId) {
310
+ const index = this._builtInFragments.findIndex(fragment => fragment.id === fragmentId);
311
+ if (index !== -1) {
312
+ this._builtInFragments.splice(index, 1);
313
+ }
314
+ // Remove any variant references
315
+ for (const [promptVariantSetId, variants] of this._promptVariantSetsMap.entries()) {
316
+ if (variants.includes(fragmentId)) {
317
+ this.removeFragmentVariant(promptVariantSetId, fragmentId);
318
+ }
319
+ }
320
+ // Clean up default variants map if needed
321
+ if (this._defaultVariantsMap.has(fragmentId)) {
322
+ this._defaultVariantsMap.delete(fragmentId);
323
+ }
324
+ // Look for this fragmentId as a variant in default variants and remove if found
325
+ for (const [promptVariantSetId, defaultVariantId] of this._defaultVariantsMap.entries()) {
326
+ if (defaultVariantId === fragmentId) {
327
+ this._defaultVariantsMap.delete(promptVariantSetId);
328
+ }
329
+ }
330
+ this._onPromptsChangeEmitter.fire();
331
+ }
332
+ getVariantIds(fragmentId) {
333
+ return this._promptVariantSetsMap.get(fragmentId) || [];
334
+ }
335
+ getDefaultVariantId(promptVariantSetId) {
336
+ return this._defaultVariantsMap.get(promptVariantSetId);
337
+ }
338
+ getPromptVariantSets() {
339
+ return new Map(this._promptVariantSetsMap);
340
+ }
341
+ addBuiltInPromptFragment(promptFragment, promptVariantSetId, isDefault = false) {
342
+ const existingIndex = this._builtInFragments.findIndex(fragment => fragment.id === promptFragment.id);
343
+ if (existingIndex !== -1) {
344
+ // Replace existing fragment with the same ID
345
+ this._builtInFragments[existingIndex] = promptFragment;
201
346
  }
202
347
  else {
203
- return { ...this._prompts };
348
+ // Add new fragment
349
+ this._builtInFragments.push(promptFragment);
350
+ }
351
+ // If this is a variant of a prompt variant set, record it in the variants map
352
+ if (promptVariantSetId) {
353
+ this.addFragmentVariant(promptVariantSetId, promptFragment.id, isDefault);
204
354
  }
355
+ this._onPromptsChangeEmitter.fire();
205
356
  }
206
- removePrompt(id) {
207
- delete this._prompts[id];
357
+ // ===== Variant Management Methods =====
358
+ /**
359
+ * Adds a variant ID to the fragment variants map
360
+ * @param promptVariantSetId The prompt variant set id
361
+ * @param variantId The variant ID to add
362
+ * @param isDefault Whether this variant should be the default for the prompt variant set (defaults to false)
363
+ */
364
+ addFragmentVariant(promptVariantSetId, variantId, isDefault = false) {
365
+ if (!this._promptVariantSetsMap.has(promptVariantSetId)) {
366
+ this._promptVariantSetsMap.set(promptVariantSetId, []);
367
+ }
368
+ const variants = this._promptVariantSetsMap.get(promptVariantSetId);
369
+ if (!variants.includes(variantId)) {
370
+ variants.push(variantId);
371
+ }
372
+ if (isDefault) {
373
+ this._defaultVariantsMap.set(promptVariantSetId, variantId);
374
+ }
208
375
  }
209
- getVariantIds(id) {
210
- var _a;
211
- const allCustomPromptTemplateIds = ((_a = this.customizationService) === null || _a === void 0 ? void 0 : _a.getCustomPromptTemplateIDs()) || [];
212
- const knownPromptIds = Object.keys(this._prompts);
213
- // We filter out known IDs from the custom prompt template IDs, these are no variants, but customizations. Then we retain IDs that start with the main ID
214
- const customVariantIds = allCustomPromptTemplateIds.filter(customId => !knownPromptIds.includes(customId) && customId.startsWith(id));
215
- const variantIds = Object.values(this._prompts)
216
- .filter(prompt => prompt.variantOf === id)
217
- .map(variant => variant.id);
218
- return [...variantIds, ...customVariantIds];
219
- }
220
- storePromptTemplate(promptTemplate) {
221
- this._prompts[promptTemplate.id] = promptTemplate;
376
+ /**
377
+ * Removes a variant ID from the fragment variants map
378
+ * @param promptVariantSetId The prompt variant set id
379
+ * @param variantId The variant ID to remove
380
+ */
381
+ removeFragmentVariant(promptVariantSetId, variantId) {
382
+ if (!this._promptVariantSetsMap.has(promptVariantSetId)) {
383
+ return;
384
+ }
385
+ const variants = this._promptVariantSetsMap.get(promptVariantSetId);
386
+ const index = variants.indexOf(variantId);
387
+ if (index !== -1) {
388
+ variants.splice(index, 1);
389
+ // Remove the key if no variants left
390
+ if (variants.length === 0) {
391
+ this._promptVariantSetsMap.delete(promptVariantSetId);
392
+ }
393
+ }
394
+ }
395
+ async updateSelectedVariantId(agentId, promptVariantSetId, newVariant) {
396
+ if (!this.settingsService) {
397
+ return;
398
+ }
399
+ const defaultVariantId = this.getDefaultVariantId(promptVariantSetId);
400
+ const agentSettings = await this.settingsService.getAgentSettings(agentId);
401
+ const selectedVariants = (agentSettings === null || agentSettings === void 0 ? void 0 : agentSettings.selectedVariants) || {};
402
+ const updatedVariants = { ...selectedVariants };
403
+ if (newVariant === defaultVariantId) {
404
+ delete updatedVariants[promptVariantSetId];
405
+ }
406
+ else {
407
+ updatedVariants[promptVariantSetId] = newVariant;
408
+ }
409
+ await this.settingsService.updateAgentSettings(agentId, {
410
+ selectedVariants: updatedVariants,
411
+ });
412
+ // Emit the selected variant change event
413
+ this._onSelectedVariantChangeEmitter.fire({ promptVariantSetId, variantId: newVariant });
414
+ }
415
+ // ===== Customization Service Delegation Methods =====
416
+ async createCustomization(fragmentId) {
417
+ if (this.customizationService) {
418
+ await this.customizationService.createPromptFragmentCustomization(fragmentId);
419
+ }
420
+ }
421
+ async createBuiltInCustomization(fragmentId) {
422
+ if (this.customizationService) {
423
+ const builtInTemplate = this.findBuiltInFragmentById(fragmentId);
424
+ await this.customizationService.createBuiltInPromptFragmentCustomization(fragmentId, builtInTemplate === null || builtInTemplate === void 0 ? void 0 : builtInTemplate.template);
425
+ }
426
+ }
427
+ async editCustomization(fragmentId, customizationId) {
428
+ if (this.customizationService) {
429
+ await this.customizationService.editPromptFragmentCustomization(fragmentId, customizationId);
430
+ }
431
+ }
432
+ async removeCustomization(fragmentId, customizationId) {
433
+ if (this.customizationService) {
434
+ await this.customizationService.removePromptFragmentCustomization(fragmentId, customizationId);
435
+ }
436
+ }
437
+ async resetAllToBuiltIn() {
438
+ if (this.customizationService) {
439
+ for (const fragment of this._builtInFragments) {
440
+ await this.customizationService.removeAllPromptFragmentCustomizations(fragment.id);
441
+ }
442
+ }
443
+ }
444
+ async resetToBuiltIn(fragmentId) {
445
+ if (this.customizationService) {
446
+ await this.customizationService.removeAllPromptFragmentCustomizations(fragmentId);
447
+ }
448
+ }
449
+ async resetToCustomization(fragmentId, customizationId) {
450
+ if (this.customizationService) {
451
+ await this.customizationService.resetToCustomization(fragmentId, customizationId);
452
+ }
453
+ }
454
+ async getCustomizationDescription(fragmentId, customizationId) {
455
+ if (!this.customizationService) {
456
+ return undefined;
457
+ }
458
+ return await this.customizationService.getPromptFragmentCustomizationDescription(fragmentId, customizationId);
459
+ }
460
+ async getCustomizationType(fragmentId, customizationId) {
461
+ if (!this.customizationService) {
462
+ return undefined;
463
+ }
464
+ return await this.customizationService.getPromptFragmentCustomizationType(fragmentId, customizationId);
465
+ }
466
+ getTemplateIDFromResource(resourceId) {
467
+ if (this.customizationService) {
468
+ return this.customizationService.getPromptFragmentIDFromResource(resourceId);
469
+ }
470
+ return undefined;
471
+ }
472
+ async editBuiltInCustomization(fragmentId) {
473
+ if (this.customizationService) {
474
+ const builtInTemplate = this.findBuiltInFragmentById(fragmentId);
475
+ await this.customizationService.editBuiltInPromptFragmentCustomization(fragmentId, builtInTemplate === null || builtInTemplate === void 0 ? void 0 : builtInTemplate.template);
476
+ }
222
477
  }
223
478
  };
224
479
  exports.PromptServiceImpl = PromptServiceImpl;
@@ -228,7 +483,7 @@ tslib_1.__decorate([
228
483
  tslib_1.__metadata("design:type", Object)
229
484
  ], PromptServiceImpl.prototype, "settingsService", void 0);
230
485
  tslib_1.__decorate([
231
- (0, inversify_1.inject)(exports.PromptCustomizationService),
486
+ (0, inversify_1.inject)(exports.PromptFragmentCustomizationService),
232
487
  (0, inversify_1.optional)(),
233
488
  tslib_1.__metadata("design:type", Object)
234
489
  ], PromptServiceImpl.prototype, "customizationService", void 0);
@@ -242,6 +497,12 @@ tslib_1.__decorate([
242
497
  (0, inversify_1.optional)(),
243
498
  tslib_1.__metadata("design:type", Object)
244
499
  ], PromptServiceImpl.prototype, "toolInvocationRegistry", void 0);
500
+ tslib_1.__decorate([
501
+ (0, inversify_1.postConstruct)(),
502
+ tslib_1.__metadata("design:type", Function),
503
+ tslib_1.__metadata("design:paramtypes", []),
504
+ tslib_1.__metadata("design:returntype", void 0)
505
+ ], PromptServiceImpl.prototype, "init", null);
245
506
  exports.PromptServiceImpl = PromptServiceImpl = tslib_1.__decorate([
246
507
  (0, inversify_1.injectable)()
247
508
  ], PromptServiceImpl);
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/common/prompt-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/common/prompt-service.ts"],"names":[],"mappings":"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"}