@codingame/monaco-vscode-katex-common 31.0.1 → 32.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 (220) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +15 -3
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +6 -5
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +5 -1
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +45 -14
  6. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +15 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +15 -10
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +51 -54
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +3 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +45 -23
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +13 -7
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +5 -3
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +4 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +46 -32
  21. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +8 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +155 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +20 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +4 -1
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +37 -14
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionPickerActionItem.css +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +28 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +250 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +14 -11
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +7 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +7 -3
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +12 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +51 -20
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +6 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +56 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +3 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +4 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +68 -10
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +58 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +653 -75
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +28 -10
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +91 -54
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +7 -5
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +53 -51
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -11
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +4 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +42 -22
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +6 -2
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +93 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +5 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +169 -27
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +13 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +29 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +60 -15
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +13 -6
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +15 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +6 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +125 -26
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +29 -23
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +14 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +119 -10
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +1 -1
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +77 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +38 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +125 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +132 -59
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +16 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +156 -67
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +55 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +93 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +21 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +133 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +53 -8
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +288 -125
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +23 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +699 -145
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +12 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +12 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.d.ts +62 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +120 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +191 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatPhoneInputPresenter.css +22 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +9 -25
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +4 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +20 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +89 -108
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +521 -9
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +19 -19
  136. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
  137. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.d.ts +2 -0
  138. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.js +6 -0
  139. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +27 -0
  140. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +82 -0
  141. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +3 -0
  142. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +44 -17
  143. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -3
  144. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +3 -46
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.d.ts → inlineChatAffordanceWidget.d.ts} +1 -1
  146. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.js → inlineChatAffordanceWidget.js} +6 -6
  147. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -18
  148. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +19 -400
  149. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +4 -9
  150. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +1 -1
  151. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +5 -19
  152. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +47 -133
  153. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +3 -1
  154. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +103 -25
  155. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +29 -0
  156. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +3 -32
  157. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -92
  158. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  159. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  160. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  161. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  163. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  164. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  165. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  166. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  167. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  169. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +7 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +99 -32
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +13 -1
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +76 -14
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -3
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +9 -1
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +89 -28
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +1 -1
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -1
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +11 -7
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +3 -1
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +7 -3
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  184. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +8 -0
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +11 -2
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +20 -0
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +59 -4
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -1
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +24 -3
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +47 -0
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +111 -30
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +60 -3
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +455 -171
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +33 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +82 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +31 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +49 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +18 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +302 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +118 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +34 -4
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +233 -48
  206. package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +0 -16
  207. package/vscode/src/vs/platform/actions/browser/actionbar.js +0 -22
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -539
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -29
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -386
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +0 -101
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +0 -509
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -130
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +0 -276
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -45
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +0 -93
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +0 -39
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +0 -617
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +0 -231
@@ -1,6 +1,7 @@
1
1
  import type { QueryCapture } from "@codingame/monaco-vscode-api/external/@vscode/tree-sitter-wasm/wasm/tree-sitter";
2
2
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
3
  import { ITreeSitterLibraryService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/treeSitter/treeSitterLibraryService.service";
4
+ import type { ITerminalSandboxCommand } from "../../../../../platform/sandbox/common/terminalSandboxService.js";
4
5
  export declare enum TreeSitterCommandParserLanguage {
5
6
  Bash = "bash",
6
7
  PowerShell = "powershell"
@@ -13,6 +14,18 @@ export declare class TreeSitterCommandParser extends Disposable {
13
14
  constructor(_treeSitterLibraryService: ITreeSitterLibraryService);
14
15
  extractSubCommands(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<string[]>;
15
16
  extractPwshDoubleAmpersandChainOperators(commandLine: string): Promise<QueryCapture[]>;
17
+ /**
18
+ * Extracts executable command invocations from the command line and returns
19
+ * normalized command details for sandbox allow-listing.
20
+ *
21
+ * Example: `PATH=/bin /usr/bin/git commit -S -m "test" && npm install`
22
+ * returns:
23
+ * `[
24
+ * { keyword: 'git', args: ['commit', '-S', '-m', 'test'] },
25
+ * { keyword: 'npm', args: ['install'] }
26
+ * ]`.
27
+ */
28
+ extractCommands(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<ITerminalSandboxCommand[]>;
16
29
  getFileWrites(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<string[]>;
17
30
  /**
18
31
  * Extracts file targets from commands that perform file writes beyond shell redirections.
@@ -21,5 +34,25 @@ export declare class TreeSitterCommandParser extends Disposable {
21
34
  */
22
35
  getCommandFileWrites(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<string[]>;
23
36
  private _queryTree;
37
+ /**
38
+ * Converts a command token to the stable keyword used by sandbox allow-list
39
+ * rules by stripping quotes, path segments, and common executable suffixes.
40
+ */
41
+ private _normalizeCommandKeyword;
42
+ /**
43
+ * Parses a single tree-sitter command node into command details, ignoring
44
+ * leading environment variable assignments such as `NODE_ENV=test npm run build`.
45
+ */
46
+ private _parseCommand;
47
+ /**
48
+ * Splits enough shell syntax for sandbox allow-listing: whitespace separates
49
+ * tokens, quotes are removed, and backslash escapes preserve the escaped char.
50
+ */
51
+ private _splitCommandTokens;
52
+ /**
53
+ * Returns true for simple shell-style environment variable assignments that
54
+ * can prefix a command invocation.
55
+ */
56
+ private _isVariableAssignment;
24
57
  private _doQuery;
25
58
  }
@@ -4,6 +4,7 @@ import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/co
4
4
  import { BugIndicatingError, ErrorNoTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
5
5
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
6
6
  import { Disposable, MutableDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
+ import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
7
8
  import { ITreeSitterLibraryService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/treeSitter/treeSitterLibraryService.service';
8
9
  import { SedFileWriteParser } from './commandParsers/sedFileWriteParser.js';
9
10
 
@@ -45,6 +46,16 @@ let TreeSitterCommandParser = class TreeSitterCommandParser extends Disposable {
45
46
  );
46
47
  return captures;
47
48
  }
49
+ async extractCommands(languageId, commandLine) {
50
+ const commands = [];
51
+ for (const commandText of await this.extractSubCommands(languageId, commandLine)) {
52
+ const command = this._parseCommand(commandText);
53
+ if (command) {
54
+ commands.push(command);
55
+ }
56
+ }
57
+ return commands;
58
+ }
48
59
  async getFileWrites(languageId, commandLine) {
49
60
  let query;
50
61
  switch (languageId) {
@@ -85,6 +96,77 @@ let TreeSitterCommandParser = class TreeSitterCommandParser extends Disposable {
85
96
  } = await this._doQuery(languageId, commandLine, querySource);
86
97
  return query.captures(tree.rootNode);
87
98
  }
99
+ _normalizeCommandKeyword(token) {
100
+ const unquoted = token.replace(/^['"]|['"]$/g, "");
101
+ if (!unquoted) {
102
+ return undefined;
103
+ }
104
+ const pathBase = unquoted.includes("\\") ? win32.basename(unquoted) : posix.basename(unquoted);
105
+ const normalized = pathBase.toLowerCase().replace(/\.(?:exe|cmd|bat|ps1)$/i, "");
106
+ return normalized || undefined;
107
+ }
108
+ _parseCommand(commandText) {
109
+ const tokens = this._splitCommandTokens(commandText);
110
+ let commandIndex = 0;
111
+ while (commandIndex < tokens.length && this._isVariableAssignment(tokens[commandIndex])) {
112
+ commandIndex++;
113
+ }
114
+ const keyword = this._normalizeCommandKeyword(tokens[commandIndex] ?? "");
115
+ if (!keyword) {
116
+ return undefined;
117
+ }
118
+ return {
119
+ keyword,
120
+ args: tokens.slice(commandIndex + 1)
121
+ };
122
+ }
123
+ _splitCommandTokens(commandText) {
124
+ const tokens = [];
125
+ let current = "";
126
+ let quote;
127
+ let escaping = false;
128
+ for (const char of commandText.trim()) {
129
+ if (escaping) {
130
+ current += char;
131
+ escaping = false;
132
+ continue;
133
+ }
134
+ if (char === "\\" && quote !== "'") {
135
+ escaping = true;
136
+ continue;
137
+ }
138
+ if (quote) {
139
+ if (char === quote) {
140
+ quote = undefined;
141
+ } else {
142
+ current += char;
143
+ }
144
+ continue;
145
+ }
146
+ if (char === "'" || char === "\"") {
147
+ quote = char;
148
+ continue;
149
+ }
150
+ if (/\s/.test(char)) {
151
+ if (current) {
152
+ tokens.push(current);
153
+ current = "";
154
+ }
155
+ continue;
156
+ }
157
+ current += char;
158
+ }
159
+ if (escaping) {
160
+ current += "\\";
161
+ }
162
+ if (current) {
163
+ tokens.push(current);
164
+ }
165
+ return tokens;
166
+ }
167
+ _isVariableAssignment(token) {
168
+ return /^[A-Za-z_][A-Za-z0-9_]*=.*/.test(token);
169
+ }
88
170
  async _doQuery(languageId, commandLine, querySource) {
89
171
  const language = await this._treeSitterLibraryService.getLanguagePromise(languageId);
90
172
  if (!language) {
@@ -0,0 +1,31 @@
1
+ import type { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
2
+ import type { ITerminalSandboxCommand } from "../../../../../platform/sandbox/common/terminalSandboxService.js";
3
+ export interface ITerminalSandboxCommandRuleContext {
4
+ readonly os: OperatingSystem;
5
+ }
6
+ export interface ITerminalSandboxCommandRule<T> {
7
+ readonly keywords: readonly string[];
8
+ readonly value: T;
9
+ readonly subcommands?: readonly string[];
10
+ readonly optionsWithValue?: ReadonlySet<string>;
11
+ /** Context-wide guard for rules, such as OS-specific sandbox capabilities. */
12
+ readonly condition?: (context: ITerminalSandboxCommandRuleContext) => boolean;
13
+ /** Command-specific guard for argument-sensitive rules. */
14
+ readonly when?: (command: ITerminalSandboxCommand) => boolean;
15
+ }
16
+ /**
17
+ * Git global options that consume the following argument. These need to be
18
+ * skipped when finding the subcommand so `git -C repo commit` matches `commit`
19
+ * instead of treating `repo` as the subcommand.
20
+ */
21
+ export declare const gitGlobalOptionsWithValue: Set<string>;
22
+ export declare function matchesTerminalSandboxCommandRule<T>(command: ITerminalSandboxCommand, rule: ITerminalSandboxCommandRule<T>, context?: ITerminalSandboxCommandRuleContext): boolean;
23
+ /**
24
+ * Returns the first non-option argument, treating it as the command's subcommand.
25
+ * Options are skipped, and options listed in `optionsWithValue` also skip the
26
+ * following argument so global option values are not mistaken for subcommands.
27
+ *
28
+ * For example, with `-C` in `optionsWithValue`, `git -C repo commit` returns
29
+ * `commit` instead of `repo`.
30
+ */
31
+ export declare function getCommandSubcommand(args: readonly string[], optionsWithValue?: ReadonlySet<string>): string | undefined;
@@ -0,0 +1,49 @@
1
+
2
+
3
+ const gitGlobalOptionsWithValue = ( new Set([
4
+ "-C",
5
+ "-c",
6
+ "--config-env",
7
+ "--exec-path",
8
+ "--git-dir",
9
+ "--html-path",
10
+ "--info-path",
11
+ "--man-path",
12
+ "--namespace",
13
+ "--super-prefix",
14
+ "--work-tree"
15
+ ]));
16
+ function matchesTerminalSandboxCommandRule(command, rule, context) {
17
+ if (!rule.keywords.includes(command.keyword.toLowerCase())) {
18
+ return false;
19
+ }
20
+ if (rule.condition && (!context || !rule.condition(context))) {
21
+ return false;
22
+ }
23
+ if (rule.subcommands) {
24
+ const subcommand = getCommandSubcommand(command.args, rule.optionsWithValue);
25
+ if (subcommand === undefined || !rule.subcommands.includes(subcommand)) {
26
+ return false;
27
+ }
28
+ }
29
+ return rule.when?.(command) ?? true;
30
+ }
31
+ function getCommandSubcommand(args, optionsWithValue) {
32
+ for (let i = 0; i < args.length; i++) {
33
+ const arg = args[i];
34
+ if (arg === "--") {
35
+ return undefined;
36
+ }
37
+ if (arg.startsWith("-")) {
38
+ const option = arg.includes("=") ? arg.substring(0, arg.indexOf("=")) : arg;
39
+ if (!arg.includes("=") && optionsWithValue?.has(option)) {
40
+ i++;
41
+ }
42
+ continue;
43
+ }
44
+ return arg.toLowerCase();
45
+ }
46
+ return undefined;
47
+ }
48
+
49
+ export { getCommandSubcommand, gitGlobalOptionsWithValue, matchesTerminalSandboxCommandRule };
@@ -0,0 +1,18 @@
1
+ import { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
2
+ import type { ITerminalSandboxCommand } from "../../../../../platform/sandbox/common/terminalSandboxService.js";
3
+ export declare enum TerminalSandboxReadAllowListOperation {
4
+ Git = "git",
5
+ Node = "node",
6
+ Rust = "rust",
7
+ Go = "go",
8
+ Python = "python",
9
+ Java = "java",
10
+ Dotnet = "dotnet",
11
+ Nuget = "nuget",
12
+ Msbuild = "msbuild",
13
+ Ruby = "ruby",
14
+ NativeBuild = "nativeBuild",
15
+ Conan = "conan",
16
+ GnuPG = "gnupg"
17
+ }
18
+ export declare function getTerminalSandboxReadAllowListForCommands(os: OperatingSystem, commandKeywords: readonly string[], commandDetails?: readonly ITerminalSandboxCommand[]): readonly string[];
@@ -0,0 +1,302 @@
1
+
2
+ import { OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
3
+ import { gitGlobalOptionsWithValue, matchesTerminalSandboxCommandRule } from './terminalSandboxCommandRules.js';
4
+
5
+ var TerminalSandboxReadAllowListOperation;
6
+ (function(TerminalSandboxReadAllowListOperation) {
7
+ TerminalSandboxReadAllowListOperation["Git"] = "git";
8
+ TerminalSandboxReadAllowListOperation["Node"] = "node";
9
+ TerminalSandboxReadAllowListOperation["Rust"] = "rust";
10
+ TerminalSandboxReadAllowListOperation["Go"] = "go";
11
+ TerminalSandboxReadAllowListOperation["Python"] = "python";
12
+ TerminalSandboxReadAllowListOperation["Java"] = "java";
13
+ TerminalSandboxReadAllowListOperation["Dotnet"] = "dotnet";
14
+ TerminalSandboxReadAllowListOperation["Nuget"] = "nuget";
15
+ TerminalSandboxReadAllowListOperation["Msbuild"] = "msbuild";
16
+ TerminalSandboxReadAllowListOperation["Ruby"] = "ruby";
17
+ TerminalSandboxReadAllowListOperation["NativeBuild"] = "nativeBuild";
18
+ TerminalSandboxReadAllowListOperation["Conan"] = "conan";
19
+ TerminalSandboxReadAllowListOperation["GnuPG"] = "gnupg";
20
+ })(
21
+ TerminalSandboxReadAllowListOperation || (TerminalSandboxReadAllowListOperation = {})
22
+ );
23
+ const terminalSandboxReadAllowListKeywordMap = ( new Map([
24
+ ["git", TerminalSandboxReadAllowListOperation.Git],
25
+ ["gh", TerminalSandboxReadAllowListOperation.Git],
26
+ ["node", TerminalSandboxReadAllowListOperation.Node],
27
+ ["npm", TerminalSandboxReadAllowListOperation.Node],
28
+ ["npx", TerminalSandboxReadAllowListOperation.Node],
29
+ ["pnpm", TerminalSandboxReadAllowListOperation.Node],
30
+ ["yarn", TerminalSandboxReadAllowListOperation.Node],
31
+ ["corepack", TerminalSandboxReadAllowListOperation.Node],
32
+ ["bun", TerminalSandboxReadAllowListOperation.Node],
33
+ ["deno", TerminalSandboxReadAllowListOperation.Node],
34
+ ["nvm", TerminalSandboxReadAllowListOperation.Node],
35
+ ["volta", TerminalSandboxReadAllowListOperation.Node],
36
+ ["fnm", TerminalSandboxReadAllowListOperation.Node],
37
+ ["asdf", TerminalSandboxReadAllowListOperation.Node],
38
+ ["mise", TerminalSandboxReadAllowListOperation.Node],
39
+ ["cargo", TerminalSandboxReadAllowListOperation.Rust],
40
+ ["rustc", TerminalSandboxReadAllowListOperation.Rust],
41
+ ["rustup", TerminalSandboxReadAllowListOperation.Rust],
42
+ ["go", TerminalSandboxReadAllowListOperation.Go],
43
+ ["gofmt", TerminalSandboxReadAllowListOperation.Go],
44
+ ["python", TerminalSandboxReadAllowListOperation.Python],
45
+ ["python3", TerminalSandboxReadAllowListOperation.Python],
46
+ ["pip", TerminalSandboxReadAllowListOperation.Python],
47
+ ["pip3", TerminalSandboxReadAllowListOperation.Python],
48
+ ["poetry", TerminalSandboxReadAllowListOperation.Python],
49
+ ["uv", TerminalSandboxReadAllowListOperation.Python],
50
+ ["pipx", TerminalSandboxReadAllowListOperation.Python],
51
+ ["pyenv", TerminalSandboxReadAllowListOperation.Python],
52
+ ["java", TerminalSandboxReadAllowListOperation.Java],
53
+ ["javac", TerminalSandboxReadAllowListOperation.Java],
54
+ ["jar", TerminalSandboxReadAllowListOperation.Java],
55
+ ["mvn", TerminalSandboxReadAllowListOperation.Java],
56
+ ["mvnw", TerminalSandboxReadAllowListOperation.Java],
57
+ ["gradle", TerminalSandboxReadAllowListOperation.Java],
58
+ ["gradlew", TerminalSandboxReadAllowListOperation.Java],
59
+ ["sdk", TerminalSandboxReadAllowListOperation.Java],
60
+ ["dotnet", TerminalSandboxReadAllowListOperation.Dotnet],
61
+ ["nuget", TerminalSandboxReadAllowListOperation.Nuget],
62
+ ["msbuild", TerminalSandboxReadAllowListOperation.Msbuild],
63
+ ["ruby", TerminalSandboxReadAllowListOperation.Ruby],
64
+ ["gem", TerminalSandboxReadAllowListOperation.Ruby],
65
+ ["bundle", TerminalSandboxReadAllowListOperation.Ruby],
66
+ ["bundler", TerminalSandboxReadAllowListOperation.Ruby],
67
+ ["rake", TerminalSandboxReadAllowListOperation.Ruby],
68
+ ["rbenv", TerminalSandboxReadAllowListOperation.Ruby],
69
+ ["rvm", TerminalSandboxReadAllowListOperation.Ruby],
70
+ ["ccache", TerminalSandboxReadAllowListOperation.NativeBuild],
71
+ ["sccache", TerminalSandboxReadAllowListOperation.NativeBuild],
72
+ ["cmake", TerminalSandboxReadAllowListOperation.NativeBuild],
73
+ ["conan", TerminalSandboxReadAllowListOperation.Conan]
74
+ ]));
75
+ function getTerminalSandboxReadAllowListForOperation(operation, os) {
76
+ switch (operation) {
77
+ case TerminalSandboxReadAllowListOperation.Git:
78
+ switch (os) {
79
+ case OperatingSystem.Macintosh:
80
+ case OperatingSystem.Linux:
81
+ default:
82
+ return [
83
+ "~/.gitconfig",
84
+ "~/.config/git/config",
85
+ "~/.gitignore",
86
+ "~/.gitignore_global",
87
+ "~/.config/git/ignore",
88
+ "~/.config/git/attributes"
89
+ ];
90
+ }
91
+ case TerminalSandboxReadAllowListOperation.Node:
92
+ switch (os) {
93
+ case OperatingSystem.Macintosh:
94
+ return [
95
+ "~/.npm",
96
+ "~/Library/Caches/node",
97
+ "~/Library/Caches/electron",
98
+ "~/Library/Caches/ms-playwright",
99
+ "~/Library/Caches/Yarn",
100
+ "~/Library/Caches/deno",
101
+ "~/Library/pnpm",
102
+ "~/.electron-gyp",
103
+ "~/.node-gyp",
104
+ "~/.yarn/berry",
105
+ "~/.local/share/pnpm",
106
+ "~/.pnpm-store",
107
+ "~/.bun/install/cache",
108
+ "~/.bun/bin",
109
+ "~/.deno",
110
+ "~/.nvm/versions",
111
+ "~/.nvm/alias",
112
+ "~/.volta/bin",
113
+ "~/.volta/tools",
114
+ "~/.fnm",
115
+ "~/.asdf/installs/nodejs",
116
+ "~/.asdf/shims",
117
+ "~/.local/share/mise/installs/node",
118
+ "~/.local/share/mise/shims"
119
+ ];
120
+ case OperatingSystem.Linux:
121
+ default:
122
+ return [
123
+ "~/.npm",
124
+ "~/.cache/node",
125
+ "~/.cache/node/corepack",
126
+ "~/.cache/electron",
127
+ "~/.cache/ms-playwright",
128
+ "~/.cache/yarn",
129
+ "~/.electron-gyp",
130
+ "~/.node-gyp",
131
+ "~/.yarn/berry",
132
+ "~/.local/share/pnpm",
133
+ "~/.pnpm-store",
134
+ "~/.bun/install/cache",
135
+ "~/.bun/bin",
136
+ "~/.deno",
137
+ "~/.cache/deno",
138
+ "~/.nvm/versions",
139
+ "~/.nvm/alias",
140
+ "~/.volta/bin",
141
+ "~/.volta/tools",
142
+ "~/.fnm",
143
+ "~/.asdf/installs/nodejs",
144
+ "~/.asdf/shims",
145
+ "~/.local/share/mise/installs/node",
146
+ "~/.local/share/mise/shims"
147
+ ];
148
+ }
149
+ case TerminalSandboxReadAllowListOperation.Rust:
150
+ switch (os) {
151
+ case OperatingSystem.Macintosh:
152
+ case OperatingSystem.Linux:
153
+ default:
154
+ return [
155
+ "~/.cargo/bin",
156
+ "~/.cargo/registry",
157
+ "~/.cargo/git",
158
+ "~/.rustup/toolchains"
159
+ ];
160
+ }
161
+ case TerminalSandboxReadAllowListOperation.Go:
162
+ switch (os) {
163
+ case OperatingSystem.Macintosh:
164
+ return ["~/go/pkg/mod", "~/go/bin", "~/Library/Caches/go-build"];
165
+ case OperatingSystem.Linux:
166
+ default:
167
+ return ["~/go/pkg/mod", "~/go/bin", "~/.cache/go-build"];
168
+ }
169
+ case TerminalSandboxReadAllowListOperation.Python:
170
+ switch (os) {
171
+ case OperatingSystem.Macintosh:
172
+ return [
173
+ "~/Library/Caches/pip",
174
+ "~/Library/Caches/pypoetry",
175
+ "~/Library/Caches/uv",
176
+ "~/.local/bin",
177
+ "~/.local/share/virtualenv",
178
+ "~/.local/share/pipx",
179
+ "~/.pyenv/versions",
180
+ "~/.pyenv/shims"
181
+ ];
182
+ case OperatingSystem.Linux:
183
+ default:
184
+ return [
185
+ "~/.cache/pip",
186
+ "~/.cache/pypoetry",
187
+ "~/.cache/uv",
188
+ "~/.local/bin",
189
+ "~/.local/share/virtualenv",
190
+ "~/.local/share/pipx",
191
+ "~/.pyenv/versions",
192
+ "~/.pyenv/shims"
193
+ ];
194
+ }
195
+ case TerminalSandboxReadAllowListOperation.Java:
196
+ switch (os) {
197
+ case OperatingSystem.Macintosh:
198
+ case OperatingSystem.Linux:
199
+ default:
200
+ return [
201
+ "~/.m2/repository",
202
+ "~/.gradle/caches",
203
+ "~/.gradle/wrapper/dists",
204
+ "~/.sdkman/candidates"
205
+ ];
206
+ }
207
+ case TerminalSandboxReadAllowListOperation.Dotnet:
208
+ switch (os) {
209
+ case OperatingSystem.Macintosh:
210
+ case OperatingSystem.Linux:
211
+ default:
212
+ return ["~/.dotnet"];
213
+ }
214
+ case TerminalSandboxReadAllowListOperation.Nuget:
215
+ switch (os) {
216
+ case OperatingSystem.Macintosh:
217
+ return ["~/.nuget/packages", "~/Library/Caches/NuGet/v3-cache"];
218
+ case OperatingSystem.Linux:
219
+ default:
220
+ return ["~/.nuget/packages", "~/.local/share/NuGet/v3-cache"];
221
+ }
222
+ case TerminalSandboxReadAllowListOperation.Msbuild:
223
+ switch (os) {
224
+ case OperatingSystem.Macintosh:
225
+ case OperatingSystem.Linux:
226
+ default:
227
+ return [];
228
+ }
229
+ case TerminalSandboxReadAllowListOperation.Ruby:
230
+ switch (os) {
231
+ case OperatingSystem.Macintosh:
232
+ return ["~/.gem", "~/.rbenv/versions", "~/.rbenv/shims", "~/.rvm/rubies"];
233
+ case OperatingSystem.Linux:
234
+ default:
235
+ return ["~/.gem", "~/.rbenv/versions", "~/.rbenv/shims", "~/.rvm/rubies"];
236
+ }
237
+ case TerminalSandboxReadAllowListOperation.NativeBuild:
238
+ switch (os) {
239
+ case OperatingSystem.Macintosh:
240
+ return ["~/Library/Caches/ccache", "~/Library/Caches/sccache"];
241
+ case OperatingSystem.Linux:
242
+ default:
243
+ return ["~/.cache/ccache", "~/.cache/sccache"];
244
+ }
245
+ case TerminalSandboxReadAllowListOperation.Conan:
246
+ switch (os) {
247
+ case OperatingSystem.Macintosh:
248
+ case OperatingSystem.Linux:
249
+ default:
250
+ return ["~/.conan2/p", "~/.conan2/b"];
251
+ }
252
+ case TerminalSandboxReadAllowListOperation.GnuPG:
253
+ switch (os) {
254
+ case OperatingSystem.Macintosh:
255
+ case OperatingSystem.Linux:
256
+ default:
257
+ return ["~/.gnupg"];
258
+ }
259
+ }
260
+ }
261
+ function getTerminalSandboxReadAllowListForCommandDetails(os, commandDetails) {
262
+ const operations = ( new Set());
263
+ for (const command of commandDetails) {
264
+ for (const rule of terminalSandboxReadAllowListCommandDetailRules) {
265
+ if (matchesTerminalSandboxCommandRule(command, rule, {
266
+ os
267
+ })) {
268
+ operations.add(rule.value);
269
+ }
270
+ }
271
+ }
272
+ const paths = [...operations].flatMap(operation => getTerminalSandboxReadAllowListForOperation(operation, os));
273
+ return [...( new Set(paths))];
274
+ }
275
+ const terminalSandboxReadAllowListCommandDetailRules = [{
276
+ keywords: ["gpg", "gpg2"],
277
+ value: TerminalSandboxReadAllowListOperation.GnuPG
278
+ }, {
279
+ keywords: ["git"],
280
+ value: TerminalSandboxReadAllowListOperation.GnuPG,
281
+ subcommands: ["commit"],
282
+ optionsWithValue: gitGlobalOptionsWithValue
283
+ }];
284
+ function getTerminalSandboxReadAllowListForCommands(os, commandKeywords, commandDetails = []) {
285
+ if (commandKeywords.length === 0) {
286
+ return getTerminalSandboxReadAllowListForCommandDetails(os, commandDetails);
287
+ }
288
+ const operations = ( new Set());
289
+ for (const keyword of commandKeywords) {
290
+ const operation = terminalSandboxReadAllowListKeywordMap.get(keyword.toLowerCase());
291
+ if (operation) {
292
+ operations.add(operation);
293
+ }
294
+ }
295
+ const paths = [...operations].flatMap(operation => getTerminalSandboxReadAllowListForOperation(operation, os));
296
+ return [...( new Set([
297
+ ...paths,
298
+ ...getTerminalSandboxReadAllowListForCommandDetails(os, commandDetails)
299
+ ]))];
300
+ }
301
+
302
+ export { TerminalSandboxReadAllowListOperation, getTerminalSandboxReadAllowListForCommands };
@@ -0,0 +1,7 @@
1
+ import { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
2
+ import type { ITerminalSandboxCommand } from "../../../../../platform/sandbox/common/terminalSandboxService.js";
3
+ export declare enum TerminalSandboxRuntimeConfigurationOperation {
4
+ GnuPG = "gnupg",
5
+ Node = "node"
6
+ }
7
+ export declare function getTerminalSandboxRuntimeConfigurationForCommands(os: OperatingSystem, commandDetails: readonly ITerminalSandboxCommand[]): Record<string, unknown>;