@lvce-editor/static-server 0.77.11 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1968) hide show
  1. package/config.json +1990 -1989
  2. package/package.json +1 -1
  3. package/static/{c0b16fe → 5a230ea}/css/App.css +171 -99
  4. package/static/5a230ea/icons/account.svg +1 -0
  5. package/static/{c0b16fe → 5a230ea}/manifest.json +2 -2
  6. package/static/{c0b16fe → 5a230ea}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
  7. package/static/{c0b16fe → 5a230ea}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +110 -45
  8. package/static/{c0b16fe → 5a230ea}/packages/auth-worker/dist/authWorkerMain.js +553 -33
  9. package/static/{c0b16fe → 5a230ea}/packages/chat-debug-view/dist/chatDebugViewWorkerMain.js +1326 -1843
  10. package/static/{c0b16fe → 5a230ea}/packages/chat-storage-worker/dist/chatStorageWorkerMain.js +382 -29
  11. package/static/{c0b16fe → 5a230ea}/packages/chat-tool-worker/dist/chatToolWorkerMain.js +79 -78
  12. package/static/{c0b16fe → 5a230ea}/packages/chat-view/dist/chatViewWorkerMain.js +82 -452
  13. package/static/{c0b16fe → 5a230ea}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +1452 -1429
  14. package/static/{c0b16fe → 5a230ea}/packages/opener-worker/dist/openerWorkerMain.js +105 -104
  15. package/static/{c0b16fe → 5a230ea}/packages/renderer-process/dist/rendererProcessMain.js +2 -2
  16. package/static/{c0b16fe → 5a230ea}/packages/renderer-process/package.json +1 -1
  17. package/static/{c0b16fe → 5a230ea}/packages/renderer-worker/dist/rendererWorkerMain.js +517 -342
  18. package/static/{c0b16fe → 5a230ea}/packages/test-worker/dist/testWorkerMain.js +23 -3
  19. package/static/index.html +4 -4
  20. /package/static/{c0b16fe → 5a230ea}/config/colorTheme.json +0 -0
  21. /package/static/{c0b16fe → 5a230ea}/config/defaultSettings.json +0 -0
  22. /package/static/{c0b16fe → 5a230ea}/config/fileMap.json +0 -0
  23. /package/static/{c0b16fe → 5a230ea}/config/webExtensions.json +0 -0
  24. /package/static/{c0b16fe → 5a230ea}/css/parts/AdditionalDetails.css +0 -0
  25. /package/static/{c0b16fe → 5a230ea}/css/parts/Animation.css +0 -0
  26. /package/static/{c0b16fe → 5a230ea}/css/parts/BrowserScrollBar.css +0 -0
  27. /package/static/{c0b16fe → 5a230ea}/css/parts/Category.css +0 -0
  28. /package/static/{c0b16fe → 5a230ea}/css/parts/DebugButtons.css +0 -0
  29. /package/static/{c0b16fe → 5a230ea}/css/parts/DebugValue.css +0 -0
  30. /package/static/{c0b16fe → 5a230ea}/css/parts/E2eTest.css +0 -0
  31. /package/static/{c0b16fe → 5a230ea}/css/parts/E2eTests.css +0 -0
  32. /package/static/{c0b16fe → 5a230ea}/css/parts/EditorHover.css +0 -0
  33. /package/static/{c0b16fe → 5a230ea}/css/parts/EditorMessage.css +0 -0
  34. /package/static/{c0b16fe → 5a230ea}/css/parts/FeatureContent.css +0 -0
  35. /package/static/{c0b16fe → 5a230ea}/css/parts/Features.css +0 -0
  36. /package/static/{c0b16fe → 5a230ea}/css/parts/ImagePreview.css +0 -0
  37. /package/static/{c0b16fe → 5a230ea}/css/parts/InlineDiffEditor.css +0 -0
  38. /package/static/{c0b16fe → 5a230ea}/css/parts/InputBadge.css +0 -0
  39. /package/static/{c0b16fe → 5a230ea}/css/parts/Key.css +0 -0
  40. /package/static/{c0b16fe → 5a230ea}/css/parts/KeyBindingsHeader.css +0 -0
  41. /package/static/{c0b16fe → 5a230ea}/css/parts/KeyBindingsTable.css +0 -0
  42. /package/static/{c0b16fe → 5a230ea}/css/parts/LegacyDialog.css +0 -0
  43. /package/static/{c0b16fe → 5a230ea}/css/parts/Markdown.css +0 -0
  44. /package/static/{c0b16fe → 5a230ea}/css/parts/Message.css +0 -0
  45. /package/static/{c0b16fe → 5a230ea}/css/parts/Preview.css +0 -0
  46. /package/static/{c0b16fe → 5a230ea}/css/parts/ScrollToTop.css +0 -0
  47. /package/static/{c0b16fe → 5a230ea}/css/parts/SettingsHeader.css +0 -0
  48. /package/static/{c0b16fe → 5a230ea}/css/parts/SettingsItems.css +0 -0
  49. /package/static/{c0b16fe → 5a230ea}/css/parts/SettingsSideBar.css +0 -0
  50. /package/static/{c0b16fe → 5a230ea}/css/parts/Table.css +0 -0
  51. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletAbout.css +0 -0
  52. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletBrowserViewOverview.css +0 -0
  53. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletDebugConsole.css +0 -0
  54. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletDefineKeyBinding.css +0 -0
  55. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletDiffEditor.css +0 -0
  56. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletEditorWidgetError.css +0 -0
  57. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletExtensionDetail.css +0 -0
  58. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  59. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  60. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletExtensions.css +0 -0
  61. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletIframeInspector.css +0 -0
  62. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletKeyBindings.css +0 -0
  63. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletLanguageModels.css +0 -0
  64. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletMedia.css +0 -0
  65. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletOutput.css +0 -0
  66. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletPanel.css +0 -0
  67. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletPanelTabs.css +0 -0
  68. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletPdf.css +0 -0
  69. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletProblems.css +0 -0
  70. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletReferences.css +0 -0
  71. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletRunAndDebug.css +0 -0
  72. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletScreenCapture.css +0 -0
  73. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletSearch.css +0 -0
  74. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletSettings.css +0 -0
  75. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletSimpleBrowser.css +0 -0
  76. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletSourceControl.css +0 -0
  77. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletStorage.css +0 -0
  78. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletTerminal.css +0 -0
  79. /package/static/{c0b16fe → 5a230ea}/css/parts/ViewletTerminalTabs.css +0 -0
  80. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-bat/README.md +0 -0
  81. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-bat/extension.json +0 -0
  82. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  83. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  84. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-c/README.md +0 -0
  85. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-c/extension.json +0 -0
  86. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  87. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  88. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  89. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  90. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cpp/README.md +0 -0
  91. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  92. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  93. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  94. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cson/README.md +0 -0
  95. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cson/extension.json +0 -0
  96. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  97. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  98. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-css/README.md +0 -0
  99. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-css/extension.json +0 -0
  100. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  101. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  102. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-dart/README.md +0 -0
  103. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-dart/extension.json +0 -0
  104. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  105. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-desktop/README.md +0 -0
  106. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  107. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  108. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-docker/README.md +0 -0
  109. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-docker/extension.json +0 -0
  110. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  111. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  112. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
  113. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  114. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  115. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  116. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  117. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-elixir/README.md +0 -0
  118. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  119. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  120. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-elm/README.md +0 -0
  121. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-elm/extension.json +0 -0
  122. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  123. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  124. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  125. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  126. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-gn/README.md +0 -0
  127. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-gn/extension.json +0 -0
  128. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  129. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-go/README.md +0 -0
  130. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-go/extension.json +0 -0
  131. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  132. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-graphql/README.md +0 -0
  133. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  134. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  135. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-html/README.md +0 -0
  136. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-html/extension.json +0 -0
  137. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  138. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  139. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-java/README.md +0 -0
  140. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-java/extension.json +0 -0
  141. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  142. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  143. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-javascript/README.md +0 -0
  144. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-javascript/extension.json +0 -0
  145. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  146. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  147. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-json/README.md +0 -0
  148. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-json/extension.json +0 -0
  149. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  150. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-json5/README.md +0 -0
  151. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-json5/extension.json +0 -0
  152. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  153. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-jsx/README.md +0 -0
  154. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  155. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  156. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-julia/README.md +0 -0
  157. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-julia/extension.json +0 -0
  158. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  159. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  160. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  161. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  162. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-less/LICENSE +0 -0
  163. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-less/README.md +0 -0
  164. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-less/extension.json +0 -0
  165. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  166. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  167. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-markdown/README.md +0 -0
  168. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  169. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  170. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-mdx/README.md +0 -0
  171. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  172. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  173. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nix/README.md +0 -0
  174. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nix/extension.json +0 -0
  175. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  176. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  177. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  178. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  179. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  180. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-perl/README.md +0 -0
  181. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-perl/extension.json +0 -0
  182. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  183. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  184. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  185. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  186. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-powershell/README.md +0 -0
  187. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  188. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  189. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-python/README.md +0 -0
  190. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-python/extension.json +0 -0
  191. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  192. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  193. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-r/README.md +0 -0
  194. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-r/extension.json +0 -0
  195. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  196. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-ruby/README.md +0 -0
  197. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  198. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  199. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  200. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-rust/README.md +0 -0
  201. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-rust/extension.json +0 -0
  202. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  203. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  204. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-scss/README.md +0 -0
  205. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-scss/extension.json +0 -0
  206. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  207. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  208. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  209. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  210. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  211. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-svelte/README.md +0 -0
  212. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  213. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  214. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-terraform/README.md +0 -0
  215. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  216. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  217. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-toml/README.md +0 -0
  218. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-toml/extension.json +0 -0
  219. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  220. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-typescript/README.md +0 -0
  221. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  222. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
  223. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  224. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-vue/README.md +0 -0
  225. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-vue/extension.json +0 -0
  226. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  227. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  228. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  229. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  230. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  231. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-xml/README.md +0 -0
  232. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-xml/extension.json +0 -0
  233. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  234. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-yaml/README.md +0 -0
  235. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  236. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  237. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  238. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  239. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  240. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  241. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-ayu/README.md +0 -0
  242. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  243. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-ayu/extension.json +0 -0
  244. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-ayu/images/demo.png +0 -0
  245. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-cobalt2/README.md +0 -0
  246. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  247. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  248. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  249. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  250. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-gruvbox/README.md +0 -0
  251. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  252. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-gruvbox/extension.json +0 -0
  253. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
  254. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-high-contrast/README.md +0 -0
  255. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  256. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  257. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-material/README.md +0 -0
  258. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-material/color-theme.json +0 -0
  259. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-material/extension.json +0 -0
  260. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-monokai/README.md +0 -0
  261. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  262. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-monokai/extension.json +0 -0
  263. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  264. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  265. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  266. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  267. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-palenight/README.md +0 -0
  268. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  269. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-palenight/extension.json +0 -0
  270. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  271. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-slime/README.md +0 -0
  272. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-slime/color-theme.json +0 -0
  273. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-slime/extension.json +0 -0
  274. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.theme-slime/icon.png +0 -0
  275. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/README.md +0 -0
  276. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/extension.json +0 -0
  277. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  278. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icon.png +0 -0
  279. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  280. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  281. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  282. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  283. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  284. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  285. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  286. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  287. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  288. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  289. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  290. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  291. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
  292. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  293. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  294. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  295. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  296. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
  297. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  298. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  299. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  300. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  301. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
  302. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  303. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
  304. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
  305. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  306. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  307. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  308. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  309. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  310. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  311. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  312. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  313. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  314. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  315. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  316. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  317. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  318. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  319. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  320. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  321. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  322. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
  323. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  324. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  325. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  326. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
  327. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  328. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  329. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  330. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  331. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  332. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  333. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  334. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  335. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  336. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  337. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  338. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  339. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  340. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  341. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  342. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  343. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  344. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  345. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  346. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  347. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  348. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  349. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  350. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  351. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  352. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  353. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  354. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  355. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  356. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  357. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  358. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  359. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  360. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  361. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  362. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  363. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  364. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  365. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  366. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  367. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  368. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  369. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  370. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  371. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  372. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  373. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  374. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  375. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  376. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  377. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  378. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  379. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  380. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  381. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  382. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  383. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  384. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  385. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  386. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  387. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  388. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  389. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  390. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  391. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  392. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  393. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  394. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  395. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  396. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  397. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  398. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  399. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  400. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
  401. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  402. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  403. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  404. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  405. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
  406. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  407. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  408. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  409. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  410. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  411. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  412. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  413. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  414. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  415. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  416. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  417. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  418. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  419. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  420. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  421. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  422. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  423. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  424. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  425. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  426. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  427. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  428. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  429. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  430. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  431. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  432. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  433. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  434. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  435. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  436. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  437. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  438. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  439. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  440. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  441. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  442. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  443. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  444. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  445. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  446. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  447. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  448. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  449. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  450. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  451. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  452. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  453. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  454. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  455. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  456. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  457. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  458. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  459. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  460. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  461. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  462. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  463. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  464. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  465. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  466. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  467. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
  468. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  469. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
  470. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  471. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  472. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  473. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  474. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  475. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  476. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  477. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  478. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  479. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  480. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  481. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  482. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  483. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  484. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  485. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  486. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  487. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  488. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  489. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  490. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  491. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  492. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  493. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  494. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  495. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  496. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  497. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  498. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  499. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  500. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  501. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  502. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  503. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
  504. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  505. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  506. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  507. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  508. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  509. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  510. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  511. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  512. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  513. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  514. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  515. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  516. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  517. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  518. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  519. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  520. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  521. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  522. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  523. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  524. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  525. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  526. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  527. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  528. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  529. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  530. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  531. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  532. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  533. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
  534. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  535. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  536. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  537. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  538. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  539. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  540. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  541. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  542. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  543. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  544. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  545. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  546. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  547. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  548. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  549. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  550. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  551. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  552. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  553. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  554. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  555. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  556. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  557. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  558. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  559. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  560. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  561. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  562. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  563. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  564. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  565. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  566. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
  567. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
  568. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  569. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
  570. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
  571. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  572. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  573. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  574. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  575. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  576. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  577. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  578. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
  579. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  580. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  581. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  582. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  583. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  584. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  585. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  586. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  587. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  588. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  589. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  590. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  591. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  592. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  593. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  594. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  595. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  596. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  597. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  598. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  599. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  600. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  601. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  602. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  603. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  604. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  605. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  606. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
  607. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  608. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  609. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  610. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  611. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  612. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  613. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  614. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  615. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  616. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  617. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  618. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  619. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  620. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  621. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  622. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  623. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  624. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  625. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  626. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  627. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  628. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  629. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  630. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  631. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  632. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  633. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  634. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  635. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  636. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  637. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  638. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  639. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  640. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  641. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  642. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  643. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  644. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  645. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  646. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  647. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  648. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  649. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  650. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  651. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  652. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  653. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  654. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  655. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  656. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  657. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  658. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  659. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  660. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  661. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  662. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  663. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  664. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  665. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  666. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
  667. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  668. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  669. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  670. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  671. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  672. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  673. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  674. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  675. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  676. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  677. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  678. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  679. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  680. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  681. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  682. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  683. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  684. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  685. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  686. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  687. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  688. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  689. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  690. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  691. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  692. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  693. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  694. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  695. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  696. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  697. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  698. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  699. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  700. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  701. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  702. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  703. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  704. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  705. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
  706. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
  707. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  708. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  709. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  710. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  711. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  712. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  713. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  714. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  715. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  716. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  717. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  718. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  719. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  720. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  721. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  722. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  723. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
  724. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  725. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  726. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  727. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  728. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  729. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  730. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  731. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  732. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  733. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  734. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  735. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  736. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  737. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  738. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  739. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  740. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  741. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  742. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  743. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  744. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  745. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  746. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  747. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  748. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  749. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  750. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  751. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  752. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  753. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  754. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  755. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  756. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  757. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  758. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  759. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  760. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  761. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  762. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  763. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  764. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  765. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  766. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  767. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  768. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
  769. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
  770. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  771. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  772. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  773. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
  774. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  775. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  776. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  777. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  778. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  779. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  780. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  781. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  782. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  783. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  784. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  785. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  786. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
  787. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  788. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  789. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  790. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  791. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  792. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  793. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  794. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  795. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  796. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  797. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  798. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  799. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  800. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  801. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  802. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  803. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  804. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  805. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
  806. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  807. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  808. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  809. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  810. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  811. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  812. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  813. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  814. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  815. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  816. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  817. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  818. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  819. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  820. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  821. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  822. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
  823. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  824. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  825. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  826. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  827. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  828. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  829. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  830. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  831. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  832. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  833. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  834. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  835. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  836. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  837. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  838. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  839. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  840. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  841. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  842. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  843. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  844. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  845. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  846. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  847. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  848. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  849. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  850. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  851. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  852. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  853. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  854. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  855. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  856. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  857. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  858. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  859. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  860. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  861. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  862. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  863. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  864. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  865. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  866. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  867. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  868. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
  869. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  870. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  871. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
  872. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  873. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  874. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  875. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  876. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  877. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  878. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  879. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  880. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  881. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  882. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  883. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  884. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  885. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  886. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  887. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  888. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  889. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  890. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  891. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  892. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  893. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  894. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  895. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  896. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  897. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  898. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
  899. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  900. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  901. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  902. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  903. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  904. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  905. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  906. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  907. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  908. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  909. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  910. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  911. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  912. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  913. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  914. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  915. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  916. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  917. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  918. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  919. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  920. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  921. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  922. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  923. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  924. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  925. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  926. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  927. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  928. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  929. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  930. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  931. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  932. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  933. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  934. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  935. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  936. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  937. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  938. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  939. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  940. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  941. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  942. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  943. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  944. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  945. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  946. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  947. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  948. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  949. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  950. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  951. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  952. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  953. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  954. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  955. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  956. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  957. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  958. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  959. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  960. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  961. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  962. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  963. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  964. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  965. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  966. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  967. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  968. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  969. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  970. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  971. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  972. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  973. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  974. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  975. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  976. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  977. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  978. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  979. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  980. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  981. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  982. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  983. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  984. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  985. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  986. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  987. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  988. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  989. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  990. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  991. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  992. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  993. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  994. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  995. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
  996. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  997. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  998. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  999. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  1000. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  1001. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  1002. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  1003. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  1004. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  1005. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  1006. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  1007. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  1008. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  1009. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  1010. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  1011. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  1012. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  1013. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  1014. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
  1015. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  1016. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  1017. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
  1018. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  1019. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  1020. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  1021. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  1022. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  1023. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  1024. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  1025. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  1026. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  1027. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  1028. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  1029. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  1030. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  1031. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  1032. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  1033. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  1034. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  1035. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  1036. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  1037. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  1038. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  1039. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  1040. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  1041. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  1042. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1043. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1044. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1045. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1046. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1047. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1048. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1049. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1050. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1051. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1052. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1053. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1054. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1055. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1056. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1057. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
  1058. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1059. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1060. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1061. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1062. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1063. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1064. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1065. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1066. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1067. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1068. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1069. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1070. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1071. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1072. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1073. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1074. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1075. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1076. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1077. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
  1078. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1079. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1080. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1081. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1082. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1083. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1084. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1085. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1086. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1087. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1088. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1089. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1090. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1091. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1092. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1093. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1094. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1095. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1096. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1097. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1098. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1099. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1100. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1101. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1102. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1103. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1104. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1105. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1106. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1107. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1108. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1109. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1110. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1111. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1112. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1113. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1114. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1115. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1116. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1117. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1118. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1119. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1120. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1121. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1122. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1123. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1124. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1125. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1126. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1127. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1128. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1129. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1130. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1131. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1132. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1133. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
  1134. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1135. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1136. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1137. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1138. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1139. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1140. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1141. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1142. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1143. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1144. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1145. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1146. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1147. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1148. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1149. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1150. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1151. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1152. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1153. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1154. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1155. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1156. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1157. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1158. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1159. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1160. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1161. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1162. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1163. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1164. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1165. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1166. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1167. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1168. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1169. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
  1170. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1171. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1172. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1173. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1174. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1175. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1176. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
  1177. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1178. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1179. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1180. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1181. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1182. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1183. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1184. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1185. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1186. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1187. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1188. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
  1189. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1190. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1191. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1192. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1193. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1194. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1195. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1196. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1197. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1198. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1199. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1200. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1201. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1202. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1203. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1204. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1205. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1206. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1207. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1208. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1209. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1210. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1211. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1212. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1213. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1214. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1215. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1216. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1217. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1218. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1219. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1220. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1221. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1222. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1223. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1224. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1225. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1226. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1227. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1228. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1229. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1230. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1231. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1232. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1233. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1234. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1235. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1236. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1237. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1238. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1239. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1240. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1241. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1242. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1243. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1244. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1245. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1246. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1247. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1248. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1249. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1250. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1251. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1252. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1253. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1254. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1255. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1256. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1257. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1258. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1259. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
  1260. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1261. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1262. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1263. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1264. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1265. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1266. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1267. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1268. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1269. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1270. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1271. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
  1272. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1273. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1274. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1275. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1276. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1277. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1278. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1279. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1280. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1281. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1282. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1283. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1284. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1285. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1286. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1287. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1288. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1289. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
  1290. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1291. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1292. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1293. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1294. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1295. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1296. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1297. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1298. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1299. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1300. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1301. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1302. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1303. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1304. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1305. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1306. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1307. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1308. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1309. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1310. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1311. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1312. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1313. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
  1314. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1315. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1316. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1317. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1318. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1319. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1320. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1321. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1322. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1323. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
  1324. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1325. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1326. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1327. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1328. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1329. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1330. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1331. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1332. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1333. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1334. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1335. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1336. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1337. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1338. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1339. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1340. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1341. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1342. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1343. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1344. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1345. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1346. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
  1347. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1348. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1349. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1350. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1351. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1352. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1353. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1354. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1355. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1356. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1357. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1358. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1359. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1360. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1361. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1362. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1363. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1364. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1365. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1366. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1367. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1368. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1369. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1370. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1371. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
  1372. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
  1373. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
  1374. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
  1375. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1376. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1377. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1378. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1379. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1380. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1381. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1382. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1383. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
  1384. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
  1385. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1386. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1387. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1388. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1389. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1390. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1391. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1392. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1393. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1394. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1395. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1396. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1397. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1398. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1399. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1400. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1401. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1402. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1403. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1404. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1405. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1406. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1407. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1408. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1409. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
  1410. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
  1411. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1412. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1413. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1414. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1415. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1416. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1417. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1418. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1419. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
  1420. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
  1421. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1422. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1423. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1424. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1425. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
  1426. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
  1427. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1428. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1429. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1430. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1431. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1432. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1433. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1434. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1435. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1436. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1437. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1438. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1439. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1440. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1441. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1442. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1443. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1444. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1445. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1446. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1447. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
  1448. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
  1449. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1450. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1451. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1452. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1453. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
  1454. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
  1455. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1456. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1457. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1458. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1459. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1460. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1461. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1462. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1463. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1464. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1465. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1466. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1467. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1468. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1469. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1470. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1471. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1472. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1473. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1474. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1475. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1476. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1477. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1478. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1479. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1480. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1481. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1482. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1483. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
  1484. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
  1485. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1486. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1487. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1488. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1489. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1490. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1491. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1492. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1493. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1494. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1495. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1496. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1497. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
  1498. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
  1499. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1500. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1501. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1502. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1503. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1504. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1505. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1506. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1507. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1508. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1509. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1510. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1511. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
  1512. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
  1513. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1514. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1515. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1516. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1517. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1518. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1519. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1520. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1521. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1522. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1523. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1524. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1525. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1526. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1527. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1528. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1529. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1530. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1531. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1532. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1533. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
  1534. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
  1535. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
  1536. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
  1537. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1538. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1539. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1540. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1541. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1542. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1543. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
  1544. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
  1545. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1546. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1547. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1548. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1549. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1550. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1551. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1552. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1553. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1554. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1555. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1556. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1557. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1558. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1559. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1560. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1561. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1562. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1563. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1564. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1565. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1566. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1567. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
  1568. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
  1569. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1570. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1571. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1572. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1573. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1574. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1575. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1576. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1577. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1578. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1579. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1580. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1581. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1582. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1583. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1584. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1585. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1586. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1587. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1588. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1589. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1590. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1591. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1592. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1593. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1594. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1595. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1596. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1597. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1598. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1599. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1600. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1601. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1602. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1603. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1604. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1605. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1606. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1607. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1608. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1609. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1610. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1611. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1612. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1613. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1614. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1615. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1616. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1617. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1618. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1619. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1620. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1621. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1622. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1623. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1624. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1625. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1626. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1627. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1628. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1629. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1630. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1631. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1632. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1633. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1634. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1635. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1636. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1637. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1638. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1639. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1640. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1641. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1642. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1643. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1644. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1645. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1646. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1647. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1648. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1649. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1650. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1651. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1652. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1653. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1654. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1655. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1656. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1657. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1658. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1659. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1660. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1661. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1662. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1663. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1664. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1665. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1666. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1667. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1668. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1669. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1670. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1671. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1672. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1673. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1674. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1675. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1676. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1677. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1678. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1679. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1680. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1681. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1682. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1683. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1684. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1685. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1686. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1687. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1688. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1689. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1690. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1691. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1692. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1693. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1694. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1695. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1696. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1697. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1698. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1699. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1700. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1701. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1702. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1703. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1704. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1705. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1706. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1707. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1708. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1709. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1710. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1711. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1712. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1713. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1714. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1715. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
  1716. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
  1717. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1718. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1719. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1720. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1721. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1722. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1723. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1724. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1725. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1726. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1727. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1728. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1729. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1730. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1731. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1732. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1733. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
  1734. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
  1735. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1736. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1737. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1738. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1739. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
  1740. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
  1741. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1742. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1743. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1744. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1745. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1746. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1747. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
  1748. /package/static/{c0b16fe → 5a230ea}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
  1749. /package/static/{c0b16fe → 5a230ea}/fonts/FiraCode-VariableFont.ttf +0 -0
  1750. /package/static/{c0b16fe → 5a230ea}/icons/add.svg +0 -0
  1751. /package/static/{c0b16fe → 5a230ea}/icons/arrow-down.svg +0 -0
  1752. /package/static/{c0b16fe → 5a230ea}/icons/arrow-left.svg +0 -0
  1753. /package/static/{c0b16fe → 5a230ea}/icons/arrow-right.svg +0 -0
  1754. /package/static/{c0b16fe → 5a230ea}/icons/arrow-up.svg +0 -0
  1755. /package/static/{c0b16fe → 5a230ea}/icons/blank.svg +0 -0
  1756. /package/static/{c0b16fe → 5a230ea}/icons/book.svg +0 -0
  1757. /package/static/{c0b16fe → 5a230ea}/icons/case-sensitive.svg +0 -0
  1758. /package/static/{c0b16fe → 5a230ea}/icons/check.svg +0 -0
  1759. /package/static/{c0b16fe → 5a230ea}/icons/chevron-down.svg +0 -0
  1760. /package/static/{c0b16fe → 5a230ea}/icons/chevron-left.svg +0 -0
  1761. /package/static/{c0b16fe → 5a230ea}/icons/chevron-right.svg +0 -0
  1762. /package/static/{c0b16fe → 5a230ea}/icons/chevron-up.svg +0 -0
  1763. /package/static/{c0b16fe → 5a230ea}/icons/chrome-close.svg +0 -0
  1764. /package/static/{c0b16fe → 5a230ea}/icons/chrome-maximize.svg +0 -0
  1765. /package/static/{c0b16fe → 5a230ea}/icons/chrome-minimize.svg +0 -0
  1766. /package/static/{c0b16fe → 5a230ea}/icons/chrome-restore.svg +0 -0
  1767. /package/static/{c0b16fe → 5a230ea}/icons/circle-filled.svg +0 -0
  1768. /package/static/{c0b16fe → 5a230ea}/icons/clear-all.svg +0 -0
  1769. /package/static/{c0b16fe → 5a230ea}/icons/close.svg +0 -0
  1770. /package/static/{c0b16fe → 5a230ea}/icons/cloud.svg +0 -0
  1771. /package/static/{c0b16fe → 5a230ea}/icons/collapse-all.svg +0 -0
  1772. /package/static/{c0b16fe → 5a230ea}/icons/debug-all.svg +0 -0
  1773. /package/static/{c0b16fe → 5a230ea}/icons/debug-alt-2.svg +0 -0
  1774. /package/static/{c0b16fe → 5a230ea}/icons/debug-alt-small.svg +0 -0
  1775. /package/static/{c0b16fe → 5a230ea}/icons/debug-alt.svg +0 -0
  1776. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  1777. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-conditional.svg +0 -0
  1778. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-data-unverified.svg +0 -0
  1779. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-data.svg +0 -0
  1780. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-function-unverified.svg +0 -0
  1781. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-function.svg +0 -0
  1782. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-log-unverified.svg +0 -0
  1783. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-log.svg +0 -0
  1784. /package/static/{c0b16fe → 5a230ea}/icons/debug-breakpoint-unsupported.svg +0 -0
  1785. /package/static/{c0b16fe → 5a230ea}/icons/debug-console.svg +0 -0
  1786. /package/static/{c0b16fe → 5a230ea}/icons/debug-continue-small.svg +0 -0
  1787. /package/static/{c0b16fe → 5a230ea}/icons/debug-continue.svg +0 -0
  1788. /package/static/{c0b16fe → 5a230ea}/icons/debug-coverage.svg +0 -0
  1789. /package/static/{c0b16fe → 5a230ea}/icons/debug-disconnect.svg +0 -0
  1790. /package/static/{c0b16fe → 5a230ea}/icons/debug-line-by-line.svg +0 -0
  1791. /package/static/{c0b16fe → 5a230ea}/icons/debug-pause.svg +0 -0
  1792. /package/static/{c0b16fe → 5a230ea}/icons/debug-rerun.svg +0 -0
  1793. /package/static/{c0b16fe → 5a230ea}/icons/debug-restart-frame.svg +0 -0
  1794. /package/static/{c0b16fe → 5a230ea}/icons/debug-restart.svg +0 -0
  1795. /package/static/{c0b16fe → 5a230ea}/icons/debug-reverse-continue.svg +0 -0
  1796. /package/static/{c0b16fe → 5a230ea}/icons/debug-stackframe-active.svg +0 -0
  1797. /package/static/{c0b16fe → 5a230ea}/icons/debug-stackframe.svg +0 -0
  1798. /package/static/{c0b16fe → 5a230ea}/icons/debug-start.svg +0 -0
  1799. /package/static/{c0b16fe → 5a230ea}/icons/debug-step-back.svg +0 -0
  1800. /package/static/{c0b16fe → 5a230ea}/icons/debug-step-into.svg +0 -0
  1801. /package/static/{c0b16fe → 5a230ea}/icons/debug-step-out.svg +0 -0
  1802. /package/static/{c0b16fe → 5a230ea}/icons/debug-step-over.svg +0 -0
  1803. /package/static/{c0b16fe → 5a230ea}/icons/debug-stop.svg +0 -0
  1804. /package/static/{c0b16fe → 5a230ea}/icons/debug.svg +0 -0
  1805. /package/static/{c0b16fe → 5a230ea}/icons/discard.svg +0 -0
  1806. /package/static/{c0b16fe → 5a230ea}/icons/edit.svg +0 -0
  1807. /package/static/{c0b16fe → 5a230ea}/icons/ellipsis.svg +0 -0
  1808. /package/static/{c0b16fe → 5a230ea}/icons/error.svg +0 -0
  1809. /package/static/{c0b16fe → 5a230ea}/icons/exclude.svg +0 -0
  1810. /package/static/{c0b16fe → 5a230ea}/icons/extensionDefaultIcon.png +0 -0
  1811. /package/static/{c0b16fe → 5a230ea}/icons/extensions.svg +0 -0
  1812. /package/static/{c0b16fe → 5a230ea}/icons/files.svg +0 -0
  1813. /package/static/{c0b16fe → 5a230ea}/icons/filter.svg +0 -0
  1814. /package/static/{c0b16fe → 5a230ea}/icons/go-to-file.svg +0 -0
  1815. /package/static/{c0b16fe → 5a230ea}/icons/icon-close.svg +0 -0
  1816. /package/static/{c0b16fe → 5a230ea}/icons/icon-source-control.svg +0 -0
  1817. /package/static/{c0b16fe → 5a230ea}/icons/icon-sync.svg +0 -0
  1818. /package/static/{c0b16fe → 5a230ea}/icons/icon.png +0 -0
  1819. /package/static/{c0b16fe → 5a230ea}/icons/icon.svg +0 -0
  1820. /package/static/{c0b16fe → 5a230ea}/icons/info.svg +0 -0
  1821. /package/static/{c0b16fe → 5a230ea}/icons/language-icon.svg +0 -0
  1822. /package/static/{c0b16fe → 5a230ea}/icons/link-external.svg +0 -0
  1823. /package/static/{c0b16fe → 5a230ea}/icons/list-flat.svg +0 -0
  1824. /package/static/{c0b16fe → 5a230ea}/icons/list-tree.svg +0 -0
  1825. /package/static/{c0b16fe → 5a230ea}/icons/new-file.svg +0 -0
  1826. /package/static/{c0b16fe → 5a230ea}/icons/new-folder.svg +0 -0
  1827. /package/static/{c0b16fe → 5a230ea}/icons/newline.svg +0 -0
  1828. /package/static/{c0b16fe → 5a230ea}/icons/open-preview.svg +0 -0
  1829. /package/static/{c0b16fe → 5a230ea}/icons/play.svg +0 -0
  1830. /package/static/{c0b16fe → 5a230ea}/icons/preserve-case.svg +0 -0
  1831. /package/static/{c0b16fe → 5a230ea}/icons/progress.svg +0 -0
  1832. /package/static/{c0b16fe → 5a230ea}/icons/pwa-icon-192.png +0 -0
  1833. /package/static/{c0b16fe → 5a230ea}/icons/pwa-icon-512.png +0 -0
  1834. /package/static/{c0b16fe → 5a230ea}/icons/record-keys.svg +0 -0
  1835. /package/static/{c0b16fe → 5a230ea}/icons/refresh.svg +0 -0
  1836. /package/static/{c0b16fe → 5a230ea}/icons/regex.svg +0 -0
  1837. /package/static/{c0b16fe → 5a230ea}/icons/remove.svg +0 -0
  1838. /package/static/{c0b16fe → 5a230ea}/icons/replace-all.svg +0 -0
  1839. /package/static/{c0b16fe → 5a230ea}/icons/replace.svg +0 -0
  1840. /package/static/{c0b16fe → 5a230ea}/icons/repo.svg +0 -0
  1841. /package/static/{c0b16fe → 5a230ea}/icons/run-all.svg +0 -0
  1842. /package/static/{c0b16fe → 5a230ea}/icons/search.svg +0 -0
  1843. /package/static/{c0b16fe → 5a230ea}/icons/send.svg +0 -0
  1844. /package/static/{c0b16fe → 5a230ea}/icons/settings-gear.svg +0 -0
  1845. /package/static/{c0b16fe → 5a230ea}/icons/sort-precedence.svg +0 -0
  1846. /package/static/{c0b16fe → 5a230ea}/icons/source-control.svg +0 -0
  1847. /package/static/{c0b16fe → 5a230ea}/icons/split-horizontal.svg +0 -0
  1848. /package/static/{c0b16fe → 5a230ea}/icons/squiggly-error.svg +0 -0
  1849. /package/static/{c0b16fe → 5a230ea}/icons/squiggly-warning.svg +0 -0
  1850. /package/static/{c0b16fe → 5a230ea}/icons/symbol-array.svg +0 -0
  1851. /package/static/{c0b16fe → 5a230ea}/icons/symbol-boolean.svg +0 -0
  1852. /package/static/{c0b16fe → 5a230ea}/icons/symbol-class.svg +0 -0
  1853. /package/static/{c0b16fe → 5a230ea}/icons/symbol-color.svg +0 -0
  1854. /package/static/{c0b16fe → 5a230ea}/icons/symbol-constant.svg +0 -0
  1855. /package/static/{c0b16fe → 5a230ea}/icons/symbol-enum-member.svg +0 -0
  1856. /package/static/{c0b16fe → 5a230ea}/icons/symbol-enum.svg +0 -0
  1857. /package/static/{c0b16fe → 5a230ea}/icons/symbol-event.svg +0 -0
  1858. /package/static/{c0b16fe → 5a230ea}/icons/symbol-field.svg +0 -0
  1859. /package/static/{c0b16fe → 5a230ea}/icons/symbol-file.svg +0 -0
  1860. /package/static/{c0b16fe → 5a230ea}/icons/symbol-interface.svg +0 -0
  1861. /package/static/{c0b16fe → 5a230ea}/icons/symbol-key.svg +0 -0
  1862. /package/static/{c0b16fe → 5a230ea}/icons/symbol-keyword.svg +0 -0
  1863. /package/static/{c0b16fe → 5a230ea}/icons/symbol-method.svg +0 -0
  1864. /package/static/{c0b16fe → 5a230ea}/icons/symbol-misc.svg +0 -0
  1865. /package/static/{c0b16fe → 5a230ea}/icons/symbol-namespace.svg +0 -0
  1866. /package/static/{c0b16fe → 5a230ea}/icons/symbol-numeric.svg +0 -0
  1867. /package/static/{c0b16fe → 5a230ea}/icons/symbol-operator.svg +0 -0
  1868. /package/static/{c0b16fe → 5a230ea}/icons/symbol-parameter.svg +0 -0
  1869. /package/static/{c0b16fe → 5a230ea}/icons/symbol-property.svg +0 -0
  1870. /package/static/{c0b16fe → 5a230ea}/icons/symbol-ruler.svg +0 -0
  1871. /package/static/{c0b16fe → 5a230ea}/icons/symbol-snippet.svg +0 -0
  1872. /package/static/{c0b16fe → 5a230ea}/icons/symbol-string.svg +0 -0
  1873. /package/static/{c0b16fe → 5a230ea}/icons/symbol-structure.svg +0 -0
  1874. /package/static/{c0b16fe → 5a230ea}/icons/symbol-variable.svg +0 -0
  1875. /package/static/{c0b16fe → 5a230ea}/icons/tag.svg +0 -0
  1876. /package/static/{c0b16fe → 5a230ea}/icons/terminal-bash.svg +0 -0
  1877. /package/static/{c0b16fe → 5a230ea}/icons/terminal.svg +0 -0
  1878. /package/static/{c0b16fe → 5a230ea}/icons/theme-icon.png +0 -0
  1879. /package/static/{c0b16fe → 5a230ea}/icons/trash.svg +0 -0
  1880. /package/static/{c0b16fe → 5a230ea}/icons/triangle-down.svg +0 -0
  1881. /package/static/{c0b16fe → 5a230ea}/icons/triangle-left.svg +0 -0
  1882. /package/static/{c0b16fe → 5a230ea}/icons/triangle-right.svg +0 -0
  1883. /package/static/{c0b16fe → 5a230ea}/icons/triangle-up.svg +0 -0
  1884. /package/static/{c0b16fe → 5a230ea}/icons/warning.svg +0 -0
  1885. /package/static/{c0b16fe → 5a230ea}/icons/whole-word.svg +0 -0
  1886. /package/static/{c0b16fe → 5a230ea}/icons/zoom-in.svg +0 -0
  1887. /package/static/{c0b16fe → 5a230ea}/icons/zoom-out.svg +0 -0
  1888. /package/static/{c0b16fe → 5a230ea}/js/babel-parser.js +0 -0
  1889. /package/static/{c0b16fe → 5a230ea}/js/ky.js +0 -0
  1890. /package/static/{c0b16fe → 5a230ea}/js/lvce-editor-import-script.js +0 -0
  1891. /package/static/{c0b16fe → 5a230ea}/js/lvce-editor-ipc.js +0 -0
  1892. /package/static/{c0b16fe → 5a230ea}/js/lvce-editor-json-rpc.js +0 -0
  1893. /package/static/{c0b16fe → 5a230ea}/js/lvce-editor-rpc.js +0 -0
  1894. /package/static/{c0b16fe → 5a230ea}/js/lvce-editor-verror.js +0 -0
  1895. /package/static/{c0b16fe → 5a230ea}/js/p-min-delay.js +0 -0
  1896. /package/static/{c0b16fe → 5a230ea}/js/pretty-bytes.js +0 -0
  1897. /package/static/{c0b16fe → 5a230ea}/js/preview-injected.js +0 -0
  1898. /package/static/{c0b16fe → 5a230ea}/js/yoctodelay.js +0 -0
  1899. /package/static/{c0b16fe → 5a230ea}/lib-css/termterm.css +0 -0
  1900. /package/static/{c0b16fe → 5a230ea}/packages/chat-coordinator-worker/dist/chatCoordinatorWorkerMain.js +0 -0
  1901. /package/static/{c0b16fe → 5a230ea}/packages/chat-math-worker/dist/chatMathWorkerMain.js +0 -0
  1902. /package/static/{c0b16fe → 5a230ea}/packages/chat-message-parsing-worker/dist/chatMessageParsingWorkerMain.js +0 -0
  1903. /package/static/{c0b16fe → 5a230ea}/packages/chat-network-worker/dist/chatNetworkWorkerMain.js +0 -0
  1904. /package/static/{c0b16fe → 5a230ea}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  1905. /package/static/{c0b16fe → 5a230ea}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  1906. /package/static/{c0b16fe → 5a230ea}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  1907. /package/static/{c0b16fe → 5a230ea}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  1908. /package/static/{c0b16fe → 5a230ea}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
  1909. /package/static/{c0b16fe → 5a230ea}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  1910. /package/static/{c0b16fe → 5a230ea}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  1911. /package/static/{c0b16fe → 5a230ea}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
  1912. /package/static/{c0b16fe → 5a230ea}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
  1913. /package/static/{c0b16fe → 5a230ea}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  1914. /package/static/{c0b16fe → 5a230ea}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
  1915. /package/static/{c0b16fe → 5a230ea}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
  1916. /package/static/{c0b16fe → 5a230ea}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
  1917. /package/static/{c0b16fe → 5a230ea}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  1918. /package/static/{c0b16fe → 5a230ea}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  1919. /package/static/{c0b16fe → 5a230ea}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  1920. /package/static/{c0b16fe → 5a230ea}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  1921. /package/static/{c0b16fe → 5a230ea}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  1922. /package/static/{c0b16fe → 5a230ea}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  1923. /package/static/{c0b16fe → 5a230ea}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  1924. /package/static/{c0b16fe → 5a230ea}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
  1925. /package/static/{c0b16fe → 5a230ea}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
  1926. /package/static/{c0b16fe → 5a230ea}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  1927. /package/static/{c0b16fe → 5a230ea}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
  1928. /package/static/{c0b16fe → 5a230ea}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
  1929. /package/static/{c0b16fe → 5a230ea}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
  1930. /package/static/{c0b16fe → 5a230ea}/packages/preload/dist/index.js +0 -0
  1931. /package/static/{c0b16fe → 5a230ea}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
  1932. /package/static/{c0b16fe → 5a230ea}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
  1933. /package/static/{c0b16fe → 5a230ea}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
  1934. /package/static/{c0b16fe → 5a230ea}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
  1935. /package/static/{c0b16fe → 5a230ea}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  1936. /package/static/{c0b16fe → 5a230ea}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  1937. /package/static/{c0b16fe → 5a230ea}/packages/renderer-process/LICENSE +0 -0
  1938. /package/static/{c0b16fe → 5a230ea}/packages/renderer-process/README.md +0 -0
  1939. /package/static/{c0b16fe → 5a230ea}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  1940. /package/static/{c0b16fe → 5a230ea}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  1941. /package/static/{c0b16fe → 5a230ea}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  1942. /package/static/{c0b16fe → 5a230ea}/packages/status-bar-worker/dist/statusBarWorkerMain.js +0 -0
  1943. /package/static/{c0b16fe → 5a230ea}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  1944. /package/static/{c0b16fe → 5a230ea}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
  1945. /package/static/{c0b16fe → 5a230ea}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
  1946. /package/static/{c0b16fe → 5a230ea}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  1947. /package/static/{c0b16fe → 5a230ea}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
  1948. /package/static/{c0b16fe → 5a230ea}/packages/update-worker/dist/updateWorkerMain.js +0 -0
  1949. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.cpp +0 -0
  1950. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.css +0 -0
  1951. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.csv +0 -0
  1952. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.dart +0 -0
  1953. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.env +0 -0
  1954. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.ex +0 -0
  1955. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.html +0 -0
  1956. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.java +0 -0
  1957. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.jl +0 -0
  1958. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.js +0 -0
  1959. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.json +0 -0
  1960. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.kt +0 -0
  1961. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.pl +0 -0
  1962. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.py +0 -0
  1963. /package/static/{c0b16fe → 5a230ea}/playground/languages/index.ts +0 -0
  1964. /package/static/{c0b16fe → 5a230ea}/playground/languages/scrolling.txt +0 -0
  1965. /package/static/{c0b16fe → 5a230ea}/playground/languages/tsconfig.json +0 -0
  1966. /package/static/{c0b16fe → 5a230ea}/playground/sample-folder/a.txt +0 -0
  1967. /package/static/{c0b16fe → 5a230ea}/playground/sample-folder/b.txt +0 -0
  1968. /package/static/{c0b16fe → 5a230ea}/playground/sample-folder/c.txt +0 -0
@@ -54,6 +54,49 @@ class VError extends Error {
54
54
  }
55
55
  }
56
56
 
57
+ class AssertionError extends Error {
58
+ constructor(message) {
59
+ super(message);
60
+ this.name = 'AssertionError';
61
+ }
62
+ }
63
+ const Object$1 = 1;
64
+ const Number$1 = 2;
65
+ const Array$1 = 3;
66
+ const String$1 = 4;
67
+ const Boolean$1 = 5;
68
+ const Function = 6;
69
+ const Null = 7;
70
+ const Unknown = 8;
71
+ const getType = value => {
72
+ switch (typeof value) {
73
+ case 'number':
74
+ return Number$1;
75
+ case 'function':
76
+ return Function;
77
+ case 'string':
78
+ return String$1;
79
+ case 'object':
80
+ if (value === null) {
81
+ return Null;
82
+ }
83
+ if (Array.isArray(value)) {
84
+ return Array$1;
85
+ }
86
+ return Object$1;
87
+ case 'boolean':
88
+ return Boolean$1;
89
+ default:
90
+ return Unknown;
91
+ }
92
+ };
93
+ const number = value => {
94
+ const type = getType(value);
95
+ if (type !== Number$1) {
96
+ throw new AssertionError('expected value to be of type number');
97
+ }
98
+ };
99
+
57
100
  const isMessagePort = value => {
58
101
  return value && value instanceof MessagePort;
59
102
  };
@@ -368,6 +411,100 @@ const IpcChildWithModuleWorkerAndMessagePort$1 = {
368
411
  listen: listen$6,
369
412
  wrap: wrap$e
370
413
  };
414
+ const addListener = (emitter, type, callback) => {
415
+ if ('addEventListener' in emitter) {
416
+ emitter.addEventListener(type, callback);
417
+ } else {
418
+ emitter.on(type, callback);
419
+ }
420
+ };
421
+ const removeListener = (emitter, type, callback) => {
422
+ if ('removeEventListener' in emitter) {
423
+ emitter.removeEventListener(type, callback);
424
+ } else {
425
+ emitter.off(type, callback);
426
+ }
427
+ };
428
+ const getFirstEvent = (eventEmitter, eventMap) => {
429
+ const {
430
+ promise,
431
+ resolve
432
+ } = Promise.withResolvers();
433
+ const listenerMap = Object.create(null);
434
+ const cleanup = value => {
435
+ for (const event of Object.keys(eventMap)) {
436
+ removeListener(eventEmitter, event, listenerMap[event]);
437
+ }
438
+ resolve(value);
439
+ };
440
+ for (const [event, type] of Object.entries(eventMap)) {
441
+ const listener = event => {
442
+ cleanup({
443
+ event,
444
+ type
445
+ });
446
+ };
447
+ addListener(eventEmitter, event, listener);
448
+ listenerMap[event] = listener;
449
+ }
450
+ return promise;
451
+ };
452
+ const Message$1 = 3;
453
+ const create$5$1 = async ({
454
+ isMessagePortOpen,
455
+ messagePort
456
+ }) => {
457
+ if (!isMessagePort(messagePort)) {
458
+ throw new IpcError('port must be of type MessagePort');
459
+ }
460
+ if (isMessagePortOpen) {
461
+ return messagePort;
462
+ }
463
+ const eventPromise = getFirstEvent(messagePort, {
464
+ message: Message$1
465
+ });
466
+ messagePort.start();
467
+ const {
468
+ event,
469
+ type
470
+ } = await eventPromise;
471
+ if (type !== Message$1) {
472
+ throw new IpcError('Failed to wait for ipc message');
473
+ }
474
+ if (event.data !== readyMessage) {
475
+ throw new IpcError('unexpected first message');
476
+ }
477
+ return messagePort;
478
+ };
479
+ const signal$1 = messagePort => {
480
+ messagePort.start();
481
+ };
482
+ class IpcParentWithMessagePort extends Ipc {
483
+ getData = getData$2;
484
+ send(message) {
485
+ this._rawIpc.postMessage(message);
486
+ }
487
+ sendAndTransfer(message) {
488
+ const transfer = getTransferrables(message);
489
+ this._rawIpc.postMessage(message, transfer);
490
+ }
491
+ dispose() {
492
+ this._rawIpc.close();
493
+ }
494
+ onMessage(callback) {
495
+ this._rawIpc.addEventListener('message', callback);
496
+ }
497
+ onClose(callback) {}
498
+ }
499
+ const wrap$5 = messagePort => {
500
+ return new IpcParentWithMessagePort(messagePort);
501
+ };
502
+ const IpcParentWithMessagePort$1 = {
503
+ __proto__: null,
504
+ create: create$5$1,
505
+ signal: signal$1,
506
+ wrap: wrap$5
507
+ };
371
508
 
372
509
  class CommandNotFoundError extends Error {
373
510
  constructor(command) {
@@ -392,10 +529,10 @@ const execute = (command, ...args) => {
392
529
 
393
530
  const Two$1 = '2.0';
394
531
  const callbacks = Object.create(null);
395
- const get$1 = id => {
532
+ const get$2 = id => {
396
533
  return callbacks[id];
397
534
  };
398
- const remove = id => {
535
+ const remove$1 = id => {
399
536
  delete callbacks[id];
400
537
  };
401
538
  class JsonRpcError extends Error {
@@ -541,14 +678,14 @@ const warn = (...args) => {
541
678
  console.warn(...args);
542
679
  };
543
680
  const resolve = (id, response) => {
544
- const fn = get$1(id);
681
+ const fn = get$2(id);
545
682
  if (!fn) {
546
683
  console.log(response);
547
684
  warn(`callback ${id} may already be disposed`);
548
685
  return;
549
686
  }
550
687
  fn(response);
551
- remove(id);
688
+ remove$1(id);
552
689
  };
553
690
  const E_COMMAND_NOT_FOUND = 'E_COMMAND_NOT_FOUND';
554
691
  const getErrorType = prettyError => {
@@ -604,7 +741,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
604
741
  const errorProperty = getErrorProperty(error, prettyError);
605
742
  return create$1$1(id, errorProperty);
606
743
  };
607
- const create$6 = (message, result) => {
744
+ const create$a = (message, result) => {
608
745
  return {
609
746
  id: message.id,
610
747
  jsonrpc: Two$1,
@@ -613,7 +750,7 @@ const create$6 = (message, result) => {
613
750
  };
614
751
  const getSuccessResponse = (message, result) => {
615
752
  const resultProperty = result ?? null;
616
- return create$6(message, resultProperty);
753
+ return create$a(message, resultProperty);
617
754
  };
618
755
  const getErrorResponseSimple = (id, error) => {
619
756
  return {
@@ -707,7 +844,7 @@ const handleJsonRpcMessage = async (...args) => {
707
844
 
708
845
  const Two = '2.0';
709
846
 
710
- const create$5 = (method, params) => {
847
+ const create$9 = (method, params) => {
711
848
  return {
712
849
  jsonrpc: Two,
713
850
  method,
@@ -715,7 +852,7 @@ const create$5 = (method, params) => {
715
852
  };
716
853
  };
717
854
 
718
- const create$4 = (id, method, params) => {
855
+ const create$8 = (id, method, params) => {
719
856
  const message = {
720
857
  id,
721
858
  jsonrpc: Two,
@@ -726,12 +863,12 @@ const create$4 = (id, method, params) => {
726
863
  };
727
864
 
728
865
  let id = 0;
729
- const create$3 = () => {
866
+ const create$7 = () => {
730
867
  return ++id;
731
868
  };
732
869
 
733
870
  const registerPromise = map => {
734
- const id = create$3();
871
+ const id = create$7();
735
872
  const {
736
873
  promise,
737
874
  resolve
@@ -748,7 +885,7 @@ const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer)
748
885
  id,
749
886
  promise
750
887
  } = registerPromise(callbacks);
751
- const message = create$4(id, method, params);
888
+ const message = create$8(id, method, params);
752
889
  if (useSendAndTransfer && ipc.sendAndTransfer) {
753
890
  ipc.sendAndTransfer(message);
754
891
  } else {
@@ -784,7 +921,7 @@ const createRpc = ipc => {
784
921
  * @deprecated
785
922
  */
786
923
  send(method, ...params) {
787
- const message = create$5(method, params);
924
+ const message = create$9(method, params);
788
925
  ipc.send(message);
789
926
  }
790
927
  };
@@ -824,7 +961,84 @@ const listen$1 = async (module, options) => {
824
961
  return ipc;
825
962
  };
826
963
 
827
- const create$2 = async ({
964
+ const create$6 = async ({
965
+ commandMap,
966
+ isMessagePortOpen = true,
967
+ messagePort
968
+ }) => {
969
+ // TODO create a commandMap per rpc instance
970
+ register(commandMap);
971
+ const rawIpc = await IpcParentWithMessagePort$1.create({
972
+ isMessagePortOpen,
973
+ messagePort
974
+ });
975
+ const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
976
+ handleIpc(ipc);
977
+ const rpc = createRpc(ipc);
978
+ messagePort.start();
979
+ return rpc;
980
+ };
981
+
982
+ const create$5 = async ({
983
+ commandMap,
984
+ isMessagePortOpen,
985
+ send
986
+ }) => {
987
+ const {
988
+ port1,
989
+ port2
990
+ } = new MessageChannel();
991
+ await send(port1);
992
+ return create$6({
993
+ commandMap,
994
+ isMessagePortOpen,
995
+ messagePort: port2
996
+ });
997
+ };
998
+
999
+ const createSharedLazyRpc = factory => {
1000
+ let rpcPromise;
1001
+ const getOrCreate = () => {
1002
+ if (!rpcPromise) {
1003
+ rpcPromise = factory();
1004
+ }
1005
+ return rpcPromise;
1006
+ };
1007
+ return {
1008
+ async dispose() {
1009
+ const rpc = await getOrCreate();
1010
+ await rpc.dispose();
1011
+ },
1012
+ async invoke(method, ...params) {
1013
+ const rpc = await getOrCreate();
1014
+ return rpc.invoke(method, ...params);
1015
+ },
1016
+ async invokeAndTransfer(method, ...params) {
1017
+ const rpc = await getOrCreate();
1018
+ return rpc.invokeAndTransfer(method, ...params);
1019
+ },
1020
+ async send(method, ...params) {
1021
+ const rpc = await getOrCreate();
1022
+ rpc.send(method, ...params);
1023
+ }
1024
+ };
1025
+ };
1026
+
1027
+ const create$4 = async ({
1028
+ commandMap,
1029
+ isMessagePortOpen,
1030
+ send
1031
+ }) => {
1032
+ return createSharedLazyRpc(() => {
1033
+ return create$5({
1034
+ commandMap,
1035
+ isMessagePortOpen,
1036
+ send
1037
+ });
1038
+ });
1039
+ };
1040
+
1041
+ const create$3 = async ({
828
1042
  commandMap
829
1043
  }) => {
830
1044
  // TODO create a commandMap per rpc instance
@@ -835,6 +1049,124 @@ const create$2 = async ({
835
1049
  return rpc;
836
1050
  };
837
1051
 
1052
+ const createMockRpc = ({
1053
+ commandMap
1054
+ }) => {
1055
+ const invocations = [];
1056
+ const invoke = (method, ...params) => {
1057
+ invocations.push([method, ...params]);
1058
+ const command = commandMap[method];
1059
+ if (!command) {
1060
+ throw new Error(`command ${method} not found`);
1061
+ }
1062
+ return command(...params);
1063
+ };
1064
+ const mockRpc = {
1065
+ invocations,
1066
+ invoke,
1067
+ invokeAndTransfer: invoke
1068
+ };
1069
+ return mockRpc;
1070
+ };
1071
+
1072
+ const rpcs = Object.create(null);
1073
+ const set$3 = (id, rpc) => {
1074
+ rpcs[id] = rpc;
1075
+ };
1076
+ const get$1 = id => {
1077
+ return rpcs[id];
1078
+ };
1079
+ const remove = id => {
1080
+ delete rpcs[id];
1081
+ };
1082
+
1083
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
1084
+ const create$2 = rpcId => {
1085
+ return {
1086
+ async dispose() {
1087
+ const rpc = get$1(rpcId);
1088
+ await rpc.dispose();
1089
+ },
1090
+ // @ts-ignore
1091
+ invoke(method, ...params) {
1092
+ const rpc = get$1(rpcId);
1093
+ // @ts-ignore
1094
+ return rpc.invoke(method, ...params);
1095
+ },
1096
+ // @ts-ignore
1097
+ invokeAndTransfer(method, ...params) {
1098
+ const rpc = get$1(rpcId);
1099
+ // @ts-ignore
1100
+ return rpc.invokeAndTransfer(method, ...params);
1101
+ },
1102
+ registerMockRpc(commandMap) {
1103
+ const mockRpc = createMockRpc({
1104
+ commandMap
1105
+ });
1106
+ set$3(rpcId, mockRpc);
1107
+ // @ts-ignore
1108
+ mockRpc[Symbol.dispose] = () => {
1109
+ remove(rpcId);
1110
+ };
1111
+ // @ts-ignore
1112
+ return mockRpc;
1113
+ },
1114
+ set(rpc) {
1115
+ set$3(rpcId, rpc);
1116
+ }
1117
+ };
1118
+ };
1119
+
1120
+ const Button$1 = 1;
1121
+ const Div = 4;
1122
+ const Input = 6;
1123
+ const Span = 8;
1124
+ const Table = 9;
1125
+ const TBody = 10;
1126
+ const Td = 11;
1127
+ const Text = 12;
1128
+ const Th = 13;
1129
+ const THead = 14;
1130
+ const Tr = 15;
1131
+ const Section = 41;
1132
+ const Search = 42;
1133
+ const Label = 66;
1134
+ const Reference = 100;
1135
+
1136
+ const Button = 'event.button';
1137
+ const ClientX = 'event.clientX';
1138
+ const ClientY = 'event.clientY';
1139
+ const TargetName = 'event.target.name';
1140
+ const TargetValue = 'event.target.value';
1141
+
1142
+ const ChatStorageWorker = 6003;
1143
+ const RendererWorker = 1;
1144
+
1145
+ const SetCss = 'Viewlet.setCss';
1146
+ const SetDom2 = 'Viewlet.setDom2';
1147
+ const SetPatches = 'Viewlet.setPatches';
1148
+
1149
+ const {
1150
+ invoke: invoke$1,
1151
+ set: set$2
1152
+ } = create$2(ChatStorageWorker);
1153
+
1154
+ const {
1155
+ invoke,
1156
+ invokeAndTransfer,
1157
+ set: set$1
1158
+ } = create$2(RendererWorker);
1159
+ const showContextMenu2 = async (uid, menuId, x, y, args) => {
1160
+ number(uid);
1161
+ number(menuId);
1162
+ number(x);
1163
+ number(y);
1164
+ await invoke('ContextMenu.show2', uid, menuId, x, y, args);
1165
+ };
1166
+ const sendMessagePortToChatStorageWorker$1 = async port => {
1167
+ await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToChatStorageWorker', port, 'HandleMessagePort.handleMessagePort');
1168
+ };
1169
+
838
1170
  const toCommandId = key => {
839
1171
  const dotIndex = key.indexOf('.');
840
1172
  return key.slice(dotIndex + 1);
@@ -955,6 +1287,41 @@ const terminate = () => {
955
1287
  globalThis.close();
956
1288
  };
957
1289
 
1290
+ const appendEvent = async event => {
1291
+ return invoke$1('ChatStorage.appendEvent', event);
1292
+ };
1293
+ const listChatViewEvents$1 = async sessionId => {
1294
+ return invoke$1('ChatStorage.listChatViewEvents', sessionId);
1295
+ };
1296
+ const loadSelectedEvent$1 = async (sessionId, eventId, type) => {
1297
+ return invoke$1('ChatStorage.loadSelectedEvent', sessionId, eventId, type);
1298
+ };
1299
+
1300
+ const appendStoredEventForTestDependencies = {
1301
+ appendEvent: appendEvent
1302
+ };
1303
+ const appendStoredEventForTest = async (state, event) => {
1304
+ await appendStoredEventForTestDependencies.appendEvent(event);
1305
+ return state;
1306
+ };
1307
+
1308
+ const Response = 'response';
1309
+ const Preview = 'preview';
1310
+ const Timing = 'timing';
1311
+ const detailTabs = [Preview, Response, Timing];
1312
+ const isDetailTab = value => {
1313
+ return value === Response || value === Preview || value === Timing;
1314
+ };
1315
+ const getDetailTabLabel = value => {
1316
+ if (value === Preview) {
1317
+ return 'Preview';
1318
+ }
1319
+ if (value === Timing) {
1320
+ return 'Timing';
1321
+ }
1322
+ return 'Response';
1323
+ };
1324
+
958
1325
  const createEventCategoryFilterOptions = () => {
959
1326
  return [{
960
1327
  label: 'All',
@@ -1014,6 +1381,34 @@ const parseFilterValue = filterValue => {
1014
1381
  };
1015
1382
  };
1016
1383
 
1384
+ const validEventCategoryFilters = new Set([All, Network, Stream, Tools, Ui]);
1385
+ const isSavedState = value => {
1386
+ return typeof value === 'object' && value !== null;
1387
+ };
1388
+ const getRestoredEventCategoryFilter = (savedState, currentEventCategoryFilter) => {
1389
+ if (typeof savedState.eventCategoryFilter === 'string' && validEventCategoryFilters.has(savedState.eventCategoryFilter)) {
1390
+ return savedState.eventCategoryFilter;
1391
+ }
1392
+ if (typeof savedState.filterValue === 'string') {
1393
+ return parseFilterValue(savedState.filterValue).eventCategoryFilter;
1394
+ }
1395
+ return currentEventCategoryFilter;
1396
+ };
1397
+ const restoreSavedState = (state, savedState) => {
1398
+ if (!isSavedState(savedState)) {
1399
+ return state;
1400
+ }
1401
+ return {
1402
+ ...state,
1403
+ eventCategoryFilter: getRestoredEventCategoryFilter(savedState, state.eventCategoryFilter),
1404
+ filterValue: typeof savedState.filterValue === 'string' ? savedState.filterValue : state.filterValue,
1405
+ selectedDetailTab: typeof savedState.selectedDetailTab === 'string' && isDetailTab(savedState.selectedDetailTab) ? savedState.selectedDetailTab : state.selectedDetailTab,
1406
+ selectedEventId: typeof savedState.selectedEventId === 'number' || savedState.selectedEventId === null ? savedState.selectedEventId : state.selectedEventId,
1407
+ timelineEndSeconds: typeof savedState.timelineEndSeconds === 'string' ? savedState.timelineEndSeconds : state.timelineEndSeconds,
1408
+ timelineStartSeconds: typeof savedState.timelineStartSeconds === 'string' ? savedState.timelineStartSeconds : state.timelineStartSeconds
1409
+ };
1410
+ };
1411
+
1017
1412
  const {
1018
1413
  get,
1019
1414
  getCommandIds,
@@ -1023,23 +1418,6 @@ const {
1023
1418
  wrapGetter
1024
1419
  } = create$1();
1025
1420
 
1026
- const Response = 'response';
1027
- const Preview = 'preview';
1028
- const Timing = 'timing';
1029
- const detailTabs = [Preview, Response, Timing];
1030
- const isDetailTab = value => {
1031
- return value === Response || value === Preview || value === Timing;
1032
- };
1033
- const getDetailTabLabel = value => {
1034
- if (value === Preview) {
1035
- return 'Preview';
1036
- }
1037
- if (value === Timing) {
1038
- return 'Timing';
1039
- }
1040
- return 'Response';
1041
- };
1042
-
1043
1421
  const defaultTableWidth = 480;
1044
1422
  const minTableWidth = 240;
1045
1423
  const minDetailsWidth = 280;
@@ -1079,7 +1457,6 @@ const createDefaultState = () => {
1079
1457
  eventStoreName: 'chat-view-events',
1080
1458
  filterValue: '',
1081
1459
  height: 0,
1082
- indexedDbSupportOverride: undefined,
1083
1460
  initial: false,
1084
1461
  platform: 0,
1085
1462
  selectedDetailTab: Response,
@@ -1106,43 +1483,19 @@ const createDefaultState = () => {
1106
1483
  };
1107
1484
  };
1108
1485
 
1109
- const validEventCategoryFilters = new Set([All, Network, Stream, Tools, Ui]);
1110
- const getRestoredEventCategoryFilter = savedState => {
1111
- if (typeof savedState.eventCategoryFilter === 'string' && validEventCategoryFilters.has(savedState.eventCategoryFilter)) {
1112
- return savedState.eventCategoryFilter;
1113
- }
1114
- if (typeof savedState.filterValue === 'string') {
1115
- return parseFilterValue(savedState.filterValue).eventCategoryFilter;
1116
- }
1117
- return All;
1118
- };
1119
1486
  const create = (uid, uri, x, y, width, height, platform, assetDir, sessionId = '', databaseName = 'lvce-chat-view-sessions', dataBaseVersion = 2, eventStoreName = 'chat-view-events', sessionIdIndexName = 'sessionId', savedState = {}) => {
1120
1487
  const defaultState = createDefaultState();
1121
- const {
1122
- filterValue,
1123
- selectedEventId,
1124
- tableWidth,
1125
- timelineEndSeconds,
1126
- timelineStartSeconds
1127
- } = savedState;
1128
- const restoredEventCategoryFilter = getRestoredEventCategoryFilter(savedState);
1129
1488
  const state = {
1130
- ...defaultState,
1489
+ ...restoreSavedState(defaultState, savedState),
1131
1490
  assetDir,
1132
1491
  databaseName,
1133
1492
  dataBaseVersion,
1134
- eventCategoryFilter: restoredEventCategoryFilter,
1135
1493
  eventStoreName,
1136
- filterValue: filterValue ?? defaultState.filterValue,
1137
1494
  height,
1138
1495
  initial: true,
1139
1496
  platform,
1140
- selectedEventId: selectedEventId ?? defaultState.selectedEventId,
1141
1497
  sessionId,
1142
1498
  sessionIdIndexName,
1143
- tableWidth: tableWidth ?? defaultState.tableWidth,
1144
- timelineEndSeconds: timelineEndSeconds ?? defaultState.timelineEndSeconds,
1145
- timelineStartSeconds: timelineStartSeconds ?? defaultState.timelineStartSeconds,
1146
1499
  uid,
1147
1500
  uri,
1148
1501
  width,
@@ -1171,421 +1524,41 @@ const diff2 = uid => {
1171
1524
  return diff(oldState, newState);
1172
1525
  };
1173
1526
 
1174
- const handleDetailsContextMenu = state => {
1175
- return state;
1527
+ const hasMatchingToolName = (startedEvent, finishedEvent) => {
1528
+ if (typeof startedEvent.toolName === 'string' && typeof finishedEvent.toolName === 'string') {
1529
+ return startedEvent.toolName === finishedEvent.toolName;
1530
+ }
1531
+ return true;
1176
1532
  };
1177
1533
 
1178
- // cspell:ignore IDBP
1534
+ const isMatchingToolExecutionPair = (startedEvent, finishedEvent) => {
1535
+ return startedEvent.sessionId === finishedEvent.sessionId && hasMatchingToolName(startedEvent, finishedEvent);
1536
+ };
1179
1537
 
1180
- const startedEventType$1 = 'tool-execution-started';
1181
- const finishedEventType$1 = 'tool-execution-finished';
1182
- const getRawEventBySessionIdAndEventId = async (store, sessionId, sessionIdIndexName, eventId) => {
1183
- if (eventId < 1) {
1184
- return undefined;
1185
- }
1186
- if (store.indexNames.contains(sessionIdIndexName)) {
1187
- const index = store.index(sessionIdIndexName);
1188
- const keys = await index.getAllKeys(sessionId, eventId);
1189
- if (keys.length < eventId) {
1190
- return undefined;
1191
- }
1192
- const key = keys.at(-1);
1193
- if (key === undefined) {
1194
- return undefined;
1195
- }
1196
- const event = await store.get(key);
1197
- return event;
1198
- }
1199
- const all = await store.getAll();
1200
- const events = all.filter(event => event.sessionId === sessionId);
1201
- return events[eventId - 1];
1538
+ const startedEventType = 'tool-execution-started';
1539
+ const finishedEventType = 'tool-execution-finished';
1540
+ const mergedEventType = 'tool-execution';
1541
+
1542
+ const isToolExecutionFinishedEvent = event => {
1543
+ return event.type === finishedEventType;
1544
+ };
1545
+
1546
+ const isToolExecutionStartedEvent = event => {
1547
+ return event.type === startedEventType;
1202
1548
  };
1203
- const getTimestamp$1 = value => {
1549
+
1550
+ const getTimestamp = value => {
1204
1551
  return typeof value === 'string' || typeof value === 'number' ? value : undefined;
1205
1552
  };
1206
- const hasMatchingToolName$1 = (startedEvent, finishedEvent) => {
1207
- if (typeof startedEvent.toolName === 'string' && typeof finishedEvent.toolName === 'string') {
1208
- return startedEvent.toolName === finishedEvent.toolName;
1209
- }
1210
- return true;
1211
- };
1212
- const mergeToolExecutionEvents$1 = (startedEvent, finishedEvent, eventId) => {
1213
- const ended = getTimestamp$1(finishedEvent.ended) ?? getTimestamp$1(finishedEvent.endTime) ?? getTimestamp$1(finishedEvent.timestamp);
1214
- const started = getTimestamp$1(startedEvent.started) ?? getTimestamp$1(startedEvent.startTime) ?? getTimestamp$1(startedEvent.timestamp);
1215
- return {
1216
- ...startedEvent,
1217
- ...finishedEvent,
1218
- ...(ended === undefined ? {} : {
1219
- ended
1220
- }),
1221
- eventId,
1222
- ...(started === undefined ? {} : {
1223
- started
1224
- }),
1225
- type: 'tool-execution'
1226
- };
1227
- };
1228
- const getEventDetailsBySessionIdAndEventId = async (store, sessionId, sessionIdIndexName, eventId, summaryType) => {
1229
- const event = await getRawEventBySessionIdAndEventId(store, sessionId, sessionIdIndexName, eventId);
1230
- if (!event) {
1231
- return undefined;
1232
- }
1233
- if (summaryType !== 'tool-execution') {
1234
- return {
1235
- ...event,
1236
- eventId
1237
- };
1238
- }
1239
- if (event.type !== startedEventType$1) {
1240
- return {
1241
- ...event,
1242
- eventId
1243
- };
1244
- }
1245
- const nextEvent = await getRawEventBySessionIdAndEventId(store, sessionId, sessionIdIndexName, eventId + 1);
1246
- if (!nextEvent || nextEvent.type !== finishedEventType$1 || nextEvent.sessionId !== sessionId || !hasMatchingToolName$1(event, nextEvent)) {
1247
- return {
1248
- ...event,
1249
- eventId
1250
- };
1251
- }
1252
- return mergeToolExecutionEvents$1(event, nextEvent, eventId);
1253
- };
1254
-
1255
- const instanceOfAny = (object, constructors) => constructors.some(c => object instanceof c);
1256
- let idbProxyableTypes;
1257
- let cursorAdvanceMethods;
1258
- // This is a function to prevent it throwing up in node environments.
1259
- function getIdbProxyableTypes() {
1260
- return idbProxyableTypes || (idbProxyableTypes = [IDBDatabase, IDBObjectStore, IDBIndex, IDBCursor, IDBTransaction]);
1261
- }
1262
- // This is a function to prevent it throwing up in node environments.
1263
- function getCursorAdvanceMethods() {
1264
- return cursorAdvanceMethods || (cursorAdvanceMethods = [IDBCursor.prototype.advance, IDBCursor.prototype.continue, IDBCursor.prototype.continuePrimaryKey]);
1265
- }
1266
- const transactionDoneMap = new WeakMap();
1267
- const transformCache = new WeakMap();
1268
- const reverseTransformCache = new WeakMap();
1269
- function promisifyRequest(request) {
1270
- const promise = new Promise((resolve, reject) => {
1271
- const unlisten = () => {
1272
- request.removeEventListener('success', success);
1273
- request.removeEventListener('error', error);
1274
- };
1275
- const success = () => {
1276
- resolve(wrap(request.result));
1277
- unlisten();
1278
- };
1279
- const error = () => {
1280
- reject(request.error);
1281
- unlisten();
1282
- };
1283
- request.addEventListener('success', success);
1284
- request.addEventListener('error', error);
1285
- });
1286
- // This mapping exists in reverseTransformCache but doesn't exist in transformCache. This
1287
- // is because we create many promises from a single IDBRequest.
1288
- reverseTransformCache.set(promise, request);
1289
- return promise;
1290
- }
1291
- function cacheDonePromiseForTransaction(tx) {
1292
- // Early bail if we've already created a done promise for this transaction.
1293
- if (transactionDoneMap.has(tx)) return;
1294
- const done = new Promise((resolve, reject) => {
1295
- const unlisten = () => {
1296
- tx.removeEventListener('complete', complete);
1297
- tx.removeEventListener('error', error);
1298
- tx.removeEventListener('abort', error);
1299
- };
1300
- const complete = () => {
1301
- resolve();
1302
- unlisten();
1303
- };
1304
- const error = () => {
1305
- reject(tx.error || new DOMException('AbortError', 'AbortError'));
1306
- unlisten();
1307
- };
1308
- tx.addEventListener('complete', complete);
1309
- tx.addEventListener('error', error);
1310
- tx.addEventListener('abort', error);
1311
- });
1312
- // Cache it for later retrieval.
1313
- transactionDoneMap.set(tx, done);
1314
- }
1315
- let idbProxyTraps = {
1316
- get(target, prop, receiver) {
1317
- if (target instanceof IDBTransaction) {
1318
- // Special handling for transaction.done.
1319
- if (prop === 'done') return transactionDoneMap.get(target);
1320
- // Make tx.store return the only store in the transaction, or undefined if there are many.
1321
- if (prop === 'store') {
1322
- return receiver.objectStoreNames[1] ? undefined : receiver.objectStore(receiver.objectStoreNames[0]);
1323
- }
1324
- }
1325
- // Else transform whatever we get back.
1326
- return wrap(target[prop]);
1327
- },
1328
- set(target, prop, value) {
1329
- target[prop] = value;
1330
- return true;
1331
- },
1332
- has(target, prop) {
1333
- if (target instanceof IDBTransaction && (prop === 'done' || prop === 'store')) {
1334
- return true;
1335
- }
1336
- return prop in target;
1337
- }
1338
- };
1339
- function replaceTraps(callback) {
1340
- idbProxyTraps = callback(idbProxyTraps);
1341
- }
1342
- function wrapFunction(func) {
1343
- // Due to expected object equality (which is enforced by the caching in `wrap`), we
1344
- // only create one new func per func.
1345
- // Cursor methods are special, as the behaviour is a little more different to standard IDB. In
1346
- // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the
1347
- // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense
1348
- // with real promises, so each advance methods returns a new promise for the cursor object, or
1349
- // undefined if the end of the cursor has been reached.
1350
- if (getCursorAdvanceMethods().includes(func)) {
1351
- return function (...args) {
1352
- // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use
1353
- // the original object.
1354
- func.apply(unwrap(this), args);
1355
- return wrap(this.request);
1356
- };
1357
- }
1358
- return function (...args) {
1359
- // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use
1360
- // the original object.
1361
- return wrap(func.apply(unwrap(this), args));
1362
- };
1363
- }
1364
- function transformCachableValue(value) {
1365
- if (typeof value === 'function') return wrapFunction(value);
1366
- // This doesn't return, it just creates a 'done' promise for the transaction,
1367
- // which is later returned for transaction.done (see idbObjectHandler).
1368
- if (value instanceof IDBTransaction) cacheDonePromiseForTransaction(value);
1369
- if (instanceOfAny(value, getIdbProxyableTypes())) return new Proxy(value, idbProxyTraps);
1370
- // Return the same value back if we're not going to transform it.
1371
- return value;
1372
- }
1373
- function wrap(value) {
1374
- // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because
1375
- // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.
1376
- if (value instanceof IDBRequest) return promisifyRequest(value);
1377
- // If we've already transformed this value before, reuse the transformed value.
1378
- // This is faster, but it also provides object equality.
1379
- if (transformCache.has(value)) return transformCache.get(value);
1380
- const newValue = transformCachableValue(value);
1381
- // Not all types are transformed.
1382
- // These may be primitive types, so they can't be WeakMap keys.
1383
- if (newValue !== value) {
1384
- transformCache.set(value, newValue);
1385
- reverseTransformCache.set(newValue, value);
1386
- }
1387
- return newValue;
1388
- }
1389
- const unwrap = value => reverseTransformCache.get(value);
1390
-
1391
- /**
1392
- * Open a database.
1393
- *
1394
- * @param name Name of the database.
1395
- * @param version Schema version.
1396
- * @param callbacks Additional callbacks.
1397
- */
1398
- function openDB(name, version, {
1399
- blocked,
1400
- upgrade,
1401
- blocking,
1402
- terminated
1403
- } = {}) {
1404
- const request = indexedDB.open(name, version);
1405
- const openPromise = wrap(request);
1406
- if (upgrade) {
1407
- request.addEventListener('upgradeneeded', event => {
1408
- upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);
1409
- });
1410
- }
1411
- if (blocked) {
1412
- request.addEventListener('blocked', event => blocked(
1413
- // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405
1414
- event.oldVersion, event.newVersion, event));
1415
- }
1416
- openPromise.then(db => {
1417
- if (terminated) db.addEventListener('close', () => terminated());
1418
- if (blocking) {
1419
- db.addEventListener('versionchange', event => blocking(event.oldVersion, event.newVersion, event));
1420
- }
1421
- }).catch(() => {});
1422
- return openPromise;
1423
- }
1424
- const readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];
1425
- const writeMethods = ['put', 'add', 'delete', 'clear'];
1426
- const cachedMethods = new Map();
1427
- function getMethod(target, prop) {
1428
- if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === 'string')) {
1429
- return;
1430
- }
1431
- if (cachedMethods.get(prop)) return cachedMethods.get(prop);
1432
- const targetFuncName = prop.replace(/FromIndex$/, '');
1433
- const useIndex = prop !== targetFuncName;
1434
- const isWrite = writeMethods.includes(targetFuncName);
1435
- if (
1436
- // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.
1437
- !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) {
1438
- return;
1439
- }
1440
- const method = async function (storeName, ...args) {
1441
- // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(
1442
- const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');
1443
- let target = tx.store;
1444
- if (useIndex) target = target.index(args.shift());
1445
- // Must reject if op rejects.
1446
- // If it's a write operation, must reject if tx.done rejects.
1447
- // Must reject with op rejection first.
1448
- // Must resolve with op value.
1449
- // Must handle both promises (no unhandled rejections)
1450
- return (await Promise.all([target[targetFuncName](...args), isWrite && tx.done]))[0];
1451
- };
1452
- cachedMethods.set(prop, method);
1453
- return method;
1454
- }
1455
- replaceTraps(oldTraps => ({
1456
- ...oldTraps,
1457
- get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),
1458
- has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop)
1459
- }));
1460
- const advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];
1461
- const methodMap = {};
1462
- const advanceResults = new WeakMap();
1463
- const ittrProxiedCursorToOriginalProxy = new WeakMap();
1464
- const cursorIteratorTraps = {
1465
- get(target, prop) {
1466
- if (!advanceMethodProps.includes(prop)) return target[prop];
1467
- let cachedFunc = methodMap[prop];
1468
- if (!cachedFunc) {
1469
- cachedFunc = methodMap[prop] = function (...args) {
1470
- advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));
1471
- };
1472
- }
1473
- return cachedFunc;
1474
- }
1475
- };
1476
- async function* iterate(...args) {
1477
- // tslint:disable-next-line:no-this-assignment
1478
- let cursor = this;
1479
- if (!(cursor instanceof IDBCursor)) {
1480
- cursor = await cursor.openCursor(...args);
1481
- }
1482
- if (!cursor) return;
1483
- cursor = cursor;
1484
- const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);
1485
- ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);
1486
- // Map this double-proxy back to the original, so other cursor methods work.
1487
- reverseTransformCache.set(proxiedCursor, unwrap(cursor));
1488
- while (cursor) {
1489
- yield proxiedCursor;
1490
- // If one of the advancing methods was not called, call continue().
1491
- cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());
1492
- advanceResults.delete(proxiedCursor);
1493
- }
1494
- }
1495
- function isIteratorProp(target, prop) {
1496
- return prop === Symbol.asyncIterator && instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor]) || prop === 'iterate' && instanceOfAny(target, [IDBIndex, IDBObjectStore]);
1497
- }
1498
- replaceTraps(oldTraps => ({
1499
- ...oldTraps,
1500
- get(target, prop, receiver) {
1501
- if (isIteratorProp(target, prop)) return iterate;
1502
- return oldTraps.get(target, prop, receiver);
1503
- },
1504
- has(target, prop) {
1505
- return isIteratorProp(target, prop) || oldTraps.has(target, prop);
1506
- }
1507
- }));
1508
-
1509
- const openDatabaseDependencies = {
1510
- openDB: openDB
1511
- };
1512
- const openDatabase = async (databaseName, dataBaseVersion) => {
1513
- return openDatabaseDependencies.openDB(databaseName, dataBaseVersion);
1514
- };
1515
-
1516
- const loadSelectedEventDependencies = {
1517
- getEventDetailsBySessionIdAndEventId: getEventDetailsBySessionIdAndEventId,
1518
- openDatabase: openDatabase
1519
- };
1520
- const loadSelectedEvent = async (databaseName, dataBaseVersion, eventStoreName, sessionId, sessionIdIndexName, eventId, type) => {
1521
- const database = await loadSelectedEventDependencies.openDatabase(databaseName, dataBaseVersion);
1522
- try {
1523
- if (!database.objectStoreNames.contains(eventStoreName)) {
1524
- return null;
1525
- }
1526
- const transaction = database.transaction(eventStoreName, 'readonly');
1527
- const store = transaction.objectStore(eventStoreName);
1528
- const event = await loadSelectedEventDependencies.getEventDetailsBySessionIdAndEventId(store, sessionId, sessionIdIndexName, eventId, type);
1529
- return event ?? null;
1530
- } finally {
1531
- database.close();
1532
- }
1533
- };
1534
-
1535
- const hasMatchingToolName = (startedEvent, finishedEvent) => {
1536
- if (typeof startedEvent.toolName === 'string' && typeof finishedEvent.toolName === 'string') {
1537
- return startedEvent.toolName === finishedEvent.toolName;
1538
- }
1539
- return true;
1540
- };
1541
-
1542
- const isMatchingToolExecutionPair = (startedEvent, finishedEvent) => {
1543
- return startedEvent.sessionId === finishedEvent.sessionId && hasMatchingToolName(startedEvent, finishedEvent);
1544
- };
1545
-
1546
- const startedEventType = 'tool-execution-started';
1547
- const finishedEventType = 'tool-execution-finished';
1548
- const mergedEventType = 'tool-execution';
1549
-
1550
- const isToolExecutionFinishedEvent = event => {
1551
- return event.type === finishedEventType;
1552
- };
1553
-
1554
- const isToolExecutionStartedEvent = event => {
1555
- return event.type === startedEventType;
1556
- };
1557
-
1558
- const getTimestamp = value => {
1559
- return typeof value === 'string' || typeof value === 'number' ? value : undefined;
1560
- };
1561
-
1562
- const getEndedTimestamp = event => {
1563
- return getTimestamp(event.ended) ?? getTimestamp(event.endTime) ?? getTimestamp(event.endTimestamp) ?? getTimestamp(event.timestamp);
1564
- };
1565
-
1566
- const eventStableIds = new WeakMap();
1567
- const eventStableIdState = {
1568
- nextStableEventId: 1
1569
- };
1570
-
1571
- const getOrCreateStableEventId = event => {
1572
- const existingStableEventId = eventStableIds.get(event);
1573
- if (existingStableEventId) {
1574
- return existingStableEventId;
1575
- }
1576
- const stableEventId = `event-${eventStableIdState.nextStableEventId++}`;
1577
- eventStableIds.set(event, stableEventId);
1578
- return stableEventId;
1553
+
1554
+ const getEndedTimestamp = event => {
1555
+ return getTimestamp(event.ended) ?? getTimestamp(event.endTime) ?? getTimestamp(event.endTimestamp) ?? getTimestamp(event.timestamp);
1579
1556
  };
1580
1557
 
1581
1558
  const getStartedTimestamp = event => {
1582
1559
  return getTimestamp(event.started) ?? getTimestamp(event.startTime) ?? getTimestamp(event.startTimestamp) ?? getTimestamp(event.timestamp);
1583
1560
  };
1584
1561
 
1585
- const setStableEventId = (event, stableEventId) => {
1586
- eventStableIds.set(event, stableEventId);
1587
- };
1588
-
1589
1562
  const mergeToolExecutionEvents = (startedEvent, finishedEvent) => {
1590
1563
  const ended = getEndedTimestamp(finishedEvent);
1591
1564
  const {
@@ -1606,15 +1579,9 @@ const mergeToolExecutionEvents = (startedEvent, finishedEvent) => {
1606
1579
  }),
1607
1580
  type: mergedEventType
1608
1581
  };
1609
- const stableEventId = `${getOrCreateStableEventId(startedEvent)}:${getOrCreateStableEventId(finishedEvent)}`;
1610
- setStableEventId(mergedEvent, stableEventId);
1611
1582
  return mergedEvent;
1612
1583
  };
1613
1584
 
1614
- const getStableEventId = event => {
1615
- return getOrCreateStableEventId(event);
1616
- };
1617
-
1618
1585
  const collapseToolExecutionEvents = events => {
1619
1586
  const collapsedEvents = [];
1620
1587
  for (let i = 0; i < events.length; i++) {
@@ -1850,12 +1817,12 @@ const getTimelineInfo = (events, startValue, endValue) => {
1850
1817
  };
1851
1818
  };
1852
1819
 
1853
- const getCurrentEvents$2 = state => {
1820
+ const getCurrentEvents$3 = state => {
1854
1821
  const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
1855
1822
  return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
1856
1823
  };
1857
1824
  const selectEventAtIndex = async (state, selectedEventIndex, dependencies) => {
1858
- const currentEvents = getCurrentEvents$2(state);
1825
+ const currentEvents = getCurrentEvents$3(state);
1859
1826
  const selectedEvent = currentEvents[selectedEventIndex];
1860
1827
  if (!selectedEvent) {
1861
1828
  return {
@@ -1882,568 +1849,571 @@ const selectEventAtIndex = async (state, selectedEventIndex, dependencies) => {
1882
1849
  };
1883
1850
  };
1884
1851
 
1885
- const handleEventRowClickDependencies = {
1886
- loadSelectedEvent: loadSelectedEvent
1852
+ const devtoolsRootGap = 4;
1853
+ const devtoolsTopHeight = 28;
1854
+ const devtoolsTimelineHeight = 88;
1855
+ const devtoolsTableHeaderHeight = 24;
1856
+ const devtoolsTableRowHeight = 24;
1857
+ const getTableBodyY = (state, hasTimeline) => {
1858
+ return state.y + viewPadding + devtoolsTopHeight + devtoolsRootGap + (hasTimeline ? devtoolsTimelineHeight : 0) + devtoolsTableHeaderHeight;
1887
1859
  };
1888
- const isPrimaryButton = button => {
1889
- return button === 0;
1890
- };
1891
- const parseSelectedEventIndex$1 = value => {
1892
- const parsed = Number.parseInt(value, 10);
1893
- if (Number.isNaN(parsed) || parsed < 0) {
1894
- return null;
1860
+ const getTableBodyEventIndex = (state, eventX, eventY) => {
1861
+ if (!state.useDevtoolsLayout) {
1862
+ return -1;
1895
1863
  }
1896
- return parsed;
1864
+ const currentEvents = getCurrentEvents$3(state);
1865
+ if (currentEvents.length === 0) {
1866
+ return -1;
1867
+ }
1868
+ const tableX = state.x + leftPadding;
1869
+ const tableWidth = clampTableWidth(state.width, state.tableWidth);
1870
+ const hasTimeline = currentEvents.length > 0;
1871
+ const tableBodyY = getTableBodyY(state, hasTimeline);
1872
+ const relativeX = eventX - tableX;
1873
+ const relativeY = eventY - tableBodyY;
1874
+ if (relativeX < 0 || relativeX >= tableWidth || relativeY < 0) {
1875
+ return -1;
1876
+ }
1877
+ const eventIndex = Math.floor(relativeY / devtoolsTableRowHeight);
1878
+ if (eventIndex < 0 || eventIndex >= currentEvents.length) {
1879
+ return -1;
1880
+ }
1881
+ return eventIndex;
1882
+ };
1883
+
1884
+ const MenuChatDebugTableBody = 2190;
1885
+ const handleTableBodyContextMenu = async (state, eventX, eventY) => {
1886
+ const eventIndex = getTableBodyEventIndex(state, eventX, eventY);
1887
+ await showContextMenu2(state.uid, MenuChatDebugTableBody, eventX, eventY, {
1888
+ eventIndex,
1889
+ menuId: MenuChatDebugTableBody
1890
+ });
1891
+ return state;
1897
1892
  };
1898
- const handleEventRowClick = async (state, value, button) => {
1899
- if (!isPrimaryButton(button)) {
1900
- return state;
1893
+
1894
+ const getMenuIds = () => {
1895
+ return [MenuChatDebugTableBody, 556, 557];
1896
+ };
1897
+
1898
+ const getErrorMessage = error => {
1899
+ if (error instanceof Error) {
1900
+ return error.message;
1901
1901
  }
1902
- const selectedEventIndex = parseSelectedEventIndex$1(value);
1903
- if (selectedEventIndex === null) {
1904
- return state;
1902
+ if (typeof error === 'string') {
1903
+ return error;
1905
1904
  }
1906
- return selectEventAtIndex(state, selectedEventIndex, handleEventRowClickDependencies);
1905
+ if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {
1906
+ return error.message;
1907
+ }
1908
+ return undefined;
1909
+ };
1910
+ const getFailedToLoadMessage = (sessionId, error) => {
1911
+ const errorMessage = getErrorMessage(error);
1912
+ if (errorMessage) {
1913
+ return `Failed to load chat debug session "${sessionId}": ${errorMessage}`;
1914
+ }
1915
+ return `Failed to load chat debug session "${sessionId}". Please try again.`;
1907
1916
  };
1908
1917
 
1909
- const handleHeaderContextMenu = state => {
1910
- return state;
1918
+ const ParseChatDebugUriErrorCode = {
1919
+ InvalidSessionId: 'invalid-session-id',
1920
+ InvalidUriEncoding: 'invalid-uri-encoding',
1921
+ InvalidUriFormat: 'invalid-uri-format',
1922
+ MissingUri: 'missing-uri'
1911
1923
  };
1912
1924
 
1913
- const getBoolean = value => {
1914
- return value === true || value === 'true' || value === 'on' || value === '1';
1925
+ const getInvalidUriMessage = (uri, code) => {
1926
+ if (code === ParseChatDebugUriErrorCode.MissingUri) {
1927
+ return 'Unable to load debug session: missing URI. Expected format: chat-debug://<sessionId>.';
1928
+ }
1929
+ return `Unable to load debug session: invalid URI "${uri}". Expected format: chat-debug://<sessionId>.`;
1915
1930
  };
1916
1931
 
1917
- const Filter = 'filter';
1918
- const EventCategoryFilter = 'eventCategoryFilter';
1919
- const ShowEventStreamFinishedEvents = 'showEventStreamFinishedEvents';
1920
- const ShowInputEvents = 'showInputEvents';
1921
- const ShowResponsePartEvents = 'showResponsePartEvents';
1922
- const UseDevtoolsLayout = 'useDevtoolsLayout';
1923
- const SelectedEventIndex = 'selectedEventIndex';
1924
- const CloseDetails = 'closeDetails';
1925
- const DetailTab = 'detailTab';
1926
- const TimelineStartSeconds = 'timelineStartSeconds';
1927
- const TimelineEndSeconds = 'timelineEndSeconds';
1928
- const TimelineRangePreset = 'timelineRangePreset';
1932
+ const getSessionNotFoundMessage = sessionId => {
1933
+ return `No chat session found for sessionId "${sessionId}".`;
1934
+ };
1929
1935
 
1930
- const getCurrentEvents$1 = state => {
1931
- const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
1932
- return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
1936
+ const listChatViewEventsDependencies = {
1937
+ listChatViewEventsFromWorker: listChatViewEvents$1
1933
1938
  };
1934
- const parseTimelineRangePreset = value => {
1935
- if (!value) {
1939
+ const listChatViewEvents = async (sessionId, _databaseName, _dataBaseVersion, _eventStoreName, _sessionIdIndexName) => {
1940
+ try {
1941
+ return await listChatViewEventsDependencies.listChatViewEventsFromWorker(sessionId);
1942
+ } catch (error) {
1936
1943
  return {
1937
- timelineEndSeconds: '',
1938
- timelineStartSeconds: ''
1944
+ error,
1945
+ type: 'error'
1939
1946
  };
1940
1947
  }
1941
- const [timelineStartSeconds = '', timelineEndSeconds = ''] = value.split(':', 2);
1942
- return {
1943
- timelineEndSeconds,
1944
- timelineStartSeconds
1945
- };
1946
1948
  };
1947
- const getEventIndexByStableId = (events, event) => {
1948
- const stableEventId = getStableEventId(event);
1949
- return events.findIndex(candidate => getStableEventId(candidate) === stableEventId);
1949
+
1950
+ const loadSelectedEventDependencies = {
1951
+ loadSelectedEventFromWorker: loadSelectedEvent$1
1950
1952
  };
1951
- const getSelectedEventIndex = state => {
1952
- const {
1953
- selectedEventIndex
1954
- } = state;
1955
- if (selectedEventIndex === null) {
1956
- return null;
1957
- }
1958
- const filteredEvents = getCurrentEvents$1(state);
1959
- const selectedEvent = filteredEvents[selectedEventIndex];
1960
- if (!selectedEvent) {
1961
- return null;
1962
- }
1963
- const newIndex = getEventIndexByStableId(filteredEvents, selectedEvent);
1964
- if (newIndex === -1) {
1965
- return null;
1966
- }
1967
- return newIndex;
1953
+ const loadSelectedEvent = async (_databaseName, _dataBaseVersion, _eventStoreName, sessionId, _sessionIdIndexName, eventId, type) => {
1954
+ return loadSelectedEventDependencies.loadSelectedEventFromWorker(sessionId, eventId, type);
1968
1955
  };
1969
- const getPreservedSelectedEventIndex = (oldState, newState) => {
1970
- const {
1971
- selectedEventIndex
1972
- } = oldState;
1973
- if (selectedEventIndex === null) {
1974
- return null;
1975
- }
1976
- const oldFilteredEvents = getCurrentEvents$1(oldState);
1977
- const selectedEvent = oldFilteredEvents[selectedEventIndex];
1978
- if (!selectedEvent) {
1979
- return null;
1956
+
1957
+ const chatDebugUriPattern = /^chat-debug:\/\/([^/?#]+)$/;
1958
+ const invalidSessionIdPattern = /[/?#]/;
1959
+ const parseChatDebugUri = uri => {
1960
+ if (!uri) {
1961
+ return {
1962
+ code: ParseChatDebugUriErrorCode.MissingUri,
1963
+ message: 'Missing URI',
1964
+ type: 'error'
1965
+ };
1980
1966
  }
1981
- const newFilteredEvents = getCurrentEvents$1(newState);
1982
- const newIndex = getEventIndexByStableId(newFilteredEvents, selectedEvent);
1983
- if (newIndex === -1) {
1984
- return null;
1967
+ const match = uri.match(chatDebugUriPattern);
1968
+ if (!match) {
1969
+ return {
1970
+ code: ParseChatDebugUriErrorCode.InvalidUriFormat,
1971
+ message: 'Invalid URI format',
1972
+ type: 'error'
1973
+ };
1985
1974
  }
1986
- return newIndex;
1987
- };
1988
- const parseSelectedEventIndex = value => {
1989
- const parsed = Number.parseInt(value, 10);
1990
- if (Number.isNaN(parsed) || parsed < 0) {
1991
- return null;
1992
- }
1993
- return parsed;
1994
- };
1995
- const withPreservedSelection = (state, nextState) => {
1996
- const selectedEventIndex = getPreservedSelectedEventIndex(state, nextState);
1997
- return {
1998
- ...nextState,
1999
- selectedEvent: selectedEventIndex === null ? null : state.selectedEvent,
2000
- selectedEventId: selectedEventIndex === null ? null : state.selectedEventId,
2001
- selectedEventIndex
2002
- };
2003
- };
2004
- const handleInput = (state, name, value, checked) => {
2005
- if (name === Filter) {
2006
- const nextState = {
2007
- ...state,
2008
- filterValue: value
2009
- };
2010
- return withPreservedSelection(state, nextState);
2011
- }
2012
- if (name === EventCategoryFilter) {
2013
- const nextState = {
2014
- ...state,
2015
- eventCategoryFilter: value || All
2016
- };
2017
- return withPreservedSelection(state, nextState);
2018
- }
2019
- if (name === ShowEventStreamFinishedEvents) {
2020
- const nextState = {
2021
- ...state,
2022
- showEventStreamFinishedEvents: getBoolean(checked)
2023
- };
2024
- return withPreservedSelection(state, nextState);
2025
- }
2026
- if (name === ShowInputEvents) {
2027
- const nextState = {
2028
- ...state,
2029
- showInputEvents: getBoolean(checked)
1975
+ const encodedSessionId = match[1];
1976
+ let sessionId;
1977
+ try {
1978
+ sessionId = decodeURIComponent(encodedSessionId);
1979
+ } catch {
1980
+ return {
1981
+ code: ParseChatDebugUriErrorCode.InvalidUriEncoding,
1982
+ message: 'Invalid URI encoding',
1983
+ type: 'error'
2030
1984
  };
2031
- return withPreservedSelection(state, nextState);
2032
1985
  }
2033
- if (name === ShowResponsePartEvents) {
2034
- const nextState = {
2035
- ...state,
2036
- showResponsePartEvents: getBoolean(checked)
1986
+ if (!sessionId || invalidSessionIdPattern.test(sessionId)) {
1987
+ return {
1988
+ code: ParseChatDebugUriErrorCode.InvalidSessionId,
1989
+ message: 'Invalid session id',
1990
+ type: 'error'
2037
1991
  };
2038
- return withPreservedSelection(state, nextState);
2039
1992
  }
2040
- if (name === UseDevtoolsLayout) {
2041
- const useDevtoolsLayout = getBoolean(checked);
2042
- const selectedEventIndex = useDevtoolsLayout ? getSelectedEventIndex(state) : null;
1993
+ return {
1994
+ sessionId,
1995
+ type: 'success'
1996
+ };
1997
+ };
1998
+
1999
+ const loadEventsDependencies = {
2000
+ listChatViewEvents: listChatViewEvents,
2001
+ loadSelectedEvent: loadSelectedEvent
2002
+ };
2003
+ const getCurrentEvents$2 = state => {
2004
+ const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
2005
+ return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
2006
+ };
2007
+ const restoreSelectedEvent = async state => {
2008
+ if (state.selectedEventId === null) {
2043
2009
  return {
2044
2010
  ...state,
2045
- selectedEvent: useDevtoolsLayout && selectedEventIndex !== null ? state.selectedEvent : null,
2046
- selectedEventId: useDevtoolsLayout && selectedEventIndex !== null ? state.selectedEventId : null,
2047
- selectedEventIndex,
2048
- useDevtoolsLayout
2011
+ selectedEvent: null,
2012
+ selectedEventIndex: null
2049
2013
  };
2050
2014
  }
2051
- if (name === SelectedEventIndex) {
2052
- const selectedEventIndex = parseSelectedEventIndex(value);
2015
+ const currentEvents = getCurrentEvents$2(state);
2016
+ const selectedEventIndex = currentEvents.findIndex(event => event.eventId === state.selectedEventId);
2017
+ if (selectedEventIndex === -1) {
2053
2018
  return {
2054
2019
  ...state,
2055
- selectedEvent: selectedEventIndex === null ? null : state.selectedEvent,
2056
- selectedEventId: selectedEventIndex === null ? null : state.selectedEventId,
2057
- selectedEventIndex
2020
+ selectedEvent: null,
2021
+ selectedEventId: null,
2022
+ selectedEventIndex: null
2058
2023
  };
2059
2024
  }
2060
- if (name === TimelineStartSeconds) {
2061
- const nextState = {
2025
+ const selectedEvent = currentEvents[selectedEventIndex];
2026
+ if (!selectedEvent || typeof selectedEvent.eventId !== 'number') {
2027
+ return {
2062
2028
  ...state,
2063
- timelineStartSeconds: value
2029
+ selectedEvent: null,
2030
+ selectedEventId: null,
2031
+ selectedEventIndex: null
2064
2032
  };
2065
- return withPreservedSelection(state, nextState);
2066
2033
  }
2067
- if (name === TimelineEndSeconds) {
2068
- const nextState = {
2069
- ...state,
2070
- timelineEndSeconds: value
2071
- };
2072
- return withPreservedSelection(state, nextState);
2034
+ const selectedEventDetails = await loadEventsDependencies.loadSelectedEvent(state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionId, state.sessionIdIndexName, selectedEvent.eventId, selectedEvent.type);
2035
+ return {
2036
+ ...state,
2037
+ selectedEvent: selectedEventDetails,
2038
+ selectedEventId: selectedEvent.eventId,
2039
+ selectedEventIndex
2040
+ };
2041
+ };
2042
+ const getStateWithInvalidUri = state => {
2043
+ const parsed = parseChatDebugUri(state.uri);
2044
+ if (parsed.type !== 'error') {
2045
+ return state;
2073
2046
  }
2074
- if (name === TimelineRangePreset) {
2075
- const nextState = {
2076
- ...state,
2077
- ...parseTimelineRangePreset(value)
2078
- };
2079
- return withPreservedSelection(state, nextState);
2047
+ return {
2048
+ ...state,
2049
+ errorMessage: getInvalidUriMessage(state.uri, parsed.code),
2050
+ events: [],
2051
+ initial: false,
2052
+ selectedEvent: null,
2053
+ selectedEventId: null,
2054
+ selectedEventIndex: null,
2055
+ sessionId: ''
2056
+ };
2057
+ };
2058
+ const getSessionIdFromUri = state => {
2059
+ const parsed = parseChatDebugUri(state.uri);
2060
+ if (parsed.type === 'error') {
2061
+ return undefined;
2080
2062
  }
2081
- if (name === CloseDetails) {
2063
+ return parsed.sessionId;
2064
+ };
2065
+ const loadEventsForSessionId = async (state, sessionId) => {
2066
+ const {
2067
+ databaseName,
2068
+ dataBaseVersion,
2069
+ eventStoreName,
2070
+ sessionIdIndexName
2071
+ } = state;
2072
+ const result = await loadEventsDependencies.listChatViewEvents(sessionId, databaseName, dataBaseVersion, eventStoreName, sessionIdIndexName);
2073
+ if (result.type === 'error') {
2082
2074
  return {
2083
2075
  ...state,
2076
+ errorMessage: getFailedToLoadMessage(sessionId, result.error),
2077
+ events: [],
2078
+ initial: false,
2084
2079
  selectedEvent: null,
2085
2080
  selectedEventId: null,
2086
- selectedEventIndex: null
2081
+ selectedEventIndex: null,
2082
+ sessionId
2087
2083
  };
2088
2084
  }
2089
- if (name === DetailTab) {
2090
- if (!isDetailTab(value)) {
2091
- return state;
2092
- }
2085
+ const {
2086
+ events
2087
+ } = result;
2088
+ if (events.length === 0) {
2093
2089
  return {
2094
2090
  ...state,
2095
- selectedDetailTab: value
2091
+ errorMessage: getSessionNotFoundMessage(sessionId),
2092
+ events: [],
2093
+ initial: false,
2094
+ selectedEvent: null,
2095
+ selectedEventId: null,
2096
+ selectedEventIndex: null,
2097
+ sessionId
2096
2098
  };
2097
2099
  }
2098
- return state;
2100
+ const nextState = {
2101
+ ...state,
2102
+ errorMessage: '',
2103
+ events,
2104
+ initial: false,
2105
+ sessionId
2106
+ };
2107
+ return restoreSelectedEvent(nextState);
2108
+ };
2109
+ const loadEventsFromUri = async state => {
2110
+ const sessionId = getSessionIdFromUri(state);
2111
+ if (!sessionId) {
2112
+ return getStateWithInvalidUri(state);
2113
+ }
2114
+ return loadEventsForSessionId(state, sessionId);
2115
+ };
2116
+ const refreshEvents = async state => {
2117
+ const sessionId = state.sessionId || getSessionIdFromUri(state);
2118
+ if (!sessionId) {
2119
+ return getStateWithInvalidUri(state);
2120
+ }
2121
+ return loadEventsForSessionId(state, sessionId);
2099
2122
  };
2100
2123
 
2101
- const handleSashPointerDown = (state, eventX, eventY) => {
2102
- return state;
2124
+ const refresh = async state => {
2125
+ return refreshEvents(state);
2103
2126
  };
2104
2127
 
2105
- const handleSashPointerMove = (state, eventX, eventY) => {
2128
+ const handleClickRefreshDependencies = {
2129
+ refresh: refresh
2130
+ };
2131
+ const handleClickRefresh = async state => {
2132
+ return handleClickRefreshDependencies.refresh(state);
2133
+ };
2134
+
2135
+ const handleCloseDetails = state => {
2106
2136
  return {
2107
2137
  ...state,
2108
- tableWidth: getTableWidthFromClientX(state.x, state.width, eventX)
2138
+ selectedEvent: null,
2139
+ selectedEventId: null,
2140
+ selectedEventIndex: null
2109
2141
  };
2110
2142
  };
2111
2143
 
2112
- const handleSashPointerUp = (state, eventX, eventY) => {
2113
- return state;
2114
- };
2115
-
2116
- const handleTableBodyContextMenu = state => {
2144
+ const handleDetailsContextMenu = state => {
2117
2145
  return state;
2118
2146
  };
2119
2147
 
2120
- const clearTimelineSelectionState = state => {
2148
+ const handleDetailTab = (state, value) => {
2149
+ if (!isDetailTab(value)) {
2150
+ return state;
2151
+ }
2121
2152
  return {
2122
2153
  ...state,
2123
- timelineSelectionActive: false,
2124
- timelineSelectionAnchorSeconds: '',
2125
- timelineSelectionFocusSeconds: ''
2154
+ selectedDetailTab: value
2126
2155
  };
2127
2156
  };
2128
2157
 
2129
- const handleTimelineDoubleClick = state => {
2130
- const nextState = handleInput(state, TimelineRangePreset, '', false);
2131
- return clearTimelineSelectionState(nextState);
2158
+ const getCurrentEvents$1 = state => {
2159
+ const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
2160
+ return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
2132
2161
  };
2133
-
2134
- const getTimelineEvents = state => {
2162
+ const getEventIndexByStableId$1 = (events, event) => {
2163
+ return events.findIndex(candidate => candidate.eventId === event.eventId);
2164
+ };
2165
+ const getSelectedEventIndex$1 = state => {
2135
2166
  const {
2136
- eventCategoryFilter,
2137
- events,
2138
- filterValue,
2139
- showEventStreamFinishedEvents,
2140
- showInputEvents,
2141
- showResponsePartEvents
2167
+ selectedEventIndex
2142
2168
  } = state;
2143
- return getFilteredEvents(events, filterValue, eventCategoryFilter, showInputEvents, showResponsePartEvents, showEventStreamFinishedEvents);
2169
+ if (selectedEventIndex === null) {
2170
+ return null;
2171
+ }
2172
+ const filteredEvents = getCurrentEvents$1(state);
2173
+ const selectedEvent = filteredEvents[selectedEventIndex];
2174
+ if (!selectedEvent) {
2175
+ return null;
2176
+ }
2177
+ const newIndex = getEventIndexByStableId$1(filteredEvents, selectedEvent);
2178
+ if (newIndex === -1) {
2179
+ return null;
2180
+ }
2181
+ return newIndex;
2144
2182
  };
2145
-
2146
- const getTimelineLeft = state => {
2147
- return state.x + viewPadding + timelineHorizontalPadding;
2148
- };
2149
- const getTimelineWidth = state => {
2150
- return Math.max(0, getMainWidth(state.width) - timelineHorizontalPadding * 2);
2151
- };
2152
-
2153
- const trailingZeroFractionRegex = /\.0+$/;
2154
- const trailingFractionZeroRegex = /(\.\d*?)0+$/;
2155
- const formatTimelinePresetValue = value => {
2156
- return value.toFixed(3).replace(trailingZeroFractionRegex, '').replace(trailingFractionZeroRegex, '$1');
2157
- };
2158
-
2159
- const getTimelineSecondsFromClientX = (events, eventX, timelineLeft, timelineWidth) => {
2160
- if (timelineWidth <= 0) {
2161
- return undefined;
2183
+ const getPreservedSelectedEventIndex$1 = (oldState, newState) => {
2184
+ const {
2185
+ selectedEventIndex
2186
+ } = oldState;
2187
+ if (selectedEventIndex === null) {
2188
+ return null;
2162
2189
  }
2163
- const durationSeconds = getTimelineDurationSeconds(events);
2164
- const relativeX = Math.min(Math.max(eventX - timelineLeft, 0), timelineWidth);
2165
- const ratio = relativeX / timelineWidth;
2166
- return formatTimelinePresetValue(durationSeconds * ratio);
2167
- };
2168
-
2169
- const handleTimelinePointerDown = (state, eventX) => {
2170
- const timelineEvents = getTimelineEvents(state);
2171
- const timelineLeft = getTimelineLeft(state);
2172
- const timelineWidth = getTimelineWidth(state);
2173
- const clientX = state.x + eventX;
2174
- const seconds = getTimelineSecondsFromClientX(timelineEvents, clientX, timelineLeft, timelineWidth);
2175
- if (seconds === undefined) {
2176
- return state;
2190
+ const oldFilteredEvents = getCurrentEvents$1(oldState);
2191
+ const selectedEvent = oldFilteredEvents[selectedEventIndex];
2192
+ if (!selectedEvent) {
2193
+ return null;
2194
+ }
2195
+ const newFilteredEvents = getCurrentEvents$1(newState);
2196
+ const newIndex = getEventIndexByStableId$1(newFilteredEvents, selectedEvent);
2197
+ if (newIndex === -1) {
2198
+ return null;
2177
2199
  }
2200
+ return newIndex;
2201
+ };
2202
+ const withPreservedSelection$1 = (state, nextState) => {
2203
+ const selectedEventIndex = getPreservedSelectedEventIndex$1(state, nextState);
2178
2204
  return {
2179
- ...state,
2180
- timelineSelectionActive: true,
2181
- timelineSelectionAnchorSeconds: seconds,
2182
- timelineSelectionFocusSeconds: seconds
2205
+ ...nextState,
2206
+ selectedEvent: selectedEventIndex === null ? null : state.selectedEvent,
2207
+ selectedEventId: selectedEventIndex === null ? null : state.selectedEventId,
2208
+ selectedEventIndex
2183
2209
  };
2184
2210
  };
2185
2211
 
2186
- const handleTimelinePointerMove = (state, eventX) => {
2187
- if (!state.timelineSelectionActive) {
2188
- return state;
2189
- }
2190
- const timelineEvents = getTimelineEvents(state);
2191
- const timelineLeft = getTimelineLeft(state);
2192
- const timelineWidth = getTimelineWidth(state);
2193
- const clientX = state.x + eventX;
2194
- const seconds = getTimelineSecondsFromClientX(timelineEvents, clientX, timelineLeft, timelineWidth);
2195
- if (seconds === undefined) {
2196
- return state;
2197
- }
2198
- return {
2212
+ const handleEventCategoryFilter = (state, value) => {
2213
+ const nextState = {
2199
2214
  ...state,
2200
- timelineSelectionFocusSeconds: seconds
2215
+ eventCategoryFilter: value || All
2201
2216
  };
2217
+ return withPreservedSelection$1(state, nextState);
2202
2218
  };
2203
2219
 
2204
- const handleTimelinePointerUp = (state, eventX) => {
2205
- if (!state.timelineSelectionActive) {
2206
- return state;
2207
- }
2208
- const timelineEvents = getTimelineEvents(state);
2209
- const timelineLeft = getTimelineLeft(state);
2210
- const timelineWidth = getTimelineWidth(state);
2211
- const clientX = state.x + eventX;
2212
- const focusSeconds = getTimelineSecondsFromClientX(timelineEvents, clientX, timelineLeft, timelineWidth);
2213
- if (focusSeconds === undefined) {
2214
- return clearTimelineSelectionState(state);
2215
- }
2216
- const anchor = Number.parseFloat(state.timelineSelectionAnchorSeconds);
2217
- const focus = Number.parseFloat(focusSeconds);
2218
- const startSeconds = formatTimelinePresetValue(Math.min(anchor, focus));
2219
- const endSeconds = formatTimelinePresetValue(Math.max(anchor, focus));
2220
- const nextState = handleInput(state, TimelineRangePreset, `${startSeconds}:${endSeconds}`, false);
2221
- return clearTimelineSelectionState(nextState);
2222
- };
2223
-
2224
- const getFailedToLoadMessage = sessionId => {
2225
- return `Failed to load chat debug session "${sessionId}". Please try again.`;
2226
- };
2227
-
2228
- const getIndexedDbNotSupportedMessage = () => {
2229
- return 'Unable to load chat debug session: IndexedDB is not supported in this environment.';
2220
+ const handleEventRowClickDependencies = {
2221
+ loadSelectedEvent: loadSelectedEvent
2230
2222
  };
2231
-
2232
- const ParseChatDebugUriErrorCode = {
2233
- InvalidSessionId: 'invalid-session-id',
2234
- InvalidUriEncoding: 'invalid-uri-encoding',
2235
- InvalidUriFormat: 'invalid-uri-format',
2236
- MissingUri: 'missing-uri'
2223
+ const isPrimaryButton = button => {
2224
+ return button === 0;
2237
2225
  };
2238
-
2239
- const getInvalidUriMessage = (uri, code) => {
2240
- if (code === ParseChatDebugUriErrorCode.MissingUri) {
2241
- return 'Unable to load debug session: missing URI. Expected format: chat-debug://<sessionId>.';
2226
+ const parseSelectedEventIndex$1 = value => {
2227
+ const parsed = Number.parseInt(value, 10);
2228
+ if (Number.isNaN(parsed) || parsed < 0) {
2229
+ return null;
2242
2230
  }
2243
- return `Unable to load debug session: invalid URI "${uri}". Expected format: chat-debug://<sessionId>.`;
2244
- };
2245
-
2246
- const getSessionNotFoundMessage = sessionId => {
2247
- return `No chat session found for sessionId "${sessionId}".`;
2248
- };
2249
-
2250
- const filterEventsBySessionId = (events, sessionId) => {
2251
- return events.filter(event => event.sessionId === sessionId);
2252
- };
2253
-
2254
- // cspell:ignore IDBP
2255
-
2256
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
2257
- const getAllEvents = async store => {
2258
- const all = await store.getAll();
2259
- return all;
2260
- };
2261
-
2262
- const getEndTime = event => {
2263
- return event.ended ?? event.endTime ?? event.timestamp;
2264
- };
2265
-
2266
- const getStartTime = event => {
2267
- return event.started ?? event.startTime ?? event.timestamp;
2231
+ return parsed;
2268
2232
  };
2269
-
2270
- const getDuration = event => {
2271
- const explicitDuration = event.durationMs ?? event.duration;
2272
- if (typeof explicitDuration === 'number' && Number.isFinite(explicitDuration)) {
2273
- return explicitDuration;
2233
+ const handleEventRowClick = async (state, value, button = 0) => {
2234
+ if (!isPrimaryButton(button)) {
2235
+ return state;
2274
2236
  }
2275
- const start = toTimeNumber(getStartTime(event));
2276
- const end = toTimeNumber(getEndTime(event));
2277
- if (start === undefined || end === undefined || !Number.isFinite(start) || !Number.isFinite(end)) {
2278
- return 0;
2237
+ const selectedEventIndex = parseSelectedEventIndex$1(value);
2238
+ if (selectedEventIndex === null) {
2239
+ return state;
2279
2240
  }
2280
- return Math.max(0, end - start);
2241
+ return selectEventAtIndex(state, selectedEventIndex, handleEventRowClickDependencies);
2281
2242
  };
2282
2243
 
2283
- const isTimeValue = value => {
2284
- return typeof value === 'number' || typeof value === 'string';
2244
+ const handleHeaderContextMenu = state => {
2245
+ return state;
2285
2246
  };
2286
2247
 
2287
- const getLightweightEvent = (event, fallbackEventId) => {
2288
- const startTime = getStartTime(event);
2289
- const endTime = getEndTime(event);
2290
- return {
2291
- duration: getDuration(event),
2292
- ...(isTimeValue(endTime) ? {
2293
- endTime
2294
- } : {}),
2295
- eventId: typeof event.eventId === 'number' ? event.eventId : fallbackEventId,
2296
- ...(isTimeValue(startTime) ? {
2297
- startTime
2298
- } : {}),
2299
- type: event.type
2300
- };
2248
+ const getBoolean = value => {
2249
+ return value === true || value === 'true' || value === 'on' || value === '1';
2301
2250
  };
2302
2251
 
2303
- // cspell:ignore IDBP
2252
+ const Filter = 'filter';
2253
+ const EventCategoryFilter = 'eventCategoryFilter';
2254
+ const ShowEventStreamFinishedEvents = 'showEventStreamFinishedEvents';
2255
+ const ShowInputEvents = 'showInputEvents';
2256
+ const ShowResponsePartEvents = 'showResponsePartEvents';
2257
+ const UseDevtoolsLayout = 'useDevtoolsLayout';
2258
+ const SelectedEventIndex = 'selectedEventIndex';
2259
+ const CloseDetails = 'closeDetails';
2260
+ const DetailTab = 'detailTab';
2261
+ const TimelineStartSeconds = 'timelineStartSeconds';
2262
+ const TimelineEndSeconds = 'timelineEndSeconds';
2263
+ const TimelineRangePreset = 'timelineRangePreset';
2264
+ const Refresh = 'refresh';
2304
2265
 
2305
- const toLightweightEvents = events => {
2306
- const eventsWithIds = events.map((event, index) => {
2266
+ const getCurrentEvents = state => {
2267
+ const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
2268
+ return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
2269
+ };
2270
+ const parseTimelineRangePreset$1 = value => {
2271
+ if (!value) {
2307
2272
  return {
2308
- ...event,
2309
- eventId: index + 1
2273
+ timelineEndSeconds: '',
2274
+ timelineStartSeconds: ''
2310
2275
  };
2311
- });
2312
- return collapseToolExecutionEvents(eventsWithIds).map((event, index) => getLightweightEvent(event, index + 1));
2313
- };
2314
- const getEventsBySessionId = async (store, sessionId, sessionIdIndexName) => {
2315
- if (store.indexNames.contains(sessionIdIndexName)) {
2316
- const index = store.index(sessionIdIndexName);
2317
- const events = await index.getAll(sessionId);
2318
- return toLightweightEvents(filterEventsBySessionId(events, sessionId));
2319
2276
  }
2320
- const all = await getAllEvents(store);
2321
- return toLightweightEvents(filterEventsBySessionId(all, sessionId));
2277
+ const [timelineStartSeconds = '', timelineEndSeconds = ''] = value.split(':', 2);
2278
+ return {
2279
+ timelineEndSeconds,
2280
+ timelineStartSeconds
2281
+ };
2322
2282
  };
2323
-
2324
- let indexedDbSupportOverride;
2325
- const getIndexedDbSupportOverride = () => {
2326
- return indexedDbSupportOverride;
2283
+ const getEventIndexByStableId = (events, event) => {
2284
+ return events.findIndex(candidate => candidate.eventId === event.eventId);
2327
2285
  };
2328
- const setIndexedDbSupportOverride = supported => {
2329
- indexedDbSupportOverride = supported;
2286
+ const getSelectedEventIndex = state => {
2287
+ const {
2288
+ selectedEventIndex
2289
+ } = state;
2290
+ if (selectedEventIndex === null) {
2291
+ return null;
2292
+ }
2293
+ const filteredEvents = getCurrentEvents(state);
2294
+ const selectedEvent = filteredEvents[selectedEventIndex];
2295
+ if (!selectedEvent) {
2296
+ return null;
2297
+ }
2298
+ const newIndex = getEventIndexByStableId(filteredEvents, selectedEvent);
2299
+ if (newIndex === -1) {
2300
+ return null;
2301
+ }
2302
+ return newIndex;
2330
2303
  };
2331
-
2332
- const isIndexedDbSupported = indexedDbSupportOverride => {
2333
- if (typeof indexedDbSupportOverride === 'boolean') {
2334
- return indexedDbSupportOverride;
2304
+ const getPreservedSelectedEventIndex = (oldState, newState) => {
2305
+ const {
2306
+ selectedEventIndex
2307
+ } = oldState;
2308
+ if (selectedEventIndex === null) {
2309
+ return null;
2310
+ }
2311
+ const oldFilteredEvents = getCurrentEvents(oldState);
2312
+ const selectedEvent = oldFilteredEvents[selectedEventIndex];
2313
+ if (!selectedEvent) {
2314
+ return null;
2335
2315
  }
2336
- const override = getIndexedDbSupportOverride();
2337
- if (typeof override === 'boolean') {
2338
- return override;
2316
+ const newFilteredEvents = getCurrentEvents(newState);
2317
+ const newIndex = getEventIndexByStableId(newFilteredEvents, selectedEvent);
2318
+ if (newIndex === -1) {
2319
+ return null;
2339
2320
  }
2340
- return globalThis.indexedDB !== undefined;
2321
+ return newIndex;
2341
2322
  };
2342
-
2343
- const listChatViewEventsDependencies = {
2344
- getEventsBySessionId: getEventsBySessionId,
2345
- openDatabase: openDatabase
2323
+ const parseSelectedEventIndex = value => {
2324
+ const parsed = Number.parseInt(value, 10);
2325
+ if (Number.isNaN(parsed) || parsed < 0) {
2326
+ return null;
2327
+ }
2328
+ return parsed;
2346
2329
  };
2347
- const listChatViewEvents = async (sessionId, databaseName, dataBaseVersion, eventStoreName, sessionIdIndexName, indexedDbSupportOverride) => {
2348
- if (!isIndexedDbSupported(indexedDbSupportOverride)) {
2349
- return {
2350
- type: 'not-supported'
2330
+ const withPreservedSelection = (state, nextState) => {
2331
+ const selectedEventIndex = getPreservedSelectedEventIndex(state, nextState);
2332
+ return {
2333
+ ...nextState,
2334
+ selectedEvent: selectedEventIndex === null ? null : state.selectedEvent,
2335
+ selectedEventId: selectedEventIndex === null ? null : state.selectedEventId,
2336
+ selectedEventIndex
2337
+ };
2338
+ };
2339
+ const handleInput = (state, name, value, checked) => {
2340
+ if (name === Filter) {
2341
+ const nextState = {
2342
+ ...state,
2343
+ filterValue: value
2351
2344
  };
2345
+ return withPreservedSelection(state, nextState);
2352
2346
  }
2353
- try {
2354
- const database = await listChatViewEventsDependencies.openDatabase(databaseName, dataBaseVersion);
2355
- try {
2356
- if (!database.objectStoreNames.contains(eventStoreName)) {
2357
- return {
2358
- events: [],
2359
- type: 'success'
2360
- };
2361
- }
2362
- const transaction = database.transaction(eventStoreName, 'readonly');
2363
- const store = transaction.objectStore(eventStoreName);
2364
- if (!sessionId) {
2365
- return {
2366
- events: [],
2367
- type: 'success'
2368
- };
2369
- }
2370
- const events = await listChatViewEventsDependencies.getEventsBySessionId(store, sessionId, sessionIdIndexName);
2371
- return {
2372
- events,
2373
- type: 'success'
2374
- };
2375
- } finally {
2376
- database.close();
2377
- }
2378
- } catch (error) {
2379
- return {
2380
- error,
2381
- type: 'error'
2347
+ if (name === EventCategoryFilter) {
2348
+ const nextState = {
2349
+ ...state,
2350
+ eventCategoryFilter: value || All
2382
2351
  };
2352
+ return withPreservedSelection(state, nextState);
2383
2353
  }
2384
- };
2385
-
2386
- const chatDebugUriPattern = /^chat-debug:\/\/([^/?#]+)$/;
2387
- const invalidSessionIdPattern = /[/?#]/;
2388
- const parseChatDebugUri = uri => {
2389
- if (!uri) {
2390
- return {
2391
- code: ParseChatDebugUriErrorCode.MissingUri,
2392
- message: 'Missing URI',
2393
- type: 'error'
2354
+ if (name === ShowEventStreamFinishedEvents) {
2355
+ const nextState = {
2356
+ ...state,
2357
+ showEventStreamFinishedEvents: getBoolean(checked)
2394
2358
  };
2359
+ return withPreservedSelection(state, nextState);
2395
2360
  }
2396
- const match = uri.match(chatDebugUriPattern);
2397
- if (!match) {
2398
- return {
2399
- code: ParseChatDebugUriErrorCode.InvalidUriFormat,
2400
- message: 'Invalid URI format',
2401
- type: 'error'
2361
+ if (name === ShowInputEvents) {
2362
+ const nextState = {
2363
+ ...state,
2364
+ showInputEvents: getBoolean(checked)
2402
2365
  };
2366
+ return withPreservedSelection(state, nextState);
2403
2367
  }
2404
- const encodedSessionId = match[1];
2405
- let sessionId;
2406
- try {
2407
- sessionId = decodeURIComponent(encodedSessionId);
2408
- } catch {
2409
- return {
2410
- code: ParseChatDebugUriErrorCode.InvalidUriEncoding,
2411
- message: 'Invalid URI encoding',
2412
- type: 'error'
2368
+ if (name === ShowResponsePartEvents) {
2369
+ const nextState = {
2370
+ ...state,
2371
+ showResponsePartEvents: getBoolean(checked)
2413
2372
  };
2373
+ return withPreservedSelection(state, nextState);
2414
2374
  }
2415
- if (!sessionId || invalidSessionIdPattern.test(sessionId)) {
2375
+ if (name === UseDevtoolsLayout) {
2376
+ const useDevtoolsLayout = getBoolean(checked);
2377
+ const selectedEventIndex = useDevtoolsLayout ? getSelectedEventIndex(state) : null;
2416
2378
  return {
2417
- code: ParseChatDebugUriErrorCode.InvalidSessionId,
2418
- message: 'Invalid session id',
2419
- type: 'error'
2379
+ ...state,
2380
+ selectedEvent: useDevtoolsLayout && selectedEventIndex !== null ? state.selectedEvent : null,
2381
+ selectedEventId: useDevtoolsLayout && selectedEventIndex !== null ? state.selectedEventId : null,
2382
+ selectedEventIndex,
2383
+ useDevtoolsLayout
2420
2384
  };
2421
2385
  }
2422
- return {
2423
- sessionId,
2424
- type: 'success'
2425
- };
2426
- };
2427
-
2428
- const loadEventsDependencies = {
2429
- listChatViewEvents: listChatViewEvents,
2430
- loadSelectedEvent: loadSelectedEvent
2431
- };
2432
- const getCurrentEvents = state => {
2433
- const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
2434
- return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
2435
- };
2436
- const restoreSelectedEvent = async state => {
2437
- if (state.selectedEventId === null) {
2386
+ if (name === SelectedEventIndex) {
2387
+ const selectedEventIndex = parseSelectedEventIndex(value);
2438
2388
  return {
2439
2389
  ...state,
2440
- selectedEvent: null,
2441
- selectedEventIndex: null
2390
+ selectedEvent: selectedEventIndex === null ? null : state.selectedEvent,
2391
+ selectedEventId: selectedEventIndex === null ? null : state.selectedEventId,
2392
+ selectedEventIndex
2442
2393
  };
2443
2394
  }
2444
- const currentEvents = getCurrentEvents(state);
2445
- const selectedEventIndex = currentEvents.findIndex(event => event.eventId === state.selectedEventId);
2446
- if (selectedEventIndex === -1) {
2395
+ if (name === TimelineStartSeconds) {
2396
+ const nextState = {
2397
+ ...state,
2398
+ timelineStartSeconds: value
2399
+ };
2400
+ return withPreservedSelection(state, nextState);
2401
+ }
2402
+ if (name === TimelineEndSeconds) {
2403
+ const nextState = {
2404
+ ...state,
2405
+ timelineEndSeconds: value
2406
+ };
2407
+ return withPreservedSelection(state, nextState);
2408
+ }
2409
+ if (name === TimelineRangePreset) {
2410
+ const nextState = {
2411
+ ...state,
2412
+ ...parseTimelineRangePreset$1(value)
2413
+ };
2414
+ return withPreservedSelection(state, nextState);
2415
+ }
2416
+ if (name === CloseDetails) {
2447
2417
  return {
2448
2418
  ...state,
2449
2419
  selectedEvent: null,
@@ -2451,865 +2421,282 @@ const restoreSelectedEvent = async state => {
2451
2421
  selectedEventIndex: null
2452
2422
  };
2453
2423
  }
2454
- const selectedEvent = currentEvents[selectedEventIndex];
2455
- if (!selectedEvent || typeof selectedEvent.eventId !== 'number') {
2424
+ if (name === DetailTab) {
2425
+ if (!isDetailTab(value)) {
2426
+ return state;
2427
+ }
2456
2428
  return {
2457
2429
  ...state,
2458
- selectedEvent: null,
2459
- selectedEventId: null,
2460
- selectedEventIndex: null
2430
+ selectedDetailTab: value
2461
2431
  };
2462
2432
  }
2463
- const selectedEventDetails = await loadEventsDependencies.loadSelectedEvent(state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionId, state.sessionIdIndexName, selectedEvent.eventId, selectedEvent.type);
2433
+ return state;
2434
+ };
2435
+
2436
+ const handleSashPointerDown = (state, eventX, eventY) => {
2437
+ return state;
2438
+ };
2439
+
2440
+ const handleSashPointerMove = (state, eventX, eventY) => {
2464
2441
  return {
2465
2442
  ...state,
2466
- selectedEvent: selectedEventDetails,
2467
- selectedEventId: selectedEvent.eventId,
2468
- selectedEventIndex
2443
+ tableWidth: getTableWidthFromClientX(state.x, state.width, eventX)
2469
2444
  };
2470
2445
  };
2471
- const getStateWithInvalidUri = state => {
2472
- const parsed = parseChatDebugUri(state.uri);
2473
- if (parsed.type !== 'error') {
2474
- return state;
2475
- }
2446
+
2447
+ const handleSashPointerUp = (state, eventX, eventY) => {
2448
+ return state;
2449
+ };
2450
+
2451
+ const clearTimelineSelectionState = state => {
2476
2452
  return {
2477
2453
  ...state,
2478
- errorMessage: getInvalidUriMessage(state.uri, parsed.code),
2479
- events: [],
2480
- initial: false,
2481
- selectedEvent: null,
2482
- selectedEventId: null,
2483
- selectedEventIndex: null,
2484
- sessionId: ''
2454
+ timelineSelectionActive: false,
2455
+ timelineSelectionAnchorSeconds: '',
2456
+ timelineSelectionFocusSeconds: ''
2485
2457
  };
2486
2458
  };
2487
- const getSessionIdFromUri = state => {
2488
- const parsed = parseChatDebugUri(state.uri);
2489
- if (parsed.type === 'error') {
2490
- return undefined;
2491
- }
2492
- return parsed.sessionId;
2493
- };
2494
- const loadEventsForSessionId = async (state, sessionId) => {
2495
- const {
2496
- databaseName,
2497
- dataBaseVersion,
2498
- eventStoreName,
2499
- indexedDbSupportOverride,
2500
- sessionIdIndexName
2501
- } = state;
2502
- const result = await loadEventsDependencies.listChatViewEvents(sessionId, databaseName, dataBaseVersion, eventStoreName, sessionIdIndexName, indexedDbSupportOverride);
2503
- if (result.type === 'not-supported') {
2504
- return {
2505
- ...state,
2506
- errorMessage: getIndexedDbNotSupportedMessage(),
2507
- events: [],
2508
- initial: false,
2509
- selectedEvent: null,
2510
- selectedEventId: null,
2511
- selectedEventIndex: null,
2512
- sessionId
2513
- };
2514
- }
2515
- if (result.type === 'error') {
2516
- return {
2517
- ...state,
2518
- errorMessage: getFailedToLoadMessage(sessionId),
2519
- events: [],
2520
- initial: false,
2521
- selectedEvent: null,
2522
- selectedEventId: null,
2523
- selectedEventIndex: null,
2524
- sessionId
2525
- };
2526
- }
2527
- const {
2528
- events
2529
- } = result;
2530
- if (events.length === 0) {
2459
+
2460
+ const parseTimelineRangePreset = value => {
2461
+ if (!value) {
2531
2462
  return {
2532
- ...state,
2533
- errorMessage: getSessionNotFoundMessage(sessionId),
2534
- events: [],
2535
- initial: false,
2536
- selectedEvent: null,
2537
- selectedEventId: null,
2538
- selectedEventIndex: null,
2539
- sessionId
2463
+ timelineEndSeconds: '',
2464
+ timelineStartSeconds: ''
2540
2465
  };
2541
2466
  }
2467
+ const [timelineStartSeconds = '', timelineEndSeconds = ''] = value.split(':', 2);
2468
+ return {
2469
+ timelineEndSeconds,
2470
+ timelineStartSeconds
2471
+ };
2472
+ };
2473
+ const handleTimelineStartSeconds = (state, value) => {
2542
2474
  const nextState = {
2543
2475
  ...state,
2544
- errorMessage: '',
2545
- events,
2546
- initial: false,
2547
- sessionId
2476
+ timelineStartSeconds: value
2548
2477
  };
2549
- return restoreSelectedEvent(nextState);
2478
+ return withPreservedSelection$1(state, nextState);
2550
2479
  };
2551
- const loadEventsFromUri = async state => {
2552
- const sessionId = getSessionIdFromUri(state);
2553
- if (!sessionId) {
2554
- return getStateWithInvalidUri(state);
2555
- }
2556
- return loadEventsForSessionId(state, sessionId);
2480
+ const handleTimelineEndSeconds = (state, value) => {
2481
+ const nextState = {
2482
+ ...state,
2483
+ timelineEndSeconds: value
2484
+ };
2485
+ return withPreservedSelection$1(state, nextState);
2557
2486
  };
2558
- const refreshEvents = async state => {
2559
- const sessionId = state.sessionId || getSessionIdFromUri(state);
2560
- if (!sessionId) {
2561
- return getStateWithInvalidUri(state);
2562
- }
2563
- return loadEventsForSessionId(state, sessionId);
2487
+ const handleTimelineRangePreset = (state, value) => {
2488
+ const nextState = {
2489
+ ...state,
2490
+ ...parseTimelineRangePreset(value)
2491
+ };
2492
+ return withPreservedSelection$1(state, nextState);
2564
2493
  };
2565
2494
 
2566
- const loadContent = async state => {
2567
- return loadEventsFromUri(state);
2495
+ const handleTimelineDoubleClick = state => {
2496
+ const nextState = handleTimelineRangePreset(state, '');
2497
+ return clearTimelineSelectionState(nextState);
2568
2498
  };
2569
2499
 
2570
- const refresh = async state => {
2571
- return refreshEvents(state);
2500
+ const getTimelineEvents = state => {
2501
+ const {
2502
+ eventCategoryFilter,
2503
+ events,
2504
+ filterValue,
2505
+ showEventStreamFinishedEvents,
2506
+ showInputEvents,
2507
+ showResponsePartEvents
2508
+ } = state;
2509
+ return getFilteredEvents(events, filterValue, eventCategoryFilter, showInputEvents, showResponsePartEvents, showEventStreamFinishedEvents);
2572
2510
  };
2573
2511
 
2574
- const ClientX = 'event.clientX';
2575
- const ClientY = 'event.clientY';
2576
- const TargetChecked = 'event.target.checked';
2577
- const TargetName = 'event.target.name';
2578
- const TargetValue = 'event.target.value';
2579
-
2580
- const SetCss = 'Viewlet.setCss';
2581
- const SetDom2 = 'Viewlet.setDom2';
2582
- const SetPatches = 'Viewlet.setPatches';
2583
-
2584
- const getCss = state => {
2585
- const tableWidth = clampTableWidth(state.width, state.tableWidth);
2586
- const detailsWidth = getDetailsWidth(state.width, state.tableWidth);
2587
- return `
2588
- .ChatDebugView {
2589
- --ChatDebugViewDetailsWidth: ${detailsWidth}px;
2590
- --ChatDebugViewSashWidth: ${sashWidth}px;
2591
- --ChatDebugViewTableWidth: ${tableWidth}px;
2592
- padding: ${viewPadding}px;
2593
- display: flex;
2594
- flex-direction: column;
2595
- height: 100%;
2596
- box-sizing: border-box;
2597
- gap: 8px;
2598
- contain: strict;
2599
- }
2600
-
2601
- .ChatDebugView--devtools {
2602
- gap: 4px;
2603
- }
2604
-
2605
- .ChatDebugViewTop {
2606
- display: flex;
2607
- align-items: center;
2608
- gap: 12px;
2609
- flex-wrap: wrap;
2610
- contain: content;
2611
- }
2612
-
2613
- .ChatDebugViewTop--devtools {
2614
- align-items: stretch;
2615
- }
2616
-
2617
- .ChatDebugViewFilterInput {
2618
- flex: 1;
2619
- min-width: 0;
2620
- max-width: 500px;
2621
- contain: content;
2622
- }
2623
-
2624
- .ChatDebugViewFilterInput--devtools {
2625
- flex: 0 1 80px;
2626
- width: 100%;
2627
- max-width: 80px;
2628
- }
2629
-
2630
- .ChatDebugViewQuickFilterPill {
2631
- display: flex;
2632
- align-items: center;
2633
- justify-content: center;
2634
- min-height: 22px;
2635
- padding: 0 10px;
2636
- border: 1px solid var(--vscode-editorWidget-border, #454545);
2637
- border-radius: 999px;
2638
- cursor: pointer;
2639
- white-space: nowrap;
2640
- transition:
2641
- background 120ms ease-out,
2642
- border-color 120ms ease-out,
2643
- color 120ms ease-out,
2644
- transform 120ms ease-out;
2645
- contain: content;
2646
- }
2647
-
2648
- .ChatDebugViewQuickFilterPill:not(.ChatDebugViewQuickFilterPillSelected):hover {
2649
- border-color: var(--vscode-focusBorder, #007fd4);
2650
- background: color-mix(in srgb, var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.16)) 82%, transparent 18%);
2651
- color: var(--vscode-list-hoverForeground, inherit);
2652
- transform: translateY(-1px);
2653
- }
2654
-
2655
-
2656
- .ChatDebugViewQuickFilters {
2657
- display: flex;
2658
- align-items: center;
2659
- gap: 8px;
2660
- justify-content: center;
2661
- min-height: 28px;
2662
- font-size: 12px;
2663
- line-height: 1;
2664
- contain: content;
2665
- }
2666
-
2667
- .ChatDebugViewQuickFilterPillSelected {
2668
- border-color: var(--vscode-focusBorder, #007fd4);
2669
- background: var(--vscode-list-activeSelectionBackground, rgba(14, 99, 156, 0.35));
2670
- color: var(--vscode-list-activeSelectionForeground, inherit);
2671
- }
2672
-
2673
- .ChatDebugViewQuickFilterInput {
2674
- position: absolute;
2675
- opacity: 0;
2676
- pointer-events: none;
2677
- contain: content;
2678
- }
2679
-
2680
- .ChatDebugViewEvents {
2681
- display: flex;
2682
- flex-direction: column;
2683
- overflow: auto;
2684
- min-width: 0;
2685
- min-height: 0;
2686
- scrollbar-width: thin;
2687
- scrollbar-color: var(--vscode-scrollbarSlider-background, rgba(121, 121, 121, 0.4)) transparent;
2688
- contain: strict;
2689
- }
2690
-
2691
- .ChatDebugView--devtools .ChatDebugViewEvents {
2692
- border-radius: 6px;
2693
- margin-bottom: 0;
2694
- overflow: hidden;
2695
- }
2696
-
2697
- .ChatDebugViewEventsFullWidth {
2698
- flex: 1 1 100%;
2699
- }
2700
-
2701
- .ChatDebugViewDevtoolsMain {
2702
- display: flex;
2703
- flex-direction: column;
2704
- flex: 1;
2705
- align-items: stretch;
2706
- gap: 0;
2707
- min-width: 0;
2708
- min-height: 0;
2709
- contain: strict;
2710
- }
2711
-
2712
- .ChatDebugViewDevtoolsMain > .ChatDebugViewTimeline {
2713
- flex: 0 0 auto;
2714
- }
2715
-
2716
- .ChatDebugViewDevtoolsSplit {
2717
- display: flex;
2718
- flex: 1;
2719
- align-items: stretch;
2720
- gap: 0;
2721
- min-width: 0;
2722
- min-height: 0;
2723
- overflow: hidden;
2724
- contain: strict;
2725
- }
2726
-
2727
- .ChatDebugViewDevtoolsSplit > .ChatDebugViewEvents {
2728
- flex: 0 1 var(--ChatDebugViewTableWidth);
2729
- min-width: 0;
2730
- }
2731
-
2732
- .ChatDebugViewDevtoolsSplit > .ChatDebugViewEvents.ChatDebugViewEventsFullWidth {
2733
- flex: 1 1 100%;
2734
- }
2735
-
2736
- .ChatDebugViewDevtoolsSplit > .ChatDebugViewDetails {
2737
- border-left: 0;
2738
- border-top-left-radius: 0;
2739
- border-bottom-left-radius: 0;
2740
- flex: 1;
2741
- }
2742
-
2743
- .ChatDebugViewSash {
2744
- flex: 0 0 var(--ChatDebugViewSashWidth);
2745
- position: relative;
2746
- cursor: col-resize;
2747
- display: flex;
2748
- justify-content: center;
2749
- min-height: 0;
2750
- contain: strict;
2751
- }
2752
-
2753
- .ChatDebugViewSashLine {
2754
- width: 1px;
2755
- height: 100%;
2756
- background: var(--vscode-editorWidget-border, #454545);
2757
- pointer-events: none;
2758
- contain: strict;
2759
- }
2760
-
2761
- .ChatDebugViewSash:hover .ChatDebugViewSashLine {
2762
- background: var(--vscode-focusBorder, #007fd4);
2763
- }
2764
-
2765
- .ChatDebugViewTable {
2766
- display: flex;
2767
- flex-direction: column;
2768
- min-height: 0;
2769
- flex: 1 1 auto;
2770
- contain: strict;
2771
- }
2772
-
2773
- .ChatDebugViewTimeline {
2774
- display: flex;
2775
- flex-direction: column;
2776
- gap: 6px;
2777
- padding: 6px ${timelineHorizontalPadding}px 8px;
2778
- border-bottom: 1px solid var(--vscode-editorWidget-border, #454545);
2779
- background: color-mix(in srgb, var(--vscode-editorWidget-background, transparent) 82%, var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.12)) 18%);
2780
- contain: content;
2781
- }
2782
-
2783
- .ChatDebugViewTimelineTop {
2784
- display: flex;
2785
- align-items: center;
2786
- contain: content;
2787
- }
2788
-
2789
- .ChatDebugViewTimelineSummary {
2790
- display: flex;
2791
- align-items: center;
2792
- font-size: 12px;
2793
- line-height: 16px;
2794
- opacity: 0.8;
2795
- contain: content;
2796
- }
2797
-
2798
- .ChatDebugViewTimelineControls {
2799
- display: flex;
2800
- align-items: center;
2801
- gap: 8px;
2802
- flex-wrap: wrap;
2803
- contain: content;
2804
- }
2805
-
2806
- .ChatDebugViewTimelineBuckets {
2807
- display: flex;
2808
- align-items: end;
2809
- gap: 3px;
2810
- flex: 1 1 auto;
2811
- min-height: 52px;
2812
- pointer-events: none;
2813
- contain: strict;
2814
- }
2815
-
2816
- .ChatDebugViewTimelineInteractive {
2817
- display: flex;
2818
- position: relative;
2819
- min-height: 52px;
2820
- cursor: crosshair;
2821
- user-select: none;
2822
- contain: strict;
2823
- }
2824
-
2825
- .ChatDebugViewTimelineSelectionOverlay {
2826
- position: absolute;
2827
- inset: 0;
2828
- pointer-events: none;
2829
- contain: strict;
2830
- }
2831
-
2832
- .ChatDebugViewTimelineSelectionRange {
2833
- position: absolute;
2834
- top: 0;
2835
- bottom: 0;
2836
- background: color-mix(in srgb, var(--vscode-charts-blue, #75beff) 20%, transparent 80%);
2837
- border-left: 1px solid color-mix(in srgb, var(--vscode-charts-blue, #75beff) 65%, transparent 35%);
2838
- border-right: 1px solid color-mix(in srgb, var(--vscode-charts-blue, #75beff) 65%, transparent 35%);
2839
- contain: strict;
2840
- }
2841
-
2842
- .ChatDebugViewTimelineSelectionMarker {
2843
- position: absolute;
2844
- top: 0;
2845
- bottom: 0;
2846
- width: 1px;
2847
- margin-left: -0.5px;
2848
- background: var(--vscode-focusBorder, #007fd4);
2849
- box-shadow: 0 0 0 1px color-mix(in srgb, var(--vscode-focusBorder, #007fd4) 24%, transparent 76%);
2850
- contain: strict;
2851
- }
2852
-
2853
- .ChatDebugViewTimelineBucket {
2854
- --ChatDebugViewTimelineBucketBarBackground: color-mix(in srgb, var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.16)) 74%, transparent 26%);
2855
- --ChatDebugViewTimelineBucketBarBorderColor: transparent;
2856
- display: flex;
2857
- align-items: stretch;
2858
- flex: 1 1 10px;
2859
- min-width: 10px;
2860
- min-height: 52px;
2861
- contain: strict;
2862
- }
2863
-
2864
- .ChatDebugViewTimelineBucketSelected {
2865
- --ChatDebugViewTimelineBucketBarBackground: color-mix(in srgb, var(--vscode-charts-blue, #75beff) 72%, transparent 28%);
2866
- --ChatDebugViewTimelineBucketBarBorderColor: var(--vscode-focusBorder, #007fd4);
2867
- }
2868
-
2869
- .ChatDebugViewTimelinePresetInput {
2870
- position: absolute;
2871
- opacity: 0;
2872
- pointer-events: none;
2873
- contain: content;
2874
- }
2875
-
2876
- .ChatDebugViewTimelineBucketBar {
2877
- display: flex;
2878
- flex-direction: column;
2879
- justify-content: flex-end;
2880
- gap: 2px;
2881
- padding: 6px 1px 2px;
2882
- border: 1px solid transparent;
2883
- border-radius: 2px;
2884
- width: 100%;
2885
- background: var(--ChatDebugViewTimelineBucketBarBackground);
2886
- border-color: var(--ChatDebugViewTimelineBucketBarBorderColor);
2887
- contain: strict;
2888
- }
2889
-
2890
- .ChatDebugViewTimelineBucketBarSelected {
2891
- background: color-mix(in srgb, var(--vscode-charts-blue, #75beff) 72%, transparent 28%);
2892
- border-color: var(--vscode-focusBorder, #007fd4);
2893
- }
2894
-
2895
- .ChatDebugViewTimelineBucketUnit {
2896
- width: 100%;
2897
- height: 4px;
2898
- border-radius: 999px;
2899
- background: var(--vscode-charts-blue, #75beff);
2900
- contain: strict;
2901
- }
2902
-
2903
- .ChatDebugViewTimelineBucketUnitEmpty {
2904
- opacity: 0.35;
2905
- background: var(--vscode-editorWidget-border, #454545);
2906
- }
2907
-
2908
- .ChatDebugViewTableHeaderRow,
2909
- .ChatDebugViewEventRow {
2910
- display: flex;
2911
- align-items: center;
2912
- gap: 8px;
2913
- contain: content;
2914
- }
2915
-
2916
- .ChatDebugViewTableHeader {
2917
- padding: 3px 8px;
2918
- border-bottom: 1px solid var(--vscode-editorWidget-border, #454545);
2919
- background: var(--vscode-editorWidget-background, transparent);
2920
- position: sticky;
2921
- top: 0;
2922
- z-index: 1;
2923
- contain: content;
2924
- }
2925
-
2926
- .ChatDebugViewHeaderCell {
2927
- display: flex;
2928
- align-items: center;
2929
- overflow: hidden;
2930
- text-overflow: ellipsis;
2931
- white-space: nowrap;
2932
- min-width: 0;
2933
- font-size: 11px;
2934
- letter-spacing: 0.04em;
2935
- opacity: 0.8;
2936
- contain: content;
2937
- }
2938
-
2939
- .ChatDebugViewTableHeaderRow > .ChatDebugViewHeaderCell:nth-child(1) {
2940
- flex: 1 1 140px;
2941
- min-width: 0;
2942
- }
2943
-
2944
- .ChatDebugViewTableHeaderRow > .ChatDebugViewHeaderCell:nth-child(2) {
2945
- flex: 0 0 90px;
2946
- justify-content: flex-end;
2947
- }
2948
-
2949
- .ChatDebugViewTableHeaderRow > .ChatDebugViewHeaderCell:nth-child(3) {
2950
- flex: 0 0 96px;
2951
- justify-content: flex-end;
2952
- }
2953
-
2954
- .ChatDebugViewTableBody {
2955
- display: flex;
2956
- flex-direction: column;
2957
- overflow: auto;
2958
- min-height: 0;
2959
- flex: 1 1 auto;
2960
- contain: strict;
2961
- }
2962
-
2963
- .ChatDebugViewEventRowLabel {
2964
- display: block;
2965
- contain: content;
2966
- }
2967
-
2968
- .ChatDebugViewEventRowLabelSelected .ChatDebugViewEventRow,
2969
- .ChatDebugViewEventRowSelected {
2970
- background: var(--vscode-list-activeSelectionBackground, rgba(14, 99, 156, 0.35));
2971
- color: var(--vscode-list-activeSelectionForeground, inherit);
2972
- }
2512
+ const getTimelineLeft = state => {
2513
+ return state.x + viewPadding + timelineHorizontalPadding;
2514
+ };
2515
+ const getTimelineWidth = state => {
2516
+ return Math.max(0, getMainWidth(state.width) - timelineHorizontalPadding * 2);
2517
+ };
2973
2518
 
2974
- .ChatDebugViewEventRowInput {
2975
- position: absolute;
2976
- opacity: 0;
2977
- pointer-events: none;
2978
- contain: content;
2979
- }
2519
+ const trailingZeroFractionRegex = /\.0+$/;
2520
+ const trailingFractionZeroRegex = /(\.\d*?)0+$/;
2521
+ const formatTimelinePresetValue = value => {
2522
+ return value.toFixed(3).replace(trailingZeroFractionRegex, '').replace(trailingFractionZeroRegex, '$1');
2523
+ };
2980
2524
 
2981
- .ChatDebugViewEventRow {
2982
- padding: 2px 8px;
2983
- background: color-mix(in srgb, var(--vscode-editorWidget-background, transparent) 92%, var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.31)) 8%);
2984
- cursor: default;
2985
- }
2525
+ const getTimelineSecondsFromClientX = (events, eventX, timelineLeft, timelineWidth) => {
2526
+ if (timelineWidth <= 0) {
2527
+ return undefined;
2528
+ }
2529
+ const durationSeconds = getTimelineDurationSeconds(events);
2530
+ const relativeX = Math.min(Math.max(eventX - timelineLeft, 0), timelineWidth);
2531
+ const ratio = relativeX / timelineWidth;
2532
+ return formatTimelinePresetValue(durationSeconds * ratio);
2533
+ };
2986
2534
 
2987
- .ChatDebugViewTableBody > .ChatDebugViewEventRow:nth-child(even) {
2988
- background: color-mix(in srgb, var(--vscode-editorWidget-background, transparent) 84%, var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.31)) 16%);
2989
- }
2535
+ const handleTimelinePointerDown = (state, eventX) => {
2536
+ const timelineEvents = getTimelineEvents(state);
2537
+ const timelineLeft = getTimelineLeft(state);
2538
+ const timelineWidth = getTimelineWidth(state);
2539
+ const clientX = state.x + eventX;
2540
+ const seconds = getTimelineSecondsFromClientX(timelineEvents, clientX, timelineLeft, timelineWidth);
2541
+ if (seconds === undefined) {
2542
+ return state;
2543
+ }
2544
+ return {
2545
+ ...state,
2546
+ timelineSelectionActive: true,
2547
+ timelineSelectionAnchorSeconds: seconds,
2548
+ timelineSelectionFocusSeconds: seconds
2549
+ };
2550
+ };
2990
2551
 
2991
- .ChatDebugViewEventRow:hover {
2992
- background: var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.31));
2993
- color: var(--vscode-list-hoverForeground, inherit);
2994
- }
2552
+ const handleTimelinePointerMove = (state, eventX) => {
2553
+ if (!state.timelineSelectionActive) {
2554
+ return state;
2555
+ }
2556
+ const timelineEvents = getTimelineEvents(state);
2557
+ const timelineLeft = getTimelineLeft(state);
2558
+ const timelineWidth = getTimelineWidth(state);
2559
+ const clientX = state.x + eventX;
2560
+ const seconds = getTimelineSecondsFromClientX(timelineEvents, clientX, timelineLeft, timelineWidth);
2561
+ if (seconds === undefined) {
2562
+ return state;
2563
+ }
2564
+ return {
2565
+ ...state,
2566
+ timelineSelectionFocusSeconds: seconds
2567
+ };
2568
+ };
2995
2569
 
2996
- .ChatDebugViewCell {
2997
- display: flex;
2998
- align-items: center;
2999
- overflow: hidden;
3000
- text-overflow: ellipsis;
3001
- white-space: nowrap;
3002
- min-width: 0;
3003
- pointer-events: none;
3004
- contain: content;
3005
- }
2570
+ const handleTimelinePointerUp = (state, eventX) => {
2571
+ if (!state.timelineSelectionActive) {
2572
+ return state;
2573
+ }
2574
+ const timelineEvents = getTimelineEvents(state);
2575
+ const timelineLeft = getTimelineLeft(state);
2576
+ const timelineWidth = getTimelineWidth(state);
2577
+ const clientX = state.x + eventX;
2578
+ const focusSeconds = getTimelineSecondsFromClientX(timelineEvents, clientX, timelineLeft, timelineWidth);
2579
+ if (focusSeconds === undefined) {
2580
+ return clearTimelineSelectionState(state);
2581
+ }
2582
+ const anchor = Number.parseFloat(state.timelineSelectionAnchorSeconds);
2583
+ const focus = Number.parseFloat(focusSeconds);
2584
+ const startSeconds = formatTimelinePresetValue(Math.min(anchor, focus));
2585
+ const endSeconds = formatTimelinePresetValue(Math.max(anchor, focus));
2586
+ const nextState = handleTimelineRangePreset(state, `${startSeconds}:${endSeconds}`);
2587
+ return clearTimelineSelectionState(nextState);
2588
+ };
3006
2589
 
3007
- .ChatDebugViewCellType {
3008
- flex: 1 1 140px;
3009
- min-width: 0;
3010
- }
2590
+ const handleUseDevtoolsLayout = (state, checked) => {
2591
+ const useDevtoolsLayout = getBoolean(checked);
2592
+ const selectedEventIndex = useDevtoolsLayout ? getSelectedEventIndex$1(state) : null;
2593
+ return {
2594
+ ...state,
2595
+ selectedEvent: useDevtoolsLayout && selectedEventIndex !== null ? state.selectedEvent : null,
2596
+ selectedEventId: useDevtoolsLayout && selectedEventIndex !== null ? state.selectedEventId : null,
2597
+ selectedEventIndex,
2598
+ useDevtoolsLayout
2599
+ };
2600
+ };
3011
2601
 
3012
- .ChatDebugViewCellTime {
3013
- flex: 1 1 180px;
3014
- min-width: 0;
3015
- }
2602
+ const handleShowEventStreamFinishedEvents = (state, checked) => {
2603
+ const nextState = {
2604
+ ...state,
2605
+ showEventStreamFinishedEvents: getBoolean(checked)
2606
+ };
2607
+ return withPreservedSelection$1(state, nextState);
2608
+ };
2609
+ const handleShowInputEvents = (state, checked) => {
2610
+ const nextState = {
2611
+ ...state,
2612
+ showInputEvents: getBoolean(checked)
2613
+ };
2614
+ return withPreservedSelection$1(state, nextState);
2615
+ };
2616
+ const handleShowResponsePartEvents = (state, checked) => {
2617
+ const nextState = {
2618
+ ...state,
2619
+ showResponsePartEvents: getBoolean(checked)
2620
+ };
2621
+ return withPreservedSelection$1(state, nextState);
2622
+ };
3016
2623
 
3017
- .ChatDebugViewCellDuration {
3018
- flex: 0 0 90px;
3019
- justify-content: flex-end;
3020
- text-align: right;
3021
- }
2624
+ const loadContent = async (state, savedState) => {
2625
+ return loadEventsFromUri(restoreSavedState(state, savedState));
2626
+ };
3022
2627
 
3023
- .ChatDebugViewCellStatus {
3024
- flex: 0 0 64px;
3025
- justify-content: flex-end;
3026
- text-align: right;
2628
+ const getCss = state => {
2629
+ const tableWidth = clampTableWidth(state.width, state.tableWidth);
2630
+ const detailsWidth = getDetailsWidth(state.width, state.tableWidth);
2631
+ return `
2632
+ .ChatDebugView {
2633
+ --ChatDebugViewDetailsWidth: ${detailsWidth}px;
2634
+ --ChatDebugViewSashWidth: ${sashWidth}px;
2635
+ --ChatDebugViewTableWidth: ${tableWidth}px;
2636
+ padding: ${viewPadding}px;
3027
2637
  }
3028
2638
 
3029
- .ChatDebugViewCellStatusError {
3030
- color: var(--vscode-errorForeground, #f14c4c);
3031
- }
3032
2639
 
3033
- .ChatDebugViewDetails {
3034
- border: 1px solid var(--vscode-editorWidget-border, #454545);
3035
- border-radius: 6px;
3036
- overflow: hidden;
3037
- min-width: 0;
3038
- min-height: 0;
3039
- display: flex;
3040
- flex-direction: column;
2640
+ .ChatDebugViewDetails {
3041
2641
  contain: strict;
3042
2642
  }
3043
2643
 
3044
2644
  .ChatDebugViewDetailsTop {
3045
- display: flex;
3046
- align-items: stretch;
3047
- justify-content: flex-start;
3048
- gap: 8px;
3049
- padding: 0 8px;
3050
- border-bottom: 1px solid var(--vscode-editorWidget-border, #454545);
3051
- background: color-mix(in srgb, var(--vscode-editorWidget-background, transparent) 72%, var(--vscode-list-hoverBackground, rgba(90, 93, 94, 0.18)) 28%);
3052
- contain: content;
3053
- }
3054
-
3055
- .ChatDebugViewDetailsClose {
3056
- width: 18px;
3057
- height: 18px;
3058
- appearance: none;
3059
- border: none;
3060
- border-radius: 4px;
3061
- cursor: pointer;
3062
- position: relative;
3063
- color: var(--vscode-foreground, #cccccc);
3064
- background: transparent;
3065
- align-self: center;
3066
- flex: 0 0 auto;
2645
+ height: 33px;
3067
2646
  contain: strict;
3068
2647
  }
3069
2648
 
3070
- .ChatDebugViewDetailsClose:hover {
3071
- background: var(--vscode-toolbar-hoverBackground, rgba(90, 93, 94, 0.31));
3072
- }
3073
-
3074
- .ChatDebugViewDetailsClose::before,
3075
- .ChatDebugViewDetailsClose::after {
3076
- content: '';
3077
- position: absolute;
3078
- left: 50%;
3079
- top: 50%;
3080
- width: 10px;
3081
- height: 1px;
3082
- background: currentColor;
3083
- }
3084
-
3085
- .ChatDebugViewDetailsClose::before {
3086
- transform: translate(-50%, -50%) rotate(45deg);
3087
- }
3088
-
3089
- .ChatDebugViewDetailsClose::after {
3090
- transform: translate(-50%, -50%) rotate(-45deg);
3091
- }
3092
-
3093
- .ChatDebugViewDetailsBody {
2649
+ .ChatDebugViewDetailsBottom {
3094
2650
  display: flex;
3095
- flex-direction: column;
3096
- overflow: hidden;
3097
- padding: 0;
3098
- flex: 1 1 auto;
3099
- min-height: 0;
3100
- align-items: stretch;
3101
2651
  contain: strict;
2652
+ flex:1
2653
+
2654
+ }
2655
+ .ChatDebugViewEvent {
2656
+ contain: content
3102
2657
  }
3103
2658
 
3104
- .ChatDebugViewDetailsTabs {
3105
- display: flex;
3106
- align-items: center;
3107
- flex: 1 1 auto;
3108
- gap: 2px;
3109
- min-width: 0;
3110
- padding: 0;
3111
- overflow-x: auto;
3112
- contain: content;
2659
+ .row {
2660
+ flex-shrink: 0;
3113
2661
  }
3114
2662
 
3115
- .ChatDebugViewDetailsTab {
3116
- display: flex;
2663
+ .ChatDebugViewRefreshButton {
2664
+ display: inline-flex;
3117
2665
  align-items: center;
3118
2666
  justify-content: center;
3119
- min-height: 32px;
2667
+ flex: none;
2668
+ min-height: 28px;
3120
2669
  padding: 0 10px;
3121
- appearance: none;
3122
- background: transparent;
3123
- border: 0;
3124
- border-bottom: 2px solid transparent;
3125
- color: var(--vscode-descriptionForeground, var(--vscode-foreground, #cccccc));
3126
- cursor: pointer;
3127
- white-space: nowrap;
3128
- contain: content;
3129
- }
3130
-
3131
- .ChatDebugViewDetailsTab:hover {
3132
- color: var(--vscode-foreground, #cccccc);
3133
- }
3134
-
3135
- .ChatDebugViewDetailsTabSelected {
3136
- border-bottom-color: var(--vscode-focusBorder, #007fd4);
3137
- color: var(--vscode-focusBorder, #007fd4);
3138
- }
3139
-
3140
- .ChatDebugViewDetailsPanel {
3141
- display: flex;
3142
- flex-direction: column;
3143
- overflow: auto;
3144
- padding: 8px;
3145
- flex: 1 1 auto;
3146
- min-height: 0;
3147
- align-items: flex-start;
3148
- contain: strict;
3149
- }
3150
-
3151
- .ChatDebugViewEvents::-webkit-scrollbar {
3152
- width: 10px;
3153
- height: 10px;
3154
- }
3155
-
3156
- .ChatDebugViewEvents::-webkit-scrollbar-track {
3157
- background: transparent;
3158
- }
3159
-
3160
- .ChatDebugViewEvents::-webkit-scrollbar-thumb {
3161
- background: var(--vscode-scrollbarSlider-background, rgba(121, 121, 121, 0.4));
3162
- border-radius: 999px;
3163
- border: 2px solid transparent;
3164
- background-clip: content-box;
3165
- }
3166
-
3167
- .ChatDebugViewEvents::-webkit-scrollbar-thumb:hover {
3168
- background: var(--vscode-scrollbarSlider-hoverBackground, rgba(100, 100, 100, 0.7));
3169
- }
3170
-
3171
- .ChatDebugViewEvents::-webkit-scrollbar-thumb:active {
3172
- background: var(--vscode-scrollbarSlider-activeBackground, rgba(191, 191, 191, 0.4));
3173
- }
3174
-
3175
- .ChatDebugViewEvent {
3176
- display: flex;
3177
- flex-direction: column;
3178
- width: max-content;
3179
- min-width: 100%;
3180
- margin: 0;
3181
- padding: 8px;
3182
- border: 1px solid var(--vscode-editorWidget-border, #454545);
2670
+ border: 1px solid rgba(255, 255, 255, 0.16);
3183
2671
  border-radius: 6px;
3184
- margin-bottom: 8px;
3185
- white-space: nowrap;
3186
- font-family: var(--vscode-editor-font-family, monospace);
2672
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
2673
+ color: inherit;
2674
+ font: inherit;
3187
2675
  font-size: 12px;
3188
- user-select: text;
3189
- contain: content;
3190
- }
3191
-
3192
- .row {
3193
- display: flex;
3194
- align-items: baseline;
3195
- gap: 12px;
3196
- min-width: 100%;
3197
- width: max-content;
2676
+ font-weight: 500;
2677
+ line-height: 1;
3198
2678
  white-space: nowrap;
3199
- contain: strict;
3200
- height: 20px;
3201
- }
3202
-
3203
- .ChatDebugViewEventLineNumber {
3204
- display: flex;
3205
- justify-content: flex-end;
3206
- flex: 0 0 3ch;
3207
- opacity: 0.6;
3208
- user-select: none;
3209
- contain: content;
3210
- }
3211
-
3212
- .ChatDebugViewEventLineContent {
3213
- display: flex;
3214
- white-space: pre;
3215
- contain: content;
3216
- }
3217
-
3218
- .ChatDebugViewDetailsPanel > .ChatDebugViewEvent {
3219
- border: 0;
3220
- border-radius: 0;
3221
- margin-bottom: 0;
3222
- }
3223
-
3224
- .ChatDebugViewTiming {
3225
- display: flex;
3226
- flex-direction: column;
3227
- width: 100%;
3228
- contain: strict;
3229
- flex: 1;
3230
- }
3231
-
3232
- .ChatDebugViewTimingRow {
3233
- display: flex;
3234
- align-items: center;
3235
- justify-content: space-between;
3236
- gap: 12px;
3237
- padding: 8px 10px;
3238
- border-bottom: 1px solid var(--vscode-editorWidget-border, #454545);
3239
- contain: content;
3240
- }
3241
-
3242
- .ChatDebugViewTimingRow:last-child {
3243
- border-bottom: 0;
3244
- }
3245
-
3246
- .ChatDebugViewTimingLabel {
3247
- opacity: 0.8;
3248
- contain: content;
3249
- }
3250
-
3251
- .ChatDebugViewTimingValue {
3252
- text-align: right;
3253
- font-family: var(--vscode-editor-font-family, monospace);
3254
- contain: content;
3255
- }
3256
-
3257
- .ChatDebugViewEmpty {
3258
- display: flex;
3259
- align-items: center;
3260
- opacity: 0.8;
3261
- contain: content;
3262
- }
3263
-
3264
- .ChatDebugViewError {
3265
- display: flex;
3266
- color: var(--vscode-errorForeground, #f14c4c);
3267
- white-space: normal;
3268
- contain: content;
3269
- }
3270
-
3271
- .TokenText {
3272
- color: var(--vscode-editor-foreground, inherit);
3273
- }
3274
-
3275
- .TokenKey {
3276
- color: var(--vscode-symbolIcon-propertyForeground, var(--vscode-editor-foreground, inherit));
3277
- }
3278
-
3279
- .TokenString {
3280
- color: var(--vscode-debugTokenExpression-string, var(--vscode-charts-green, #89d185));
3281
- }
3282
-
3283
- .TokenNumeric {
3284
- color: var(--vscode-debugTokenExpression-number, var(--vscode-charts-blue, #75beff));
2679
+ cursor: pointer;
2680
+ transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease;
3285
2681
  }
3286
2682
 
3287
- .TokenBoolean {
3288
- color: var(--vscode-debugTokenExpression-boolean, var(--vscode-charts-yellow, #dcdcaa));
2683
+ .ChatDebugViewRefreshButton:hover {
2684
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.08));
2685
+ border-color: rgba(255, 255, 255, 0.24);
3289
2686
  }
3290
2687
 
3291
- .ChatOrderedList{
3292
- display:flex;
3293
- flex-direction:column;
3294
- margin:0;
3295
- padding:0;
3296
- padding-left:10px;
3297
- contain: content;
2688
+ .ChatDebugViewRefreshButton:active {
2689
+ transform: translateY(1px);
3298
2690
  }
3299
2691
 
3300
- .ChatOrderedListItem{
3301
- display:flex;
3302
- margin:0;
3303
- padding:0;
3304
- contain: content;
2692
+ .ChatDebugViewRefreshButton:focus-visible {
2693
+ outline: 2px solid rgba(255, 255, 255, 0.4);
2694
+ outline-offset: 1px;
3305
2695
  }
3306
2696
 
3307
- .ChatToolCalls{
3308
- display:flex;
3309
- flex-direction:column;
3310
- margin:0;
3311
- padding:0;
3312
- contain: content;
2697
+ .ChatDebugViewEventRow:hover {
2698
+ background: var(--ListHoverBackground);
2699
+ color: var(--ListHoverForeground);
3313
2700
  }
3314
2701
  `;
3315
2702
  };
@@ -3319,21 +2706,6 @@ const renderCss = (oldState, newState) => {
3319
2706
  return [SetCss, newState.uid, css];
3320
2707
  };
3321
2708
 
3322
- const Button = 1;
3323
- const Div = 4;
3324
- const Input = 6;
3325
- const Span = 8;
3326
- const Table = 9;
3327
- const TBody = 10;
3328
- const Td = 11;
3329
- const Text = 12;
3330
- const Th = 13;
3331
- const THead = 14;
3332
- const Tr = 15;
3333
- const Search = 42;
3334
- const Label = 66;
3335
- const Reference = 100;
3336
-
3337
2709
  const text = data => {
3338
2710
  return {
3339
2711
  childCount: 0,
@@ -3633,9 +3005,8 @@ const diffTree = (oldNodes, newNodes) => {
3633
3005
  const ChatDebugView = 'ChatDebugView';
3634
3006
  const ChatDebugViewDevtools = 'ChatDebugView--devtools';
3635
3007
  const ChatDebugViewDetails = 'ChatDebugViewDetails';
3636
- const ChatDebugViewDetailsBody = 'ChatDebugViewDetailsBody';
3008
+ const ChatDebugViewDetailsBottom = 'ChatDebugViewDetailsBottom';
3637
3009
  const ChatDebugViewDetailsClose = 'ChatDebugViewDetailsClose';
3638
- const ChatDebugViewDetailsPanel = 'ChatDebugViewDetailsPanel';
3639
3010
  const ChatDebugViewDetailsTab = 'ChatDebugViewDetailsTab';
3640
3011
  const ChatDebugViewDetailsTabSelected = 'ChatDebugViewDetailsTabSelected';
3641
3012
  const ChatDebugViewDetailsTabs = 'ChatDebugViewDetailsTabs';
@@ -3654,6 +3025,7 @@ const ChatDebugViewEventsFullWidth = 'ChatDebugViewEventsFullWidth';
3654
3025
  const ChatDebugViewFilterInput = 'ChatDebugViewFilterInput';
3655
3026
  const ChatDebugViewFilterInputDevtools = 'ChatDebugViewFilterInput--devtools';
3656
3027
  const ChatDebugViewHeaderCell = 'ChatDebugViewHeaderCell';
3028
+ const ChatDebugViewRefreshButton = 'ChatDebugViewRefreshButton';
3657
3029
  const ChatDebugViewQuickFilterInput = 'ChatDebugViewQuickFilterInput';
3658
3030
  const ChatDebugViewQuickFilterPill = 'ChatDebugViewQuickFilterPill';
3659
3031
  const ChatDebugViewQuickFilterPillSelected = 'ChatDebugViewQuickFilterPillSelected';
@@ -3664,6 +3036,7 @@ const ChatDebugViewTable = 'ChatDebugViewTable';
3664
3036
  const ChatDebugViewTableBody = 'ChatDebugViewTableBody';
3665
3037
  const ChatDebugViewTableHeader = 'ChatDebugViewTableHeader';
3666
3038
  const ChatDebugViewTableHeaderRow = 'ChatDebugViewTableHeaderRow';
3039
+ const TableRowEven = 'TableRowEven';
3667
3040
  const ChatDebugViewTimeline = 'ChatDebugViewTimeline';
3668
3041
  const ChatDebugViewTimelineBucket = 'ChatDebugViewTimelineBucket';
3669
3042
  const ChatDebugViewTimelineBucketBar = 'ChatDebugViewTimelineBucketBar';
@@ -3673,7 +3046,6 @@ const ChatDebugViewTimelineBucketUnit = 'ChatDebugViewTimelineBucketUnit';
3673
3046
  const ChatDebugViewTimelineBucketUnitEmpty = 'ChatDebugViewTimelineBucketUnitEmpty';
3674
3047
  const ChatDebugViewTimelineBuckets = 'ChatDebugViewTimelineBuckets';
3675
3048
  const ChatDebugViewTimelineInteractive = 'ChatDebugViewTimelineInteractive';
3676
- const ChatDebugViewTimelinePresetInput = 'ChatDebugViewTimelinePresetInput';
3677
3049
  const ChatDebugViewTimelineSelectionMarker = 'ChatDebugViewTimelineSelectionMarker';
3678
3050
  const ChatDebugViewTimelineSelectionMarkerEnd = 'ChatDebugViewTimelineSelectionMarkerEnd';
3679
3051
  const ChatDebugViewTimelineSelectionMarkerStart = 'ChatDebugViewTimelineSelectionMarkerStart';
@@ -3694,11 +3066,11 @@ const ChatDebugViewCellStatusError = 'ChatDebugViewCellStatusError';
3694
3066
  const ChatDebugViewCellType = 'ChatDebugViewCellType';
3695
3067
  const InputBox = 'InputBox';
3696
3068
  const Row = 'row';
3697
- const TokenBoolean = 'TokenBoolean';
3698
- const TokenKey = 'TokenKey';
3699
- const TokenNumeric = 'TokenNumeric';
3700
- const TokenString = 'TokenString';
3701
- const TokenText = 'TokenText';
3069
+ const TokenBoolean = 'Token TokenBoolean';
3070
+ const TokenKey = 'Token TokenKey';
3071
+ const TokenNumeric = 'Token TokenNumeric';
3072
+ const TokenString = 'Token TokenString';
3073
+ const TokenText = 'Token TokenText';
3702
3074
  const joinClassNames = (...classNames) => {
3703
3075
  return classNames.filter(Boolean).join(' ');
3704
3076
  };
@@ -3715,9 +3087,9 @@ const getDebugErrorDom = errorMessage => {
3715
3087
  }, text(errorMessage)];
3716
3088
  };
3717
3089
 
3718
- const HandleInput = 4;
3090
+ const HandleEventCategoryFilter = 4;
3719
3091
  const HandleFilterInput = 5;
3720
- const HandleSimpleInput = 6;
3092
+ const HandleDetailTab = 6;
3721
3093
  const HandleEventRowClick = 7;
3722
3094
  const HandleHeaderContextMenu = 8;
3723
3095
  const HandleSashPointerDown = 9;
@@ -3730,11 +3102,26 @@ const HandleTimelinePointerMove = 15;
3730
3102
  const HandleTimelinePointerUp = 16;
3731
3103
  const HandleTimelineDoubleClick = 17;
3732
3104
  const HandleTableKeyDown = 18;
3105
+ const HandleTimelineRangePreset = 19;
3106
+ const HandleCloseDetails = 20;
3107
+ const HandleClickRefresh = 21;
3733
3108
 
3109
+ const getRefreshButtonDom = () => {
3110
+ return [{
3111
+ 'aria-label': 'Refresh events',
3112
+ childCount: 1,
3113
+ className: ChatDebugViewRefreshButton,
3114
+ name: Refresh,
3115
+ onClick: HandleClickRefresh,
3116
+ type: Button$1,
3117
+ value: Refresh
3118
+ }, text('Refresh')];
3119
+ };
3734
3120
  const getDebugViewTopDom = (filterValue, useDevtoolsLayout, quickFilterNodes) => {
3121
+ const refreshButtonDom = getRefreshButtonDom();
3735
3122
  if (useDevtoolsLayout) {
3736
3123
  return [{
3737
- childCount: 1 + (quickFilterNodes.length > 0 ? 1 : 0),
3124
+ childCount: 2 + (quickFilterNodes.length > 0 ? 1 : 0),
3738
3125
  className: joinClassNames(ChatDebugViewTop, ChatDebugViewTopDevtools),
3739
3126
  onContextMenu: HandleHeaderContextMenu,
3740
3127
  type: Search
@@ -3748,10 +3135,10 @@ const getDebugViewTopDom = (filterValue, useDevtoolsLayout, quickFilterNodes) =>
3748
3135
  placeholder: 'Filter events',
3749
3136
  type: Input,
3750
3137
  value: filterValue
3751
- }, ...quickFilterNodes];
3138
+ }, ...quickFilterNodes, ...refreshButtonDom];
3752
3139
  }
3753
3140
  return [{
3754
- childCount: 1,
3141
+ childCount: 2,
3755
3142
  className: ChatDebugViewTop,
3756
3143
  onContextMenu: HandleHeaderContextMenu,
3757
3144
  type: Search
@@ -3765,7 +3152,7 @@ const getDebugViewTopDom = (filterValue, useDevtoolsLayout, quickFilterNodes) =>
3765
3152
  placeholder: 'Filter events',
3766
3153
  type: Input,
3767
3154
  value: filterValue
3768
- }];
3155
+ }, ...refreshButtonDom];
3769
3156
  };
3770
3157
 
3771
3158
  const getDurationText = event => {
@@ -3857,11 +3244,11 @@ const getTabNodes = selectedDetailTab => {
3857
3244
  className: joinClassNames(ChatDebugViewDetailsTab, isSelected && ChatDebugViewDetailsTabSelected),
3858
3245
  id: getTabId(detailTab),
3859
3246
  name: DetailTab,
3860
- onChange: HandleSimpleInput,
3861
- onClick: HandleSimpleInput,
3247
+ onChange: HandleDetailTab,
3248
+ onClick: HandleDetailTab,
3862
3249
  role: 'tab',
3863
3250
  tabIndex: isSelected ? 0 : -1,
3864
- type: Button,
3251
+ type: Button$1,
3865
3252
  value: detailTab
3866
3253
  }, text(getDetailTabLabel(detailTab))];
3867
3254
  });
@@ -3874,7 +3261,7 @@ const getDetailsDom = (previewEventNodes, responseEventNodes = previewEventNodes
3874
3261
  return [{
3875
3262
  childCount: 2,
3876
3263
  className: ChatDebugViewDetails,
3877
- type: Div
3264
+ type: Section
3878
3265
  }, {
3879
3266
  childCount: 2,
3880
3267
  className: ChatDebugViewDetailsTop,
@@ -3884,9 +3271,9 @@ const getDetailsDom = (previewEventNodes, responseEventNodes = previewEventNodes
3884
3271
  childCount: 0,
3885
3272
  className: ChatDebugViewDetailsClose,
3886
3273
  name: CloseDetails,
3887
- onChange: HandleSimpleInput,
3888
- onClick: HandleSimpleInput,
3889
- type: Button,
3274
+ onChange: HandleCloseDetails,
3275
+ onClick: HandleCloseDetails,
3276
+ type: Button$1,
3890
3277
  value: 'close'
3891
3278
  }, {
3892
3279
  'aria-label': 'Detail sections',
@@ -3895,14 +3282,9 @@ const getDetailsDom = (previewEventNodes, responseEventNodes = previewEventNodes
3895
3282
  role: 'tablist',
3896
3283
  type: Div
3897
3284
  }, ...getTabNodes(selectedDetailTab), {
3898
- childCount: 1,
3899
- className: ChatDebugViewDetailsBody,
3900
- role: 'document',
3901
- type: Div
3902
- }, {
3903
3285
  'aria-labelledby': getTabId(selectedDetailTab),
3904
3286
  childCount: 1,
3905
- className: ChatDebugViewDetailsPanel,
3287
+ className: ChatDebugViewDetailsBottom,
3906
3288
  id: getPanelId(selectedDetailTab),
3907
3289
  onContextMenu: HandleDetailsContextMenu,
3908
3290
  role: 'tabpanel',
@@ -3976,6 +3358,9 @@ const hasErrorStatus = event => {
3976
3358
  if (isErrorStatusCode(result.status)) {
3977
3359
  return true;
3978
3360
  }
3361
+ if (isToolEvent(event) && 'error' in result && result.error !== undefined) {
3362
+ return true;
3363
+ }
3979
3364
  if (typeof result.error === 'string' || typeof result.errorMessage === 'string' || typeof result.exception === 'string') {
3980
3365
  return true;
3981
3366
  }
@@ -3989,12 +3374,13 @@ const getStatusText = event => {
3989
3374
 
3990
3375
  const getDevtoolsRows = (events, selectedEventIndex) => {
3991
3376
  return events.flatMap((event, i) => {
3377
+ const isEvenRow = i % 2 === 1;
3992
3378
  const isSelected = selectedEventIndex === i;
3993
3379
  const isErrorStatus = hasErrorStatus(event);
3994
3380
  const rowIndex = String(i);
3995
3381
  return [{
3996
3382
  childCount: 3,
3997
- className: joinClassNames(ChatDebugViewEventRow, isSelected && ChatDebugViewEventRowSelected),
3383
+ className: joinClassNames(ChatDebugViewEventRow, isEvenRow && TableRowEven, isSelected && ChatDebugViewEventRowSelected),
3998
3384
  'data-index': rowIndex,
3999
3385
  type: Tr
4000
3386
  }, {
@@ -4021,28 +3407,53 @@ const getEmptyStateDom = emptyMessage => {
4021
3407
  }, text(emptyMessage)];
4022
3408
  };
4023
3409
 
4024
- const pushToken = (segments, className, value) => {
4025
- if (!value) {
4026
- return segments;
3410
+ const isDigit = character => {
3411
+ return character !== undefined && character >= '0' && character <= '9';
3412
+ };
3413
+ const isWhitespace = character => {
3414
+ return character === ' ' || character === '\n' || character === '\r' || character === '\t';
3415
+ };
3416
+ const getNumberEnd = (json, start) => {
3417
+ let i = start;
3418
+ if (json[i] === '-') {
3419
+ i++;
4027
3420
  }
4028
- const lastSegment = segments.at(-1);
4029
- if (lastSegment && lastSegment.className === className) {
4030
- const merged = {
4031
- className,
4032
- value: lastSegment.value + value
4033
- };
4034
- return [...segments.slice(0, -1), merged];
3421
+ if (json[i] === '0') {
3422
+ i++;
3423
+ } else {
3424
+ if (!isDigit(json[i])) {
3425
+ return start;
3426
+ }
3427
+ while (isDigit(json[i])) {
3428
+ i++;
3429
+ }
4035
3430
  }
4036
- return [...segments, {
4037
- className,
4038
- value
4039
- }];
3431
+ if (json[i] === '.') {
3432
+ const decimalStart = i;
3433
+ i++;
3434
+ if (!isDigit(json[i])) {
3435
+ return decimalStart;
3436
+ }
3437
+ while (isDigit(json[i])) {
3438
+ i++;
3439
+ }
3440
+ }
3441
+ if (json[i] === 'e' || json[i] === 'E') {
3442
+ const exponentStart = i;
3443
+ i++;
3444
+ if (json[i] === '+' || json[i] === '-') {
3445
+ i++;
3446
+ }
3447
+ if (!isDigit(json[i])) {
3448
+ return exponentStart;
3449
+ }
3450
+ while (isDigit(json[i])) {
3451
+ i++;
3452
+ }
3453
+ }
3454
+ return i;
4040
3455
  };
4041
-
4042
- const numberRegex = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/;
4043
- const whitespaceRegex = /\s/u;
4044
- const getTokenSegments = json => {
4045
- let segments = [];
3456
+ const forEachTokenSegment = (json, onToken) => {
4046
3457
  let i = 0;
4047
3458
  while (i < json.length) {
4048
3459
  const character = json[i];
@@ -4061,40 +3472,38 @@ const getTokenSegments = json => {
4061
3472
  }
4062
3473
  i++;
4063
3474
  }
4064
- const tokenValue = json.slice(start, i);
4065
3475
  let lookAheadIndex = i;
4066
- while (lookAheadIndex < json.length && whitespaceRegex.test(json[lookAheadIndex])) {
3476
+ while (lookAheadIndex < json.length && isWhitespace(json[lookAheadIndex])) {
4067
3477
  lookAheadIndex++;
4068
3478
  }
4069
3479
  const className = json[lookAheadIndex] === ':' ? TokenKey : TokenString;
4070
- segments = pushToken(segments, className, tokenValue);
3480
+ onToken(className, json.slice(start, i));
4071
3481
  continue;
4072
3482
  }
4073
- const numberMatch = numberRegex.exec(json.slice(i));
4074
- if (numberMatch) {
4075
- segments = pushToken(segments, TokenNumeric, numberMatch[0]);
4076
- i += numberMatch[0].length;
3483
+ const numberEnd = getNumberEnd(json, i);
3484
+ if (numberEnd > i) {
3485
+ onToken(TokenNumeric, json.slice(i, numberEnd));
3486
+ i = numberEnd;
4077
3487
  continue;
4078
3488
  }
4079
3489
  if (json.startsWith('true', i)) {
4080
- segments = pushToken(segments, TokenBoolean, 'true');
3490
+ onToken(TokenBoolean, 'true');
4081
3491
  i += 4;
4082
3492
  continue;
4083
3493
  }
4084
3494
  if (json.startsWith('false', i)) {
4085
- segments = pushToken(segments, TokenBoolean, 'false');
3495
+ onToken(TokenBoolean, 'false');
4086
3496
  i += 5;
4087
3497
  continue;
4088
3498
  }
4089
3499
  if (json.startsWith('null', i)) {
4090
- segments = pushToken(segments, TokenBoolean, 'null');
3500
+ onToken(TokenBoolean, 'null');
4091
3501
  i += 4;
4092
3502
  continue;
4093
3503
  }
4094
- segments = pushToken(segments, TokenText, character);
3504
+ onToken(TokenText, character);
4095
3505
  i++;
4096
3506
  }
4097
- return segments;
4098
3507
  };
4099
3508
 
4100
3509
  const getJsonLines = value => {
@@ -4105,25 +3514,34 @@ const getJsonLines = value => {
4105
3514
  value: String(json)
4106
3515
  }]];
4107
3516
  }
4108
- const segments = getTokenSegments(json);
4109
3517
  const lines = [];
4110
3518
  let currentLine = [];
4111
- for (const segment of segments) {
4112
- const parts = segment.value.split('\n');
4113
- for (let i = 0; i < parts.length; i++) {
4114
- const part = parts[i];
4115
- if (part) {
4116
- currentLine.push({
4117
- className: segment.className,
4118
- value: part
4119
- });
4120
- }
4121
- if (i < parts.length - 1) {
3519
+ const pushLineSegment = (className, lineValue) => {
3520
+ if (!lineValue) {
3521
+ return;
3522
+ }
3523
+ const lastSegment = currentLine.at(-1);
3524
+ if (lastSegment && lastSegment.className === className) {
3525
+ lastSegment.value += lineValue;
3526
+ return;
3527
+ }
3528
+ currentLine.push({
3529
+ className,
3530
+ value: lineValue
3531
+ });
3532
+ };
3533
+ forEachTokenSegment(json, (className, segmentValue) => {
3534
+ let start = 0;
3535
+ for (let i = 0; i < segmentValue.length; i++) {
3536
+ if (segmentValue[i] === '\n') {
3537
+ pushLineSegment(className, segmentValue.slice(start, i));
4122
3538
  lines.push(currentLine);
4123
3539
  currentLine = [];
3540
+ start = i + 1;
4124
3541
  }
4125
3542
  }
4126
- }
3543
+ pushLineSegment(className, segmentValue.slice(start));
3544
+ });
4127
3545
  lines.push(currentLine);
4128
3546
  return lines;
4129
3547
  };
@@ -4179,6 +3597,36 @@ const getEventsClassName = hasSelectedEvent => {
4179
3597
  const hasOwn = (event, key) => {
4180
3598
  return Object.hasOwn(event, key);
4181
3599
  };
3600
+ const isChatMessageUpdatedEvent = event => {
3601
+ return event.type === 'chat-message-updated';
3602
+ };
3603
+ const isChatMessageAddedEvent = event => {
3604
+ return event.type === 'chat-message-added';
3605
+ };
3606
+ const getPreviewMessageText = event => {
3607
+ if (isChatMessageUpdatedEvent(event) && typeof event.text === 'string') {
3608
+ return event.text;
3609
+ }
3610
+ if (!isChatMessageAddedEvent(event)) {
3611
+ return undefined;
3612
+ }
3613
+ const {
3614
+ message
3615
+ } = event;
3616
+ if (!message || typeof message !== 'object') {
3617
+ return undefined;
3618
+ }
3619
+ if (!Object.hasOwn(message, 'text')) {
3620
+ return undefined;
3621
+ }
3622
+ const {
3623
+ text
3624
+ } = message;
3625
+ if (typeof text !== 'string') {
3626
+ return undefined;
3627
+ }
3628
+ return text;
3629
+ };
4182
3630
  const getPreviewName = event => {
4183
3631
  if (typeof event.name === 'string' && event.name) {
4184
3632
  return event.name;
@@ -4198,6 +3646,10 @@ const shouldIncludeArguments = (event, name) => {
4198
3646
  return true;
4199
3647
  };
4200
3648
  const getPreviewEvent = event => {
3649
+ const previewMessageText = getPreviewMessageText(event);
3650
+ if (previewMessageText !== undefined) {
3651
+ return previewMessageText;
3652
+ }
4201
3653
  const name = getPreviewName(event);
4202
3654
  const previewEvent = {
4203
3655
  ...(name === undefined ? {} : {
@@ -4281,9 +3733,12 @@ const formatPercent = value => {
4281
3733
  return `${Number(value.toFixed(3))}%`;
4282
3734
  };
4283
3735
 
4284
- const getBucketUnitDom = unitCount => {
3736
+ const getBucketUnitDom = (unitCount, presetValue) => {
4285
3737
  if (unitCount === 0) {
4286
3738
  return [{
3739
+ ...(presetValue ? {
3740
+ 'data-value': presetValue
3741
+ } : {}),
4287
3742
  childCount: 0,
4288
3743
  className: joinClassNames(ChatDebugViewTimelineBucketUnit, ChatDebugViewTimelineBucketUnitEmpty),
4289
3744
  type: Div
@@ -4292,6 +3747,9 @@ const getBucketUnitDom = unitCount => {
4292
3747
  return Array.from({
4293
3748
  length: unitCount
4294
3749
  }).fill({
3750
+ ...(presetValue ? {
3751
+ 'data-value': presetValue
3752
+ } : {}),
4295
3753
  childCount: 0,
4296
3754
  className: ChatDebugViewTimelineBucketUnit,
4297
3755
  type: Div
@@ -4301,23 +3759,17 @@ const getBucketUnitDom = unitCount => {
4301
3759
  const getBucketDom = bucket => {
4302
3760
  const presetValue = `${formatTimelinePresetValue(bucket.startSeconds)}:${formatTimelinePresetValue(bucket.endSeconds)}`;
4303
3761
  return [{
4304
- childCount: 2,
3762
+ childCount: 1,
4305
3763
  className: joinClassNames(ChatDebugViewTimelineBucket, bucket.isSelected && ChatDebugViewTimelineBucketSelected),
4306
- type: Label
4307
- }, {
4308
- checked: false,
4309
- childCount: 0,
4310
- className: ChatDebugViewTimelinePresetInput,
4311
- inputType: 'radio',
4312
- name: TimelineRangePreset,
4313
- onChange: HandleSimpleInput,
4314
- type: Input,
4315
- value: presetValue
3764
+ 'data-value': presetValue,
3765
+ onClick: HandleTimelineRangePreset,
3766
+ type: Div
4316
3767
  }, {
4317
3768
  childCount: bucket.unitCount === 0 ? 1 : bucket.unitCount,
4318
3769
  className: joinClassNames(ChatDebugViewTimelineBucketBar, bucket.isSelected && ChatDebugViewTimelineBucketBarSelected),
3770
+ 'data-value': presetValue,
4319
3771
  type: Div
4320
- }, ...getBucketUnitDom(bucket.unitCount)];
3772
+ }, ...getBucketUnitDom(bucket.unitCount, presetValue)];
4321
3773
  };
4322
3774
 
4323
3775
  const getEffectiveTimelineRange = (timelineStartSeconds, timelineEndSeconds, timelineSelectionActive, timelineSelectionAnchorSeconds, timelineSelectionFocusSeconds) => {
@@ -4373,7 +3825,7 @@ const getTimelineNodes = (timelineEvents, timelineStartSeconds, timelineEndSecon
4373
3825
  return [{
4374
3826
  childCount: 2,
4375
3827
  className: ChatDebugViewTimeline,
4376
- type: Div
3828
+ type: Section
4377
3829
  }, {
4378
3830
  childCount: 1,
4379
3831
  className: ChatDebugViewTimelineTop,
@@ -4414,10 +3866,12 @@ const getDevtoolsDom = (events, selectedEvent, selectedEventIndex, timelineEvent
4414
3866
  return [{
4415
3867
  childCount: mainChildCount,
4416
3868
  className: ChatDebugViewDevtoolsMain,
3869
+ role: 'none',
4417
3870
  type: Div
4418
3871
  }, ...timelineNodes, {
4419
3872
  childCount: splitChildCount,
4420
3873
  className: ChatDebugViewDevtoolsSplit,
3874
+ role: 'none',
4421
3875
  type: Div
4422
3876
  }, {
4423
3877
  childCount: 1,
@@ -4460,7 +3914,7 @@ const getQuickFilterNodes = (eventCategoryFilter, eventCategoryFilterOptions) =>
4460
3914
  className: ChatDebugViewQuickFilterInput,
4461
3915
  inputType: 'radio',
4462
3916
  name: EventCategoryFilter,
4463
- onChange: HandleInput,
3917
+ onChange: HandleEventCategoryFilter,
4464
3918
  type: Input,
4465
3919
  value: option.value
4466
3920
  }, text(option.label)];
@@ -4498,10 +3952,12 @@ const getChatDebugViewDom = (errorMessage, filterValue, eventCategoryFilter, eve
4498
3952
  if (timelineFilterDescription) {
4499
3953
  filterDescriptionParts.push(timelineFilterDescription);
4500
3954
  }
3955
+ const hasTimelineFilter = Boolean(timelineFilterDescription);
4501
3956
  const hasFilterValue = filterDescriptionParts.length > 0;
4502
3957
  const filterDescription = filterDescriptionParts.join(' ');
4503
3958
  const noFilteredEventsMessage = `no events found matching ${filterDescription}`;
4504
- const emptyMessage = events.length === 0 && hasFilterValue ? noFilteredEventsMessage : 'No events have been found';
3959
+ const useNoToolCallEventsMessage = eventCategoryFilter === Tools && !trimmedFilterValue && !hasTimelineFilter;
3960
+ const emptyMessage = events.length === 0 && hasFilterValue ? useNoToolCallEventsMessage ? 'No tool call events.' : noFilteredEventsMessage : 'No events have been found';
4505
3961
  const safeSelectedEventIndex = selectedEventIndex === null || selectedEventIndex < 0 || selectedEventIndex >= events.length ? null : selectedEventIndex;
4506
3962
  const contentNodes = useDevtoolsLayout ? getDevtoolsDom(events, selectedEvent, safeSelectedEventIndex, timelineEvents, timelineStartSeconds, timelineEndSeconds, emptyMessage, timelineSelectionActive, timelineSelectionAnchorSeconds, timelineSelectionFocusSeconds, isDetailTab(selectedDetailTab) ? selectedDetailTab : Response) : getLegacyEventsDom(errorMessage, emptyMessage, events.flatMap(getEventNode));
4507
3963
  const quickFilterNodes = useDevtoolsLayout ? getQuickFilterNodes(eventCategoryFilter, eventCategoryFilterOptions) : [];
@@ -4575,21 +4031,41 @@ const render2 = (uid, diffResult) => {
4575
4031
 
4576
4032
  const renderEventListeners = () => {
4577
4033
  return [{
4034
+ name: HandleHeaderContextMenu,
4035
+ params: ['handleHeaderContextMenu'],
4036
+ preventDefault: true
4037
+ }, {
4578
4038
  name: HandleEventRowClick,
4579
- params: ['handleEventRowClick', 'event.target.dataset.index', 'event.button']
4039
+ params: ['handleEventRowClick', 'event.target.dataset.index', Button]
4580
4040
  }, {
4581
4041
  name: HandleTableBodyContextMenu,
4582
- params: ['handleTableBodyContextMenu'],
4042
+ params: ['handleTableBodyContextMenu', ClientX, ClientY],
4043
+ preventDefault: true
4044
+ }, {
4045
+ name: HandleDetailsContextMenu,
4046
+ params: ['handleDetailsContextMenu'],
4583
4047
  preventDefault: true
4584
4048
  }, {
4585
4049
  name: HandleFilterInput,
4586
4050
  params: ['handleInput', TargetName, TargetValue]
4587
4051
  }, {
4588
- name: HandleInput,
4589
- params: ['handleInput', TargetName, TargetValue, TargetChecked]
4052
+ name: HandleEventCategoryFilter,
4053
+ params: ['handleEventCategoryFilter', TargetValue]
4590
4054
  }, {
4591
- name: HandleSimpleInput,
4592
- params: ['handleInput', TargetName, TargetValue]
4055
+ name: HandleDetailTab,
4056
+ params: ['handleDetailTab', TargetValue]
4057
+ }, {
4058
+ name: HandleTimelineRangePreset,
4059
+ params: ['handleTimelineRangePreset', 'event.target.dataset.value']
4060
+ }, {
4061
+ name: HandleCloseDetails,
4062
+ params: ['handleCloseDetails']
4063
+ }, {
4064
+ name: HandleClickRefresh,
4065
+ params: ['handleClickRefresh']
4066
+ }, {
4067
+ name: HandleTableKeyDown,
4068
+ params: ['handleTableKeyDown', 'event.key']
4593
4069
  }, {
4594
4070
  name: HandleSashPointerDown,
4595
4071
  params: ['handleSashPointerDown', ClientX, ClientY],
@@ -4645,28 +4121,20 @@ const saveState = state => {
4645
4121
  const {
4646
4122
  eventCategoryFilter,
4647
4123
  filterValue,
4648
- height,
4124
+ selectedDetailTab,
4649
4125
  selectedEventId,
4650
4126
  sessionId,
4651
- tableWidth,
4652
4127
  timelineEndSeconds,
4653
- timelineStartSeconds,
4654
- width,
4655
- x,
4656
- y
4128
+ timelineStartSeconds
4657
4129
  } = state;
4658
4130
  return {
4659
4131
  eventCategoryFilter,
4660
4132
  filterValue,
4661
- height,
4133
+ selectedDetailTab,
4662
4134
  selectedEventId,
4663
4135
  sessionId,
4664
- tableWidth,
4665
4136
  timelineEndSeconds,
4666
- timelineStartSeconds,
4667
- width,
4668
- x,
4669
- y
4137
+ timelineStartSeconds
4670
4138
  };
4671
4139
  };
4672
4140
 
@@ -4682,31 +4150,20 @@ const setEvents = (state, events) => {
4682
4150
  };
4683
4151
  };
4684
4152
 
4685
- const setIndexedDbSupportForTest = supported => {
4686
- return setIndexedDbSupportOverride(supported);
4153
+ const setSessionIdDependencies = {
4154
+ listChatViewEvents: listChatViewEvents
4687
4155
  };
4688
-
4689
4156
  const setSessionId = async (state, sessionId) => {
4690
- const result = await listChatViewEvents(sessionId, state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionIdIndexName);
4691
- if (result.type === 'not-supported') {
4692
- return {
4693
- ...state,
4694
- errorMessage: getIndexedDbNotSupportedMessage(),
4695
- events: [],
4696
- initial: false,
4697
- selectedEvent: null,
4698
- selectedEventId: null,
4699
- sessionId
4700
- };
4701
- }
4157
+ const result = await setSessionIdDependencies.listChatViewEvents(sessionId, state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionIdIndexName);
4702
4158
  if (result.type === 'error') {
4703
4159
  return {
4704
4160
  ...state,
4705
- errorMessage: getFailedToLoadMessage(sessionId),
4161
+ errorMessage: getFailedToLoadMessage(sessionId, result.error),
4706
4162
  events: [],
4707
4163
  initial: false,
4708
4164
  selectedEvent: null,
4709
4165
  selectedEventId: null,
4166
+ selectedEventIndex: null,
4710
4167
  sessionId
4711
4168
  };
4712
4169
  }
@@ -4720,26 +4177,40 @@ const setSessionId = async (state, sessionId) => {
4720
4177
  initial: false,
4721
4178
  selectedEvent: null,
4722
4179
  selectedEventId: null,
4180
+ selectedEventIndex: null,
4723
4181
  sessionId
4724
4182
  };
4725
4183
  };
4726
4184
 
4727
4185
  const commandMap = {
4186
+ 'ChatDebug.appendStoredEventForTest': wrapCommand(appendStoredEventForTest),
4728
4187
  'ChatDebug.create': create,
4729
4188
  'ChatDebug.diff2': diff2,
4730
4189
  'ChatDebug.getCommandIds': getCommandIds,
4190
+ 'ChatDebug.getMenuIds': getMenuIds,
4191
+ 'ChatDebug.handleClickRefresh': wrapCommand(handleClickRefresh),
4192
+ 'ChatDebug.handleCloseDetails': wrapCommand(handleCloseDetails),
4731
4193
  'ChatDebug.handleDetailsContextMenu': wrapCommand(handleDetailsContextMenu),
4194
+ 'ChatDebug.handleDetailTab': wrapCommand(handleDetailTab),
4195
+ 'ChatDebug.handleEventCategoryFilter': wrapCommand(handleEventCategoryFilter),
4732
4196
  'ChatDebug.handleEventRowClick': wrapCommand(handleEventRowClick),
4733
4197
  'ChatDebug.handleHeaderContextMenu': wrapCommand(handleHeaderContextMenu),
4734
4198
  'ChatDebug.handleInput': wrapCommand(handleInput),
4735
4199
  'ChatDebug.handleSashPointerDown': wrapCommand(handleSashPointerDown),
4736
4200
  'ChatDebug.handleSashPointerMove': wrapCommand(handleSashPointerMove),
4737
4201
  'ChatDebug.handleSashPointerUp': wrapCommand(handleSashPointerUp),
4202
+ 'ChatDebug.handleShowEventStreamFinishedEvents': wrapCommand(handleShowEventStreamFinishedEvents),
4203
+ 'ChatDebug.handleShowInputEvents': wrapCommand(handleShowInputEvents),
4204
+ 'ChatDebug.handleShowResponsePartEvents': wrapCommand(handleShowResponsePartEvents),
4738
4205
  'ChatDebug.handleTableBodyContextMenu': wrapCommand(handleTableBodyContextMenu),
4739
4206
  'ChatDebug.handleTimelineDoubleClick': wrapCommand(handleTimelineDoubleClick),
4207
+ 'ChatDebug.handleTimelineEndSeconds': wrapCommand(handleTimelineEndSeconds),
4740
4208
  'ChatDebug.handleTimelinePointerDown': wrapCommand(handleTimelinePointerDown),
4741
4209
  'ChatDebug.handleTimelinePointerMove': wrapCommand(handleTimelinePointerMove),
4742
4210
  'ChatDebug.handleTimelinePointerUp': wrapCommand(handleTimelinePointerUp),
4211
+ 'ChatDebug.handleTimelineRangePreset': wrapCommand(handleTimelineRangePreset),
4212
+ 'ChatDebug.handleTimelineStartSeconds': wrapCommand(handleTimelineStartSeconds),
4213
+ 'ChatDebug.handleUseDevtoolsLayout': wrapCommand(handleUseDevtoolsLayout),
4743
4214
  'ChatDebug.loadContent': wrapCommand(loadContent),
4744
4215
  'ChatDebug.loadContent2': wrapCommand(loadContent),
4745
4216
  'ChatDebug.refresh': wrapCommand(refresh),
@@ -4749,16 +4220,28 @@ const commandMap = {
4749
4220
  'ChatDebug.resize': wrapCommand(resize),
4750
4221
  'ChatDebug.saveState': wrapGetter(saveState),
4751
4222
  'ChatDebug.setEvents': wrapCommand(setEvents),
4752
- 'ChatDebug.setIndexedDbSupportForTest': setIndexedDbSupportForTest,
4753
4223
  'ChatDebug.setSessionId': wrapCommand(setSessionId),
4754
4224
  'ChatDebug.terminate': terminate
4755
4225
  };
4756
4226
 
4227
+ const sendMessagePortToChatStorageWorker = async port => {
4228
+ await sendMessagePortToChatStorageWorker$1(port);
4229
+ };
4230
+ const initializeChatStorageWorker = async () => {
4231
+ const rpc = await create$4({
4232
+ commandMap: {},
4233
+ send: sendMessagePortToChatStorageWorker
4234
+ });
4235
+ set$2(rpc);
4236
+ };
4237
+
4757
4238
  const listen = async () => {
4758
4239
  registerCommands(commandMap);
4759
- await create$2({
4240
+ const r = await create$3({
4760
4241
  commandMap: commandMap
4761
4242
  });
4243
+ set$1(r);
4244
+ await initializeChatStorageWorker();
4762
4245
  };
4763
4246
 
4764
4247
  const main = async () => {