@lvce-editor/static-server 0.81.2 → 0.81.3

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 (2399) hide show
  1. package/config.json +2430 -2421
  2. package/dist/static-server.js +1 -1
  3. package/package.json +1 -1
  4. package/static/{7204a38 → 3bbdec0}/css/App.css +92 -92
  5. package/static/{7204a38 → 3bbdec0}/manifest.json +2 -2
  6. package/static/{7204a38 → 3bbdec0}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
  7. package/static/{7204a38 → 3bbdec0}/packages/chat-coordinator-worker/dist/chatCoordinatorWorkerMain.js +345 -73
  8. package/static/{7204a38 → 3bbdec0}/packages/chat-storage-worker/dist/chatStorageWorkerMain.js +158 -30
  9. package/static/{7204a38 → 3bbdec0}/packages/chat-view/dist/chatViewWorkerMain.js +329 -3625
  10. package/static/{7204a38 → 3bbdec0}/packages/chat-view-model/dist/chatViewModelWorkerMain.js +76 -34
  11. package/static/{7204a38 → 3bbdec0}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
  12. package/static/{7204a38 → 3bbdec0}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
  13. package/static/{7204a38 → 3bbdec0}/packages/renderer-worker/dist/rendererWorkerMain.js +5 -5
  14. package/static/index.html +4 -4
  15. /package/static/{7204a38 → 3bbdec0}/config/colorTheme.json +0 -0
  16. /package/static/{7204a38 → 3bbdec0}/config/defaultSettings.json +0 -0
  17. /package/static/{7204a38 → 3bbdec0}/config/fileMap.json +0 -0
  18. /package/static/{7204a38 → 3bbdec0}/config/webExtensions.json +0 -0
  19. /package/static/{7204a38 → 3bbdec0}/css/parts/AdditionalDetails.css +0 -0
  20. /package/static/{7204a38 → 3bbdec0}/css/parts/Animation.css +0 -0
  21. /package/static/{7204a38 → 3bbdec0}/css/parts/BrowserScrollBar.css +0 -0
  22. /package/static/{7204a38 → 3bbdec0}/css/parts/Category.css +0 -0
  23. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugButtons.css +0 -0
  24. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugChatDetails.css +0 -0
  25. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugChatDetailsClose.css +0 -0
  26. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugChatImagePreview.css +0 -0
  27. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugChatTable.css +0 -0
  28. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugChatTimeline.css +0 -0
  29. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugChatTop.css +0 -0
  30. /package/static/{7204a38 → 3bbdec0}/css/parts/DebugValue.css +0 -0
  31. /package/static/{7204a38 → 3bbdec0}/css/parts/E2eTest.css +0 -0
  32. /package/static/{7204a38 → 3bbdec0}/css/parts/E2eTests.css +0 -0
  33. /package/static/{7204a38 → 3bbdec0}/css/parts/EditorHover.css +0 -0
  34. /package/static/{7204a38 → 3bbdec0}/css/parts/EditorMessage.css +0 -0
  35. /package/static/{7204a38 → 3bbdec0}/css/parts/FeatureContent.css +0 -0
  36. /package/static/{7204a38 → 3bbdec0}/css/parts/Features.css +0 -0
  37. /package/static/{7204a38 → 3bbdec0}/css/parts/ImagePreview.css +0 -0
  38. /package/static/{7204a38 → 3bbdec0}/css/parts/InlineDiffEditor.css +0 -0
  39. /package/static/{7204a38 → 3bbdec0}/css/parts/InputBadge.css +0 -0
  40. /package/static/{7204a38 → 3bbdec0}/css/parts/Key.css +0 -0
  41. /package/static/{7204a38 → 3bbdec0}/css/parts/KeyBindingsHeader.css +0 -0
  42. /package/static/{7204a38 → 3bbdec0}/css/parts/KeyBindingsTable.css +0 -0
  43. /package/static/{7204a38 → 3bbdec0}/css/parts/LegacyDialog.css +0 -0
  44. /package/static/{7204a38 → 3bbdec0}/css/parts/Markdown.css +0 -0
  45. /package/static/{7204a38 → 3bbdec0}/css/parts/Message.css +0 -0
  46. /package/static/{7204a38 → 3bbdec0}/css/parts/Preview.css +0 -0
  47. /package/static/{7204a38 → 3bbdec0}/css/parts/ScrollToTop.css +0 -0
  48. /package/static/{7204a38 → 3bbdec0}/css/parts/SettingsHeader.css +0 -0
  49. /package/static/{7204a38 → 3bbdec0}/css/parts/SettingsItems.css +0 -0
  50. /package/static/{7204a38 → 3bbdec0}/css/parts/SettingsSideBar.css +0 -0
  51. /package/static/{7204a38 → 3bbdec0}/css/parts/SourceControlListItem.css +0 -0
  52. /package/static/{7204a38 → 3bbdec0}/css/parts/Table.css +0 -0
  53. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletAbout.css +0 -0
  54. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletBrowserViewOverview.css +0 -0
  55. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletDebugConsole.css +0 -0
  56. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletDefineKeyBinding.css +0 -0
  57. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletDiffEditor.css +0 -0
  58. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletEditorWidgetError.css +0 -0
  59. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletExtensionDetail.css +0 -0
  60. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  61. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  62. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletExtensions.css +0 -0
  63. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletIframeInspector.css +0 -0
  64. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletKeyBindings.css +0 -0
  65. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletLanguageModels.css +0 -0
  66. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletMainDragOverlay.css +0 -0
  67. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletMainEditorGroup.css +0 -0
  68. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletMainWaterMark.css +0 -0
  69. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletMedia.css +0 -0
  70. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletOutput.css +0 -0
  71. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletPanel.css +0 -0
  72. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletPanelTabs.css +0 -0
  73. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletPdf.css +0 -0
  74. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletProblems.css +0 -0
  75. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletReferences.css +0 -0
  76. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletRunAndDebug.css +0 -0
  77. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletScreenCapture.css +0 -0
  78. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletSearch.css +0 -0
  79. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletSettings.css +0 -0
  80. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletSimpleBrowser.css +0 -0
  81. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletSourceControl.css +0 -0
  82. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletStorage.css +0 -0
  83. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletTerminal.css +0 -0
  84. /package/static/{7204a38 → 3bbdec0}/css/parts/ViewletTerminalTabs.css +0 -0
  85. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-bat/README.md +0 -0
  86. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-bat/extension.json +0 -0
  87. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  88. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  89. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-c/README.md +0 -0
  90. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-c/extension.json +0 -0
  91. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  92. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  93. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  94. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  95. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cpp/README.md +0 -0
  96. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  97. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  98. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  99. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cson/README.md +0 -0
  100. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cson/extension.json +0 -0
  101. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  102. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  103. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-css/README.md +0 -0
  104. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-css/extension.json +0 -0
  105. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  106. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  107. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-dart/README.md +0 -0
  108. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-dart/extension.json +0 -0
  109. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  110. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-desktop/README.md +0 -0
  111. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  112. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  113. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-docker/README.md +0 -0
  114. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-docker/extension.json +0 -0
  115. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  116. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  117. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
  118. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  119. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  120. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  121. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  122. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-elixir/README.md +0 -0
  123. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  124. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  125. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-elm/README.md +0 -0
  126. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-elm/extension.json +0 -0
  127. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  128. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  129. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  130. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  131. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-gn/README.md +0 -0
  132. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-gn/extension.json +0 -0
  133. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  134. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-go/README.md +0 -0
  135. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-go/extension.json +0 -0
  136. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  137. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-graphql/README.md +0 -0
  138. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  139. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  140. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-html/README.md +0 -0
  141. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-html/extension.json +0 -0
  142. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  143. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  144. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-java/README.md +0 -0
  145. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-java/extension.json +0 -0
  146. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  147. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  148. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-javascript/README.md +0 -0
  149. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-javascript/extension.json +0 -0
  150. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  151. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  152. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-json/README.md +0 -0
  153. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-json/extension.json +0 -0
  154. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  155. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-json5/README.md +0 -0
  156. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-json5/extension.json +0 -0
  157. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  158. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-jsx/README.md +0 -0
  159. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  160. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  161. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-julia/README.md +0 -0
  162. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-julia/extension.json +0 -0
  163. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  164. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  165. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  166. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  167. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-less/LICENSE +0 -0
  168. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-less/README.md +0 -0
  169. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-less/extension.json +0 -0
  170. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  171. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  172. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-markdown/README.md +0 -0
  173. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  174. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  175. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-mdx/README.md +0 -0
  176. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  177. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  178. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nix/README.md +0 -0
  179. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nix/extension.json +0 -0
  180. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  181. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  182. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  183. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  184. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  185. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-perl/README.md +0 -0
  186. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-perl/extension.json +0 -0
  187. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  188. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  189. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  190. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  191. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-powershell/README.md +0 -0
  192. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  193. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  194. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-python/README.md +0 -0
  195. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-python/extension.json +0 -0
  196. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  197. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  198. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-r/README.md +0 -0
  199. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-r/extension.json +0 -0
  200. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  201. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-ruby/README.md +0 -0
  202. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  203. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  204. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  205. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-rust/README.md +0 -0
  206. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-rust/extension.json +0 -0
  207. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  208. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  209. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-scss/README.md +0 -0
  210. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-scss/extension.json +0 -0
  211. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  212. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  213. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  214. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  215. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  216. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-svelte/README.md +0 -0
  217. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  218. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  219. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-terraform/README.md +0 -0
  220. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  221. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  222. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-toml/README.md +0 -0
  223. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-toml/extension.json +0 -0
  224. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  225. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-typescript/README.md +0 -0
  226. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  227. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
  228. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  229. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-vue/README.md +0 -0
  230. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-vue/extension.json +0 -0
  231. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  232. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  233. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  234. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  235. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  236. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-xml/README.md +0 -0
  237. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-xml/extension.json +0 -0
  238. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  239. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-yaml/README.md +0 -0
  240. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  241. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  242. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  243. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  244. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  245. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  246. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-ayu/README.md +0 -0
  247. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  248. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-ayu/extension.json +0 -0
  249. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-ayu/images/demo.png +0 -0
  250. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-cobalt2/README.md +0 -0
  251. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  252. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  253. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  254. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  255. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-gruvbox/README.md +0 -0
  256. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  257. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-gruvbox/extension.json +0 -0
  258. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
  259. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-high-contrast/README.md +0 -0
  260. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  261. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  262. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-material/README.md +0 -0
  263. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-material/color-theme.json +0 -0
  264. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-material/extension.json +0 -0
  265. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-monokai/README.md +0 -0
  266. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  267. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-monokai/extension.json +0 -0
  268. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  269. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  270. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  271. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  272. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-palenight/README.md +0 -0
  273. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  274. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-palenight/extension.json +0 -0
  275. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  276. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-slime/README.md +0 -0
  277. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-slime/color-theme.json +0 -0
  278. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-slime/extension.json +0 -0
  279. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.theme-slime/icon.png +0 -0
  280. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/README.md +0 -0
  281. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/extension.json +0 -0
  282. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  283. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icon.png +0 -0
  284. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  285. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  286. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  287. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  288. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  289. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  290. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  291. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  292. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  293. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  294. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  295. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  296. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
  297. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  298. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  299. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  300. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  301. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
  302. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  303. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  304. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  305. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  306. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
  307. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  308. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
  309. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
  310. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  311. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  312. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  313. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  314. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  315. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  316. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  317. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  318. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  319. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  320. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  321. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  322. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  323. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  324. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  325. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  326. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  327. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
  328. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  329. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  330. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  331. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
  332. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  333. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  334. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  335. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  336. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  337. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  338. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  339. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  340. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  341. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  342. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  343. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  344. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  345. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  346. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  347. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  348. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  349. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  350. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  351. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  352. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  353. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  354. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  355. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  356. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  357. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  358. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  359. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  360. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  361. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  362. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  363. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  364. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  365. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  366. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  367. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  368. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  369. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  370. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  371. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  372. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  373. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  374. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  375. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  376. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  377. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  378. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  379. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  380. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  381. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  382. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  383. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  384. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  385. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  386. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  387. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  388. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  389. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  390. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  391. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  392. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  393. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  394. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  395. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  396. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  397. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  398. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  399. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  400. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  401. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  402. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  403. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  404. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  405. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
  406. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  407. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  408. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  409. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  410. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
  411. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  412. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  413. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  414. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  415. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  416. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  417. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  418. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  419. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  420. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  421. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  422. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  423. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  424. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  425. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  426. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  427. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  428. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  429. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  430. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  431. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  432. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  433. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  434. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  435. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  436. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  437. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  438. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  439. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  440. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  441. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  442. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  443. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  444. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  445. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  446. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  447. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  448. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  449. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  450. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  451. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  452. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  453. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  454. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  455. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  456. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  457. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  458. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  459. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  460. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  461. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  462. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  463. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  464. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  465. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  466. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  467. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  468. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  469. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  470. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  471. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  472. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
  473. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  474. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
  475. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  476. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  477. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  478. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  479. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  480. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  481. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  482. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  483. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  484. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  485. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  486. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  487. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  488. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  489. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  490. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  491. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  492. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  493. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  494. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  495. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  496. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  497. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  498. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  499. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  500. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  501. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  502. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  503. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  504. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  505. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  506. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  507. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  508. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
  509. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  510. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  511. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  512. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  513. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  514. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  515. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  516. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  517. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  518. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  519. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  520. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  521. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  522. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  523. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  524. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  525. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  526. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  527. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  528. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  529. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  530. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  531. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  532. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  533. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  534. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  535. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  536. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  537. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  538. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
  539. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  540. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  541. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  542. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  543. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  544. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  545. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  546. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  547. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  548. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  549. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  550. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  551. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  552. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  553. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  554. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  555. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  556. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  557. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  558. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  559. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  560. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  561. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  562. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  563. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  564. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  565. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  566. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  567. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  568. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  569. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  570. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  571. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
  572. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
  573. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  574. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
  575. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
  576. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  577. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  578. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  579. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  580. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  581. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  582. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  583. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
  584. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  585. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  586. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  587. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  588. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  589. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  590. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  591. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  592. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  593. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  594. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  595. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  596. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  597. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  598. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  599. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  600. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  601. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  602. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  603. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  604. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  605. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  606. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  607. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  608. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  609. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  610. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  611. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
  612. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  613. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  614. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  615. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  616. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  617. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  618. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  619. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  620. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  621. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  622. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  623. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  624. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  625. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  626. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  627. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  628. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  629. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  630. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  631. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  632. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  633. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  634. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  635. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  636. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  637. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  638. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  639. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  640. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  641. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  642. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  643. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  644. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  645. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  646. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  647. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  648. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  649. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  650. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  651. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  652. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  653. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  654. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  655. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  656. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  657. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  658. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  659. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  660. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  661. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  662. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  663. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  664. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  665. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  666. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  667. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  668. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  669. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  670. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  671. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
  672. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  673. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  674. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  675. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  676. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  677. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  678. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  679. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  680. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  681. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  682. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  683. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  684. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  685. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  686. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  687. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  688. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  689. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  690. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  691. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  692. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  693. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  694. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  695. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  696. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  697. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  698. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  699. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  700. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  701. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  702. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  703. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  704. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  705. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  706. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  707. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  708. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  709. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  710. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
  711. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
  712. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  713. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  714. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  715. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  716. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  717. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  718. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  719. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  720. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  721. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  722. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  723. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  724. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  725. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  726. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  727. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  728. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
  729. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  730. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  731. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  732. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  733. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  734. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  735. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  736. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  737. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  738. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  739. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  740. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  741. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  742. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  743. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  744. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  745. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  746. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  747. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  748. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  749. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  750. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  751. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  752. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  753. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  754. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  755. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  756. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  757. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  758. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  759. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  760. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  761. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  762. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  763. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  764. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  765. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  766. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  767. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  768. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  769. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  770. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  771. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  772. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  773. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
  774. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
  775. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  776. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  777. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  778. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
  779. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  780. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  781. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  782. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  783. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  784. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  785. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  786. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  787. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  788. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  789. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  790. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  791. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
  792. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  793. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  794. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  795. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  796. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  797. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  798. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  799. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  800. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  801. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  802. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  803. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  804. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  805. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  806. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  807. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  808. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  809. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  810. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
  811. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  812. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  813. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  814. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  815. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  816. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  817. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  818. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  819. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  820. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  821. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  822. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  823. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  824. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  825. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  826. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  827. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
  828. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  829. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  830. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  831. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  832. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  833. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  834. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  835. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  836. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  837. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  838. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  839. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  840. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  841. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  842. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  843. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  844. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  845. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  846. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  847. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  848. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  849. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  850. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  851. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  852. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  853. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  854. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  855. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  856. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  857. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  858. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  859. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  860. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  861. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  862. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  863. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  864. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  865. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  866. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  867. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  868. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  869. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  870. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  871. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  872. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  873. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
  874. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  875. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  876. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
  877. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  878. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  879. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  880. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  881. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  882. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  883. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  884. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  885. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  886. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  887. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  888. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  889. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  890. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  891. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  892. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  893. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  894. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  895. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  896. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  897. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  898. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  899. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  900. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  901. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  902. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  903. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
  904. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  905. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  906. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  907. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  908. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  909. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  910. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  911. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  912. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  913. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  914. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  915. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  916. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  917. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  918. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  919. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  920. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  921. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  922. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  923. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  924. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  925. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  926. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  927. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  928. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  929. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  930. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  931. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  932. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  933. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  934. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  935. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  936. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  937. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  938. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  939. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  940. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  941. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  942. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  943. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  944. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  945. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  946. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  947. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  948. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  949. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  950. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  951. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  952. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  953. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  954. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  955. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  956. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  957. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  958. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  959. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  960. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  961. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  962. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  963. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  964. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  965. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  966. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  967. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  968. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  969. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  970. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  971. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  972. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  973. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  974. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  975. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  976. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  977. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  978. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  979. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  980. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  981. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  982. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  983. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  984. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  985. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  986. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  987. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  988. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  989. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  990. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  991. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  992. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  993. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  994. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  995. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  996. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  997. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  998. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  999. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  1000. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
  1001. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  1002. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  1003. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  1004. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  1005. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  1006. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  1007. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  1008. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  1009. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  1010. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  1011. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  1012. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  1013. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  1014. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  1015. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  1016. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  1017. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  1018. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  1019. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
  1020. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  1021. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  1022. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
  1023. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  1024. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  1025. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  1026. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  1027. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  1028. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  1029. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  1030. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  1031. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  1032. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  1033. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  1034. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  1035. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  1036. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  1037. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  1038. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  1039. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  1040. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  1041. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  1042. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  1043. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  1044. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  1045. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  1046. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  1047. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1048. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1049. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1050. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1051. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1052. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1053. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1054. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1055. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1056. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1057. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1058. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1059. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1060. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1061. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1062. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
  1063. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1064. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1065. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1066. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1067. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1068. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1069. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1070. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1071. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1072. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1073. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1074. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1075. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1076. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1077. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1078. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1079. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1080. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1081. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1082. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
  1083. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1084. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1085. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1086. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1087. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1088. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1089. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1090. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1091. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1092. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1093. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1094. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1095. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1096. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1097. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1098. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1099. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1100. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1101. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1102. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1103. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1104. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1105. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1106. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1107. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1108. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1109. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1110. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1111. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1112. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1113. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1114. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1115. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1116. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1117. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1118. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1119. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1120. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1121. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1122. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1123. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1124. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1125. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1126. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1127. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1128. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1129. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1130. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1131. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1132. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1133. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1134. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1135. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1136. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1137. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1138. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
  1139. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1140. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1141. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1142. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1143. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1144. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1145. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1146. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1147. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1148. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1149. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1150. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1151. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1152. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1153. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1154. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1155. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1156. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1157. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1158. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1159. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1160. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1161. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1162. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1163. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1164. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1165. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1166. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1167. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1168. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1169. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1170. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1171. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1172. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1173. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1174. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
  1175. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1176. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1177. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1178. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1179. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1180. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1181. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
  1182. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1183. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1184. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1185. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1186. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1187. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1188. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1189. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1190. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1191. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1192. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1193. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
  1194. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1195. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1196. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1197. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1198. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1199. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1200. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1201. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1202. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1203. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1204. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1205. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1206. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1207. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1208. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1209. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1210. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1211. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1212. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1213. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1214. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1215. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1216. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1217. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1218. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1219. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1220. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1221. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1222. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1223. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1224. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1225. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1226. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1227. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1228. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1229. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1230. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1231. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1232. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1233. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1234. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1235. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1236. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1237. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1238. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1239. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1240. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1241. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1242. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1243. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1244. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1245. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1246. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1247. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1248. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1249. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1250. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1251. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1252. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1253. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1254. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1255. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1256. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1257. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1258. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1259. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1260. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1261. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1262. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1263. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1264. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
  1265. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1266. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1267. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1268. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1269. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1270. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1271. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1272. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1273. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1274. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1275. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1276. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
  1277. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1278. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1279. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1280. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1281. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1282. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1283. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1284. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1285. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1286. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1287. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1288. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1289. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1290. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1291. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1292. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1293. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1294. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
  1295. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1296. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1297. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1298. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1299. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1300. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1301. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1302. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1303. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1304. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1305. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1306. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1307. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1308. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1309. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1310. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1311. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1312. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1313. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1314. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1315. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1316. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1317. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1318. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
  1319. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1320. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1321. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1322. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1323. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1324. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1325. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1326. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1327. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1328. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
  1329. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1330. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1331. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1332. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1333. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1334. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1335. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1336. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1337. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1338. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1339. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1340. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1341. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1342. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1343. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1344. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1345. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1346. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1347. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1348. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1349. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1350. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1351. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
  1352. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1353. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1354. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1355. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1356. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1357. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1358. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1359. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1360. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1361. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1362. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1363. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1364. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1365. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1366. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1367. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1368. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1369. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1370. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1371. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1372. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1373. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1374. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1375. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1376. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
  1377. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
  1378. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
  1379. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
  1380. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1381. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1382. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1383. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1384. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1385. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1386. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1387. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1388. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
  1389. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
  1390. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1391. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1392. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1393. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1394. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1395. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1396. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1397. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1398. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1399. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1400. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1401. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1402. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1403. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1404. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1405. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1406. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1407. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1408. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1409. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1410. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1411. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1412. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1413. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1414. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
  1415. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
  1416. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1417. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1418. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1419. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1420. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1421. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1422. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1423. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1424. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
  1425. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
  1426. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1427. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1428. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1429. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1430. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
  1431. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
  1432. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1433. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1434. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1435. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1436. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1437. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1438. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1439. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1440. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1441. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1442. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1443. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1444. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1445. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1446. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1447. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1448. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1449. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1450. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1451. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1452. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
  1453. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
  1454. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1455. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1456. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1457. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1458. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
  1459. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
  1460. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1461. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1462. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1463. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1464. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1465. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1466. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1467. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1468. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1469. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1470. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1471. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1472. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1473. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1474. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1475. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1476. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1477. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1478. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1479. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1480. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1481. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1482. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1483. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1484. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1485. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1486. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1487. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1488. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
  1489. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
  1490. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1491. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1492. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1493. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1494. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1495. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1496. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1497. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1498. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1499. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1500. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1501. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1502. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
  1503. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
  1504. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1505. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1506. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1507. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1508. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1509. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1510. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1511. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1512. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1513. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1514. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1515. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1516. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
  1517. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
  1518. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1519. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1520. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1521. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1522. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1523. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1524. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1525. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1526. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1527. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1528. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1529. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1530. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1531. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1532. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1533. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1534. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1535. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1536. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1537. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1538. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
  1539. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
  1540. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
  1541. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
  1542. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1543. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1544. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1545. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1546. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1547. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1548. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
  1549. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
  1550. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1551. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1552. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1553. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1554. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1555. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1556. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1557. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1558. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1559. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1560. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1561. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1562. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1563. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1564. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1565. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1566. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1567. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1568. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1569. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1570. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1571. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1572. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
  1573. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
  1574. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1575. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1576. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1577. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1578. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1579. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1580. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1581. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1582. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1583. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1584. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1585. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1586. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1587. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1588. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1589. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1590. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1591. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1592. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1593. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1594. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1595. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1596. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1597. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1598. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1599. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1600. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1601. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1602. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1603. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1604. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1605. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1606. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1607. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1608. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1609. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1610. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1611. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1612. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1613. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1614. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1615. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1616. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1617. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1618. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1619. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1620. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1621. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1622. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1623. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1624. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1625. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1626. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1627. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1628. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1629. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1630. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1631. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1632. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1633. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1634. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1635. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1636. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1637. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1638. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1639. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1640. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1641. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1642. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1643. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1644. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1645. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1646. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1647. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1648. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1649. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1650. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1651. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1652. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1653. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1654. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1655. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1656. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1657. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1658. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1659. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1660. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1661. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1662. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1663. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1664. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1665. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1666. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1667. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1668. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1669. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1670. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1671. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1672. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1673. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1674. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1675. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1676. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1677. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1678. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1679. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1680. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1681. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1682. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1683. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1684. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1685. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1686. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1687. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1688. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1689. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1690. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1691. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1692. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1693. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1694. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1695. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1696. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1697. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1698. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1699. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1700. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1701. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1702. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1703. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1704. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1705. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1706. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1707. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1708. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1709. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1710. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1711. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1712. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1713. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1714. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1715. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1716. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1717. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1718. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1719. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1720. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
  1721. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
  1722. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1723. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1724. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1725. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1726. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1727. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1728. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1729. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1730. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1731. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1732. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1733. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1734. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1735. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1736. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1737. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1738. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
  1739. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
  1740. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1741. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1742. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1743. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1744. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
  1745. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
  1746. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1747. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1748. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1749. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1750. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1751. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1752. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
  1753. /package/static/{7204a38 → 3bbdec0}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
  1754. /package/static/{7204a38 → 3bbdec0}/fonts/FiraCode-VariableFont.ttf +0 -0
  1755. /package/static/{7204a38 → 3bbdec0}/icons/account.svg +0 -0
  1756. /package/static/{7204a38 → 3bbdec0}/icons/activate-breakpoints.svg +0 -0
  1757. /package/static/{7204a38 → 3bbdec0}/icons/add-small.svg +0 -0
  1758. /package/static/{7204a38 → 3bbdec0}/icons/add.svg +0 -0
  1759. /package/static/{7204a38 → 3bbdec0}/icons/agent.svg +0 -0
  1760. /package/static/{7204a38 → 3bbdec0}/icons/archive.svg +0 -0
  1761. /package/static/{7204a38 → 3bbdec0}/icons/arrow-both.svg +0 -0
  1762. /package/static/{7204a38 → 3bbdec0}/icons/arrow-circle-down.svg +0 -0
  1763. /package/static/{7204a38 → 3bbdec0}/icons/arrow-circle-left.svg +0 -0
  1764. /package/static/{7204a38 → 3bbdec0}/icons/arrow-circle-right.svg +0 -0
  1765. /package/static/{7204a38 → 3bbdec0}/icons/arrow-circle-up.svg +0 -0
  1766. /package/static/{7204a38 → 3bbdec0}/icons/arrow-down.svg +0 -0
  1767. /package/static/{7204a38 → 3bbdec0}/icons/arrow-left.svg +0 -0
  1768. /package/static/{7204a38 → 3bbdec0}/icons/arrow-right.svg +0 -0
  1769. /package/static/{7204a38 → 3bbdec0}/icons/arrow-small-down.svg +0 -0
  1770. /package/static/{7204a38 → 3bbdec0}/icons/arrow-small-left.svg +0 -0
  1771. /package/static/{7204a38 → 3bbdec0}/icons/arrow-small-right.svg +0 -0
  1772. /package/static/{7204a38 → 3bbdec0}/icons/arrow-small-up.svg +0 -0
  1773. /package/static/{7204a38 → 3bbdec0}/icons/arrow-swap.svg +0 -0
  1774. /package/static/{7204a38 → 3bbdec0}/icons/arrow-up.svg +0 -0
  1775. /package/static/{7204a38 → 3bbdec0}/icons/ask.svg +0 -0
  1776. /package/static/{7204a38 → 3bbdec0}/icons/attach.svg +0 -0
  1777. /package/static/{7204a38 → 3bbdec0}/icons/azure-devops.svg +0 -0
  1778. /package/static/{7204a38 → 3bbdec0}/icons/azure.svg +0 -0
  1779. /package/static/{7204a38 → 3bbdec0}/icons/beaker-stop.svg +0 -0
  1780. /package/static/{7204a38 → 3bbdec0}/icons/beaker.svg +0 -0
  1781. /package/static/{7204a38 → 3bbdec0}/icons/bell-dot.svg +0 -0
  1782. /package/static/{7204a38 → 3bbdec0}/icons/bell-slash-dot.svg +0 -0
  1783. /package/static/{7204a38 → 3bbdec0}/icons/bell-slash.svg +0 -0
  1784. /package/static/{7204a38 → 3bbdec0}/icons/bell.svg +0 -0
  1785. /package/static/{7204a38 → 3bbdec0}/icons/blank.svg +0 -0
  1786. /package/static/{7204a38 → 3bbdec0}/icons/bold.svg +0 -0
  1787. /package/static/{7204a38 → 3bbdec0}/icons/book.svg +0 -0
  1788. /package/static/{7204a38 → 3bbdec0}/icons/bookmark.svg +0 -0
  1789. /package/static/{7204a38 → 3bbdec0}/icons/bracket-dot.svg +0 -0
  1790. /package/static/{7204a38 → 3bbdec0}/icons/bracket-error.svg +0 -0
  1791. /package/static/{7204a38 → 3bbdec0}/icons/briefcase.svg +0 -0
  1792. /package/static/{7204a38 → 3bbdec0}/icons/broadcast.svg +0 -0
  1793. /package/static/{7204a38 → 3bbdec0}/icons/browser.svg +0 -0
  1794. /package/static/{7204a38 → 3bbdec0}/icons/bug.svg +0 -0
  1795. /package/static/{7204a38 → 3bbdec0}/icons/build.svg +0 -0
  1796. /package/static/{7204a38 → 3bbdec0}/icons/calendar.svg +0 -0
  1797. /package/static/{7204a38 → 3bbdec0}/icons/call-incoming.svg +0 -0
  1798. /package/static/{7204a38 → 3bbdec0}/icons/call-outgoing.svg +0 -0
  1799. /package/static/{7204a38 → 3bbdec0}/icons/case-sensitive.svg +0 -0
  1800. /package/static/{7204a38 → 3bbdec0}/icons/chat-sparkle-error.svg +0 -0
  1801. /package/static/{7204a38 → 3bbdec0}/icons/chat-sparkle-warning.svg +0 -0
  1802. /package/static/{7204a38 → 3bbdec0}/icons/chat-sparkle.svg +0 -0
  1803. /package/static/{7204a38 → 3bbdec0}/icons/check-all.svg +0 -0
  1804. /package/static/{7204a38 → 3bbdec0}/icons/check.svg +0 -0
  1805. /package/static/{7204a38 → 3bbdec0}/icons/checklist.svg +0 -0
  1806. /package/static/{7204a38 → 3bbdec0}/icons/chevron-down.svg +0 -0
  1807. /package/static/{7204a38 → 3bbdec0}/icons/chevron-left.svg +0 -0
  1808. /package/static/{7204a38 → 3bbdec0}/icons/chevron-right.svg +0 -0
  1809. /package/static/{7204a38 → 3bbdec0}/icons/chevron-up.svg +0 -0
  1810. /package/static/{7204a38 → 3bbdec0}/icons/chip.svg +0 -0
  1811. /package/static/{7204a38 → 3bbdec0}/icons/chrome-close.svg +0 -0
  1812. /package/static/{7204a38 → 3bbdec0}/icons/chrome-maximize.svg +0 -0
  1813. /package/static/{7204a38 → 3bbdec0}/icons/chrome-minimize.svg +0 -0
  1814. /package/static/{7204a38 → 3bbdec0}/icons/chrome-restore.svg +0 -0
  1815. /package/static/{7204a38 → 3bbdec0}/icons/circle-filled.svg +0 -0
  1816. /package/static/{7204a38 → 3bbdec0}/icons/circle-large-filled.svg +0 -0
  1817. /package/static/{7204a38 → 3bbdec0}/icons/circle-large.svg +0 -0
  1818. /package/static/{7204a38 → 3bbdec0}/icons/circle-slash.svg +0 -0
  1819. /package/static/{7204a38 → 3bbdec0}/icons/circle-small-filled.svg +0 -0
  1820. /package/static/{7204a38 → 3bbdec0}/icons/circle-small.svg +0 -0
  1821. /package/static/{7204a38 → 3bbdec0}/icons/circle.svg +0 -0
  1822. /package/static/{7204a38 → 3bbdec0}/icons/circuit-board.svg +0 -0
  1823. /package/static/{7204a38 → 3bbdec0}/icons/claude.svg +0 -0
  1824. /package/static/{7204a38 → 3bbdec0}/icons/clear-all.svg +0 -0
  1825. /package/static/{7204a38 → 3bbdec0}/icons/clippy.svg +0 -0
  1826. /package/static/{7204a38 → 3bbdec0}/icons/clockface.svg +0 -0
  1827. /package/static/{7204a38 → 3bbdec0}/icons/close-all.svg +0 -0
  1828. /package/static/{7204a38 → 3bbdec0}/icons/close.svg +0 -0
  1829. /package/static/{7204a38 → 3bbdec0}/icons/cloud-download.svg +0 -0
  1830. /package/static/{7204a38 → 3bbdec0}/icons/cloud-small.svg +0 -0
  1831. /package/static/{7204a38 → 3bbdec0}/icons/cloud-upload.svg +0 -0
  1832. /package/static/{7204a38 → 3bbdec0}/icons/cloud.svg +0 -0
  1833. /package/static/{7204a38 → 3bbdec0}/icons/code-oss.svg +0 -0
  1834. /package/static/{7204a38 → 3bbdec0}/icons/code-review.svg +0 -0
  1835. /package/static/{7204a38 → 3bbdec0}/icons/code.svg +0 -0
  1836. /package/static/{7204a38 → 3bbdec0}/icons/coffee.svg +0 -0
  1837. /package/static/{7204a38 → 3bbdec0}/icons/collapse-all.svg +0 -0
  1838. /package/static/{7204a38 → 3bbdec0}/icons/collection-small.svg +0 -0
  1839. /package/static/{7204a38 → 3bbdec0}/icons/collection.svg +0 -0
  1840. /package/static/{7204a38 → 3bbdec0}/icons/color-mode.svg +0 -0
  1841. /package/static/{7204a38 → 3bbdec0}/icons/combine.svg +0 -0
  1842. /package/static/{7204a38 → 3bbdec0}/icons/comment-discussion-quote.svg +0 -0
  1843. /package/static/{7204a38 → 3bbdec0}/icons/comment-discussion-sparkle.svg +0 -0
  1844. /package/static/{7204a38 → 3bbdec0}/icons/comment-discussion.svg +0 -0
  1845. /package/static/{7204a38 → 3bbdec0}/icons/comment-draft.svg +0 -0
  1846. /package/static/{7204a38 → 3bbdec0}/icons/comment-unresolved.svg +0 -0
  1847. /package/static/{7204a38 → 3bbdec0}/icons/comment.svg +0 -0
  1848. /package/static/{7204a38 → 3bbdec0}/icons/compass-active.svg +0 -0
  1849. /package/static/{7204a38 → 3bbdec0}/icons/compass-dot.svg +0 -0
  1850. /package/static/{7204a38 → 3bbdec0}/icons/compass.svg +0 -0
  1851. /package/static/{7204a38 → 3bbdec0}/icons/copilot-blocked.svg +0 -0
  1852. /package/static/{7204a38 → 3bbdec0}/icons/copilot-error.svg +0 -0
  1853. /package/static/{7204a38 → 3bbdec0}/icons/copilot-in-progress.svg +0 -0
  1854. /package/static/{7204a38 → 3bbdec0}/icons/copilot-large.svg +0 -0
  1855. /package/static/{7204a38 → 3bbdec0}/icons/copilot-not-connected.svg +0 -0
  1856. /package/static/{7204a38 → 3bbdec0}/icons/copilot-snooze.svg +0 -0
  1857. /package/static/{7204a38 → 3bbdec0}/icons/copilot-success.svg +0 -0
  1858. /package/static/{7204a38 → 3bbdec0}/icons/copilot-unavailable.svg +0 -0
  1859. /package/static/{7204a38 → 3bbdec0}/icons/copilot-warning-large.svg +0 -0
  1860. /package/static/{7204a38 → 3bbdec0}/icons/copilot-warning.svg +0 -0
  1861. /package/static/{7204a38 → 3bbdec0}/icons/copilot.svg +0 -0
  1862. /package/static/{7204a38 → 3bbdec0}/icons/copy.svg +0 -0
  1863. /package/static/{7204a38 → 3bbdec0}/icons/coverage.svg +0 -0
  1864. /package/static/{7204a38 → 3bbdec0}/icons/credit-card.svg +0 -0
  1865. /package/static/{7204a38 → 3bbdec0}/icons/cursor.svg +0 -0
  1866. /package/static/{7204a38 → 3bbdec0}/icons/dash.svg +0 -0
  1867. /package/static/{7204a38 → 3bbdec0}/icons/dashboard.svg +0 -0
  1868. /package/static/{7204a38 → 3bbdec0}/icons/database.svg +0 -0
  1869. /package/static/{7204a38 → 3bbdec0}/icons/debug-all.svg +0 -0
  1870. /package/static/{7204a38 → 3bbdec0}/icons/debug-alt-2.svg +0 -0
  1871. /package/static/{7204a38 → 3bbdec0}/icons/debug-alt-small.svg +0 -0
  1872. /package/static/{7204a38 → 3bbdec0}/icons/debug-alt.svg +0 -0
  1873. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  1874. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-conditional.svg +0 -0
  1875. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-data-unverified.svg +0 -0
  1876. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-data.svg +0 -0
  1877. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-function-unverified.svg +0 -0
  1878. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-function.svg +0 -0
  1879. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-log-unverified.svg +0 -0
  1880. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-log.svg +0 -0
  1881. /package/static/{7204a38 → 3bbdec0}/icons/debug-breakpoint-unsupported.svg +0 -0
  1882. /package/static/{7204a38 → 3bbdec0}/icons/debug-connected.svg +0 -0
  1883. /package/static/{7204a38 → 3bbdec0}/icons/debug-console.svg +0 -0
  1884. /package/static/{7204a38 → 3bbdec0}/icons/debug-continue-small.svg +0 -0
  1885. /package/static/{7204a38 → 3bbdec0}/icons/debug-continue.svg +0 -0
  1886. /package/static/{7204a38 → 3bbdec0}/icons/debug-coverage.svg +0 -0
  1887. /package/static/{7204a38 → 3bbdec0}/icons/debug-disconnect.svg +0 -0
  1888. /package/static/{7204a38 → 3bbdec0}/icons/debug-line-by-line.svg +0 -0
  1889. /package/static/{7204a38 → 3bbdec0}/icons/debug-pause.svg +0 -0
  1890. /package/static/{7204a38 → 3bbdec0}/icons/debug-rerun.svg +0 -0
  1891. /package/static/{7204a38 → 3bbdec0}/icons/debug-restart-frame.svg +0 -0
  1892. /package/static/{7204a38 → 3bbdec0}/icons/debug-restart.svg +0 -0
  1893. /package/static/{7204a38 → 3bbdec0}/icons/debug-reverse-continue.svg +0 -0
  1894. /package/static/{7204a38 → 3bbdec0}/icons/debug-stackframe-active.svg +0 -0
  1895. /package/static/{7204a38 → 3bbdec0}/icons/debug-stackframe.svg +0 -0
  1896. /package/static/{7204a38 → 3bbdec0}/icons/debug-start.svg +0 -0
  1897. /package/static/{7204a38 → 3bbdec0}/icons/debug-step-back.svg +0 -0
  1898. /package/static/{7204a38 → 3bbdec0}/icons/debug-step-into.svg +0 -0
  1899. /package/static/{7204a38 → 3bbdec0}/icons/debug-step-out.svg +0 -0
  1900. /package/static/{7204a38 → 3bbdec0}/icons/debug-step-over.svg +0 -0
  1901. /package/static/{7204a38 → 3bbdec0}/icons/debug-stop.svg +0 -0
  1902. /package/static/{7204a38 → 3bbdec0}/icons/debug.svg +0 -0
  1903. /package/static/{7204a38 → 3bbdec0}/icons/desktop-download.svg +0 -0
  1904. /package/static/{7204a38 → 3bbdec0}/icons/device-camera-video.svg +0 -0
  1905. /package/static/{7204a38 → 3bbdec0}/icons/device-camera.svg +0 -0
  1906. /package/static/{7204a38 → 3bbdec0}/icons/device-mobile.svg +0 -0
  1907. /package/static/{7204a38 → 3bbdec0}/icons/diff-added.svg +0 -0
  1908. /package/static/{7204a38 → 3bbdec0}/icons/diff-ignored.svg +0 -0
  1909. /package/static/{7204a38 → 3bbdec0}/icons/diff-modified.svg +0 -0
  1910. /package/static/{7204a38 → 3bbdec0}/icons/diff-multiple.svg +0 -0
  1911. /package/static/{7204a38 → 3bbdec0}/icons/diff-removed.svg +0 -0
  1912. /package/static/{7204a38 → 3bbdec0}/icons/diff-renamed.svg +0 -0
  1913. /package/static/{7204a38 → 3bbdec0}/icons/diff-single.svg +0 -0
  1914. /package/static/{7204a38 → 3bbdec0}/icons/diff.svg +0 -0
  1915. /package/static/{7204a38 → 3bbdec0}/icons/discard.svg +0 -0
  1916. /package/static/{7204a38 → 3bbdec0}/icons/download.svg +0 -0
  1917. /package/static/{7204a38 → 3bbdec0}/icons/edit-code.svg +0 -0
  1918. /package/static/{7204a38 → 3bbdec0}/icons/edit-session.svg +0 -0
  1919. /package/static/{7204a38 → 3bbdec0}/icons/edit-sparkle.svg +0 -0
  1920. /package/static/{7204a38 → 3bbdec0}/icons/edit.svg +0 -0
  1921. /package/static/{7204a38 → 3bbdec0}/icons/editor-layout.svg +0 -0
  1922. /package/static/{7204a38 → 3bbdec0}/icons/ellipsis.svg +0 -0
  1923. /package/static/{7204a38 → 3bbdec0}/icons/empty-window.svg +0 -0
  1924. /package/static/{7204a38 → 3bbdec0}/icons/eraser.svg +0 -0
  1925. /package/static/{7204a38 → 3bbdec0}/icons/error-small.svg +0 -0
  1926. /package/static/{7204a38 → 3bbdec0}/icons/error.svg +0 -0
  1927. /package/static/{7204a38 → 3bbdec0}/icons/exclude.svg +0 -0
  1928. /package/static/{7204a38 → 3bbdec0}/icons/expand-all.svg +0 -0
  1929. /package/static/{7204a38 → 3bbdec0}/icons/export.svg +0 -0
  1930. /package/static/{7204a38 → 3bbdec0}/icons/extensionDefaultIcon.png +0 -0
  1931. /package/static/{7204a38 → 3bbdec0}/icons/extensions-large.svg +0 -0
  1932. /package/static/{7204a38 → 3bbdec0}/icons/extensions.svg +0 -0
  1933. /package/static/{7204a38 → 3bbdec0}/icons/eye-closed.svg +0 -0
  1934. /package/static/{7204a38 → 3bbdec0}/icons/eye.svg +0 -0
  1935. /package/static/{7204a38 → 3bbdec0}/icons/feedback.svg +0 -0
  1936. /package/static/{7204a38 → 3bbdec0}/icons/file-binary.svg +0 -0
  1937. /package/static/{7204a38 → 3bbdec0}/icons/file-code.svg +0 -0
  1938. /package/static/{7204a38 → 3bbdec0}/icons/file-media.svg +0 -0
  1939. /package/static/{7204a38 → 3bbdec0}/icons/file-pdf.svg +0 -0
  1940. /package/static/{7204a38 → 3bbdec0}/icons/file-submodule.svg +0 -0
  1941. /package/static/{7204a38 → 3bbdec0}/icons/file-symlink-directory.svg +0 -0
  1942. /package/static/{7204a38 → 3bbdec0}/icons/file-symlink-file.svg +0 -0
  1943. /package/static/{7204a38 → 3bbdec0}/icons/file-text.svg +0 -0
  1944. /package/static/{7204a38 → 3bbdec0}/icons/file-zip.svg +0 -0
  1945. /package/static/{7204a38 → 3bbdec0}/icons/file.svg +0 -0
  1946. /package/static/{7204a38 → 3bbdec0}/icons/files.svg +0 -0
  1947. /package/static/{7204a38 → 3bbdec0}/icons/filter-filled.svg +0 -0
  1948. /package/static/{7204a38 → 3bbdec0}/icons/filter.svg +0 -0
  1949. /package/static/{7204a38 → 3bbdec0}/icons/flag.svg +0 -0
  1950. /package/static/{7204a38 → 3bbdec0}/icons/flame.svg +0 -0
  1951. /package/static/{7204a38 → 3bbdec0}/icons/fold-down.svg +0 -0
  1952. /package/static/{7204a38 → 3bbdec0}/icons/fold-up.svg +0 -0
  1953. /package/static/{7204a38 → 3bbdec0}/icons/fold.svg +0 -0
  1954. /package/static/{7204a38 → 3bbdec0}/icons/folder-active.svg +0 -0
  1955. /package/static/{7204a38 → 3bbdec0}/icons/folder-library.svg +0 -0
  1956. /package/static/{7204a38 → 3bbdec0}/icons/folder-opened.svg +0 -0
  1957. /package/static/{7204a38 → 3bbdec0}/icons/folder.svg +0 -0
  1958. /package/static/{7204a38 → 3bbdec0}/icons/forward.svg +0 -0
  1959. /package/static/{7204a38 → 3bbdec0}/icons/game.svg +0 -0
  1960. /package/static/{7204a38 → 3bbdec0}/icons/gear.svg +0 -0
  1961. /package/static/{7204a38 → 3bbdec0}/icons/gift.svg +0 -0
  1962. /package/static/{7204a38 → 3bbdec0}/icons/gist-secret.svg +0 -0
  1963. /package/static/{7204a38 → 3bbdec0}/icons/gist.svg +0 -0
  1964. /package/static/{7204a38 → 3bbdec0}/icons/git-branch-changes.svg +0 -0
  1965. /package/static/{7204a38 → 3bbdec0}/icons/git-branch-conflicts.svg +0 -0
  1966. /package/static/{7204a38 → 3bbdec0}/icons/git-branch-staged-changes.svg +0 -0
  1967. /package/static/{7204a38 → 3bbdec0}/icons/git-branch.svg +0 -0
  1968. /package/static/{7204a38 → 3bbdec0}/icons/git-commit.svg +0 -0
  1969. /package/static/{7204a38 → 3bbdec0}/icons/git-compare.svg +0 -0
  1970. /package/static/{7204a38 → 3bbdec0}/icons/git-fetch.svg +0 -0
  1971. /package/static/{7204a38 → 3bbdec0}/icons/git-merge.svg +0 -0
  1972. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request-closed.svg +0 -0
  1973. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request-create.svg +0 -0
  1974. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request-done.svg +0 -0
  1975. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request-draft.svg +0 -0
  1976. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request-go-to-changes.svg +0 -0
  1977. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request-new-changes.svg +0 -0
  1978. /package/static/{7204a38 → 3bbdec0}/icons/git-pull-request.svg +0 -0
  1979. /package/static/{7204a38 → 3bbdec0}/icons/git-stash-apply.svg +0 -0
  1980. /package/static/{7204a38 → 3bbdec0}/icons/git-stash-pop.svg +0 -0
  1981. /package/static/{7204a38 → 3bbdec0}/icons/git-stash.svg +0 -0
  1982. /package/static/{7204a38 → 3bbdec0}/icons/github-action.svg +0 -0
  1983. /package/static/{7204a38 → 3bbdec0}/icons/github-alt.svg +0 -0
  1984. /package/static/{7204a38 → 3bbdec0}/icons/github-inverted.svg +0 -0
  1985. /package/static/{7204a38 → 3bbdec0}/icons/github-project.svg +0 -0
  1986. /package/static/{7204a38 → 3bbdec0}/icons/github.svg +0 -0
  1987. /package/static/{7204a38 → 3bbdec0}/icons/globe.svg +0 -0
  1988. /package/static/{7204a38 → 3bbdec0}/icons/go-to-editing-session.svg +0 -0
  1989. /package/static/{7204a38 → 3bbdec0}/icons/go-to-file.svg +0 -0
  1990. /package/static/{7204a38 → 3bbdec0}/icons/go-to-search.svg +0 -0
  1991. /package/static/{7204a38 → 3bbdec0}/icons/grabber.svg +0 -0
  1992. /package/static/{7204a38 → 3bbdec0}/icons/graph-left.svg +0 -0
  1993. /package/static/{7204a38 → 3bbdec0}/icons/graph-line.svg +0 -0
  1994. /package/static/{7204a38 → 3bbdec0}/icons/graph-scatter.svg +0 -0
  1995. /package/static/{7204a38 → 3bbdec0}/icons/graph.svg +0 -0
  1996. /package/static/{7204a38 → 3bbdec0}/icons/gripper.svg +0 -0
  1997. /package/static/{7204a38 → 3bbdec0}/icons/group-by-ref-type.svg +0 -0
  1998. /package/static/{7204a38 → 3bbdec0}/icons/heart-filled.svg +0 -0
  1999. /package/static/{7204a38 → 3bbdec0}/icons/heart.svg +0 -0
  2000. /package/static/{7204a38 → 3bbdec0}/icons/history.svg +0 -0
  2001. /package/static/{7204a38 → 3bbdec0}/icons/home.svg +0 -0
  2002. /package/static/{7204a38 → 3bbdec0}/icons/horizontal-rule.svg +0 -0
  2003. /package/static/{7204a38 → 3bbdec0}/icons/hubot.svg +0 -0
  2004. /package/static/{7204a38 → 3bbdec0}/icons/icon-close.svg +0 -0
  2005. /package/static/{7204a38 → 3bbdec0}/icons/icon-source-control.svg +0 -0
  2006. /package/static/{7204a38 → 3bbdec0}/icons/icon-sync.svg +0 -0
  2007. /package/static/{7204a38 → 3bbdec0}/icons/icon.png +0 -0
  2008. /package/static/{7204a38 → 3bbdec0}/icons/icon.svg +0 -0
  2009. /package/static/{7204a38 → 3bbdec0}/icons/inbox.svg +0 -0
  2010. /package/static/{7204a38 → 3bbdec0}/icons/indent.svg +0 -0
  2011. /package/static/{7204a38 → 3bbdec0}/icons/index-zero.svg +0 -0
  2012. /package/static/{7204a38 → 3bbdec0}/icons/info.svg +0 -0
  2013. /package/static/{7204a38 → 3bbdec0}/icons/insert.svg +0 -0
  2014. /package/static/{7204a38 → 3bbdec0}/icons/inspect.svg +0 -0
  2015. /package/static/{7204a38 → 3bbdec0}/icons/issue-draft.svg +0 -0
  2016. /package/static/{7204a38 → 3bbdec0}/icons/issue-reopened.svg +0 -0
  2017. /package/static/{7204a38 → 3bbdec0}/icons/issues.svg +0 -0
  2018. /package/static/{7204a38 → 3bbdec0}/icons/italic.svg +0 -0
  2019. /package/static/{7204a38 → 3bbdec0}/icons/jersey.svg +0 -0
  2020. /package/static/{7204a38 → 3bbdec0}/icons/json.svg +0 -0
  2021. /package/static/{7204a38 → 3bbdec0}/icons/kebab-vertical.svg +0 -0
  2022. /package/static/{7204a38 → 3bbdec0}/icons/key.svg +0 -0
  2023. /package/static/{7204a38 → 3bbdec0}/icons/keyboard-tab-above.svg +0 -0
  2024. /package/static/{7204a38 → 3bbdec0}/icons/keyboard-tab-below.svg +0 -0
  2025. /package/static/{7204a38 → 3bbdec0}/icons/keyboard-tab.svg +0 -0
  2026. /package/static/{7204a38 → 3bbdec0}/icons/language-icon.svg +0 -0
  2027. /package/static/{7204a38 → 3bbdec0}/icons/law.svg +0 -0
  2028. /package/static/{7204a38 → 3bbdec0}/icons/layers-active.svg +0 -0
  2029. /package/static/{7204a38 → 3bbdec0}/icons/layers-dot.svg +0 -0
  2030. /package/static/{7204a38 → 3bbdec0}/icons/layers.svg +0 -0
  2031. /package/static/{7204a38 → 3bbdec0}/icons/layout-activitybar-left.svg +0 -0
  2032. /package/static/{7204a38 → 3bbdec0}/icons/layout-activitybar-right.svg +0 -0
  2033. /package/static/{7204a38 → 3bbdec0}/icons/layout-centered.svg +0 -0
  2034. /package/static/{7204a38 → 3bbdec0}/icons/layout-menubar.svg +0 -0
  2035. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel-center.svg +0 -0
  2036. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel-dock.svg +0 -0
  2037. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel-justify.svg +0 -0
  2038. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel-left.svg +0 -0
  2039. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel-off.svg +0 -0
  2040. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel-right.svg +0 -0
  2041. /package/static/{7204a38 → 3bbdec0}/icons/layout-panel.svg +0 -0
  2042. /package/static/{7204a38 → 3bbdec0}/icons/layout-sidebar-left-dock.svg +0 -0
  2043. /package/static/{7204a38 → 3bbdec0}/icons/layout-sidebar-left-off.svg +0 -0
  2044. /package/static/{7204a38 → 3bbdec0}/icons/layout-sidebar-left.svg +0 -0
  2045. /package/static/{7204a38 → 3bbdec0}/icons/layout-sidebar-right-dock.svg +0 -0
  2046. /package/static/{7204a38 → 3bbdec0}/icons/layout-sidebar-right-off.svg +0 -0
  2047. /package/static/{7204a38 → 3bbdec0}/icons/layout-sidebar-right.svg +0 -0
  2048. /package/static/{7204a38 → 3bbdec0}/icons/layout-statusbar.svg +0 -0
  2049. /package/static/{7204a38 → 3bbdec0}/icons/layout.svg +0 -0
  2050. /package/static/{7204a38 → 3bbdec0}/icons/library.svg +0 -0
  2051. /package/static/{7204a38 → 3bbdec0}/icons/lightbulb-autofix.svg +0 -0
  2052. /package/static/{7204a38 → 3bbdec0}/icons/lightbulb-empty.svg +0 -0
  2053. /package/static/{7204a38 → 3bbdec0}/icons/lightbulb-sparkle.svg +0 -0
  2054. /package/static/{7204a38 → 3bbdec0}/icons/lightbulb.svg +0 -0
  2055. /package/static/{7204a38 → 3bbdec0}/icons/link-external.svg +0 -0
  2056. /package/static/{7204a38 → 3bbdec0}/icons/link.svg +0 -0
  2057. /package/static/{7204a38 → 3bbdec0}/icons/list-filter.svg +0 -0
  2058. /package/static/{7204a38 → 3bbdec0}/icons/list-flat.svg +0 -0
  2059. /package/static/{7204a38 → 3bbdec0}/icons/list-ordered.svg +0 -0
  2060. /package/static/{7204a38 → 3bbdec0}/icons/list-selection.svg +0 -0
  2061. /package/static/{7204a38 → 3bbdec0}/icons/list-tree.svg +0 -0
  2062. /package/static/{7204a38 → 3bbdec0}/icons/list-unordered.svg +0 -0
  2063. /package/static/{7204a38 → 3bbdec0}/icons/live-share.svg +0 -0
  2064. /package/static/{7204a38 → 3bbdec0}/icons/loading.svg +0 -0
  2065. /package/static/{7204a38 → 3bbdec0}/icons/location.svg +0 -0
  2066. /package/static/{7204a38 → 3bbdec0}/icons/lock-small.svg +0 -0
  2067. /package/static/{7204a38 → 3bbdec0}/icons/lock.svg +0 -0
  2068. /package/static/{7204a38 → 3bbdec0}/icons/magnet.svg +0 -0
  2069. /package/static/{7204a38 → 3bbdec0}/icons/mail-read.svg +0 -0
  2070. /package/static/{7204a38 → 3bbdec0}/icons/mail.svg +0 -0
  2071. /package/static/{7204a38 → 3bbdec0}/icons/map-filled.svg +0 -0
  2072. /package/static/{7204a38 → 3bbdec0}/icons/map-vertical-filled.svg +0 -0
  2073. /package/static/{7204a38 → 3bbdec0}/icons/map-vertical.svg +0 -0
  2074. /package/static/{7204a38 → 3bbdec0}/icons/map.svg +0 -0
  2075. /package/static/{7204a38 → 3bbdec0}/icons/markdown.svg +0 -0
  2076. /package/static/{7204a38 → 3bbdec0}/icons/mcp.svg +0 -0
  2077. /package/static/{7204a38 → 3bbdec0}/icons/megaphone.svg +0 -0
  2078. /package/static/{7204a38 → 3bbdec0}/icons/mention.svg +0 -0
  2079. /package/static/{7204a38 → 3bbdec0}/icons/menu.svg +0 -0
  2080. /package/static/{7204a38 → 3bbdec0}/icons/merge-into.svg +0 -0
  2081. /package/static/{7204a38 → 3bbdec0}/icons/merge.svg +0 -0
  2082. /package/static/{7204a38 → 3bbdec0}/icons/mic-filled.svg +0 -0
  2083. /package/static/{7204a38 → 3bbdec0}/icons/mic.svg +0 -0
  2084. /package/static/{7204a38 → 3bbdec0}/icons/milestone.svg +0 -0
  2085. /package/static/{7204a38 → 3bbdec0}/icons/mirror.svg +0 -0
  2086. /package/static/{7204a38 → 3bbdec0}/icons/mortar-board.svg +0 -0
  2087. /package/static/{7204a38 → 3bbdec0}/icons/move.svg +0 -0
  2088. /package/static/{7204a38 → 3bbdec0}/icons/multiple-windows.svg +0 -0
  2089. /package/static/{7204a38 → 3bbdec0}/icons/music.svg +0 -0
  2090. /package/static/{7204a38 → 3bbdec0}/icons/mute.svg +0 -0
  2091. /package/static/{7204a38 → 3bbdec0}/icons/new-collection.svg +0 -0
  2092. /package/static/{7204a38 → 3bbdec0}/icons/new-file.svg +0 -0
  2093. /package/static/{7204a38 → 3bbdec0}/icons/new-folder.svg +0 -0
  2094. /package/static/{7204a38 → 3bbdec0}/icons/new-session.svg +0 -0
  2095. /package/static/{7204a38 → 3bbdec0}/icons/newline.svg +0 -0
  2096. /package/static/{7204a38 → 3bbdec0}/icons/no-newline.svg +0 -0
  2097. /package/static/{7204a38 → 3bbdec0}/icons/note.svg +0 -0
  2098. /package/static/{7204a38 → 3bbdec0}/icons/notebook-template.svg +0 -0
  2099. /package/static/{7204a38 → 3bbdec0}/icons/notebook.svg +0 -0
  2100. /package/static/{7204a38 → 3bbdec0}/icons/octoface.svg +0 -0
  2101. /package/static/{7204a38 → 3bbdec0}/icons/open-in-product.svg +0 -0
  2102. /package/static/{7204a38 → 3bbdec0}/icons/open-in-window.svg +0 -0
  2103. /package/static/{7204a38 → 3bbdec0}/icons/open-preview.svg +0 -0
  2104. /package/static/{7204a38 → 3bbdec0}/icons/openai.svg +0 -0
  2105. /package/static/{7204a38 → 3bbdec0}/icons/organization.svg +0 -0
  2106. /package/static/{7204a38 → 3bbdec0}/icons/output.svg +0 -0
  2107. /package/static/{7204a38 → 3bbdec0}/icons/package.svg +0 -0
  2108. /package/static/{7204a38 → 3bbdec0}/icons/paintcan.svg +0 -0
  2109. /package/static/{7204a38 → 3bbdec0}/icons/pass-filled.svg +0 -0
  2110. /package/static/{7204a38 → 3bbdec0}/icons/pass.svg +0 -0
  2111. /package/static/{7204a38 → 3bbdec0}/icons/percentage.svg +0 -0
  2112. /package/static/{7204a38 → 3bbdec0}/icons/person-add.svg +0 -0
  2113. /package/static/{7204a38 → 3bbdec0}/icons/person.svg +0 -0
  2114. /package/static/{7204a38 → 3bbdec0}/icons/piano.svg +0 -0
  2115. /package/static/{7204a38 → 3bbdec0}/icons/pie-chart.svg +0 -0
  2116. /package/static/{7204a38 → 3bbdec0}/icons/pin.svg +0 -0
  2117. /package/static/{7204a38 → 3bbdec0}/icons/pinned-dirty.svg +0 -0
  2118. /package/static/{7204a38 → 3bbdec0}/icons/pinned.svg +0 -0
  2119. /package/static/{7204a38 → 3bbdec0}/icons/play-circle.svg +0 -0
  2120. /package/static/{7204a38 → 3bbdec0}/icons/play.svg +0 -0
  2121. /package/static/{7204a38 → 3bbdec0}/icons/plug.svg +0 -0
  2122. /package/static/{7204a38 → 3bbdec0}/icons/preserve-case.svg +0 -0
  2123. /package/static/{7204a38 → 3bbdec0}/icons/preview.svg +0 -0
  2124. /package/static/{7204a38 → 3bbdec0}/icons/primitive-square.svg +0 -0
  2125. /package/static/{7204a38 → 3bbdec0}/icons/progress.svg +0 -0
  2126. /package/static/{7204a38 → 3bbdec0}/icons/project.svg +0 -0
  2127. /package/static/{7204a38 → 3bbdec0}/icons/pulse.svg +0 -0
  2128. /package/static/{7204a38 → 3bbdec0}/icons/pwa-icon-192.png +0 -0
  2129. /package/static/{7204a38 → 3bbdec0}/icons/pwa-icon-512.png +0 -0
  2130. /package/static/{7204a38 → 3bbdec0}/icons/python.svg +0 -0
  2131. /package/static/{7204a38 → 3bbdec0}/icons/question.svg +0 -0
  2132. /package/static/{7204a38 → 3bbdec0}/icons/quote.svg +0 -0
  2133. /package/static/{7204a38 → 3bbdec0}/icons/quotes.svg +0 -0
  2134. /package/static/{7204a38 → 3bbdec0}/icons/radio-tower.svg +0 -0
  2135. /package/static/{7204a38 → 3bbdec0}/icons/reactions.svg +0 -0
  2136. /package/static/{7204a38 → 3bbdec0}/icons/record-keys.svg +0 -0
  2137. /package/static/{7204a38 → 3bbdec0}/icons/record-small.svg +0 -0
  2138. /package/static/{7204a38 → 3bbdec0}/icons/record.svg +0 -0
  2139. /package/static/{7204a38 → 3bbdec0}/icons/redo.svg +0 -0
  2140. /package/static/{7204a38 → 3bbdec0}/icons/references.svg +0 -0
  2141. /package/static/{7204a38 → 3bbdec0}/icons/refresh.svg +0 -0
  2142. /package/static/{7204a38 → 3bbdec0}/icons/regex.svg +0 -0
  2143. /package/static/{7204a38 → 3bbdec0}/icons/remote-explorer.svg +0 -0
  2144. /package/static/{7204a38 → 3bbdec0}/icons/remote.svg +0 -0
  2145. /package/static/{7204a38 → 3bbdec0}/icons/remove-small.svg +0 -0
  2146. /package/static/{7204a38 → 3bbdec0}/icons/remove.svg +0 -0
  2147. /package/static/{7204a38 → 3bbdec0}/icons/rename.svg +0 -0
  2148. /package/static/{7204a38 → 3bbdec0}/icons/replace-all.svg +0 -0
  2149. /package/static/{7204a38 → 3bbdec0}/icons/replace.svg +0 -0
  2150. /package/static/{7204a38 → 3bbdec0}/icons/reply.svg +0 -0
  2151. /package/static/{7204a38 → 3bbdec0}/icons/repo-clone.svg +0 -0
  2152. /package/static/{7204a38 → 3bbdec0}/icons/repo-fetch.svg +0 -0
  2153. /package/static/{7204a38 → 3bbdec0}/icons/repo-force-push.svg +0 -0
  2154. /package/static/{7204a38 → 3bbdec0}/icons/repo-forked.svg +0 -0
  2155. /package/static/{7204a38 → 3bbdec0}/icons/repo-pinned.svg +0 -0
  2156. /package/static/{7204a38 → 3bbdec0}/icons/repo-pull.svg +0 -0
  2157. /package/static/{7204a38 → 3bbdec0}/icons/repo-push.svg +0 -0
  2158. /package/static/{7204a38 → 3bbdec0}/icons/repo-selected.svg +0 -0
  2159. /package/static/{7204a38 → 3bbdec0}/icons/repo.svg +0 -0
  2160. /package/static/{7204a38 → 3bbdec0}/icons/report.svg +0 -0
  2161. /package/static/{7204a38 → 3bbdec0}/icons/request-changes.svg +0 -0
  2162. /package/static/{7204a38 → 3bbdec0}/icons/robot.svg +0 -0
  2163. /package/static/{7204a38 → 3bbdec0}/icons/rocket.svg +0 -0
  2164. /package/static/{7204a38 → 3bbdec0}/icons/root-folder-opened.svg +0 -0
  2165. /package/static/{7204a38 → 3bbdec0}/icons/root-folder.svg +0 -0
  2166. /package/static/{7204a38 → 3bbdec0}/icons/rss.svg +0 -0
  2167. /package/static/{7204a38 → 3bbdec0}/icons/ruby.svg +0 -0
  2168. /package/static/{7204a38 → 3bbdec0}/icons/run-above.svg +0 -0
  2169. /package/static/{7204a38 → 3bbdec0}/icons/run-all-coverage.svg +0 -0
  2170. /package/static/{7204a38 → 3bbdec0}/icons/run-all.svg +0 -0
  2171. /package/static/{7204a38 → 3bbdec0}/icons/run-below.svg +0 -0
  2172. /package/static/{7204a38 → 3bbdec0}/icons/run-coverage.svg +0 -0
  2173. /package/static/{7204a38 → 3bbdec0}/icons/run-errors.svg +0 -0
  2174. /package/static/{7204a38 → 3bbdec0}/icons/run-with-deps.svg +0 -0
  2175. /package/static/{7204a38 → 3bbdec0}/icons/save-all.svg +0 -0
  2176. /package/static/{7204a38 → 3bbdec0}/icons/save-as.svg +0 -0
  2177. /package/static/{7204a38 → 3bbdec0}/icons/save.svg +0 -0
  2178. /package/static/{7204a38 → 3bbdec0}/icons/screen-cut.svg +0 -0
  2179. /package/static/{7204a38 → 3bbdec0}/icons/screen-full.svg +0 -0
  2180. /package/static/{7204a38 → 3bbdec0}/icons/screen-normal.svg +0 -0
  2181. /package/static/{7204a38 → 3bbdec0}/icons/search-fuzzy.svg +0 -0
  2182. /package/static/{7204a38 → 3bbdec0}/icons/search-large.svg +0 -0
  2183. /package/static/{7204a38 → 3bbdec0}/icons/search-sparkle.svg +0 -0
  2184. /package/static/{7204a38 → 3bbdec0}/icons/search-stop.svg +0 -0
  2185. /package/static/{7204a38 → 3bbdec0}/icons/search.svg +0 -0
  2186. /package/static/{7204a38 → 3bbdec0}/icons/send-to-remote-agent.svg +0 -0
  2187. /package/static/{7204a38 → 3bbdec0}/icons/send.svg +0 -0
  2188. /package/static/{7204a38 → 3bbdec0}/icons/server-environment.svg +0 -0
  2189. /package/static/{7204a38 → 3bbdec0}/icons/server-process.svg +0 -0
  2190. /package/static/{7204a38 → 3bbdec0}/icons/server.svg +0 -0
  2191. /package/static/{7204a38 → 3bbdec0}/icons/session-in-progress.svg +0 -0
  2192. /package/static/{7204a38 → 3bbdec0}/icons/settings-gear.svg +0 -0
  2193. /package/static/{7204a38 → 3bbdec0}/icons/settings.svg +0 -0
  2194. /package/static/{7204a38 → 3bbdec0}/icons/share.svg +0 -0
  2195. /package/static/{7204a38 → 3bbdec0}/icons/shield.svg +0 -0
  2196. /package/static/{7204a38 → 3bbdec0}/icons/sign-in.svg +0 -0
  2197. /package/static/{7204a38 → 3bbdec0}/icons/sign-out.svg +0 -0
  2198. /package/static/{7204a38 → 3bbdec0}/icons/skip.svg +0 -0
  2199. /package/static/{7204a38 → 3bbdec0}/icons/smiley.svg +0 -0
  2200. /package/static/{7204a38 → 3bbdec0}/icons/snake.svg +0 -0
  2201. /package/static/{7204a38 → 3bbdec0}/icons/sort-precedence.svg +0 -0
  2202. /package/static/{7204a38 → 3bbdec0}/icons/source-control.svg +0 -0
  2203. /package/static/{7204a38 → 3bbdec0}/icons/sparkle-filled.svg +0 -0
  2204. /package/static/{7204a38 → 3bbdec0}/icons/sparkle.svg +0 -0
  2205. /package/static/{7204a38 → 3bbdec0}/icons/split-horizontal.svg +0 -0
  2206. /package/static/{7204a38 → 3bbdec0}/icons/split-vertical.svg +0 -0
  2207. /package/static/{7204a38 → 3bbdec0}/icons/squiggly-error.svg +0 -0
  2208. /package/static/{7204a38 → 3bbdec0}/icons/squiggly-warning.svg +0 -0
  2209. /package/static/{7204a38 → 3bbdec0}/icons/squirrel.svg +0 -0
  2210. /package/static/{7204a38 → 3bbdec0}/icons/star-empty.svg +0 -0
  2211. /package/static/{7204a38 → 3bbdec0}/icons/star-full.svg +0 -0
  2212. /package/static/{7204a38 → 3bbdec0}/icons/star-half.svg +0 -0
  2213. /package/static/{7204a38 → 3bbdec0}/icons/stop-circle.svg +0 -0
  2214. /package/static/{7204a38 → 3bbdec0}/icons/strikethrough.svg +0 -0
  2215. /package/static/{7204a38 → 3bbdec0}/icons/surround-with.svg +0 -0
  2216. /package/static/{7204a38 → 3bbdec0}/icons/symbol-array.svg +0 -0
  2217. /package/static/{7204a38 → 3bbdec0}/icons/symbol-boolean.svg +0 -0
  2218. /package/static/{7204a38 → 3bbdec0}/icons/symbol-class.svg +0 -0
  2219. /package/static/{7204a38 → 3bbdec0}/icons/symbol-color.svg +0 -0
  2220. /package/static/{7204a38 → 3bbdec0}/icons/symbol-constant.svg +0 -0
  2221. /package/static/{7204a38 → 3bbdec0}/icons/symbol-enum-member.svg +0 -0
  2222. /package/static/{7204a38 → 3bbdec0}/icons/symbol-enum.svg +0 -0
  2223. /package/static/{7204a38 → 3bbdec0}/icons/symbol-event.svg +0 -0
  2224. /package/static/{7204a38 → 3bbdec0}/icons/symbol-field.svg +0 -0
  2225. /package/static/{7204a38 → 3bbdec0}/icons/symbol-file.svg +0 -0
  2226. /package/static/{7204a38 → 3bbdec0}/icons/symbol-interface.svg +0 -0
  2227. /package/static/{7204a38 → 3bbdec0}/icons/symbol-key.svg +0 -0
  2228. /package/static/{7204a38 → 3bbdec0}/icons/symbol-keyword.svg +0 -0
  2229. /package/static/{7204a38 → 3bbdec0}/icons/symbol-method-arrow.svg +0 -0
  2230. /package/static/{7204a38 → 3bbdec0}/icons/symbol-method.svg +0 -0
  2231. /package/static/{7204a38 → 3bbdec0}/icons/symbol-misc.svg +0 -0
  2232. /package/static/{7204a38 → 3bbdec0}/icons/symbol-namespace.svg +0 -0
  2233. /package/static/{7204a38 → 3bbdec0}/icons/symbol-numeric.svg +0 -0
  2234. /package/static/{7204a38 → 3bbdec0}/icons/symbol-operator.svg +0 -0
  2235. /package/static/{7204a38 → 3bbdec0}/icons/symbol-parameter.svg +0 -0
  2236. /package/static/{7204a38 → 3bbdec0}/icons/symbol-property.svg +0 -0
  2237. /package/static/{7204a38 → 3bbdec0}/icons/symbol-ruler.svg +0 -0
  2238. /package/static/{7204a38 → 3bbdec0}/icons/symbol-snippet.svg +0 -0
  2239. /package/static/{7204a38 → 3bbdec0}/icons/symbol-string.svg +0 -0
  2240. /package/static/{7204a38 → 3bbdec0}/icons/symbol-structure.svg +0 -0
  2241. /package/static/{7204a38 → 3bbdec0}/icons/symbol-variable.svg +0 -0
  2242. /package/static/{7204a38 → 3bbdec0}/icons/sync-ignored.svg +0 -0
  2243. /package/static/{7204a38 → 3bbdec0}/icons/sync.svg +0 -0
  2244. /package/static/{7204a38 → 3bbdec0}/icons/table.svg +0 -0
  2245. /package/static/{7204a38 → 3bbdec0}/icons/tag.svg +0 -0
  2246. /package/static/{7204a38 → 3bbdec0}/icons/target.svg +0 -0
  2247. /package/static/{7204a38 → 3bbdec0}/icons/tasklist.svg +0 -0
  2248. /package/static/{7204a38 → 3bbdec0}/icons/telescope.svg +0 -0
  2249. /package/static/{7204a38 → 3bbdec0}/icons/terminal-bash.svg +0 -0
  2250. /package/static/{7204a38 → 3bbdec0}/icons/terminal-cmd.svg +0 -0
  2251. /package/static/{7204a38 → 3bbdec0}/icons/terminal-debian.svg +0 -0
  2252. /package/static/{7204a38 → 3bbdec0}/icons/terminal-git-bash.svg +0 -0
  2253. /package/static/{7204a38 → 3bbdec0}/icons/terminal-linux.svg +0 -0
  2254. /package/static/{7204a38 → 3bbdec0}/icons/terminal-powershell.svg +0 -0
  2255. /package/static/{7204a38 → 3bbdec0}/icons/terminal-tmux.svg +0 -0
  2256. /package/static/{7204a38 → 3bbdec0}/icons/terminal-ubuntu.svg +0 -0
  2257. /package/static/{7204a38 → 3bbdec0}/icons/terminal.svg +0 -0
  2258. /package/static/{7204a38 → 3bbdec0}/icons/text-size.svg +0 -0
  2259. /package/static/{7204a38 → 3bbdec0}/icons/theme-icon.png +0 -0
  2260. /package/static/{7204a38 → 3bbdec0}/icons/thinking.svg +0 -0
  2261. /package/static/{7204a38 → 3bbdec0}/icons/three-bars.svg +0 -0
  2262. /package/static/{7204a38 → 3bbdec0}/icons/thumbsdown-filled.svg +0 -0
  2263. /package/static/{7204a38 → 3bbdec0}/icons/thumbsdown.svg +0 -0
  2264. /package/static/{7204a38 → 3bbdec0}/icons/thumbsup-filled.svg +0 -0
  2265. /package/static/{7204a38 → 3bbdec0}/icons/thumbsup.svg +0 -0
  2266. /package/static/{7204a38 → 3bbdec0}/icons/tools.svg +0 -0
  2267. /package/static/{7204a38 → 3bbdec0}/icons/trash.svg +0 -0
  2268. /package/static/{7204a38 → 3bbdec0}/icons/triangle-down.svg +0 -0
  2269. /package/static/{7204a38 → 3bbdec0}/icons/triangle-left.svg +0 -0
  2270. /package/static/{7204a38 → 3bbdec0}/icons/triangle-right.svg +0 -0
  2271. /package/static/{7204a38 → 3bbdec0}/icons/triangle-up.svg +0 -0
  2272. /package/static/{7204a38 → 3bbdec0}/icons/twitter.svg +0 -0
  2273. /package/static/{7204a38 → 3bbdec0}/icons/type-hierarchy-sub.svg +0 -0
  2274. /package/static/{7204a38 → 3bbdec0}/icons/type-hierarchy-super.svg +0 -0
  2275. /package/static/{7204a38 → 3bbdec0}/icons/type-hierarchy.svg +0 -0
  2276. /package/static/{7204a38 → 3bbdec0}/icons/unarchive.svg +0 -0
  2277. /package/static/{7204a38 → 3bbdec0}/icons/unfold.svg +0 -0
  2278. /package/static/{7204a38 → 3bbdec0}/icons/ungroup-by-ref-type.svg +0 -0
  2279. /package/static/{7204a38 → 3bbdec0}/icons/unlock.svg +0 -0
  2280. /package/static/{7204a38 → 3bbdec0}/icons/unmute.svg +0 -0
  2281. /package/static/{7204a38 → 3bbdec0}/icons/unverified.svg +0 -0
  2282. /package/static/{7204a38 → 3bbdec0}/icons/variable-group.svg +0 -0
  2283. /package/static/{7204a38 → 3bbdec0}/icons/verified-filled.svg +0 -0
  2284. /package/static/{7204a38 → 3bbdec0}/icons/verified.svg +0 -0
  2285. /package/static/{7204a38 → 3bbdec0}/icons/versions.svg +0 -0
  2286. /package/static/{7204a38 → 3bbdec0}/icons/vm-active.svg +0 -0
  2287. /package/static/{7204a38 → 3bbdec0}/icons/vm-connect.svg +0 -0
  2288. /package/static/{7204a38 → 3bbdec0}/icons/vm-outline.svg +0 -0
  2289. /package/static/{7204a38 → 3bbdec0}/icons/vm-pending.svg +0 -0
  2290. /package/static/{7204a38 → 3bbdec0}/icons/vm-running.svg +0 -0
  2291. /package/static/{7204a38 → 3bbdec0}/icons/vm-small.svg +0 -0
  2292. /package/static/{7204a38 → 3bbdec0}/icons/vm.svg +0 -0
  2293. /package/static/{7204a38 → 3bbdec0}/icons/vr.svg +0 -0
  2294. /package/static/{7204a38 → 3bbdec0}/icons/vscode-insiders.svg +0 -0
  2295. /package/static/{7204a38 → 3bbdec0}/icons/vscode.svg +0 -0
  2296. /package/static/{7204a38 → 3bbdec0}/icons/wand.svg +0 -0
  2297. /package/static/{7204a38 → 3bbdec0}/icons/warning.svg +0 -0
  2298. /package/static/{7204a38 → 3bbdec0}/icons/watch.svg +0 -0
  2299. /package/static/{7204a38 → 3bbdec0}/icons/whitespace.svg +0 -0
  2300. /package/static/{7204a38 → 3bbdec0}/icons/whole-word.svg +0 -0
  2301. /package/static/{7204a38 → 3bbdec0}/icons/window-active.svg +0 -0
  2302. /package/static/{7204a38 → 3bbdec0}/icons/window.svg +0 -0
  2303. /package/static/{7204a38 → 3bbdec0}/icons/word-wrap.svg +0 -0
  2304. /package/static/{7204a38 → 3bbdec0}/icons/workspace-trusted.svg +0 -0
  2305. /package/static/{7204a38 → 3bbdec0}/icons/workspace-unknown.svg +0 -0
  2306. /package/static/{7204a38 → 3bbdec0}/icons/workspace-untrusted.svg +0 -0
  2307. /package/static/{7204a38 → 3bbdec0}/icons/worktree-small.svg +0 -0
  2308. /package/static/{7204a38 → 3bbdec0}/icons/worktree.svg +0 -0
  2309. /package/static/{7204a38 → 3bbdec0}/icons/zoom-in.svg +0 -0
  2310. /package/static/{7204a38 → 3bbdec0}/icons/zoom-out.svg +0 -0
  2311. /package/static/{7204a38 → 3bbdec0}/js/babel-parser.js +0 -0
  2312. /package/static/{7204a38 → 3bbdec0}/js/ky.js +0 -0
  2313. /package/static/{7204a38 → 3bbdec0}/js/lvce-editor-import-script.js +0 -0
  2314. /package/static/{7204a38 → 3bbdec0}/js/lvce-editor-ipc.js +0 -0
  2315. /package/static/{7204a38 → 3bbdec0}/js/lvce-editor-json-rpc.js +0 -0
  2316. /package/static/{7204a38 → 3bbdec0}/js/lvce-editor-rpc.js +0 -0
  2317. /package/static/{7204a38 → 3bbdec0}/js/lvce-editor-verror.js +0 -0
  2318. /package/static/{7204a38 → 3bbdec0}/js/p-min-delay.js +0 -0
  2319. /package/static/{7204a38 → 3bbdec0}/js/pretty-bytes.js +0 -0
  2320. /package/static/{7204a38 → 3bbdec0}/js/preview-injected.js +0 -0
  2321. /package/static/{7204a38 → 3bbdec0}/js/yoctodelay.js +0 -0
  2322. /package/static/{7204a38 → 3bbdec0}/lib-css/termterm.css +0 -0
  2323. /package/static/{7204a38 → 3bbdec0}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
  2324. /package/static/{7204a38 → 3bbdec0}/packages/auth-worker/dist/authWorkerMain.js +0 -0
  2325. /package/static/{7204a38 → 3bbdec0}/packages/chat-debug-view/dist/chatDebugViewWorkerMain.js +0 -0
  2326. /package/static/{7204a38 → 3bbdec0}/packages/chat-math-worker/dist/chatMathWorkerMain.js +0 -0
  2327. /package/static/{7204a38 → 3bbdec0}/packages/chat-message-parsing-worker/dist/chatMessageParsingWorkerMain.js +0 -0
  2328. /package/static/{7204a38 → 3bbdec0}/packages/chat-network-worker/dist/chatNetworkWorkerMain.js +0 -0
  2329. /package/static/{7204a38 → 3bbdec0}/packages/chat-tool-worker/dist/chatToolWorkerMain.js +0 -0
  2330. /package/static/{7204a38 → 3bbdec0}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  2331. /package/static/{7204a38 → 3bbdec0}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  2332. /package/static/{7204a38 → 3bbdec0}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  2333. /package/static/{7204a38 → 3bbdec0}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  2334. /package/static/{7204a38 → 3bbdec0}/packages/diff-view/dist/diffViewWorkerMain.js +0 -0
  2335. /package/static/{7204a38 → 3bbdec0}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
  2336. /package/static/{7204a38 → 3bbdec0}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
  2337. /package/static/{7204a38 → 3bbdec0}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  2338. /package/static/{7204a38 → 3bbdec0}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  2339. /package/static/{7204a38 → 3bbdec0}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
  2340. /package/static/{7204a38 → 3bbdec0}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
  2341. /package/static/{7204a38 → 3bbdec0}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  2342. /package/static/{7204a38 → 3bbdec0}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
  2343. /package/static/{7204a38 → 3bbdec0}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
  2344. /package/static/{7204a38 → 3bbdec0}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
  2345. /package/static/{7204a38 → 3bbdec0}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  2346. /package/static/{7204a38 → 3bbdec0}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  2347. /package/static/{7204a38 → 3bbdec0}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  2348. /package/static/{7204a38 → 3bbdec0}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  2349. /package/static/{7204a38 → 3bbdec0}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  2350. /package/static/{7204a38 → 3bbdec0}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  2351. /package/static/{7204a38 → 3bbdec0}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  2352. /package/static/{7204a38 → 3bbdec0}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
  2353. /package/static/{7204a38 → 3bbdec0}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
  2354. /package/static/{7204a38 → 3bbdec0}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  2355. /package/static/{7204a38 → 3bbdec0}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
  2356. /package/static/{7204a38 → 3bbdec0}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
  2357. /package/static/{7204a38 → 3bbdec0}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
  2358. /package/static/{7204a38 → 3bbdec0}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
  2359. /package/static/{7204a38 → 3bbdec0}/packages/preload/dist/index.js +0 -0
  2360. /package/static/{7204a38 → 3bbdec0}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
  2361. /package/static/{7204a38 → 3bbdec0}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
  2362. /package/static/{7204a38 → 3bbdec0}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
  2363. /package/static/{7204a38 → 3bbdec0}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
  2364. /package/static/{7204a38 → 3bbdec0}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  2365. /package/static/{7204a38 → 3bbdec0}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  2366. /package/static/{7204a38 → 3bbdec0}/packages/renderer-process/LICENSE +0 -0
  2367. /package/static/{7204a38 → 3bbdec0}/packages/renderer-process/README.md +0 -0
  2368. /package/static/{7204a38 → 3bbdec0}/packages/renderer-process/package.json +0 -0
  2369. /package/static/{7204a38 → 3bbdec0}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  2370. /package/static/{7204a38 → 3bbdec0}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  2371. /package/static/{7204a38 → 3bbdec0}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  2372. /package/static/{7204a38 → 3bbdec0}/packages/status-bar-worker/dist/statusBarWorkerMain.js +0 -0
  2373. /package/static/{7204a38 → 3bbdec0}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  2374. /package/static/{7204a38 → 3bbdec0}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
  2375. /package/static/{7204a38 → 3bbdec0}/packages/test-worker/dist/testWorkerMain.js +0 -0
  2376. /package/static/{7204a38 → 3bbdec0}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
  2377. /package/static/{7204a38 → 3bbdec0}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  2378. /package/static/{7204a38 → 3bbdec0}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
  2379. /package/static/{7204a38 → 3bbdec0}/packages/update-worker/dist/updateWorkerMain.js +0 -0
  2380. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.cpp +0 -0
  2381. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.css +0 -0
  2382. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.csv +0 -0
  2383. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.dart +0 -0
  2384. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.env +0 -0
  2385. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.ex +0 -0
  2386. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.html +0 -0
  2387. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.java +0 -0
  2388. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.jl +0 -0
  2389. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.js +0 -0
  2390. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.json +0 -0
  2391. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.kt +0 -0
  2392. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.pl +0 -0
  2393. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.py +0 -0
  2394. /package/static/{7204a38 → 3bbdec0}/playground/languages/index.ts +0 -0
  2395. /package/static/{7204a38 → 3bbdec0}/playground/languages/scrolling.txt +0 -0
  2396. /package/static/{7204a38 → 3bbdec0}/playground/languages/tsconfig.json +0 -0
  2397. /package/static/{7204a38 → 3bbdec0}/playground/sample-folder/a.txt +0 -0
  2398. /package/static/{7204a38 → 3bbdec0}/playground/sample-folder/b.txt +0 -0
  2399. /package/static/{7204a38 → 3bbdec0}/playground/sample-folder/c.txt +0 -0
@@ -519,7 +519,7 @@ const register = commandMap => {
519
519
  const getCommand = key => {
520
520
  return commands[key];
521
521
  };
522
- const execute$1 = (command, ...args) => {
522
+ const execute = (command, ...args) => {
523
523
  const fn = getCommand(command);
524
524
  if (!fn) {
525
525
  throw new CommandNotFoundError(command);
@@ -939,7 +939,7 @@ const logError = () => {
939
939
  };
940
940
  const handleMessage = event => {
941
941
  const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
942
- const actualExecute = event?.target?.execute || execute$1;
942
+ const actualExecute = event?.target?.execute || execute;
943
943
  return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
944
944
  };
945
945
 
@@ -1118,18 +1118,18 @@ const create$2 = rpcId => {
1118
1118
  };
1119
1119
 
1120
1120
  const {
1121
- invoke: invoke$c,
1121
+ invoke: invoke$a,
1122
1122
  set: set$e
1123
1123
  } = create$2(6010);
1124
1124
  const login = async options => {
1125
- return invoke$c('Auth.login', options);
1125
+ return invoke$a('Auth.login', options);
1126
1126
  };
1127
1127
  const logout = async options => {
1128
- return invoke$c('Auth.logout', options);
1128
+ return invoke$a('Auth.logout', options);
1129
1129
  };
1130
1130
 
1131
1131
  const {
1132
- invoke: invoke$b,
1132
+ invoke: invoke$9,
1133
1133
  set: set$d
1134
1134
  } = create$2(6008);
1135
1135
 
@@ -1138,7 +1138,7 @@ const {
1138
1138
  } = create$2(6007);
1139
1139
 
1140
1140
  const {
1141
- invoke: invoke$a,
1141
+ invoke: invoke$8,
1142
1142
  set: set$b
1143
1143
  } = create$2(6009);
1144
1144
 
@@ -1255,29 +1255,27 @@ const FocusChatInput = 8000;
1255
1255
  const FocusChatList = 8001;
1256
1256
 
1257
1257
  const {
1258
- invoke: invoke$9,
1259
1258
  set: set$a
1260
1259
  } = create$2(ChatNetworkWorker);
1261
1260
 
1262
1261
  const {
1263
- invoke: invoke$8,
1262
+ invoke: invoke$7,
1264
1263
  set: set$9
1265
1264
  } = create$2(ChatStorageWorker);
1266
1265
  const appendEvent = async event => {
1267
- return invoke$8('ChatStorage.appendEvent', event);
1266
+ return invoke$7('ChatStorage.appendEvent', event);
1268
1267
  };
1269
1268
  const clear = async () => {
1270
- return invoke$8('ChatStorage.clear');
1269
+ return invoke$7('ChatStorage.clear');
1271
1270
  };
1272
1271
  const deleteSession$1 = async id => {
1273
- return invoke$8('ChatStorage.deleteSession', id);
1272
+ return invoke$7('ChatStorage.deleteSession', id);
1274
1273
  };
1275
1274
  const getEvents = async sessionId => {
1276
- return invoke$8('ChatStorage.getEvents', sessionId);
1275
+ return invoke$7('ChatStorage.getEvents', sessionId);
1277
1276
  };
1278
1277
 
1279
1278
  const {
1280
- invoke: invoke$7,
1281
1279
  set: set$8
1282
1280
  } = create$2(ChatToolWorker);
1283
1281
 
@@ -1364,9 +1362,6 @@ const sendMessagePortToIconThemeWorker$1 = async (port, rpcId) => {
1364
1362
  const command = 'IconTheme.handleMessagePort';
1365
1363
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToIconThemeWorker', port, command, rpcId);
1366
1364
  };
1367
- const readFile = async uri => {
1368
- return invoke$1('FileSystem.readFile', uri);
1369
- };
1370
1365
  const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
1371
1366
  const command = 'HandleMessagePort.handleMessagePort2';
1372
1367
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
@@ -2437,16 +2432,16 @@ const archive = () => {
2437
2432
  return i18nString(Archive);
2438
2433
  };
2439
2434
  const openApiApiKeyRequiredMessage = i18nString(OpenApiApiKeyRequiredMessage);
2440
- const openApiRequestFailedMessage = i18nString(OpenApiRequestFailedMessage);
2441
- const openApiRequestFailedOfflineMessage = i18nString(OpenApiRequestFailedOfflineMessage);
2435
+ i18nString(OpenApiRequestFailedMessage);
2436
+ i18nString(OpenApiRequestFailedOfflineMessage);
2442
2437
  const openRouterApiKeyRequiredMessage = i18nString(OpenRouterApiKeyRequiredMessage);
2443
2438
  const openRouterRequestFailedMessage = i18nString(OpenRouterRequestFailedMessage);
2444
2439
  const openRouterTooManyRequestsMessage = i18nString(OpenRouterTooManyRequestsMessage);
2445
2440
  const openRouterRequestFailureReasons = [i18nString(OpenRouterRequestFailureReasonContentSecurityPolicyViolation), i18nString(OpenRouterRequestFailureReasonServerOffline), i18nString(CheckYourInternetConnection)];
2446
2441
  const openRouterTooManyRequestsReasons = [i18nString(WaitAShortTimeAndRetryYourRequest), i18nString(ReduceRequestFrequencyToAvoidRateLimits), i18nString(UseADifferentModelIfThisOneIsSaturated)];
2447
- const backendUrlRequiredMessage = i18nString(BackendUrlRequiredMessage);
2448
- const backendAccessTokenRequiredMessage = i18nString(BackendAccessTokenRequiredMessage);
2449
- const backendCompletionFailedMessage = i18nString(BackendCompletionFailedMessage);
2442
+ i18nString(BackendUrlRequiredMessage);
2443
+ i18nString(BackendAccessTokenRequiredMessage);
2444
+ i18nString(BackendCompletionFailedMessage);
2450
2445
 
2451
2446
  const defaultMaxToolCalls = 100;
2452
2447
 
@@ -2618,7 +2613,14 @@ const measureTextWidth = async (text, fontFamily, fontSize) => {
2618
2613
  };
2619
2614
 
2620
2615
  const defaultToolEnablement = {
2621
- run_in_terminal: false
2616
+ close_preview: false,
2617
+ glob: false,
2618
+ open_preview: false,
2619
+ render_html: false,
2620
+ rg: false,
2621
+ run_in_terminal: false,
2622
+ spawn_subagent: false,
2623
+ update_todo: false
2622
2624
  };
2623
2625
  const parseToolEnablement = value => {
2624
2626
  {
@@ -2638,19 +2640,6 @@ const validateToolEnablement = value => {
2638
2640
  }
2639
2641
  return toolEnablement;
2640
2642
  };
2641
- const isToolEnabled = (toolEnablement, toolName) => {
2642
- if (!toolEnablement) {
2643
- return defaultToolEnablement[toolName] ?? true;
2644
- }
2645
- const enabled = toolEnablement[toolName];
2646
- if (typeof enabled === 'boolean') {
2647
- return enabled;
2648
- }
2649
- return defaultToolEnablement[toolName] ?? true;
2650
- };
2651
- const filterEnabledTools = (tools, toolEnablement) => {
2652
- return tools.filter(tool => isToolEnabled(toolEnablement, tool.function.name));
2653
- };
2654
2643
 
2655
2644
  const createDefaultState = () => {
2656
2645
  const defaultProjectId = 'project-1';
@@ -2868,7 +2857,7 @@ const getSessionLastActiveTime = session => {
2868
2857
  };
2869
2858
 
2870
2859
  const getChatSession = async id => {
2871
- const session = await invoke$8('ChatStorage.getSession', id);
2860
+ const session = await invoke$7('ChatStorage.getSession', id);
2872
2861
  if (!session) {
2873
2862
  return undefined;
2874
2863
  }
@@ -2925,7 +2914,7 @@ const saveChatSession = async session => {
2925
2914
  ...value,
2926
2915
  projectId: session.projectId
2927
2916
  } : value;
2928
- await invoke$8('ChatStorage.setSession', sessionValue);
2917
+ await invoke$7('ChatStorage.setSession', sessionValue);
2929
2918
  };
2930
2919
  const saveChatSessionPreservingMessages = async (session, messages) => {
2931
2920
  if (messages) {
@@ -4482,13 +4471,13 @@ const selectProject = async (state, projectId) => {
4482
4471
  };
4483
4472
 
4484
4473
  const fileSchemeRegex = /^file:\/\//;
4485
- const trailingSlashesRegex$4 = /\/+$/;
4474
+ const trailingSlashesRegex$1 = /\/+$/;
4486
4475
  const getProjectName = (uri, fallbackIndex) => {
4487
4476
  if (!uri) {
4488
4477
  return `Project ${fallbackIndex}`;
4489
4478
  }
4490
4479
  const withoutScheme = uri.replace(fileSchemeRegex, '');
4491
- const normalized = withoutScheme.replace(trailingSlashesRegex$4, '');
4480
+ const normalized = withoutScheme.replace(trailingSlashesRegex$1, '');
4492
4481
  const lastSegment = normalized.split('/').pop();
4493
4482
  if (!lastSegment) {
4494
4483
  return `Project ${fallbackIndex}`;
@@ -4658,7 +4647,7 @@ const getLatestExecutablePlanMessage = (session, messages = session?.messages ||
4658
4647
  return undefined;
4659
4648
  };
4660
4649
 
4661
- const getErrorMessage$1 = error => {
4650
+ const getErrorMessage = error => {
4662
4651
  if (error instanceof Error && error.message) {
4663
4652
  return error.message;
4664
4653
  }
@@ -4683,7 +4672,7 @@ const handleSubmit = async state => {
4683
4672
  await invoke$6('ChatModel.handleSubmit', state);
4684
4673
  return state;
4685
4674
  } catch (error) {
4686
- throw new Error(getErrorMessage$1(error), {
4675
+ throw new Error(getErrorMessage(error), {
4687
4676
  cause: error
4688
4677
  });
4689
4678
  }
@@ -4711,9 +4700,9 @@ const handleClickImplementPlan = async state => {
4711
4700
  return handleSubmit(preparedState);
4712
4701
  };
4713
4702
 
4714
- const trailingSlashesRegex$3 = /\/+$/;
4703
+ const trailingSlashesRegex = /\/+$/;
4715
4704
  const trimTrailingSlashes = value => {
4716
- return value.replace(trailingSlashesRegex$3, '');
4705
+ return value.replace(trailingSlashesRegex, '');
4717
4706
  };
4718
4707
 
4719
4708
  const getBackendAuthUrl = (backendUrl, path) => {
@@ -4832,12 +4821,12 @@ const getBackendRefreshUrl = backendUrl => {
4832
4821
  return getBackendAuthUrl(backendUrl, '/auth/refresh');
4833
4822
  };
4834
4823
 
4835
- const isObject$2 = value => {
4824
+ const isObject$1 = value => {
4836
4825
  return !!value && typeof value === 'object';
4837
4826
  };
4838
4827
 
4839
4828
  const isBackendAuthResponse = value => {
4840
- return isObject$2(value);
4829
+ return isObject$1(value);
4841
4830
  };
4842
4831
 
4843
4832
  const getNumber = (value, fallback = 0) => {
@@ -4876,11 +4865,11 @@ const syncBackendAuth = async (backendUrl, useAuthWorker = false) => {
4876
4865
  return parseBackendAuthResponse(mockResponse);
4877
4866
  }
4878
4867
  if (useAuthWorker) {
4879
- return invoke$c('Auth.syncBackendAuth', backendUrl);
4868
+ return invoke$a('Auth.syncBackendAuth', backendUrl);
4880
4869
  }
4881
4870
  const worker = true;
4882
4871
  if (worker) {
4883
- return invoke$c('Auth.syncBackendAuth', backendUrl);
4872
+ return invoke$a('Auth.syncBackendAuth', backendUrl);
4884
4873
  }
4885
4874
  const response = await fetch(getBackendRefreshUrl(backendUrl), {
4886
4875
  credentials: 'include',
@@ -5158,3587 +5147,72 @@ const handleClickPrimaryControlsOverflow = async (state, eventX, eventY) => {
5158
5147
  return state;
5159
5148
  };
5160
5149
 
5161
- const getAiResponse$1 = async options => {
5162
- return invoke$b('ChatCoordinator.getAiResponse', options);
5163
- };
5164
-
5165
- const execute = async (name, rawArguments, options) => {
5166
- return invoke$7('ChatTool.execute', name, rawArguments, options);
5167
- };
5168
- const getTools = async () => {
5169
- return invoke$7('ChatTool.getTools');
5170
- };
5171
-
5172
- const windowsAbsolutePathRegex = /^[a-zA-Z]:[\\/]/;
5173
- const pathSeparatorRegex$1 = /[\\/]/;
5174
- const isPathTraversalAttempt = path => {
5175
- if (!path) {
5176
- return false;
5177
- }
5178
- if (path.startsWith('/') || path.startsWith('\\')) {
5179
- return true;
5180
- }
5181
- if (path.startsWith('file://')) {
5182
- return true;
5183
- }
5184
- if (windowsAbsolutePathRegex.test(path)) {
5185
- return true;
5186
- }
5187
- const segments = path.split(pathSeparatorRegex$1);
5188
- return segments.includes('..');
5189
- };
5190
-
5191
- const pathSeparatorRegex = /[\\/]/;
5192
- const normalizeRelativePath = path => {
5193
- const segments = path.split(pathSeparatorRegex).filter(segment => segment && segment !== '.');
5194
- if (segments.length === 0) {
5195
- return '.';
5196
- }
5197
- return segments.join('/');
5198
- };
5199
-
5200
- const stringifyToolOutput = output => {
5201
- if (typeof output === 'string') {
5202
- return output;
5203
- }
5204
- return JSON.stringify(output) ?? 'null';
5150
+ const update = async settings => {
5151
+ await invoke$1('Preferences.update', settings);
5205
5152
  };
5206
5153
 
5207
- const hasWriteFileLineCounts = value => {
5208
- const linesAdded = Reflect.get(value, 'linesAdded');
5209
- const linesDeleted = Reflect.get(value, 'linesDeleted');
5210
- return typeof linesAdded === 'number' || typeof linesDeleted === 'number';
5211
- };
5212
- const hasToolError = value => {
5213
- const error = Reflect.get(value, 'error');
5214
- return typeof error === 'string' && error.trim().length > 0;
5215
- };
5216
- const getTrackedToolExecutionValue = value => {
5217
- if (typeof value !== 'string') {
5218
- return value;
5219
- }
5220
- try {
5221
- return JSON.parse(value);
5222
- } catch {
5223
- return value;
5224
- }
5225
- };
5226
- const getStoredToolExecutionStatus = result => {
5227
- let parsed = result;
5228
- if (typeof result === 'string') {
5229
- try {
5230
- parsed = JSON.parse(result);
5231
- } catch {
5232
- return 'error';
5233
- }
5234
- }
5235
- if (!parsed || typeof parsed !== 'object') {
5236
- return 'error';
5237
- }
5238
- return hasToolError(parsed) ? 'error' : 'success';
5239
- };
5240
- const parseWriteFileArguments = rawArguments => {
5241
- let parsed = rawArguments;
5242
- if (typeof rawArguments === 'string') {
5243
- try {
5244
- parsed = JSON.parse(rawArguments);
5245
- } catch {
5246
- return undefined;
5247
- }
5248
- }
5249
- if (!parsed || typeof parsed !== 'object') {
5250
- return undefined;
5251
- }
5252
- const content = Reflect.get(parsed, 'content');
5253
- if (typeof content !== 'string') {
5254
- return undefined;
5255
- }
5256
- const uri = Reflect.get(parsed, 'uri');
5257
- if (typeof uri === 'string' && uri) {
5258
- return {
5259
- content,
5260
- target: uri
5261
- };
5262
- }
5263
- const path = Reflect.get(parsed, 'path');
5264
- if (typeof path !== 'string' || !path || isPathTraversalAttempt(path)) {
5265
- return undefined;
5266
- }
5267
- return {
5268
- content,
5269
- target: normalizeRelativePath(path)
5270
- };
5271
- };
5272
- const readFileIfExists = async target => {
5273
- try {
5274
- return await readFile(target);
5275
- } catch (error) {
5276
- const message = String(error);
5277
- if (message.includes('ENOENT') || message.includes('No such file') || message.includes('not found')) {
5278
- return undefined;
5279
- }
5280
- throw error;
5281
- }
5282
- };
5283
- const toLines = value => {
5284
- if (!value) {
5285
- return [];
5286
- }
5287
- const normalized = value.replaceAll('\r\n', '\n').replaceAll('\r', '\n');
5288
- const lines = normalized.split('\n');
5289
- if (lines.at(-1) === '') {
5290
- lines.pop();
5291
- }
5292
- return lines;
5293
- };
5294
- const getWriteFileLineCounts = (before, after) => {
5295
- if (before === after) {
5296
- return {
5297
- linesAdded: 0,
5298
- linesDeleted: 0
5299
- };
5300
- }
5301
- const beforeLines = toLines(before ?? '');
5302
- const afterLines = toLines(after);
5303
- const dp = Array.from({
5304
- length: afterLines.length + 1
5305
- }).fill(0);
5306
- for (const beforeLine of beforeLines) {
5307
- let previousDiagonal = 0;
5308
- for (let index = 1; index <= afterLines.length; index++) {
5309
- const current = dp[index];
5310
- if (beforeLine === afterLines[index - 1]) {
5311
- dp[index] = previousDiagonal + 1;
5312
- } else {
5313
- dp[index] = Math.max(dp[index], dp[index - 1]);
5314
- }
5315
- previousDiagonal = current;
5316
- }
5317
- }
5318
- const sharedLineCount = dp[afterLines.length];
5319
- return {
5320
- linesAdded: afterLines.length - sharedLineCount,
5321
- linesDeleted: beforeLines.length - sharedLineCount
5322
- };
5323
- };
5324
- const withWriteFileLineCounts = async (workerOutput, rawArguments) => {
5325
- if (!workerOutput || typeof workerOutput !== 'object' || hasWriteFileLineCounts(workerOutput) || hasToolError(workerOutput)) {
5326
- return workerOutput;
5327
- }
5328
- const parsedArguments = parseWriteFileArguments(rawArguments);
5329
- if (!parsedArguments) {
5330
- return workerOutput;
5331
- }
5332
- const previousContent = await readFileIfExists(parsedArguments.target);
5333
- return {
5334
- ...workerOutput,
5335
- ...getWriteFileLineCounts(previousContent, parsedArguments.content)
5336
- };
5337
- };
5338
- const executeChatTool = async (name, rawArguments, options) => {
5339
- if (!isToolEnabled(options.toolEnablement, name)) {
5340
- throw new Error(`Tool "${name}" is disabled in chat.toolEnablement preferences.`);
5341
- }
5342
- if (!options.useChatToolWorker) {
5343
- throw new Error('Chat tools must be executed in a web worker environment. Please set useChatToolWorker to true in the options.');
5344
- }
5345
- const executionOptions = {
5346
- assetDir: options.assetDir,
5347
- platform: options.platform,
5348
- ...(options.workspaceUri ? {
5349
- workspaceUri: options.workspaceUri
5350
- } : {})
5351
- };
5352
- const executionId = options.toolCallId || `${name}-${Date.now()}`;
5353
- const startedAt = new Date().toISOString();
5354
- if (options.sessionId) {
5355
- await appendChatViewEvent({
5356
- arguments: getTrackedToolExecutionValue(rawArguments),
5357
- id: executionId,
5358
- name,
5359
- options: executionOptions,
5360
- sessionId: options.sessionId,
5361
- time: startedAt,
5362
- timestamp: startedAt,
5363
- type: 'tool-execution-started'
5154
+ const setOpenApiApiKey = async (state, openApiApiKey, persist = true) => {
5155
+ if (persist) {
5156
+ await update({
5157
+ 'secrets.openApiKey': openApiApiKey
5364
5158
  });
5365
5159
  }
5366
- try {
5367
- const workerOutput = await execute(name, rawArguments, executionOptions);
5368
- const outputWithLineCounts = name === 'write_file' ? await withWriteFileLineCounts(workerOutput, rawArguments) : workerOutput;
5369
- const result = stringifyToolOutput(outputWithLineCounts);
5370
- if (options.sessionId) {
5371
- await appendChatViewEvent({
5372
- id: executionId,
5373
- name,
5374
- result: outputWithLineCounts,
5375
- sessionId: options.sessionId,
5376
- status: getStoredToolExecutionStatus(outputWithLineCounts),
5377
- timestamp: new Date().toISOString(),
5378
- type: 'tool-execution-finished'
5379
- });
5380
- }
5381
- return result;
5382
- } catch (error) {
5383
- const errorResult = {
5384
- error: error instanceof Error ? error.message : String(error)
5385
- };
5386
- if (options.sessionId) {
5387
- await appendChatViewEvent({
5388
- id: executionId,
5389
- name,
5390
- result: errorResult,
5391
- sessionId: options.sessionId,
5392
- status: 'error',
5393
- timestamp: new Date().toISOString(),
5394
- type: 'tool-execution-finished'
5395
- });
5396
- }
5397
- throw error;
5398
- }
5399
- };
5400
-
5401
- const getAskQuestionTool = () => {
5402
5160
  return {
5403
- function: {
5404
- description: 'Ask the user a multiple-choice question in the chat UI. Use this when you need a user decision before continuing. Provide short answer options.',
5405
- name: 'ask_question',
5406
- parameters: {
5407
- additionalProperties: false,
5408
- properties: {
5409
- answers: {
5410
- description: 'List of answer options shown to the user.',
5411
- items: {
5412
- type: 'string'
5413
- },
5414
- type: 'array'
5415
- },
5416
- question: {
5417
- description: 'The question text shown to the user.',
5418
- type: 'string'
5419
- }
5420
- },
5421
- required: ['question', 'answers'],
5422
- type: 'object'
5423
- }
5424
- },
5425
- type: 'function'
5161
+ ...state,
5162
+ openApiApiKey,
5163
+ openApiApiKeyInput: openApiApiKey
5426
5164
  };
5427
5165
  };
5428
- const withQuestionTool = (tools, questionToolEnabled) => {
5429
- if (!questionToolEnabled) {
5430
- return tools;
5431
- }
5432
- for (const tool of tools) {
5433
- if (tool.function.name === 'ask_question') {
5434
- return tools;
5435
- }
5436
- }
5437
- return [...tools, getAskQuestionTool()];
5438
- };
5439
- const readOnlyToolNames = new Set(['get_workspace_uri', 'list_file', 'list_files', 'read_file']);
5440
- const withAgentMode = (tools, agentMode) => {
5441
- if (agentMode === 'agent') {
5442
- return tools;
5443
- }
5444
- return tools.filter(tool => readOnlyToolNames.has(tool.function.name));
5445
- };
5446
- const getBasicChatTools = async (agentMode = defaultAgentMode, questionToolEnabled = false, toolEnablement) => {
5447
- const effectiveAgentMode = typeof agentMode === 'boolean' ? defaultAgentMode : agentMode;
5448
- const effectiveQuestionToolEnabled = typeof agentMode === 'boolean' ? agentMode : questionToolEnabled;
5449
- try {
5450
- return withAgentMode(filterEnabledTools(withQuestionTool(await getTools(), effectiveQuestionToolEnabled), toolEnablement), effectiveAgentMode);
5451
- } catch {
5452
- return withAgentMode(filterEnabledTools(withQuestionTool([], effectiveQuestionToolEnabled), toolEnablement), effectiveAgentMode);
5453
- }
5454
- };
5455
-
5456
- const getBackendModelNotAllowedForFreePlanMessage = statusCode => {
5457
- if (typeof statusCode === 'number') {
5458
- return `Backend completion request failed (status ${statusCode}). The selected model is not available on the Free plan. Choose a lower-cost LVCE model such as Claude Haiku or GPT-5.4 Mini, or upgrade your plan and try again.`;
5459
- }
5460
- return 'Backend completion request failed. The selected model is not available on the Free plan. Choose a lower-cost LVCE model such as Claude Haiku or GPT-5.4 Mini, or upgrade your plan and try again.';
5461
- };
5462
- const getBackendHttpErrorDetails = (errorCode, errorMessage) => {
5463
- const trimmedErrorCode = errorCode?.trim();
5464
- const trimmedErrorMessage = errorMessage?.trim();
5465
- if (trimmedErrorCode && trimmedErrorMessage) {
5466
- return `Error code: ${trimmedErrorCode}. ${trimmedErrorMessage}`;
5467
- }
5468
- if (trimmedErrorCode) {
5469
- return `Error code: ${trimmedErrorCode}.`;
5470
- }
5471
- return trimmedErrorMessage;
5472
- };
5473
- const getBackendErrorMessage = errorResult => {
5474
- switch (errorResult.details) {
5475
- case 'http-error':
5476
- {
5477
- if (errorResult.errorCode === 'E_LVCE_MODEL_NOT_ALLOWED_FOR_FREE_PLAN') {
5478
- return getBackendModelNotAllowedForFreePlanMessage(errorResult.statusCode);
5479
- }
5480
- const details = getBackendHttpErrorDetails(errorResult.errorCode, errorResult.errorMessage);
5481
- if (typeof errorResult.statusCode === 'number') {
5482
- const prefix = `Backend completion request failed (status ${errorResult.statusCode}).`;
5483
- if (!details) {
5484
- return prefix;
5485
- }
5486
- return `${prefix} ${details}`;
5487
- }
5488
- if (details) {
5489
- return `Backend completion request failed. ${details}`;
5490
- }
5491
- return backendCompletionFailedMessage;
5492
- }
5493
- case 'invalid-response':
5494
- {
5495
- const errorMessage = errorResult.errorMessage?.trim();
5496
- if (errorMessage) {
5497
- return `Backend completion request failed. ${errorMessage}`;
5498
- }
5499
- return 'Backend completion request failed. Unexpected backend response format.';
5500
- }
5501
- case 'request-failed':
5502
- {
5503
- const errorMessage = errorResult.errorMessage?.trim();
5504
- if (errorMessage) {
5505
- return `Backend completion request failed. ${errorMessage}`;
5506
- }
5507
- return backendCompletionFailedMessage;
5508
- }
5509
- }
5510
- };
5511
-
5512
- const getAttachmentTextPart = (attachment, type = 'input_text') => {
5513
- switch (attachment.displayType) {
5514
- case 'file':
5515
- return {
5516
- text: `Attached file "${attachment.name}" (${attachment.mimeType || 'application/octet-stream'}, ${attachment.size} bytes).`,
5517
- type
5518
- };
5519
- case 'image':
5520
- return {
5521
- text: `Attached image "${attachment.name}" could not be encoded for the AI request.`,
5522
- type
5523
- };
5524
- case 'invalid-image':
5525
- return {
5526
- text: `Attached file "${attachment.name}" could not be processed as a valid image.`,
5527
- type
5528
- };
5529
- case 'text-file':
5530
- return {
5531
- text: attachment.textContent ? `Attached text file "${attachment.name}" (${attachment.mimeType || 'text/plain'}):\n\n${attachment.textContent}` : `Attached text file "${attachment.name}" (${attachment.mimeType || 'text/plain'}).`,
5532
- type
5533
- };
5534
- }
5535
- };
5536
5166
 
5537
- const getTextPart = (text, type) => {
5538
- return {
5539
- text,
5540
- type
5541
- };
5542
- };
5543
- const getChatMessageOpenAiContent = message => {
5544
- const parts = [];
5545
- const textPartType = message.role === 'assistant' ? 'output_text' : 'input_text';
5546
- if (message.text) {
5547
- parts.push(getTextPart(message.text, textPartType));
5548
- }
5549
- for (const attachment of message.attachments ?? []) {
5550
- if (message.role === 'user' && attachment.displayType === 'image' && attachment.previewSrc) {
5551
- parts.push({
5552
- image_url: attachment.previewSrc,
5553
- type: 'input_image'
5554
- });
5555
- continue;
5556
- }
5557
- parts.push(getAttachmentTextPart(attachment, textPartType));
5167
+ const handleClickSaveOpenApiApiKey = async state => {
5168
+ const {
5169
+ openApiApiKeyInput
5170
+ } = state;
5171
+ const openApiApiKey = openApiApiKeyInput.trim();
5172
+ if (!openApiApiKey) {
5173
+ return state;
5558
5174
  }
5559
- return parts;
5560
- };
5561
-
5562
- const getClientRequestIdHeader = () => {
5563
- return {
5564
- 'x-client-request-id': crypto.randomUUID()
5175
+ const optimisticState = {
5176
+ ...state,
5177
+ openApiApiKeyState: 'saving'
5565
5178
  };
5566
- };
5567
-
5568
- const getMockAiResponse = async (userMessage, delayInMs) => {
5569
- if (delayInMs > 0) {
5570
- await delay(delayInMs);
5571
- }
5572
- return `Mock AI response: I received "${userMessage}".`;
5573
- };
5574
-
5575
- let requests = [];
5576
- const reset$2 = () => {
5577
- requests = [];
5578
- };
5579
- const capture = request => {
5580
- requests = [...requests, request];
5581
- };
5582
- const getAll = () => {
5583
- return requests;
5584
- };
5585
-
5586
- const defaultRequestId = 'default';
5587
- let streamStates = new Map();
5588
- let preparedRequestIds = [];
5589
- const createState = () => {
5590
- return {
5591
- errorResult: undefined,
5592
- finished: false,
5593
- queue: [],
5594
- waiters: []
5595
- };
5596
- };
5597
- const getOrCreateState = requestId => {
5598
- const existing = streamStates.get(requestId);
5599
- if (existing) {
5600
- return existing;
5601
- }
5602
- const state = createState();
5603
- streamStates.set(requestId, state);
5604
- return state;
5605
- };
5606
- const enqueuePreparedRequest = requestId => {
5607
- if (preparedRequestIds.includes(requestId)) {
5608
- return;
5609
- }
5610
- preparedRequestIds.push(requestId);
5611
- };
5612
- const reset$1 = (requestId = defaultRequestId) => {
5613
- if (requestId === defaultRequestId) {
5614
- streamStates = new Map();
5615
- preparedRequestIds = [];
5616
- streamStates.set(defaultRequestId, createState());
5617
- return;
5618
- }
5619
- streamStates.set(requestId, createState());
5620
- enqueuePreparedRequest(requestId);
5621
- };
5622
- const startRequest = () => {
5623
- const requestId = preparedRequestIds.shift() || defaultRequestId;
5624
- getOrCreateState(requestId);
5625
- return requestId;
5626
- };
5627
- const setHttpErrorResponse$1 = (statusCode, body, requestId = defaultRequestId) => {
5628
- const rawError = body && typeof body === 'object' ? Reflect.get(body, 'error') : undefined;
5629
- const errorCode = rawError && typeof rawError === 'object' ? Reflect.get(rawError, 'code') : undefined;
5630
- const errorMessage = rawError && typeof rawError === 'object' ? Reflect.get(rawError, 'message') : undefined;
5631
- const errorType = rawError && typeof rawError === 'object' ? Reflect.get(rawError, 'type') : undefined;
5632
- const state = getOrCreateState(requestId);
5633
- state.errorResult = {
5634
- details: 'http-error',
5635
- ...(typeof errorCode === 'string' ? {
5636
- errorCode
5637
- } : {}),
5638
- ...(typeof errorMessage === 'string' ? {
5639
- errorMessage
5640
- } : {}),
5641
- ...(typeof errorType === 'string' ? {
5642
- errorType
5643
- } : {}),
5644
- statusCode,
5645
- type: 'error'
5646
- };
5647
- };
5648
- const setRequestFailedResponse = (isOffline = false, requestId = defaultRequestId) => {
5649
- const state = getOrCreateState(requestId);
5650
- state.errorResult = {
5651
- details: 'request-failed',
5652
- ...(isOffline ? {
5653
- isOffline: true
5654
- } : {}),
5655
- type: 'error'
5656
- };
5657
- };
5658
- const takeErrorResponse$1 = (requestId = defaultRequestId) => {
5659
- const state = getOrCreateState(requestId);
5660
- const error = state.errorResult;
5661
- state.errorResult = undefined;
5662
- return error;
5663
- };
5664
- const pushChunk = (chunk, requestId = defaultRequestId) => {
5665
- const state = getOrCreateState(requestId);
5666
- if (state.waiters.length > 0) {
5667
- const resolve = state.waiters.shift();
5668
- resolve?.(chunk);
5669
- return;
5670
- }
5671
- state.queue.push(chunk);
5672
- };
5673
- const finish = (requestId = defaultRequestId) => {
5674
- const state = getOrCreateState(requestId);
5675
- state.finished = true;
5676
- if (state.waiters.length === 0) {
5677
- return;
5678
- }
5679
- const activeWaiters = [...state.waiters];
5680
- state.waiters.length = 0;
5681
- for (const resolve of activeWaiters) {
5682
- resolve(undefined);
5683
- }
5684
- };
5685
- const readNextChunk = async (requestId = defaultRequestId) => {
5686
- const state = getOrCreateState(requestId);
5687
- if (state.queue.length > 0) {
5688
- return state.queue.shift();
5689
- }
5690
- if (state.finished) {
5691
- return undefined;
5692
- }
5693
- const {
5694
- promise,
5695
- resolve
5696
- } = Promise.withResolvers();
5697
- state.waiters.push(resolve);
5698
- return promise;
5699
- };
5700
-
5701
- /* cspell:ignore sonarjs */
5702
-
5703
- const lastRequestSummaryToken = '__MOCK_OPENAPI_LAST_REQUEST_SUMMARY__';
5704
- const getLastRequestSummary = () => {
5705
- const requests = getAll();
5706
- const request = requests.at(-1);
5707
- if (!request || !request.payload || typeof request.payload !== 'object') {
5708
- return 'mock-request-summary images=0 text-files=0';
5709
- }
5710
- const input = Reflect.get(request.payload, 'input');
5711
- if (!Array.isArray(input) || input.length === 0) {
5712
- return 'mock-request-summary images=0 text-files=0';
5713
- }
5714
- let imageCount = 0;
5715
- let textFileCount = 0;
5716
- for (const item of input) {
5717
- if (!item || typeof item !== 'object') {
5718
- continue;
5719
- }
5720
- const content = Reflect.get(item, 'content');
5721
- if (!Array.isArray(content)) {
5722
- continue;
5723
- }
5724
- for (const part of content) {
5725
- if (!part || typeof part !== 'object') {
5726
- continue;
5727
- }
5728
- const type = Reflect.get(part, 'type');
5729
- if (type === 'input_image') {
5730
- imageCount++;
5731
- continue;
5732
- }
5733
- if (type !== 'input_text') {
5734
- continue;
5735
- }
5736
- const text = Reflect.get(part, 'text');
5737
- if (typeof text === 'string' && text.startsWith('Attached text file "')) {
5738
- textFileCount++;
5739
- }
5740
- }
5741
- }
5742
- return `mock-request-summary images=${imageCount} text-files=${textFileCount}`;
5743
- };
5744
- const getResponseFunctionCalls$1 = value => {
5745
- if (!value || typeof value !== 'object') {
5746
- return [];
5747
- }
5748
- const output = Reflect.get(value, 'output');
5749
- if (!Array.isArray(output)) {
5750
- return [];
5751
- }
5752
- const responseFunctionCalls = [];
5753
- for (const item of output) {
5754
- if (!item || typeof item !== 'object') {
5755
- continue;
5756
- }
5757
- if (Reflect.get(item, 'type') !== 'function_call') {
5758
- continue;
5759
- }
5760
- const callId = Reflect.get(item, 'call_id');
5761
- const name = Reflect.get(item, 'name');
5762
- const rawArguments = Reflect.get(item, 'arguments');
5763
- if (typeof callId !== 'string' || typeof name !== 'string') {
5764
- continue;
5765
- }
5766
- responseFunctionCalls.push({
5767
- arguments: typeof rawArguments === 'string' ? rawArguments : '',
5768
- callId,
5769
- name
5770
- });
5771
- }
5772
- return responseFunctionCalls;
5773
- };
5774
- const parseSseDataLines = eventChunk => {
5775
- const lines = eventChunk.split('\n');
5776
- const dataLines = [];
5777
- for (const line of lines) {
5778
- if (!line.startsWith('data:')) {
5779
- continue;
5780
- }
5781
- dataLines.push(line.slice(5).trimStart());
5782
- }
5783
- return dataLines;
5784
- };
5785
- const emitToolCalls = async (toolCallAccumulator, onToolCallsChunk) => {
5786
- if (!onToolCallsChunk) {
5787
- return;
5788
- }
5789
- const toolCalls = Object.entries(toolCallAccumulator).toSorted((a, b) => Number(a[0]) - Number(b[0])).map(entry => entry[1]).filter(toolCall => !!toolCall.name);
5790
- if (toolCalls.length === 0) {
5791
- return;
5792
- }
5793
- await onToolCallsChunk(toolCalls);
5794
- };
5795
- const getMockOpenApiAssistantText = async (stream, onTextChunk, onToolCallsChunk, onDataEvent, onEventStreamFinished, requestId) => {
5796
- const error = takeErrorResponse$1(requestId);
5797
- if (error) {
5798
- return error;
5799
- }
5800
- let text = '';
5801
- let remainder = '';
5802
- let toolCallAccumulator = {};
5803
- let responseFunctionCalls = [];
5804
- let responseId;
5805
- let requestDone = false;
5806
- let finishedNotified = false;
5807
- const notifyFinished = async () => {
5808
- if (finishedNotified) {
5809
- return;
5810
- }
5811
- finishedNotified = true;
5812
- if (onEventStreamFinished) {
5813
- await onEventStreamFinished();
5814
- }
5815
- };
5816
- const handleParsedSseEvent = async parsed => {
5817
- if (onDataEvent) {
5818
- await onDataEvent(parsed);
5819
- }
5820
- if (!parsed || typeof parsed !== 'object') {
5821
- return;
5822
- }
5823
- const eventType = Reflect.get(parsed, 'type');
5824
- if (eventType === 'response.completed') {
5825
- const response = Reflect.get(parsed, 'response');
5826
- responseFunctionCalls = getResponseFunctionCalls$1(response);
5827
- const parsedResponseId = response && typeof response === 'object' ? Reflect.get(response, 'id') : undefined;
5828
- if (typeof parsedResponseId === 'string' && parsedResponseId) {
5829
- responseId = parsedResponseId;
5830
- }
5831
- requestDone = true;
5832
- await notifyFinished();
5833
- return;
5834
- }
5835
- if (eventType === 'response.output_text.delta') {
5836
- const delta = Reflect.get(parsed, 'delta');
5837
- if (typeof delta !== 'string' || !delta) {
5838
- return;
5839
- }
5840
- text += delta;
5841
- if (stream && onTextChunk) {
5842
- await onTextChunk(delta);
5843
- }
5844
- return;
5845
- }
5846
- if (eventType === 'response.output_item.added') {
5847
- const outputIndex = Reflect.get(parsed, 'output_index');
5848
- const item = Reflect.get(parsed, 'item');
5849
- if (typeof outputIndex !== 'number' || !item || typeof item !== 'object') {
5850
- return;
5851
- }
5852
- if (Reflect.get(item, 'type') !== 'function_call') {
5853
- return;
5854
- }
5855
- const name = Reflect.get(item, 'name');
5856
- const argumentsValue = Reflect.get(item, 'arguments');
5857
- const callId = Reflect.get(item, 'call_id');
5858
- toolCallAccumulator = {
5859
- ...toolCallAccumulator,
5860
- [outputIndex]: {
5861
- arguments: typeof argumentsValue === 'string' ? argumentsValue : '',
5862
- ...(typeof callId === 'string' ? {
5863
- id: callId
5864
- } : {}),
5865
- name: typeof name === 'string' ? name : ''
5866
- }
5867
- };
5868
- await emitToolCalls(toolCallAccumulator, onToolCallsChunk);
5869
- return;
5870
- }
5871
- if (eventType === 'response.function_call_arguments.delta' || eventType === 'response.function_call_arguments.done') {
5872
- const outputIndex = Reflect.get(parsed, 'output_index');
5873
- if (typeof outputIndex !== 'number') {
5874
- return;
5875
- }
5876
- const current = toolCallAccumulator[outputIndex] || {
5877
- arguments: '',
5878
- name: ''
5879
- };
5880
- const delta = Reflect.get(parsed, 'delta');
5881
- const argumentsValue = Reflect.get(parsed, 'arguments');
5882
- const name = Reflect.get(parsed, 'name');
5883
- const callId = Reflect.get(parsed, 'call_id');
5884
- const next = {
5885
- arguments: typeof argumentsValue === 'string' ? argumentsValue : typeof delta === 'string' ? `${current.arguments}${delta}` : current.arguments,
5886
- ...(typeof callId === 'string' ? {
5887
- id: callId
5888
- } : current.id ? {
5889
- id: current.id
5890
- } : {}),
5891
- name: typeof name === 'string' && name ? name : current.name
5892
- };
5893
- toolCallAccumulator = {
5894
- ...toolCallAccumulator,
5895
- [outputIndex]: next
5896
- };
5897
- await emitToolCalls(toolCallAccumulator, onToolCallsChunk);
5898
- }
5899
- };
5900
- const consumeSseDataLines = async dataLines => {
5901
- for (const line of dataLines) {
5902
- if (line === '[DONE]') {
5903
- requestDone = true;
5904
- await notifyFinished();
5905
- break;
5906
- }
5907
- let parsed;
5908
- try {
5909
- parsed = JSON.parse(line);
5910
- } catch {
5911
- continue;
5912
- }
5913
- await handleParsedSseEvent(parsed);
5914
- if (requestDone) {
5915
- break;
5916
- }
5917
- }
5918
- };
5919
- while (!requestDone) {
5920
- const chunk = await readNextChunk(requestId);
5921
- if (typeof chunk !== 'string') {
5922
- break;
5923
- }
5924
- if (chunk.startsWith('data:')) {
5925
- remainder += chunk;
5926
- while (true) {
5927
- const separatorIndex = remainder.indexOf('\n\n');
5928
- if (separatorIndex === -1) {
5929
- break;
5930
- }
5931
- const rawEvent = remainder.slice(0, separatorIndex);
5932
- remainder = remainder.slice(separatorIndex + 2);
5933
- const dataLines = parseSseDataLines(rawEvent);
5934
- await consumeSseDataLines(dataLines);
5935
- if (requestDone) {
5936
- break;
5937
- }
5938
- }
5939
- continue;
5940
- }
5941
- const resolvedChunk = chunk === lastRequestSummaryToken ? getLastRequestSummary() : chunk;
5942
- text += resolvedChunk;
5943
- if (stream && onTextChunk) {
5944
- await onTextChunk(resolvedChunk);
5945
- }
5946
- }
5947
- if (!requestDone && remainder) {
5948
- const dataLines = parseSseDataLines(remainder);
5949
- await consumeSseDataLines(dataLines);
5950
- }
5951
- await notifyFinished();
5952
- return {
5953
- ...(responseId ? {
5954
- responseId
5955
- } : {}),
5956
- responseFunctionCalls,
5957
- text,
5958
- type: 'success'
5959
- };
5960
- };
5961
-
5962
- const normalizeLimitInfo = value => {
5963
- if (!value || typeof value !== 'object') {
5964
- return undefined;
5965
- }
5966
- const limitRemaining = Reflect.get(value, 'limitRemaining');
5967
- const limitReset = Reflect.get(value, 'limitReset');
5968
- const retryAfter = Reflect.get(value, 'retryAfter');
5969
- const usage = Reflect.get(value, 'usage');
5970
- const usageDaily = Reflect.get(value, 'usageDaily');
5971
- const normalized = {
5972
- ...(typeof limitRemaining === 'number' || limitRemaining === null ? {
5973
- limitRemaining
5974
- } : {}),
5975
- ...(typeof limitReset === 'string' || limitReset === null ? {
5976
- limitReset
5977
- } : {}),
5978
- ...(typeof retryAfter === 'string' || retryAfter === null ? {
5979
- retryAfter
5980
- } : {}),
5981
- ...(typeof usage === 'number' ? {
5982
- usage
5983
- } : {}),
5984
- ...(typeof usageDaily === 'number' ? {
5985
- usageDaily
5986
- } : {})
5987
- };
5988
- const hasDetails = typeof limitRemaining === 'number' || limitRemaining === null || typeof limitReset === 'string' || limitReset === null || typeof retryAfter === 'string' || retryAfter === null || typeof usage === 'number' || typeof usageDaily === 'number';
5989
- return hasDetails ? normalized : undefined;
5990
- };
5991
-
5992
- const requestFailedResult = {
5993
- details: 'request-failed',
5994
- type: 'error'
5995
- };
5996
- const getSuccessResult = text => {
5997
- return {
5998
- text,
5999
- type: 'success'
6000
- };
6001
- };
6002
- const getErrorResult = (value, details) => {
6003
- const rawMessage = Reflect.get(value, 'rawMessage');
6004
- const statusCode = Reflect.get(value, 'statusCode');
6005
- const limitInfo = normalizeLimitInfo(Reflect.get(value, 'limitInfo'));
6006
- return {
6007
- details,
6008
- ...(limitInfo ? {
6009
- limitInfo
6010
- } : {}),
6011
- ...(typeof rawMessage === 'string' ? {
6012
- rawMessage
6013
- } : {}),
6014
- ...(typeof statusCode === 'number' ? {
6015
- statusCode
6016
- } : {}),
6017
- type: 'error'
6018
- };
6019
- };
6020
- const normalizeMockResult = value => {
6021
- if (typeof value === 'string') {
6022
- return getSuccessResult(value);
6023
- }
6024
- if (!value || typeof value !== 'object') {
6025
- return requestFailedResult;
6026
- }
6027
- const type = Reflect.get(value, 'type');
6028
- if (type === 'success') {
6029
- const text = Reflect.get(value, 'text');
6030
- if (typeof text === 'string') {
6031
- return getSuccessResult(text);
6032
- }
6033
- return requestFailedResult;
6034
- }
6035
- if (type === 'error') {
6036
- const details = Reflect.get(value, 'details');
6037
- if (details === 'request-failed' || details === 'too-many-requests' || details === 'http-error') {
6038
- return getErrorResult(value, details);
6039
- }
6040
- }
6041
- const text = Reflect.get(value, 'text');
6042
- if (typeof text === 'string') {
6043
- return getSuccessResult(text);
6044
- }
6045
- return requestFailedResult;
6046
- };
6047
-
6048
- const getMockOpenRouterAssistantText = async (messages, modelId, openRouterApiBaseUrl, openRouterApiKey, mockApiCommandId, assetDir, platform) => {
6049
- if (!mockApiCommandId) {
6050
- return {
6051
- details: 'request-failed',
6052
- type: 'error'
6053
- };
6054
- }
6055
- try {
6056
- const result = await executeProvider({
6057
- assetDir,
6058
- event: `onCommand:${mockApiCommandId}`,
6059
- method: CommandExecute,
6060
- noProviderFoundMessage: 'No mock api command found',
6061
- params: [mockApiCommandId, {
6062
- messages,
6063
- modelId,
6064
- openRouterApiBaseUrl,
6065
- openRouterApiKey
6066
- }],
6067
- platform
6068
- });
6069
- return normalizeMockResult(result);
6070
- } catch {
6071
- return {
6072
- details: 'request-failed',
6073
- type: 'error'
6074
- };
6075
- }
6076
- };
6077
-
6078
- const getOpenApiApiEndpoint = openApiApiBaseUrl => {
6079
- return `${openApiApiBaseUrl}/responses`;
6080
- };
6081
-
6082
- const makeApiRequest = async options => {
6083
- return invoke$9('ChatNetwork.makeApiRequest', options);
6084
- };
6085
- const makeStreamingApiRequest = async options => {
6086
- return invoke$9('ChatNetwork.makeStreamingApiRequest', options);
6087
- };
6088
-
6089
- const getNumericCount = parsed => {
6090
- const count = Reflect.get(parsed, 'count');
6091
- if (typeof count === 'number' && Number.isFinite(count)) {
6092
- return count;
6093
- }
6094
- const matchCount = Reflect.get(parsed, 'matchCount');
6095
- if (typeof matchCount === 'number' && Number.isFinite(matchCount)) {
6096
- return matchCount;
6097
- }
6098
- return undefined;
6099
- };
6100
- const getArrayCount = parsed => {
6101
- const matches = Reflect.get(parsed, 'matches');
6102
- if (Array.isArray(matches)) {
6103
- return matches.length;
6104
- }
6105
- const files = Reflect.get(parsed, 'files');
6106
- if (Array.isArray(files)) {
6107
- return files.length;
6108
- }
6109
- const results = Reflect.get(parsed, 'results');
6110
- if (Array.isArray(results)) {
6111
- return results.length;
6112
- }
6113
- return undefined;
6114
- };
6115
- const getGlobMatchCount = result => {
6116
- if (!result) {
6117
- return undefined;
6118
- }
6119
- let parsed;
6120
- try {
6121
- parsed = JSON.parse(result);
6122
- } catch {
6123
- return undefined;
6124
- }
6125
- if (Array.isArray(parsed)) {
6126
- return parsed.length;
6127
- }
6128
- if (!parsed || typeof parsed !== 'object') {
6129
- return undefined;
6130
- }
6131
- return getNumericCount(parsed) ?? getArrayCount(parsed);
6132
- };
6133
-
6134
- const getTextContent = content => {
6135
- if (typeof content === 'string') {
6136
- return content;
6137
- }
6138
- if (!Array.isArray(content)) {
6139
- return '';
6140
- }
6141
- const textParts = [];
6142
- for (const part of content) {
6143
- if (!part || typeof part !== 'object') {
6144
- continue;
6145
- }
6146
- const maybeType = Reflect.get(part, 'type');
6147
- const maybeText = Reflect.get(part, 'text');
6148
- if (maybeType === 'text' && typeof maybeText === 'string') {
6149
- textParts.push(maybeText);
6150
- }
6151
- }
6152
- return textParts.join('\n');
6153
- };
6154
-
6155
- /* cspell:ignore sonarjs */
6156
-
6157
- const errorPrefixRegex = /^Error:\s*/;
6158
- const notFoundErrorRegex = /not[\s_-]?found|enoent/i;
6159
- const getOpenAiTools = tools => {
6160
- return tools.map(tool => {
6161
- if (!tool || typeof tool !== 'object') {
6162
- return tool;
6163
- }
6164
- const type = Reflect.get(tool, 'type');
6165
- const toolFunction = Reflect.get(tool, 'function');
6166
- if (type !== 'function' || !toolFunction || typeof toolFunction !== 'object') {
6167
- return tool;
6168
- }
6169
- const name = Reflect.get(toolFunction, 'name');
6170
- const description = Reflect.get(toolFunction, 'description');
6171
- const parameters = Reflect.get(toolFunction, 'parameters');
6172
- return {
6173
- ...(typeof description === 'string' ? {
6174
- description
6175
- } : {}),
6176
- ...(typeof name === 'string' ? {
6177
- name
6178
- } : {}),
6179
- ...(parameters && typeof parameters === 'object' ? {
6180
- parameters
6181
- } : {}),
6182
- type: 'function'
6183
- };
6184
- });
6185
- };
6186
- const getOpenAiParams = (input, modelId, stream, includeObfuscation, tools, webSearchEnabled, maxToolCalls, systemPrompt = '', previousResponseId, reasoningEffort, supportsReasoningEffort = false) => {
6187
- const openAiTools = getOpenAiTools(tools);
6188
- return {
6189
- input,
6190
- ...(systemPrompt ? {
6191
- instructions: systemPrompt
6192
- } : {}),
6193
- model: modelId,
6194
- ...(stream ? {
6195
- stream: true,
6196
- ...(includeObfuscation ? {} : {
6197
- stream_options: {
6198
- include_obfuscation: false
6199
- }
6200
- })
6201
- } : {}),
6202
- ...(previousResponseId ? {
6203
- previous_response_id: previousResponseId
6204
- } : {}),
6205
- ...(reasoningEffort && supportsReasoningEffort ? {
6206
- reasoning: {
6207
- effort: reasoningEffort
6208
- }
6209
- } : {}),
6210
- max_tool_calls: maxToolCalls,
6211
- tool_choice: 'auto',
6212
- tools: webSearchEnabled ? [...openAiTools, {
6213
- type: 'web_search'
6214
- }] : openAiTools
6215
- };
6216
- };
6217
- const getStreamChunkText = content => {
6218
- if (typeof content === 'string') {
6219
- return content;
6220
- }
6221
- if (!Array.isArray(content)) {
6222
- return '';
6223
- }
6224
- return content.map(part => {
6225
- if (!part || typeof part !== 'object') {
6226
- return '';
6227
- }
6228
- const text = Reflect.get(part, 'text');
6229
- return typeof text === 'string' ? text : '';
6230
- }).join('');
6231
- };
6232
- const getShortToolErrorMessage = error => {
6233
- const trimmed = error.trim().replace(errorPrefixRegex, '');
6234
- const firstLine = trimmed.split('\n')[0];
6235
- if (firstLine.length <= 80) {
6236
- return firstLine;
6237
- }
6238
- return `${firstLine.slice(0, 77)}...`;
6239
- };
6240
- const getStreamingToolCallStatus = value => {
6241
- if (value === 'in_progress') {
6242
- return 'in-progress';
6243
- }
6244
- if (value === 'cancelled' || value === 'canceled') {
6245
- return 'canceled';
6246
- }
6247
- if (value === 'failed' || value === 'error') {
6248
- return 'error';
6249
- }
6250
- return undefined;
6251
- };
6252
- const getToolCallExecutionStatus = content => {
6253
- let parsed;
6254
- try {
6255
- parsed = JSON.parse(content);
6256
- } catch {
6257
- return {
6258
- errorMessage: 'Invalid tool output',
6259
- status: 'error'
6260
- };
6261
- }
6262
- if (!parsed || typeof parsed !== 'object') {
6263
- return {
6264
- errorMessage: 'Invalid tool output',
6265
- status: 'error'
6266
- };
6267
- }
6268
- const rawError = Reflect.get(parsed, 'error');
6269
- if (typeof rawError !== 'string' || !rawError.trim()) {
6270
- return {
6271
- status: 'success'
6272
- };
6273
- }
6274
- const rawStack = Reflect.get(parsed, 'errorStack') ?? Reflect.get(parsed, 'stack');
6275
- const errorStack = typeof rawStack === 'string' && rawStack.trim() ? rawStack : undefined;
6276
- const errorMessage = getShortToolErrorMessage(rawError);
6277
- if (notFoundErrorRegex.test(errorMessage)) {
6278
- return {
6279
- errorMessage,
6280
- ...(errorStack ? {
6281
- errorStack
6282
- } : {}),
6283
- status: 'not-found'
6284
- };
6285
- }
6286
- return {
6287
- ...(errorStack ? {
6288
- errorStack
6289
- } : {}),
6290
- errorMessage,
6291
- status: 'error'
6292
- };
6293
- };
6294
- const getToolCallResult = (name, content) => {
6295
- if (name === 'write_file') {
6296
- let parsed;
6297
- try {
6298
- parsed = JSON.parse(content);
6299
- } catch {
6300
- return undefined;
6301
- }
6302
- if (!parsed || typeof parsed !== 'object') {
6303
- return undefined;
6304
- }
6305
- const linesAdded = Reflect.get(parsed, 'addedLines') ?? Reflect.get(parsed, 'linesAdded');
6306
- const linesDeleted = Reflect.get(parsed, 'removedLines') ?? Reflect.get(parsed, 'linesDeleted');
6307
- if (typeof linesAdded !== 'number' && typeof linesDeleted !== 'number') {
6308
- return undefined;
6309
- }
6310
- return content;
6311
- }
6312
- if (name === 'glob') {
6313
- return getGlobMatchCount(content) === undefined ? undefined : content;
6314
- }
6315
- if (name !== 'getWorkspaceUri') {
6316
- return undefined;
6317
- }
6318
- let parsed;
6319
- try {
6320
- parsed = JSON.parse(content);
6321
- } catch {
6322
- return undefined;
6323
- }
6324
- if (!parsed || typeof parsed !== 'object') {
6325
- return undefined;
6326
- }
6327
- const workspaceUri = Reflect.get(parsed, 'workspaceUri');
6328
- if (typeof workspaceUri !== 'string' || !workspaceUri) {
6329
- return undefined;
6330
- }
6331
- return workspaceUri;
6332
- };
6333
- const getResponseOutputText = parsed => {
6334
- if (!parsed || typeof parsed !== 'object') {
6335
- return '';
6336
- }
6337
- const outputText = Reflect.get(parsed, 'output_text');
6338
- if (typeof outputText === 'string') {
6339
- return outputText;
6340
- }
6341
- const output = Reflect.get(parsed, 'output');
6342
- if (!Array.isArray(output)) {
6343
- return '';
6344
- }
6345
- const chunks = [];
6346
- for (const outputItem of output) {
6347
- if (!outputItem || typeof outputItem !== 'object') {
6348
- continue;
6349
- }
6350
- const itemType = Reflect.get(outputItem, 'type');
6351
- if (itemType !== 'message') {
6352
- continue;
6353
- }
6354
- const content = Reflect.get(outputItem, 'content');
6355
- if (!Array.isArray(content)) {
6356
- continue;
6357
- }
6358
- for (const part of content) {
6359
- if (!part || typeof part !== 'object') {
6360
- continue;
6361
- }
6362
- const partType = Reflect.get(part, 'type');
6363
- const text = Reflect.get(part, 'text');
6364
- if ((partType === 'output_text' || partType === 'text') && typeof text === 'string') {
6365
- chunks.push(text);
6366
- }
6367
- }
6368
- }
6369
- return chunks.join('');
6370
- };
6371
- const getResponseFunctionCalls = parsed => {
6372
- if (!parsed || typeof parsed !== 'object') {
6373
- return [];
6374
- }
6375
- const output = Reflect.get(parsed, 'output');
6376
- if (!Array.isArray(output)) {
6377
- return [];
6378
- }
6379
- const calls = [];
6380
- for (const outputItem of output) {
6381
- if (!outputItem || typeof outputItem !== 'object') {
6382
- continue;
6383
- }
6384
- const itemType = Reflect.get(outputItem, 'type');
6385
- if (itemType !== 'function_call') {
6386
- continue;
6387
- }
6388
- const callId = Reflect.get(outputItem, 'call_id');
6389
- const name = Reflect.get(outputItem, 'name');
6390
- const rawArguments = Reflect.get(outputItem, 'arguments');
6391
- if (typeof callId !== 'string' || typeof name !== 'string') {
6392
- continue;
6393
- }
6394
- calls.push({
6395
- arguments: typeof rawArguments === 'string' ? rawArguments : '',
6396
- callId,
6397
- name
6398
- });
6399
- }
6400
- return calls;
6401
- };
6402
- const parseSseEvent = eventChunk => {
6403
- const lines = eventChunk.split('\n');
6404
- const dataLines = [];
6405
- for (const line of lines) {
6406
- if (!line.startsWith('data:')) {
6407
- continue;
6408
- }
6409
- dataLines.push(line.slice(5).trimStart());
6410
- }
6411
- return dataLines;
6412
- };
6413
- const updateToolCallAccumulator = (accumulator, chunk) => {
6414
- let changed = false;
6415
- const nextAccumulator = {
6416
- ...accumulator
6417
- };
6418
- for (const item of chunk) {
6419
- if (!item || typeof item !== 'object') {
6420
- continue;
6421
- }
6422
- const index = Reflect.get(item, 'index');
6423
- if (typeof index !== 'number') {
6424
- continue;
6425
- }
6426
- const current = nextAccumulator[index] || {
6427
- arguments: '',
6428
- name: ''
6429
- };
6430
- const id = Reflect.get(item, 'id');
6431
- const toolFunction = Reflect.get(item, 'function');
6432
- let {
6433
- name
6434
- } = current;
6435
- let args = current.arguments;
6436
- if (toolFunction && typeof toolFunction === 'object') {
6437
- const deltaName = Reflect.get(toolFunction, 'name');
6438
- const deltaArguments = Reflect.get(toolFunction, 'arguments');
6439
- if (typeof deltaName === 'string' && deltaName) {
6440
- name = deltaName;
6441
- }
6442
- if (typeof deltaArguments === 'string') {
6443
- args += deltaArguments;
6444
- }
6445
- }
6446
- const next = {
6447
- arguments: args,
6448
- ...(typeof id === 'string' ? {
6449
- id
6450
- } : current.id ? {
6451
- id: current.id
6452
- } : {}),
6453
- name
6454
- };
6455
- if (JSON.stringify(next) !== JSON.stringify(current)) {
6456
- nextAccumulator[index] = next;
6457
- changed = true;
6458
- }
6459
- }
6460
- if (!changed) {
6461
- return undefined;
6462
- }
6463
- const toolCalls = Object.entries(nextAccumulator).toSorted((a, b) => Number(a[0]) - Number(b[0])).map(entry => entry[1]).filter(toolCall => !!toolCall.name);
6464
- return {
6465
- nextAccumulator,
6466
- toolCalls
6467
- };
6468
- };
6469
- const getResponseFunctionCallsFromStreamingAccumulator = toolCallAccumulator => {
6470
- return Object.entries(toolCallAccumulator).toSorted((a, b) => a[0].localeCompare(b[0])).map(entry => entry[1]).filter(toolCall => typeof toolCall.id === 'string' && !!toolCall.id && !!toolCall.name).map(toolCall => ({
6471
- arguments: toolCall.arguments,
6472
- callId: toolCall.id,
6473
- name: toolCall.name
6474
- }));
6475
- };
6476
- const getStreamingToolCallKey = value => {
6477
- if (!value || typeof value !== 'object') {
6478
- return undefined;
6479
- }
6480
- const outputIndex = Reflect.get(value, 'output_index');
6481
- if (typeof outputIndex === 'number') {
6482
- return String(outputIndex);
6483
- }
6484
- if (typeof outputIndex === 'string' && outputIndex) {
6485
- return outputIndex;
6486
- }
6487
- const itemId = Reflect.get(value, 'item_id');
6488
- if (typeof itemId === 'string' && itemId) {
6489
- return itemId;
6490
- }
6491
- return undefined;
6492
- };
6493
- const parseOpenApiStream = async (response, onTextChunk, onToolCallsChunk, onDataEvent) => {
6494
- if (!response.body) {
6495
- return {
6496
- details: 'request-failed',
6497
- type: 'error'
6498
- };
6499
- }
6500
- const reader = response.body.getReader();
6501
- const decoder = new TextDecoder();
6502
- let remainder = '';
6503
- let text = '';
6504
- let done = false;
6505
- let toolCallAccumulator = {};
6506
- let responseId;
6507
- let completedResponseFunctionCalls = [];
6508
- const emitToolCallAccumulator = async () => {
6509
- if (!onToolCallsChunk) {
6510
- return;
6511
- }
6512
- const toolCalls = Object.entries(toolCallAccumulator).toSorted((a, b) => a[0].localeCompare(b[0])).map(entry => entry[1]).filter(toolCall => !!toolCall.name);
6513
- if (toolCalls.length === 0) {
6514
- return;
6515
- }
6516
- await onToolCallsChunk(toolCalls);
6517
- };
6518
- const handleParsedStreamEvent = async parsed => {
6519
- if (onDataEvent) {
6520
- await onDataEvent(parsed);
6521
- }
6522
- if (!parsed || typeof parsed !== 'object') {
6523
- return;
6524
- }
6525
- const eventType = Reflect.get(parsed, 'type');
6526
- if (eventType === 'response.completed') {
6527
- const response = Reflect.get(parsed, 'response');
6528
- if (response && typeof response === 'object') {
6529
- const parsedResponseId = Reflect.get(response, 'id');
6530
- if (typeof parsedResponseId === 'string' && parsedResponseId) {
6531
- responseId = parsedResponseId;
6532
- }
6533
- completedResponseFunctionCalls = getResponseFunctionCalls(response);
6534
- }
6535
- return;
6536
- }
6537
- if (eventType === 'response.created' || eventType === 'response.in_progress') {
6538
- const response = Reflect.get(parsed, 'response');
6539
- if (!response || typeof response !== 'object') {
6540
- return;
6541
- }
6542
- const parsedResponseId = Reflect.get(response, 'id');
6543
- if (typeof parsedResponseId === 'string' && parsedResponseId) {
6544
- responseId = parsedResponseId;
6545
- }
6546
- return;
6547
- }
6548
- if (eventType === 'response.output_text.delta') {
6549
- const delta = Reflect.get(parsed, 'delta');
6550
- if (typeof delta !== 'string' || !delta) {
6551
- return;
6552
- }
6553
- text += delta;
6554
- if (onTextChunk) {
6555
- await onTextChunk(delta);
6556
- }
6557
- return;
6558
- }
6559
- if (eventType === 'response.output_item.added') {
6560
- const toolCallKey = getStreamingToolCallKey(parsed);
6561
- const item = Reflect.get(parsed, 'item');
6562
- if (!toolCallKey || !item || typeof item !== 'object') {
6563
- return;
6564
- }
6565
- const itemType = Reflect.get(item, 'type');
6566
- if (itemType !== 'function_call') {
6567
- return;
6568
- }
6569
- const callId = Reflect.get(item, 'call_id');
6570
- const name = Reflect.get(item, 'name');
6571
- const rawArguments = Reflect.get(item, 'arguments');
6572
- const rawStatus = Reflect.get(item, 'status');
6573
- const status = getStreamingToolCallStatus(rawStatus);
6574
- const next = {
6575
- arguments: typeof rawArguments === 'string' ? rawArguments : '',
6576
- ...(typeof callId === 'string' ? {
6577
- id: callId
6578
- } : {}),
6579
- name: typeof name === 'string' ? name : '',
6580
- ...(status ? {
6581
- status
6582
- } : {})
6583
- };
6584
- toolCallAccumulator = {
6585
- ...toolCallAccumulator,
6586
- [toolCallKey]: next
6587
- };
6588
- await emitToolCallAccumulator();
6589
- return;
6590
- }
6591
- if (eventType === 'response.output_item.done') {
6592
- const toolCallKey = getStreamingToolCallKey(parsed);
6593
- const item = Reflect.get(parsed, 'item');
6594
- if (!toolCallKey || !item || typeof item !== 'object') {
6595
- return;
6596
- }
6597
- const itemType = Reflect.get(item, 'type');
6598
- if (itemType !== 'function_call') {
6599
- return;
6600
- }
6601
- const callId = Reflect.get(item, 'call_id');
6602
- const name = Reflect.get(item, 'name');
6603
- const rawArguments = Reflect.get(item, 'arguments');
6604
- const rawStatus = Reflect.get(item, 'status');
6605
- const status = getStreamingToolCallStatus(rawStatus);
6606
- const current = toolCallAccumulator[toolCallKey] || {
6607
- arguments: '',
6608
- name: ''
6609
- };
6610
- toolCallAccumulator = {
6611
- ...toolCallAccumulator,
6612
- [toolCallKey]: {
6613
- arguments: typeof rawArguments === 'string' ? rawArguments : current.arguments,
6614
- ...(typeof callId === 'string' ? {
6615
- id: callId
6616
- } : current.id ? {
6617
- id: current.id
6618
- } : {}),
6619
- name: typeof name === 'string' && name ? name : current.name,
6620
- ...(status ? {
6621
- status
6622
- } : current.status ? {
6623
- status: current.status
6624
- } : {})
6625
- }
6626
- };
6627
- await emitToolCallAccumulator();
6628
- return;
6629
- }
6630
- if (eventType === 'response.function_call_arguments.delta' || eventType === 'response.function_call_arguments.done') {
6631
- const toolCallKey = getStreamingToolCallKey(parsed);
6632
- if (!toolCallKey) {
6633
- return;
6634
- }
6635
- const current = toolCallAccumulator[toolCallKey] || {
6636
- arguments: '',
6637
- name: ''
6638
- };
6639
- const name = Reflect.get(parsed, 'name');
6640
- const callId = Reflect.get(parsed, 'call_id');
6641
- const delta = Reflect.get(parsed, 'delta');
6642
- const rawArguments = Reflect.get(parsed, 'arguments');
6643
- const next = {
6644
- arguments: typeof rawArguments === 'string' ? rawArguments : typeof delta === 'string' ? `${current.arguments}${delta}` : current.arguments,
6645
- ...(typeof callId === 'string' ? {
6646
- id: callId
6647
- } : current.id ? {
6648
- id: current.id
6649
- } : {}),
6650
- name: typeof name === 'string' && name ? name : current.name
6651
- };
6652
- toolCallAccumulator = {
6653
- ...toolCallAccumulator,
6654
- [toolCallKey]: next
6655
- };
6656
- await emitToolCallAccumulator();
6657
- return;
6658
- }
6659
- const choices = Reflect.get(parsed, 'choices');
6660
- if (!Array.isArray(choices)) {
6661
- return;
6662
- }
6663
- const firstChoice = choices[0];
6664
- if (!firstChoice || typeof firstChoice !== 'object') {
6665
- return;
6666
- }
6667
- const delta = Reflect.get(firstChoice, 'delta');
6668
- if (!delta || typeof delta !== 'object') {
6669
- return;
6670
- }
6671
- const toolCalls = Reflect.get(delta, 'tool_calls');
6672
- const updatedToolCallResult = Array.isArray(toolCalls) ? updateToolCallAccumulator(toolCallAccumulator, toolCalls) : undefined;
6673
- if (updatedToolCallResult) {
6674
- toolCallAccumulator = updatedToolCallResult.nextAccumulator;
6675
- }
6676
- if (updatedToolCallResult && onToolCallsChunk) {
6677
- await onToolCallsChunk(updatedToolCallResult.toolCalls);
6678
- }
6679
- const content = Reflect.get(delta, 'content');
6680
- const chunkText = getStreamChunkText(content);
6681
- if (!chunkText) {
6682
- return;
6683
- }
6684
- text += chunkText;
6685
- if (onTextChunk) {
6686
- await onTextChunk(chunkText);
6687
- }
6688
- };
6689
- while (!done) {
6690
- const {
6691
- done: streamDone,
6692
- value
6693
- } = await reader.read();
6694
- if (streamDone) {
6695
- done = true;
6696
- } else if (value) {
6697
- remainder += decoder.decode(value, {
6698
- stream: true
6699
- });
6700
- }
6701
- while (true) {
6702
- const separatorIndex = remainder.indexOf('\n\n');
6703
- if (separatorIndex === -1) {
6704
- break;
6705
- }
6706
- const rawEvent = remainder.slice(0, separatorIndex);
6707
- remainder = remainder.slice(separatorIndex + 2);
6708
- const dataLines = parseSseEvent(rawEvent);
6709
- if (dataLines.length === 0) {
6710
- continue;
6711
- }
6712
- for (const line of dataLines) {
6713
- if (line === '[DONE]') {
6714
- done = true;
6715
- break;
6716
- }
6717
- let parsed;
6718
- try {
6719
- parsed = JSON.parse(line);
6720
- } catch {
6721
- continue;
6722
- }
6723
- await handleParsedStreamEvent(parsed);
6724
- }
6725
- }
6726
- }
6727
- if (remainder) {
6728
- const dataLines = parseSseEvent(remainder);
6729
- for (const line of dataLines) {
6730
- if (line === '[DONE]') {
6731
- continue;
6732
- }
6733
- let parsed;
6734
- try {
6735
- parsed = JSON.parse(line);
6736
- } catch {
6737
- continue;
6738
- }
6739
- await handleParsedStreamEvent(parsed);
6740
- }
6741
- }
6742
- const responseFunctionCalls = completedResponseFunctionCalls.length > 0 ? completedResponseFunctionCalls : getResponseFunctionCallsFromStreamingAccumulator(toolCallAccumulator);
6743
- return {
6744
- ...(responseId ? {
6745
- responseId
6746
- } : {}),
6747
- responseFunctionCalls,
6748
- text,
6749
- type: 'success'
6750
- };
6751
- };
6752
- const getOpenApiErrorDetails = async response => {
6753
- let parsed;
6754
- try {
6755
- parsed = await response.json();
6756
- } catch {
6757
- return {};
6758
- }
6759
- if (!parsed || typeof parsed !== 'object') {
6760
- return {};
6761
- }
6762
- const error = Reflect.get(parsed, 'error');
6763
- if (!error || typeof error !== 'object') {
6764
- return {};
6765
- }
6766
- const errorCode = Reflect.get(error, 'code');
6767
- const errorMessage = Reflect.get(error, 'message');
6768
- const errorType = Reflect.get(error, 'type');
6769
- return {
6770
- ...(typeof errorCode === 'string' ? {
6771
- errorCode
6772
- } : {}),
6773
- ...(typeof errorMessage === 'string' ? {
6774
- errorMessage
6775
- } : {}),
6776
- ...(typeof errorType === 'string' ? {
6777
- errorType
6778
- } : {})
6779
- };
6780
- };
6781
- const getOpenApiErrorDetailsFromResponseText = responseText => {
6782
- let parsed;
6783
- try {
6784
- parsed = JSON.parse(responseText);
6785
- } catch {
6786
- return {};
6787
- }
6788
- if (!parsed || typeof parsed !== 'object') {
6789
- return {};
6790
- }
6791
- const error = Reflect.get(parsed, 'error');
6792
- if (!error || typeof error !== 'object') {
6793
- return {};
6794
- }
6795
- const errorCode = Reflect.get(error, 'code');
6796
- const errorMessage = Reflect.get(error, 'message');
6797
- const errorType = Reflect.get(error, 'type');
6798
- return {
6799
- ...(typeof errorCode === 'string' ? {
6800
- errorCode
6801
- } : {}),
6802
- ...(typeof errorMessage === 'string' ? {
6803
- errorMessage
6804
- } : {}),
6805
- ...(typeof errorType === 'string' ? {
6806
- errorType
6807
- } : {})
6808
- };
6809
- };
6810
- const getResponseFromSseEvents = events => {
6811
- const chunks = events.map(event => {
6812
- const data = typeof event === 'string' ? event : JSON.stringify(event);
6813
- return `data: ${data}\n\n`;
6814
- });
6815
- const stream = new ReadableStream({
6816
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
6817
- start(controller) {
6818
- for (const chunk of chunks) {
6819
- controller.enqueue(new TextEncoder().encode(chunk));
6820
- }
6821
- controller.close();
6822
- }
6823
- });
6824
- return {
6825
- body: stream
6826
- };
6827
- };
6828
- const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApiApiBaseUrl, assetDir, platform, options) => {
6829
- const {
6830
- agentMode = defaultAgentMode,
6831
- includeObfuscation = false,
6832
- maxToolCalls = defaultMaxToolCalls,
6833
- onDataEvent,
6834
- onEventStreamFinished,
6835
- onTextChunk,
6836
- onToolCallsChunk,
6837
- questionToolEnabled = false,
6838
- reasoningEffort,
6839
- sessionId,
6840
- stream,
6841
- supportsReasoningEffort = false,
6842
- systemPrompt = '',
6843
- toolEnablement,
6844
- useChatNetworkWorkerForRequests = false,
6845
- useChatToolWorker = true,
6846
- webSearchEnabled = false,
6847
- workspaceUri = ''
6848
- } = options ?? {
6849
- stream: false
6850
- };
6851
- const openAiInput = messages.map(message => ({
6852
- content: getChatMessageOpenAiContent(message),
6853
- role: message.role
6854
- }));
6855
- const tools = await getBasicChatTools(agentMode, questionToolEnabled, toolEnablement);
6856
- const safeMaxToolCalls = Math.max(1, maxToolCalls);
6857
- const maxToolIterations = safeMaxToolCalls - 1;
6858
- let previousResponseId;
6859
- for (let i = 0; i <= maxToolIterations; i++) {
6860
- const postBody = getOpenAiParams(openAiInput, modelId, stream, includeObfuscation, tools, webSearchEnabled, safeMaxToolCalls, systemPrompt, previousResponseId, reasoningEffort, supportsReasoningEffort);
6861
- if (stream) {
6862
- const streamResult = useChatNetworkWorkerForRequests ? await (async () => {
6863
- const requestResult = await makeStreamingApiRequest({
6864
- headers: {
6865
- Authorization: `Bearer ${openApiApiKey}`,
6866
- 'Content-Type': 'application/json',
6867
- ...getClientRequestIdHeader()
6868
- },
6869
- method: 'POST',
6870
- postBody,
6871
- url: getOpenApiApiEndpoint(openApiApiBaseUrl)
6872
- });
6873
- if (requestResult.type === 'error') {
6874
- if (requestResult.statusCode === 0) {
6875
- return {
6876
- details: 'request-failed',
6877
- type: 'error'
6878
- };
6879
- }
6880
- const {
6881
- errorCode,
6882
- errorMessage,
6883
- errorType
6884
- } = getOpenApiErrorDetailsFromResponseText(requestResult.response);
6885
- return {
6886
- details: 'http-error',
6887
- ...(errorCode ? {
6888
- errorCode
6889
- } : {}),
6890
- ...(errorMessage ? {
6891
- errorMessage
6892
- } : {}),
6893
- ...(errorType ? {
6894
- errorType
6895
- } : {}),
6896
- statusCode: requestResult.statusCode,
6897
- type: 'error'
6898
- };
6899
- }
6900
- const response = getResponseFromSseEvents(requestResult.body);
6901
- return parseOpenApiStream(response, onTextChunk, onToolCallsChunk, onDataEvent);
6902
- })() : await (async () => {
6903
- let response;
6904
- try {
6905
- response = await fetch(getOpenApiApiEndpoint(openApiApiBaseUrl), {
6906
- body: JSON.stringify(postBody),
6907
- headers: {
6908
- Authorization: `Bearer ${openApiApiKey}`,
6909
- 'Content-Type': 'application/json',
6910
- ...getClientRequestIdHeader()
6911
- },
6912
- method: 'POST'
6913
- });
6914
- } catch {
6915
- return {
6916
- details: 'request-failed',
6917
- type: 'error'
6918
- };
6919
- }
6920
- if (!response.ok) {
6921
- const {
6922
- errorCode,
6923
- errorMessage,
6924
- errorType
6925
- } = await getOpenApiErrorDetails(response);
6926
- return {
6927
- details: 'http-error',
6928
- ...(errorCode ? {
6929
- errorCode
6930
- } : {}),
6931
- ...(errorMessage ? {
6932
- errorMessage
6933
- } : {}),
6934
- ...(errorType ? {
6935
- errorType
6936
- } : {}),
6937
- statusCode: response.status,
6938
- type: 'error'
6939
- };
6940
- }
6941
- return parseOpenApiStream(response, onTextChunk, onToolCallsChunk, onDataEvent);
6942
- })();
6943
- if (streamResult.type !== 'success') {
6944
- return streamResult;
6945
- }
6946
- if (streamResult.responseId) {
6947
- previousResponseId = streamResult.responseId;
6948
- }
6949
- if (streamResult.responseFunctionCalls.length > 0) {
6950
- openAiInput.length = 0;
6951
- const executedToolCalls = [];
6952
- for (const toolCall of streamResult.responseFunctionCalls) {
6953
- const content = await executeChatTool(toolCall.name, toolCall.arguments, {
6954
- assetDir,
6955
- platform,
6956
- ...(sessionId ? {
6957
- sessionId
6958
- } : {}),
6959
- toolCallId: toolCall.callId,
6960
- ...(toolEnablement ? {
6961
- toolEnablement
6962
- } : {}),
6963
- useChatToolWorker,
6964
- workspaceUri
6965
- });
6966
- const executionStatus = getToolCallExecutionStatus(content);
6967
- const toolCallResult = getToolCallResult(toolCall.name, content);
6968
- executedToolCalls.push({
6969
- arguments: toolCall.arguments,
6970
- ...(executionStatus.errorStack ? {
6971
- errorStack: executionStatus.errorStack
6972
- } : {}),
6973
- ...(executionStatus.errorMessage ? {
6974
- errorMessage: executionStatus.errorMessage
6975
- } : {}),
6976
- ...(executionStatus.errorStack ? {
6977
- errorStack: executionStatus.errorStack
6978
- } : {}),
6979
- id: toolCall.callId,
6980
- name: toolCall.name,
6981
- ...(toolCallResult ? {
6982
- result: toolCallResult
6983
- } : {}),
6984
- ...(executionStatus.status ? {
6985
- status: executionStatus.status
6986
- } : {})
6987
- });
6988
- openAiInput.push({
6989
- call_id: toolCall.callId,
6990
- output: content,
6991
- type: 'function_call_output'
6992
- });
6993
- }
6994
- if (onToolCallsChunk && executedToolCalls.length > 0) {
6995
- await onToolCallsChunk(executedToolCalls);
6996
- }
6997
- continue;
6998
- }
6999
- if (onEventStreamFinished) {
7000
- await onEventStreamFinished();
7001
- }
7002
- return {
7003
- text: streamResult.text,
7004
- type: 'success'
7005
- };
7006
- }
7007
- let parsed;
7008
- if (useChatNetworkWorkerForRequests) {
7009
- const requestResult = await makeApiRequest({
7010
- headers: {
7011
- Authorization: `Bearer ${openApiApiKey}`,
7012
- 'Content-Type': 'application/json',
7013
- ...getClientRequestIdHeader()
7014
- },
7015
- method: 'POST',
7016
- postBody,
7017
- url: getOpenApiApiEndpoint(openApiApiBaseUrl)
7018
- });
7019
- if (requestResult.type === 'error') {
7020
- if (requestResult.statusCode === 0) {
7021
- return {
7022
- details: 'request-failed',
7023
- type: 'error'
7024
- };
7025
- }
7026
- const {
7027
- errorCode,
7028
- errorMessage,
7029
- errorType
7030
- } = getOpenApiErrorDetailsFromResponseText(requestResult.response);
7031
- return {
7032
- details: 'http-error',
7033
- ...(errorCode ? {
7034
- errorCode
7035
- } : {}),
7036
- ...(errorMessage ? {
7037
- errorMessage
7038
- } : {}),
7039
- ...(errorType ? {
7040
- errorType
7041
- } : {}),
7042
- statusCode: requestResult.statusCode,
7043
- type: 'error'
7044
- };
7045
- }
7046
- parsed = requestResult.body;
7047
- } else {
7048
- let response;
7049
- try {
7050
- response = await fetch(getOpenApiApiEndpoint(openApiApiBaseUrl), {
7051
- body: JSON.stringify(postBody),
7052
- headers: {
7053
- Authorization: `Bearer ${openApiApiKey}`,
7054
- 'Content-Type': 'application/json',
7055
- ...getClientRequestIdHeader()
7056
- },
7057
- method: 'POST'
7058
- });
7059
- } catch {
7060
- return {
7061
- details: 'request-failed',
7062
- type: 'error'
7063
- };
7064
- }
7065
- if (!response.ok) {
7066
- const {
7067
- errorCode,
7068
- errorMessage,
7069
- errorType
7070
- } = await getOpenApiErrorDetails(response);
7071
- return {
7072
- details: 'http-error',
7073
- ...(errorCode ? {
7074
- errorCode
7075
- } : {}),
7076
- ...(errorMessage ? {
7077
- errorMessage
7078
- } : {}),
7079
- ...(errorType ? {
7080
- errorType
7081
- } : {}),
7082
- statusCode: response.status,
7083
- type: 'error'
7084
- };
7085
- }
7086
- try {
7087
- parsed = await response.json();
7088
- } catch {
7089
- return {
7090
- details: 'request-failed',
7091
- type: 'error'
7092
- };
7093
- }
7094
- }
7095
- if (!parsed || typeof parsed !== 'object') {
7096
- return {
7097
- text: '',
7098
- type: 'success'
7099
- };
7100
- }
7101
- const parsedResponseId = Reflect.get(parsed, 'id');
7102
- if (typeof parsedResponseId === 'string' && parsedResponseId) {
7103
- previousResponseId = parsedResponseId;
7104
- }
7105
- const responseFunctionCalls = getResponseFunctionCalls(parsed);
7106
- if (responseFunctionCalls.length > 0) {
7107
- openAiInput.length = 0;
7108
- const executedToolCalls = [];
7109
- for (const toolCall of responseFunctionCalls) {
7110
- const content = await executeChatTool(toolCall.name, toolCall.arguments, {
7111
- assetDir,
7112
- platform,
7113
- ...(sessionId ? {
7114
- sessionId
7115
- } : {}),
7116
- toolCallId: toolCall.callId,
7117
- ...(toolEnablement ? {
7118
- toolEnablement
7119
- } : {}),
7120
- useChatToolWorker,
7121
- workspaceUri
7122
- });
7123
- const executionStatus = getToolCallExecutionStatus(content);
7124
- const toolCallResult = getToolCallResult(toolCall.name, content);
7125
- executedToolCalls.push({
7126
- arguments: toolCall.arguments,
7127
- ...(executionStatus.errorStack ? {
7128
- errorStack: executionStatus.errorStack
7129
- } : {}),
7130
- ...(executionStatus.errorMessage ? {
7131
- errorMessage: executionStatus.errorMessage
7132
- } : {}),
7133
- ...(executionStatus.errorStack ? {
7134
- errorStack: executionStatus.errorStack
7135
- } : {}),
7136
- id: toolCall.callId,
7137
- name: toolCall.name,
7138
- ...(toolCallResult ? {
7139
- result: toolCallResult
7140
- } : {}),
7141
- ...(executionStatus.status ? {
7142
- status: executionStatus.status
7143
- } : {})
7144
- });
7145
- openAiInput.push({
7146
- call_id: toolCall.callId,
7147
- output: content,
7148
- type: 'function_call_output'
7149
- });
7150
- }
7151
- if (onToolCallsChunk && executedToolCalls.length > 0) {
7152
- await onToolCallsChunk(executedToolCalls);
7153
- }
7154
- continue;
7155
- }
7156
- const outputText = getResponseOutputText(parsed);
7157
- if (outputText) {
7158
- return {
7159
- text: outputText,
7160
- type: 'success'
7161
- };
7162
- }
7163
- const choices = Reflect.get(parsed, 'choices');
7164
- if (Array.isArray(choices)) {
7165
- const firstChoice = choices[0];
7166
- if (!firstChoice || typeof firstChoice !== 'object') {
7167
- return {
7168
- text: '',
7169
- type: 'success'
7170
- };
7171
- }
7172
- const message = Reflect.get(firstChoice, 'message');
7173
- if (!message || typeof message !== 'object') {
7174
- return {
7175
- text: '',
7176
- type: 'success'
7177
- };
7178
- }
7179
- const toolCalls = Reflect.get(message, 'tool_calls');
7180
- if (Array.isArray(toolCalls) && toolCalls.length > 0) {
7181
- openAiInput.length = 0;
7182
- const executedToolCalls = [];
7183
- for (const toolCall of toolCalls) {
7184
- if (!toolCall || typeof toolCall !== 'object') {
7185
- continue;
7186
- }
7187
- const id = Reflect.get(toolCall, 'id');
7188
- const toolFunction = Reflect.get(toolCall, 'function');
7189
- if (typeof id !== 'string' || !toolFunction || typeof toolFunction !== 'object') {
7190
- continue;
7191
- }
7192
- const name = Reflect.get(toolFunction, 'name');
7193
- const rawArguments = Reflect.get(toolFunction, 'arguments');
7194
- const content = typeof name === 'string' ? await executeChatTool(name, rawArguments, {
7195
- assetDir,
7196
- platform,
7197
- ...(sessionId ? {
7198
- sessionId
7199
- } : {}),
7200
- toolCallId: id,
7201
- useChatToolWorker,
7202
- workspaceUri
7203
- }) : '{}';
7204
- if (typeof name === 'string') {
7205
- const executionStatus = getToolCallExecutionStatus(content);
7206
- const toolCallResult = getToolCallResult(name, content);
7207
- executedToolCalls.push({
7208
- arguments: typeof rawArguments === 'string' ? rawArguments : '',
7209
- ...(executionStatus.errorStack ? {
7210
- errorStack: executionStatus.errorStack
7211
- } : {}),
7212
- ...(executionStatus.errorMessage ? {
7213
- errorMessage: executionStatus.errorMessage
7214
- } : {}),
7215
- ...(executionStatus.errorStack ? {
7216
- errorStack: executionStatus.errorStack
7217
- } : {}),
7218
- id,
7219
- name,
7220
- ...(toolCallResult ? {
7221
- result: toolCallResult
7222
- } : {}),
7223
- ...(executionStatus.status ? {
7224
- status: executionStatus.status
7225
- } : {})
7226
- });
7227
- }
7228
- openAiInput.push({
7229
- call_id: id,
7230
- output: content,
7231
- type: 'function_call_output'
7232
- });
7233
- }
7234
- if (onToolCallsChunk && executedToolCalls.length > 0) {
7235
- await onToolCallsChunk(executedToolCalls);
7236
- }
7237
- continue;
7238
- }
7239
- const content = Reflect.get(message, 'content');
7240
- return {
7241
- text: getTextContent(content),
7242
- type: 'success'
7243
- };
7244
- }
7245
- return {
7246
- text: '',
7247
- type: 'success'
7248
- };
7249
- }
7250
- return {
7251
- details: 'tool-iterations-exhausted',
7252
- iterationLimit: safeMaxToolCalls,
7253
- type: 'error'
7254
- };
7255
- };
7256
-
7257
- /* cspell:ignore sonarjs */
7258
-
7259
- const imageRegex = /\b(?:image|vision|multimodal)\b/i;
7260
- const unsupportedRegex = /\bdoes(?:\s+not|n't)\s+support|not\s+support(?:ed)?|unsupported\b/i;
7261
- const isOffline = () => {
7262
- if (!globalThis.navigator) {
7263
- return false;
7264
- }
7265
- return globalThis.navigator.onLine === false;
7266
- };
7267
- const isImageNotSupportedError = errorResult => {
7268
- const haystack = [errorResult.errorCode, errorResult.errorMessage, errorResult.errorType].filter(Boolean).join(' ');
7269
- return imageRegex.test(haystack) && unsupportedRegex.test(haystack);
7270
- };
7271
- const getImageNotSupportedMessage = modelName => {
7272
- const subject = modelName ? `${modelName} does not support image attachments.` : 'This model does not support image attachments.';
7273
- return `${subject} Choose a vision-capable model like GPT-4o Mini or GPT-4o, or remove the image and try again.`;
7274
- };
7275
- const getOpenApiErrorMessage = errorResult => {
7276
- switch (errorResult.details) {
7277
- case 'http-error':
7278
- {
7279
- const errorMessage = errorResult.errorMessage?.trim();
7280
- const hasErrorCode = typeof errorResult.errorCode === 'string' && errorResult.errorCode.length > 0;
7281
- const hasErrorType = typeof errorResult.errorType === 'string' && errorResult.errorType.length > 0;
7282
-
7283
- // Provide a concise, user-friendly message when OpenAI reports an invalid API key.
7284
- if (errorResult.errorCode === 'invalid_api_key') {
7285
- const status = typeof errorResult.statusCode === 'number' ? errorResult.statusCode : 401;
7286
- return `OpenAI request failed (Status ${status}): Invalid API key. Please verify your OpenAI API key in Chat Settings.`;
7287
- }
7288
- if (isImageNotSupportedError(errorResult)) {
7289
- return getImageNotSupportedMessage();
7290
- }
7291
- if (errorResult.statusCode === 429) {
7292
- let prefix = 'OpenAI rate limit exceeded (429)';
7293
- if (hasErrorCode) {
7294
- prefix = `OpenAI rate limit exceeded (429: ${errorResult.errorCode})`;
7295
- }
7296
- if (hasErrorType) {
7297
- prefix += ` [${errorResult.errorType}]`;
7298
- }
7299
- prefix += '.';
7300
- if (!errorMessage) {
7301
- return prefix;
7302
- }
7303
- return `${prefix} ${errorMessage}`;
7304
- }
7305
- if (typeof errorResult.statusCode === 'number') {
7306
- let prefix = `OpenAI request failed (status ${errorResult.statusCode})`;
7307
- if (hasErrorCode) {
7308
- prefix += `: ${errorResult.errorCode}`;
7309
- }
7310
- if (hasErrorType) {
7311
- prefix += ` [${errorResult.errorType}]`;
7312
- }
7313
- prefix += '.';
7314
- if (!errorMessage) {
7315
- return prefix;
7316
- }
7317
- return `${prefix} ${errorMessage}`;
7318
- }
7319
- if (errorMessage) {
7320
- return `OpenAI request failed. ${errorMessage}`;
7321
- }
7322
- return openApiRequestFailedMessage;
7323
- }
7324
- case 'request-failed':
7325
- if (errorResult.isOffline || isOffline()) {
7326
- return openApiRequestFailedOfflineMessage;
7327
- }
7328
- return openApiRequestFailedMessage;
7329
- case 'tool-iterations-exhausted':
7330
- {
7331
- const rounds = typeof errorResult.iterationLimit === 'number' ? errorResult.iterationLimit : defaultMaxToolCalls;
7332
- return `OpenAI request ended after ${rounds} tool-call rounds without a final assistant response. This usually means the model got stuck in a tool loop. Please try rephrasing your request, reducing scope, or switching to a different model.`;
7333
- }
7334
- }
7335
- };
7336
-
7337
- const getOpenApiModelId = selectedModelId => {
7338
- const openApiPrefix = 'openapi/';
7339
- const openAiPrefix = 'openai/';
7340
- const normalizedModelId = selectedModelId.toLowerCase();
7341
- if (normalizedModelId.startsWith(openApiPrefix)) {
7342
- return selectedModelId.slice(openApiPrefix.length);
7343
- }
7344
- if (normalizedModelId.startsWith(openAiPrefix)) {
7345
- return selectedModelId.slice(openAiPrefix.length);
7346
- }
7347
- return selectedModelId;
7348
- };
7349
-
7350
- const trailingSlashesRegex$2 = /\/+$/;
7351
- const getOpenRouterApiEndpoint = openRouterApiBaseUrl => {
7352
- const trimmedBaseUrl = openRouterApiBaseUrl.replace(trailingSlashesRegex$2, '');
7353
- return `${trimmedBaseUrl}/chat/completions`;
7354
- };
7355
-
7356
- const trailingSlashesRegex$1 = /\/+$/;
7357
- const getOpenRouterKeyEndpoint = openRouterApiBaseUrl => {
7358
- const trimmedBaseUrl = openRouterApiBaseUrl.replace(trailingSlashesRegex$1, '');
7359
- return `${trimmedBaseUrl}/auth/key`;
7360
- };
7361
-
7362
- /* cspell:ignore sonarjs */
7363
-
7364
- const getOpenRouterRaw429Message = async response => {
7365
- let parsed;
7366
- try {
7367
- parsed = await response.json();
7368
- } catch {
7369
- return undefined;
7370
- }
7371
- if (!parsed || typeof parsed !== 'object') {
7372
- return undefined;
7373
- }
7374
- const error = Reflect.get(parsed, 'error');
7375
- if (!error || typeof error !== 'object') {
7376
- return undefined;
7377
- }
7378
- const metadata = Reflect.get(error, 'metadata');
7379
- if (!metadata || typeof metadata !== 'object') {
7380
- return undefined;
7381
- }
7382
- const raw = Reflect.get(metadata, 'raw');
7383
- if (typeof raw !== 'string' || !raw) {
7384
- return undefined;
7385
- }
7386
- return raw;
7387
- };
7388
- const getOpenRouterRaw429MessageFromText = responseText => {
7389
- let parsed;
7390
- try {
7391
- parsed = JSON.parse(responseText);
7392
- } catch {
7393
- return undefined;
7394
- }
7395
- if (!parsed || typeof parsed !== 'object') {
7396
- return undefined;
7397
- }
7398
- const error = Reflect.get(parsed, 'error');
7399
- if (!error || typeof error !== 'object') {
7400
- return undefined;
7401
- }
7402
- const metadata = Reflect.get(error, 'metadata');
7403
- if (!metadata || typeof metadata !== 'object') {
7404
- return undefined;
7405
- }
7406
- const raw = Reflect.get(metadata, 'raw');
7407
- if (typeof raw !== 'string' || !raw) {
7408
- return undefined;
7409
- }
7410
- return raw;
7411
- };
7412
- const getOpenRouterLimitInfo = async (openRouterApiKey, openRouterApiBaseUrl, useChatNetworkWorkerForRequests) => {
7413
- let parsed;
7414
- if (useChatNetworkWorkerForRequests) {
7415
- const result = await makeApiRequest({
7416
- headers: {
7417
- Authorization: `Bearer ${openRouterApiKey}`,
7418
- ...getClientRequestIdHeader()
7419
- },
7420
- method: 'GET',
7421
- url: getOpenRouterKeyEndpoint(openRouterApiBaseUrl)
7422
- });
7423
- if (result.type === 'error') {
7424
- return undefined;
7425
- }
7426
- parsed = result.body;
7427
- } else {
7428
- let response;
7429
- try {
7430
- response = await fetch(getOpenRouterKeyEndpoint(openRouterApiBaseUrl), {
7431
- headers: {
7432
- Authorization: `Bearer ${openRouterApiKey}`,
7433
- ...getClientRequestIdHeader()
7434
- },
7435
- method: 'GET'
7436
- });
7437
- } catch {
7438
- return undefined;
7439
- }
7440
- if (!response.ok) {
7441
- return undefined;
7442
- }
7443
- try {
7444
- parsed = await response.json();
7445
- } catch {
7446
- return undefined;
7447
- }
7448
- }
7449
- if (!parsed || typeof parsed !== 'object') {
7450
- return undefined;
7451
- }
7452
- const data = Reflect.get(parsed, 'data');
7453
- if (!data || typeof data !== 'object') {
7454
- return undefined;
7455
- }
7456
- const limitRemaining = Reflect.get(data, 'limit_remaining');
7457
- const limitReset = Reflect.get(data, 'limit_reset');
7458
- const usage = Reflect.get(data, 'usage');
7459
- const usageDaily = Reflect.get(data, 'usage_daily');
7460
- const normalizedLimitInfo = {
7461
- ...(typeof limitRemaining === 'number' || limitRemaining === null ? {
7462
- limitRemaining
7463
- } : {}),
7464
- ...(typeof limitReset === 'string' || limitReset === null ? {
7465
- limitReset
7466
- } : {}),
7467
- ...(typeof usage === 'number' ? {
7468
- usage
7469
- } : {}),
7470
- ...(typeof usageDaily === 'number' ? {
7471
- usageDaily
7472
- } : {})
7473
- };
7474
- const hasLimitInfo = normalizedLimitInfo.limitRemaining !== undefined || normalizedLimitInfo.limitReset !== undefined || normalizedLimitInfo.usage !== undefined || normalizedLimitInfo.usageDaily !== undefined;
7475
- if (!hasLimitInfo) {
7476
- return undefined;
7477
- }
7478
- return normalizedLimitInfo;
7479
- };
7480
- const getOpenRouterAssistantText = async (messages, modelId, openRouterApiKey, openRouterApiBaseUrl, assetDir, platform, useChatNetworkWorkerForRequests = false, useChatToolWorker = true, questionToolEnabled = false, systemPrompt = '', workspaceUri = '', agentMode = defaultAgentMode, toolEnablement, sessionId) => {
7481
- const effectiveAgentMode = typeof agentMode === 'boolean' ? defaultAgentMode : agentMode;
7482
- const completionMessages = [...(systemPrompt ? [{
7483
- content: systemPrompt,
7484
- role: 'system'
7485
- }] : []), ...messages.map(message => ({
7486
- content: message.text,
7487
- role: message.role
7488
- }))];
7489
- const tools = await getBasicChatTools(effectiveAgentMode, questionToolEnabled, toolEnablement);
7490
- const maxToolIterations = 4;
7491
- for (let i = 0; i <= maxToolIterations; i++) {
7492
- let parsed;
7493
- if (useChatNetworkWorkerForRequests) {
7494
- const requestResult = await makeApiRequest({
7495
- headers: {
7496
- Authorization: `Bearer ${openRouterApiKey}`,
7497
- 'Content-Type': 'application/json',
7498
- ...getClientRequestIdHeader()
7499
- },
7500
- method: 'POST',
7501
- postBody: {
7502
- messages: completionMessages,
7503
- model: modelId,
7504
- tool_choice: 'auto',
7505
- tools
7506
- },
7507
- url: getOpenRouterApiEndpoint(openRouterApiBaseUrl)
7508
- });
7509
- if (requestResult.type === 'error') {
7510
- if (requestResult.statusCode === 429) {
7511
- const retryAfter = requestResult.headers?.['retry-after'] ?? null;
7512
- const rawMessage = getOpenRouterRaw429MessageFromText(requestResult.response);
7513
- const limitInfo = await getOpenRouterLimitInfo(openRouterApiKey, openRouterApiBaseUrl, useChatNetworkWorkerForRequests);
7514
- return {
7515
- details: 'too-many-requests',
7516
- ...(limitInfo || retryAfter ? {
7517
- limitInfo: {
7518
- ...limitInfo,
7519
- ...(retryAfter ? {
7520
- retryAfter
7521
- } : {})
7522
- }
7523
- } : {}),
7524
- ...(rawMessage ? {
7525
- rawMessage
7526
- } : {}),
7527
- statusCode: 429,
7528
- type: 'error'
7529
- };
7530
- }
7531
- return {
7532
- details: 'http-error',
7533
- statusCode: requestResult.statusCode,
7534
- type: 'error'
7535
- };
7536
- }
7537
- parsed = requestResult.body;
7538
- } else {
7539
- let response;
7540
- try {
7541
- response = await fetch(getOpenRouterApiEndpoint(openRouterApiBaseUrl), {
7542
- body: JSON.stringify({
7543
- messages: completionMessages,
7544
- model: modelId,
7545
- tool_choice: 'auto',
7546
- tools
7547
- }),
7548
- headers: {
7549
- Authorization: `Bearer ${openRouterApiKey}`,
7550
- 'Content-Type': 'application/json',
7551
- ...getClientRequestIdHeader()
7552
- },
7553
- method: 'POST'
7554
- });
7555
- } catch {
7556
- return {
7557
- details: 'request-failed',
7558
- type: 'error'
7559
- };
7560
- }
7561
- if (!response.ok) {
7562
- if (response.status === 429) {
7563
- const retryAfter = response.headers?.get?.('retry-after') ?? null;
7564
- const rawMessage = await getOpenRouterRaw429Message(response);
7565
- const limitInfo = await getOpenRouterLimitInfo(openRouterApiKey, openRouterApiBaseUrl, useChatNetworkWorkerForRequests);
7566
- return {
7567
- details: 'too-many-requests',
7568
- ...(limitInfo || retryAfter ? {
7569
- limitInfo: {
7570
- ...limitInfo,
7571
- ...(retryAfter ? {
7572
- retryAfter
7573
- } : {})
7574
- }
7575
- } : {}),
7576
- ...(rawMessage ? {
7577
- rawMessage
7578
- } : {}),
7579
- statusCode: 429,
7580
- type: 'error'
7581
- };
7582
- }
7583
- return {
7584
- details: 'http-error',
7585
- statusCode: response.status,
7586
- type: 'error'
7587
- };
7588
- }
7589
- try {
7590
- parsed = await response.json();
7591
- } catch {
7592
- return {
7593
- details: 'request-failed',
7594
- type: 'error'
7595
- };
7596
- }
7597
- }
7598
- if (!parsed || typeof parsed !== 'object') {
7599
- return {
7600
- text: '',
7601
- type: 'success'
7602
- };
7603
- }
7604
- const choices = Reflect.get(parsed, 'choices');
7605
- if (!Array.isArray(choices)) {
7606
- return {
7607
- text: '',
7608
- type: 'success'
7609
- };
7610
- }
7611
- const firstChoice = choices[0];
7612
- if (!firstChoice || typeof firstChoice !== 'object') {
7613
- return {
7614
- text: '',
7615
- type: 'success'
7616
- };
7617
- }
7618
- const message = Reflect.get(firstChoice, 'message');
7619
- if (!message || typeof message !== 'object') {
7620
- return {
7621
- text: '',
7622
- type: 'success'
7623
- };
7624
- }
7625
- const toolCalls = Reflect.get(message, 'tool_calls');
7626
- if (Array.isArray(toolCalls) && toolCalls.length > 0) {
7627
- completionMessages.push(message);
7628
- for (const toolCall of toolCalls) {
7629
- if (!toolCall || typeof toolCall !== 'object') {
7630
- continue;
7631
- }
7632
- const id = Reflect.get(toolCall, 'id');
7633
- const toolFunction = Reflect.get(toolCall, 'function');
7634
- if (typeof id !== 'string' || !toolFunction || typeof toolFunction !== 'object') {
7635
- continue;
7636
- }
7637
- const name = Reflect.get(toolFunction, 'name');
7638
- const rawArguments = Reflect.get(toolFunction, 'arguments');
7639
- const content = typeof name === 'string' ? await executeChatTool(name, rawArguments, {
7640
- assetDir,
7641
- platform,
7642
- ...(sessionId ? {
7643
- sessionId
7644
- } : {}),
7645
- toolCallId: id,
7646
- ...(toolEnablement ? {
7647
- toolEnablement
7648
- } : {}),
7649
- useChatToolWorker,
7650
- workspaceUri
7651
- }) : '{}';
7652
- completionMessages.push({
7653
- content,
7654
- role: 'tool',
7655
- tool_call_id: id
7656
- });
7657
- }
7658
- continue;
7659
- }
7660
- const content = Reflect.get(message, 'content');
7661
- return {
7662
- text: getTextContent(content),
7663
- type: 'success'
7664
- };
7665
- }
7666
- return {
7667
- details: 'request-failed',
7668
- type: 'error'
7669
- };
7670
- };
7671
-
7672
- const getOpenRouterTooManyRequestsMessage = errorResult => {
7673
- const details = [];
7674
- if (errorResult.rawMessage) {
7675
- details.push(errorResult.rawMessage);
7676
- }
7677
- const {
7678
- limitInfo
7679
- } = errorResult;
7680
- if (limitInfo) {
7681
- if (limitInfo.retryAfter) {
7682
- details.push(`Retry after: ${limitInfo.retryAfter}.`);
7683
- }
7684
- if (limitInfo.limitReset) {
7685
- details.push(`Limit resets: ${limitInfo.limitReset}.`);
7686
- }
7687
- if (limitInfo.limitRemaining === null) {
7688
- details.push('Credits remaining: unlimited.');
7689
- } else if (typeof limitInfo.limitRemaining === 'number') {
7690
- details.push(`Credits remaining: ${limitInfo.limitRemaining}.`);
7691
- }
7692
- if (typeof limitInfo.usageDaily === 'number') {
7693
- details.push(`Credits used today (UTC): ${limitInfo.usageDaily}.`);
7694
- }
7695
- if (typeof limitInfo.usage === 'number') {
7696
- details.push(`Credits used (all time): ${limitInfo.usage}.`);
7697
- }
7698
- }
7699
- if (details.length === 0) {
7700
- return openRouterTooManyRequestsMessage;
7701
- }
7702
- return `${openRouterTooManyRequestsMessage} ${details.join(' ')}`;
7703
- };
7704
-
7705
- const getOpenRouterErrorMessage = errorResult => {
7706
- switch (errorResult.details) {
7707
- case 'http-error':
7708
- case 'request-failed':
7709
- return openRouterRequestFailedMessage;
7710
- case 'too-many-requests':
7711
- return getOpenRouterTooManyRequestsMessage(errorResult);
7712
- }
7713
- };
7714
-
7715
- // cspell:ignore openrouter
7716
- const getOpenRouterModelId = selectedModelId => {
7717
- const openRouterPrefix = 'openrouter/';
7718
- if (selectedModelId.toLowerCase().startsWith(openRouterPrefix)) {
7719
- return selectedModelId.slice(openRouterPrefix.length);
7720
- }
7721
- return selectedModelId;
7722
- };
7723
-
7724
- const isOpenApiModel = (selectedModelId, models) => {
7725
- const selectedModel = models.find(model => model.id === selectedModelId);
7726
- const normalizedProvider = selectedModel?.provider?.toLowerCase();
7727
- if (normalizedProvider === 'openapi' || normalizedProvider === 'openai' || normalizedProvider === 'open-ai') {
7728
- return true;
7729
- }
7730
- const normalizedModelId = selectedModelId.toLowerCase();
7731
- return normalizedModelId.startsWith('openapi/') || normalizedModelId.startsWith('openai/');
7732
- };
7733
-
7734
- // cspell:ignore openrouter
7735
-
7736
- const isOpenRouterModel = (selectedModelId, models) => {
7737
- const selectedModel = models.find(model => model.id === selectedModelId);
7738
- const normalizedProvider = selectedModel?.provider?.toLowerCase();
7739
- if (normalizedProvider === 'openrouter' || normalizedProvider === 'open-router') {
7740
- return true;
7741
- }
7742
- return selectedModelId.toLowerCase().startsWith('openrouter/');
7743
- };
7744
-
7745
- let errorResponse;
7746
- let successResponse;
7747
- const setHttpErrorResponse = (statusCode, body) => {
7748
- errorResponse = {
7749
- body,
7750
- statusCode,
7751
- type: 'http-error'
7752
- };
7753
- };
7754
- const setResponse = body => {
7755
- successResponse = {
7756
- body,
7757
- type: 'success'
7758
- };
7759
- };
7760
- const takeErrorResponse = () => {
7761
- const response = errorResponse;
7762
- errorResponse = undefined;
7763
- return response;
7764
- };
7765
- const takeResponse = () => {
7766
- const response = successResponse;
7767
- successResponse = undefined;
7768
- return response;
7769
- };
7770
-
7771
- /* cspell:ignore sonarjs */
7772
-
7773
- const trailingSlashesRegex = /\/+$/;
7774
- const shouldUseBackendResponses = (backendUrl, authAccessToken) => {
7775
- return !!backendUrl && !!authAccessToken;
7776
- };
7777
- const getBackendResponsesEndpoint = backendUrl => {
7778
- const trimmedBackendUrl = backendUrl.replace(trailingSlashesRegex, '');
7779
- return `${trimmedBackendUrl}/v1/responses`;
7780
- };
7781
- const hasImageAttachments = messages => {
7782
- return messages.some(message => message.attachments?.some(attachment => attachment.displayType === 'image'));
7783
- };
7784
- const isObject$1 = value => {
7785
- return !!value && typeof value === 'object';
7786
- };
7787
- const getBackendErrorMessageFromBody = body => {
7788
- if (!isObject$1(body)) {
7789
- return undefined;
7790
- }
7791
- const directMessage = Reflect.get(body, 'message');
7792
- if (typeof directMessage === 'string' && directMessage) {
7793
- return directMessage;
7794
- }
7795
- const directError = Reflect.get(body, 'error');
7796
- if (typeof directError === 'string' && directError) {
7797
- return directError;
7798
- }
7799
- if (!isObject$1(directError)) {
7800
- return undefined;
7801
- }
7802
- const nestedMessage = Reflect.get(directError, 'message');
7803
- if (typeof nestedMessage === 'string' && nestedMessage) {
7804
- return nestedMessage;
7805
- }
7806
- return undefined;
7807
- };
7808
- const getBackendErrorCodeFromBody = body => {
7809
- if (!isObject$1(body)) {
7810
- return undefined;
7811
- }
7812
- const directCode = Reflect.get(body, 'code');
7813
- if (typeof directCode === 'string' && directCode) {
7814
- return directCode;
7815
- }
7816
- const directError = Reflect.get(body, 'error');
7817
- if (!isObject$1(directError)) {
7818
- return undefined;
7819
- }
7820
- const nestedCode = Reflect.get(directError, 'code');
7821
- if (typeof nestedCode === 'string' && nestedCode) {
7822
- return nestedCode;
7823
- }
7824
- return undefined;
7825
- };
7826
- const getBackendStatusCodeFromBody = body => {
7827
- if (!isObject$1(body)) {
7828
- return undefined;
7829
- }
7830
- const statusCode = Reflect.get(body, 'statusCode');
7831
- if (typeof statusCode === 'number') {
7832
- return statusCode;
7833
- }
7834
- return undefined;
7835
- };
7836
- const getBackendResponseId = body => {
7837
- if (!isObject$1(body)) {
7838
- return undefined;
7839
- }
7840
- const id = Reflect.get(body, 'id');
7841
- return typeof id === 'string' && id ? id : undefined;
7842
- };
7843
- const getBackendResponseStatus = body => {
7844
- if (!isObject$1(body)) {
7845
- return undefined;
7846
- }
7847
- const status = Reflect.get(body, 'status');
7848
- return typeof status === 'string' && status ? status : undefined;
7849
- };
7850
- const getBackendIncompleteMessage = body => {
7851
- if (!isObject$1(body)) {
7852
- return undefined;
7853
- }
7854
- const incompleteDetails = Reflect.get(body, 'incomplete_details');
7855
- if (!isObject$1(incompleteDetails)) {
7856
- return undefined;
7857
- }
7858
- const reason = Reflect.get(incompleteDetails, 'reason');
7859
- if (typeof reason === 'string' && reason) {
7860
- return `Backend response was incomplete (${reason}).`;
7861
- }
7862
- return undefined;
7863
- };
7864
- const getBackendResponseFunctionCalls = body => {
7865
- if (!isObject$1(body)) {
7866
- return [];
7867
- }
7868
- const output = Reflect.get(body, 'output');
7869
- if (!Array.isArray(output)) {
7870
- return [];
7871
- }
7872
- const calls = [];
7873
- for (const outputItem of output) {
7874
- if (!isObject$1(outputItem)) {
7875
- continue;
7876
- }
7877
- if (Reflect.get(outputItem, 'type') !== 'function_call') {
7878
- continue;
7879
- }
7880
- const callId = Reflect.get(outputItem, 'call_id');
7881
- const name = Reflect.get(outputItem, 'name');
7882
- const rawArguments = Reflect.get(outputItem, 'arguments');
7883
- if (typeof callId !== 'string' || !callId || typeof name !== 'string' || !name) {
7884
- continue;
7885
- }
7886
- calls.push({
7887
- arguments: typeof rawArguments === 'string' ? rawArguments : '',
7888
- callId,
7889
- name
7890
- });
7891
- }
7892
- return calls;
7893
- };
7894
- const getErrorMessage = error => {
7895
- if (error instanceof Error) {
7896
- return error.message;
7897
- }
7898
- return typeof error === 'string' && error ? error : undefined;
7899
- };
7900
- const getBackendInvalidResponseDetails = body => {
7901
- const errorMessage = getBackendErrorMessageFromBody(body);
7902
- if (errorMessage) {
7903
- return errorMessage;
7904
- }
7905
- const incompleteMessage = getBackendIncompleteMessage(body);
7906
- if (incompleteMessage) {
7907
- return incompleteMessage;
7908
- }
7909
- const status = getBackendResponseStatus(body);
7910
- if (status && status !== 'completed') {
7911
- return `Backend response status was "${status}".`;
7912
- }
7913
- if (isObject$1(body) && Array.isArray(Reflect.get(body, 'output'))) {
7914
- return 'Unexpected backend response format: no assistant text or tool calls were returned.';
7915
- }
7916
- return 'Unexpected backend response format.';
7917
- };
7918
- const toExecutedToolCall = (toolCall, content) => {
7919
- const executionStatus = getToolCallExecutionStatus(content);
7920
- const toolCallResult = getToolCallResult(toolCall.name, content);
7921
- return {
7922
- arguments: toolCall.arguments,
7923
- ...(executionStatus.errorMessage ? {
7924
- errorMessage: executionStatus.errorMessage
7925
- } : {}),
7926
- ...(executionStatus.errorStack ? {
7927
- errorStack: executionStatus.errorStack
7928
- } : {}),
7929
- id: toolCall.callId,
7930
- name: toolCall.name,
7931
- ...(toolCallResult ? {
7932
- result: toolCallResult
7933
- } : {}),
7934
- ...(executionStatus.status ? {
7935
- status: executionStatus.status
7936
- } : {})
7937
- };
7938
- };
7939
- const getBackendResponseOutputText = body => {
7940
- if (!isObject$1(body)) {
7941
- return '';
7942
- }
7943
- const outputText = Reflect.get(body, 'output_text');
7944
- if (typeof outputText === 'string' && outputText) {
7945
- return outputText;
7946
- }
7947
- const text = Reflect.get(body, 'text');
7948
- if (typeof text === 'string' && text) {
7949
- return text;
7950
- }
7951
- const message = Reflect.get(body, 'message');
7952
- if (isObject$1(message)) {
7953
- const content = Reflect.get(message, 'content');
7954
- if (typeof content === 'string' && content) {
7955
- return content;
7956
- }
7957
- }
7958
- const choices = Reflect.get(body, 'choices');
7959
- if (Array.isArray(choices)) {
7960
- const firstChoice = choices[0];
7961
- if (isObject$1(firstChoice)) {
7962
- const firstMessage = Reflect.get(firstChoice, 'message');
7963
- if (isObject$1(firstMessage)) {
7964
- const content = Reflect.get(firstMessage, 'content');
7965
- if (typeof content === 'string' && content) {
7966
- return content;
7967
- }
7968
- }
7969
- }
7970
- }
7971
- const output = Reflect.get(body, 'output');
7972
- if (!Array.isArray(output)) {
7973
- return '';
7974
- }
7975
- const chunks = [];
7976
- for (const outputItem of output) {
7977
- if (!isObject$1(outputItem)) {
7978
- continue;
7979
- }
7980
- if (Reflect.get(outputItem, 'type') !== 'message') {
7981
- continue;
7982
- }
7983
- const content = Reflect.get(outputItem, 'content');
7984
- if (!Array.isArray(content)) {
7985
- continue;
7986
- }
7987
- for (const part of content) {
7988
- if (!isObject$1(part)) {
7989
- continue;
7990
- }
7991
- const type = Reflect.get(part, 'type');
7992
- const text = Reflect.get(part, 'text');
7993
- if ((type === 'output_text' || type === 'text') && typeof text === 'string' && text) {
7994
- chunks.push(text);
7995
- }
7996
- }
7997
- }
7998
- return chunks.join('');
7999
- };
8000
- const getBackendResponsesBody = (input, modelId, systemPrompt, tools, maxToolCalls, webSearchEnabled, previousResponseId, reasoningEffort, supportsReasoningEffort = false) => {
8001
- return getOpenAiParams(input, modelId, false, false, tools, webSearchEnabled, maxToolCalls, systemPrompt, previousResponseId, reasoningEffort, supportsReasoningEffort);
8002
- };
8003
- const getBackendAssistantText = async ({
8004
- agentMode = defaultAgentMode,
8005
- assetDir,
8006
- authAccessToken,
8007
- backendUrl,
8008
- maxToolCalls = defaultMaxToolCalls,
8009
- messages,
8010
- modelId,
8011
- onToolCallsChunk,
8012
- platform,
8013
- questionToolEnabled = false,
8014
- reasoningEffort,
8015
- sessionId,
8016
- supportsReasoningEffort = false,
8017
- systemPrompt,
8018
- toolEnablement,
8019
- useChatToolWorker,
8020
- webSearchEnabled = false,
8021
- workspaceUri
8022
- }) => {
8023
- const mockError = takeErrorResponse();
8024
- if (mockError) {
8025
- const errorCode = getBackendErrorCodeFromBody(mockError.body);
8026
- const errorMessage = getBackendErrorMessageFromBody(mockError.body);
8027
- return getBackendErrorMessage({
8028
- details: 'http-error',
8029
- ...(errorCode ? {
8030
- errorCode
8031
- } : {}),
8032
- ...(typeof mockError.statusCode === 'number' ? {
8033
- statusCode: mockError.statusCode
8034
- } : {}),
8035
- ...(errorMessage ? {
8036
- errorMessage
8037
- } : {})
8038
- });
8039
- }
8040
- const mockResponse = takeResponse();
8041
- const tools = await getBasicChatTools(agentMode, questionToolEnabled, toolEnablement);
8042
- const input = messages.map(message => ({
8043
- content: getChatMessageOpenAiContent(message),
8044
- role: message.role
8045
- }));
8046
- let previousResponseId;
8047
- const maxToolIterations = Math.max(0, maxToolCalls - 1);
8048
- for (let index = 0; index <= maxToolIterations; index++) {
8049
- let json;
8050
- if (index === 0 && mockResponse) {
8051
- json = mockResponse.body;
8052
- } else {
8053
- let response;
8054
- try {
8055
- response = await fetch(getBackendResponsesEndpoint(backendUrl), {
8056
- body: JSON.stringify(getBackendResponsesBody(input, modelId, systemPrompt, tools, maxToolCalls, webSearchEnabled, previousResponseId, reasoningEffort, supportsReasoningEffort)),
8057
- headers: {
8058
- Authorization: `Bearer ${authAccessToken}`,
8059
- 'Content-Type': 'application/json',
8060
- ...getClientRequestIdHeader()
8061
- },
8062
- method: 'POST'
8063
- });
8064
- } catch (error) {
8065
- const errorMessage = getErrorMessage(error);
8066
- return getBackendErrorMessage({
8067
- details: 'request-failed',
8068
- ...(errorMessage ? {
8069
- errorMessage
8070
- } : {})
8071
- });
8072
- }
8073
- if (!response.ok) {
8074
- const payload = await response.json().catch(() => undefined);
8075
- const errorCode = getBackendErrorCodeFromBody(payload);
8076
- const errorMessage = getBackendErrorMessageFromBody(payload);
8077
- const statusCode = response.status || getBackendStatusCodeFromBody(payload);
8078
- return getBackendErrorMessage({
8079
- details: 'http-error',
8080
- ...(errorCode ? {
8081
- errorCode
8082
- } : {}),
8083
- ...(typeof statusCode === 'number' ? {
8084
- statusCode
8085
- } : {}),
8086
- ...(errorMessage ? {
8087
- errorMessage
8088
- } : {})
8089
- });
8090
- }
8091
- try {
8092
- json = await response.json();
8093
- } catch {
8094
- return getBackendErrorMessage({
8095
- details: 'invalid-response',
8096
- errorMessage: 'Backend returned invalid JSON.'
8097
- });
8098
- }
8099
- }
8100
- const responseFunctionCalls = getBackendResponseFunctionCalls(json);
8101
- if (responseFunctionCalls.length > 0) {
8102
- const responseId = getBackendResponseId(json);
8103
- if (!responseId) {
8104
- return getBackendErrorMessage({
8105
- details: 'invalid-response',
8106
- errorMessage: 'Unexpected backend response format: tool calls were returned without a response id.'
8107
- });
8108
- }
8109
- previousResponseId = responseId;
8110
- input.length = 0;
8111
- const executedToolCalls = [];
8112
- for (const toolCall of responseFunctionCalls) {
8113
- const content = await executeChatTool(toolCall.name, toolCall.arguments, {
8114
- assetDir,
8115
- platform,
8116
- ...(sessionId ? {
8117
- sessionId
8118
- } : {}),
8119
- toolCallId: toolCall.callId,
8120
- ...(toolEnablement ? {
8121
- toolEnablement
8122
- } : {}),
8123
- useChatToolWorker,
8124
- ...(workspaceUri ? {
8125
- workspaceUri
8126
- } : {})
8127
- });
8128
- executedToolCalls.push(toExecutedToolCall(toolCall, content));
8129
- input.push({
8130
- call_id: toolCall.callId,
8131
- output: content,
8132
- type: 'function_call_output'
8133
- });
8134
- }
8135
- if (onToolCallsChunk && executedToolCalls.length > 0) {
8136
- await onToolCallsChunk(executedToolCalls);
8137
- }
8138
- continue;
8139
- }
8140
- const content = getBackendResponseOutputText(json);
8141
- if (content) {
8142
- return content;
8143
- }
8144
- return getBackendErrorMessage({
8145
- details: 'invalid-response',
8146
- errorMessage: getBackendInvalidResponseDetails(json)
8147
- });
8148
- }
8149
- return getBackendErrorMessage({
8150
- details: 'invalid-response',
8151
- errorMessage: `Backend request ended after ${maxToolCalls} tool-call rounds without a final assistant response. This usually means the model got stuck in a tool loop.`
8152
- });
8153
- };
8154
- const getAiResponse = async ({
8155
- agentMode = defaultAgentMode,
8156
- assetDir,
8157
- authAccessToken,
8158
- backendUrl = '',
8159
- maxToolCalls = defaultMaxToolCalls,
8160
- messageId,
8161
- messages,
8162
- mockAiResponseDelay = 800,
8163
- mockApiCommandId,
8164
- models,
8165
- nextMessageId,
8166
- onDataEvent,
8167
- onEventStreamFinished,
8168
- onMockOpenApiRequestCaptured,
8169
- onTextChunk,
8170
- onToolCallsChunk,
8171
- openApiApiBaseUrl,
8172
- openApiApiKey,
8173
- openRouterApiBaseUrl,
8174
- openRouterApiKey,
8175
- passIncludeObfuscation = false,
8176
- platform,
8177
- questionToolEnabled = false,
8178
- reasoningEffort,
8179
- selectedModelId,
8180
- sessionId,
8181
- streamingEnabled = true,
8182
- systemPrompt = '',
8183
- toolEnablement,
8184
- useChatCoordinatorWorker = false,
8185
- useChatNetworkWorkerForRequests = false,
8186
- useChatToolWorker = true,
8187
- useMockApi,
8188
- useOwnBackend = false,
8189
- userText,
8190
- webSearchEnabled = false,
8191
- workspaceUri
8192
- }) => {
8193
- useChatCoordinatorWorker = false; // TODO enable this
8194
- const authToken = authAccessToken || '';
8195
- const backendEnabled = shouldUseBackendResponses(backendUrl, authToken);
8196
- if (useChatCoordinatorWorker && !backendEnabled) {
8197
- try {
8198
- const result = await getAiResponse$1({
8199
- agentMode,
8200
- assetDir,
8201
- ...(messageId ? {
8202
- messageId
8203
- } : {}),
8204
- maxToolCalls,
8205
- messages,
8206
- mockAiResponseDelay,
8207
- mockApiCommandId,
8208
- models,
8209
- nextMessageId,
8210
- openApiApiBaseUrl,
8211
- openApiApiKey,
8212
- openRouterApiBaseUrl,
8213
- openRouterApiKey,
8214
- passIncludeObfuscation,
8215
- platform,
8216
- questionToolEnabled,
8217
- ...(reasoningEffort ? {
8218
- reasoningEffort
8219
- } : {}),
8220
- selectedModelId,
8221
- streamingEnabled,
8222
- systemPrompt,
8223
- ...(toolEnablement ? {
8224
- toolEnablement
8225
- } : {}),
8226
- useChatNetworkWorkerForRequests,
8227
- useChatToolWorker,
8228
- useMockApi,
8229
- userText,
8230
- webSearchEnabled: agentMode === 'plan' ? false : webSearchEnabled,
8231
- ...(workspaceUri ? {
8232
- workspaceUri
8233
- } : {})
8234
- });
8235
- if (streamingEnabled) {
8236
- if (onTextChunk) {
8237
- await onTextChunk(result.text);
8238
- }
8239
- if (onEventStreamFinished) {
8240
- await onEventStreamFinished();
8241
- }
8242
- }
8243
- return result;
8244
- } catch {
8245
- // Fall back to the local implementation if coordinator worker RPC is unavailable.
8246
- }
8247
- }
8248
- let text = '';
8249
- const usesOpenApiModel = isOpenApiModel(selectedModelId, models);
8250
- const usesOpenRouterModel = isOpenRouterModel(selectedModelId, models);
8251
- const selectedModel = models.find(model => model.id === selectedModelId);
8252
- const supportsImages = selectedModel?.supportsImages ?? false;
8253
- const supportsReasoningEffort = selectedModel?.supportsReasoningEffort ?? false;
8254
- const safeMaxToolCalls = Math.max(1, maxToolCalls);
8255
- if (hasImageAttachments(messages) && !supportsImages) {
8256
- text = getImageNotSupportedMessage(selectedModel?.name);
8257
- }
8258
- if (!text && (backendEnabled || useOwnBackend)) {
8259
- if (!backendUrl) {
8260
- text = backendUrlRequiredMessage;
8261
- } else if (authToken) {
8262
- text = await getBackendAssistantText({
8263
- agentMode,
8264
- assetDir,
8265
- authAccessToken: authToken,
8266
- backendUrl,
8267
- maxToolCalls: safeMaxToolCalls,
8268
- messages,
8269
- modelId: getOpenApiModelId(selectedModelId),
8270
- onToolCallsChunk,
8271
- platform,
8272
- questionToolEnabled,
8273
- reasoningEffort,
8274
- supportsReasoningEffort,
8275
- systemPrompt,
8276
- toolEnablement,
8277
- useChatToolWorker,
8278
- webSearchEnabled: agentMode === 'plan' ? false : webSearchEnabled,
8279
- ...(sessionId ? {
8280
- sessionId
8281
- } : {}),
8282
- ...(workspaceUri ? {
8283
- workspaceUri
8284
- } : {})
8285
- });
8286
- } else {
8287
- text = backendAccessTokenRequiredMessage;
8288
- }
8289
- }
8290
- if (!text && usesOpenApiModel) {
8291
- if (useMockApi) {
8292
- const openAiInput = messages.map(message => ({
8293
- content: getChatMessageOpenAiContent(message),
8294
- role: message.role
8295
- }));
8296
- const modelId = getOpenApiModelId(selectedModelId);
8297
- const headers = {
8298
- Authorization: `Bearer ${openApiApiKey}`,
8299
- 'Content-Type': 'application/json',
8300
- ...getClientRequestIdHeader()
8301
- };
8302
- const maxToolIterations = safeMaxToolCalls - 1;
8303
- const mockRequestId = startRequest();
8304
- let previousResponseId;
8305
- for (let i = 0; i <= maxToolIterations; i++) {
8306
- const tools1 = await getBasicChatTools(agentMode, questionToolEnabled, toolEnablement);
8307
- const request = {
8308
- headers,
8309
- method: 'POST',
8310
- payload: getOpenAiParams(openAiInput, modelId, streamingEnabled, passIncludeObfuscation, tools1, agentMode === 'plan' ? false : webSearchEnabled, safeMaxToolCalls, systemPrompt, previousResponseId, reasoningEffort, supportsReasoningEffort),
8311
- url: getOpenApiApiEndpoint(openApiApiBaseUrl)
8312
- };
8313
- capture(request);
8314
- if (onMockOpenApiRequestCaptured) {
8315
- await Promise.resolve(onMockOpenApiRequestCaptured(request));
8316
- }
8317
- const result = await getMockOpenApiAssistantText(streamingEnabled, onTextChunk, onToolCallsChunk, onDataEvent, onEventStreamFinished, mockRequestId);
8318
- if (result.type !== 'success') {
8319
- text = getOpenApiErrorMessage(result);
8320
- break;
8321
- }
8322
- text = result.text;
8323
- if (result.responseId) {
8324
- previousResponseId = result.responseId;
8325
- }
8326
- if (result.responseFunctionCalls.length === 0) {
8327
- break;
8328
- }
8329
- openAiInput.length = 0;
8330
- const executedToolCalls = [];
8331
- for (const toolCall of result.responseFunctionCalls) {
8332
- const content = await executeChatTool(toolCall.name, toolCall.arguments, {
8333
- assetDir,
8334
- platform,
8335
- ...(sessionId ? {
8336
- sessionId
8337
- } : {}),
8338
- toolCallId: toolCall.callId,
8339
- ...(toolEnablement ? {
8340
- toolEnablement
8341
- } : {}),
8342
- useChatToolWorker,
8343
- ...(workspaceUri ? {
8344
- workspaceUri
8345
- } : {})
8346
- });
8347
- const executionStatus = getToolCallExecutionStatus(content);
8348
- const toolCallResult = getToolCallResult(toolCall.name, content);
8349
- executedToolCalls.push({
8350
- arguments: toolCall.arguments,
8351
- ...(executionStatus.errorStack ? {
8352
- errorStack: executionStatus.errorStack
8353
- } : {}),
8354
- ...(executionStatus.errorMessage ? {
8355
- errorMessage: executionStatus.errorMessage
8356
- } : {}),
8357
- id: toolCall.callId,
8358
- name: toolCall.name,
8359
- ...(toolCallResult ? {
8360
- result: toolCallResult
8361
- } : {}),
8362
- ...(executionStatus.status ? {
8363
- status: executionStatus.status
8364
- } : {})
8365
- });
8366
- openAiInput.push({
8367
- call_id: toolCall.callId,
8368
- output: content,
8369
- type: 'function_call_output'
8370
- });
8371
- }
8372
- if (onToolCallsChunk && executedToolCalls.length > 0) {
8373
- await onToolCallsChunk(executedToolCalls);
8374
- }
8375
- }
8376
- } else if (openApiApiKey) {
8377
- const result = await getOpenApiAssistantText(messages, getOpenApiModelId(selectedModelId), openApiApiKey, openApiApiBaseUrl, assetDir, platform, {
8378
- agentMode,
8379
- includeObfuscation: passIncludeObfuscation,
8380
- maxToolCalls: safeMaxToolCalls,
8381
- ...(onDataEvent ? {
8382
- onDataEvent
8383
- } : {}),
8384
- ...(onEventStreamFinished ? {
8385
- onEventStreamFinished
8386
- } : {}),
8387
- ...(onTextChunk ? {
8388
- onTextChunk
8389
- } : {}),
8390
- ...(onToolCallsChunk ? {
8391
- onToolCallsChunk
8392
- } : {}),
8393
- questionToolEnabled,
8394
- ...(reasoningEffort ? {
8395
- reasoningEffort
8396
- } : {}),
8397
- ...(sessionId ? {
8398
- sessionId
8399
- } : {}),
8400
- stream: streamingEnabled,
8401
- supportsReasoningEffort,
8402
- systemPrompt,
8403
- ...(toolEnablement ? {
8404
- toolEnablement
8405
- } : {}),
8406
- useChatNetworkWorkerForRequests,
8407
- useChatToolWorker,
8408
- webSearchEnabled: agentMode === 'plan' ? false : webSearchEnabled,
8409
- ...(workspaceUri ? {
8410
- workspaceUri
8411
- } : {})
8412
- });
8413
- if (result.type === 'success') {
8414
- const {
8415
- text: assistantText
8416
- } = result;
8417
- text = assistantText;
8418
- } else {
8419
- text = getOpenApiErrorMessage(result);
8420
- }
8421
- } else {
8422
- text = openApiApiKeyRequiredMessage;
8423
- }
8424
- } else if (!text && usesOpenRouterModel) {
8425
- const modelId = getOpenRouterModelId(selectedModelId);
8426
- if (useMockApi) {
8427
- const result = await getMockOpenRouterAssistantText(messages, modelId, openRouterApiBaseUrl, openRouterApiKey, mockApiCommandId, assetDir, platform);
8428
- if (result.type === 'success') {
8429
- const {
8430
- text: assistantText
8431
- } = result;
8432
- text = assistantText;
8433
- } else {
8434
- text = getOpenRouterErrorMessage(result);
8435
- }
8436
- } else if (openRouterApiKey) {
8437
- const result = await getOpenRouterAssistantText(messages, modelId, openRouterApiKey, openRouterApiBaseUrl, assetDir, platform, useChatNetworkWorkerForRequests, useChatToolWorker, questionToolEnabled, systemPrompt, workspaceUri, agentMode, toolEnablement, sessionId);
8438
- if (result.type === 'success') {
8439
- const {
8440
- text: assistantText
8441
- } = result;
8442
- text = assistantText;
8443
- } else {
8444
- text = getOpenRouterErrorMessage(result);
8445
- }
8446
- } else {
8447
- text = openRouterApiKeyRequiredMessage;
8448
- }
8449
- }
8450
- if (!text && !usesOpenApiModel && !usesOpenRouterModel) {
8451
- text = await getMockAiResponse(userText, mockAiResponseDelay);
8452
- }
8453
- const assistantTime = new Date().toLocaleTimeString([], {
8454
- hour: '2-digit',
8455
- minute: '2-digit'
8456
- });
8457
- const message = {
8458
- id: messageId || crypto.randomUUID(),
8459
- role: 'assistant',
8460
- text,
8461
- time: assistantTime
8462
- };
8463
- return message;
8464
- };
8465
-
8466
- const parseMessageContents = async rawMessages => {
8467
- return invoke$a('ChatMessageParsing.parseMessageContents', rawMessages);
8468
- };
8469
-
8470
- const emptyMessageContent = [{
8471
- children: [{
8472
- text: '',
8473
- type: 'text'
8474
- }],
8475
- type: 'text'
8476
- }];
8477
- const getPlainTextMessageContent = text => {
8478
- return [{
8479
- children: [{
8480
- text,
8481
- type: 'text'
8482
- }],
8483
- type: 'text'
8484
- }];
8485
- };
8486
- const getParsedMessageContent = (parsedMessages, messageId) => {
8487
- const parsedMessage = parsedMessages.find(item => item.id === messageId);
8488
- return parsedMessage?.parsedContent;
8489
- };
8490
- const setParsedMessageContent = (parsedMessages, messageId, text, parsedContent) => {
8491
- const index = parsedMessages.findIndex(item => item.id === messageId);
8492
- if (index === -1) {
8493
- return [...parsedMessages, {
8494
- id: messageId,
8495
- parsedContent,
8496
- text
8497
- }];
8498
- }
8499
- const existingItem = parsedMessages[index];
8500
- if (existingItem.text === text && existingItem.parsedContent === parsedContent) {
8501
- return parsedMessages;
8502
- }
8503
- return [...parsedMessages.slice(0, index), {
8504
- ...existingItem,
8505
- parsedContent,
8506
- text
8507
- }, ...parsedMessages.slice(index + 1)];
8508
- };
8509
- const parseAndStoreMessageContent = async (parsedMessages, message) => {
8510
- return parseAndStoreMessagesContentInWorker(parsedMessages, [message]);
8511
- };
8512
- const parseAndStoreMessagesContent = async (parsedMessages, messages) => {
8513
- return parseAndStoreMessagesContentInWorker(parsedMessages, messages);
8514
- };
8515
- const getMessagesNeedingParsing = (parsedMessages, messages) => {
8516
- return messages.filter(message => {
8517
- const existingParsedMessage = parsedMessages.find(item => item.id === message.id);
8518
- return !existingParsedMessage || existingParsedMessage.text !== message.text;
8519
- });
8520
- };
8521
- const parseAndStoreMessagesContentInWorker = async (parsedMessages, messages) => {
8522
- const messagesNeedingParsing = getMessagesNeedingParsing(parsedMessages, messages);
8523
- if (messagesNeedingParsing.length === 0) {
8524
- return parsedMessages;
8525
- }
8526
- let parsedContents;
8527
- try {
8528
- parsedContents = await parseMessageContents(messagesNeedingParsing.map(message => message.text));
8529
- } catch {
8530
- parsedContents = messagesNeedingParsing.map(message => getPlainTextMessageContent(message.text));
8531
- }
8532
- let nextParsedMessages = parsedMessages;
8533
- for (const [index, message] of messagesNeedingParsing.entries()) {
8534
- const parsedContent = message.text === '' ? emptyMessageContent : parsedContents[index];
8535
- nextParsedMessages = setParsedMessageContent(nextParsedMessages, message.id, message.text, parsedContent);
8536
- }
8537
- return nextParsedMessages;
8538
- };
8539
- const getEmptyMessageContent = () => {
8540
- return emptyMessageContent;
8541
- };
8542
-
8543
- const update = async settings => {
8544
- await invoke$1('Preferences.update', settings);
8545
- };
8546
-
8547
- const setOpenApiApiKey = async (state, openApiApiKey, persist = true) => {
8548
- if (persist) {
8549
- await update({
8550
- 'secrets.openApiKey': openApiApiKey
8551
- });
8552
- }
8553
- return {
8554
- ...state,
8555
- openApiApiKey,
8556
- openApiApiKeyInput: openApiApiKey
8557
- };
8558
- };
8559
-
8560
- const handleClickSaveOpenApiApiKey = async state => {
8561
- const {
8562
- openApiApiKeyInput
8563
- } = state;
8564
- const openApiApiKey = openApiApiKeyInput.trim();
8565
- if (!openApiApiKey) {
8566
- return state;
8567
- }
8568
- const optimisticState = {
8569
- ...state,
8570
- openApiApiKeyState: 'saving'
8571
- };
8572
- set(state.uid, state, optimisticState);
8573
- await invoke$1('Chat.rerender');
8574
- const persistedState = await setOpenApiApiKey(optimisticState, openApiApiKey);
8575
- const updatedState = {
8576
- ...persistedState,
8577
- openApiApiKeyState: 'idle'
8578
- };
8579
- const session = updatedState.sessions.find(item => item.id === updatedState.selectedSessionId);
8580
- if (!session) {
8581
- return updatedState;
8582
- }
8583
- const selectedMessages = updatedState.messages.length > 0 ? updatedState.messages : session.messages;
8584
- const lastMessage = selectedMessages.at(-1);
8585
- const shouldRetryOpenApi = lastMessage?.role === 'assistant' && lastMessage.text === openApiApiKeyRequiredMessage;
8586
- if (!shouldRetryOpenApi) {
8587
- return updatedState;
8588
- }
8589
- const previousUserMessage = selectedMessages.toReversed().find(item => item.role === 'user');
8590
- if (!previousUserMessage) {
8591
- return updatedState;
8592
- }
8593
- const retryMessages = selectedMessages.slice(0, -1);
8594
- const assistantMessage = await getAiResponse({
8595
- agentMode: updatedState.agentMode,
8596
- assetDir: updatedState.assetDir,
8597
- maxToolCalls: updatedState.maxToolCalls,
8598
- messages: retryMessages,
8599
- mockAiResponseDelay: updatedState.mockAiResponseDelay,
8600
- mockApiCommandId: updatedState.mockApiCommandId,
8601
- models: updatedState.models,
8602
- nextMessageId: updatedState.nextMessageId,
8603
- openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
8604
- openApiApiKey: updatedState.openApiApiKey,
8605
- openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
8606
- openRouterApiKey: updatedState.openRouterApiKey,
8607
- platform: updatedState.platform,
8608
- selectedModelId: updatedState.selectedModelId,
8609
- streamingEnabled: updatedState.streamingEnabled,
8610
- systemPrompt: updatedState.systemPrompt,
8611
- useChatCoordinatorWorker: updatedState.useChatCoordinatorWorker,
8612
- useChatNetworkWorkerForRequests: updatedState.useChatNetworkWorkerForRequests,
8613
- useMockApi: updatedState.useMockApi,
8614
- useOwnBackend: updatedState.useOwnBackend,
8615
- userText: previousUserMessage.text
8616
- });
8617
- const parsedMessages = await parseAndStoreMessageContent(updatedState.parsedMessages, assistantMessage);
8618
- const messages = [...selectedMessages.slice(0, -1), assistantMessage];
8619
- const updatedSession = {
8620
- ...session,
8621
- messages,
8622
- status: 'finished'
8623
- };
8624
- const updatedSessionSummary = {
8625
- ...session,
8626
- messages: [],
8627
- status: 'finished'
8628
- };
8629
- await saveChatSessionPreservingMessages(updatedSession, messages);
8630
- const updatedSessions = updatedState.sessions.map(item => {
8631
- if (item.id !== updatedState.selectedSessionId) {
8632
- return item;
8633
- }
8634
- return updatedSessionSummary;
8635
- });
8636
- return {
8637
- ...updatedState,
8638
- messages,
8639
- nextMessageId: updatedState.nextMessageId + 1,
8640
- openApiApiKeyState: 'idle',
8641
- parsedMessages,
8642
- sessions: updatedSessions
8643
- };
8644
- };
8645
-
8646
- const setOpenRouterApiKey = async (state, openRouterApiKey, persist = true) => {
8647
- if (persist) {
8648
- await update({
8649
- 'secrets.openRouterApiKey': openRouterApiKey
8650
- });
8651
- }
8652
- return {
8653
- ...state,
8654
- openRouterApiKey,
8655
- openRouterApiKeyInput: openRouterApiKey
8656
- };
8657
- };
8658
-
8659
- const handleClickSaveOpenRouterApiKey = async state => {
8660
- const {
8661
- openRouterApiKeyInput
8662
- } = state;
8663
- const openRouterApiKey = openRouterApiKeyInput.trim();
8664
- if (!openRouterApiKey) {
8665
- return state;
8666
- }
8667
- const optimisticState = {
8668
- ...state,
8669
- openRouterApiKeyState: 'saving'
8670
- };
8671
- set(state.uid, state, optimisticState);
8672
- await invoke$1('Chat.rerender');
8673
- const persistedState = await setOpenRouterApiKey(optimisticState, openRouterApiKey);
8674
- const updatedState = {
8675
- ...persistedState,
8676
- openRouterApiKeyState: 'idle'
5179
+ set(state.uid, state, optimisticState);
5180
+ await invoke$1('Chat.rerender');
5181
+ const persistedState = await setOpenApiApiKey(optimisticState, openApiApiKey);
5182
+ const updatedState = {
5183
+ ...persistedState,
5184
+ openApiApiKeyState: 'idle'
8677
5185
  };
8678
5186
  const session = updatedState.sessions.find(item => item.id === updatedState.selectedSessionId);
8679
5187
  if (!session) {
8680
- return updatedState;
8681
- }
8682
- const selectedMessages = updatedState.messages.length > 0 ? updatedState.messages : session.messages;
8683
- const lastMessage = selectedMessages.at(-1);
8684
- const shouldRetryOpenRouter = lastMessage?.role === 'assistant' && lastMessage.text === openRouterApiKeyRequiredMessage;
8685
- if (!shouldRetryOpenRouter) {
8686
- return updatedState;
8687
- }
8688
- const previousUserMessage = selectedMessages.toReversed().find(item => item.role === 'user');
8689
- if (!previousUserMessage) {
8690
- return updatedState;
8691
- }
8692
- const retryMessages = selectedMessages.slice(0, -1);
8693
- const assistantMessage = await getAiResponse({
8694
- agentMode: updatedState.agentMode,
8695
- assetDir: updatedState.assetDir,
8696
- maxToolCalls: updatedState.maxToolCalls,
8697
- messages: retryMessages,
8698
- mockAiResponseDelay: updatedState.mockAiResponseDelay,
8699
- mockApiCommandId: updatedState.mockApiCommandId,
8700
- models: updatedState.models,
8701
- nextMessageId: updatedState.nextMessageId,
8702
- openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
8703
- openApiApiKey: updatedState.openApiApiKey,
8704
- openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
8705
- openRouterApiKey,
8706
- platform: updatedState.platform,
8707
- selectedModelId: updatedState.selectedModelId,
8708
- systemPrompt: updatedState.systemPrompt,
8709
- useChatCoordinatorWorker: updatedState.useChatCoordinatorWorker,
8710
- useChatNetworkWorkerForRequests: updatedState.useChatNetworkWorkerForRequests,
8711
- useMockApi: updatedState.useMockApi,
8712
- useOwnBackend: updatedState.useOwnBackend,
8713
- userText: previousUserMessage.text
8714
- });
8715
- const parsedMessages = await parseAndStoreMessageContent(updatedState.parsedMessages, assistantMessage);
8716
- const messages = [...selectedMessages.slice(0, -1), assistantMessage];
8717
- const updatedSession = {
8718
- ...session,
8719
- messages,
8720
- status: 'finished'
8721
- };
8722
- const updatedSessionSummary = {
8723
- ...session,
8724
- messages: [],
8725
- status: 'finished'
8726
- };
8727
- await saveChatSessionPreservingMessages(updatedSession, messages);
8728
- const updatedSessions = updatedState.sessions.map(item => {
8729
- if (item.id !== updatedState.selectedSessionId) {
8730
- return item;
8731
- }
8732
- return updatedSessionSummary;
8733
- });
8734
- return {
8735
- ...updatedState,
8736
- messages,
8737
- nextMessageId: updatedState.nextMessageId + 1,
8738
- openRouterApiKeyState: 'idle',
8739
- parsedMessages,
8740
- sessions: updatedSessions
8741
- };
5188
+ return updatedState;
5189
+ }
5190
+ const selectedMessages = updatedState.messages.length > 0 ? updatedState.messages : session.messages;
5191
+ const lastMessage = selectedMessages.at(-1);
5192
+ const shouldRetryOpenApi = lastMessage?.role === 'assistant' && lastMessage.text === openApiApiKeyRequiredMessage;
5193
+ if (!shouldRetryOpenApi) {
5194
+ return updatedState;
5195
+ }
5196
+ const previousUserMessage = selectedMessages.toReversed().find(item => item.role === 'user');
5197
+ if (!previousUserMessage) {
5198
+ return updatedState;
5199
+ }
5200
+
5201
+ // @ts-ignore
5202
+ selectedMessages.slice(0, -1);
5203
+
5204
+ // TODO ask view-model to do it
5205
+ return state;
5206
+ };
5207
+
5208
+ const handleClickSaveOpenRouterApiKey = async state => {
5209
+ const {
5210
+ openRouterApiKeyInput
5211
+ } = state;
5212
+ // TODO ask worker to do it
5213
+ // @ts-ignore
5214
+ openRouterApiKeyInput.trim();
5215
+ return state;
8742
5216
  };
8743
5217
 
8744
5218
  const handleClickSend = async state => {
@@ -8964,6 +5438,83 @@ const openRunModePicker = state => {
8964
5438
  };
8965
5439
  };
8966
5440
 
5441
+ const parseMessageContents = async rawMessages => {
5442
+ return invoke$8('ChatMessageParsing.parseMessageContents', rawMessages);
5443
+ };
5444
+
5445
+ const emptyMessageContent = [{
5446
+ children: [{
5447
+ text: '',
5448
+ type: 'text'
5449
+ }],
5450
+ type: 'text'
5451
+ }];
5452
+ const getPlainTextMessageContent = text => {
5453
+ return [{
5454
+ children: [{
5455
+ text,
5456
+ type: 'text'
5457
+ }],
5458
+ type: 'text'
5459
+ }];
5460
+ };
5461
+ const getParsedMessageContent = (parsedMessages, messageId) => {
5462
+ const parsedMessage = parsedMessages.find(item => item.id === messageId);
5463
+ return parsedMessage?.parsedContent;
5464
+ };
5465
+ const setParsedMessageContent = (parsedMessages, messageId, text, parsedContent) => {
5466
+ const index = parsedMessages.findIndex(item => item.id === messageId);
5467
+ if (index === -1) {
5468
+ return [...parsedMessages, {
5469
+ id: messageId,
5470
+ parsedContent,
5471
+ text
5472
+ }];
5473
+ }
5474
+ const existingItem = parsedMessages[index];
5475
+ if (existingItem.text === text && existingItem.parsedContent === parsedContent) {
5476
+ return parsedMessages;
5477
+ }
5478
+ return [...parsedMessages.slice(0, index), {
5479
+ ...existingItem,
5480
+ parsedContent,
5481
+ text
5482
+ }, ...parsedMessages.slice(index + 1)];
5483
+ };
5484
+ const parseAndStoreMessageContent = async (parsedMessages, message) => {
5485
+ return parseAndStoreMessagesContentInWorker(parsedMessages, [message]);
5486
+ };
5487
+ const parseAndStoreMessagesContent = async (parsedMessages, messages) => {
5488
+ return parseAndStoreMessagesContentInWorker(parsedMessages, messages);
5489
+ };
5490
+ const getMessagesNeedingParsing = (parsedMessages, messages) => {
5491
+ return messages.filter(message => {
5492
+ const existingParsedMessage = parsedMessages.find(item => item.id === message.id);
5493
+ return !existingParsedMessage || existingParsedMessage.text !== message.text;
5494
+ });
5495
+ };
5496
+ const parseAndStoreMessagesContentInWorker = async (parsedMessages, messages) => {
5497
+ const messagesNeedingParsing = getMessagesNeedingParsing(parsedMessages, messages);
5498
+ if (messagesNeedingParsing.length === 0) {
5499
+ return parsedMessages;
5500
+ }
5501
+ let parsedContents;
5502
+ try {
5503
+ parsedContents = await parseMessageContents(messagesNeedingParsing.map(message => message.text));
5504
+ } catch {
5505
+ parsedContents = messagesNeedingParsing.map(message => getPlainTextMessageContent(message.text));
5506
+ }
5507
+ let nextParsedMessages = parsedMessages;
5508
+ for (const [index, message] of messagesNeedingParsing.entries()) {
5509
+ const parsedContent = message.text === '' ? emptyMessageContent : parsedContents[index];
5510
+ nextParsedMessages = setParsedMessageContent(nextParsedMessages, message.id, message.text, parsedContent);
5511
+ }
5512
+ return nextParsedMessages;
5513
+ };
5514
+ const getEmptyMessageContent = () => {
5515
+ return emptyMessageContent;
5516
+ };
5517
+
8967
5518
  const selectSession = async (state, id) => {
8968
5519
  const {
8969
5520
  lastNormalViewMode,
@@ -10170,17 +6721,23 @@ const mockBackendAuthResponse = (state, payload) => {
10170
6721
  };
10171
6722
 
10172
6723
  const mockBackendSetHttpErrorResponse = (state, statusCode, body) => {
10173
- setHttpErrorResponse(statusCode, body);
10174
- void invoke$b('ChatCoordinator.mockBackendSetHttpErrorResponse', statusCode, body);
6724
+ void invoke$9('ChatCoordinator.mockBackendSetHttpErrorResponse', statusCode, body);
10175
6725
  return state;
10176
6726
  };
10177
6727
 
10178
6728
  const mockBackendSetResponse = (state, body) => {
10179
- setResponse(body);
10180
- void invoke$b('ChatCoordinator.mockBackendSetResponse', body);
6729
+ void invoke$9('ChatCoordinator.mockBackendSetResponse', body);
10181
6730
  return state;
10182
6731
  };
10183
6732
 
6733
+ let requests = [];
6734
+ const reset$2 = () => {
6735
+ requests = [];
6736
+ };
6737
+ const getAll = () => {
6738
+ return requests;
6739
+ };
6740
+
10184
6741
  const mockOpenApiRequestGetAll = _state => {
10185
6742
  return getAll();
10186
6743
  };
@@ -10190,8 +6747,97 @@ const mockOpenApiRequestReset = state => {
10190
6747
  return state;
10191
6748
  };
10192
6749
 
6750
+ const defaultRequestId = 'default';
6751
+ let streamStates = new Map();
6752
+ let preparedRequestIds = [];
6753
+ const createState = () => {
6754
+ return {
6755
+ errorResult: undefined,
6756
+ finished: false,
6757
+ queue: [],
6758
+ waiters: []
6759
+ };
6760
+ };
6761
+ const getOrCreateState = requestId => {
6762
+ const existing = streamStates.get(requestId);
6763
+ if (existing) {
6764
+ return existing;
6765
+ }
6766
+ const state = createState();
6767
+ streamStates.set(requestId, state);
6768
+ return state;
6769
+ };
6770
+ const enqueuePreparedRequest = requestId => {
6771
+ if (preparedRequestIds.includes(requestId)) {
6772
+ return;
6773
+ }
6774
+ preparedRequestIds.push(requestId);
6775
+ };
6776
+ const reset$1 = (requestId = defaultRequestId) => {
6777
+ if (requestId === defaultRequestId) {
6778
+ streamStates = new Map();
6779
+ preparedRequestIds = [];
6780
+ streamStates.set(defaultRequestId, createState());
6781
+ return;
6782
+ }
6783
+ streamStates.set(requestId, createState());
6784
+ enqueuePreparedRequest(requestId);
6785
+ };
6786
+ const setHttpErrorResponse = (statusCode, body, requestId = defaultRequestId) => {
6787
+ const rawError = body && typeof body === 'object' ? Reflect.get(body, 'error') : undefined;
6788
+ const errorCode = rawError && typeof rawError === 'object' ? Reflect.get(rawError, 'code') : undefined;
6789
+ const errorMessage = rawError && typeof rawError === 'object' ? Reflect.get(rawError, 'message') : undefined;
6790
+ const errorType = rawError && typeof rawError === 'object' ? Reflect.get(rawError, 'type') : undefined;
6791
+ const state = getOrCreateState(requestId);
6792
+ state.errorResult = {
6793
+ details: 'http-error',
6794
+ ...(typeof errorCode === 'string' ? {
6795
+ errorCode
6796
+ } : {}),
6797
+ ...(typeof errorMessage === 'string' ? {
6798
+ errorMessage
6799
+ } : {}),
6800
+ ...(typeof errorType === 'string' ? {
6801
+ errorType
6802
+ } : {}),
6803
+ statusCode,
6804
+ type: 'error'
6805
+ };
6806
+ };
6807
+ const setRequestFailedResponse = (isOffline = false, requestId = defaultRequestId) => {
6808
+ const state = getOrCreateState(requestId);
6809
+ state.errorResult = {
6810
+ details: 'request-failed',
6811
+ ...(isOffline ? {
6812
+ isOffline: true
6813
+ } : {}),
6814
+ type: 'error'
6815
+ };
6816
+ };
6817
+ const pushChunk = (chunk, requestId = defaultRequestId) => {
6818
+ const state = getOrCreateState(requestId);
6819
+ if (state.waiters.length > 0) {
6820
+ const resolve = state.waiters.shift();
6821
+ resolve?.(chunk);
6822
+ return;
6823
+ }
6824
+ state.queue.push(chunk);
6825
+ };
6826
+ const finish = (requestId = defaultRequestId) => {
6827
+ const state = getOrCreateState(requestId);
6828
+ state.finished = true;
6829
+ if (state.waiters.length === 0) {
6830
+ return;
6831
+ }
6832
+ const activeWaiters = [...state.waiters];
6833
+ state.waiters.length = 0;
6834
+ for (const resolve of activeWaiters) {
6835
+ resolve(undefined);
6836
+ }
6837
+ };
6838
+
10193
6839
  const mockOpenApiSetHttpErrorResponse = (state, statusCode, body) => {
10194
- setHttpErrorResponse$1(statusCode, body);
6840
+ setHttpErrorResponse(statusCode, body);
10195
6841
  return state;
10196
6842
  };
10197
6843
 
@@ -10203,7 +6849,7 @@ const mockOpenApiSetRequestFailedResponse = (state, isOffline = false) => {
10203
6849
  const mockOpenApiStreamFinish = async (state, requestId) => {
10204
6850
  finish(requestId);
10205
6851
  if (!requestId) {
10206
- await invoke$b('ChatCoordinator.mockOpenApiStreamFinish');
6852
+ await invoke$9('ChatCoordinator.mockOpenApiStreamFinish');
10207
6853
  }
10208
6854
  return state;
10209
6855
  };
@@ -10214,14 +6860,14 @@ const mockOpenApiStreamPushChunk = async (state, chunkOrRequestId, chunk) => {
10214
6860
  return state;
10215
6861
  }
10216
6862
  pushChunk(chunkOrRequestId);
10217
- await invoke$b('ChatCoordinator.mockOpenApiStreamPushChunk', chunkOrRequestId);
6863
+ await invoke$9('ChatCoordinator.mockOpenApiStreamPushChunk', chunkOrRequestId);
10218
6864
  return state;
10219
6865
  };
10220
6866
 
10221
6867
  const mockOpenApiStreamReset = async (state, requestId) => {
10222
6868
  reset$1(requestId);
10223
6869
  if (!requestId) {
10224
- await invoke$b('ChatCoordinator.mockOpenApiStreamReset');
6870
+ await invoke$9('ChatCoordinator.mockOpenApiStreamReset');
10225
6871
  }
10226
6872
  return state;
10227
6873
  };
@@ -10367,7 +7013,7 @@ const pasteInput = async state => {
10367
7013
  };
10368
7014
 
10369
7015
  const registerMockResponse = async (state, mockResponse) => {
10370
- await invoke$b('ChatCoordinator.registerMockResponse', mockResponse);
7016
+ await invoke$9('ChatCoordinator.registerMockResponse', mockResponse);
10371
7017
  return state;
10372
7018
  };
10373
7019
 
@@ -12623,6 +9269,51 @@ const getToolCallGetWorkspaceUriVirtualDom = toolCall => {
12623
9269
  }), ...(statusLabel ? [text(statusLabel)] : [])];
12624
9270
  };
12625
9271
 
9272
+ const getNumericCount = parsed => {
9273
+ const count = Reflect.get(parsed, 'count');
9274
+ if (typeof count === 'number' && Number.isFinite(count)) {
9275
+ return count;
9276
+ }
9277
+ const matchCount = Reflect.get(parsed, 'matchCount');
9278
+ if (typeof matchCount === 'number' && Number.isFinite(matchCount)) {
9279
+ return matchCount;
9280
+ }
9281
+ return undefined;
9282
+ };
9283
+ const getArrayCount = parsed => {
9284
+ const matches = Reflect.get(parsed, 'matches');
9285
+ if (Array.isArray(matches)) {
9286
+ return matches.length;
9287
+ }
9288
+ const files = Reflect.get(parsed, 'files');
9289
+ if (Array.isArray(files)) {
9290
+ return files.length;
9291
+ }
9292
+ const results = Reflect.get(parsed, 'results');
9293
+ if (Array.isArray(results)) {
9294
+ return results.length;
9295
+ }
9296
+ return undefined;
9297
+ };
9298
+ const getGlobMatchCount = result => {
9299
+ if (!result) {
9300
+ return undefined;
9301
+ }
9302
+ let parsed;
9303
+ try {
9304
+ parsed = JSON.parse(result);
9305
+ } catch {
9306
+ return undefined;
9307
+ }
9308
+ if (Array.isArray(parsed)) {
9309
+ return parsed.length;
9310
+ }
9311
+ if (!parsed || typeof parsed !== 'object') {
9312
+ return undefined;
9313
+ }
9314
+ return getNumericCount(parsed) ?? getArrayCount(parsed);
9315
+ };
9316
+
12626
9317
  const getGlobPatternLabel = toolCall => {
12627
9318
  if (toolCall.name !== 'glob') {
12628
9319
  return '';
@@ -15197,6 +11888,19 @@ const setNowForTest = (state, value) => {
15197
11888
  return state;
15198
11889
  };
15199
11890
 
11891
+ const setOpenRouterApiKey = async (state, openRouterApiKey, persist = true) => {
11892
+ if (persist) {
11893
+ await update({
11894
+ 'secrets.openRouterApiKey': openRouterApiKey
11895
+ });
11896
+ }
11897
+ return {
11898
+ ...state,
11899
+ openRouterApiKey,
11900
+ openRouterApiKeyInput: openRouterApiKey
11901
+ };
11902
+ };
11903
+
15200
11904
  const setQuestionToolEnabled = (state, questionToolEnabled) => {
15201
11905
  return {
15202
11906
  ...state,