@codingame/monaco-vscode-chat-service-override 33.0.9 → 34.0.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 (403) hide show
  1. package/index.js +19 -5
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.d.ts +32 -0
  4. package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.js +77 -0
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +84 -17
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +235 -190
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +3 -2
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +23 -4
  9. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.d.ts +1 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +22 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +107 -8
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +272 -49
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +2 -2
  14. package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.d.ts → agentHostResourceService.d.ts} +26 -0
  15. package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +11 -1
  16. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +13 -0
  17. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +26 -18
  18. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.d.ts +1 -0
  19. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +119 -0
  20. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +135 -19
  21. package/vscode/src/vs/platform/agentHost/common/agentService.js +8 -2
  22. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +5 -1
  23. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +85 -22
  24. package/vscode/src/vs/platform/agentHost/common/customAgents.d.ts +36 -0
  25. package/vscode/src/vs/platform/agentHost/common/customAgents.js +12 -0
  26. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +81 -0
  27. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +103 -0
  28. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +86 -10
  29. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +129 -37
  30. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.d.ts +12 -0
  31. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +72 -0
  32. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.d.ts +6 -0
  33. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.js +30 -0
  34. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.d.ts +6 -0
  35. package/vscode/src/vs/platform/agentHost/common/state/protocol/{reducers.js → channels-session/reducer.js} +99 -168
  36. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.d.ts +6 -0
  37. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.js +110 -0
  38. package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.d.ts → common/errors.d.ts} +13 -2
  39. package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.js → common/errors.js} +1 -2
  40. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +17 -0
  41. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.js +9 -0
  42. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +33 -8
  43. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +2 -3
  44. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +36 -5
  45. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +6 -3
  46. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
  47. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
  48. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +3 -3
  49. package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
  50. package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
  51. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +4 -1
  52. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +9 -0
  53. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +21 -0
  54. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +28 -0
  55. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +31 -0
  56. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +49 -0
  57. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +182 -0
  58. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +784 -0
  59. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.d.ts +18 -0
  60. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +305 -0
  61. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  62. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +120 -0
  63. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +100 -0
  64. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  67. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  68. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
  69. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  71. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  72. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  73. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +106 -8
  74. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  75. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +22 -36
  76. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  78. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +21 -13
  80. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +38 -18
  82. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  84. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  85. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  86. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +3 -2
  88. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +9 -9
  89. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +5 -5
  90. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +10 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +40 -11
  92. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +15 -9
  93. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  94. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +0 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +23 -17
  96. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  97. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.d.ts +24 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.js +55 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +30 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +119 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +13 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +32 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +55 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +104 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +177 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +3 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +11 -11
  109. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.d.ts +6 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.js +14 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +3 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +44 -5
  113. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +60 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +103 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
  116. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -62
  117. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +9 -7
  118. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  121. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +6 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +38 -28
  124. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  125. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +4 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +22 -31
  128. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
  129. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -16
  130. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +8 -2
  132. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +112 -113
  133. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +62 -68
  134. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +3 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +149 -145
  136. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +3 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  139. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -3
  142. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +8 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +13 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +8 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +15 -13
  146. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +1 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +78 -55
  148. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +140 -67
  149. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +11 -21
  150. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +3 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +59 -57
  152. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +440 -357
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +1 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  178. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  180. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  181. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.d.ts +21 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.js +115 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +5 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +6 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +28 -1
  190. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -1
  191. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +187 -106
  192. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +41 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  194. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  195. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +66 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +346 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +3 -2
  198. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -2
  199. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +72 -29
  200. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  201. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  202. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  203. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +5 -1
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +144 -67
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +126 -80
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +32 -31
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +11 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +40 -33
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +5 -1
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +25 -24
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  216. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  217. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
  218. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
  219. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  220. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +1 -19
  222. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +12 -22
  223. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +14 -6
  224. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +6 -3
  225. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +56 -18
  226. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  227. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  228. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +3 -3
  229. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +5 -6
  230. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +33 -36
  232. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -0
  233. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +31 -16
  234. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +4 -4
  235. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +16 -13
  236. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  237. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  238. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +1 -1
  239. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  242. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  243. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  244. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  245. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  246. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  247. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  248. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -23
  249. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  250. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +18 -0
  251. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +23 -1
  252. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  253. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +5 -2
  254. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  255. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +22 -13
  257. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
  258. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  259. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  260. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  261. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +14 -3
  262. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +55 -24
  263. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  264. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +38 -0
  265. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +47 -0
  266. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +54 -12
  267. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +1 -0
  268. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  269. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +39 -0
  270. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +40 -4
  271. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +30 -8
  272. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +205 -46
  273. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +4 -3
  274. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +8 -3
  275. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +57 -0
  276. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +153 -38
  277. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +12 -7
  278. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +70 -37
  279. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +6 -28
  280. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  281. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  282. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  283. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  284. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +150 -150
  285. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +10 -10
  287. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
  288. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  289. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  290. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  291. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  292. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  293. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  294. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  295. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  296. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +21 -1
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +55 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +122 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +52 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +232 -0
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +65 -0
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +225 -0
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +143 -0
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +37 -0
  318. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +205 -0
  319. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
  320. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
  321. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
  322. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
  323. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +52 -0
  324. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +260 -0
  325. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +44 -0
  326. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +98 -0
  327. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  328. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
  329. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -7
  330. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
  331. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +226 -0
  332. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
  333. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
  334. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
  335. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
  336. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +54 -0
  337. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
  338. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
  339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
  340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +27 -0
  341. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +177 -0
  342. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
  343. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
  344. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  345. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  346. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  347. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  349. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  350. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  351. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
  352. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
  353. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +42 -0
  354. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +102 -0
  355. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  356. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
  357. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
  358. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
  359. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  360. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  361. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +28 -0
  362. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +15 -0
  363. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +55 -0
  364. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  365. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +3 -0
  366. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +31 -9
  367. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  368. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +4 -4
  369. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +177 -0
  370. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +518 -0
  371. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
  372. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  373. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
  374. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -1
  375. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +3 -3
  376. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +297 -0
  377. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2961 -0
  378. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +29 -0
  379. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +63 -0
  380. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +14 -14
  381. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  382. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  383. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  384. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  385. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
  386. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
  387. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
  388. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
  389. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
  390. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +58 -0
  391. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +223 -0
  392. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +20 -0
  393. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +81 -0
  394. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +63 -0
  395. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +349 -0
  396. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +75 -0
  397. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +192 -0
  398. package/vscode/src/vs/workbench/services/agentHost/common/agentHostResourceService.d.ts +89 -0
  399. package/vscode/src/vs/workbench/services/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +226 -9
  400. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +0 -30
  401. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +0 -119
  402. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +0 -552
  403. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.d.ts +0 -83
@@ -63,13 +63,13 @@ let PromptValidator = class PromptValidator {
63
63
  const location = this.promptsService.getAgentFileURIFromModeFile(promptAST.uri);
64
64
  if (location && (await this.fileService.canCreateFile(location))) {
65
65
  report(toMarker(( localize(
66
- 8013,
66
+ 8166,
67
67
  "Chat modes have been renamed to agents. Please move this file to {0}",
68
68
  (location.toString())
69
69
  )), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
70
70
  } else {
71
71
  report(toMarker(( localize(
72
- 8014,
72
+ 8167,
73
73
  "Chat modes have been renamed to agents. Please move the file to {0}",
74
74
  AGENTS_SOURCE_FOLDER
75
75
  )), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
@@ -82,13 +82,13 @@ let PromptValidator = class PromptValidator {
82
82
  }
83
83
  const nameAttribute = promptAST.header.getAttribute(PromptHeaderAttributes.name);
84
84
  if (!nameAttribute) {
85
- report(toMarker(( localize(8015, "Skill should provide a name.")), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
85
+ report(toMarker(( localize(8168, "Skill should provide a name.")), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
86
86
  } else if (nameAttribute.value.type === "scalar") {
87
87
  const skillName = nameAttribute.value.value.trim();
88
88
  if (skillName.length > 0) {
89
89
  if (!VALID_SKILL_NAME_REGEX.test(skillName)) {
90
90
  report(toMarker(( localize(
91
- 8016,
91
+ 8169,
92
92
  "Skill name may only contain lowercase letters, numbers, and hyphens."
93
93
  )), nameAttribute.value.range, MarkerSeverity.Error));
94
94
  }
@@ -98,7 +98,7 @@ let PromptValidator = class PromptValidator {
98
98
  const folderName = pathParts[skillIndex - 1];
99
99
  if (folderName && skillName !== folderName) {
100
100
  report(toMarker(( localize(
101
- 8017,
101
+ 8170,
102
102
  "The skill name '{0}' should match the folder name '{1}'.",
103
103
  skillName,
104
104
  folderName
@@ -109,12 +109,12 @@ let PromptValidator = class PromptValidator {
109
109
  }
110
110
  const descriptionAttribute = promptAST.header.getAttribute(PromptHeaderAttributes.description);
111
111
  if (!descriptionAttribute) {
112
- report(toMarker(( localize(8018, "Skill should provide a description.")), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
112
+ report(toMarker(( localize(8171, "Skill should provide a description.")), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
113
113
  if (promptAST.header.userInvocable === false) {
114
114
  const userInvocableAttr = promptAST.header.getAttribute(PromptHeaderAttributes.userInvocable);
115
115
  if (userInvocableAttr) {
116
116
  report(toMarker(( localize(
117
- 8019,
117
+ 8172,
118
118
  "A description is required when user-invocable is false, because the model needs a description to decide when to load the skill."
119
119
  )), userInvocableAttr.value.range, MarkerSeverity.Error));
120
120
  }
@@ -123,7 +123,7 @@ let PromptValidator = class PromptValidator {
123
123
  const disableModelInvocationAttr = promptAST.header.getAttribute(PromptHeaderAttributes.disableModelInvocation);
124
124
  if (disableModelInvocationAttr) {
125
125
  report(toMarker(( localize(
126
- 8020,
126
+ 8173,
127
127
  "A description is required when model invocation is enabled, because the model needs a description to decide when to load the skill."
128
128
  )), disableModelInvocationAttr.value.range, MarkerSeverity.Error));
129
129
  }
@@ -134,7 +134,7 @@ let PromptValidator = class PromptValidator {
134
134
  const skillToolEnabled = this.configurationService.getValue("github.copilot.chat.skillTool.enabled");
135
135
  if (!skillToolEnabled) {
136
136
  report(toMarker(( localize(
137
- 8021,
137
+ 8174,
138
138
  "The 'context: fork' attribute requires the skill tool to be enabled (github.copilot.chat.skillTool.enabled)."
139
139
  )), contextAttribute.value.range, MarkerSeverity.Warning));
140
140
  }
@@ -149,7 +149,7 @@ let PromptValidator = class PromptValidator {
149
149
  for (const ref of body.fileReferences) {
150
150
  const resolved = body.resolveFilePath(ref.content);
151
151
  if (!resolved) {
152
- report(toMarker(( localize(8022, "Invalid file reference '{0}'.", ref.content)), ref.range, MarkerSeverity.Warning));
152
+ report(toMarker(( localize(8175, "Invalid file reference '{0}'.", ref.content)), ref.range, MarkerSeverity.Warning));
153
153
  continue;
154
154
  }
155
155
  if (promptAST.uri.scheme === resolved.scheme) {
@@ -158,7 +158,7 @@ let PromptValidator = class PromptValidator {
158
158
  const exists = await this.fileService.exists(resolved);
159
159
  if (!exists) {
160
160
  const loc = this.labelService.getUriLabel(resolved);
161
- report(toMarker(( localize(8023, "File '{0}' not found at '{1}'.", ref.content, loc)), ref.range, MarkerSeverity.Warning));
161
+ report(toMarker(( localize(8176, "File '{0}' not found at '{1}'.", ref.content, loc)), ref.range, MarkerSeverity.Warning));
162
162
  }
163
163
  } catch (e) {
164
164
  this.logger.warn(
@@ -181,7 +181,7 @@ let PromptValidator = class PromptValidator {
181
181
  if (currentNames.size === 1) {
182
182
  const newName = Array.from(currentNames)[0];
183
183
  report(toMarker(( localize(
184
- 8024,
184
+ 8177,
185
185
  "Tool or toolset '{0}' has been renamed, use '{1}' instead.",
186
186
  variable.name,
187
187
  newName
@@ -189,7 +189,7 @@ let PromptValidator = class PromptValidator {
189
189
  } else {
190
190
  const newNames = Array.from(currentNames).sort((a, b) => a.localeCompare(b)).join(", ");
191
191
  report(toMarker(( localize(
192
- 8025,
192
+ 8178,
193
193
  "Tool or toolset '{0}' has been renamed, use the following tools instead: {1}",
194
194
  variable.name,
195
195
  newNames
@@ -197,13 +197,13 @@ let PromptValidator = class PromptValidator {
197
197
  }
198
198
  }
199
199
  } else {
200
- report(toMarker(( localize(8026, "Unknown tool or toolset '{0}'.", variable.name)), variable.range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
200
+ report(toMarker(( localize(8179, "Unknown tool or toolset '{0}'.", variable.name)), variable.range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
201
201
  }
202
202
  } else if (headerToolsMap) {
203
203
  const tool = this.languageModelToolsService.getToolByFullReferenceName(variable.name);
204
204
  if (tool && headerToolsMap.get(tool) === false) {
205
205
  report(toMarker(( localize(
206
- 8027,
206
+ 8180,
207
207
  "Tool or toolset '{0}' also needs to be enabled in the header.",
208
208
  variable.name
209
209
  )), variable.range, MarkerSeverity.Warning));
@@ -277,7 +277,7 @@ let PromptValidator = class PromptValidator {
277
277
  switch (promptType) {
278
278
  case PromptsType.prompt:
279
279
  report(toMarker(( localize(
280
- 8028,
280
+ 8181,
281
281
  "Attribute '{0}' is not supported in prompt files. Supported: {1}.",
282
282
  attribute.key,
283
283
  supportedNames.value
@@ -286,7 +286,7 @@ let PromptValidator = class PromptValidator {
286
286
  case PromptsType.agent:
287
287
  if (target === Target.GitHubCopilot) {
288
288
  report(toMarker(( localize(
289
- 8029,
289
+ 8182,
290
290
  "Attribute '{0}' is not supported in custom GitHub Copilot agent files. Supported: {1}.",
291
291
  attribute.key,
292
292
  supportedNames.value
@@ -295,13 +295,13 @@ let PromptValidator = class PromptValidator {
295
295
  ; else {
296
296
  if (( validGithubCopilotAttributeNames.value.has(attribute.key))) {
297
297
  report(toMarker(( localize(
298
- 8030,
298
+ 8183,
299
299
  "Attribute '{0}' is ignored when running locally in VS Code.",
300
300
  attribute.key
301
301
  )), attribute.range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
302
302
  } else {
303
303
  report(toMarker(( localize(
304
- 8031,
304
+ 8184,
305
305
  "Attribute '{0}' is not supported in VS Code agent files. Supported: {1}.",
306
306
  attribute.key,
307
307
  supportedNames.value
@@ -312,14 +312,14 @@ let PromptValidator = class PromptValidator {
312
312
  case PromptsType.instructions:
313
313
  if (target === Target.Claude) {
314
314
  report(toMarker(( localize(
315
- 8032,
315
+ 8185,
316
316
  "Attribute '{0}' is not supported in rules files by VS Code agents. Supported: {1}.",
317
317
  attribute.key,
318
318
  supportedNames.value
319
319
  )), attribute.range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
320
320
  } else {
321
321
  report(toMarker(( localize(
322
- 8033,
322
+ 8186,
323
323
  "Attribute '{0}' is not supported in instructions files. Supported: {1}.",
324
324
  attribute.key,
325
325
  supportedNames.value
@@ -328,7 +328,7 @@ let PromptValidator = class PromptValidator {
328
328
  break;
329
329
  case PromptsType.skill:
330
330
  report(toMarker(( localize(
331
- 8034,
331
+ 8187,
332
332
  "Attribute '{0}' is not supported by VS Code agents. Supported: {1}.",
333
333
  attribute.key,
334
334
  supportedNames.value
@@ -344,11 +344,11 @@ let PromptValidator = class PromptValidator {
344
344
  return;
345
345
  }
346
346
  if (nameAttribute.value.type !== "scalar") {
347
- report(toMarker(( localize(8035, "The 'name' attribute must be a string.")), nameAttribute.range, MarkerSeverity.Error));
347
+ report(toMarker(( localize(8188, "The 'name' attribute must be a string.")), nameAttribute.range, MarkerSeverity.Error));
348
348
  return;
349
349
  }
350
350
  if (nameAttribute.value.value.trim().length === 0) {
351
- report(toMarker(( localize(8036, "The 'name' attribute must not be empty.")), nameAttribute.value.range, MarkerSeverity.Error));
351
+ report(toMarker(( localize(8189, "The 'name' attribute must not be empty.")), nameAttribute.value.range, MarkerSeverity.Error));
352
352
  return;
353
353
  }
354
354
  }
@@ -358,11 +358,11 @@ let PromptValidator = class PromptValidator {
358
358
  return;
359
359
  }
360
360
  if (descriptionAttribute.value.type !== "scalar") {
361
- report(toMarker(( localize(8037, "The 'description' attribute must be a string.")), descriptionAttribute.range, MarkerSeverity.Error));
361
+ report(toMarker(( localize(8190, "The 'description' attribute must be a string.")), descriptionAttribute.range, MarkerSeverity.Error));
362
362
  return;
363
363
  }
364
364
  if (descriptionAttribute.value.value.trim().length === 0) {
365
- report(toMarker(( localize(8038, "The 'description' attribute should not be empty.")), descriptionAttribute.value.range, MarkerSeverity.Error));
365
+ report(toMarker(( localize(8191, "The 'description' attribute should not be empty.")), descriptionAttribute.value.range, MarkerSeverity.Error));
366
366
  return;
367
367
  }
368
368
  }
@@ -372,11 +372,11 @@ let PromptValidator = class PromptValidator {
372
372
  return;
373
373
  }
374
374
  if (argumentHintAttribute.value.type !== "scalar") {
375
- report(toMarker(( localize(8039, "The 'argument-hint' attribute must be a string.")), argumentHintAttribute.range, MarkerSeverity.Error));
375
+ report(toMarker(( localize(8192, "The 'argument-hint' attribute must be a string.")), argumentHintAttribute.range, MarkerSeverity.Error));
376
376
  return;
377
377
  }
378
378
  if (argumentHintAttribute.value.value.trim().length === 0) {
379
- report(toMarker(( localize(8040, "The 'argument-hint' attribute should not be empty.")), argumentHintAttribute.value.range, MarkerSeverity.Warning));
379
+ report(toMarker(( localize(8193, "The 'argument-hint' attribute should not be empty.")), argumentHintAttribute.value.range, MarkerSeverity.Warning));
380
380
  return;
381
381
  }
382
382
  }
@@ -386,30 +386,30 @@ let PromptValidator = class PromptValidator {
386
386
  return;
387
387
  }
388
388
  if (attribute.value.type !== "scalar" && attribute.value.type !== "sequence") {
389
- report(toMarker(( localize(8041, "The 'model' attribute must be a string or an array of strings.")), attribute.value.range, MarkerSeverity.Error));
389
+ report(toMarker(( localize(8194, "The 'model' attribute must be a string or an array of strings.")), attribute.value.range, MarkerSeverity.Error));
390
390
  return;
391
391
  }
392
392
  const modelNames = [];
393
393
  if (attribute.value.type === "scalar") {
394
394
  const modelName = attribute.value.value.trim();
395
395
  if (modelName.length === 0) {
396
- report(toMarker(( localize(8042, "The 'model' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
396
+ report(toMarker(( localize(8195, "The 'model' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
397
397
  return;
398
398
  }
399
399
  modelNames.push([modelName, attribute.value.range]);
400
400
  } else if (attribute.value.type === "sequence") {
401
401
  if (attribute.value.items.length === 0) {
402
- report(toMarker(( localize(8043, "The 'model' array must not be empty.")), attribute.value.range, MarkerSeverity.Error));
402
+ report(toMarker(( localize(8196, "The 'model' array must not be empty.")), attribute.value.range, MarkerSeverity.Error));
403
403
  return;
404
404
  }
405
405
  for (const item of attribute.value.items) {
406
406
  if (item.type !== "scalar") {
407
- report(toMarker(( localize(8044, "The 'model' array must contain only strings.")), item.range, MarkerSeverity.Error));
407
+ report(toMarker(( localize(8197, "The 'model' array must contain only strings.")), item.range, MarkerSeverity.Error));
408
408
  return;
409
409
  }
410
410
  const modelName = item.value.trim();
411
411
  if (modelName.length === 0) {
412
- report(toMarker(( localize(8045, "Model names in the array must be non-empty strings.")), item.range, MarkerSeverity.Error));
412
+ report(toMarker(( localize(8198, "Model names in the array must be non-empty strings.")), item.range, MarkerSeverity.Error));
413
413
  return;
414
414
  }
415
415
  modelNames.push([modelName, item.range]);
@@ -422,9 +422,9 @@ let PromptValidator = class PromptValidator {
422
422
  for (const [modelName, range] of modelNames) {
423
423
  const modelMetadata = this.findModelByName(modelName);
424
424
  if (!modelMetadata) {
425
- report(toMarker(( localize(8046, "Unknown model '{0}' will be ignored.", modelName)), range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
425
+ report(toMarker(( localize(8199, "Unknown model '{0}' will be ignored.", modelName)), range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
426
426
  } else if (agentKind === ChatModeKind.Agent && !ILanguageModelChatMetadata.suitableForAgentMode(modelMetadata)) {
427
- report(toMarker(( localize(8047, "Model '{0}' is not suited for agent mode.", modelName)), range, MarkerSeverity.Warning));
427
+ report(toMarker(( localize(8200, "Model '{0}' is not suited for agent mode.", modelName)), range, MarkerSeverity.Warning));
428
428
  }
429
429
  }
430
430
  }
@@ -438,13 +438,13 @@ let PromptValidator = class PromptValidator {
438
438
  continue;
439
439
  }
440
440
  if (attribute.value.type !== "scalar") {
441
- report(toMarker(( localize(8048, "The '{0}' attribute must be a string.", claudeAttributeName)), attribute.value.range, MarkerSeverity.Error));
441
+ report(toMarker(( localize(8201, "The '{0}' attribute must be a string.", claudeAttributeName)), attribute.value.range, MarkerSeverity.Error));
442
442
  continue;
443
443
  } else {
444
444
  const modelName = attribute.value.value.trim();
445
445
  if (enumValues.every(model => model.name !== modelName)) {
446
446
  const validValues = ( enumValues.map(model => model.name)).join(", ");
447
- report(toMarker(( localize(8049, "Unknown value '{0}', valid: {1}.", modelName, validValues)), attribute.value.range, MarkerSeverity.Warning));
447
+ report(toMarker(( localize(8202, "Unknown value '{0}', valid: {1}.", modelName, validValues)), attribute.value.range, MarkerSeverity.Warning));
448
448
  }
449
449
  }
450
450
  }
@@ -463,12 +463,12 @@ let PromptValidator = class PromptValidator {
463
463
  if (modeAttribute) {
464
464
  if (agentAttribute) {
465
465
  report(toMarker(( localize(
466
- 8050,
466
+ 8203,
467
467
  "The 'mode' attribute has been deprecated. The 'agent' attribute is used instead."
468
468
  )), modeAttribute.range, MarkerSeverity.Warning, [MarkerTag.Deprecated]));
469
469
  } else {
470
470
  report(toMarker(( localize(
471
- 8051,
471
+ 8204,
472
472
  "The 'mode' attribute has been deprecated. Please rename it to 'agent'."
473
473
  )), modeAttribute.range, MarkerSeverity.Warning, [MarkerTag.Deprecated]));
474
474
  }
@@ -478,12 +478,12 @@ let PromptValidator = class PromptValidator {
478
478
  return undefined;
479
479
  }
480
480
  if (attribute.value.type !== "scalar") {
481
- report(toMarker(( localize(8052, "The '{0}' attribute must be a string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
481
+ report(toMarker(( localize(8205, "The '{0}' attribute must be a string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
482
482
  return undefined;
483
483
  }
484
484
  const agentValue = attribute.value.value;
485
485
  if (agentValue.trim().length === 0) {
486
- report(toMarker(( localize(8053, "The '{0}' attribute must be a non-empty string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
486
+ report(toMarker(( localize(8206, "The '{0}' attribute must be a non-empty string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
487
487
  return undefined;
488
488
  }
489
489
  return await this.validateAgentValue(attribute.value, report);
@@ -498,7 +498,7 @@ let PromptValidator = class PromptValidator {
498
498
  availableAgents.push(agent.name.get());
499
499
  }
500
500
  const errorMessage = ( localize(
501
- 8054,
501
+ 8207,
502
502
  "Unknown agent '{0}'. Available agents: {1}.",
503
503
  value.value,
504
504
  availableAgents.join(", ")
@@ -513,7 +513,7 @@ let PromptValidator = class PromptValidator {
513
513
  }
514
514
  if (agentKind !== ChatModeKind.Agent) {
515
515
  report(toMarker(( localize(
516
- 8055,
516
+ 8208,
517
517
  "The 'tools' attribute is only supported when using agents. Attribute will be ignored."
518
518
  )), attribute.range, MarkerSeverity.Warning));
519
519
  }
@@ -523,7 +523,7 @@ let PromptValidator = class PromptValidator {
523
523
  }
524
524
  if (value.type !== "sequence") {
525
525
  report(toMarker(( localize(
526
- 8056,
526
+ 8209,
527
527
  "The 'tools' attribute must be an array or a comma separated string."
528
528
  )), attribute.value.range, MarkerSeverity.Error));
529
529
  return;
@@ -539,7 +539,7 @@ let PromptValidator = class PromptValidator {
539
539
  const deprecatedNames = this.languageModelToolsService.getDeprecatedFullReferenceNames();
540
540
  for (const item of valueItem.items) {
541
541
  if (item.type !== "scalar") {
542
- report(toMarker(( localize(8057, "Each tool name in the 'tools' attribute must be a string.")), item.range, MarkerSeverity.Error));
542
+ report(toMarker(( localize(8210, "Each tool name in the 'tools' attribute must be a string.")), item.range, MarkerSeverity.Error));
543
543
  } else if (item.value) {
544
544
  if (!( available.has(item.value))) {
545
545
  const currentNames = deprecatedNames.get(item.value);
@@ -547,7 +547,7 @@ let PromptValidator = class PromptValidator {
547
547
  if (currentNames?.size === 1) {
548
548
  const newName = Array.from(currentNames)[0];
549
549
  report(toMarker(( localize(
550
- 8058,
550
+ 8211,
551
551
  "Tool or toolset '{0}' has been renamed, use '{1}' instead.",
552
552
  item.value,
553
553
  newName
@@ -555,14 +555,14 @@ let PromptValidator = class PromptValidator {
555
555
  } else {
556
556
  const newNames = Array.from(currentNames).sort((a, b) => a.localeCompare(b)).join(", ");
557
557
  report(toMarker(( localize(
558
- 8059,
558
+ 8212,
559
559
  "Tool or toolset '{0}' has been renamed, use the following tools instead: {1}",
560
560
  item.value,
561
561
  newNames
562
562
  )), item.range, MarkerSeverity.Info, [MarkerTag.Deprecated]));
563
563
  }
564
564
  } else {
565
- report(toMarker(( localize(8060, "Unknown tool '{0}' will be ignored.", item.value)), item.range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
565
+ report(toMarker(( localize(8213, "Unknown tool '{0}' will be ignored.", item.value)), item.range, MarkerSeverity.Hint, [MarkerTag.Unnecessary]));
566
566
  }
567
567
  }
568
568
  }
@@ -575,25 +575,25 @@ let PromptValidator = class PromptValidator {
575
575
  return;
576
576
  }
577
577
  if (attribute.value.type !== "scalar") {
578
- report(toMarker(( localize(8061, "The 'applyTo' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
578
+ report(toMarker(( localize(8214, "The 'applyTo' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
579
579
  return;
580
580
  }
581
581
  const pattern = attribute.value.value;
582
582
  try {
583
583
  const patterns = splitGlobAware(pattern, ",");
584
584
  if (patterns.length === 0) {
585
- report(toMarker(( localize(8062, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
585
+ report(toMarker(( localize(8215, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
586
586
  return;
587
587
  }
588
588
  for (const pattern of patterns) {
589
589
  const globPattern = parse(pattern);
590
590
  if (isEmptyPattern(globPattern)) {
591
- report(toMarker(( localize(8062, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
591
+ report(toMarker(( localize(8215, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
592
592
  return;
593
593
  }
594
594
  }
595
595
  } catch (_error) {
596
- report(toMarker(( localize(8062, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
596
+ report(toMarker(( localize(8215, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
597
597
  }
598
598
  }
599
599
  validatePaths(attributes, report) {
@@ -602,26 +602,26 @@ let PromptValidator = class PromptValidator {
602
602
  return;
603
603
  }
604
604
  if (attribute.value.type !== "sequence") {
605
- report(toMarker(( localize(8063, "The 'paths' attribute must be an array of glob patterns.")), attribute.value.range, MarkerSeverity.Error));
605
+ report(toMarker(( localize(8216, "The 'paths' attribute must be an array of glob patterns.")), attribute.value.range, MarkerSeverity.Error));
606
606
  return;
607
607
  }
608
608
  for (const item of attribute.value.items) {
609
609
  if (item.type !== "scalar") {
610
- report(toMarker(( localize(8064, "Each entry in the 'paths' attribute must be a string.")), item.range, MarkerSeverity.Error));
610
+ report(toMarker(( localize(8217, "Each entry in the 'paths' attribute must be a string.")), item.range, MarkerSeverity.Error));
611
611
  continue;
612
612
  }
613
613
  const pattern = item.value.trim();
614
614
  if (pattern.length === 0) {
615
- report(toMarker(( localize(8065, "Path entries must be non-empty glob patterns.")), item.range, MarkerSeverity.Error));
615
+ report(toMarker(( localize(8218, "Path entries must be non-empty glob patterns.")), item.range, MarkerSeverity.Error));
616
616
  continue;
617
617
  }
618
618
  try {
619
619
  const globPattern = parse(pattern);
620
620
  if (isEmptyPattern(globPattern)) {
621
- report(toMarker(( localize(8066, "'{0}' is not a valid glob pattern.", pattern)), item.range, MarkerSeverity.Error));
621
+ report(toMarker(( localize(8219, "'{0}' is not a valid glob pattern.", pattern)), item.range, MarkerSeverity.Error));
622
622
  }
623
623
  } catch (_error) {
624
- report(toMarker(( localize(8066, "'{0}' is not a valid glob pattern.", pattern)), item.range, MarkerSeverity.Error));
624
+ report(toMarker(( localize(8219, "'{0}' is not a valid glob pattern.", pattern)), item.range, MarkerSeverity.Error));
625
625
  }
626
626
  }
627
627
  }
@@ -631,7 +631,7 @@ let PromptValidator = class PromptValidator {
631
631
  return;
632
632
  }
633
633
  if (attribute.value.type !== "sequence" && attribute.value.type !== "scalar") {
634
- report(toMarker(( localize(8067, "The 'excludeAgent' attribute must be an string or array.")), attribute.value.range, MarkerSeverity.Error));
634
+ report(toMarker(( localize(8220, "The 'excludeAgent' attribute must be an string or array.")), attribute.value.range, MarkerSeverity.Error));
635
635
  return;
636
636
  }
637
637
  }
@@ -642,7 +642,7 @@ let PromptValidator = class PromptValidator {
642
642
  }
643
643
  if (attribute.value.type !== "map") {
644
644
  report(toMarker(( localize(
645
- 8068,
645
+ 8221,
646
646
  "The 'hooks' attribute must be a map of hook event types to command arrays."
647
647
  )), attribute.value.range, MarkerSeverity.Error));
648
648
  return;
@@ -651,7 +651,7 @@ let PromptValidator = class PromptValidator {
651
651
  for (const prop of attribute.value.properties) {
652
652
  if (!( validHookNames.has(prop.key.value))) {
653
653
  report(toMarker(( localize(
654
- 8069,
654
+ 8222,
655
655
  "Unknown hook event type '{0}'. Supported: {1}.",
656
656
  prop.key.value,
657
657
  Array.from(validHookNames).join(", ")
@@ -659,7 +659,7 @@ let PromptValidator = class PromptValidator {
659
659
  }
660
660
  if (prop.value.type !== "sequence") {
661
661
  report(toMarker(( localize(
662
- 8070,
662
+ 8223,
663
663
  "Hook event '{0}' must have an array of command objects as its value.",
664
664
  prop.key.value
665
665
  )), prop.value.range, MarkerSeverity.Error));
@@ -672,19 +672,19 @@ let PromptValidator = class PromptValidator {
672
672
  }
673
673
  validateHookCommand(item, target, report) {
674
674
  if (item.type !== "map") {
675
- report(toMarker(( localize(8071, "Each hook command must be an object.")), item.range, MarkerSeverity.Error));
675
+ report(toMarker(( localize(8224, "Each hook command must be an object.")), item.range, MarkerSeverity.Error));
676
676
  return;
677
677
  }
678
678
  const hooksProperty = item.properties.find(p => p.key.value === "hooks");
679
679
  if (hooksProperty) {
680
680
  for (const prop of item.properties) {
681
681
  if (prop.key.value !== "hooks" && prop.key.value !== "matcher") {
682
- report(toMarker(( localize(8072, "Unknown property '{0}' in hook matcher.", prop.key.value)), prop.key.range, MarkerSeverity.Warning));
682
+ report(toMarker(( localize(8225, "Unknown property '{0}' in hook matcher.", prop.key.value)), prop.key.range, MarkerSeverity.Warning));
683
683
  }
684
684
  }
685
685
  if (hooksProperty.value.type !== "sequence") {
686
686
  report(toMarker(( localize(
687
- 8073,
687
+ 8226,
688
688
  "The 'hooks' property in a matcher must be an array of command objects."
689
689
  )), hooksProperty.value.range, MarkerSeverity.Error));
690
690
  return;
@@ -713,37 +713,37 @@ let PromptValidator = class PromptValidator {
713
713
  for (const prop of item.properties) {
714
714
  const key = prop.key.value;
715
715
  if (!( validProperties.has(key))) {
716
- report(toMarker(( localize(8074, "Unknown property '{0}' in hook command.", key)), prop.key.range, MarkerSeverity.Warning));
716
+ report(toMarker(( localize(8227, "Unknown property '{0}' in hook command.", key)), prop.key.range, MarkerSeverity.Warning));
717
717
  }
718
718
  if (key === "type") {
719
719
  hasType = true;
720
720
  if (prop.value.type !== "scalar" || prop.value.value !== "command") {
721
- report(toMarker(( localize(8075, "The 'type' property in a hook command must be 'command'.")), prop.value.range, MarkerSeverity.Error));
721
+ report(toMarker(( localize(8228, "The 'type' property in a hook command must be 'command'.")), prop.value.range, MarkerSeverity.Error));
722
722
  }
723
723
  } else if (( validCommandFields.has(key))) {
724
724
  hasCommandField = true;
725
725
  if (prop.value.type !== "scalar" || prop.value.value.trim().length === 0) {
726
726
  report(toMarker(( localize(
727
- 8076,
727
+ 8229,
728
728
  "The '{0}' property in a hook command must be a non-empty string.",
729
729
  key
730
730
  )), prop.value.range, MarkerSeverity.Error));
731
731
  }
732
732
  } else if (key === "cwd") {
733
733
  if (prop.value.type !== "scalar") {
734
- report(toMarker(( localize(8077, "The 'cwd' property in a hook command must be a string.")), prop.value.range, MarkerSeverity.Error));
734
+ report(toMarker(( localize(8230, "The 'cwd' property in a hook command must be a string.")), prop.value.range, MarkerSeverity.Error));
735
735
  }
736
736
  } else if (key === "env") {
737
737
  if (prop.value.type !== "map") {
738
738
  report(toMarker(( localize(
739
- 8078,
739
+ 8231,
740
740
  "The 'env' property in a hook command must be a map of string values."
741
741
  )), prop.value.range, MarkerSeverity.Error));
742
742
  } else {
743
743
  for (const envProp of prop.value.properties) {
744
744
  if (envProp.value.type !== "scalar") {
745
745
  report(toMarker(( localize(
746
- 8079,
746
+ 8232,
747
747
  "Environment variable '{0}' must have a string value.",
748
748
  envProp.key.value
749
749
  )), envProp.value.range, MarkerSeverity.Error));
@@ -752,19 +752,19 @@ let PromptValidator = class PromptValidator {
752
752
  }
753
753
  } else if (key === "timeout" || key === "timeoutSec") {
754
754
  if (prop.value.type !== "scalar" || isNaN(Number(prop.value.value))) {
755
- report(toMarker(( localize(8080, "The '{0}' property in a hook command must be a number.", key)), prop.value.range, MarkerSeverity.Error));
755
+ report(toMarker(( localize(8233, "The '{0}' property in a hook command must be a number.", key)), prop.value.range, MarkerSeverity.Error));
756
756
  }
757
757
  }
758
758
  }
759
759
  if (!hasType) {
760
- report(toMarker(( localize(8081, "Hook command is missing required property 'type'.")), item.range, MarkerSeverity.Error));
760
+ report(toMarker(( localize(8234, "Hook command is missing required property 'type'.")), item.range, MarkerSeverity.Error));
761
761
  }
762
762
  if (!hasCommandField) {
763
763
  if (isCopilotCli) {
764
- report(toMarker(( localize(8082, "Hook command must specify at least one of 'bash' or 'powershell'.")), item.range, MarkerSeverity.Error));
764
+ report(toMarker(( localize(8235, "Hook command must specify at least one of 'bash' or 'powershell'.")), item.range, MarkerSeverity.Error));
765
765
  } else {
766
766
  report(toMarker(( localize(
767
- 8083,
767
+ 8236,
768
768
  "Hook command must specify at least one of 'command', 'windows', 'linux', or 'osx'."
769
769
  )), item.range, MarkerSeverity.Error));
770
770
  }
@@ -776,14 +776,14 @@ let PromptValidator = class PromptValidator {
776
776
  return;
777
777
  }
778
778
  if (attribute.value.type !== "sequence") {
779
- report(toMarker(( localize(8084, "The 'handoffs' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
779
+ report(toMarker(( localize(8237, "The 'handoffs' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
780
780
  return;
781
781
  }
782
782
  const seenLabels = ( new Map());
783
783
  for (const item of attribute.value.items) {
784
784
  if (item.type !== "map") {
785
785
  report(toMarker(( localize(
786
- 8085,
786
+ 8238,
787
787
  "Each handoff in the 'handoffs' attribute must be an object with 'label', 'agent', 'prompt' and optional 'send'."
788
788
  )), item.range, MarkerSeverity.Error));
789
789
  continue;
@@ -793,44 +793,44 @@ let PromptValidator = class PromptValidator {
793
793
  switch (prop.key.value) {
794
794
  case "label":
795
795
  if (prop.value.type !== "scalar" || prop.value.value.trim().length === 0) {
796
- report(toMarker(( localize(8086, "The 'label' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
796
+ report(toMarker(( localize(8239, "The 'label' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
797
797
  } else if (!/[a-zA-Z0-9]/.test(prop.value.value)) {
798
798
  report(toMarker(( localize(
799
- 8087,
799
+ 8240,
800
800
  "The 'label' property in a handoff must contain at least one alphanumeric character."
801
801
  )), prop.value.range, MarkerSeverity.Error));
802
802
  }
803
803
  break;
804
804
  case "agent":
805
805
  if (prop.value.type !== "scalar" || prop.value.value.trim().length === 0) {
806
- report(toMarker(( localize(8088, "The 'agent' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
806
+ report(toMarker(( localize(8241, "The 'agent' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
807
807
  } else {
808
808
  this.validateAgentValue(prop.value, report);
809
809
  }
810
810
  break;
811
811
  case "prompt":
812
812
  if (prop.value.type !== "scalar") {
813
- report(toMarker(( localize(8089, "The 'prompt' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
813
+ report(toMarker(( localize(8242, "The 'prompt' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
814
814
  }
815
815
  break;
816
816
  case "send":
817
817
  if (!isTrueOrFalse(prop.value)) {
818
- report(toMarker(( localize(8090, "The 'send' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
818
+ report(toMarker(( localize(8243, "The 'send' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
819
819
  }
820
820
  break;
821
821
  case "showContinueOn":
822
822
  if (!isTrueOrFalse(prop.value)) {
823
- report(toMarker(( localize(8091, "The 'showContinueOn' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
823
+ report(toMarker(( localize(8244, "The 'showContinueOn' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
824
824
  }
825
825
  break;
826
826
  case "model":
827
827
  if (prop.value.type !== "scalar") {
828
- report(toMarker(( localize(8092, "The 'model' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
828
+ report(toMarker(( localize(8245, "The 'model' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
829
829
  }
830
830
  break;
831
831
  default:
832
832
  report(toMarker(( localize(
833
- 8093,
833
+ 8246,
834
834
  "Unknown property '{0}' in handoff object. Supported properties are 'label', 'agent', 'prompt' and optional 'send', 'showContinueOn', 'model'.",
835
835
  prop.key.value
836
836
  )), prop.value.range, MarkerSeverity.Warning));
@@ -839,7 +839,7 @@ let PromptValidator = class PromptValidator {
839
839
  }
840
840
  if (required.size > 0) {
841
841
  report(toMarker(( localize(
842
- 8094,
842
+ 8247,
843
843
  "Missing required properties {0} in handoff object.",
844
844
  ( Array.from(required).map(s => `'${s}'`)).join(", ")
845
845
  )), item.range, MarkerSeverity.Error));
@@ -849,7 +849,7 @@ let PromptValidator = class PromptValidator {
849
849
  const normalizedLabel = labelProp.value.value.toLowerCase();
850
850
  if (normalizedLabel && ( seenLabels.has(normalizedLabel))) {
851
851
  report(toMarker(( localize(
852
- 8095,
852
+ 8248,
853
853
  "Duplicate handoff label '{0}'. Each handoff must have a unique label.",
854
854
  labelProp.value.value
855
855
  )), labelProp.value.range, MarkerSeverity.Error));
@@ -865,7 +865,7 @@ let PromptValidator = class PromptValidator {
865
865
  return;
866
866
  }
867
867
  report(toMarker(( localize(
868
- 8096,
868
+ 8249,
869
869
  "The 'infer' attribute is deprecated in favour of 'user-invocable' and 'disable-model-invocation'."
870
870
  )), attribute.value.range, MarkerSeverity.Error));
871
871
  }
@@ -875,18 +875,18 @@ let PromptValidator = class PromptValidator {
875
875
  return;
876
876
  }
877
877
  if (attribute.value.type !== "scalar") {
878
- report(toMarker(( localize(8097, "The 'target' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
878
+ report(toMarker(( localize(8250, "The 'target' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
879
879
  return;
880
880
  }
881
881
  const targetValue = attribute.value.value.trim();
882
882
  if (targetValue.length === 0) {
883
- report(toMarker(( localize(8098, "The 'target' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
883
+ report(toMarker(( localize(8251, "The 'target' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
884
884
  return;
885
885
  }
886
886
  const validTargets = ["github-copilot", "vscode"];
887
887
  if (!validTargets.includes(targetValue)) {
888
888
  report(toMarker(( localize(
889
- 8099,
889
+ 8252,
890
890
  "The 'target' attribute must be one of: {0}.",
891
891
  validTargets.join(", ")
892
892
  )), attribute.value.range, MarkerSeverity.Error));
@@ -898,7 +898,7 @@ let PromptValidator = class PromptValidator {
898
898
  return;
899
899
  }
900
900
  if (!isTrueOrFalse(attribute.value)) {
901
- report(toMarker(( localize(8100, "The 'user-invocable' attribute must be 'true' or 'false'.")), attribute.value.range, MarkerSeverity.Error));
901
+ report(toMarker(( localize(8253, "The 'user-invocable' attribute must be 'true' or 'false'.")), attribute.value.range, MarkerSeverity.Error));
902
902
  return;
903
903
  }
904
904
  }
@@ -909,7 +909,7 @@ let PromptValidator = class PromptValidator {
909
909
  }
910
910
  if (!isTrueOrFalse(attribute.value)) {
911
911
  report(toMarker(( localize(
912
- 8101,
912
+ 8254,
913
913
  "The 'disable-model-invocation' attribute must be 'true' or 'false'."
914
914
  )), attribute.value.range, MarkerSeverity.Error));
915
915
  return;
@@ -921,7 +921,7 @@ let PromptValidator = class PromptValidator {
921
921
  return;
922
922
  }
923
923
  if (attribute.value.type !== "sequence") {
924
- report(toMarker(( localize(8102, "The 'agents' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
924
+ report(toMarker(( localize(8255, "The 'agents' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
925
925
  return;
926
926
  }
927
927
  const agents = (await this.promptsService.getCustomAgents(CancellationToken.None)).filter(a => a.enabled);
@@ -930,12 +930,12 @@ let PromptValidator = class PromptValidator {
930
930
  const agentNames = [];
931
931
  for (const item of attribute.value.items) {
932
932
  if (item.type !== "scalar") {
933
- report(toMarker(( localize(8103, "Each agent name in the 'agents' attribute must be a string.")), item.range, MarkerSeverity.Error));
933
+ report(toMarker(( localize(8256, "Each agent name in the 'agents' attribute must be a string.")), item.range, MarkerSeverity.Error));
934
934
  } else if (item.value) {
935
935
  agentNames.push(item.value);
936
936
  if (item.value !== "*" && !( availableAgentNames.has(item.value))) {
937
937
  report(toMarker(( localize(
938
- 8104,
938
+ 8257,
939
939
  "Unknown agent '{0}' will be ignored. Available agents: {1}.",
940
940
  item.value,
941
941
  Array.from(availableAgentNames).join(", ")
@@ -947,7 +947,7 @@ let PromptValidator = class PromptValidator {
947
947
  const tools = header.tools;
948
948
  if (tools && !tools.includes(SpecedToolAliases.agent)) {
949
949
  report(toMarker(( localize(
950
- 8105,
950
+ 8258,
951
951
  "When 'agents' and 'tools' are specified, the 'agent' tool must be included in the 'tools' attribute."
952
952
  )), attribute.value.range, MarkerSeverity.Warning));
953
953
  }
@@ -959,20 +959,20 @@ let PromptValidator = class PromptValidator {
959
959
  return;
960
960
  }
961
961
  if (attribute.value.type !== "map") {
962
- report(toMarker(( localize(8106, "The 'github' attribute must be an object.")), attribute.value.range, MarkerSeverity.Error));
962
+ report(toMarker(( localize(8259, "The 'github' attribute must be an object.")), attribute.value.range, MarkerSeverity.Error));
963
963
  return;
964
964
  }
965
965
  for (const prop of attribute.value.properties) {
966
966
  if (prop.key.value !== "permissions") {
967
967
  report(toMarker(( localize(
968
- 8107,
968
+ 8260,
969
969
  "Unknown property '{0}' in 'github' object. Supported: 'permissions'.",
970
970
  prop.key.value
971
971
  )), prop.key.range, MarkerSeverity.Warning));
972
972
  continue;
973
973
  }
974
974
  if (prop.value.type !== "map") {
975
- report(toMarker(( localize(8108, "The 'permissions' property must be an object.")), prop.value.range, MarkerSeverity.Error));
975
+ report(toMarker(( localize(8261, "The 'permissions' property must be an object.")), prop.value.range, MarkerSeverity.Error));
976
976
  continue;
977
977
  }
978
978
  for (const permProp of prop.value.properties) {
@@ -981,7 +981,7 @@ let PromptValidator = class PromptValidator {
981
981
  if (!scopeInfo) {
982
982
  const validScopes = ( Object.keys(githubPermissionScopes)).sort().join(", ");
983
983
  report(toMarker(( localize(
984
- 8109,
984
+ 8262,
985
985
  "Unknown permission scope '{0}'. Valid scopes: {1}.",
986
986
  scope,
987
987
  validScopes
@@ -989,13 +989,13 @@ let PromptValidator = class PromptValidator {
989
989
  continue;
990
990
  }
991
991
  if (permProp.value.type !== "scalar") {
992
- report(toMarker(( localize(8110, "The permission value for '{0}' must be a string.", scope)), permProp.value.range, MarkerSeverity.Error));
992
+ report(toMarker(( localize(8263, "The permission value for '{0}' must be a string.", scope)), permProp.value.range, MarkerSeverity.Error));
993
993
  continue;
994
994
  }
995
995
  const value = permProp.value.value;
996
996
  if (!scopeInfo.allowedValues.includes(value)) {
997
997
  report(toMarker(( localize(
998
- 8111,
998
+ 8264,
999
999
  "Invalid permission value '{0}' for scope '{1}'. Allowed values: {2}.",
1000
1000
  value,
1001
1001
  scope,
@@ -1010,39 +1010,39 @@ PromptValidator = ( __decorate([( __param(0, ILanguageModelsService)), ( __param
1010
1010
  const githubPermissionScopes = {
1011
1011
  "actions": {
1012
1012
  allowedValues: ["read", "write", "none"],
1013
- description: ( localize(8112, "Access to GitHub Actions workflows and runs"))
1013
+ description: ( localize(8265, "Access to GitHub Actions workflows and runs"))
1014
1014
  },
1015
1015
  "checks": {
1016
1016
  allowedValues: ["read", "none"],
1017
- description: ( localize(8113, "Access to check runs and statuses"))
1017
+ description: ( localize(8266, "Access to check runs and statuses"))
1018
1018
  },
1019
1019
  "contents": {
1020
1020
  allowedValues: ["read", "write", "none"],
1021
- description: ( localize(8114, "Access to repository contents (files, commits, branches)"))
1021
+ description: ( localize(8267, "Access to repository contents (files, commits, branches)"))
1022
1022
  },
1023
1023
  "discussions": {
1024
1024
  allowedValues: ["read", "write", "none"],
1025
- description: ( localize(8115, "Access to discussions"))
1025
+ description: ( localize(8268, "Access to discussions"))
1026
1026
  },
1027
1027
  "issues": {
1028
1028
  allowedValues: ["read", "write", "none"],
1029
- description: ( localize(8116, "Access to issues (read, create, update, comment)"))
1029
+ description: ( localize(8269, "Access to issues (read, create, update, comment)"))
1030
1030
  },
1031
1031
  "metadata": {
1032
1032
  allowedValues: ["read"],
1033
- description: ( localize(8117, "Repository metadata (always read-only)"))
1033
+ description: ( localize(8270, "Repository metadata (always read-only)"))
1034
1034
  },
1035
1035
  "pull-requests": {
1036
1036
  allowedValues: ["read", "write", "none"],
1037
- description: ( localize(8118, "Access to pull requests (read, create, update, review)"))
1037
+ description: ( localize(8271, "Access to pull requests (read, create, update, review)"))
1038
1038
  },
1039
1039
  "security-events": {
1040
1040
  allowedValues: ["read", "none"],
1041
- description: ( localize(8119, "Access to security-related events"))
1041
+ description: ( localize(8272, "Access to security-related events"))
1042
1042
  },
1043
1043
  "workflows": {
1044
1044
  allowedValues: ["write", "none"],
1045
- description: ( localize(8120, "Access to modify workflow files"))
1045
+ description: ( localize(8273, "Access to modify workflow files"))
1046
1046
  }
1047
1047
  };
1048
1048
  function isTrueOrFalse(value) {
@@ -1130,103 +1130,103 @@ function isNonRecommendedAttribute(attributeName) {
1130
1130
  }
1131
1131
  const knownClaudeTools = [{
1132
1132
  name: "Bash",
1133
- description: ( localize(8121, "Execute shell commands")),
1133
+ description: ( localize(8274, "Execute shell commands")),
1134
1134
  toolEquivalent: [SpecedToolAliases.execute]
1135
1135
  }, {
1136
1136
  name: "Edit",
1137
- description: ( localize(8122, "Make targeted file edits")),
1137
+ description: ( localize(8275, "Make targeted file edits")),
1138
1138
  toolEquivalent: ["edit/editNotebook", "edit/editFiles"]
1139
1139
  }, {
1140
1140
  name: "Glob",
1141
- description: ( localize(8123, "Find files by pattern")),
1141
+ description: ( localize(8276, "Find files by pattern")),
1142
1142
  toolEquivalent: ["search/fileSearch"]
1143
1143
  }, {
1144
1144
  name: "Grep",
1145
- description: ( localize(8124, "Search file contents with regex")),
1145
+ description: ( localize(8277, "Search file contents with regex")),
1146
1146
  toolEquivalent: ["search/textSearch"]
1147
1147
  }, {
1148
1148
  name: "Read",
1149
- description: ( localize(8125, "Read file contents")),
1149
+ description: ( localize(8278, "Read file contents")),
1150
1150
  toolEquivalent: ["read/readFile", "read/getNotebookSummary"]
1151
1151
  }, {
1152
1152
  name: "Write",
1153
- description: ( localize(8126, "Create/overwrite files")),
1153
+ description: ( localize(8279, "Create/overwrite files")),
1154
1154
  toolEquivalent: ["edit/createDirectory", "edit/createFile", "edit/createJupyterNotebook"]
1155
1155
  }, {
1156
1156
  name: "WebFetch",
1157
- description: ( localize(8127, "Fetch URL content")),
1157
+ description: ( localize(8280, "Fetch URL content")),
1158
1158
  toolEquivalent: [SpecedToolAliases.web]
1159
1159
  }, {
1160
1160
  name: "WebSearch",
1161
- description: ( localize(8128, "Perform web searches")),
1161
+ description: ( localize(8281, "Perform web searches")),
1162
1162
  toolEquivalent: [SpecedToolAliases.web]
1163
1163
  }, {
1164
1164
  name: "Task",
1165
- description: ( localize(8129, "Run subagents for complex tasks")),
1165
+ description: ( localize(8282, "Run subagents for complex tasks")),
1166
1166
  toolEquivalent: [SpecedToolAliases.agent]
1167
1167
  }, {
1168
1168
  name: "Skill",
1169
- description: ( localize(8130, "Execute skills")),
1169
+ description: ( localize(8283, "Execute skills")),
1170
1170
  toolEquivalent: []
1171
1171
  }, {
1172
1172
  name: "LSP",
1173
- description: ( localize(8131, "Code intelligence (requires plugin)")),
1173
+ description: ( localize(8284, "Code intelligence (requires plugin)")),
1174
1174
  toolEquivalent: []
1175
1175
  }, {
1176
1176
  name: "NotebookEdit",
1177
- description: ( localize(8132, "Modify Jupyter notebooks")),
1177
+ description: ( localize(8285, "Modify Jupyter notebooks")),
1178
1178
  toolEquivalent: ["edit/editNotebook"]
1179
1179
  }, {
1180
1180
  name: "AskUserQuestion",
1181
- description: ( localize(8133, "Ask multiple-choice questions")),
1181
+ description: ( localize(8286, "Ask multiple-choice questions")),
1182
1182
  toolEquivalent: ["vscode/askQuestions"]
1183
1183
  }, {
1184
1184
  name: "MCPSearch",
1185
- description: ( localize(8134, "Searches for MCP tools when tool search is enabled")),
1185
+ description: ( localize(8287, "Searches for MCP tools when tool search is enabled")),
1186
1186
  toolEquivalent: []
1187
1187
  }];
1188
1188
  const knownClaudeModels = [{
1189
1189
  name: "sonnet",
1190
- description: ( localize(8135, "Latest Claude Sonnet")),
1190
+ description: ( localize(8288, "Latest Claude Sonnet")),
1191
1191
  modelEquivalent: "Claude Sonnet 4.5 (copilot)"
1192
1192
  }, {
1193
1193
  name: "opus",
1194
- description: ( localize(8136, "Latest Claude Opus")),
1194
+ description: ( localize(8289, "Latest Claude Opus")),
1195
1195
  modelEquivalent: "Claude Opus 4.6 (copilot)"
1196
1196
  }, {
1197
1197
  name: "haiku",
1198
- description: ( localize(8137, "Latest Claude Haiku, fast for simple tasks")),
1198
+ description: ( localize(8290, "Latest Claude Haiku, fast for simple tasks")),
1199
1199
  modelEquivalent: "Claude Haiku 4.5 (copilot)"
1200
1200
  }, {
1201
1201
  name: "inherit",
1202
- description: ( localize(8138, "Inherit model from parent agent or prompt")),
1202
+ description: ( localize(8291, "Inherit model from parent agent or prompt")),
1203
1203
  modelEquivalent: undefined
1204
1204
  }];
1205
1205
  const claudeAgentAttributes = {
1206
1206
  "name": {
1207
1207
  type: "scalar",
1208
- description: ( localize(8139, "Unique identifier using lowercase letters and hyphens (required)"))
1208
+ description: ( localize(8292, "Unique identifier using lowercase letters and hyphens (required)"))
1209
1209
  },
1210
1210
  "description": {
1211
1211
  type: "scalar",
1212
- description: ( localize(8140, "When to delegate to this subagent (required)"))
1212
+ description: ( localize(8293, "When to delegate to this subagent (required)"))
1213
1213
  },
1214
1214
  "tools": {
1215
1215
  type: "sequence",
1216
- description: ( localize(8141, "Array of tools the subagent can use. Inherits all tools if omitted")),
1216
+ description: ( localize(8294, "Array of tools the subagent can use. Inherits all tools if omitted")),
1217
1217
  defaults: ["Read, Edit, Bash"],
1218
1218
  items: knownClaudeTools
1219
1219
  },
1220
1220
  "disallowedTools": {
1221
1221
  type: "sequence",
1222
- description: ( localize(8142, "Tools to deny, removed from inherited or specified list")),
1222
+ description: ( localize(8295, "Tools to deny, removed from inherited or specified list")),
1223
1223
  defaults: ["Write, Edit, Bash"],
1224
1224
  items: knownClaudeTools
1225
1225
  },
1226
1226
  "model": {
1227
1227
  type: "scalar",
1228
1228
  description: ( localize(
1229
- 8143,
1229
+ 8296,
1230
1230
  "Model to use: sonnet, opus, haiku, or inherit. Defaults to inherit."
1231
1231
  )),
1232
1232
  defaults: ["sonnet", "opus", "haiku", "inherit"],
@@ -1235,77 +1235,77 @@ const claudeAgentAttributes = {
1235
1235
  "permissionMode": {
1236
1236
  type: "scalar",
1237
1237
  description: ( localize(
1238
- 8144,
1238
+ 8297,
1239
1239
  "Permission mode: default, acceptEdits, dontAsk, bypassPermissions, or plan."
1240
1240
  )),
1241
1241
  defaults: ["default", "acceptEdits", "dontAsk", "bypassPermissions", "plan"],
1242
1242
  enums: [{
1243
1243
  name: "default",
1244
1244
  description: ( localize(
1245
- 8145,
1245
+ 8298,
1246
1246
  "Standard behavior: prompts for permission on first use of each tool."
1247
1247
  ))
1248
1248
  }, {
1249
1249
  name: "acceptEdits",
1250
- description: ( localize(8146, "Automatically accepts file edit permissions for the session."))
1250
+ description: ( localize(8299, "Automatically accepts file edit permissions for the session."))
1251
1251
  }, {
1252
1252
  name: "plan",
1253
1253
  description: ( localize(
1254
- 8147,
1254
+ 8300,
1255
1255
  "Plan Mode: Claude can analyze but not modify files or execute commands."
1256
1256
  ))
1257
1257
  }, {
1258
1258
  name: "delegate",
1259
1259
  description: ( localize(
1260
- 8148,
1260
+ 8301,
1261
1261
  "Coordination-only mode for agent team leads. Only available when an agent team is active."
1262
1262
  ))
1263
1263
  }, {
1264
1264
  name: "dontAsk",
1265
1265
  description: ( localize(
1266
- 8149,
1266
+ 8302,
1267
1267
  "Auto-denies tools unless pre-approved via /permissions or permissions.allow rules."
1268
1268
  ))
1269
1269
  }, {
1270
1270
  name: "bypassPermissions",
1271
1271
  description: ( localize(
1272
- 8150,
1272
+ 8303,
1273
1273
  "Skips all permission prompts (requires safe environment like containers)."
1274
1274
  ))
1275
1275
  }]
1276
1276
  },
1277
1277
  "skills": {
1278
1278
  type: "sequence",
1279
- description: ( localize(8151, "Skills to load into the subagent's context at startup."))
1279
+ description: ( localize(8304, "Skills to load into the subagent's context at startup."))
1280
1280
  },
1281
1281
  "mcpServers": {
1282
1282
  type: "sequence",
1283
- description: ( localize(8152, "MCP servers available to this subagent."))
1283
+ description: ( localize(8305, "MCP servers available to this subagent."))
1284
1284
  },
1285
1285
  "hooks": {
1286
1286
  type: "object",
1287
- description: ( localize(8153, "Lifecycle hooks scoped to this subagent."))
1287
+ description: ( localize(8306, "Lifecycle hooks scoped to this subagent."))
1288
1288
  },
1289
1289
  "memory": {
1290
1290
  type: "scalar",
1291
1291
  description: ( localize(
1292
- 8154,
1292
+ 8307,
1293
1293
  "Persistent memory scope: user, project, or local. Enables cross-session learning."
1294
1294
  )),
1295
1295
  defaults: ["user", "project", "local"],
1296
1296
  enums: [{
1297
1297
  name: "user",
1298
- description: ( localize(8155, "Remember learnings across all projects."))
1298
+ description: ( localize(8308, "Remember learnings across all projects."))
1299
1299
  }, {
1300
1300
  name: "project",
1301
1301
  description: ( localize(
1302
- 8156,
1302
+ 8309,
1303
1303
  "The subagent's knowledge is project-specific and shareable via version control."
1304
1304
  ))
1305
1305
  }, {
1306
1306
  name: "local",
1307
1307
  description: ( localize(
1308
- 8157,
1308
+ 8310,
1309
1309
  "The subagent's knowledge is project-specific but should not be checked into version control."
1310
1310
  ))
1311
1311
  }]
@@ -1315,14 +1315,14 @@ const claudeRulesAttributes = {
1315
1315
  "description": {
1316
1316
  type: "scalar",
1317
1317
  description: ( localize(
1318
- 8158,
1318
+ 8311,
1319
1319
  "A description of what this rule covers, used to provide context about when it applies."
1320
1320
  ))
1321
1321
  },
1322
1322
  "paths": {
1323
1323
  type: "sequence",
1324
1324
  description: ( localize(
1325
- 8159,
1325
+ 8312,
1326
1326
  "Array of glob patterns that describe for which files the rule applies. Based on these patterns, the file is automatically included in the prompt when the context contains a file that matches.\nExample: `['src/**/*.ts', 'test/**']`"
1327
1327
  ))
1328
1328
  }