@lvce-editor/static-server 0.75.7 → 0.75.9

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 (1964) hide show
  1. package/config.json +1992 -1984
  2. package/package.json +1 -1
  3. package/static/{c4bc67d → 52a862f}/css/App.css +97 -89
  4. package/static/{c4bc67d → 52a862f}/css/parts/ViewletChat.css +1 -0
  5. package/static/{c4bc67d → 52a862f}/manifest.json +2 -2
  6. package/static/{c4bc67d → 52a862f}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
  7. package/static/{c4bc67d → 52a862f}/packages/chat-view/dist/chatViewWorkerMain.js +1671 -305
  8. package/static/{c4bc67d → 52a862f}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
  9. package/static/{c4bc67d → 52a862f}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
  10. package/static/{c4bc67d → 52a862f}/packages/renderer-worker/dist/rendererWorkerMain.js +92 -17
  11. package/static/index.html +4 -4
  12. /package/static/{c4bc67d → 52a862f}/config/colorTheme.json +0 -0
  13. /package/static/{c4bc67d → 52a862f}/config/defaultSettings.json +0 -0
  14. /package/static/{c4bc67d → 52a862f}/config/fileMap.json +0 -0
  15. /package/static/{c4bc67d → 52a862f}/config/webExtensions.json +0 -0
  16. /package/static/{c4bc67d → 52a862f}/css/parts/AdditionalDetails.css +0 -0
  17. /package/static/{c4bc67d → 52a862f}/css/parts/Animation.css +0 -0
  18. /package/static/{c4bc67d → 52a862f}/css/parts/BrowserScrollBar.css +0 -0
  19. /package/static/{c4bc67d → 52a862f}/css/parts/Category.css +0 -0
  20. /package/static/{c4bc67d → 52a862f}/css/parts/DebugButtons.css +0 -0
  21. /package/static/{c4bc67d → 52a862f}/css/parts/DebugValue.css +0 -0
  22. /package/static/{c4bc67d → 52a862f}/css/parts/E2eTest.css +0 -0
  23. /package/static/{c4bc67d → 52a862f}/css/parts/E2eTests.css +0 -0
  24. /package/static/{c4bc67d → 52a862f}/css/parts/EditorHover.css +0 -0
  25. /package/static/{c4bc67d → 52a862f}/css/parts/EditorMessage.css +0 -0
  26. /package/static/{c4bc67d → 52a862f}/css/parts/FeatureContent.css +0 -0
  27. /package/static/{c4bc67d → 52a862f}/css/parts/Features.css +0 -0
  28. /package/static/{c4bc67d → 52a862f}/css/parts/ImagePreview.css +0 -0
  29. /package/static/{c4bc67d → 52a862f}/css/parts/InlineDiffEditor.css +0 -0
  30. /package/static/{c4bc67d → 52a862f}/css/parts/InputBadge.css +0 -0
  31. /package/static/{c4bc67d → 52a862f}/css/parts/Key.css +0 -0
  32. /package/static/{c4bc67d → 52a862f}/css/parts/KeyBindingsHeader.css +0 -0
  33. /package/static/{c4bc67d → 52a862f}/css/parts/KeyBindingsTable.css +0 -0
  34. /package/static/{c4bc67d → 52a862f}/css/parts/LegacyDialog.css +0 -0
  35. /package/static/{c4bc67d → 52a862f}/css/parts/Markdown.css +0 -0
  36. /package/static/{c4bc67d → 52a862f}/css/parts/Message.css +0 -0
  37. /package/static/{c4bc67d → 52a862f}/css/parts/Preview.css +0 -0
  38. /package/static/{c4bc67d → 52a862f}/css/parts/ScrollToTop.css +0 -0
  39. /package/static/{c4bc67d → 52a862f}/css/parts/SearchToggleButton.css +0 -0
  40. /package/static/{c4bc67d → 52a862f}/css/parts/Select.css +0 -0
  41. /package/static/{c4bc67d → 52a862f}/css/parts/SettingsHeader.css +0 -0
  42. /package/static/{c4bc67d → 52a862f}/css/parts/SettingsItems.css +0 -0
  43. /package/static/{c4bc67d → 52a862f}/css/parts/SettingsSideBar.css +0 -0
  44. /package/static/{c4bc67d → 52a862f}/css/parts/Table.css +0 -0
  45. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletAbout.css +0 -0
  46. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletBrowserViewOverview.css +0 -0
  47. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletDebugConsole.css +0 -0
  48. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletDefineKeyBinding.css +0 -0
  49. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletDialog.css +0 -0
  50. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletDiffEditor.css +0 -0
  51. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletEditorWidgetError.css +0 -0
  52. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletExtensionDetail.css +0 -0
  53. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  54. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  55. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletExtensions.css +0 -0
  56. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletIframeInspector.css +0 -0
  57. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletKeyBindings.css +0 -0
  58. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletLanguageModels.css +0 -0
  59. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletMedia.css +0 -0
  60. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletOutput.css +0 -0
  61. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletPanel.css +0 -0
  62. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletPanelTabs.css +0 -0
  63. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletPdf.css +0 -0
  64. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletProblems.css +0 -0
  65. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletReferences.css +0 -0
  66. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletRunAndDebug.css +0 -0
  67. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletScreenCapture.css +0 -0
  68. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletSearch.css +0 -0
  69. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletSettings.css +0 -0
  70. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletSimpleBrowser.css +0 -0
  71. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletSourceControl.css +0 -0
  72. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletStorage.css +0 -0
  73. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletTerminal.css +0 -0
  74. /package/static/{c4bc67d → 52a862f}/css/parts/ViewletTerminalTabs.css +0 -0
  75. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-bat/README.md +0 -0
  76. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-bat/extension.json +0 -0
  77. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  78. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  79. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-c/README.md +0 -0
  80. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-c/extension.json +0 -0
  81. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  82. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  83. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  84. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  85. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cpp/README.md +0 -0
  86. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  87. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  88. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  89. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cson/README.md +0 -0
  90. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cson/extension.json +0 -0
  91. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  92. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  93. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-css/README.md +0 -0
  94. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-css/extension.json +0 -0
  95. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  96. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  97. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-dart/README.md +0 -0
  98. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-dart/extension.json +0 -0
  99. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  100. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-desktop/README.md +0 -0
  101. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  102. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  103. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-docker/README.md +0 -0
  104. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-docker/extension.json +0 -0
  105. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  106. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  107. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
  108. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  109. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  110. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  111. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  112. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-elixir/README.md +0 -0
  113. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  114. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  115. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-elm/README.md +0 -0
  116. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-elm/extension.json +0 -0
  117. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  118. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  119. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  120. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  121. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-gn/README.md +0 -0
  122. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-gn/extension.json +0 -0
  123. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  124. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-go/README.md +0 -0
  125. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-go/extension.json +0 -0
  126. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  127. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-graphql/README.md +0 -0
  128. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  129. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  130. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-html/README.md +0 -0
  131. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-html/extension.json +0 -0
  132. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  133. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  134. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-java/README.md +0 -0
  135. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-java/extension.json +0 -0
  136. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  137. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  138. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-javascript/README.md +0 -0
  139. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-javascript/extension.json +0 -0
  140. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  141. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  142. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-json/README.md +0 -0
  143. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-json/extension.json +0 -0
  144. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  145. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-json5/README.md +0 -0
  146. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-json5/extension.json +0 -0
  147. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  148. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-jsx/README.md +0 -0
  149. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  150. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  151. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-julia/README.md +0 -0
  152. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-julia/extension.json +0 -0
  153. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  154. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  155. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  156. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  157. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-less/LICENSE +0 -0
  158. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-less/README.md +0 -0
  159. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-less/extension.json +0 -0
  160. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  161. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  162. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-markdown/README.md +0 -0
  163. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  164. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  165. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-mdx/README.md +0 -0
  166. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  167. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  168. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nix/README.md +0 -0
  169. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nix/extension.json +0 -0
  170. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  171. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  172. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  173. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  174. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  175. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-perl/README.md +0 -0
  176. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-perl/extension.json +0 -0
  177. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  178. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  179. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  180. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  181. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-powershell/README.md +0 -0
  182. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  183. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  184. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-python/README.md +0 -0
  185. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-python/extension.json +0 -0
  186. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  187. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  188. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-r/README.md +0 -0
  189. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-r/extension.json +0 -0
  190. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  191. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-ruby/README.md +0 -0
  192. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  193. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  194. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  195. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-rust/README.md +0 -0
  196. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-rust/extension.json +0 -0
  197. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  198. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  199. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-scss/README.md +0 -0
  200. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-scss/extension.json +0 -0
  201. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  202. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  203. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  204. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  205. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  206. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-svelte/README.md +0 -0
  207. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  208. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  209. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-terraform/README.md +0 -0
  210. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  211. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  212. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-toml/README.md +0 -0
  213. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-toml/extension.json +0 -0
  214. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  215. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-typescript/README.md +0 -0
  216. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  217. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
  218. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  219. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-vue/README.md +0 -0
  220. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-vue/extension.json +0 -0
  221. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  222. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  223. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  224. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  225. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  226. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-xml/README.md +0 -0
  227. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-xml/extension.json +0 -0
  228. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  229. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-yaml/README.md +0 -0
  230. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  231. /package/static/{c4bc67d → 52a862f}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  232. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  233. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  234. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  235. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  236. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-ayu/README.md +0 -0
  237. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  238. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-ayu/extension.json +0 -0
  239. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-ayu/images/demo.png +0 -0
  240. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-cobalt2/README.md +0 -0
  241. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  242. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  243. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  244. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  245. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-gruvbox/README.md +0 -0
  246. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  247. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-gruvbox/extension.json +0 -0
  248. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
  249. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-high-contrast/README.md +0 -0
  250. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  251. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  252. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-material/README.md +0 -0
  253. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-material/color-theme.json +0 -0
  254. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-material/extension.json +0 -0
  255. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-monokai/README.md +0 -0
  256. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  257. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-monokai/extension.json +0 -0
  258. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  259. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  260. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  261. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  262. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-palenight/README.md +0 -0
  263. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  264. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-palenight/extension.json +0 -0
  265. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  266. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-slime/README.md +0 -0
  267. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-slime/color-theme.json +0 -0
  268. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-slime/extension.json +0 -0
  269. /package/static/{c4bc67d → 52a862f}/extensions/builtin.theme-slime/icon.png +0 -0
  270. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/README.md +0 -0
  271. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/extension.json +0 -0
  272. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  273. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icon.png +0 -0
  274. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  275. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  276. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  277. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  278. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  279. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  280. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  281. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  282. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  283. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  284. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  285. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  286. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
  287. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  288. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  289. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  290. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  291. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
  292. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  293. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  294. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  295. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  296. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
  297. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  298. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
  299. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
  300. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  301. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  302. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  303. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  304. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  305. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  306. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  307. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  308. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  309. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  310. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  311. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  312. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  313. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  314. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  315. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  316. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  317. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
  318. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  319. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  320. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  321. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
  322. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  323. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  324. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  325. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  326. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  327. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  328. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  329. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  330. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  331. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  332. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  333. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  334. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  335. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  336. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  337. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  338. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  339. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  340. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  341. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  342. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  343. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  344. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  345. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  346. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  347. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  348. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  349. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  350. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  351. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  352. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  353. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  354. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  355. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  356. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  357. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  358. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  359. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  360. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  361. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  362. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  363. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  364. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  365. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  366. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  367. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  368. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  369. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  370. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  371. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  372. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  373. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  374. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  375. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  376. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  377. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  378. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  379. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  380. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  381. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  382. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  383. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  384. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  385. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  386. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  387. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  388. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  389. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  390. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  391. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  392. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  393. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  394. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  395. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
  396. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  397. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  398. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  399. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  400. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
  401. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  402. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  403. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  404. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  405. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  406. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  407. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  408. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  409. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  410. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  411. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  412. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  413. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  414. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  415. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  416. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  417. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  418. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  419. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  420. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  421. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  422. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  423. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  424. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  425. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  426. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  427. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  428. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  429. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  430. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  431. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  432. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  433. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  434. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  435. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  436. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  437. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  438. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  439. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  440. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  441. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  442. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  443. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  444. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  445. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  446. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  447. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  448. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  449. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  450. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  451. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  452. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  453. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  454. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  455. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  456. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  457. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  458. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  459. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  460. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  461. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  462. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
  463. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  464. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
  465. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  466. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  467. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  468. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  469. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  470. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  471. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  472. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  473. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  474. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  475. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  476. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  477. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  478. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  479. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  480. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  481. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  482. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  483. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  484. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  485. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  486. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  487. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  488. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  489. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  490. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  491. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  492. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  493. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  494. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  495. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  496. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  497. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  498. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
  499. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  500. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  501. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  502. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  503. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  504. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  505. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  506. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  507. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  508. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  509. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  510. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  511. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  512. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  513. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  514. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  515. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  516. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  517. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  518. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  519. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  520. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  521. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  522. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  523. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  524. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  525. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  526. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  527. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  528. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
  529. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  530. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  531. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  532. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  533. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  534. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  535. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  536. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  537. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  538. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  539. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  540. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  541. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  542. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  543. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  544. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  545. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  546. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  547. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  548. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  549. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  550. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  551. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  552. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  553. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  554. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  555. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  556. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  557. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  558. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  559. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  560. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  561. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
  562. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
  563. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  564. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
  565. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
  566. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  567. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  568. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  569. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  570. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  571. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  572. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  573. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
  574. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  575. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  576. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  577. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  578. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  579. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  580. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  581. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  582. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  583. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  584. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  585. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  586. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  587. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  588. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  589. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  590. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  591. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  592. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  593. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  594. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  595. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  596. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  597. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  598. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  599. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  600. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  601. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
  602. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  603. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  604. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  605. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  606. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  607. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  608. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  609. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  610. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  611. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  612. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  613. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  614. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  615. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  616. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  617. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  618. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  619. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  620. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  621. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  622. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  623. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  624. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  625. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  626. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  627. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  628. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  629. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  630. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  631. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  632. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  633. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  634. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  635. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  636. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  637. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  638. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  639. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  640. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  641. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  642. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  643. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  644. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  645. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  646. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  647. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  648. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  649. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  650. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  651. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  652. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  653. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  654. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  655. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  656. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  657. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  658. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  659. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  660. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  661. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
  662. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  663. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  664. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  665. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  666. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  667. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  668. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  669. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  670. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  671. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  672. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  673. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  674. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  675. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  676. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  677. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  678. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  679. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  680. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  681. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  682. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  683. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  684. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  685. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  686. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  687. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  688. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  689. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  690. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  691. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  692. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  693. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  694. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  695. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  696. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  697. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  698. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  699. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  700. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
  701. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
  702. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  703. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  704. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  705. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  706. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  707. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  708. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  709. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  710. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  711. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  712. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  713. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  714. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  715. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  716. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  717. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  718. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
  719. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  720. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  721. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  722. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  723. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  724. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  725. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  726. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  727. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  728. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  729. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  730. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  731. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  732. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  733. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  734. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  735. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  736. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  737. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  738. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  739. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  740. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  741. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  742. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  743. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  744. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  745. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  746. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  747. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  748. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  749. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  750. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  751. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  752. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  753. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  754. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  755. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  756. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  757. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  758. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  759. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  760. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  761. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  762. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  763. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
  764. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
  765. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  766. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  767. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  768. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
  769. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  770. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  771. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  772. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  773. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  774. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  775. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  776. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  777. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  778. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  779. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  780. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  781. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
  782. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  783. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  784. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  785. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  786. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  787. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  788. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  789. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  790. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  791. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  792. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  793. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  794. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  795. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  796. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  797. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  798. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  799. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  800. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
  801. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  802. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  803. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  804. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  805. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  806. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  807. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  808. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  809. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  810. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  811. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  812. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  813. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  814. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  815. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  816. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  817. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
  818. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  819. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  820. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  821. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  822. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  823. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  824. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  825. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  826. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  827. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  828. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  829. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  830. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  831. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  832. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  833. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  834. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  835. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  836. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  837. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  838. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  839. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  840. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  841. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  842. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  843. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  844. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  845. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  846. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  847. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  848. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  849. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  850. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  851. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  852. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  853. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  854. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  855. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  856. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  857. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  858. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  859. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  860. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  861. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  862. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  863. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
  864. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  865. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  866. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
  867. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  868. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  869. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  870. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  871. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  872. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  873. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  874. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  875. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  876. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  877. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  878. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  879. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  880. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  881. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  882. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  883. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  884. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  885. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  886. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  887. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  888. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  889. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  890. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  891. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  892. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  893. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
  894. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  895. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  896. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  897. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  898. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  899. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  900. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  901. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  902. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  903. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  904. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  905. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  906. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  907. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  908. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  909. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  910. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  911. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  912. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  913. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  914. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  915. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  916. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  917. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  918. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  919. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  920. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  921. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  922. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  923. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  924. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  925. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  926. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  927. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  928. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  929. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  930. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  931. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  932. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  933. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  934. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  935. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  936. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  937. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  938. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  939. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  940. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  941. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  942. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  943. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  944. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  945. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  946. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  947. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  948. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  949. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  950. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  951. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  952. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  953. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  954. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  955. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  956. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  957. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  958. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  959. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  960. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  961. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  962. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  963. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  964. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  965. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  966. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  967. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  968. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  969. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  970. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  971. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  972. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  973. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  974. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  975. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  976. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  977. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  978. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  979. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  980. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  981. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  982. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  983. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  984. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  985. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  986. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  987. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  988. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  989. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  990. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
  991. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  992. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  993. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  994. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  995. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  996. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  997. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  998. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  999. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  1000. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  1001. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  1002. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  1003. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  1004. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  1005. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  1006. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  1007. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  1008. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  1009. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
  1010. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  1011. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  1012. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
  1013. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  1014. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  1015. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  1016. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  1017. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  1018. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  1019. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  1020. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  1021. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  1022. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  1023. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  1024. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  1025. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  1026. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  1027. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  1028. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  1029. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  1030. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  1031. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  1032. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  1033. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  1034. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  1035. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  1036. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  1037. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1038. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1039. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1040. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1041. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1042. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1043. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1044. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1045. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1046. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1047. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1048. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1049. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1050. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1051. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1052. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
  1053. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1054. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1055. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1056. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1057. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1058. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1059. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1060. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1061. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1062. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1063. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1064. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1065. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1066. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1067. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1068. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1069. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1070. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1071. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1072. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
  1073. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1074. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1075. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1076. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1077. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1078. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1079. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1080. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1081. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1082. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1083. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1084. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1085. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1086. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1087. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1088. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1089. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1090. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1091. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1092. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1093. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1094. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1095. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1096. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1097. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1098. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1099. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1100. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1101. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1102. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1103. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1104. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1105. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1106. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1107. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1108. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1109. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1110. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1111. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1112. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1113. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1114. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1115. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1116. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1117. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1118. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1119. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1120. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1121. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1122. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1123. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1124. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1125. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1126. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1127. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1128. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
  1129. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1130. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1131. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1132. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1133. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1134. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1135. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1136. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1137. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1138. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1139. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1140. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1141. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1142. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1143. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1144. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1145. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1146. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1147. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1148. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1149. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1150. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1151. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1152. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1153. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1154. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1155. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1156. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1157. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1158. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1159. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1160. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1161. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1162. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1163. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1164. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
  1165. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1166. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1167. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1168. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1169. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1170. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1171. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
  1172. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1173. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1174. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1175. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1176. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1177. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1178. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1179. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1180. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1181. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1182. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1183. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
  1184. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1185. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1186. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1187. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1188. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1189. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1190. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1191. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1192. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1193. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1194. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1195. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1196. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1197. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1198. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1199. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1200. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1201. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1202. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1203. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1204. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1205. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1206. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1207. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1208. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1209. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1210. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1211. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1212. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1213. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1214. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1215. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1216. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1217. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1218. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1219. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1220. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1221. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1222. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1223. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1224. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1225. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1226. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1227. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1228. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1229. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1230. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1231. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1232. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1233. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1234. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1235. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1236. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1237. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1238. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1239. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1240. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1241. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1242. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1243. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1244. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1245. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1246. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1247. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1248. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1249. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1250. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1251. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1252. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1253. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1254. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
  1255. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1256. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1257. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1258. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1259. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1260. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1261. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1262. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1263. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1264. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1265. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1266. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
  1267. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1268. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1269. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1270. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1271. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1272. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1273. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1274. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1275. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1276. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1277. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1278. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1279. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1280. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1281. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1282. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1283. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1284. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
  1285. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1286. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1287. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1288. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1289. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1290. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1291. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1292. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1293. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1294. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1295. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1296. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1297. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1298. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1299. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1300. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1301. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1302. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1303. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1304. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1305. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1306. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1307. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1308. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
  1309. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1310. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1311. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1312. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1313. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1314. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1315. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1316. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1317. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1318. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
  1319. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1320. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1321. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1322. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1323. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1324. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1325. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1326. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1327. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1328. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1329. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1330. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1331. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1332. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1333. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1334. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1335. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1336. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1337. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1338. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1339. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1340. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1341. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
  1342. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1343. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1344. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1345. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1346. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1347. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1348. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1349. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1350. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1351. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1352. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1353. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1354. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1355. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1356. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1357. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1358. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1359. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1360. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1361. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1362. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1363. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1364. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1365. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1366. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
  1367. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
  1368. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
  1369. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
  1370. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1371. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1372. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1373. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1374. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1375. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1376. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1377. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1378. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
  1379. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
  1380. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1381. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1382. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1383. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1384. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1385. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1386. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1387. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1388. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1389. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1390. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1391. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1392. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1393. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1394. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1395. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1396. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1397. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1398. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1399. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1400. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1401. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1402. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1403. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1404. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
  1405. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
  1406. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1407. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1408. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1409. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1410. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1411. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1412. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1413. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1414. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
  1415. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
  1416. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1417. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1418. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1419. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1420. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
  1421. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
  1422. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1423. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1424. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1425. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1426. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1427. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1428. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1429. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1430. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1431. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1432. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1433. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1434. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1435. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1436. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1437. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1438. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1439. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1440. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1441. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1442. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
  1443. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
  1444. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1445. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1446. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1447. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1448. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
  1449. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
  1450. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1451. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1452. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1453. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1454. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1455. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1456. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1457. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1458. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1459. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1460. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1461. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1462. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1463. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1464. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1465. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1466. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1467. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1468. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1469. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1470. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1471. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1472. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1473. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1474. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1475. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1476. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1477. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1478. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
  1479. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
  1480. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1481. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1482. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1483. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1484. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1485. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1486. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1487. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1488. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1489. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1490. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1491. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1492. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
  1493. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
  1494. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1495. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1496. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1497. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1498. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1499. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1500. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1501. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1502. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1503. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1504. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1505. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1506. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
  1507. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
  1508. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1509. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1510. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1511. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1512. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1513. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1514. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1515. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1516. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1517. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1518. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1519. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1520. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1521. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1522. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1523. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1524. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1525. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1526. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1527. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1528. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
  1529. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
  1530. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
  1531. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
  1532. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1533. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1534. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1535. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1536. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1537. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1538. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
  1539. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
  1540. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1541. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1542. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1543. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1544. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1545. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1546. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1547. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1548. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1549. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1550. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1551. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1552. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1553. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1554. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1555. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1556. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1557. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1558. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1559. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1560. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1561. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1562. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
  1563. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
  1564. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1565. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1566. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1567. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1568. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1569. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1570. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1571. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1572. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1573. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1574. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1575. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1576. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1577. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1578. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1579. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1580. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1581. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1582. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1583. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1584. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1585. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1586. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1587. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1588. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1589. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1590. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1591. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1592. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1593. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1594. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1595. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1596. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1597. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1598. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1599. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1600. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1601. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1602. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1603. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1604. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1605. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1606. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1607. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1608. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1609. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1610. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1611. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1612. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1613. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1614. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1615. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1616. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1617. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1618. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1619. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1620. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1621. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1622. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1623. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1624. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1625. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1626. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1627. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1628. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1629. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1630. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1631. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1632. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1633. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1634. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1635. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1636. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1637. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1638. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1639. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1640. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1641. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1642. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1643. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1644. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1645. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1646. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1647. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1648. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1649. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1650. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1651. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1652. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1653. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1654. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1655. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1656. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1657. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1658. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1659. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1660. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1661. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1662. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1663. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1664. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1665. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1666. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1667. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1668. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1669. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1670. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1671. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1672. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1673. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1674. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1675. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1676. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1677. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1678. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1679. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1680. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1681. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1682. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1683. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1684. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1685. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1686. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1687. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1688. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1689. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1690. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1691. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1692. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1693. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1694. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1695. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1696. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1697. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1698. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1699. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1700. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1701. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1702. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1703. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1704. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1705. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1706. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1707. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1708. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1709. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1710. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
  1711. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
  1712. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1713. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1714. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1715. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1716. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1717. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1718. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1719. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1720. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1721. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1722. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1723. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1724. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1725. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1726. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1727. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1728. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
  1729. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
  1730. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1731. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1732. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1733. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1734. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
  1735. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
  1736. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1737. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1738. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1739. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1740. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1741. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1742. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
  1743. /package/static/{c4bc67d → 52a862f}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
  1744. /package/static/{c4bc67d → 52a862f}/fonts/FiraCode-VariableFont.ttf +0 -0
  1745. /package/static/{c4bc67d → 52a862f}/icons/add.svg +0 -0
  1746. /package/static/{c4bc67d → 52a862f}/icons/arrow-down.svg +0 -0
  1747. /package/static/{c4bc67d → 52a862f}/icons/arrow-left.svg +0 -0
  1748. /package/static/{c4bc67d → 52a862f}/icons/arrow-right.svg +0 -0
  1749. /package/static/{c4bc67d → 52a862f}/icons/arrow-up.svg +0 -0
  1750. /package/static/{c4bc67d → 52a862f}/icons/blank.svg +0 -0
  1751. /package/static/{c4bc67d → 52a862f}/icons/book.svg +0 -0
  1752. /package/static/{c4bc67d → 52a862f}/icons/case-sensitive.svg +0 -0
  1753. /package/static/{c4bc67d → 52a862f}/icons/check.svg +0 -0
  1754. /package/static/{c4bc67d → 52a862f}/icons/chevron-down.svg +0 -0
  1755. /package/static/{c4bc67d → 52a862f}/icons/chevron-left.svg +0 -0
  1756. /package/static/{c4bc67d → 52a862f}/icons/chevron-right.svg +0 -0
  1757. /package/static/{c4bc67d → 52a862f}/icons/chevron-up.svg +0 -0
  1758. /package/static/{c4bc67d → 52a862f}/icons/chrome-close.svg +0 -0
  1759. /package/static/{c4bc67d → 52a862f}/icons/chrome-maximize.svg +0 -0
  1760. /package/static/{c4bc67d → 52a862f}/icons/chrome-minimize.svg +0 -0
  1761. /package/static/{c4bc67d → 52a862f}/icons/chrome-restore.svg +0 -0
  1762. /package/static/{c4bc67d → 52a862f}/icons/circle-filled.svg +0 -0
  1763. /package/static/{c4bc67d → 52a862f}/icons/clear-all.svg +0 -0
  1764. /package/static/{c4bc67d → 52a862f}/icons/close.svg +0 -0
  1765. /package/static/{c4bc67d → 52a862f}/icons/cloud.svg +0 -0
  1766. /package/static/{c4bc67d → 52a862f}/icons/collapse-all.svg +0 -0
  1767. /package/static/{c4bc67d → 52a862f}/icons/debug-all.svg +0 -0
  1768. /package/static/{c4bc67d → 52a862f}/icons/debug-alt-2.svg +0 -0
  1769. /package/static/{c4bc67d → 52a862f}/icons/debug-alt-small.svg +0 -0
  1770. /package/static/{c4bc67d → 52a862f}/icons/debug-alt.svg +0 -0
  1771. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  1772. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-conditional.svg +0 -0
  1773. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-data-unverified.svg +0 -0
  1774. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-data.svg +0 -0
  1775. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-function-unverified.svg +0 -0
  1776. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-function.svg +0 -0
  1777. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-log-unverified.svg +0 -0
  1778. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-log.svg +0 -0
  1779. /package/static/{c4bc67d → 52a862f}/icons/debug-breakpoint-unsupported.svg +0 -0
  1780. /package/static/{c4bc67d → 52a862f}/icons/debug-console.svg +0 -0
  1781. /package/static/{c4bc67d → 52a862f}/icons/debug-continue-small.svg +0 -0
  1782. /package/static/{c4bc67d → 52a862f}/icons/debug-continue.svg +0 -0
  1783. /package/static/{c4bc67d → 52a862f}/icons/debug-coverage.svg +0 -0
  1784. /package/static/{c4bc67d → 52a862f}/icons/debug-disconnect.svg +0 -0
  1785. /package/static/{c4bc67d → 52a862f}/icons/debug-line-by-line.svg +0 -0
  1786. /package/static/{c4bc67d → 52a862f}/icons/debug-pause.svg +0 -0
  1787. /package/static/{c4bc67d → 52a862f}/icons/debug-rerun.svg +0 -0
  1788. /package/static/{c4bc67d → 52a862f}/icons/debug-restart-frame.svg +0 -0
  1789. /package/static/{c4bc67d → 52a862f}/icons/debug-restart.svg +0 -0
  1790. /package/static/{c4bc67d → 52a862f}/icons/debug-reverse-continue.svg +0 -0
  1791. /package/static/{c4bc67d → 52a862f}/icons/debug-stackframe-active.svg +0 -0
  1792. /package/static/{c4bc67d → 52a862f}/icons/debug-stackframe.svg +0 -0
  1793. /package/static/{c4bc67d → 52a862f}/icons/debug-start.svg +0 -0
  1794. /package/static/{c4bc67d → 52a862f}/icons/debug-step-back.svg +0 -0
  1795. /package/static/{c4bc67d → 52a862f}/icons/debug-step-into.svg +0 -0
  1796. /package/static/{c4bc67d → 52a862f}/icons/debug-step-out.svg +0 -0
  1797. /package/static/{c4bc67d → 52a862f}/icons/debug-step-over.svg +0 -0
  1798. /package/static/{c4bc67d → 52a862f}/icons/debug-stop.svg +0 -0
  1799. /package/static/{c4bc67d → 52a862f}/icons/debug.svg +0 -0
  1800. /package/static/{c4bc67d → 52a862f}/icons/discard.svg +0 -0
  1801. /package/static/{c4bc67d → 52a862f}/icons/edit.svg +0 -0
  1802. /package/static/{c4bc67d → 52a862f}/icons/ellipsis.svg +0 -0
  1803. /package/static/{c4bc67d → 52a862f}/icons/error.svg +0 -0
  1804. /package/static/{c4bc67d → 52a862f}/icons/exclude.svg +0 -0
  1805. /package/static/{c4bc67d → 52a862f}/icons/extensionDefaultIcon.png +0 -0
  1806. /package/static/{c4bc67d → 52a862f}/icons/extensions.svg +0 -0
  1807. /package/static/{c4bc67d → 52a862f}/icons/files.svg +0 -0
  1808. /package/static/{c4bc67d → 52a862f}/icons/filter.svg +0 -0
  1809. /package/static/{c4bc67d → 52a862f}/icons/go-to-file.svg +0 -0
  1810. /package/static/{c4bc67d → 52a862f}/icons/icon-close.svg +0 -0
  1811. /package/static/{c4bc67d → 52a862f}/icons/icon-source-control.svg +0 -0
  1812. /package/static/{c4bc67d → 52a862f}/icons/icon-sync.svg +0 -0
  1813. /package/static/{c4bc67d → 52a862f}/icons/icon.png +0 -0
  1814. /package/static/{c4bc67d → 52a862f}/icons/icon.svg +0 -0
  1815. /package/static/{c4bc67d → 52a862f}/icons/info.svg +0 -0
  1816. /package/static/{c4bc67d → 52a862f}/icons/language-icon.svg +0 -0
  1817. /package/static/{c4bc67d → 52a862f}/icons/link-external.svg +0 -0
  1818. /package/static/{c4bc67d → 52a862f}/icons/list-flat.svg +0 -0
  1819. /package/static/{c4bc67d → 52a862f}/icons/list-tree.svg +0 -0
  1820. /package/static/{c4bc67d → 52a862f}/icons/new-file.svg +0 -0
  1821. /package/static/{c4bc67d → 52a862f}/icons/new-folder.svg +0 -0
  1822. /package/static/{c4bc67d → 52a862f}/icons/newline.svg +0 -0
  1823. /package/static/{c4bc67d → 52a862f}/icons/open-preview.svg +0 -0
  1824. /package/static/{c4bc67d → 52a862f}/icons/play.svg +0 -0
  1825. /package/static/{c4bc67d → 52a862f}/icons/preserve-case.svg +0 -0
  1826. /package/static/{c4bc67d → 52a862f}/icons/progress.svg +0 -0
  1827. /package/static/{c4bc67d → 52a862f}/icons/pwa-icon-192.png +0 -0
  1828. /package/static/{c4bc67d → 52a862f}/icons/pwa-icon-512.png +0 -0
  1829. /package/static/{c4bc67d → 52a862f}/icons/record-keys.svg +0 -0
  1830. /package/static/{c4bc67d → 52a862f}/icons/refresh.svg +0 -0
  1831. /package/static/{c4bc67d → 52a862f}/icons/regex.svg +0 -0
  1832. /package/static/{c4bc67d → 52a862f}/icons/remove.svg +0 -0
  1833. /package/static/{c4bc67d → 52a862f}/icons/replace-all.svg +0 -0
  1834. /package/static/{c4bc67d → 52a862f}/icons/replace.svg +0 -0
  1835. /package/static/{c4bc67d → 52a862f}/icons/repo.svg +0 -0
  1836. /package/static/{c4bc67d → 52a862f}/icons/run-all.svg +0 -0
  1837. /package/static/{c4bc67d → 52a862f}/icons/search.svg +0 -0
  1838. /package/static/{c4bc67d → 52a862f}/icons/send.svg +0 -0
  1839. /package/static/{c4bc67d → 52a862f}/icons/settings-gear.svg +0 -0
  1840. /package/static/{c4bc67d → 52a862f}/icons/sort-precedence.svg +0 -0
  1841. /package/static/{c4bc67d → 52a862f}/icons/source-control.svg +0 -0
  1842. /package/static/{c4bc67d → 52a862f}/icons/split-horizontal.svg +0 -0
  1843. /package/static/{c4bc67d → 52a862f}/icons/squiggly-error.svg +0 -0
  1844. /package/static/{c4bc67d → 52a862f}/icons/squiggly-warning.svg +0 -0
  1845. /package/static/{c4bc67d → 52a862f}/icons/symbol-array.svg +0 -0
  1846. /package/static/{c4bc67d → 52a862f}/icons/symbol-boolean.svg +0 -0
  1847. /package/static/{c4bc67d → 52a862f}/icons/symbol-class.svg +0 -0
  1848. /package/static/{c4bc67d → 52a862f}/icons/symbol-color.svg +0 -0
  1849. /package/static/{c4bc67d → 52a862f}/icons/symbol-constant.svg +0 -0
  1850. /package/static/{c4bc67d → 52a862f}/icons/symbol-enum-member.svg +0 -0
  1851. /package/static/{c4bc67d → 52a862f}/icons/symbol-enum.svg +0 -0
  1852. /package/static/{c4bc67d → 52a862f}/icons/symbol-event.svg +0 -0
  1853. /package/static/{c4bc67d → 52a862f}/icons/symbol-field.svg +0 -0
  1854. /package/static/{c4bc67d → 52a862f}/icons/symbol-file.svg +0 -0
  1855. /package/static/{c4bc67d → 52a862f}/icons/symbol-interface.svg +0 -0
  1856. /package/static/{c4bc67d → 52a862f}/icons/symbol-key.svg +0 -0
  1857. /package/static/{c4bc67d → 52a862f}/icons/symbol-keyword.svg +0 -0
  1858. /package/static/{c4bc67d → 52a862f}/icons/symbol-method.svg +0 -0
  1859. /package/static/{c4bc67d → 52a862f}/icons/symbol-misc.svg +0 -0
  1860. /package/static/{c4bc67d → 52a862f}/icons/symbol-namespace.svg +0 -0
  1861. /package/static/{c4bc67d → 52a862f}/icons/symbol-numeric.svg +0 -0
  1862. /package/static/{c4bc67d → 52a862f}/icons/symbol-operator.svg +0 -0
  1863. /package/static/{c4bc67d → 52a862f}/icons/symbol-parameter.svg +0 -0
  1864. /package/static/{c4bc67d → 52a862f}/icons/symbol-property.svg +0 -0
  1865. /package/static/{c4bc67d → 52a862f}/icons/symbol-ruler.svg +0 -0
  1866. /package/static/{c4bc67d → 52a862f}/icons/symbol-snippet.svg +0 -0
  1867. /package/static/{c4bc67d → 52a862f}/icons/symbol-string.svg +0 -0
  1868. /package/static/{c4bc67d → 52a862f}/icons/symbol-structure.svg +0 -0
  1869. /package/static/{c4bc67d → 52a862f}/icons/symbol-variable.svg +0 -0
  1870. /package/static/{c4bc67d → 52a862f}/icons/tag.svg +0 -0
  1871. /package/static/{c4bc67d → 52a862f}/icons/terminal-bash.svg +0 -0
  1872. /package/static/{c4bc67d → 52a862f}/icons/terminal.svg +0 -0
  1873. /package/static/{c4bc67d → 52a862f}/icons/theme-icon.png +0 -0
  1874. /package/static/{c4bc67d → 52a862f}/icons/trash.svg +0 -0
  1875. /package/static/{c4bc67d → 52a862f}/icons/triangle-down.svg +0 -0
  1876. /package/static/{c4bc67d → 52a862f}/icons/triangle-left.svg +0 -0
  1877. /package/static/{c4bc67d → 52a862f}/icons/triangle-right.svg +0 -0
  1878. /package/static/{c4bc67d → 52a862f}/icons/triangle-up.svg +0 -0
  1879. /package/static/{c4bc67d → 52a862f}/icons/warning.svg +0 -0
  1880. /package/static/{c4bc67d → 52a862f}/icons/whole-word.svg +0 -0
  1881. /package/static/{c4bc67d → 52a862f}/icons/zoom-in.svg +0 -0
  1882. /package/static/{c4bc67d → 52a862f}/icons/zoom-out.svg +0 -0
  1883. /package/static/{c4bc67d → 52a862f}/js/babel-parser.js +0 -0
  1884. /package/static/{c4bc67d → 52a862f}/js/ky.js +0 -0
  1885. /package/static/{c4bc67d → 52a862f}/js/lvce-editor-import-script.js +0 -0
  1886. /package/static/{c4bc67d → 52a862f}/js/lvce-editor-ipc.js +0 -0
  1887. /package/static/{c4bc67d → 52a862f}/js/lvce-editor-json-rpc.js +0 -0
  1888. /package/static/{c4bc67d → 52a862f}/js/lvce-editor-rpc.js +0 -0
  1889. /package/static/{c4bc67d → 52a862f}/js/lvce-editor-verror.js +0 -0
  1890. /package/static/{c4bc67d → 52a862f}/js/p-min-delay.js +0 -0
  1891. /package/static/{c4bc67d → 52a862f}/js/pretty-bytes.js +0 -0
  1892. /package/static/{c4bc67d → 52a862f}/js/preview-injected.js +0 -0
  1893. /package/static/{c4bc67d → 52a862f}/js/yoctodelay.js +0 -0
  1894. /package/static/{c4bc67d → 52a862f}/lib-css/termterm.css +0 -0
  1895. /package/static/{c4bc67d → 52a862f}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
  1896. /package/static/{c4bc67d → 52a862f}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  1897. /package/static/{c4bc67d → 52a862f}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  1898. /package/static/{c4bc67d → 52a862f}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  1899. /package/static/{c4bc67d → 52a862f}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  1900. /package/static/{c4bc67d → 52a862f}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
  1901. /package/static/{c4bc67d → 52a862f}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
  1902. /package/static/{c4bc67d → 52a862f}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  1903. /package/static/{c4bc67d → 52a862f}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  1904. /package/static/{c4bc67d → 52a862f}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
  1905. /package/static/{c4bc67d → 52a862f}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
  1906. /package/static/{c4bc67d → 52a862f}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  1907. /package/static/{c4bc67d → 52a862f}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
  1908. /package/static/{c4bc67d → 52a862f}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
  1909. /package/static/{c4bc67d → 52a862f}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
  1910. /package/static/{c4bc67d → 52a862f}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  1911. /package/static/{c4bc67d → 52a862f}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  1912. /package/static/{c4bc67d → 52a862f}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  1913. /package/static/{c4bc67d → 52a862f}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  1914. /package/static/{c4bc67d → 52a862f}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  1915. /package/static/{c4bc67d → 52a862f}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  1916. /package/static/{c4bc67d → 52a862f}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  1917. /package/static/{c4bc67d → 52a862f}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
  1918. /package/static/{c4bc67d → 52a862f}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
  1919. /package/static/{c4bc67d → 52a862f}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  1920. /package/static/{c4bc67d → 52a862f}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
  1921. /package/static/{c4bc67d → 52a862f}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
  1922. /package/static/{c4bc67d → 52a862f}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
  1923. /package/static/{c4bc67d → 52a862f}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
  1924. /package/static/{c4bc67d → 52a862f}/packages/preload/dist/index.js +0 -0
  1925. /package/static/{c4bc67d → 52a862f}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
  1926. /package/static/{c4bc67d → 52a862f}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
  1927. /package/static/{c4bc67d → 52a862f}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
  1928. /package/static/{c4bc67d → 52a862f}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
  1929. /package/static/{c4bc67d → 52a862f}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  1930. /package/static/{c4bc67d → 52a862f}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  1931. /package/static/{c4bc67d → 52a862f}/packages/renderer-process/LICENSE +0 -0
  1932. /package/static/{c4bc67d → 52a862f}/packages/renderer-process/README.md +0 -0
  1933. /package/static/{c4bc67d → 52a862f}/packages/renderer-process/package.json +0 -0
  1934. /package/static/{c4bc67d → 52a862f}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  1935. /package/static/{c4bc67d → 52a862f}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  1936. /package/static/{c4bc67d → 52a862f}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  1937. /package/static/{c4bc67d → 52a862f}/packages/status-bar-worker/dist/statusBarWorkerMain.js +0 -0
  1938. /package/static/{c4bc67d → 52a862f}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  1939. /package/static/{c4bc67d → 52a862f}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
  1940. /package/static/{c4bc67d → 52a862f}/packages/test-worker/dist/testWorkerMain.js +0 -0
  1941. /package/static/{c4bc67d → 52a862f}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
  1942. /package/static/{c4bc67d → 52a862f}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  1943. /package/static/{c4bc67d → 52a862f}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
  1944. /package/static/{c4bc67d → 52a862f}/packages/update-worker/dist/updateWorkerMain.js +0 -0
  1945. /package/static/{c4bc67d → 52a862f}/playground/languages/index.cpp +0 -0
  1946. /package/static/{c4bc67d → 52a862f}/playground/languages/index.css +0 -0
  1947. /package/static/{c4bc67d → 52a862f}/playground/languages/index.csv +0 -0
  1948. /package/static/{c4bc67d → 52a862f}/playground/languages/index.dart +0 -0
  1949. /package/static/{c4bc67d → 52a862f}/playground/languages/index.env +0 -0
  1950. /package/static/{c4bc67d → 52a862f}/playground/languages/index.ex +0 -0
  1951. /package/static/{c4bc67d → 52a862f}/playground/languages/index.html +0 -0
  1952. /package/static/{c4bc67d → 52a862f}/playground/languages/index.java +0 -0
  1953. /package/static/{c4bc67d → 52a862f}/playground/languages/index.jl +0 -0
  1954. /package/static/{c4bc67d → 52a862f}/playground/languages/index.js +0 -0
  1955. /package/static/{c4bc67d → 52a862f}/playground/languages/index.json +0 -0
  1956. /package/static/{c4bc67d → 52a862f}/playground/languages/index.kt +0 -0
  1957. /package/static/{c4bc67d → 52a862f}/playground/languages/index.pl +0 -0
  1958. /package/static/{c4bc67d → 52a862f}/playground/languages/index.py +0 -0
  1959. /package/static/{c4bc67d → 52a862f}/playground/languages/index.ts +0 -0
  1960. /package/static/{c4bc67d → 52a862f}/playground/languages/scrolling.txt +0 -0
  1961. /package/static/{c4bc67d → 52a862f}/playground/languages/tsconfig.json +0 -0
  1962. /package/static/{c4bc67d → 52a862f}/playground/sample-folder/a.txt +0 -0
  1963. /package/static/{c4bc67d → 52a862f}/playground/sample-folder/b.txt +0 -0
  1964. /package/static/{c4bc67d → 52a862f}/playground/sample-folder/c.txt +0 -0
@@ -1036,6 +1036,7 @@ const create$2 = rpcId => {
1036
1036
  };
1037
1037
 
1038
1038
  const {
1039
+ invoke: invoke$1,
1039
1040
  set: set$2
1040
1041
  } = create$2(ExtensionHostWorker);
1041
1042
 
@@ -1044,13 +1045,22 @@ const {
1044
1045
  invokeAndTransfer,
1045
1046
  set: set$1
1046
1047
  } = create$2(RendererWorker);
1048
+ const readFile = async uri => {
1049
+ return invoke('FileSystem.readFile', uri);
1050
+ };
1047
1051
  const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
1048
1052
  const command = 'HandleMessagePort.handleMessagePort2';
1049
1053
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
1050
1054
  };
1055
+ const activateByEvent$1 = (event, assetDir, platform) => {
1056
+ return invoke('ExtensionHostManagement.activateByEvent', event, assetDir, platform);
1057
+ };
1051
1058
  const getPreference = async key => {
1052
1059
  return await invoke('Preferences.get', key);
1053
1060
  };
1061
+ const openExternal = async uri => {
1062
+ await invoke('Open.openExternal', uri);
1063
+ };
1054
1064
 
1055
1065
  const toCommandId = key => {
1056
1066
  const dotIndex = key.indexOf('.');
@@ -1172,9 +1182,45 @@ const terminate = () => {
1172
1182
  globalThis.close();
1173
1183
  };
1174
1184
 
1185
+ const measureTextBlockHeight = async (text, fontFamily, fontSize, lineHeight, width) => {
1186
+ return invoke('MeasureTextBlockHeight.measureTextBlockHeight', text, fontSize, fontFamily, lineHeight, width);
1187
+ };
1188
+
1189
+ const getComposerWidth = width => {
1190
+ return Math.max(1, width - 32);
1191
+ };
1192
+ const getMinComposerHeight = lineHeight => {
1193
+ return lineHeight + 8;
1194
+ };
1195
+ const estimateComposerHeight = (value, lineHeight) => {
1196
+ const lineCount = value.split('\n').length;
1197
+ return lineCount * lineHeight + 8;
1198
+ };
1199
+ const getComposerHeight = async (state, value, width = state.width) => {
1200
+ const {
1201
+ composerFontFamily,
1202
+ composerFontSize,
1203
+ composerLineHeight
1204
+ } = state;
1205
+ const minimumHeight = getMinComposerHeight(composerLineHeight);
1206
+ const content = value || ' ';
1207
+ const composerWidth = getComposerWidth(width);
1208
+ try {
1209
+ const measuredHeight = await measureTextBlockHeight(content, composerFontFamily, composerFontSize, composerLineHeight, composerWidth);
1210
+ const height = Math.ceil(measuredHeight) + 8;
1211
+ return Math.max(minimumHeight, height);
1212
+ } catch {
1213
+ return Math.max(minimumHeight, estimateComposerHeight(value, composerLineHeight));
1214
+ }
1215
+ };
1216
+ const getMinComposerHeightForState = state => {
1217
+ return getMinComposerHeight(state.composerLineHeight);
1218
+ };
1219
+
1175
1220
  const clearInput = async state => {
1176
1221
  return {
1177
1222
  ...state,
1223
+ composerHeight: getMinComposerHeightForState(state),
1178
1224
  composerValue: ''
1179
1225
  };
1180
1226
  };
@@ -1191,30 +1237,158 @@ const i18nString = (key, placeholders = emptyObject) => {
1191
1237
  return key.replaceAll(RE_PLACEHOLDER, replacer);
1192
1238
  };
1193
1239
 
1194
- const chatTitle = i18nString('Chat');
1195
- const chats = i18nString('Chats');
1196
- const newChat = i18nString('New Chat');
1197
- const backToChats = i18nString('Back to chats');
1198
- const settings = i18nString('Settings');
1199
- const closeChat = i18nString('Close Chat');
1200
- const clickToOpenNewChat = i18nString('Click the + button to open a new chat.');
1201
- const startConversation = i18nString('Start a conversation by typing below.');
1202
- i18nString('You');
1203
- i18nString('Assistant');
1204
- const composePlaceholder = i18nString('Type your message. Enter to send, Shift+Enter for newline.');
1205
- const sendMessage = i18nString('Send message');
1206
- i18nString('Send');
1207
- const deleteChatSession$1 = i18nString('Delete chat session');
1208
- const defaultSessionTitle = i18nString('Chat 1');
1209
- const dummyChatA = i18nString('Dummy Chat A');
1210
- const dummyChatB = i18nString('Dummy Chat B');
1211
- const dummyChatC = i18nString('Dummy Chat C');
1240
+ const chatTitle = () => {
1241
+ return i18nString('Chat');
1242
+ };
1243
+ const chats = () => {
1244
+ return i18nString('Chats');
1245
+ };
1246
+ const newChat = () => {
1247
+ return i18nString('New Chat');
1248
+ };
1249
+ const backToChats = () => {
1250
+ return i18nString('Back to chats');
1251
+ };
1252
+ const settings = () => {
1253
+ return i18nString('Settings');
1254
+ };
1255
+ const closeChat = () => {
1256
+ return i18nString('Close Chat');
1257
+ };
1258
+ const clickToOpenNewChat = () => {
1259
+ return i18nString('Click the + button to open a new chat.');
1260
+ };
1261
+ const startConversation = () => {
1262
+ return i18nString('Start a conversation by typing below.');
1263
+ };
1264
+ const composePlaceholder = () => {
1265
+ return i18nString('Type your message. Enter to send, Shift+Enter for newline.');
1266
+ };
1267
+ const openRouterApiKeyPlaceholder = () => {
1268
+ return i18nString('Enter OpenRouter API key');
1269
+ };
1270
+ const openApiApiKeyPlaceholder = () => {
1271
+ return i18nString('Enter OpenAI API key');
1272
+ };
1273
+ const sendMessage = () => {
1274
+ return i18nString('Send message');
1275
+ };
1276
+ const save = () => {
1277
+ return i18nString('Save');
1278
+ };
1279
+ const saving = () => {
1280
+ return i18nString('Saving...');
1281
+ };
1282
+ const getOpenRouterApiKey = () => {
1283
+ return i18nString('Get API Key');
1284
+ };
1285
+ const getOpenApiApiKey = () => {
1286
+ return i18nString('Get API Key');
1287
+ };
1288
+ const deleteChatSession$1 = () => {
1289
+ return i18nString('Delete chat session');
1290
+ };
1291
+ const defaultSessionTitle = () => {
1292
+ return i18nString('Chat 1');
1293
+ };
1294
+ const dummyChatA = () => {
1295
+ return i18nString('Dummy Chat A');
1296
+ };
1297
+ const dummyChatB = () => {
1298
+ return i18nString('Dummy Chat B');
1299
+ };
1300
+ const dummyChatC = () => {
1301
+ return i18nString('Dummy Chat C');
1302
+ };
1303
+ const unknownViewMode = () => {
1304
+ return i18nString('Unknown view mode');
1305
+ };
1306
+
1307
+ /* eslint-disable @cspell/spellchecker */
1212
1308
 
1309
+ const getDefaultModels = () => {
1310
+ const defaultModelId = 'test';
1311
+ return [{
1312
+ id: defaultModelId,
1313
+ name: 'test',
1314
+ provider: 'test'
1315
+ }, {
1316
+ id: 'openapi/gpt-5-mini',
1317
+ name: 'GPT-5 Mini',
1318
+ provider: 'openApi'
1319
+ }, {
1320
+ id: 'openapi/gpt-4o-mini',
1321
+ name: 'GPT-4o Mini',
1322
+ provider: 'openApi'
1323
+ }, {
1324
+ id: 'openapi/gpt-4o',
1325
+ name: 'GPT-4o',
1326
+ provider: 'openApi'
1327
+ }, {
1328
+ id: 'openapi/gpt-4.1-mini',
1329
+ name: 'GPT-4.1 Mini',
1330
+ provider: 'openApi'
1331
+ }, {
1332
+ id: 'codex-5.3',
1333
+ name: 'Codex 5.3',
1334
+ provider: 'openRouter'
1335
+ }, {
1336
+ id: 'claude-code',
1337
+ name: 'Claude Code',
1338
+ provider: 'openRouter'
1339
+ }, {
1340
+ id: 'claude-haiku',
1341
+ name: 'Claude Haiku',
1342
+ provider: 'openRouter'
1343
+ }, {
1344
+ id: 'openRouter/openai/gpt-4o-mini',
1345
+ name: 'GPT-4o Mini',
1346
+ provider: 'openRouter'
1347
+ }, {
1348
+ id: 'openRouter/anthropic/claude-3.5-haiku',
1349
+ name: 'Claude 3.5 Haiku',
1350
+ provider: 'openRouter'
1351
+ }, {
1352
+ id: 'openRouter/google/gemini-2.0-flash-001',
1353
+ name: 'Gemini 2.0 Flash',
1354
+ provider: 'openRouter'
1355
+ }, {
1356
+ id: 'openRouter/openai/gpt-oss-20b:free',
1357
+ name: 'GPT OSS 20B (Free)',
1358
+ provider: 'openRouter'
1359
+ }, {
1360
+ id: 'openRouter/openai/gpt-oss-120b:free',
1361
+ name: 'GPT OSS 120B (Free)',
1362
+ provider: 'openRouter'
1363
+ }, {
1364
+ id: 'openRouter/meta-llama/llama-3.3-70b-instruct:free',
1365
+ name: 'Llama 3.3 70B Instruct (Free)',
1366
+ provider: 'openRouter'
1367
+ }, {
1368
+ id: 'openRouter/google/gemma-3-27b-it:free',
1369
+ name: 'Gemma 3 27B IT (Free)',
1370
+ provider: 'openRouter'
1371
+ }, {
1372
+ id: 'openRouter/qwen/qwen3-coder:free',
1373
+ name: 'Qwen3 Coder (Free)',
1374
+ provider: 'openRouter'
1375
+ }, {
1376
+ id: 'openRouter/mistralai/mistral-small-3.1-24b-instruct:free',
1377
+ name: 'Mistral Small 3.1 24B Instruct (Free)',
1378
+ provider: 'openRouter'
1379
+ }];
1380
+ };
1213
1381
  const createDefaultState = () => {
1214
1382
  const defaultSessionId = 'session-1';
1215
1383
  const defaultModelId = 'test';
1384
+ const composerFontSize = 13;
1385
+ const composerLineHeight = 20;
1216
1386
  return {
1217
1387
  assetDir: '',
1388
+ composerFontFamily: 'system-ui',
1389
+ composerFontSize,
1390
+ composerHeight: composerLineHeight + 8,
1391
+ composerLineHeight,
1218
1392
  composerValue: '',
1219
1393
  errorCount: 0,
1220
1394
  focus: 'composer',
@@ -1225,38 +1399,18 @@ const createDefaultState = () => {
1225
1399
  inputSource: 'script',
1226
1400
  lastSubmittedSessionId: '',
1227
1401
  listItemHeight: 40,
1228
- models: [{
1229
- id: defaultModelId,
1230
- name: 'test',
1231
- provider: 'test'
1232
- }, {
1233
- id: 'codex-5.3',
1234
- name: 'Codex 5.3',
1235
- provider: 'openRouter'
1236
- }, {
1237
- id: 'claude-code',
1238
- name: 'Claude Code',
1239
- provider: 'openRouter'
1240
- }, {
1241
- id: 'claude-haiku',
1242
- name: 'Claude Haiku',
1243
- provider: 'openRouter'
1244
- }, {
1245
- id: 'openRouter/openai/gpt-4o-mini',
1246
- name: 'GPT-4o Mini',
1247
- provider: 'openRouter'
1248
- }, {
1249
- id: 'openRouter/anthropic/claude-3.5-haiku',
1250
- name: 'Claude 3.5 Haiku',
1251
- provider: 'openRouter'
1252
- }, {
1253
- id: 'openRouter/google/gemini-2.0-flash-001',
1254
- name: 'Gemini 2.0 Flash',
1255
- provider: 'openRouter'
1256
- }],
1402
+ mockApiCommandId: '',
1403
+ models: getDefaultModels(),
1257
1404
  nextMessageId: 1,
1405
+ openApiApiBaseUrl: 'https://api.openai.com/v1',
1406
+ openApiApiKey: '',
1407
+ openApiApiKeyInput: '',
1408
+ openApiApiKeysSettingsUrl: 'https://platform.openai.com/api-keys',
1258
1409
  openRouterApiBaseUrl: 'https://openrouter.ai/api/v1',
1259
1410
  openRouterApiKey: '',
1411
+ openRouterApiKeyInput: '',
1412
+ openRouterApiKeysSettingsUrl: 'https://openrouter.ai/settings/keys',
1413
+ openRouterApiKeyState: 'idle',
1260
1414
  platform: 0,
1261
1415
  renamingSessionId: '',
1262
1416
  selectedModelId: defaultModelId,
@@ -1264,12 +1418,13 @@ const createDefaultState = () => {
1264
1418
  sessions: [{
1265
1419
  id: defaultSessionId,
1266
1420
  messages: [],
1267
- title: defaultSessionTitle
1421
+ title: defaultSessionTitle()
1268
1422
  }],
1269
1423
  tokensMax: 0,
1270
1424
  tokensUsed: 0,
1271
1425
  uid: 0,
1272
1426
  usageOverviewEnabled: false,
1427
+ useMockApi: false,
1273
1428
  viewMode: 'list',
1274
1429
  warningCount: 0,
1275
1430
  width: 0,
@@ -1369,12 +1524,15 @@ const SetPatches = 'Viewlet.setPatches';
1369
1524
 
1370
1525
  const FocusChatInput = 8000;
1371
1526
 
1372
- const Button$1 = 'button';
1527
+ const Button$2 = 'button';
1373
1528
 
1374
- const Button = 1;
1529
+ const Button$1 = 1;
1375
1530
  const Div = 4;
1531
+ const Input = 6;
1376
1532
  const Span = 8;
1377
1533
  const Text = 12;
1534
+ const Li = 48;
1535
+ const Ol = 49;
1378
1536
  const P = 50;
1379
1537
  const TextArea = 62;
1380
1538
  const Select$1 = 63;
@@ -1697,6 +1855,10 @@ const getKeyBindings = () => {
1697
1855
  }];
1698
1856
  };
1699
1857
 
1858
+ const getSelectedSessionId = state => {
1859
+ return state.selectedSessionId;
1860
+ };
1861
+
1700
1862
  const getListIndex = (state, eventX, eventY) => {
1701
1863
  const {
1702
1864
  headerHeight,
@@ -1734,96 +1896,143 @@ const handleChatListContextMenu = async (state, eventX, eventY) => {
1734
1896
  return state;
1735
1897
  };
1736
1898
 
1737
- const LVCE_CHAT_SESSIONS_DB_NAME = 'lvce-chat-view-sessions';
1738
- const LVCE_CHAT_SESSIONS_DB_VERSION = 1;
1739
- const LVCE_CHAT_SESSIONS_STORE = 'chat-sessions';
1740
1899
  const toError = error => {
1741
1900
  if (error instanceof Error) {
1742
1901
  return error;
1743
1902
  }
1744
1903
  return new Error('IndexedDB request failed');
1745
1904
  };
1905
+
1746
1906
  const requestToPromise = async createRequest => {
1747
1907
  const request = createRequest();
1748
- return new Promise((resolve, reject) => {
1749
- request.addEventListener('success', () => {
1750
- resolve(request.result);
1751
- });
1752
- request.addEventListener('error', () => {
1753
- reject(toError(request.error));
1754
- });
1908
+ const {
1909
+ promise,
1910
+ reject,
1911
+ resolve
1912
+ } = Promise.withResolvers();
1913
+ request.addEventListener('success', () => {
1914
+ resolve(request.result);
1755
1915
  });
1756
- };
1757
- const transactionToPromise = async createTransaction => {
1758
- const transaction = createTransaction();
1759
- return new Promise((resolve, reject) => {
1760
- transaction.addEventListener('complete', () => {
1761
- resolve();
1762
- });
1763
- transaction.addEventListener('error', () => {
1764
- reject(toError(transaction.error));
1765
- });
1766
- transaction.addEventListener('abort', () => {
1767
- reject(toError(transaction.error));
1768
- });
1916
+ request.addEventListener('error', () => {
1917
+ reject(toError(request.error));
1769
1918
  });
1919
+ return promise;
1770
1920
  };
1771
- const openSessionsDatabase = async () => {
1772
- const request = indexedDB.open(LVCE_CHAT_SESSIONS_DB_NAME, LVCE_CHAT_SESSIONS_DB_VERSION);
1921
+
1922
+ const openSessionsDatabase = async (databaseName, databaseVersion, storeName) => {
1923
+ const request = indexedDB.open(databaseName, databaseVersion);
1773
1924
  request.addEventListener('upgradeneeded', () => {
1774
1925
  const database = request.result;
1775
- if (!database.objectStoreNames.contains(LVCE_CHAT_SESSIONS_STORE)) {
1776
- database.createObjectStore(LVCE_CHAT_SESSIONS_STORE, {
1926
+ if (!database.objectStoreNames.contains(storeName)) {
1927
+ database.createObjectStore(storeName, {
1777
1928
  keyPath: 'id'
1778
1929
  });
1779
1930
  }
1780
1931
  });
1781
1932
  return requestToPromise(() => request);
1782
1933
  };
1934
+
1935
+ const getDatabase = async (getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName) => {
1936
+ const existingDatabasePromise = getDatabasePromise();
1937
+ if (existingDatabasePromise) {
1938
+ return existingDatabasePromise;
1939
+ }
1940
+ const nextDatabasePromise = openSessionsDatabase(databaseName, databaseVersion, storeName);
1941
+ setDatabasePromise(nextDatabasePromise);
1942
+ return nextDatabasePromise;
1943
+ };
1944
+
1945
+ const transactionToPromise = async createTransaction => {
1946
+ const transaction = createTransaction();
1947
+ const {
1948
+ promise,
1949
+ reject,
1950
+ resolve
1951
+ } = Promise.withResolvers();
1952
+ transaction.addEventListener('complete', () => {
1953
+ resolve();
1954
+ });
1955
+ transaction.addEventListener('error', () => {
1956
+ reject(toError(transaction.error));
1957
+ });
1958
+ transaction.addEventListener('abort', () => {
1959
+ reject(toError(transaction.error));
1960
+ });
1961
+ return promise;
1962
+ };
1963
+
1964
+ const clear = async (getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName) => {
1965
+ const database = await getDatabase(getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName);
1966
+ const transaction = database.transaction(storeName, 'readwrite');
1967
+ const createTransaction = () => transaction;
1968
+ const store = transaction.objectStore(storeName);
1969
+ store.clear();
1970
+ await transactionToPromise(createTransaction);
1971
+ };
1972
+
1973
+ const deleteSession$1 = async (getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName, id) => {
1974
+ const database = await getDatabase(getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName);
1975
+ const transaction = database.transaction(storeName, 'readwrite');
1976
+ const createTransaction = () => transaction;
1977
+ const store = transaction.objectStore(storeName);
1978
+ store.delete(id);
1979
+ await transactionToPromise(createTransaction);
1980
+ };
1981
+
1982
+ const getSession = async (getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName, id) => {
1983
+ const database = await getDatabase(getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName);
1984
+ const transaction = database.transaction(storeName, 'readonly');
1985
+ const store = transaction.objectStore(storeName);
1986
+ const result = await requestToPromise(() => store.get(id));
1987
+ return result;
1988
+ };
1989
+
1990
+ const listSessions = async (getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName) => {
1991
+ const database = await getDatabase(getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName);
1992
+ const transaction = database.transaction(storeName, 'readonly');
1993
+ const store = transaction.objectStore(storeName);
1994
+ const result = await requestToPromise(() => store.getAll());
1995
+ return result;
1996
+ };
1997
+
1998
+ const setSession = async (getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName, session) => {
1999
+ const database = await getDatabase(getDatabasePromise, setDatabasePromise, databaseName, databaseVersion, storeName);
2000
+ const transaction = database.transaction(storeName, 'readwrite');
2001
+ const createTransaction = () => transaction;
2002
+ const store = transaction.objectStore(storeName);
2003
+ store.put(session);
2004
+ await transactionToPromise(createTransaction);
2005
+ };
2006
+
1783
2007
  class IndexedDbChatSessionStorage {
1784
- async getDatabase() {
1785
- if (!this.databasePromise) {
1786
- this.databasePromise = openSessionsDatabase();
1787
- }
1788
- return this.databasePromise;
2008
+ constructor(options = {}) {
2009
+ this.state = {
2010
+ databaseName: options.databaseName || 'lvce-chat-view-sessions',
2011
+ databasePromise: undefined,
2012
+ databaseVersion: options.databaseVersion || 1,
2013
+ storeName: options.storeName || 'chat-sessions'
2014
+ };
1789
2015
  }
2016
+ getDatabasePromise = () => {
2017
+ return this.state.databasePromise;
2018
+ };
2019
+ setDatabasePromise = databasePromise => {
2020
+ this.state.databasePromise = databasePromise;
2021
+ };
1790
2022
  async clear() {
1791
- const database = await this.getDatabase();
1792
- const transaction = database.transaction(LVCE_CHAT_SESSIONS_STORE, 'readwrite');
1793
- const createTransaction = () => transaction;
1794
- const store = transaction.objectStore(LVCE_CHAT_SESSIONS_STORE);
1795
- store.clear();
1796
- await transactionToPromise(createTransaction);
2023
+ return clear(this.getDatabasePromise, this.setDatabasePromise, this.state.databaseName, this.state.databaseVersion, this.state.storeName);
1797
2024
  }
1798
2025
  async deleteSession(id) {
1799
- const database = await this.getDatabase();
1800
- const transaction = database.transaction(LVCE_CHAT_SESSIONS_STORE, 'readwrite');
1801
- const createTransaction = () => transaction;
1802
- const store = transaction.objectStore(LVCE_CHAT_SESSIONS_STORE);
1803
- store.delete(id);
1804
- await transactionToPromise(createTransaction);
2026
+ return deleteSession$1(this.getDatabasePromise, this.setDatabasePromise, this.state.databaseName, this.state.databaseVersion, this.state.storeName, id);
1805
2027
  }
1806
2028
  async getSession(id) {
1807
- const database = await this.getDatabase();
1808
- const transaction = database.transaction(LVCE_CHAT_SESSIONS_STORE, 'readonly');
1809
- const store = transaction.objectStore(LVCE_CHAT_SESSIONS_STORE);
1810
- const result = await requestToPromise(() => store.get(id));
1811
- return result;
2029
+ return getSession(this.getDatabasePromise, this.setDatabasePromise, this.state.databaseName, this.state.databaseVersion, this.state.storeName, id);
1812
2030
  }
1813
2031
  async listSessions() {
1814
- const database = await this.getDatabase();
1815
- const transaction = database.transaction(LVCE_CHAT_SESSIONS_STORE, 'readonly');
1816
- const store = transaction.objectStore(LVCE_CHAT_SESSIONS_STORE);
1817
- const result = await requestToPromise(() => store.getAll());
1818
- return result;
2032
+ return listSessions(this.getDatabasePromise, this.setDatabasePromise, this.state.databaseName, this.state.databaseVersion, this.state.storeName);
1819
2033
  }
1820
2034
  async setSession(session) {
1821
- const database = await this.getDatabase();
1822
- const transaction = database.transaction(LVCE_CHAT_SESSIONS_STORE, 'readwrite');
1823
- const createTransaction = () => transaction;
1824
- const store = transaction.objectStore(LVCE_CHAT_SESSIONS_STORE);
1825
- store.put(session);
1826
- await transactionToPromise(createTransaction);
2035
+ return setSession(this.getDatabasePromise, this.setDatabasePromise, this.state.databaseName, this.state.databaseVersion, this.state.storeName, session);
1827
2036
  }
1828
2037
  }
1829
2038
 
@@ -1956,113 +2165,895 @@ const deleteSession = async (state, id) => {
1956
2165
  };
1957
2166
  };
1958
2167
 
1959
- const focusInput = state => {
2168
+ const handleClickOpenApiApiKeySettings = async state => {
2169
+ await openExternal(state.openApiApiKeysSettingsUrl);
2170
+ return state;
2171
+ };
2172
+
2173
+ const handleClickOpenRouterApiKeySettings = async state => {
2174
+ await openExternal(state.openRouterApiKeysSettingsUrl);
2175
+ return state;
2176
+ };
2177
+
2178
+ const openApiApiKeyRequiredMessage = 'OpenAI API key is not configured. Enter your OpenAI API key below and click Save.';
2179
+ const openApiRequestFailedMessage = 'OpenAI request failed.';
2180
+ const openRouterApiKeyRequiredMessage = 'OpenRouter API key is not configured. Enter your OpenRouter API key below and click Save.';
2181
+ const openRouterRequestFailedMessage = 'OpenRouter request failed. Possible reasons:';
2182
+ const openRouterTooManyRequestsMessage = 'OpenRouter rate limit reached (429). Please try again soon. Helpful tips:';
2183
+ const openRouterRequestFailureReasons = ['ContentSecurityPolicyViolation: Check DevTools for details.', 'OpenRouter server offline: Check DevTools for details.', 'Check your internet connection.'];
2184
+ const openRouterTooManyRequestsReasons = ['Wait a short time and retry your request.', 'Reduce request frequency to avoid rate limits.', 'Use a different model if this one is saturated.'];
2185
+
2186
+ const delay = async ms => {
2187
+ await new Promise(resolve => setTimeout(resolve, ms));
2188
+ };
2189
+
2190
+ const getMockAiResponse = async userMessage => {
2191
+ await delay(800);
2192
+ return `Mock AI response: I received "${userMessage}".`;
2193
+ };
2194
+
2195
+ const activateByEvent = (event, assetDir, platform) => {
2196
+ // @ts-ignore
2197
+ return activateByEvent$1(event, assetDir, platform);
2198
+ };
2199
+
2200
+ const executeProvider = async ({
2201
+ assetDir,
2202
+ event,
2203
+ method,
2204
+ noProviderFoundMessage,
2205
+ params,
2206
+ platform
2207
+ }) => {
2208
+ await activateByEvent(event, assetDir, platform);
2209
+ // @ts-ignore
2210
+ const result = invoke$1(method, ...params);
2211
+ return result;
2212
+ };
2213
+
2214
+ const CommandExecute = 'ExtensionHostCommand.executeCommand';
2215
+ const FileSystemWriteFile = 'ExtensionHostFileSystem.writeFile';
2216
+
2217
+ const normalizeLimitInfo = value => {
2218
+ if (!value || typeof value !== 'object') {
2219
+ return undefined;
2220
+ }
2221
+ const limitRemaining = Reflect.get(value, 'limitRemaining');
2222
+ const limitReset = Reflect.get(value, 'limitReset');
2223
+ const retryAfter = Reflect.get(value, 'retryAfter');
2224
+ const usage = Reflect.get(value, 'usage');
2225
+ const usageDaily = Reflect.get(value, 'usageDaily');
2226
+ const normalized = {
2227
+ limitRemaining: typeof limitRemaining === 'number' || limitRemaining === null ? limitRemaining : undefined,
2228
+ limitReset: typeof limitReset === 'string' || limitReset === null ? limitReset : undefined,
2229
+ retryAfter: typeof retryAfter === 'string' || retryAfter === null ? retryAfter : undefined,
2230
+ usage: typeof usage === 'number' ? usage : undefined,
2231
+ usageDaily: typeof usageDaily === 'number' ? usageDaily : undefined
2232
+ };
2233
+ const hasDetails = normalized.limitRemaining !== undefined || normalized.limitReset !== undefined || normalized.retryAfter !== undefined || normalized.usage !== undefined || normalized.usageDaily !== undefined;
2234
+ return hasDetails ? normalized : undefined;
2235
+ };
2236
+
2237
+ const normalizeMockResult = value => {
2238
+ if (typeof value === 'string') {
2239
+ return {
2240
+ text: value,
2241
+ type: 'success'
2242
+ };
2243
+ }
2244
+ if (!value || typeof value !== 'object') {
2245
+ return {
2246
+ details: 'request-failed',
2247
+ type: 'error'
2248
+ };
2249
+ }
2250
+ const type = Reflect.get(value, 'type');
2251
+ if (type === 'success') {
2252
+ const text = Reflect.get(value, 'text');
2253
+ if (typeof text === 'string') {
2254
+ return {
2255
+ text,
2256
+ type: 'success'
2257
+ };
2258
+ }
2259
+ return {
2260
+ details: 'request-failed',
2261
+ type: 'error'
2262
+ };
2263
+ }
2264
+ if (type === 'error') {
2265
+ const details = Reflect.get(value, 'details');
2266
+ if (details === 'request-failed' || details === 'too-many-requests' || details === 'http-error') {
2267
+ const rawMessage = Reflect.get(value, 'rawMessage');
2268
+ const statusCode = Reflect.get(value, 'statusCode');
2269
+ return {
2270
+ details,
2271
+ limitInfo: normalizeLimitInfo(Reflect.get(value, 'limitInfo')),
2272
+ rawMessage: typeof rawMessage === 'string' ? rawMessage : undefined,
2273
+ statusCode: typeof statusCode === 'number' ? statusCode : undefined,
2274
+ type: 'error'
2275
+ };
2276
+ }
2277
+ }
2278
+ const text = Reflect.get(value, 'text');
2279
+ if (typeof text === 'string') {
2280
+ return {
2281
+ text,
2282
+ type: 'success'
2283
+ };
2284
+ }
2285
+ return {
2286
+ details: 'request-failed',
2287
+ type: 'error'
2288
+ };
2289
+ };
2290
+
2291
+ const getMockOpenRouterAssistantText = async (messages, modelId, openRouterApiBaseUrl, openRouterApiKey, mockApiCommandId, assetDir, platform) => {
2292
+ if (!mockApiCommandId) {
2293
+ return {
2294
+ details: 'request-failed',
2295
+ type: 'error'
2296
+ };
2297
+ }
2298
+ try {
2299
+ const result = await executeProvider({
2300
+ assetDir,
2301
+ event: `onCommand:${mockApiCommandId}`,
2302
+ method: CommandExecute,
2303
+ noProviderFoundMessage: 'No mock api command found',
2304
+ params: [mockApiCommandId, {
2305
+ messages,
2306
+ modelId,
2307
+ openRouterApiBaseUrl,
2308
+ openRouterApiKey
2309
+ }],
2310
+ platform
2311
+ });
2312
+ return normalizeMockResult(result);
2313
+ } catch {
2314
+ return {
2315
+ details: 'request-failed',
2316
+ type: 'error'
2317
+ };
2318
+ }
2319
+ };
2320
+
2321
+ const OnFileSystem = 'onFileSystem';
2322
+
2323
+ const isPathTraversalAttempt = path => {
2324
+ if (!path) {
2325
+ return false;
2326
+ }
2327
+ if (path.startsWith('/') || path.startsWith('\\')) {
2328
+ return true;
2329
+ }
2330
+ if (path.startsWith('file://')) {
2331
+ return true;
2332
+ }
2333
+ if (/^[a-zA-Z]:[\\/]/.test(path)) {
2334
+ return true;
2335
+ }
2336
+ const segments = path.split(/[\\/]/);
2337
+ return segments.includes('..');
2338
+ };
2339
+ const normalizeRelativePath = path => {
2340
+ const segments = path.split(/[\\/]/).filter(segment => segment && segment !== '.');
2341
+ if (segments.length === 0) {
2342
+ return '.';
2343
+ }
2344
+ return segments.join('/');
2345
+ };
2346
+ const parseToolArguments = rawArguments => {
2347
+ if (typeof rawArguments !== 'string') {
2348
+ return {};
2349
+ }
2350
+ try {
2351
+ const parsed = JSON.parse(rawArguments);
2352
+ if (!parsed || typeof parsed !== 'object') {
2353
+ return {};
2354
+ }
2355
+ return parsed;
2356
+ } catch {
2357
+ return {};
2358
+ }
2359
+ };
2360
+ const executeFileSystemCommand = async (method, params, options) => {
2361
+ return executeProvider({
2362
+ assetDir: options.assetDir,
2363
+ event: OnFileSystem,
2364
+ method,
2365
+ noProviderFoundMessage: 'No file system provider found',
2366
+ params,
2367
+ platform: options.platform
2368
+ });
2369
+ };
2370
+ const getBasicChatTools = () => {
2371
+ return [{
2372
+ function: {
2373
+ description: 'Read UTF-8 text content from a file inside the currently open workspace folder.',
2374
+ name: 'read_file',
2375
+ parameters: {
2376
+ additionalProperties: false,
2377
+ properties: {
2378
+ path: {
2379
+ description: 'Relative file path within the workspace (for example: src/index.ts).',
2380
+ type: 'string'
2381
+ }
2382
+ },
2383
+ required: ['path'],
2384
+ type: 'object'
2385
+ }
2386
+ },
2387
+ type: 'function'
2388
+ }, {
2389
+ function: {
2390
+ description: 'Write UTF-8 text content to a file inside the currently open workspace folder.',
2391
+ name: 'write_file',
2392
+ parameters: {
2393
+ additionalProperties: false,
2394
+ properties: {
2395
+ content: {
2396
+ description: 'New UTF-8 text content to write to the file.',
2397
+ type: 'string'
2398
+ },
2399
+ path: {
2400
+ description: 'Relative file path within the workspace (for example: src/index.ts).',
2401
+ type: 'string'
2402
+ }
2403
+ },
2404
+ required: ['path', 'content'],
2405
+ type: 'object'
2406
+ }
2407
+ },
2408
+ type: 'function'
2409
+ }, {
2410
+ function: {
2411
+ description: 'List direct children (files and folders) for a folder inside the currently open workspace folder.',
2412
+ name: 'list_files',
2413
+ parameters: {
2414
+ additionalProperties: false,
2415
+ properties: {
2416
+ path: {
2417
+ description: 'Relative folder path within the workspace. Use "." for the workspace root.',
2418
+ type: 'string'
2419
+ }
2420
+ },
2421
+ type: 'object'
2422
+ }
2423
+ },
2424
+ type: 'function'
2425
+ }];
2426
+ };
2427
+ const executeChatTool = async (name, rawArguments, options) => {
2428
+ const args = parseToolArguments(rawArguments);
2429
+ if (name === 'read_file') {
2430
+ const filePath = typeof args.path === 'string' ? args.path : '';
2431
+ if (!filePath || isPathTraversalAttempt(filePath)) {
2432
+ return JSON.stringify({
2433
+ error: 'Access denied: path must be relative and stay within the open workspace folder.'
2434
+ });
2435
+ }
2436
+ const normalizedPath = normalizeRelativePath(filePath);
2437
+ try {
2438
+ const content = await readFile(normalizedPath);
2439
+ return JSON.stringify({
2440
+ content,
2441
+ path: normalizedPath
2442
+ });
2443
+ } catch (error) {
2444
+ return JSON.stringify({
2445
+ error: String(error),
2446
+ path: normalizedPath
2447
+ });
2448
+ }
2449
+ }
2450
+ if (name === 'write_file') {
2451
+ const filePath = typeof args.path === 'string' ? args.path : '';
2452
+ const content = typeof args.content === 'string' ? args.content : '';
2453
+ if (!filePath || isPathTraversalAttempt(filePath)) {
2454
+ return JSON.stringify({
2455
+ error: 'Access denied: path must be relative and stay within the open workspace folder.'
2456
+ });
2457
+ }
2458
+ const normalizedPath = normalizeRelativePath(filePath);
2459
+ try {
2460
+ await executeFileSystemCommand(FileSystemWriteFile, ['file', normalizedPath, content], options);
2461
+ return JSON.stringify({
2462
+ ok: true,
2463
+ path: normalizedPath
2464
+ });
2465
+ } catch (error) {
2466
+ return JSON.stringify({
2467
+ error: String(error),
2468
+ path: normalizedPath
2469
+ });
2470
+ }
2471
+ }
2472
+ if (name === 'list_files') {
2473
+ const folderPath = typeof args.path === 'string' && args.path ? args.path : '.';
2474
+ if (isPathTraversalAttempt(folderPath)) {
2475
+ return JSON.stringify({
2476
+ error: 'Access denied: path must be relative and stay within the open workspace folder.'
2477
+ });
2478
+ }
2479
+ const normalizedPath = normalizeRelativePath(folderPath);
2480
+ try {
2481
+ const entries = await invoke('FileSystem.readDirWithFileTypes', normalizedPath);
2482
+ return JSON.stringify({
2483
+ entries,
2484
+ path: normalizedPath
2485
+ });
2486
+ } catch (error) {
2487
+ return JSON.stringify({
2488
+ error: String(error),
2489
+ path: normalizedPath
2490
+ });
2491
+ }
2492
+ }
2493
+ return JSON.stringify({
2494
+ error: `Unknown tool: ${name}`
2495
+ });
2496
+ };
2497
+
2498
+ const getOpenApiApiEndpoint = openApiApiBaseUrl => {
2499
+ return `${openApiApiBaseUrl}/chat/completions`;
2500
+ };
2501
+
2502
+ const getTextContent = content => {
2503
+ if (typeof content === 'string') {
2504
+ return content;
2505
+ }
2506
+ if (!Array.isArray(content)) {
2507
+ return '';
2508
+ }
2509
+ const textParts = [];
2510
+ for (const part of content) {
2511
+ if (!part || typeof part !== 'object') {
2512
+ continue;
2513
+ }
2514
+ const maybeType = Reflect.get(part, 'type');
2515
+ const maybeText = Reflect.get(part, 'text');
2516
+ if (maybeType === 'text' && typeof maybeText === 'string') {
2517
+ textParts.push(maybeText);
2518
+ }
2519
+ }
2520
+ return textParts.join('\n');
2521
+ };
2522
+
2523
+ const getOpenApiErrorDetails = async response => {
2524
+ let parsed;
2525
+ try {
2526
+ parsed = await response.json();
2527
+ } catch {
2528
+ return {};
2529
+ }
2530
+ if (!parsed || typeof parsed !== 'object') {
2531
+ return {};
2532
+ }
2533
+ const error = Reflect.get(parsed, 'error');
2534
+ if (!error || typeof error !== 'object') {
2535
+ return {};
2536
+ }
2537
+ const errorCode = Reflect.get(error, 'code');
2538
+ const errorMessage = Reflect.get(error, 'message');
2539
+ const errorType = Reflect.get(error, 'type');
2540
+ return {
2541
+ errorCode: typeof errorCode === 'string' ? errorCode : undefined,
2542
+ errorMessage: typeof errorMessage === 'string' ? errorMessage : undefined,
2543
+ errorType: typeof errorType === 'string' ? errorType : undefined
2544
+ };
2545
+ };
2546
+ const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApiApiBaseUrl, assetDir, platform) => {
2547
+ const completionMessages = messages.map(message => ({
2548
+ content: message.text,
2549
+ role: message.role
2550
+ }));
2551
+ const tools = getBasicChatTools();
2552
+ const maxToolIterations = 4;
2553
+ for (let i = 0; i <= maxToolIterations; i++) {
2554
+ let response;
2555
+ try {
2556
+ response = await fetch(getOpenApiApiEndpoint(openApiApiBaseUrl), {
2557
+ body: JSON.stringify({
2558
+ messages: completionMessages,
2559
+ model: modelId,
2560
+ tool_choice: 'auto',
2561
+ tools
2562
+ }),
2563
+ headers: {
2564
+ Authorization: `Bearer ${openApiApiKey}`,
2565
+ 'Content-Type': 'application/json'
2566
+ },
2567
+ method: 'POST'
2568
+ });
2569
+ } catch {
2570
+ return {
2571
+ details: 'request-failed',
2572
+ type: 'error'
2573
+ };
2574
+ }
2575
+ if (!response.ok) {
2576
+ const {
2577
+ errorCode,
2578
+ errorMessage,
2579
+ errorType
2580
+ } = await getOpenApiErrorDetails(response);
2581
+ return {
2582
+ details: 'http-error',
2583
+ errorCode,
2584
+ errorMessage,
2585
+ errorType,
2586
+ statusCode: response.status,
2587
+ type: 'error'
2588
+ };
2589
+ }
2590
+ let parsed;
2591
+ try {
2592
+ parsed = await response.json();
2593
+ } catch {
2594
+ return {
2595
+ details: 'request-failed',
2596
+ type: 'error'
2597
+ };
2598
+ }
2599
+ if (!parsed || typeof parsed !== 'object') {
2600
+ return {
2601
+ text: '',
2602
+ type: 'success'
2603
+ };
2604
+ }
2605
+ const choices = Reflect.get(parsed, 'choices');
2606
+ if (!Array.isArray(choices)) {
2607
+ return {
2608
+ text: '',
2609
+ type: 'success'
2610
+ };
2611
+ }
2612
+ const firstChoice = choices[0];
2613
+ if (!firstChoice || typeof firstChoice !== 'object') {
2614
+ return {
2615
+ text: '',
2616
+ type: 'success'
2617
+ };
2618
+ }
2619
+ const message = Reflect.get(firstChoice, 'message');
2620
+ if (!message || typeof message !== 'object') {
2621
+ return {
2622
+ text: '',
2623
+ type: 'success'
2624
+ };
2625
+ }
2626
+ const toolCalls = Reflect.get(message, 'tool_calls');
2627
+ if (Array.isArray(toolCalls) && toolCalls.length > 0) {
2628
+ completionMessages.push(message);
2629
+ for (const toolCall of toolCalls) {
2630
+ if (!toolCall || typeof toolCall !== 'object') {
2631
+ continue;
2632
+ }
2633
+ const id = Reflect.get(toolCall, 'id');
2634
+ const toolFunction = Reflect.get(toolCall, 'function');
2635
+ if (typeof id !== 'string' || !toolFunction || typeof toolFunction !== 'object') {
2636
+ continue;
2637
+ }
2638
+ const name = Reflect.get(toolFunction, 'name');
2639
+ const rawArguments = Reflect.get(toolFunction, 'arguments');
2640
+ const content = typeof name === 'string' ? await executeChatTool(name, rawArguments, {
2641
+ assetDir,
2642
+ platform
2643
+ }) : '{}';
2644
+ completionMessages.push({
2645
+ content,
2646
+ role: 'tool',
2647
+ tool_call_id: id
2648
+ });
2649
+ }
2650
+ continue;
2651
+ }
2652
+ const content = Reflect.get(message, 'content');
2653
+ return {
2654
+ text: getTextContent(content),
2655
+ type: 'success'
2656
+ };
2657
+ }
2658
+ return {
2659
+ details: 'request-failed',
2660
+ type: 'error'
2661
+ };
2662
+ };
2663
+
2664
+ const getOpenApiErrorMessage = errorResult => {
2665
+ switch (errorResult.details) {
2666
+ case 'http-error':
2667
+ {
2668
+ const errorMessage = errorResult.errorMessage?.trim();
2669
+ const hasErrorCode = typeof errorResult.errorCode === 'string' && errorResult.errorCode.length > 0;
2670
+ const hasErrorType = typeof errorResult.errorType === 'string' && errorResult.errorType.length > 0;
2671
+ if (errorResult.statusCode === 429) {
2672
+ let prefix = 'OpenAI rate limit exceeded (429)';
2673
+ if (hasErrorCode) {
2674
+ prefix = `OpenAI rate limit exceeded (429: ${errorResult.errorCode})`;
2675
+ }
2676
+ if (hasErrorType) {
2677
+ prefix += ` [${errorResult.errorType}]`;
2678
+ }
2679
+ prefix += '.';
2680
+ if (!errorMessage) {
2681
+ return prefix;
2682
+ }
2683
+ return `${prefix} ${errorMessage}`;
2684
+ }
2685
+ if (typeof errorResult.statusCode === 'number') {
2686
+ let prefix = `OpenAI request failed (status ${errorResult.statusCode})`;
2687
+ if (hasErrorCode) {
2688
+ prefix += `: ${errorResult.errorCode}`;
2689
+ }
2690
+ if (hasErrorType) {
2691
+ prefix += ` [${errorResult.errorType}]`;
2692
+ }
2693
+ prefix += '.';
2694
+ if (!errorMessage) {
2695
+ return prefix;
2696
+ }
2697
+ return `${prefix} ${errorMessage}`;
2698
+ }
2699
+ if (errorMessage) {
2700
+ return `OpenAI request failed. ${errorMessage}`;
2701
+ }
2702
+ return openApiRequestFailedMessage;
2703
+ }
2704
+ case 'request-failed':
2705
+ return openApiRequestFailedMessage;
2706
+ }
2707
+ };
2708
+
2709
+ const getOpenApiModelId = selectedModelId => {
2710
+ const openApiPrefix = 'openapi/';
2711
+ const openAiPrefix = 'openai/';
2712
+ const normalizedModelId = selectedModelId.toLowerCase();
2713
+ if (normalizedModelId.startsWith(openApiPrefix)) {
2714
+ return selectedModelId.slice(openApiPrefix.length);
2715
+ }
2716
+ if (normalizedModelId.startsWith(openAiPrefix)) {
2717
+ return selectedModelId.slice(openAiPrefix.length);
2718
+ }
2719
+ return selectedModelId;
2720
+ };
2721
+
2722
+ const getOpenRouterApiEndpoint = openRouterApiBaseUrl => {
2723
+ const trimmedBaseUrl = openRouterApiBaseUrl.replace(/\/+$/, '');
2724
+ return `${trimmedBaseUrl}/chat/completions`;
2725
+ };
2726
+
2727
+ const getOpenRouterKeyEndpoint = openRouterApiBaseUrl => {
2728
+ const trimmedBaseUrl = openRouterApiBaseUrl.replace(/\/+$/, '');
2729
+ return `${trimmedBaseUrl}/auth/key`;
2730
+ };
2731
+
2732
+ const getOpenRouterRaw429Message = async response => {
2733
+ let parsed;
2734
+ try {
2735
+ parsed = await response.json();
2736
+ } catch {
2737
+ return undefined;
2738
+ }
2739
+ if (!parsed || typeof parsed !== 'object') {
2740
+ return undefined;
2741
+ }
2742
+ const error = Reflect.get(parsed, 'error');
2743
+ if (!error || typeof error !== 'object') {
2744
+ return undefined;
2745
+ }
2746
+ const metadata = Reflect.get(error, 'metadata');
2747
+ if (!metadata || typeof metadata !== 'object') {
2748
+ return undefined;
2749
+ }
2750
+ const raw = Reflect.get(metadata, 'raw');
2751
+ if (typeof raw !== 'string' || !raw) {
2752
+ return undefined;
2753
+ }
2754
+ return raw;
2755
+ };
2756
+ const getOpenRouterLimitInfo = async (openRouterApiKey, openRouterApiBaseUrl) => {
2757
+ let response;
2758
+ try {
2759
+ response = await fetch(getOpenRouterKeyEndpoint(openRouterApiBaseUrl), {
2760
+ headers: {
2761
+ Authorization: `Bearer ${openRouterApiKey}`
2762
+ },
2763
+ method: 'GET'
2764
+ });
2765
+ } catch {
2766
+ return undefined;
2767
+ }
2768
+ if (!response.ok) {
2769
+ return undefined;
2770
+ }
2771
+ let parsed;
2772
+ try {
2773
+ parsed = await response.json();
2774
+ } catch {
2775
+ return undefined;
2776
+ }
2777
+ if (!parsed || typeof parsed !== 'object') {
2778
+ return undefined;
2779
+ }
2780
+ const data = Reflect.get(parsed, 'data');
2781
+ if (!data || typeof data !== 'object') {
2782
+ return undefined;
2783
+ }
2784
+ const limitRemaining = Reflect.get(data, 'limit_remaining');
2785
+ const limitReset = Reflect.get(data, 'limit_reset');
2786
+ const usage = Reflect.get(data, 'usage');
2787
+ const usageDaily = Reflect.get(data, 'usage_daily');
2788
+ const normalizedLimitInfo = {
2789
+ limitRemaining: typeof limitRemaining === 'number' || limitRemaining === null ? limitRemaining : undefined,
2790
+ limitReset: typeof limitReset === 'string' || limitReset === null ? limitReset : undefined,
2791
+ usage: typeof usage === 'number' ? usage : undefined,
2792
+ usageDaily: typeof usageDaily === 'number' ? usageDaily : undefined
2793
+ };
2794
+ const hasLimitInfo = normalizedLimitInfo.limitRemaining !== undefined || normalizedLimitInfo.limitReset !== undefined || normalizedLimitInfo.usage !== undefined || normalizedLimitInfo.usageDaily !== undefined;
2795
+ if (!hasLimitInfo) {
2796
+ return undefined;
2797
+ }
2798
+ return normalizedLimitInfo;
2799
+ };
2800
+ const getOpenRouterAssistantText = async (messages, modelId, openRouterApiKey, openRouterApiBaseUrl, assetDir, platform) => {
2801
+ const completionMessages = messages.map(message => ({
2802
+ content: message.text,
2803
+ role: message.role
2804
+ }));
2805
+ const tools = getBasicChatTools();
2806
+ const maxToolIterations = 4;
2807
+ for (let i = 0; i <= maxToolIterations; i++) {
2808
+ let response;
2809
+ try {
2810
+ response = await fetch(getOpenRouterApiEndpoint(openRouterApiBaseUrl), {
2811
+ body: JSON.stringify({
2812
+ messages: completionMessages,
2813
+ model: modelId,
2814
+ tool_choice: 'auto',
2815
+ tools
2816
+ }),
2817
+ headers: {
2818
+ Authorization: `Bearer ${openRouterApiKey}`,
2819
+ 'Content-Type': 'application/json'
2820
+ },
2821
+ method: 'POST'
2822
+ });
2823
+ } catch {
2824
+ return {
2825
+ details: 'request-failed',
2826
+ type: 'error'
2827
+ };
2828
+ }
2829
+ if (!response.ok) {
2830
+ if (response.status === 429) {
2831
+ const retryAfter = response.headers?.get?.('retry-after') ?? null;
2832
+ const rawMessage = await getOpenRouterRaw429Message(response);
2833
+ const limitInfo = await getOpenRouterLimitInfo(openRouterApiKey, openRouterApiBaseUrl);
2834
+ return {
2835
+ details: 'too-many-requests',
2836
+ limitInfo: limitInfo || retryAfter ? {
2837
+ ...limitInfo,
2838
+ retryAfter
2839
+ } : undefined,
2840
+ rawMessage,
2841
+ statusCode: 429,
2842
+ type: 'error'
2843
+ };
2844
+ }
2845
+ return {
2846
+ details: 'http-error',
2847
+ statusCode: response.status,
2848
+ type: 'error'
2849
+ };
2850
+ }
2851
+ let parsed;
2852
+ try {
2853
+ parsed = await response.json();
2854
+ } catch {
2855
+ return {
2856
+ details: 'request-failed',
2857
+ type: 'error'
2858
+ };
2859
+ }
2860
+ if (!parsed || typeof parsed !== 'object') {
2861
+ return {
2862
+ text: '',
2863
+ type: 'success'
2864
+ };
2865
+ }
2866
+ const choices = Reflect.get(parsed, 'choices');
2867
+ if (!Array.isArray(choices)) {
2868
+ return {
2869
+ text: '',
2870
+ type: 'success'
2871
+ };
2872
+ }
2873
+ const firstChoice = choices[0];
2874
+ if (!firstChoice || typeof firstChoice !== 'object') {
2875
+ return {
2876
+ text: '',
2877
+ type: 'success'
2878
+ };
2879
+ }
2880
+ const message = Reflect.get(firstChoice, 'message');
2881
+ if (!message || typeof message !== 'object') {
2882
+ return {
2883
+ text: '',
2884
+ type: 'success'
2885
+ };
2886
+ }
2887
+ const toolCalls = Reflect.get(message, 'tool_calls');
2888
+ if (Array.isArray(toolCalls) && toolCalls.length > 0) {
2889
+ completionMessages.push(message);
2890
+ for (const toolCall of toolCalls) {
2891
+ if (!toolCall || typeof toolCall !== 'object') {
2892
+ continue;
2893
+ }
2894
+ const id = Reflect.get(toolCall, 'id');
2895
+ const toolFunction = Reflect.get(toolCall, 'function');
2896
+ if (typeof id !== 'string' || !toolFunction || typeof toolFunction !== 'object') {
2897
+ continue;
2898
+ }
2899
+ const name = Reflect.get(toolFunction, 'name');
2900
+ const rawArguments = Reflect.get(toolFunction, 'arguments');
2901
+ const content = typeof name === 'string' ? await executeChatTool(name, rawArguments, {
2902
+ assetDir,
2903
+ platform
2904
+ }) : '{}';
2905
+ completionMessages.push({
2906
+ content,
2907
+ role: 'tool',
2908
+ tool_call_id: id
2909
+ });
2910
+ }
2911
+ continue;
2912
+ }
2913
+ const content = Reflect.get(message, 'content');
2914
+ return {
2915
+ text: getTextContent(content),
2916
+ type: 'success'
2917
+ };
2918
+ }
1960
2919
  return {
1961
- ...state,
1962
- focus: 'composer',
1963
- focused: true
2920
+ details: 'request-failed',
2921
+ type: 'error'
1964
2922
  };
1965
2923
  };
1966
2924
 
1967
- const delay = async ms => {
1968
- await new Promise(resolve => setTimeout(resolve, ms));
1969
- };
1970
-
1971
- const getMockAiResponse = async userMessage => {
1972
- await delay(800);
1973
- return `Mock AI response: I received "${userMessage}".`;
1974
- };
1975
-
1976
- const getTextContent = content => {
1977
- if (typeof content === 'string') {
1978
- return content;
1979
- }
1980
- if (!Array.isArray(content)) {
1981
- return '';
2925
+ const getOpenRouterTooManyRequestsMessage = errorResult => {
2926
+ const details = [];
2927
+ if (errorResult.rawMessage) {
2928
+ details.push(errorResult.rawMessage);
1982
2929
  }
1983
- const textParts = [];
1984
- for (const part of content) {
1985
- if (!part || typeof part !== 'object') {
1986
- continue;
2930
+ const {
2931
+ limitInfo
2932
+ } = errorResult;
2933
+ if (limitInfo) {
2934
+ if (limitInfo.retryAfter) {
2935
+ details.push(`Retry after: ${limitInfo.retryAfter}.`);
1987
2936
  }
1988
- const maybeType = Reflect.get(part, 'type');
1989
- const maybeText = Reflect.get(part, 'text');
1990
- if (maybeType === 'text' && typeof maybeText === 'string') {
1991
- textParts.push(maybeText);
2937
+ if (limitInfo.limitReset) {
2938
+ details.push(`Limit resets: ${limitInfo.limitReset}.`);
2939
+ }
2940
+ if (limitInfo.limitRemaining === null) {
2941
+ details.push('Credits remaining: unlimited.');
2942
+ } else if (typeof limitInfo.limitRemaining === 'number') {
2943
+ details.push(`Credits remaining: ${limitInfo.limitRemaining}.`);
2944
+ }
2945
+ if (typeof limitInfo.usageDaily === 'number') {
2946
+ details.push(`Credits used today (UTC): ${limitInfo.usageDaily}.`);
2947
+ }
2948
+ if (typeof limitInfo.usage === 'number') {
2949
+ details.push(`Credits used (all time): ${limitInfo.usage}.`);
1992
2950
  }
1993
2951
  }
1994
- return textParts.join('\n');
2952
+ if (details.length === 0) {
2953
+ return openRouterTooManyRequestsMessage;
2954
+ }
2955
+ return `${openRouterTooManyRequestsMessage} ${details.join(' ')}`;
1995
2956
  };
1996
2957
 
1997
- const defaultOpenRouterApiBaseUrl = 'https://openrouter.ai/api/v1';
1998
- const getOpenRouterApiEndpoint = openRouterApiBaseUrl => {
1999
- const trimmedBaseUrl = (openRouterApiBaseUrl || defaultOpenRouterApiBaseUrl).replace(/\/+$/, '');
2000
- return `${trimmedBaseUrl}/chat/completions`;
2001
- };
2002
- const getOpenRouterAssistantText = async (userText, modelId, openRouterApiKey, openRouterApiBaseUrl) => {
2003
- const response = await fetch(getOpenRouterApiEndpoint(openRouterApiBaseUrl), {
2004
- body: JSON.stringify({
2005
- messages: [{
2006
- content: userText,
2007
- role: 'user'
2008
- }],
2009
- model: modelId
2010
- }),
2011
- headers: {
2012
- Authorization: `Bearer ${openRouterApiKey}`,
2013
- 'Content-Type': 'application/json'
2014
- },
2015
- method: 'POST'
2016
- });
2017
- if (!response.ok) {
2018
- throw new Error(`Failed to get OpenRouter response: ${response.status}`);
2019
- }
2020
- const parsed = await response.json();
2021
- if (!parsed || typeof parsed !== 'object') {
2022
- return '';
2023
- }
2024
- const choices = Reflect.get(parsed, 'choices');
2025
- if (!Array.isArray(choices)) {
2026
- return '';
2027
- }
2028
- const firstChoice = choices[0];
2029
- if (!firstChoice || typeof firstChoice !== 'object') {
2030
- return '';
2031
- }
2032
- const message = Reflect.get(firstChoice, 'message');
2033
- if (!message || typeof message !== 'object') {
2034
- return '';
2958
+ const getOpenRouterErrorMessage = errorResult => {
2959
+ switch (errorResult.details) {
2960
+ case 'http-error':
2961
+ case 'request-failed':
2962
+ return openRouterRequestFailedMessage;
2963
+ case 'too-many-requests':
2964
+ return getOpenRouterTooManyRequestsMessage(errorResult);
2035
2965
  }
2036
- const content = Reflect.get(message, 'content');
2037
- return getTextContent(content);
2038
2966
  };
2039
2967
 
2968
+ /* eslint-disable @cspell/spellchecker */
2040
2969
  const getOpenRouterModelId = selectedModelId => {
2041
- if (selectedModelId.startsWith('openRouter/')) {
2042
- return selectedModelId.slice('openRouter/'.length);
2970
+ const openRouterPrefix = 'openrouter/';
2971
+ if (selectedModelId.toLowerCase().startsWith(openRouterPrefix)) {
2972
+ return selectedModelId.slice(openRouterPrefix.length);
2043
2973
  }
2044
2974
  return selectedModelId;
2045
2975
  };
2046
2976
 
2047
- const isOpenRouterModel = (selectedModelId, models) => {
2977
+ const isOpenApiModel = (selectedModelId, models) => {
2048
2978
  const selectedModel = models.find(model => model.id === selectedModelId);
2049
- if (selectedModel?.provider === 'openRouter') {
2979
+ const normalizedProvider = selectedModel?.provider?.toLowerCase();
2980
+ if (normalizedProvider === 'openapi' || normalizedProvider === 'openai' || normalizedProvider === 'open-ai') {
2050
2981
  return true;
2051
2982
  }
2052
- return selectedModelId.startsWith('openRouter/');
2983
+ const normalizedModelId = selectedModelId.toLowerCase();
2984
+ return normalizedModelId.startsWith('openapi/') || normalizedModelId.startsWith('openai/');
2053
2985
  };
2054
2986
 
2055
- const getAiResponse = async (userText, nextMessageId, selectedModelId, models, openRouterApiKey, openRouterApiBaseUrl) => {
2987
+ /* eslint-disable @cspell/spellchecker */
2988
+
2989
+ const isOpenRouterModel = (selectedModelId, models) => {
2990
+ const selectedModel = models.find(model => model.id === selectedModelId);
2991
+ const normalizedProvider = selectedModel?.provider?.toLowerCase();
2992
+ if (normalizedProvider === 'openrouter' || normalizedProvider === 'open-router') {
2993
+ return true;
2994
+ }
2995
+ return selectedModelId.toLowerCase().startsWith('openrouter/');
2996
+ };
2997
+
2998
+ const getAiResponse = async ({
2999
+ assetDir,
3000
+ messages,
3001
+ mockApiCommandId,
3002
+ models,
3003
+ nextMessageId,
3004
+ openApiApiBaseUrl,
3005
+ openApiApiKey,
3006
+ openRouterApiBaseUrl,
3007
+ openRouterApiKey,
3008
+ platform,
3009
+ selectedModelId,
3010
+ useMockApi,
3011
+ userText
3012
+ }) => {
2056
3013
  let text = '';
2057
- const shouldUseOpenRouter = isOpenRouterModel(selectedModelId, models) && openRouterApiKey;
2058
- if (shouldUseOpenRouter) {
2059
- try {
2060
- text = await getOpenRouterAssistantText(userText, getOpenRouterModelId(selectedModelId), openRouterApiKey, openRouterApiBaseUrl);
2061
- } catch {
2062
- text = '';
3014
+ const usesOpenApiModel = isOpenApiModel(selectedModelId, models);
3015
+ const usesOpenRouterModel = isOpenRouterModel(selectedModelId, models);
3016
+ if (usesOpenApiModel) {
3017
+ if (openApiApiKey) {
3018
+ const result = await getOpenApiAssistantText(messages, getOpenApiModelId(selectedModelId), openApiApiKey, openApiApiBaseUrl, assetDir, platform);
3019
+ if (result.type === 'success') {
3020
+ const {
3021
+ text: assistantText
3022
+ } = result;
3023
+ text = assistantText;
3024
+ } else {
3025
+ text = getOpenApiErrorMessage(result);
3026
+ }
3027
+ } else {
3028
+ text = openApiApiKeyRequiredMessage;
3029
+ }
3030
+ } else if (usesOpenRouterModel) {
3031
+ const modelId = getOpenRouterModelId(selectedModelId);
3032
+ if (useMockApi) {
3033
+ const result = await getMockOpenRouterAssistantText(messages, modelId, openRouterApiBaseUrl, openRouterApiKey, mockApiCommandId, assetDir, platform);
3034
+ if (result.type === 'success') {
3035
+ const {
3036
+ text: assistantText
3037
+ } = result;
3038
+ text = assistantText;
3039
+ } else {
3040
+ text = getOpenRouterErrorMessage(result);
3041
+ }
3042
+ } else if (openRouterApiKey) {
3043
+ const result = await getOpenRouterAssistantText(messages, modelId, openRouterApiKey, openRouterApiBaseUrl, assetDir, platform);
3044
+ if (result.type === 'success') {
3045
+ const {
3046
+ text: assistantText
3047
+ } = result;
3048
+ text = assistantText;
3049
+ } else {
3050
+ text = getOpenRouterErrorMessage(result);
3051
+ }
3052
+ } else {
3053
+ text = openRouterApiKeyRequiredMessage;
2063
3054
  }
2064
3055
  }
2065
- if (!text) {
3056
+ if (!text && !usesOpenApiModel && !usesOpenRouterModel) {
2066
3057
  text = await getMockAiResponse(userText);
2067
3058
  }
2068
3059
  const assistantTime = new Date().toLocaleTimeString([], {
@@ -2077,16 +3068,187 @@ const getAiResponse = async (userText, nextMessageId, selectedModelId, models, o
2077
3068
  };
2078
3069
  };
2079
3070
 
3071
+ const get = async key => {
3072
+ return getPreference(key);
3073
+ };
3074
+ const update = async settings => {
3075
+ await invoke('Preferences.update', settings);
3076
+ };
3077
+
3078
+ const setOpenApiApiKey = async (state, openApiApiKey, persist = true) => {
3079
+ if (persist) {
3080
+ await update({
3081
+ 'secrets.openApiKey': openApiApiKey
3082
+ });
3083
+ }
3084
+ return {
3085
+ ...state,
3086
+ openApiApiKey,
3087
+ openApiApiKeyInput: openApiApiKey
3088
+ };
3089
+ };
3090
+
3091
+ const handleClickSaveOpenApiApiKey = async state => {
3092
+ const {
3093
+ openApiApiKeyInput
3094
+ } = state;
3095
+ const openApiApiKey = openApiApiKeyInput.trim();
3096
+ if (!openApiApiKey) {
3097
+ return state;
3098
+ }
3099
+ const updatedState = await setOpenApiApiKey(state, openApiApiKey);
3100
+ const session = updatedState.sessions.find(item => item.id === updatedState.selectedSessionId);
3101
+ if (!session) {
3102
+ return updatedState;
3103
+ }
3104
+ const lastMessage = session.messages.at(-1);
3105
+ const shouldRetryOpenApi = lastMessage?.role === 'assistant' && lastMessage.text === openApiApiKeyRequiredMessage;
3106
+ if (!shouldRetryOpenApi) {
3107
+ return updatedState;
3108
+ }
3109
+ const previousUserMessage = session.messages.toReversed().find(item => item.role === 'user');
3110
+ if (!previousUserMessage) {
3111
+ return updatedState;
3112
+ }
3113
+ const retryMessages = session.messages.slice(0, -1);
3114
+ const assistantMessage = await getAiResponse({
3115
+ assetDir: updatedState.assetDir,
3116
+ messages: retryMessages,
3117
+ mockApiCommandId: updatedState.mockApiCommandId,
3118
+ models: updatedState.models,
3119
+ nextMessageId: updatedState.nextMessageId,
3120
+ openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
3121
+ openApiApiKey: updatedState.openApiApiKey,
3122
+ openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
3123
+ openRouterApiKey: updatedState.openRouterApiKey,
3124
+ platform: updatedState.platform,
3125
+ selectedModelId: updatedState.selectedModelId,
3126
+ useMockApi: updatedState.useMockApi,
3127
+ userText: previousUserMessage.text
3128
+ });
3129
+ const updatedSession = {
3130
+ ...session,
3131
+ messages: [...session.messages.slice(0, -1), assistantMessage]
3132
+ };
3133
+ await saveChatSession(updatedSession);
3134
+ const updatedSessions = updatedState.sessions.map(item => {
3135
+ if (item.id !== updatedState.selectedSessionId) {
3136
+ return item;
3137
+ }
3138
+ return updatedSession;
3139
+ });
3140
+ return {
3141
+ ...updatedState,
3142
+ nextMessageId: updatedState.nextMessageId + 1,
3143
+ sessions: updatedSessions
3144
+ };
3145
+ };
3146
+
3147
+ const setOpenRouterApiKey = async (state, openRouterApiKey, persist = true) => {
3148
+ if (persist) {
3149
+ await update({
3150
+ 'secrets.openRouterApiKey': openRouterApiKey
3151
+ });
3152
+ }
3153
+ return {
3154
+ ...state,
3155
+ openRouterApiKey,
3156
+ openRouterApiKeyInput: openRouterApiKey
3157
+ };
3158
+ };
3159
+
3160
+ const handleClickSaveOpenRouterApiKey = async state => {
3161
+ const {
3162
+ openRouterApiKeyInput
3163
+ } = state;
3164
+ const openRouterApiKey = openRouterApiKeyInput.trim();
3165
+ if (!openRouterApiKey) {
3166
+ return state;
3167
+ }
3168
+ const optimisticState = {
3169
+ ...state,
3170
+ openRouterApiKeyState: 'saving'
3171
+ };
3172
+ set(state.uid, state, optimisticState);
3173
+ // @ts-ignore
3174
+ await invoke('Chat.rerender');
3175
+ const persistedState = await setOpenRouterApiKey(optimisticState, openRouterApiKey);
3176
+ const updatedState = {
3177
+ ...persistedState,
3178
+ openRouterApiKeyState: 'idle'
3179
+ };
3180
+ const session = updatedState.sessions.find(item => item.id === updatedState.selectedSessionId);
3181
+ if (!session) {
3182
+ return updatedState;
3183
+ }
3184
+ const lastMessage = session.messages.at(-1);
3185
+ const shouldRetryOpenRouter = lastMessage?.role === 'assistant' && lastMessage.text === openRouterApiKeyRequiredMessage;
3186
+ if (!shouldRetryOpenRouter) {
3187
+ return updatedState;
3188
+ }
3189
+ const previousUserMessage = session.messages.toReversed().find(item => item.role === 'user');
3190
+ if (!previousUserMessage) {
3191
+ return updatedState;
3192
+ }
3193
+ const retryMessages = session.messages.slice(0, -1);
3194
+ const assistantMessage = await getAiResponse({
3195
+ assetDir: updatedState.assetDir,
3196
+ messages: retryMessages,
3197
+ mockApiCommandId: updatedState.mockApiCommandId,
3198
+ models: updatedState.models,
3199
+ nextMessageId: updatedState.nextMessageId,
3200
+ openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
3201
+ openApiApiKey: updatedState.openApiApiKey,
3202
+ openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
3203
+ openRouterApiKey,
3204
+ platform: updatedState.platform,
3205
+ selectedModelId: updatedState.selectedModelId,
3206
+ useMockApi: updatedState.useMockApi,
3207
+ userText: previousUserMessage.text
3208
+ });
3209
+ const updatedSession = {
3210
+ ...session,
3211
+ messages: [...session.messages.slice(0, -1), assistantMessage]
3212
+ };
3213
+ await saveChatSession(updatedSession);
3214
+ const updatedSessions = updatedState.sessions.map(item => {
3215
+ if (item.id !== updatedState.selectedSessionId) {
3216
+ return item;
3217
+ }
3218
+ return updatedSession;
3219
+ });
3220
+ return {
3221
+ ...updatedState,
3222
+ nextMessageId: updatedState.nextMessageId + 1,
3223
+ openRouterApiKeyState: 'idle',
3224
+ sessions: updatedSessions
3225
+ };
3226
+ };
3227
+
3228
+ const focusInput = state => {
3229
+ return {
3230
+ ...state,
3231
+ focus: 'composer',
3232
+ focused: true
3233
+ };
3234
+ };
3235
+
2080
3236
  const handleSubmit = async state => {
2081
3237
  const {
3238
+ assetDir,
2082
3239
  composerValue,
3240
+ mockApiCommandId,
2083
3241
  models,
2084
3242
  nextMessageId,
3243
+ openApiApiBaseUrl,
3244
+ openApiApiKey,
2085
3245
  openRouterApiBaseUrl,
2086
3246
  openRouterApiKey,
3247
+ platform,
2087
3248
  selectedModelId,
2088
3249
  selectedSessionId,
2089
3250
  sessions,
3251
+ useMockApi,
2090
3252
  viewMode
2091
3253
  } = state;
2092
3254
  const userText = composerValue.trim();
@@ -2126,6 +3288,7 @@ const handleSubmit = async state => {
2126
3288
  await saveChatSession(newSession);
2127
3289
  optimisticState = focusInput({
2128
3290
  ...state,
3291
+ composerHeight: getMinComposerHeightForState(state),
2129
3292
  composerValue: '',
2130
3293
  inputSource: 'script',
2131
3294
  lastSubmittedSessionId: newSessionId,
@@ -2150,6 +3313,7 @@ const handleSubmit = async state => {
2150
3313
  }
2151
3314
  optimisticState = focusInput({
2152
3315
  ...state,
3316
+ composerHeight: getMinComposerHeightForState(state),
2153
3317
  composerValue: '',
2154
3318
  inputSource: 'script',
2155
3319
  lastSubmittedSessionId: selectedSessionId,
@@ -2160,7 +3324,23 @@ const handleSubmit = async state => {
2160
3324
  set(state.uid, state, optimisticState);
2161
3325
  // @ts-ignore
2162
3326
  await invoke('Chat.rerender');
2163
- const assistantMessage = await getAiResponse(userText, optimisticState.nextMessageId, selectedModelId, models, openRouterApiKey, openRouterApiBaseUrl);
3327
+ const selectedOptimisticSession = optimisticState.sessions.find(session => session.id === optimisticState.selectedSessionId);
3328
+ const messages = selectedOptimisticSession?.messages ?? [];
3329
+ const assistantMessage = await getAiResponse({
3330
+ assetDir,
3331
+ messages,
3332
+ mockApiCommandId,
3333
+ models,
3334
+ nextMessageId: optimisticState.nextMessageId,
3335
+ openApiApiBaseUrl,
3336
+ openApiApiKey,
3337
+ openRouterApiBaseUrl,
3338
+ openRouterApiKey,
3339
+ platform,
3340
+ selectedModelId,
3341
+ useMockApi,
3342
+ userText
3343
+ });
2164
3344
  const updatedSessions = optimisticState.sessions.map(session => {
2165
3345
  if (session.id !== optimisticState.selectedSessionId) {
2166
3346
  return session;
@@ -2195,6 +3375,41 @@ const handleClickSend = async state => {
2195
3375
  return handleSubmit(submitState);
2196
3376
  };
2197
3377
 
3378
+ const Composer = 'composer';
3379
+ const Send = 'send';
3380
+ const Back = 'back';
3381
+ const Model = 'model';
3382
+ const CreateSession = 'create-session';
3383
+ const Settings = 'settings';
3384
+ const CloseChat = 'close-chat';
3385
+ const SessionDelete = 'SessionDelete';
3386
+ const SessionPrefix = 'session:';
3387
+ const RenamePrefix = 'session-rename:';
3388
+ const getSessionInputName = sessionId => {
3389
+ return `${SessionPrefix}${sessionId}`;
3390
+ };
3391
+ const isSessionInputName = name => {
3392
+ return name.startsWith(SessionPrefix);
3393
+ };
3394
+ const getSessionIdFromInputName = name => {
3395
+ return name.slice(SessionPrefix.length);
3396
+ };
3397
+ const isRenameInputName = name => {
3398
+ return name.startsWith(RenamePrefix);
3399
+ };
3400
+ const getRenameIdFromInputName = name => {
3401
+ return name.slice(RenamePrefix.length);
3402
+ };
3403
+
3404
+ const OpenApiApiKeyInput = 'open-api-api-key';
3405
+ const SaveOpenApiApiKey = 'save-openapi-api-key';
3406
+ const OpenOpenApiApiKeySettings = 'open-openapi-api-key-settings';
3407
+
3408
+ /* eslint-disable @cspell/spellchecker */
3409
+ const OpenRouterApiKeyInput = 'open-router-api-key';
3410
+ const SaveOpenRouterApiKey = 'save-openrouter-api-key';
3411
+ const OpenOpenRouterApiKeySettings = 'open-openrouter-api-key-settings';
3412
+
2198
3413
  const selectSession = async (state, id) => {
2199
3414
  const exists = state.sessions.some(session => session.id === id);
2200
3415
  if (!exists) {
@@ -2252,32 +3467,39 @@ const handleClickList = async (state, eventX, eventY) => {
2252
3467
  return selectListIndex(state, index);
2253
3468
  };
2254
3469
 
2255
- const CREATE_SESSION = 'create-session';
2256
- const SESSION_PREFIX = 'session:';
2257
- const RENAME_PREFIX = 'session-rename:';
2258
- const SESSION_DELETE = 'SessionDelete';
2259
- const SEND = 'send';
2260
3470
  const handleClick = async (state, name, id = '') => {
2261
3471
  if (!name) {
2262
3472
  return state;
2263
3473
  }
2264
- if (name === CREATE_SESSION) {
3474
+ if (name === CreateSession) {
2265
3475
  return createSession(state);
2266
3476
  }
2267
- if (name.startsWith(SESSION_PREFIX)) {
2268
- const id = name.slice(SESSION_PREFIX.length);
2269
- return selectSession(state, id);
3477
+ if (isSessionInputName(name)) {
3478
+ const sessionId = getSessionIdFromInputName(name);
3479
+ return selectSession(state, sessionId);
2270
3480
  }
2271
- if (name.startsWith(RENAME_PREFIX)) {
2272
- const id = name.slice(RENAME_PREFIX.length);
2273
- return startRename(state, id);
3481
+ if (isRenameInputName(name)) {
3482
+ const sessionId = getRenameIdFromInputName(name);
3483
+ return startRename(state, sessionId);
2274
3484
  }
2275
- if (name === SESSION_DELETE) {
3485
+ if (name === SessionDelete) {
2276
3486
  return deleteSession(state, id);
2277
3487
  }
2278
- if (name === SEND) {
3488
+ if (name === Send) {
2279
3489
  return handleClickSend(state);
2280
3490
  }
3491
+ if (name === SaveOpenRouterApiKey) {
3492
+ return handleClickSaveOpenRouterApiKey(state);
3493
+ }
3494
+ if (name === SaveOpenApiApiKey) {
3495
+ return handleClickSaveOpenApiApiKey(state);
3496
+ }
3497
+ if (name === OpenOpenRouterApiKeySettings) {
3498
+ return handleClickOpenRouterApiKeySettings(state);
3499
+ }
3500
+ if (name === OpenOpenApiApiKeySettings) {
3501
+ return handleClickOpenApiApiKeySettings(state);
3502
+ }
2281
3503
  return state;
2282
3504
  };
2283
3505
 
@@ -2307,33 +3529,50 @@ const handleClickSettings = async () => {
2307
3529
  await invoke('Main.openUri', 'app://settings.json');
2308
3530
  };
2309
3531
 
2310
- const handleInput = async (state, value, inputSource = 'user') => {
3532
+ const handleInput = async (state, name, value, inputSource = 'user') => {
3533
+ if (name === OpenApiApiKeyInput) {
3534
+ return {
3535
+ ...state,
3536
+ openApiApiKeyInput: value
3537
+ };
3538
+ }
3539
+ if (name === OpenRouterApiKeyInput) {
3540
+ return {
3541
+ ...state,
3542
+ openRouterApiKeyInput: value
3543
+ };
3544
+ }
3545
+ if (name !== Composer) {
3546
+ return state;
3547
+ }
3548
+ const composerHeight = await getComposerHeight(state, value);
2311
3549
  return {
2312
3550
  ...state,
3551
+ composerHeight,
2313
3552
  composerValue: value,
2314
3553
  inputSource
2315
3554
  };
2316
3555
  };
2317
3556
 
2318
3557
  const handleInputFocus = async (state, name) => {
2319
- if (name === 'composer') {
3558
+ if (name === Composer) {
2320
3559
  return focusInput(state);
2321
3560
  }
2322
- if (name === 'send') {
3561
+ if (name === Send) {
2323
3562
  return {
2324
3563
  ...state,
2325
3564
  focus: 'send-button',
2326
3565
  focused: true
2327
3566
  };
2328
3567
  }
2329
- if (name.startsWith('session:') || name === 'SessionDelete') {
3568
+ if (isSessionInputName(name) || name === SessionDelete) {
2330
3569
  return {
2331
3570
  ...state,
2332
3571
  focus: 'list',
2333
3572
  focused: true
2334
3573
  };
2335
3574
  }
2336
- if (name === 'create-session' || name === 'settings' || name === 'close-chat' || name === 'back') {
3575
+ if (name === CreateSession || name === Settings || name === CloseChat || name === Back) {
2337
3576
  return {
2338
3577
  ...state,
2339
3578
  focus: 'header',
@@ -2374,6 +3613,7 @@ const submitRename = async state => {
2374
3613
  }
2375
3614
  return {
2376
3615
  ...state,
3616
+ composerHeight: getMinComposerHeightForState(state),
2377
3617
  composerValue: '',
2378
3618
  inputSource: 'script',
2379
3619
  renamingSessionId: '',
@@ -2412,7 +3652,7 @@ const handleModelChange = async (state, value) => {
2412
3652
  };
2413
3653
 
2414
3654
  const handleNewline = async state => {
2415
- return handleInput(state, `${state.composerValue}\n`);
3655
+ return handleInput(state, Composer, `${state.composerValue}\n`);
2416
3656
  };
2417
3657
 
2418
3658
  const id = 7201;
@@ -2441,36 +3681,6 @@ const isObject = value => {
2441
3681
  return typeof value === 'object' && value !== null;
2442
3682
  };
2443
3683
 
2444
- const getSavedBounds = savedState => {
2445
- if (!isObject(savedState)) {
2446
- return undefined;
2447
- }
2448
- const {
2449
- height,
2450
- width,
2451
- x,
2452
- y
2453
- } = savedState;
2454
- if (typeof x !== 'number') {
2455
- return undefined;
2456
- }
2457
- if (typeof y !== 'number') {
2458
- return undefined;
2459
- }
2460
- if (typeof width !== 'number') {
2461
- return undefined;
2462
- }
2463
- if (typeof height !== 'number') {
2464
- return undefined;
2465
- }
2466
- return {
2467
- height,
2468
- width,
2469
- x,
2470
- y
2471
- };
2472
- };
2473
-
2474
3684
  const getSavedSelectedModelId = savedState => {
2475
3685
  if (!isObject(savedState)) {
2476
3686
  return undefined;
@@ -2523,10 +3733,6 @@ const getSavedViewMode = savedState => {
2523
3733
  return viewMode;
2524
3734
  };
2525
3735
 
2526
- const get = async key => {
2527
- return getPreference(key);
2528
- };
2529
-
2530
3736
  const toSummarySession = session => {
2531
3737
  return {
2532
3738
  id: session.id,
@@ -2550,9 +3756,25 @@ const loadSelectedSessionMessages = async (sessions, selectedSessionId) => {
2550
3756
  });
2551
3757
  };
2552
3758
  const loadContent = async (state, savedState) => {
2553
- const savedBounds = getSavedBounds(savedState);
2554
3759
  const savedSelectedModelId = getSavedSelectedModelId(savedState);
2555
3760
  const savedViewMode = getSavedViewMode(savedState);
3761
+ let openApiApiKey = '';
3762
+ try {
3763
+ const savedOpenApiKey = await get('secrets.openApiKey');
3764
+ if (typeof savedOpenApiKey === 'string' && savedOpenApiKey) {
3765
+ openApiApiKey = savedOpenApiKey;
3766
+ } else {
3767
+ const legacySavedOpenApiApiKey = await get('secrets.openApiApiKey');
3768
+ if (typeof legacySavedOpenApiApiKey === 'string' && legacySavedOpenApiApiKey) {
3769
+ openApiApiKey = legacySavedOpenApiApiKey;
3770
+ } else {
3771
+ const legacySavedOpenAiApiKey = await get('secrets.openAiApiKey');
3772
+ openApiApiKey = typeof legacySavedOpenAiApiKey === 'string' ? legacySavedOpenAiApiKey : '';
3773
+ }
3774
+ }
3775
+ } catch {
3776
+ openApiApiKey = '';
3777
+ }
2556
3778
  let openRouterApiKey = '';
2557
3779
  try {
2558
3780
  const savedOpenRouterApiKey = await get('secrets.openRouterApiKey');
@@ -2584,9 +3806,11 @@ const loadContent = async (state, savedState) => {
2584
3806
  const viewMode = sessions.length === 0 || !selectedSessionId ? 'list' : preferredViewMode === 'detail' ? 'detail' : 'list';
2585
3807
  return {
2586
3808
  ...state,
2587
- ...savedBounds,
2588
3809
  initial: false,
3810
+ openApiApiKey,
3811
+ openApiApiKeyInput: openApiApiKey,
2589
3812
  openRouterApiKey,
3813
+ openRouterApiKeyInput: openRouterApiKey,
2590
3814
  selectedModelId,
2591
3815
  selectedSessionId,
2592
3816
  sessions,
@@ -2595,11 +3819,14 @@ const loadContent = async (state, savedState) => {
2595
3819
  };
2596
3820
 
2597
3821
  const openMockSession = async (state, mockSessionId, mockChatMessages) => {
3822
+ const {
3823
+ sessions: currentSessions
3824
+ } = state;
2598
3825
  if (!mockSessionId) {
2599
3826
  return state;
2600
3827
  }
2601
- const existingSession = state.sessions.find(session => session.id === mockSessionId);
2602
- const sessions = existingSession ? state.sessions.map(session => {
3828
+ const existingSession = currentSessions.find(session => session.id === mockSessionId);
3829
+ const sessions = existingSession ? currentSessions.map(session => {
2603
3830
  if (session.id !== mockSessionId) {
2604
3831
  return session;
2605
3832
  }
@@ -2607,7 +3834,7 @@ const openMockSession = async (state, mockSessionId, mockChatMessages) => {
2607
3834
  ...session,
2608
3835
  messages: mockChatMessages
2609
3836
  };
2610
- }) : [...state.sessions, {
3837
+ }) : [...currentSessions, {
2611
3838
  id: mockSessionId,
2612
3839
  messages: mockChatMessages,
2613
3840
  title: mockSessionId
@@ -2657,6 +3884,7 @@ const renderFocusContext = (oldState, newState) => {
2657
3884
  return [SetFocusContext, newState.uid, FocusChatInput];
2658
3885
  };
2659
3886
 
3887
+ const Actions = 'Actions';
2660
3888
  const ChatActions = 'ChatActions';
2661
3889
  const ChatName = 'ChatName';
2662
3890
  const ChatSendArea = 'ChatSendArea';
@@ -2665,7 +3893,11 @@ const ChatSendAreaBottom = 'ChatSendAreaBottom';
2665
3893
  const ChatSendAreaContent = 'ChatSendAreaContent';
2666
3894
  const Chat = 'Chat';
2667
3895
  const ChatHeader = 'ChatHeader';
3896
+ const Button = 'Button';
3897
+ const ButtonPrimary = 'ButtonPrimary';
3898
+ const ButtonSecondary = 'ButtonSecondary';
2668
3899
  const IconButton = 'IconButton';
3900
+ const InputBox = 'InputBox';
2669
3901
  const Label = 'Label';
2670
3902
  const LabelDetail = 'LabelDetail';
2671
3903
  const ChatList = 'ChatList';
@@ -2675,6 +3907,8 @@ const ChatListItemLabel = 'ChatListItemLabel';
2675
3907
  const Markdown = 'Markdown';
2676
3908
  const Message = 'Message';
2677
3909
  const ChatMessageContent = 'ChatMessageContent';
3910
+ const ChatOrderedList = 'ChatOrderedList';
3911
+ const ChatOrderedListItem = 'ChatOrderedListItem';
2678
3912
  const MessageUser = 'MessageUser';
2679
3913
  const MessageAssistant = 'MessageAssistant';
2680
3914
  const MultilineInputBox = 'MultilineInputBox';
@@ -2704,8 +3938,12 @@ const getModelLabel = model => {
2704
3938
  if (model.provider === 'openRouter') {
2705
3939
  return `${model.name} (OpenRouter)`;
2706
3940
  }
3941
+ if (model.provider === 'openApi' || model.provider === 'openAI' || model.provider === 'openai') {
3942
+ return `${model.name} (OpenAI)`;
3943
+ }
2707
3944
  return model.name;
2708
3945
  };
3946
+
2709
3947
  const getModelOptionDOm = (model, selectedModelId) => {
2710
3948
  return [{
2711
3949
  childCount: 1,
@@ -2726,11 +3964,11 @@ const getSendButtonDom = isSendDisabled => {
2726
3964
  childCount: 1,
2727
3965
  className: sendButtonClassName,
2728
3966
  disabled: isSendDisabled,
2729
- name: 'send',
3967
+ name: Send,
2730
3968
  onClick: HandleSubmit,
2731
- role: Button$1,
2732
- title: sendMessage,
2733
- type: Button
3969
+ role: Button$2,
3970
+ title: sendMessage(),
3971
+ type: Button$1
2734
3972
  }, {
2735
3973
  childCount: 0,
2736
3974
  className: 'MaskIcon MaskIconSend',
@@ -2773,7 +4011,7 @@ const getUsageOverviewDom = (tokensUsed, tokensMax) => {
2773
4011
  }, text(usageLabel)];
2774
4012
  };
2775
4013
 
2776
- const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
4014
+ const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20) => {
2777
4015
  const isSendDisabled = composerValue.trim() === '';
2778
4016
  const modelOptions = models.flatMap(model => getModelOptionDOm(model, selectedModelId));
2779
4017
  return [{
@@ -2787,11 +4025,11 @@ const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOvervie
2787
4025
  }, {
2788
4026
  childCount: 0,
2789
4027
  className: MultilineInputBox,
2790
- name: 'composer',
4028
+ name: Composer,
2791
4029
  onFocus: HandleFocus,
2792
4030
  onInput: HandleInput,
2793
- placeholder: composePlaceholder,
2794
- rows: 4,
4031
+ placeholder: composePlaceholder(),
4032
+ style: `height:${composerHeight}px;font-size:${composerFontSize}px;font-family:${composerFontFamily};line-height:${composerLineHeight}px;`,
2795
4033
  type: TextArea,
2796
4034
  value: composerValue
2797
4035
  }, {
@@ -2801,7 +4039,7 @@ const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOvervie
2801
4039
  }, {
2802
4040
  childCount: models.length,
2803
4041
  className: Select,
2804
- name: 'model',
4042
+ name: Model,
2805
4043
  onInput: HandleModelChange,
2806
4044
  type: Select$1,
2807
4045
  value: selectedModelId
@@ -2812,11 +4050,11 @@ const getBackButtonVirtualDom = () => {
2812
4050
  return [{
2813
4051
  childCount: 1,
2814
4052
  className: IconButton,
2815
- name: 'back',
4053
+ name: Back,
2816
4054
  onClick: HandleClickBack,
2817
- role: Button$1,
2818
- title: backToChats,
2819
- type: Button
4055
+ role: Button$2,
4056
+ title: backToChats(),
4057
+ type: Button$1
2820
4058
  }, {
2821
4059
  childCount: 0,
2822
4060
  className: 'MaskIcon MaskIconArrowLeft',
@@ -2830,9 +4068,9 @@ const getHeaderActionVirtualDom = item => {
2830
4068
  className: IconButton,
2831
4069
  name: item.name,
2832
4070
  onClick: item.onClick,
2833
- role: Button$1,
4071
+ role: Button$2,
2834
4072
  title: item.title,
2835
- type: Button
4073
+ type: Button$1
2836
4074
  }, {
2837
4075
  childCount: 0,
2838
4076
  className: item.icon,
@@ -2843,19 +4081,19 @@ const getHeaderActionVirtualDom = item => {
2843
4081
  const getChatHeaderActionsDom = () => {
2844
4082
  const items = [{
2845
4083
  icon: 'MaskIcon MaskIconAdd',
2846
- name: 'create-session',
4084
+ name: CreateSession,
2847
4085
  onClick: HandleClickNew,
2848
- title: newChat
4086
+ title: newChat()
2849
4087
  }, {
2850
4088
  icon: 'MaskIcon MaskIconSettingsGear',
2851
- name: 'settings',
4089
+ name: Settings,
2852
4090
  onClick: HandleClickSettings,
2853
- title: settings
4091
+ title: settings()
2854
4092
  }, {
2855
4093
  icon: 'MaskIcon MaskIconClose',
2856
- name: 'close-chat',
4094
+ name: CloseChat,
2857
4095
  onClick: HandleClickClose,
2858
- title: closeChat
4096
+ title: closeChat()
2859
4097
  }];
2860
4098
  return [{
2861
4099
  childCount: items.length,
@@ -2880,47 +4118,148 @@ const getChatHeaderDomDetailMode = selectedSessionTitle => {
2880
4118
  }, text(selectedSessionTitle), ...getChatHeaderActionsDom()];
2881
4119
  };
2882
4120
 
2883
- const getChatMessageDom = message => {
4121
+ const getMissingApiKeyDom = ({
4122
+ getApiKeyText,
4123
+ inputName,
4124
+ inputValue,
4125
+ openSettingsButtonName,
4126
+ placeholder,
4127
+ saveButtonDisabled = false,
4128
+ saveButtonName,
4129
+ saveButtonText = save()
4130
+ }) => {
4131
+ return [{
4132
+ childCount: 2,
4133
+ type: Div
4134
+ }, {
4135
+ childCount: 0,
4136
+ className: InputBox,
4137
+ name: inputName,
4138
+ onInput: HandleInput,
4139
+ placeholder,
4140
+ type: Input,
4141
+ value: inputValue
4142
+ }, {
4143
+ childCount: 2,
4144
+ className: Actions,
4145
+ type: Div
4146
+ }, {
4147
+ childCount: 1,
4148
+ className: mergeClassNames(Button, ButtonPrimary),
4149
+ disabled: saveButtonDisabled,
4150
+ name: saveButtonName,
4151
+ onClick: HandleClick,
4152
+ type: Button$1
4153
+ }, text(saveButtonText), {
4154
+ childCount: 1,
4155
+ className: mergeClassNames(Button, ButtonSecondary),
4156
+ name: openSettingsButtonName,
4157
+ onClick: HandleClick,
4158
+ type: Button$1
4159
+ }, text(getApiKeyText)];
4160
+ };
4161
+
4162
+ const getMissingOpenApiApiKeyDom = openApiApiKeyInput => {
4163
+ return getMissingApiKeyDom({
4164
+ getApiKeyText: getOpenApiApiKey(),
4165
+ inputName: OpenApiApiKeyInput,
4166
+ inputValue: openApiApiKeyInput,
4167
+ openSettingsButtonName: OpenOpenApiApiKeySettings,
4168
+ placeholder: openApiApiKeyPlaceholder(),
4169
+ saveButtonName: SaveOpenApiApiKey
4170
+ });
4171
+ };
4172
+
4173
+ const getMissingOpenRouterApiKeyDom = (openRouterApiKeyInput, openRouterApiKeyState = 'idle') => {
4174
+ const isSaving = openRouterApiKeyState === 'saving';
4175
+ return getMissingApiKeyDom({
4176
+ getApiKeyText: getOpenRouterApiKey(),
4177
+ inputName: OpenRouterApiKeyInput,
4178
+ inputValue: openRouterApiKeyInput,
4179
+ openSettingsButtonName: OpenOpenRouterApiKeySettings,
4180
+ placeholder: openRouterApiKeyPlaceholder(),
4181
+ saveButtonDisabled: isSaving,
4182
+ saveButtonName: SaveOpenRouterApiKey,
4183
+ saveButtonText: isSaving ? saving() : save()
4184
+ });
4185
+ };
4186
+
4187
+ const getOpenRouterRequestFailedDom = () => {
4188
+ return [{
4189
+ childCount: openRouterRequestFailureReasons.length,
4190
+ className: ChatOrderedList,
4191
+ type: Ol
4192
+ }, ...openRouterRequestFailureReasons.flatMap(reason => {
4193
+ return [{
4194
+ childCount: 1,
4195
+ className: ChatOrderedListItem,
4196
+ type: Li
4197
+ }, text(reason)];
4198
+ })];
4199
+ };
4200
+ const getOpenRouterTooManyRequestsDom = () => {
4201
+ return [{
4202
+ childCount: openRouterTooManyRequestsReasons.length,
4203
+ className: ChatOrderedList,
4204
+ type: Ol
4205
+ }, ...openRouterTooManyRequestsReasons.flatMap(reason => {
4206
+ return [{
4207
+ childCount: 1,
4208
+ className: ChatOrderedListItem,
4209
+ type: Li
4210
+ }, text(reason)];
4211
+ })];
4212
+ };
4213
+ const getChatMessageDom = (message, openRouterApiKeyInput, openApiApiKeyInput = '', openRouterApiKeyState = 'idle') => {
2884
4214
  const roleClassName = message.role === 'user' ? MessageUser : MessageAssistant;
4215
+ const isOpenApiApiKeyMissingMessage = message.role === 'assistant' && message.text === openApiApiKeyRequiredMessage;
4216
+ const isOpenRouterApiKeyMissingMessage = message.role === 'assistant' && message.text === openRouterApiKeyRequiredMessage;
4217
+ const isOpenRouterRequestFailedMessage = message.role === 'assistant' && message.text === openRouterRequestFailedMessage;
4218
+ const isOpenRouterTooManyRequestsMessage = message.role === 'assistant' && message.text.startsWith(openRouterTooManyRequestsMessage);
4219
+ const extraChildCount = isOpenApiApiKeyMissingMessage || isOpenRouterApiKeyMissingMessage || isOpenRouterRequestFailedMessage || isOpenRouterTooManyRequestsMessage ? 2 : 1;
2885
4220
  return [{
2886
4221
  childCount: 1,
2887
4222
  className: mergeClassNames(Message, roleClassName),
2888
4223
  type: Div
2889
4224
  }, {
2890
- childCount: 1,
4225
+ childCount: extraChildCount,
2891
4226
  className: ChatMessageContent,
2892
4227
  type: Div
2893
4228
  }, {
2894
4229
  childCount: 1,
2895
4230
  className: Markdown,
2896
4231
  type: P
2897
- }, text(message.text)];
4232
+ }, text(message.text), ...(isOpenApiApiKeyMissingMessage ? getMissingOpenApiApiKeyDom(openApiApiKeyInput) : []), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyInput, openRouterApiKeyState) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : []), ...(isOpenRouterTooManyRequestsMessage ? getOpenRouterTooManyRequestsDom() : [])];
4233
+ };
4234
+
4235
+ const getEmptyMessagesDom = () => {
4236
+ return [{
4237
+ childCount: 1,
4238
+ className: ChatWelcomeMessage,
4239
+ type: Div
4240
+ }, text(startConversation())];
2898
4241
  };
2899
4242
 
2900
- const getMessagesDom = messages => {
4243
+ const getMessagesDom = (messages, openRouterApiKeyInput, openApiApiKeyInput = '', openRouterApiKeyState = 'idle') => {
2901
4244
  if (messages.length === 0) {
2902
- return [{
2903
- childCount: 1,
2904
- className: ChatWelcomeMessage,
2905
- type: Div
2906
- }, text(startConversation)];
4245
+ return getEmptyMessagesDom();
2907
4246
  }
2908
4247
  return [{
2909
4248
  childCount: messages.length,
2910
4249
  className: 'ChatMessages',
2911
4250
  type: Div
2912
- }, ...messages.flatMap(getChatMessageDom)];
4251
+ }, ...messages.flatMap(message => getChatMessageDom(message, openRouterApiKeyInput, openApiApiKeyInput, openRouterApiKeyState))];
2913
4252
  };
2914
4253
 
2915
- const getChatModeDetailVirtualDom = (sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
4254
+ const getChatModeDetailVirtualDom = (sessions, selectedSessionId, composerValue, openRouterApiKeyInput, openApiApiKeyInput, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openRouterApiKeyState = 'idle', composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20) => {
2916
4255
  const selectedSession = sessions.find(session => session.id === selectedSessionId);
2917
- const selectedSessionTitle = selectedSession?.title || chatTitle;
4256
+ const selectedSessionTitle = selectedSession?.title || chatTitle();
2918
4257
  const messages = selectedSession ? selectedSession.messages : [];
2919
4258
  return [{
2920
4259
  childCount: 3,
2921
4260
  className: mergeClassNames(Viewlet, Chat),
2922
4261
  type: Div
2923
- }, ...getChatHeaderDomDetailMode(selectedSessionTitle), ...getMessagesDom(messages), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax)];
4262
+ }, ...getChatHeaderDomDetailMode(selectedSessionTitle), ...getMessagesDom(messages, openRouterApiKeyInput, openApiApiKeyInput, openRouterApiKeyState), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight, composerFontSize, composerFontFamily, composerLineHeight)];
2924
4263
  };
2925
4264
 
2926
4265
  const getChatHeaderListModeDom = () => {
@@ -2932,7 +4271,7 @@ const getChatHeaderListModeDom = () => {
2932
4271
  childCount: 1,
2933
4272
  className: Label,
2934
4273
  type: Span
2935
- }, text(chats), ...getChatHeaderActionsDom()];
4274
+ }, text(chats()), ...getChatHeaderActionsDom()];
2936
4275
  };
2937
4276
 
2938
4277
  const getEmptyChatSessionsDom = () => {
@@ -2944,7 +4283,7 @@ const getEmptyChatSessionsDom = () => {
2944
4283
  childCount: 1,
2945
4284
  className: Label,
2946
4285
  type: Div
2947
- }, text(clickToOpenNewChat)];
4286
+ }, text(clickToOpenNewChat())];
2948
4287
  };
2949
4288
 
2950
4289
  const getSessionDom = session => {
@@ -2956,7 +4295,7 @@ const getSessionDom = session => {
2956
4295
  }, {
2957
4296
  childCount: 1,
2958
4297
  className: ChatListItemLabel,
2959
- name: `session:${session.id}`,
4298
+ name: getSessionInputName(session.id),
2960
4299
  onContextMenu: HandleListContextMenu,
2961
4300
  tabIndex: 0,
2962
4301
  type: Div
@@ -2968,12 +4307,12 @@ const getSessionDom = session => {
2968
4307
  childCount: 1,
2969
4308
  className: IconButton,
2970
4309
  'data-id': session.id,
2971
- name: 'SessionDelete',
4310
+ name: SessionDelete,
2972
4311
  onClick: HandleClickDelete,
2973
- role: Button$1,
4312
+ role: Button$2,
2974
4313
  tabIndex: 0,
2975
- title: deleteChatSession$1,
2976
- type: Button
4314
+ title: deleteChatSession$1(),
4315
+ type: Button$1
2977
4316
  }, text('🗑')];
2978
4317
  };
2979
4318
 
@@ -2989,27 +4328,27 @@ const getChatListDom = (sessions, selectedSessionId) => {
2989
4328
  }, ...sessions.flatMap(getSessionDom)];
2990
4329
  };
2991
4330
 
2992
- const getChatModeListVirtualDom = (sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
4331
+ const getChatModeListVirtualDom = (sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20) => {
2993
4332
  return [{
2994
4333
  childCount: 3,
2995
4334
  className: mergeClassNames(Viewlet, Chat),
2996
4335
  type: Div
2997
- }, ...getChatHeaderListModeDom(), ...getChatListDom(sessions), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax)];
4336
+ }, ...getChatHeaderListModeDom(), ...getChatListDom(sessions), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight, composerFontSize, composerFontFamily, composerLineHeight)];
2998
4337
  };
2999
4338
 
3000
4339
  const getChatModeUnsupportedVirtualDom = () => {
3001
4340
  return [{
3002
4341
  childCount: 1,
3003
4342
  type: Div
3004
- }, text('Unknown view mode')];
4343
+ }, text(unknownViewMode())];
3005
4344
  };
3006
4345
 
3007
- const getChatVirtualDom = (sessions, selectedSessionId, composerValue, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
4346
+ const getChatVirtualDom = (sessions, selectedSessionId, composerValue, openRouterApiKeyInput, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openApiApiKeyInput = '', openRouterApiKeyState = 'idle', composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20) => {
3008
4347
  switch (viewMode) {
3009
4348
  case 'detail':
3010
- return getChatModeDetailVirtualDom(sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax);
4349
+ return getChatModeDetailVirtualDom(sessions, selectedSessionId, composerValue, openRouterApiKeyInput, openApiApiKeyInput, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openRouterApiKeyState, composerHeight, composerFontSize, composerFontFamily, composerLineHeight);
3011
4350
  case 'list':
3012
- return getChatModeListVirtualDom(sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax);
4351
+ return getChatModeListVirtualDom(sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight, composerFontSize, composerFontFamily, composerLineHeight);
3013
4352
  default:
3014
4353
  return getChatModeUnsupportedVirtualDom();
3015
4354
  }
@@ -3017,9 +4356,16 @@ const getChatVirtualDom = (sessions, selectedSessionId, composerValue, viewMode,
3017
4356
 
3018
4357
  const renderItems = (oldState, newState) => {
3019
4358
  const {
4359
+ composerFontFamily,
4360
+ composerFontSize,
4361
+ composerHeight,
4362
+ composerLineHeight,
3020
4363
  composerValue,
3021
4364
  initial,
3022
4365
  models,
4366
+ openApiApiKeyInput,
4367
+ openRouterApiKeyInput,
4368
+ openRouterApiKeyState,
3023
4369
  selectedModelId,
3024
4370
  selectedSessionId,
3025
4371
  sessions,
@@ -3032,7 +4378,7 @@ const renderItems = (oldState, newState) => {
3032
4378
  if (initial) {
3033
4379
  return [SetDom2, uid, []];
3034
4380
  }
3035
- const dom = getChatVirtualDom(sessions, selectedSessionId, composerValue, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax);
4381
+ const dom = getChatVirtualDom(sessions, selectedSessionId, composerValue, openRouterApiKeyInput, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openApiApiKeyInput, openRouterApiKeyState, composerHeight, composerFontSize, composerFontFamily, composerLineHeight);
3036
4382
  return [SetDom2, uid, dom];
3037
4383
  };
3038
4384
 
@@ -3047,7 +4393,7 @@ const renderValue = (oldState, newState) => {
3047
4393
  const {
3048
4394
  composerValue
3049
4395
  } = newState;
3050
- return [SetValueByName, newState.uid, 'composer', composerValue];
4396
+ return [SetValueByName, newState.uid, Composer, composerValue];
3051
4397
  };
3052
4398
 
3053
4399
  const getRenderer = diffType => {
@@ -3119,7 +4465,7 @@ const renderEventListeners = () => {
3119
4465
  params: ['handleClickList', ClientX, ClientY]
3120
4466
  }, {
3121
4467
  name: HandleInput,
3122
- params: ['handleInput', TargetValue]
4468
+ params: ['handleInput', TargetName, TargetValue]
3123
4469
  }, {
3124
4470
  name: HandleModelChange,
3125
4471
  params: ['handleModelChange', TargetValue]
@@ -3143,7 +4489,9 @@ const reset = async state => {
3143
4489
  await clearChatSessions();
3144
4490
  return {
3145
4491
  ...state,
4492
+ composerHeight: getMinComposerHeightForState(state),
3146
4493
  composerValue: '',
4494
+ openRouterApiKey: '',
3147
4495
  selectedSessionId: '',
3148
4496
  sessions: [],
3149
4497
  viewMode: 'list'
@@ -3187,15 +4535,15 @@ const saveState = state => {
3187
4535
  const dummySessions = [{
3188
4536
  id: 'session-a',
3189
4537
  messages: [],
3190
- title: dummyChatA
4538
+ title: dummyChatA()
3191
4539
  }, {
3192
4540
  id: 'session-b',
3193
4541
  messages: [],
3194
- title: dummyChatB
4542
+ title: dummyChatB()
3195
4543
  }, {
3196
4544
  id: 'session-c',
3197
4545
  messages: [],
3198
- title: dummyChatC
4546
+ title: dummyChatC()
3199
4547
  }];
3200
4548
  const setChatList = state => {
3201
4549
  return {
@@ -3206,6 +4554,21 @@ const setChatList = state => {
3206
4554
  };
3207
4555
  };
3208
4556
 
4557
+ const defaultMockApiCommandId = 'ChatE2e.mockApi';
4558
+ const useMockApi = (state, value, mockApiCommandId = defaultMockApiCommandId) => {
4559
+ if (!value) {
4560
+ return {
4561
+ ...state,
4562
+ useMockApi: false
4563
+ };
4564
+ }
4565
+ return {
4566
+ ...state,
4567
+ mockApiCommandId,
4568
+ useMockApi: true
4569
+ };
4570
+ };
4571
+
3209
4572
  const commandMap = {
3210
4573
  'Chat.clearInput': wrapCommand(clearInput),
3211
4574
  'Chat.create': create,
@@ -3213,6 +4576,7 @@ const commandMap = {
3213
4576
  'Chat.enterNewLine': wrapCommand(handleNewline),
3214
4577
  'Chat.getCommandIds': getCommandIds,
3215
4578
  'Chat.getKeyBindings': getKeyBindings,
4579
+ 'Chat.getSelectedSessionId': wrapGetter(getSelectedSessionId),
3216
4580
  'Chat.handleChatListContextMenu': handleChatListContextMenu,
3217
4581
  'Chat.handleClick': wrapCommand(handleClick),
3218
4582
  'Chat.handleClickBack': wrapCommand(handleClickBack),
@@ -3237,7 +4601,9 @@ const commandMap = {
3237
4601
  'Chat.resize': wrapCommand(resize),
3238
4602
  'Chat.saveState': wrapGetter(saveState),
3239
4603
  'Chat.setChatList': wrapCommand(setChatList),
3240
- 'Chat.terminate': terminate
4604
+ 'Chat.setOpenRouterApiKey': wrapCommand(setOpenRouterApiKey),
4605
+ 'Chat.terminate': terminate,
4606
+ 'Chat.useMockApi': wrapCommand(useMockApi)
3241
4607
  };
3242
4608
 
3243
4609
  const listen = async () => {