@codingame/monaco-vscode-chat-service-override 20.0.0 → 20.1.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 (64) hide show
  1. package/package.json +36 -36
  2. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +2 -2
  3. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -16
  4. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -11
  5. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  6. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  8. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  9. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
  11. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
  12. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  13. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
  14. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
  15. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +7 -7
  16. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +9 -9
  17. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +47 -47
  18. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +53 -53
  19. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +1 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  21. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
  22. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
  23. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +7 -7
  24. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
  25. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
  26. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
  27. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  29. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  30. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  31. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +1 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  33. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  34. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +1 -1
  35. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +3 -3
  36. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +3 -3
  38. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +13 -13
  39. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  41. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
  42. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  45. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  47. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +4 -4
  48. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
  49. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  51. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +24 -24
  52. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +8 -8
  53. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  54. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  55. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +12 -12
  56. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  57. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +3 -3
  58. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.js +3 -3
  59. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.js +4 -7
  60. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.js +16 -16
  61. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +7 -7
  62. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.js +14 -14
  63. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +1 -1
@@ -13,7 +13,7 @@ import { ChatViewsWelcomeExtensions } from '@codingame/monaco-vscode-e28ac690-06
13
13
  const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
14
14
  extensionPoint: 'chatViewsWelcome',
15
15
  jsonSchema: {
16
- description: ( localize(5333, 'Contributes a welcome message to a chat view')),
16
+ description: ( localize(5336, 'Contributes a welcome message to a chat view')),
17
17
  type: 'array',
18
18
  items: {
19
19
  additionalProperties: false,
@@ -21,22 +21,22 @@ const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint
21
21
  properties: {
22
22
  icon: {
23
23
  type: 'string',
24
- description: ( localize(5334, 'The icon for the welcome message.')),
24
+ description: ( localize(5337, 'The icon for the welcome message.')),
25
25
  },
26
26
  title: {
27
27
  type: 'string',
28
- description: ( localize(5335, 'The title of the welcome message.')),
28
+ description: ( localize(5338, 'The title of the welcome message.')),
29
29
  },
30
30
  content: {
31
31
  type: 'string',
32
32
  description: ( localize(
33
- 5336,
33
+ 5339,
34
34
  'The content of the welcome message. The first command link will be rendered as a button.'
35
35
  )),
36
36
  },
37
37
  when: {
38
38
  type: 'string',
39
- description: ( localize(5337, 'Condition when the welcome message is shown.')),
39
+ description: ( localize(5340, 'Condition when the welcome message is shown.')),
40
40
  }
41
41
  }
42
42
  },
@@ -29,7 +29,7 @@ class ChatToolInvocation {
29
29
  this._isCompleteDeferred = ( new DeferredPromise());
30
30
  this._confirmDeferred = ( new DeferredPromise());
31
31
  this.progress = observableValue(this, { progress: 0 });
32
- const defaultMessage = ( localize(5412, "Using {0}", `"${toolData.displayName}"`));
32
+ const defaultMessage = ( localize(5415, "Using {0}", `"${toolData.displayName}"`));
33
33
  const invocationMessage = preparedInvocation?.invocationMessage ?? defaultMessage;
34
34
  this.invocationMessage = invocationMessage;
35
35
  this.pastTenseMessage = preparedInvocation?.pastTenseMessage;
@@ -294,7 +294,7 @@ let ChatService = class ChatService extends Disposable {
294
294
  const liveSessionItems = ( Array.from(( this._sessionModels.values()))
295
295
  .filter(session => !session.isImported)
296
296
  .map(session => {
297
- const title = session.title || ( localize(5413, "New Chat"));
297
+ const title = session.title || ( localize(5416, "New Chat"));
298
298
  return {
299
299
  sessionId: session.sessionId,
300
300
  title,
@@ -328,7 +328,7 @@ let ChatService = class ChatService extends Disposable {
328
328
  const liveSessionItems = ( Array.from(( this._sessionModels.values()))
329
329
  .filter(session => !session.isImported)
330
330
  .map(session => {
331
- const title = session.title || ( localize(5413, "New Chat"));
331
+ const title = session.title || ( localize(5416, "New Chat"));
332
332
  return {
333
333
  sessionId: session.sessionId,
334
334
  title,
@@ -767,7 +767,7 @@ let ChatService = class ChatService extends Disposable {
767
767
  else {
768
768
  if (!rawResult) {
769
769
  this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
770
- rawResult = { errorDetails: { message: ( localize(5414, "Provider returned null response")) } };
770
+ rawResult = { errorDetails: { message: ( localize(5417, "Provider returned null response")) } };
771
771
  }
772
772
  const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
773
773
  rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
@@ -51,7 +51,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
51
51
  }
52
52
  e.join(this.storeTask, {
53
53
  id: 'join.chatSessionStore',
54
- label: ( localize(5415, "Saving chat history"))
54
+ label: ( localize(5418, "Saving chat history"))
55
55
  });
56
56
  }));
57
57
  }
@@ -324,7 +324,7 @@ function isChatSessionIndex(data) {
324
324
  }
325
325
  function getSessionMetadata(session) {
326
326
  const title = session instanceof ChatModel ?
327
- (session.title || ( localize(5416, "New Chat"))) :
327
+ (session.title || ( localize(5419, "New Chat"))) :
328
328
  session.customTitle ?? ChatModel.getDefaultTitle(session.requests);
329
329
  return {
330
330
  sessionId: session.sessionId,
@@ -70,14 +70,14 @@ let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider exte
70
70
  const modelMetadata = this.findModelByName(languageModes, modelNode.value);
71
71
  if (!modelMetadata) {
72
72
  markers.push({
73
- message: ( localize(5439, "Unknown model '{0}'", modelNode.value)),
73
+ message: ( localize(5442, "Unknown model '{0}'", modelNode.value)),
74
74
  severity: MarkerSeverity.Warning,
75
75
  ...modelNode.range,
76
76
  });
77
77
  }
78
78
  else if (modeKind === ChatModeKind.Agent && !ILanguageModelChatMetadata.suitableForAgentMode(modelMetadata)) {
79
79
  markers.push({
80
- message: ( localize(5440, "Model '{0}' is not suited for agent mode", modelNode.value)),
80
+ message: ( localize(5443, "Model '{0}' is not suited for agent mode", modelNode.value)),
81
81
  severity: MarkerSeverity.Warning,
82
82
  ...modelNode.range,
83
83
  });
@@ -110,7 +110,7 @@ let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider exte
110
110
  const range = tools.getToolRange(toolName);
111
111
  if (range) {
112
112
  markers.push({
113
- message: ( localize(5441, "Unknown tool '{0}'", toolName)),
113
+ message: ( localize(5444, "Unknown tool '{0}'", toolName)),
114
114
  severity: MarkerSeverity.Warning,
115
115
  ...range,
116
116
  });
@@ -50,14 +50,14 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
50
50
  const descriptionRange = header.metadataUtility.description?.range;
51
51
  if (descriptionRange?.containsPosition(position)) {
52
52
  return this.createHover(( localize(
53
- 5442,
53
+ 5445,
54
54
  'The description of the instruction file. It can be used to provide additional context or information about the instructions and is passed to the language model as part of the prompt.'
55
55
  )), descriptionRange);
56
56
  }
57
57
  const applyToRange = header.metadataUtility.applyTo?.range;
58
58
  if (applyToRange?.containsPosition(position)) {
59
59
  return this.createHover(( localize(
60
- 5443,
60
+ 5446,
61
61
  'One or more glob pattern (separated by comma) that describe for which files the instructions apply to. Based on these patterns, the file is automatically included in the prompt, when the context contains a file that matches one or more of these patterns. Use `**` when you want this file to always be added.\nExample: **/*.ts, **/*.js, client/**'
62
62
  )), applyToRange);
63
63
  }
@@ -66,38 +66,38 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
66
66
  const descriptionRange = header.metadataUtility.description?.range;
67
67
  if (descriptionRange?.containsPosition(position)) {
68
68
  return this.createHover(( localize(
69
- 5444,
69
+ 5447,
70
70
  'The description of the mode file. It can be used to provide additional context or information about the mode to the mode author.'
71
71
  )), descriptionRange);
72
72
  }
73
73
  const model = header.metadataUtility.model;
74
74
  if (model?.range.containsPosition(position)) {
75
- return this.getModelHover(model, model.range, ( localize(5445, 'The model to use in this mode.')));
75
+ return this.getModelHover(model, model.range, ( localize(5448, 'The model to use in this mode.')));
76
76
  }
77
77
  const tools = header.metadataUtility.tools;
78
78
  if (tools?.range?.containsPosition(position)) {
79
- return this.getToolHover(tools, position, ( localize(5446, 'The tools to use in this mode.')));
79
+ return this.getToolHover(tools, position, ( localize(5449, 'The tools to use in this mode.')));
80
80
  }
81
81
  }
82
82
  else {
83
83
  const descriptionRange = header.metadataUtility.description?.range;
84
84
  if (descriptionRange?.containsPosition(position)) {
85
85
  return this.createHover(( localize(
86
- 5447,
86
+ 5450,
87
87
  'The description of the prompt file. It can be used to provide additional context or information about the prompt to the prompt author.'
88
88
  )), descriptionRange);
89
89
  }
90
90
  const model = header.metadataUtility.model;
91
91
  if (model?.range.containsPosition(position)) {
92
- return this.getModelHover(model, model.range, ( localize(5448, 'The model to use in this prompt.')));
92
+ return this.getModelHover(model, model.range, ( localize(5451, 'The model to use in this prompt.')));
93
93
  }
94
94
  const tools = header.metadataUtility.tools;
95
95
  if (tools?.range?.containsPosition(position)) {
96
- return this.getToolHover(tools, position, ( localize(5449, 'The tools to use in this prompt.')));
96
+ return this.getToolHover(tools, position, ( localize(5452, 'The tools to use in this prompt.')));
97
97
  }
98
98
  const modeRange = header.metadataUtility.mode?.range;
99
99
  if (modeRange?.containsPosition(position)) {
100
- return this.createHover(( localize(5450, 'The mode (ask, edit or agent) to use when running this prompt.')), modeRange);
100
+ return this.createHover(( localize(5453, 'The mode (ask, edit or agent) to use when running this prompt.')), modeRange);
101
101
  }
102
102
  }
103
103
  return undefined;
@@ -122,7 +122,7 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
122
122
  }
123
123
  getToolsetHover(toolSet, range) {
124
124
  const lines = [];
125
- lines.push(( localize(5451, 'ToolSet: {0}\n\n', toolSet.referenceName)));
125
+ lines.push(( localize(5454, 'ToolSet: {0}\n\n', toolSet.referenceName)));
126
126
  if (toolSet.description) {
127
127
  lines.push(toolSet.description);
128
128
  }
@@ -139,9 +139,9 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
139
139
  if (meta && ILanguageModelChatMetadata.asQualifiedName(meta) === modelName) {
140
140
  const lines = [];
141
141
  lines.push(baseMessage + '\n');
142
- lines.push(( localize(5452, '- Name: {0}', meta.name)));
143
- lines.push(( localize(5453, '- Family: {0}', meta.family)));
144
- lines.push(( localize(5454, '- Vendor: {0}', meta.vendor)));
142
+ lines.push(( localize(5455, '- Name: {0}', meta.name)));
143
+ lines.push(( localize(5456, '- Family: {0}', meta.family)));
144
+ lines.push(( localize(5457, '- Vendor: {0}', meta.vendor)));
145
145
  if (meta.description) {
146
146
  lines.push('', '', meta.description);
147
147
  }
@@ -22,7 +22,7 @@ let PromptLinkDiagnosticsProvider = class PromptLinkDiagnosticsProvider extends
22
22
  const stats = await this.fileService.resolveAll(( this.parser.references.map(ref => ({ resource: ref.uri }))));
23
23
  for (let i = 0; i < stats.length; i++) {
24
24
  if (!stats[i].success) {
25
- markers.push(toMarker(this.parser.references[i], ( localize(5455, 'File not found.'))));
25
+ markers.push(toMarker(this.parser.references[i], ( localize(5458, 'File not found.'))));
26
26
  }
27
27
  }
28
28
  this.markerService.changeOne(MARKERS_OWNER_ID, this.model.uri, markers);
@@ -65,12 +65,12 @@ class HeaderBase extends Disposable {
65
65
  if (token instanceof SimpleToken) {
66
66
  return;
67
67
  }
68
- this.issues.push(( new PromptMetadataError(token.range, ( localize(5456, "Unexpected token '{0}'.", token.text)))));
68
+ this.issues.push(( new PromptMetadataError(token.range, ( localize(5459, "Unexpected token '{0}'.", token.text)))));
69
69
  return;
70
70
  }
71
71
  const recordName = token.nameToken.text;
72
72
  if (( this.recordNames.has(recordName))) {
73
- this.issues.push(( new PromptMetadataWarning(token.range, ( localize(5457, "Duplicate property '{0}' will be ignored.", recordName)))));
73
+ this.issues.push(( new PromptMetadataWarning(token.range, ( localize(5460, "Duplicate property '{0}' will be ignored.", recordName)))));
74
74
  return;
75
75
  }
76
76
  this.recordNames.add(recordName);
@@ -84,10 +84,10 @@ class HeaderBase extends Disposable {
84
84
  if (this.handleToken(token)) {
85
85
  return;
86
86
  }
87
- this.issues.push(( new PromptMetadataWarning(token.range, ( localize(5458, "Unknown property '{0}' will be ignored.", recordName)))));
87
+ this.issues.push(( new PromptMetadataWarning(token.range, ( localize(5461, "Unknown property '{0}' will be ignored.", recordName)))));
88
88
  }
89
89
  onError(error) {
90
- this.issues.push(( new PromptMetadataError(this.token.range, ( localize(5459, "Failed to parse prompt header: {0}", error.message)))));
90
+ this.issues.push(( new PromptMetadataError(this.token.range, ( localize(5462, "Failed to parse prompt header: {0}", error.message)))));
91
91
  }
92
92
  get settled() {
93
93
  return this.stream.settled;
@@ -40,7 +40,7 @@ class PromptApplyToMetadata extends PromptStringMetadata {
40
40
  }
41
41
  if (this.languageId !== INSTRUCTIONS_LANGUAGE_ID) {
42
42
  this.issues.push(( new PromptMetadataError(this.range, ( localize(
43
- 5460,
43
+ 5463,
44
44
  "The '{0}' header property is only valid in instruction files.",
45
45
  this.recordName
46
46
  )))));
@@ -49,7 +49,7 @@ class PromptApplyToMetadata extends PromptStringMetadata {
49
49
  }
50
50
  const { cleanText } = this.valueToken;
51
51
  if (this.isValidGlob(cleanText) === false) {
52
- this.issues.push(( new PromptMetadataWarning(this.valueToken.range, ( localize(5461, "Invalid glob pattern '{0}'.", cleanText)))));
52
+ this.issues.push(( new PromptMetadataWarning(this.valueToken.range, ( localize(5464, "Invalid glob pattern '{0}'.", cleanText)))));
53
53
  delete this.valueToken;
54
54
  return this.issues;
55
55
  }
@@ -46,7 +46,7 @@ class PromptEnumMetadata extends PromptStringMetadata {
46
46
  return this.issues;
47
47
  }
48
48
  this.issues.push(( new PromptMetadataError(this.valueToken.range, ( localize(
49
- 5462,
49
+ 5465,
50
50
  "The '{0}' metadata must be one of {1}, got '{2}'.",
51
51
  this.recordName,
52
52
  ( this.validValues
@@ -40,7 +40,7 @@ class PromptStringMetadata extends PromptMetadataRecord {
40
40
  return this.issues;
41
41
  }
42
42
  this.issues.push(( new PromptMetadataError(valueToken.range, ( localize(
43
- 5463,
43
+ 5466,
44
44
  "The '{0}' metadata must be a '{1}', got '{2}'.",
45
45
  this.recordName,
46
46
  'string',
@@ -44,7 +44,7 @@ class PromptToolsMetadata extends PromptMetadataRecord {
44
44
  const { valueToken } = this.recordToken;
45
45
  if ((valueToken instanceof FrontMatterArray) === false) {
46
46
  this.issues.push(( new PromptMetadataError(valueToken.range, ( localize(
47
- 5464,
47
+ 5467,
48
48
  "Must be an array of tool names, got '{0}'.",
49
49
  (valueToken.valueTypeName.toString())
50
50
  )))));
@@ -66,7 +66,7 @@ class PromptToolsMetadata extends PromptMetadataRecord {
66
66
  if ((valueToken instanceof FrontMatterString) === false &&
67
67
  (valueToken instanceof FrontMatterSequence) === false) {
68
68
  issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(
69
- 5465,
69
+ 5468,
70
70
  "Unexpected tool name '{0}', expected a string literal.",
71
71
  valueToken.text
72
72
  )))));
@@ -74,11 +74,11 @@ class PromptToolsMetadata extends PromptMetadataRecord {
74
74
  }
75
75
  const cleanToolName = valueToken.cleanText.trim();
76
76
  if (cleanToolName.length === 0) {
77
- issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(5466, "Tool name cannot be empty.")))));
77
+ issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(5469, "Tool name cannot be empty.")))));
78
78
  return issues;
79
79
  }
80
80
  if (( validToolNames.has(cleanToolName))) {
81
- issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(5467, "Duplicate tool name '{0}'.", cleanToolName)))));
81
+ issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(5470, "Duplicate tool name '{0}'.", cleanToolName)))));
82
82
  return issues;
83
83
  }
84
84
  validToolNames.set(cleanToolName, valueToken.range);
@@ -52,7 +52,7 @@ class PromptHeader extends HeaderBase {
52
52
  assertDefined(mode, 'Mode metadata must have been present.');
53
53
  assert(mode.value !== ChatModeKind.Agent, 'Mode metadata must not be agent mode.');
54
54
  this.issues.push(( new PromptMetadataWarning(tools.range, ( localize(
55
- 5468,
55
+ 5471,
56
56
  "Tools can only be used when in 'agent' mode, but the mode is set to '{0}'. The tools will be ignored.",
57
57
  mode.value
58
58
  )))));
@@ -15,29 +15,29 @@ class TopError {
15
15
  const { originalError, parentUri, errorSubject: subject, errorsCount } = this;
16
16
  assert(errorsCount >= 1, `Error count must be at least 1, got '${errorsCount}'.`);
17
17
  const moreIssuesLabel = (errorsCount > 1)
18
- ? ( localize(5469, "\n(+{0} more issues)", errorsCount - 1))
18
+ ? ( localize(5472, "\n(+{0} more issues)", errorsCount - 1))
19
19
  : '';
20
20
  if (subject === 'root') {
21
21
  if (originalError instanceof OpenFailed) {
22
- return localize(5470, "Cannot open '{0}'.{1}", originalError.uri.path, moreIssuesLabel);
22
+ return localize(5473, "Cannot open '{0}'.{1}", originalError.uri.path, moreIssuesLabel);
23
23
  }
24
24
  if (originalError instanceof FailedToResolveContentsStream) {
25
- return localize(5471, "Cannot read '{0}'.{1}", originalError.uri.path, moreIssuesLabel);
25
+ return localize(5474, "Cannot read '{0}'.{1}", originalError.uri.path, moreIssuesLabel);
26
26
  }
27
27
  if (originalError instanceof RecursiveReference) {
28
- return localize(5472, "Recursion to itself.");
28
+ return localize(5475, "Recursion to itself.");
29
29
  }
30
30
  return originalError.message + moreIssuesLabel;
31
31
  }
32
32
  assertDefined(parentUri, 'Parent URI must be defined for error of non-root link.');
33
33
  const errorMessageStart = (subject === 'child')
34
- ? ( localize(5473, "Contains"))
35
- : ( localize(5474, "Indirectly referenced prompt '{0}' contains", parentUri.path));
34
+ ? ( localize(5476, "Contains"))
35
+ : ( localize(5477, "Indirectly referenced prompt '{0}' contains", parentUri.path));
36
36
  const linkIssueName = (originalError instanceof RecursiveReference)
37
- ? ( localize(5475, "recursive"))
38
- : ( localize(5476, "broken"));
37
+ ? ( localize(5478, "recursive"))
38
+ : ( localize(5479, "broken"));
39
39
  return localize(
40
- 5477,
40
+ 5480,
41
41
  "{0} a {1} link to '{2}' that will be ignored.{3}",
42
42
  errorMessageStart,
43
43
  linkIssueName,
@@ -82,7 +82,7 @@ let PromptsService = class PromptsService extends Disposable {
82
82
  }
83
83
  asPromptSlashCommand(command) {
84
84
  if (command.match(/^[\p{L}\d_\-\.]+$/u)) {
85
- return { command, detail: ( localize(5478, 'Prompt file: {0}', command)) };
85
+ return { command, detail: ( localize(5481, 'Prompt file: {0}', command)) };
86
86
  }
87
87
  return undefined;
88
88
  }
@@ -116,7 +116,7 @@ let PromptsService = class PromptsService extends Disposable {
116
116
  return {
117
117
  command,
118
118
  detail: ( localize(
119
- 5478,
119
+ 5481,
120
120
  'Prompt file: {0}',
121
121
  this.labelService.getUriLabel(promptPath.uri, { relative: true })
122
122
  )),
@@ -142,7 +142,7 @@ let PromptsService = class PromptsService extends Disposable {
142
142
  parser = this.instantiationService.createInstance(PromptParser, uri, { allowNonPromptFiles: true, languageId: MODE_LANGUAGE_ID, updateOnChange: false }).start(token);
143
143
  const completed = await parser.settled();
144
144
  if (!completed) {
145
- throw ( new Error(( localize(5479, "Prompt parser for {0} did not complete.", (uri.toString())))));
145
+ throw ( new Error(( localize(5482, "Prompt parser for {0} did not complete.", (uri.toString())))));
146
146
  }
147
147
  const body = await parser.getBody();
148
148
  const name = getCleanPromptName(uri);
@@ -166,7 +166,7 @@ let PromptsService = class PromptsService extends Disposable {
166
166
  parser = this.instantiationService.createInstance(PromptParser, uri, { allowNonPromptFiles: true, languageId, updateOnChange: false }).start(token);
167
167
  const completed = await parser.settled();
168
168
  if (!completed) {
169
- throw ( new Error(( localize(5479, "Prompt parser for {0} did not complete.", (uri.toString())))));
169
+ throw ( new Error(( localize(5482, "Prompt parser for {0} did not complete.", (uri.toString())))));
170
170
  }
171
171
  return {
172
172
  uri: parser.uri,
@@ -30,7 +30,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
30
30
  },
31
31
  jsonSchema: {
32
32
  description: ( localize(
33
- 5480,
33
+ 5483,
34
34
  'Contributes a tool that can be invoked by a language model in a chat session, or from a standalone command. Registered tools can be used by all extensions.'
35
35
  )),
36
36
  type: 'array',
@@ -56,7 +56,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
56
56
  properties: {
57
57
  name: {
58
58
  description: ( localize(
59
- 5481,
59
+ 5484,
60
60
  "A unique name for this tool. This name must be a globally unique identifier, and is also used as a name when presenting this tool to a language model."
61
61
  )),
62
62
  type: 'string',
@@ -64,7 +64,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
64
64
  },
65
65
  toolReferenceName: {
66
66
  markdownDescription: ( localize(
67
- 5482,
67
+ 5485,
68
68
  "If {0} is enabled for this tool, the user may use '#' with this name to invoke the tool in a query. Otherwise, the name is not required. Name must not contain whitespace.",
69
69
  '`canBeReferencedInPrompt`'
70
70
  )),
@@ -73,32 +73,32 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
73
73
  },
74
74
  displayName: {
75
75
  description: ( localize(
76
- 5483,
76
+ 5486,
77
77
  "A human-readable name for this tool that may be used to describe it in the UI."
78
78
  )),
79
79
  type: 'string'
80
80
  },
81
81
  userDescription: {
82
- description: ( localize(5484, "A description of this tool that may be shown to the user.")),
82
+ description: ( localize(5487, "A description of this tool that may be shown to the user.")),
83
83
  type: 'string'
84
84
  },
85
85
  modelDescription: {
86
86
  description: ( localize(
87
- 5485,
87
+ 5488,
88
88
  "A description of this tool that may be used by a language model to select it."
89
89
  )),
90
90
  type: 'string'
91
91
  },
92
92
  inputSchema: {
93
93
  description: ( localize(
94
- 5486,
94
+ 5489,
95
95
  "A JSON schema for the input this tool accepts. The input must be an object at the top level. A particular language model may not support all JSON schema features. See the documentation for the language model family you are using for more information."
96
96
  )),
97
97
  $ref: toolsParametersSchemaSchemaId
98
98
  },
99
99
  canBeReferencedInPrompt: {
100
100
  markdownDescription: ( localize(
101
- 5487,
101
+ 5490,
102
102
  "If true, this tool shows up as an attachment that the user can add manually to their request. Chat participants will receive the tool in {0}.",
103
103
  '`ChatRequest#toolReferences`'
104
104
  )),
@@ -106,7 +106,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
106
106
  },
107
107
  icon: {
108
108
  markdownDescription: ( localize(
109
- 5488,
109
+ 5491,
110
110
  "An icon that represents this tool. Either a file path, an object with file paths for dark and light themes, or a theme icon reference, like `$(zap)`"
111
111
  )),
112
112
  anyOf: [{
@@ -116,11 +116,11 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
116
116
  type: 'object',
117
117
  properties: {
118
118
  light: {
119
- description: ( localize(5489, 'Icon path when a light theme is used')),
119
+ description: ( localize(5492, 'Icon path when a light theme is used')),
120
120
  type: 'string'
121
121
  },
122
122
  dark: {
123
- description: ( localize(5490, 'Icon path when a dark theme is used')),
123
+ description: ( localize(5493, 'Icon path when a dark theme is used')),
124
124
  type: 'string'
125
125
  }
126
126
  }
@@ -128,14 +128,14 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
128
128
  },
129
129
  when: {
130
130
  markdownDescription: ( localize(
131
- 5491,
131
+ 5494,
132
132
  "Condition which must be true for this tool to be enabled. Note that a tool may still be invoked by another extension even when its `when` condition is false."
133
133
  )),
134
134
  type: 'string'
135
135
  },
136
136
  tags: {
137
137
  description: ( localize(
138
- 5492,
138
+ 5495,
139
139
  "A set of tags that roughly describe the tool's capabilities. A tool user may use these to filter the set of tools to just ones that are relevant for the task at hand, or they may want to pick a tag that can be used to identify just the tools contributed by this extension."
140
140
  )),
141
141
  type: 'array',
@@ -153,7 +153,7 @@ const languageModelToolSetsExtensionPoint = ExtensionsRegistry.registerExtension
153
153
  deps: [languageModelToolsExtensionPoint],
154
154
  jsonSchema: {
155
155
  description: ( localize(
156
- 5493,
156
+ 5496,
157
157
  'Contributes a set of language model tools that can be used together.'
158
158
  )),
159
159
  type: 'array',
@@ -171,23 +171,23 @@ const languageModelToolSetsExtensionPoint = ExtensionsRegistry.registerExtension
171
171
  properties: {
172
172
  name: {
173
173
  description: ( localize(
174
- 5494,
174
+ 5497,
175
175
  "A name for this tool set. Used as reference and should not contain whitespace."
176
176
  )),
177
177
  type: 'string',
178
178
  pattern: '^[\\w-]+$'
179
179
  },
180
180
  description: {
181
- description: ( localize(5495, "A description of this tool set.")),
181
+ description: ( localize(5498, "A description of this tool set.")),
182
182
  type: 'string'
183
183
  },
184
184
  icon: {
185
- markdownDescription: ( localize(5496, "An icon that represents this tool set, like `$(zap)`")),
185
+ markdownDescription: ( localize(5499, "An icon that represents this tool set, like `$(zap)`")),
186
186
  type: 'string'
187
187
  },
188
188
  tools: {
189
189
  markdownDescription: ( localize(
190
- 5497,
190
+ 5500,
191
191
  "A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools by their `toolReferenceName`."
192
192
  )),
193
193
  type: 'array',
@@ -352,9 +352,9 @@ class LanguageModelToolDataRenderer extends Disposable {
352
352
  return { data: { headers: [], rows: [] }, dispose: () => { } };
353
353
  }
354
354
  const headers = [
355
- ( localize(5498, "Name")),
356
- ( localize(5499, "Display Name")),
357
- ( localize(5500, "Description")),
355
+ ( localize(5501, "Name")),
356
+ ( localize(5502, "Display Name")),
357
+ ( localize(5503, "Description")),
358
358
  ];
359
359
  const rows = ( contribs.map(t => {
360
360
  return [
@@ -374,7 +374,7 @@ class LanguageModelToolDataRenderer extends Disposable {
374
374
  }
375
375
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
376
376
  id: 'languageModelTools',
377
- label: ( localize(5501, "Language Model Tools")),
377
+ label: ( localize(5504, "Language Model Tools")),
378
378
  access: {
379
379
  canToggle: false
380
380
  },
@@ -394,10 +394,10 @@ class LanguageModelToolSetDataRenderer extends Disposable {
394
394
  return { data: { headers: [], rows: [] }, dispose: () => { } };
395
395
  }
396
396
  const headers = [
397
- ( localize(5502, "Name")),
398
- ( localize(5503, "Reference Name")),
399
- ( localize(5504, "Tools")),
400
- ( localize(5505, "Description")),
397
+ ( localize(5505, "Name")),
398
+ ( localize(5506, "Reference Name")),
399
+ ( localize(5507, "Tools")),
400
+ ( localize(5508, "Description")),
401
401
  ];
402
402
  const rows = ( contribs.map(t => {
403
403
  return [
@@ -418,7 +418,7 @@ class LanguageModelToolSetDataRenderer extends Disposable {
418
418
  }
419
419
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
420
420
  id: 'languageModelToolSets',
421
- label: ( localize(5506, "Language Model Tool Sets")),
421
+ label: ( localize(5509, "Language Model Tool Sets")),
422
422
  access: {
423
423
  canToggle: false
424
424
  },
@@ -21,7 +21,7 @@ var PhraseTextType;
21
21
  const VoiceChatInProgress = ( new RawContextKey(
22
22
  'voiceChatInProgress',
23
23
  false,
24
- { type: 'boolean', description: ( localize(5507, "A speech-to-text session is in progress for chat.")) }
24
+ { type: 'boolean', description: ( localize(5510, "A speech-to-text session is in progress for chat.")) }
25
25
  ));
26
26
  let VoiceChatService = class VoiceChatService extends Disposable {
27
27
  static { VoiceChatService_1 = this; }
@@ -37,7 +37,7 @@ const editActionMenuItem = {
37
37
  order: 0,
38
38
  command: {
39
39
  id: ChatSubmitAction.ID,
40
- title: ( localize(7649, "Edit Code")),
40
+ title: ( localize(7652, "Edit Code")),
41
41
  },
42
42
  when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), CTX_INLINE_CHAT_EDITING, CTX_INLINE_CHAT_HAS_AGENT)),
43
43
  };
@@ -46,7 +46,7 @@ const generateActionMenuItem = {
46
46
  order: 0,
47
47
  command: {
48
48
  id: ChatSubmitAction.ID,
49
- title: ( localize(7650, "Generate")),
49
+ title: ( localize(7653, "Generate")),
50
50
  },
51
51
  when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), ( CTX_INLINE_CHAT_EDITING.toNegated()), CTX_INLINE_CHAT_HAS_AGENT)),
52
52
  };
@@ -57,8 +57,8 @@ const cancelActionMenuItem = {
57
57
  order: 0,
58
58
  command: {
59
59
  id: CancelAction.ID,
60
- title: ( localize(7651, "Cancel Request")),
61
- shortTitle: ( localize(7652, "Cancel")),
60
+ title: ( localize(7654, "Cancel Request")),
61
+ shortTitle: ( localize(7655, "Cancel")),
62
62
  },
63
63
  when: ( ContextKeyExpr.and(CTX_INLINE_CHAT_REQUEST_IN_PROGRESS)),
64
64
  };