@lvce-editor/static-server 0.75.8 → 0.75.10
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.
- package/config.json +1986 -1986
- package/package.json +1 -1
- package/static/{407762e → 3db9eb3}/css/App.css +98 -89
- package/static/{407762e → 3db9eb3}/css/parts/ViewletChat.css +7 -1
- package/static/{407762e → 3db9eb3}/manifest.json +2 -2
- package/static/{407762e → 3db9eb3}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
- package/static/{407762e → 3db9eb3}/packages/chat-view/dist/chatViewWorkerMain.js +1546 -119
- package/static/{407762e → 3db9eb3}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
- package/static/{407762e → 3db9eb3}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
- package/static/{407762e → 3db9eb3}/packages/renderer-worker/dist/rendererWorkerMain.js +99 -19
- package/static/index.html +4 -4
- /package/static/{407762e → 3db9eb3}/config/colorTheme.json +0 -0
- /package/static/{407762e → 3db9eb3}/config/defaultSettings.json +0 -0
- /package/static/{407762e → 3db9eb3}/config/fileMap.json +0 -0
- /package/static/{407762e → 3db9eb3}/config/webExtensions.json +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/AdditionalDetails.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Animation.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/BrowserScrollBar.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Category.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/DebugButtons.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/DebugValue.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/E2eTest.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/E2eTests.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/EditorHover.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/EditorMessage.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/FeatureContent.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Features.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ImagePreview.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/InlineDiffEditor.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/InputBadge.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Key.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/KeyBindingsHeader.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/KeyBindingsTable.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/LegacyDialog.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Markdown.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Message.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Preview.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ScrollToTop.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/SearchToggleButton.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Select.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/SettingsHeader.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/SettingsItems.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/SettingsSideBar.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/Table.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletAbout.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletBrowserViewOverview.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletDebugConsole.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletDefineKeyBinding.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletDialog.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletDiffEditor.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletEditorWidgetError.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletExtensionDetail.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletExtensionDetailHeader.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletExtensionDetailTabs.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletExtensions.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletIframeInspector.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletKeyBindings.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletLanguageModels.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletMedia.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletOutput.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletPanel.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletPanelTabs.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletPdf.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletProblems.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletReferences.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletRunAndDebug.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletScreenCapture.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletSearch.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletSettings.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletSimpleBrowser.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletSourceControl.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletStorage.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletTerminal.css +0 -0
- /package/static/{407762e → 3db9eb3}/css/parts/ViewletTerminalTabs.css +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-bat/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-bat/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-c/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-c/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cpp/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cpp/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cson/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cson/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-css/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-css/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-dart/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-dart/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-desktop/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-desktop/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-docker/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-docker/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-dotenv/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-elixir/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-elixir/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-elm/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-elm/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-gn/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-gn/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-go/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-go/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-graphql/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-graphql/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-html/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-html/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-java/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-java/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-javascript/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-javascript/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-json/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-json/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-json5/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-json5/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-jsx/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-jsx/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-julia/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-julia/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-kotlin/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-less/LICENSE +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-less/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-less/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-markdown/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-markdown/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-mdx/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-mdx/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nix/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nix/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-perl/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-perl/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-plaintext/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-powershell/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-powershell/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-python/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-python/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-r/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-r/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-ruby/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-ruby/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-rust/LICENSE +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-rust/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-rust/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-scss/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-scss/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-shellscript/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-svelte/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-svelte/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-terraform/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-terraform/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-toml/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-toml/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-typescript/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-typescript/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-vue/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-vue/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-wgsl/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-xml/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-xml/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-yaml/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-yaml/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-ayu/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-ayu/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-ayu/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-ayu/images/demo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-cobalt2/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-cobalt2/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-gruvbox/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-gruvbox/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-high-contrast/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-high-contrast/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-material/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-material/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-material/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-monokai/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-monokai/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-monokai/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-noctis-uva/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-palenight/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-palenight/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-palenight/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-palenight/images/demo.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-slime/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-slime/color-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-slime/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.theme-slime/icon.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/extension.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icon.png +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
- /package/static/{407762e → 3db9eb3}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
- /package/static/{407762e → 3db9eb3}/fonts/FiraCode-VariableFont.ttf +0 -0
- /package/static/{407762e → 3db9eb3}/icons/add.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/arrow-down.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/arrow-left.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/arrow-right.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/arrow-up.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/blank.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/book.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/case-sensitive.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/check.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chevron-down.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chevron-left.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chevron-right.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chevron-up.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chrome-close.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chrome-maximize.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chrome-minimize.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/chrome-restore.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/circle-filled.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/clear-all.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/close.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/cloud.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/collapse-all.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-all.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-alt-2.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-alt-small.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-alt.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-conditional.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-data-unverified.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-data.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-function-unverified.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-function.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-log-unverified.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-log.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-breakpoint-unsupported.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-console.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-continue-small.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-continue.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-coverage.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-disconnect.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-line-by-line.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-pause.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-rerun.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-restart-frame.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-restart.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-reverse-continue.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-stackframe-active.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-stackframe.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-start.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-step-back.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-step-into.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-step-out.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-step-over.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug-stop.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/debug.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/discard.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/edit.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/ellipsis.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/error.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/exclude.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/extensionDefaultIcon.png +0 -0
- /package/static/{407762e → 3db9eb3}/icons/extensions.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/files.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/filter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/go-to-file.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/icon-close.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/icon-source-control.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/icon-sync.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/icon.png +0 -0
- /package/static/{407762e → 3db9eb3}/icons/icon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/info.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/language-icon.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/link-external.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/list-flat.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/list-tree.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/new-file.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/new-folder.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/newline.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/open-preview.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/play.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/preserve-case.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/progress.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/pwa-icon-192.png +0 -0
- /package/static/{407762e → 3db9eb3}/icons/pwa-icon-512.png +0 -0
- /package/static/{407762e → 3db9eb3}/icons/record-keys.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/refresh.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/regex.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/remove.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/replace-all.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/replace.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/repo.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/run-all.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/search.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/send.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/settings-gear.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/sort-precedence.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/source-control.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/split-horizontal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/squiggly-error.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/squiggly-warning.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-array.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-boolean.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-class.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-color.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-constant.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-enum-member.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-enum.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-event.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-field.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-file.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-interface.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-key.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-keyword.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-method.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-misc.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-namespace.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-numeric.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-operator.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-parameter.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-property.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-ruler.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-snippet.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-string.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-structure.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/symbol-variable.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/tag.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/terminal-bash.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/terminal.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/theme-icon.png +0 -0
- /package/static/{407762e → 3db9eb3}/icons/trash.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/triangle-down.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/triangle-left.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/triangle-right.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/triangle-up.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/warning.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/whole-word.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/zoom-in.svg +0 -0
- /package/static/{407762e → 3db9eb3}/icons/zoom-out.svg +0 -0
- /package/static/{407762e → 3db9eb3}/js/babel-parser.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/ky.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/lvce-editor-import-script.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/lvce-editor-ipc.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/lvce-editor-json-rpc.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/lvce-editor-rpc.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/lvce-editor-verror.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/p-min-delay.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/pretty-bytes.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/preview-injected.js +0 -0
- /package/static/{407762e → 3db9eb3}/js/yoctodelay.js +0 -0
- /package/static/{407762e → 3db9eb3}/lib-css/termterm.css +0 -0
- /package/static/{407762e → 3db9eb3}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/error-worker/dist/errorWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/preload/dist/index.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/renderer-process/LICENSE +0 -0
- /package/static/{407762e → 3db9eb3}/packages/renderer-process/README.md +0 -0
- /package/static/{407762e → 3db9eb3}/packages/renderer-process/package.json +0 -0
- /package/static/{407762e → 3db9eb3}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/status-bar-worker/dist/statusBarWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/test-worker/dist/testWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/packages/update-worker/dist/updateWorkerMain.js +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.cpp +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.css +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.csv +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.dart +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.env +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.ex +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.html +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.java +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.jl +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.js +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.json +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.kt +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.pl +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.py +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/index.ts +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/scrolling.txt +0 -0
- /package/static/{407762e → 3db9eb3}/playground/languages/tsconfig.json +0 -0
- /package/static/{407762e → 3db9eb3}/playground/sample-folder/a.txt +0 -0
- /package/static/{407762e → 3db9eb3}/playground/sample-folder/b.txt +0 -0
- /package/static/{407762e → 3db9eb3}/playground/sample-folder/c.txt +0 -0
|
@@ -1036,6 +1036,7 @@ const create$2 = rpcId => {
|
|
|
1036
1036
|
};
|
|
1037
1037
|
|
|
1038
1038
|
const {
|
|
1039
|
+
invoke: invoke$1,
|
|
1039
1040
|
set: set$2
|
|
1040
1041
|
} = create$2(ExtensionHostWorker);
|
|
1041
1042
|
|
|
@@ -1044,10 +1045,16 @@ const {
|
|
|
1044
1045
|
invokeAndTransfer,
|
|
1045
1046
|
set: set$1
|
|
1046
1047
|
} = create$2(RendererWorker);
|
|
1048
|
+
const readFile = async uri => {
|
|
1049
|
+
return invoke('FileSystem.readFile', uri);
|
|
1050
|
+
};
|
|
1047
1051
|
const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
|
|
1048
1052
|
const command = 'HandleMessagePort.handleMessagePort2';
|
|
1049
1053
|
await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
|
|
1050
1054
|
};
|
|
1055
|
+
const activateByEvent$1 = (event, assetDir, platform) => {
|
|
1056
|
+
return invoke('ExtensionHostManagement.activateByEvent', event, assetDir, platform);
|
|
1057
|
+
};
|
|
1051
1058
|
const getPreference = async key => {
|
|
1052
1059
|
return await invoke('Preferences.get', key);
|
|
1053
1060
|
};
|
|
@@ -1175,9 +1182,50 @@ const terminate = () => {
|
|
|
1175
1182
|
globalThis.close();
|
|
1176
1183
|
};
|
|
1177
1184
|
|
|
1185
|
+
const measureTextBlockHeight = async (text, fontFamily, fontSize, lineHeight, width) => {
|
|
1186
|
+
return invoke('MeasureTextBlockHeight.measureTextBlockHeight', text, fontSize, fontFamily, lineHeight, width);
|
|
1187
|
+
};
|
|
1188
|
+
|
|
1189
|
+
const getComposerWidth = width => {
|
|
1190
|
+
return Math.max(1, width - 32);
|
|
1191
|
+
};
|
|
1192
|
+
const getMinComposerHeight = lineHeight => {
|
|
1193
|
+
return lineHeight + 8;
|
|
1194
|
+
};
|
|
1195
|
+
const getMaxComposerHeight = (lineHeight, maxComposerRows) => {
|
|
1196
|
+
return lineHeight * Math.max(1, maxComposerRows) + 8;
|
|
1197
|
+
};
|
|
1198
|
+
const estimateComposerHeight = (value, lineHeight) => {
|
|
1199
|
+
const lineCount = value.split('\n').length;
|
|
1200
|
+
return lineCount * lineHeight + 8;
|
|
1201
|
+
};
|
|
1202
|
+
const getComposerHeight = async (state, value, width = state.width) => {
|
|
1203
|
+
const {
|
|
1204
|
+
composerFontFamily,
|
|
1205
|
+
composerFontSize,
|
|
1206
|
+
composerLineHeight,
|
|
1207
|
+
maxComposerRows
|
|
1208
|
+
} = state;
|
|
1209
|
+
const minimumHeight = getMinComposerHeight(composerLineHeight);
|
|
1210
|
+
const maximumHeight = getMaxComposerHeight(composerLineHeight, maxComposerRows);
|
|
1211
|
+
const content = value || ' ';
|
|
1212
|
+
const composerWidth = getComposerWidth(width);
|
|
1213
|
+
try {
|
|
1214
|
+
const measuredHeight = await measureTextBlockHeight(content, composerFontFamily, composerFontSize, composerLineHeight, composerWidth);
|
|
1215
|
+
const height = Math.ceil(measuredHeight) + 8;
|
|
1216
|
+
return Math.max(minimumHeight, Math.min(maximumHeight, height));
|
|
1217
|
+
} catch {
|
|
1218
|
+
return Math.max(minimumHeight, Math.min(maximumHeight, estimateComposerHeight(value, composerLineHeight)));
|
|
1219
|
+
}
|
|
1220
|
+
};
|
|
1221
|
+
const getMinComposerHeightForState = state => {
|
|
1222
|
+
return getMinComposerHeight(state.composerLineHeight);
|
|
1223
|
+
};
|
|
1224
|
+
|
|
1178
1225
|
const clearInput = async state => {
|
|
1179
1226
|
return {
|
|
1180
1227
|
...state,
|
|
1228
|
+
composerHeight: getMinComposerHeightForState(state),
|
|
1181
1229
|
composerValue: ''
|
|
1182
1230
|
};
|
|
1183
1231
|
};
|
|
@@ -1224,15 +1272,24 @@ const composePlaceholder = () => {
|
|
|
1224
1272
|
const openRouterApiKeyPlaceholder = () => {
|
|
1225
1273
|
return i18nString('Enter OpenRouter API key');
|
|
1226
1274
|
};
|
|
1275
|
+
const openApiApiKeyPlaceholder = () => {
|
|
1276
|
+
return i18nString('Enter OpenAI API key');
|
|
1277
|
+
};
|
|
1227
1278
|
const sendMessage = () => {
|
|
1228
1279
|
return i18nString('Send message');
|
|
1229
1280
|
};
|
|
1230
1281
|
const save = () => {
|
|
1231
1282
|
return i18nString('Save');
|
|
1232
1283
|
};
|
|
1284
|
+
const saving = () => {
|
|
1285
|
+
return i18nString('Saving...');
|
|
1286
|
+
};
|
|
1233
1287
|
const getOpenRouterApiKey = () => {
|
|
1234
1288
|
return i18nString('Get API Key');
|
|
1235
1289
|
};
|
|
1290
|
+
const getOpenApiApiKey = () => {
|
|
1291
|
+
return i18nString('Get API Key');
|
|
1292
|
+
};
|
|
1236
1293
|
const deleteChatSession$1 = () => {
|
|
1237
1294
|
return i18nString('Delete chat session');
|
|
1238
1295
|
};
|
|
@@ -1260,6 +1317,22 @@ const getDefaultModels = () => {
|
|
|
1260
1317
|
id: defaultModelId,
|
|
1261
1318
|
name: 'test',
|
|
1262
1319
|
provider: 'test'
|
|
1320
|
+
}, {
|
|
1321
|
+
id: 'openapi/gpt-5-mini',
|
|
1322
|
+
name: 'GPT-5 Mini',
|
|
1323
|
+
provider: 'openApi'
|
|
1324
|
+
}, {
|
|
1325
|
+
id: 'openapi/gpt-4o-mini',
|
|
1326
|
+
name: 'GPT-4o Mini',
|
|
1327
|
+
provider: 'openApi'
|
|
1328
|
+
}, {
|
|
1329
|
+
id: 'openapi/gpt-4o',
|
|
1330
|
+
name: 'GPT-4o',
|
|
1331
|
+
provider: 'openApi'
|
|
1332
|
+
}, {
|
|
1333
|
+
id: 'openapi/gpt-4.1-mini',
|
|
1334
|
+
name: 'GPT-4.1 Mini',
|
|
1335
|
+
provider: 'openApi'
|
|
1263
1336
|
}, {
|
|
1264
1337
|
id: 'codex-5.3',
|
|
1265
1338
|
name: 'Codex 5.3',
|
|
@@ -1313,8 +1386,15 @@ const getDefaultModels = () => {
|
|
|
1313
1386
|
const createDefaultState = () => {
|
|
1314
1387
|
const defaultSessionId = 'session-1';
|
|
1315
1388
|
const defaultModelId = 'test';
|
|
1389
|
+
const composerFontSize = 13;
|
|
1390
|
+
const composerLineHeight = 20;
|
|
1316
1391
|
return {
|
|
1317
1392
|
assetDir: '',
|
|
1393
|
+
chatListScrollTop: 0,
|
|
1394
|
+
composerFontFamily: 'system-ui',
|
|
1395
|
+
composerFontSize,
|
|
1396
|
+
composerHeight: composerLineHeight + 8,
|
|
1397
|
+
composerLineHeight,
|
|
1318
1398
|
composerValue: '',
|
|
1319
1399
|
errorCount: 0,
|
|
1320
1400
|
focus: 'composer',
|
|
@@ -1325,12 +1405,20 @@ const createDefaultState = () => {
|
|
|
1325
1405
|
inputSource: 'script',
|
|
1326
1406
|
lastSubmittedSessionId: '',
|
|
1327
1407
|
listItemHeight: 40,
|
|
1408
|
+
maxComposerRows: 5,
|
|
1409
|
+
messagesScrollTop: 0,
|
|
1410
|
+
mockApiCommandId: '',
|
|
1328
1411
|
models: getDefaultModels(),
|
|
1329
1412
|
nextMessageId: 1,
|
|
1413
|
+
openApiApiBaseUrl: 'https://api.openai.com/v1',
|
|
1414
|
+
openApiApiKey: '',
|
|
1415
|
+
openApiApiKeyInput: '',
|
|
1416
|
+
openApiApiKeysSettingsUrl: 'https://platform.openai.com/api-keys',
|
|
1330
1417
|
openRouterApiBaseUrl: 'https://openrouter.ai/api/v1',
|
|
1331
1418
|
openRouterApiKey: '',
|
|
1332
1419
|
openRouterApiKeyInput: '',
|
|
1333
1420
|
openRouterApiKeysSettingsUrl: 'https://openrouter.ai/settings/keys',
|
|
1421
|
+
openRouterApiKeyState: 'idle',
|
|
1334
1422
|
platform: 0,
|
|
1335
1423
|
renamingSessionId: '',
|
|
1336
1424
|
selectedModelId: defaultModelId,
|
|
@@ -1340,10 +1428,12 @@ const createDefaultState = () => {
|
|
|
1340
1428
|
messages: [],
|
|
1341
1429
|
title: defaultSessionTitle()
|
|
1342
1430
|
}],
|
|
1431
|
+
streamingEnabled: false,
|
|
1343
1432
|
tokensMax: 0,
|
|
1344
1433
|
tokensUsed: 0,
|
|
1345
1434
|
uid: 0,
|
|
1346
1435
|
usageOverviewEnabled: false,
|
|
1436
|
+
useMockApi: false,
|
|
1347
1437
|
viewMode: 'list',
|
|
1348
1438
|
warningCount: 0,
|
|
1349
1439
|
width: 0,
|
|
@@ -1376,7 +1466,7 @@ const create = (uid, x, y, width, height, platform, assetDir) => {
|
|
|
1376
1466
|
};
|
|
1377
1467
|
|
|
1378
1468
|
const isEqual$1 = (oldState, newState) => {
|
|
1379
|
-
return oldState.initial === newState.initial;
|
|
1469
|
+
return oldState.initial === newState.initial && oldState.composerHeight === newState.composerHeight && oldState.composerLineHeight === newState.composerLineHeight && oldState.composerFontFamily === newState.composerFontFamily && oldState.composerFontSize === newState.composerFontSize;
|
|
1380
1470
|
};
|
|
1381
1471
|
|
|
1382
1472
|
const diffFocus = (oldState, newState) => {
|
|
@@ -1390,12 +1480,17 @@ const isEqual = (oldState, newState) => {
|
|
|
1390
1480
|
return oldState.composerValue === newState.composerValue && oldState.initial === newState.initial && oldState.renamingSessionId === newState.renamingSessionId && oldState.selectedModelId === newState.selectedModelId && oldState.selectedSessionId === newState.selectedSessionId && oldState.sessions === newState.sessions && oldState.tokensMax === newState.tokensMax && oldState.tokensUsed === newState.tokensUsed && oldState.usageOverviewEnabled === newState.usageOverviewEnabled && oldState.viewMode === newState.viewMode;
|
|
1391
1481
|
};
|
|
1392
1482
|
|
|
1483
|
+
const diffScrollTop = (oldState, newState) => {
|
|
1484
|
+
return oldState.chatListScrollTop === newState.chatListScrollTop && oldState.messagesScrollTop === newState.messagesScrollTop;
|
|
1485
|
+
};
|
|
1486
|
+
|
|
1393
1487
|
const RenderItems = 4;
|
|
1394
1488
|
const RenderFocus = 6;
|
|
1395
1489
|
const RenderFocusContext = 7;
|
|
1396
1490
|
const RenderValue = 8;
|
|
1397
1491
|
const RenderCss = 10;
|
|
1398
1492
|
const RenderIncremental = 11;
|
|
1493
|
+
const RenderScrollTop = 12;
|
|
1399
1494
|
|
|
1400
1495
|
const diffValue = (oldState, newState) => {
|
|
1401
1496
|
if (oldState.composerValue === newState.composerValue) {
|
|
@@ -1404,8 +1499,8 @@ const diffValue = (oldState, newState) => {
|
|
|
1404
1499
|
return newState.inputSource !== 'script';
|
|
1405
1500
|
};
|
|
1406
1501
|
|
|
1407
|
-
const modules = [isEqual, diffValue, diffFocus, isEqual$1, diffFocus];
|
|
1408
|
-
const numbers = [RenderIncremental, RenderValue, RenderFocus, RenderCss, RenderFocusContext];
|
|
1502
|
+
const modules = [isEqual, diffValue, diffFocus, isEqual$1, diffFocus, diffScrollTop];
|
|
1503
|
+
const numbers = [RenderIncremental, RenderValue, RenderFocus, RenderCss, RenderFocusContext, RenderScrollTop];
|
|
1409
1504
|
|
|
1410
1505
|
const diff = (oldState, newState) => {
|
|
1411
1506
|
const diffResult = [];
|
|
@@ -1438,6 +1533,7 @@ const FocusSelector = 'Viewlet.focusSelector';
|
|
|
1438
1533
|
const SetCss = 'Viewlet.setCss';
|
|
1439
1534
|
const SetDom2 = 'Viewlet.setDom2';
|
|
1440
1535
|
const SetFocusContext = 'Viewlet.setFocusContext';
|
|
1536
|
+
const SetProperty = 'Viewlet.setProperty';
|
|
1441
1537
|
const SetValueByName = 'Viewlet.setValueByName';
|
|
1442
1538
|
const SetPatches = 'Viewlet.setPatches';
|
|
1443
1539
|
|
|
@@ -2084,14 +2180,23 @@ const deleteSession = async (state, id) => {
|
|
|
2084
2180
|
};
|
|
2085
2181
|
};
|
|
2086
2182
|
|
|
2183
|
+
const handleClickOpenApiApiKeySettings = async state => {
|
|
2184
|
+
await openExternal(state.openApiApiKeysSettingsUrl);
|
|
2185
|
+
return state;
|
|
2186
|
+
};
|
|
2187
|
+
|
|
2087
2188
|
const handleClickOpenRouterApiKeySettings = async state => {
|
|
2088
2189
|
await openExternal(state.openRouterApiKeysSettingsUrl);
|
|
2089
2190
|
return state;
|
|
2090
2191
|
};
|
|
2091
2192
|
|
|
2193
|
+
const openApiApiKeyRequiredMessage = 'OpenAI API key is not configured. Enter your OpenAI API key below and click Save.';
|
|
2194
|
+
const openApiRequestFailedMessage = 'OpenAI request failed.';
|
|
2092
2195
|
const openRouterApiKeyRequiredMessage = 'OpenRouter API key is not configured. Enter your OpenRouter API key below and click Save.';
|
|
2093
2196
|
const openRouterRequestFailedMessage = 'OpenRouter request failed. Possible reasons:';
|
|
2197
|
+
const openRouterTooManyRequestsMessage = 'OpenRouter rate limit reached (429). Please try again soon. Helpful tips:';
|
|
2094
2198
|
const openRouterRequestFailureReasons = ['ContentSecurityPolicyViolation: Check DevTools for details.', 'OpenRouter server offline: Check DevTools for details.', 'Check your internet connection.'];
|
|
2199
|
+
const openRouterTooManyRequestsReasons = ['Wait a short time and retry your request.', 'Reduce request frequency to avoid rate limits.', 'Use a different model if this one is saturated.'];
|
|
2095
2200
|
|
|
2096
2201
|
const delay = async ms => {
|
|
2097
2202
|
await new Promise(resolve => setTimeout(resolve, ms));
|
|
@@ -2102,10 +2207,320 @@ const getMockAiResponse = async userMessage => {
|
|
|
2102
2207
|
return `Mock AI response: I received "${userMessage}".`;
|
|
2103
2208
|
};
|
|
2104
2209
|
|
|
2105
|
-
const
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2210
|
+
const activateByEvent = (event, assetDir, platform) => {
|
|
2211
|
+
// @ts-ignore
|
|
2212
|
+
return activateByEvent$1(event, assetDir, platform);
|
|
2213
|
+
};
|
|
2214
|
+
|
|
2215
|
+
const executeProvider = async ({
|
|
2216
|
+
assetDir,
|
|
2217
|
+
event,
|
|
2218
|
+
method,
|
|
2219
|
+
noProviderFoundMessage,
|
|
2220
|
+
params,
|
|
2221
|
+
platform
|
|
2222
|
+
}) => {
|
|
2223
|
+
await activateByEvent(event, assetDir, platform);
|
|
2224
|
+
// @ts-ignore
|
|
2225
|
+
const result = invoke$1(method, ...params);
|
|
2226
|
+
return result;
|
|
2227
|
+
};
|
|
2228
|
+
|
|
2229
|
+
const CommandExecute = 'ExtensionHostCommand.executeCommand';
|
|
2230
|
+
const FileSystemWriteFile = 'ExtensionHostFileSystem.writeFile';
|
|
2231
|
+
|
|
2232
|
+
const normalizeLimitInfo = value => {
|
|
2233
|
+
if (!value || typeof value !== 'object') {
|
|
2234
|
+
return undefined;
|
|
2235
|
+
}
|
|
2236
|
+
const limitRemaining = Reflect.get(value, 'limitRemaining');
|
|
2237
|
+
const limitReset = Reflect.get(value, 'limitReset');
|
|
2238
|
+
const retryAfter = Reflect.get(value, 'retryAfter');
|
|
2239
|
+
const usage = Reflect.get(value, 'usage');
|
|
2240
|
+
const usageDaily = Reflect.get(value, 'usageDaily');
|
|
2241
|
+
const normalized = {
|
|
2242
|
+
limitRemaining: typeof limitRemaining === 'number' || limitRemaining === null ? limitRemaining : undefined,
|
|
2243
|
+
limitReset: typeof limitReset === 'string' || limitReset === null ? limitReset : undefined,
|
|
2244
|
+
retryAfter: typeof retryAfter === 'string' || retryAfter === null ? retryAfter : undefined,
|
|
2245
|
+
usage: typeof usage === 'number' ? usage : undefined,
|
|
2246
|
+
usageDaily: typeof usageDaily === 'number' ? usageDaily : undefined
|
|
2247
|
+
};
|
|
2248
|
+
const hasDetails = normalized.limitRemaining !== undefined || normalized.limitReset !== undefined || normalized.retryAfter !== undefined || normalized.usage !== undefined || normalized.usageDaily !== undefined;
|
|
2249
|
+
return hasDetails ? normalized : undefined;
|
|
2250
|
+
};
|
|
2251
|
+
|
|
2252
|
+
const normalizeMockResult = value => {
|
|
2253
|
+
if (typeof value === 'string') {
|
|
2254
|
+
return {
|
|
2255
|
+
text: value,
|
|
2256
|
+
type: 'success'
|
|
2257
|
+
};
|
|
2258
|
+
}
|
|
2259
|
+
if (!value || typeof value !== 'object') {
|
|
2260
|
+
return {
|
|
2261
|
+
details: 'request-failed',
|
|
2262
|
+
type: 'error'
|
|
2263
|
+
};
|
|
2264
|
+
}
|
|
2265
|
+
const type = Reflect.get(value, 'type');
|
|
2266
|
+
if (type === 'success') {
|
|
2267
|
+
const text = Reflect.get(value, 'text');
|
|
2268
|
+
if (typeof text === 'string') {
|
|
2269
|
+
return {
|
|
2270
|
+
text,
|
|
2271
|
+
type: 'success'
|
|
2272
|
+
};
|
|
2273
|
+
}
|
|
2274
|
+
return {
|
|
2275
|
+
details: 'request-failed',
|
|
2276
|
+
type: 'error'
|
|
2277
|
+
};
|
|
2278
|
+
}
|
|
2279
|
+
if (type === 'error') {
|
|
2280
|
+
const details = Reflect.get(value, 'details');
|
|
2281
|
+
if (details === 'request-failed' || details === 'too-many-requests' || details === 'http-error') {
|
|
2282
|
+
const rawMessage = Reflect.get(value, 'rawMessage');
|
|
2283
|
+
const statusCode = Reflect.get(value, 'statusCode');
|
|
2284
|
+
return {
|
|
2285
|
+
details,
|
|
2286
|
+
limitInfo: normalizeLimitInfo(Reflect.get(value, 'limitInfo')),
|
|
2287
|
+
rawMessage: typeof rawMessage === 'string' ? rawMessage : undefined,
|
|
2288
|
+
statusCode: typeof statusCode === 'number' ? statusCode : undefined,
|
|
2289
|
+
type: 'error'
|
|
2290
|
+
};
|
|
2291
|
+
}
|
|
2292
|
+
}
|
|
2293
|
+
const text = Reflect.get(value, 'text');
|
|
2294
|
+
if (typeof text === 'string') {
|
|
2295
|
+
return {
|
|
2296
|
+
text,
|
|
2297
|
+
type: 'success'
|
|
2298
|
+
};
|
|
2299
|
+
}
|
|
2300
|
+
return {
|
|
2301
|
+
details: 'request-failed',
|
|
2302
|
+
type: 'error'
|
|
2303
|
+
};
|
|
2304
|
+
};
|
|
2305
|
+
|
|
2306
|
+
const getMockOpenRouterAssistantText = async (messages, modelId, openRouterApiBaseUrl, openRouterApiKey, mockApiCommandId, assetDir, platform) => {
|
|
2307
|
+
if (!mockApiCommandId) {
|
|
2308
|
+
return {
|
|
2309
|
+
details: 'request-failed',
|
|
2310
|
+
type: 'error'
|
|
2311
|
+
};
|
|
2312
|
+
}
|
|
2313
|
+
try {
|
|
2314
|
+
const result = await executeProvider({
|
|
2315
|
+
assetDir,
|
|
2316
|
+
event: `onCommand:${mockApiCommandId}`,
|
|
2317
|
+
method: CommandExecute,
|
|
2318
|
+
noProviderFoundMessage: 'No mock api command found',
|
|
2319
|
+
params: [mockApiCommandId, {
|
|
2320
|
+
messages,
|
|
2321
|
+
modelId,
|
|
2322
|
+
openRouterApiBaseUrl,
|
|
2323
|
+
openRouterApiKey
|
|
2324
|
+
}],
|
|
2325
|
+
platform
|
|
2326
|
+
});
|
|
2327
|
+
return normalizeMockResult(result);
|
|
2328
|
+
} catch {
|
|
2329
|
+
return {
|
|
2330
|
+
details: 'request-failed',
|
|
2331
|
+
type: 'error'
|
|
2332
|
+
};
|
|
2333
|
+
}
|
|
2334
|
+
};
|
|
2335
|
+
|
|
2336
|
+
const OnFileSystem = 'onFileSystem';
|
|
2337
|
+
|
|
2338
|
+
const isPathTraversalAttempt = path => {
|
|
2339
|
+
if (!path) {
|
|
2340
|
+
return false;
|
|
2341
|
+
}
|
|
2342
|
+
if (path.startsWith('/') || path.startsWith('\\')) {
|
|
2343
|
+
return true;
|
|
2344
|
+
}
|
|
2345
|
+
if (path.startsWith('file://')) {
|
|
2346
|
+
return true;
|
|
2347
|
+
}
|
|
2348
|
+
if (/^[a-zA-Z]:[\\/]/.test(path)) {
|
|
2349
|
+
return true;
|
|
2350
|
+
}
|
|
2351
|
+
const segments = path.split(/[\\/]/);
|
|
2352
|
+
return segments.includes('..');
|
|
2353
|
+
};
|
|
2354
|
+
const normalizeRelativePath = path => {
|
|
2355
|
+
const segments = path.split(/[\\/]/).filter(segment => segment && segment !== '.');
|
|
2356
|
+
if (segments.length === 0) {
|
|
2357
|
+
return '.';
|
|
2358
|
+
}
|
|
2359
|
+
return segments.join('/');
|
|
2360
|
+
};
|
|
2361
|
+
const parseToolArguments = rawArguments => {
|
|
2362
|
+
if (typeof rawArguments !== 'string') {
|
|
2363
|
+
return {};
|
|
2364
|
+
}
|
|
2365
|
+
try {
|
|
2366
|
+
const parsed = JSON.parse(rawArguments);
|
|
2367
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2368
|
+
return {};
|
|
2369
|
+
}
|
|
2370
|
+
return parsed;
|
|
2371
|
+
} catch {
|
|
2372
|
+
return {};
|
|
2373
|
+
}
|
|
2374
|
+
};
|
|
2375
|
+
const executeFileSystemCommand = async (method, params, options) => {
|
|
2376
|
+
return executeProvider({
|
|
2377
|
+
assetDir: options.assetDir,
|
|
2378
|
+
event: OnFileSystem,
|
|
2379
|
+
method,
|
|
2380
|
+
noProviderFoundMessage: 'No file system provider found',
|
|
2381
|
+
params,
|
|
2382
|
+
platform: options.platform
|
|
2383
|
+
});
|
|
2384
|
+
};
|
|
2385
|
+
const getBasicChatTools = () => {
|
|
2386
|
+
return [{
|
|
2387
|
+
function: {
|
|
2388
|
+
description: 'Read UTF-8 text content from a file inside the currently open workspace folder.',
|
|
2389
|
+
name: 'read_file',
|
|
2390
|
+
parameters: {
|
|
2391
|
+
additionalProperties: false,
|
|
2392
|
+
properties: {
|
|
2393
|
+
path: {
|
|
2394
|
+
description: 'Relative file path within the workspace (for example: src/index.ts).',
|
|
2395
|
+
type: 'string'
|
|
2396
|
+
}
|
|
2397
|
+
},
|
|
2398
|
+
required: ['path'],
|
|
2399
|
+
type: 'object'
|
|
2400
|
+
}
|
|
2401
|
+
},
|
|
2402
|
+
type: 'function'
|
|
2403
|
+
}, {
|
|
2404
|
+
function: {
|
|
2405
|
+
description: 'Write UTF-8 text content to a file inside the currently open workspace folder.',
|
|
2406
|
+
name: 'write_file',
|
|
2407
|
+
parameters: {
|
|
2408
|
+
additionalProperties: false,
|
|
2409
|
+
properties: {
|
|
2410
|
+
content: {
|
|
2411
|
+
description: 'New UTF-8 text content to write to the file.',
|
|
2412
|
+
type: 'string'
|
|
2413
|
+
},
|
|
2414
|
+
path: {
|
|
2415
|
+
description: 'Relative file path within the workspace (for example: src/index.ts).',
|
|
2416
|
+
type: 'string'
|
|
2417
|
+
}
|
|
2418
|
+
},
|
|
2419
|
+
required: ['path', 'content'],
|
|
2420
|
+
type: 'object'
|
|
2421
|
+
}
|
|
2422
|
+
},
|
|
2423
|
+
type: 'function'
|
|
2424
|
+
}, {
|
|
2425
|
+
function: {
|
|
2426
|
+
description: 'List direct children (files and folders) for a folder inside the currently open workspace folder.',
|
|
2427
|
+
name: 'list_files',
|
|
2428
|
+
parameters: {
|
|
2429
|
+
additionalProperties: false,
|
|
2430
|
+
properties: {
|
|
2431
|
+
path: {
|
|
2432
|
+
description: 'Relative folder path within the workspace. Use "." for the workspace root.',
|
|
2433
|
+
type: 'string'
|
|
2434
|
+
}
|
|
2435
|
+
},
|
|
2436
|
+
type: 'object'
|
|
2437
|
+
}
|
|
2438
|
+
},
|
|
2439
|
+
type: 'function'
|
|
2440
|
+
}];
|
|
2441
|
+
};
|
|
2442
|
+
const executeChatTool = async (name, rawArguments, options) => {
|
|
2443
|
+
const args = parseToolArguments(rawArguments);
|
|
2444
|
+
if (name === 'read_file') {
|
|
2445
|
+
const filePath = typeof args.path === 'string' ? args.path : '';
|
|
2446
|
+
if (!filePath || isPathTraversalAttempt(filePath)) {
|
|
2447
|
+
return JSON.stringify({
|
|
2448
|
+
error: 'Access denied: path must be relative and stay within the open workspace folder.'
|
|
2449
|
+
});
|
|
2450
|
+
}
|
|
2451
|
+
const normalizedPath = normalizeRelativePath(filePath);
|
|
2452
|
+
try {
|
|
2453
|
+
const content = await readFile(normalizedPath);
|
|
2454
|
+
return JSON.stringify({
|
|
2455
|
+
content,
|
|
2456
|
+
path: normalizedPath
|
|
2457
|
+
});
|
|
2458
|
+
} catch (error) {
|
|
2459
|
+
return JSON.stringify({
|
|
2460
|
+
error: String(error),
|
|
2461
|
+
path: normalizedPath
|
|
2462
|
+
});
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2465
|
+
if (name === 'write_file') {
|
|
2466
|
+
const filePath = typeof args.path === 'string' ? args.path : '';
|
|
2467
|
+
const content = typeof args.content === 'string' ? args.content : '';
|
|
2468
|
+
if (!filePath || isPathTraversalAttempt(filePath)) {
|
|
2469
|
+
return JSON.stringify({
|
|
2470
|
+
error: 'Access denied: path must be relative and stay within the open workspace folder.'
|
|
2471
|
+
});
|
|
2472
|
+
}
|
|
2473
|
+
const normalizedPath = normalizeRelativePath(filePath);
|
|
2474
|
+
try {
|
|
2475
|
+
await executeFileSystemCommand(FileSystemWriteFile, ['file', normalizedPath, content], options);
|
|
2476
|
+
return JSON.stringify({
|
|
2477
|
+
ok: true,
|
|
2478
|
+
path: normalizedPath
|
|
2479
|
+
});
|
|
2480
|
+
} catch (error) {
|
|
2481
|
+
return JSON.stringify({
|
|
2482
|
+
error: String(error),
|
|
2483
|
+
path: normalizedPath
|
|
2484
|
+
});
|
|
2485
|
+
}
|
|
2486
|
+
}
|
|
2487
|
+
if (name === 'list_files') {
|
|
2488
|
+
const folderPath = typeof args.path === 'string' && args.path ? args.path : '.';
|
|
2489
|
+
if (isPathTraversalAttempt(folderPath)) {
|
|
2490
|
+
return JSON.stringify({
|
|
2491
|
+
error: 'Access denied: path must be relative and stay within the open workspace folder.'
|
|
2492
|
+
});
|
|
2493
|
+
}
|
|
2494
|
+
const normalizedPath = normalizeRelativePath(folderPath);
|
|
2495
|
+
try {
|
|
2496
|
+
const entries = await invoke('FileSystem.readDirWithFileTypes', normalizedPath);
|
|
2497
|
+
return JSON.stringify({
|
|
2498
|
+
entries,
|
|
2499
|
+
path: normalizedPath
|
|
2500
|
+
});
|
|
2501
|
+
} catch (error) {
|
|
2502
|
+
return JSON.stringify({
|
|
2503
|
+
error: String(error),
|
|
2504
|
+
path: normalizedPath
|
|
2505
|
+
});
|
|
2506
|
+
}
|
|
2507
|
+
}
|
|
2508
|
+
return JSON.stringify({
|
|
2509
|
+
error: `Unknown tool: ${name}`
|
|
2510
|
+
});
|
|
2511
|
+
};
|
|
2512
|
+
|
|
2513
|
+
const getClientRequestIdHeader = () => {
|
|
2514
|
+
return {
|
|
2515
|
+
'x-client-request-id': crypto.randomUUID()
|
|
2516
|
+
};
|
|
2517
|
+
};
|
|
2518
|
+
|
|
2519
|
+
const getOpenApiApiEndpoint = (openApiApiBaseUrl, stream) => {
|
|
2520
|
+
if (stream) {
|
|
2521
|
+
return `${openApiApiBaseUrl}/chat/completions?stream=true`;
|
|
2522
|
+
}
|
|
2523
|
+
return `${openApiApiBaseUrl}/chat/completions`;
|
|
2109
2524
|
};
|
|
2110
2525
|
|
|
2111
2526
|
const getTextContent = content => {
|
|
@@ -2126,53 +2541,612 @@ const getTextContent = content => {
|
|
|
2126
2541
|
textParts.push(maybeText);
|
|
2127
2542
|
}
|
|
2128
2543
|
}
|
|
2129
|
-
return textParts.join('\n');
|
|
2544
|
+
return textParts.join('\n');
|
|
2545
|
+
};
|
|
2546
|
+
|
|
2547
|
+
const getStreamChunkText = content => {
|
|
2548
|
+
if (typeof content === 'string') {
|
|
2549
|
+
return content;
|
|
2550
|
+
}
|
|
2551
|
+
if (!Array.isArray(content)) {
|
|
2552
|
+
return '';
|
|
2553
|
+
}
|
|
2554
|
+
return content.map(part => {
|
|
2555
|
+
if (!part || typeof part !== 'object') {
|
|
2556
|
+
return '';
|
|
2557
|
+
}
|
|
2558
|
+
const text = Reflect.get(part, 'text');
|
|
2559
|
+
return typeof text === 'string' ? text : '';
|
|
2560
|
+
}).join('');
|
|
2561
|
+
};
|
|
2562
|
+
const parseSseEvent = eventChunk => {
|
|
2563
|
+
const lines = eventChunk.split('\n');
|
|
2564
|
+
const dataLines = [];
|
|
2565
|
+
for (const line of lines) {
|
|
2566
|
+
if (!line.startsWith('data:')) {
|
|
2567
|
+
continue;
|
|
2568
|
+
}
|
|
2569
|
+
dataLines.push(line.slice(5).trimStart());
|
|
2570
|
+
}
|
|
2571
|
+
return dataLines;
|
|
2572
|
+
};
|
|
2573
|
+
const parseOpenApiStream = async (response, onTextChunk) => {
|
|
2574
|
+
if (!response.body) {
|
|
2575
|
+
return {
|
|
2576
|
+
details: 'request-failed',
|
|
2577
|
+
type: 'error'
|
|
2578
|
+
};
|
|
2579
|
+
}
|
|
2580
|
+
const reader = response.body.getReader();
|
|
2581
|
+
const decoder = new TextDecoder();
|
|
2582
|
+
let remainder = '';
|
|
2583
|
+
let text = '';
|
|
2584
|
+
let done = false;
|
|
2585
|
+
while (!done) {
|
|
2586
|
+
const {
|
|
2587
|
+
done: streamDone,
|
|
2588
|
+
value
|
|
2589
|
+
} = await reader.read();
|
|
2590
|
+
if (streamDone) {
|
|
2591
|
+
done = true;
|
|
2592
|
+
} else if (value) {
|
|
2593
|
+
remainder += decoder.decode(value, {
|
|
2594
|
+
stream: true
|
|
2595
|
+
});
|
|
2596
|
+
}
|
|
2597
|
+
while (true) {
|
|
2598
|
+
const separatorIndex = remainder.indexOf('\n\n');
|
|
2599
|
+
if (separatorIndex === -1) {
|
|
2600
|
+
break;
|
|
2601
|
+
}
|
|
2602
|
+
const rawEvent = remainder.slice(0, separatorIndex);
|
|
2603
|
+
remainder = remainder.slice(separatorIndex + 2);
|
|
2604
|
+
const dataLines = parseSseEvent(rawEvent);
|
|
2605
|
+
if (dataLines.length === 0) {
|
|
2606
|
+
continue;
|
|
2607
|
+
}
|
|
2608
|
+
for (const line of dataLines) {
|
|
2609
|
+
if (line === '[DONE]') {
|
|
2610
|
+
done = true;
|
|
2611
|
+
break;
|
|
2612
|
+
}
|
|
2613
|
+
let parsed;
|
|
2614
|
+
try {
|
|
2615
|
+
parsed = JSON.parse(line);
|
|
2616
|
+
} catch {
|
|
2617
|
+
continue;
|
|
2618
|
+
}
|
|
2619
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2620
|
+
continue;
|
|
2621
|
+
}
|
|
2622
|
+
const choices = Reflect.get(parsed, 'choices');
|
|
2623
|
+
if (!Array.isArray(choices)) {
|
|
2624
|
+
continue;
|
|
2625
|
+
}
|
|
2626
|
+
const firstChoice = choices[0];
|
|
2627
|
+
if (!firstChoice || typeof firstChoice !== 'object') {
|
|
2628
|
+
continue;
|
|
2629
|
+
}
|
|
2630
|
+
const delta = Reflect.get(firstChoice, 'delta');
|
|
2631
|
+
if (!delta || typeof delta !== 'object') {
|
|
2632
|
+
continue;
|
|
2633
|
+
}
|
|
2634
|
+
const content = Reflect.get(delta, 'content');
|
|
2635
|
+
const chunkText = getStreamChunkText(content);
|
|
2636
|
+
if (!chunkText) {
|
|
2637
|
+
continue;
|
|
2638
|
+
}
|
|
2639
|
+
text += chunkText;
|
|
2640
|
+
if (onTextChunk) {
|
|
2641
|
+
await onTextChunk(chunkText);
|
|
2642
|
+
}
|
|
2643
|
+
}
|
|
2644
|
+
}
|
|
2645
|
+
}
|
|
2646
|
+
if (remainder) {
|
|
2647
|
+
const dataLines = parseSseEvent(remainder);
|
|
2648
|
+
for (const line of dataLines) {
|
|
2649
|
+
if (line === '[DONE]') {
|
|
2650
|
+
continue;
|
|
2651
|
+
}
|
|
2652
|
+
let parsed;
|
|
2653
|
+
try {
|
|
2654
|
+
parsed = JSON.parse(line);
|
|
2655
|
+
} catch {
|
|
2656
|
+
continue;
|
|
2657
|
+
}
|
|
2658
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2659
|
+
continue;
|
|
2660
|
+
}
|
|
2661
|
+
const choices = Reflect.get(parsed, 'choices');
|
|
2662
|
+
if (!Array.isArray(choices)) {
|
|
2663
|
+
continue;
|
|
2664
|
+
}
|
|
2665
|
+
const firstChoice = choices[0];
|
|
2666
|
+
if (!firstChoice || typeof firstChoice !== 'object') {
|
|
2667
|
+
continue;
|
|
2668
|
+
}
|
|
2669
|
+
const delta = Reflect.get(firstChoice, 'delta');
|
|
2670
|
+
if (!delta || typeof delta !== 'object') {
|
|
2671
|
+
continue;
|
|
2672
|
+
}
|
|
2673
|
+
const content = Reflect.get(delta, 'content');
|
|
2674
|
+
const chunkText = getStreamChunkText(content);
|
|
2675
|
+
if (!chunkText) {
|
|
2676
|
+
continue;
|
|
2677
|
+
}
|
|
2678
|
+
text += chunkText;
|
|
2679
|
+
if (onTextChunk) {
|
|
2680
|
+
await onTextChunk(chunkText);
|
|
2681
|
+
}
|
|
2682
|
+
}
|
|
2683
|
+
}
|
|
2684
|
+
return {
|
|
2685
|
+
text,
|
|
2686
|
+
type: 'success'
|
|
2687
|
+
};
|
|
2688
|
+
};
|
|
2689
|
+
const getOpenApiErrorDetails = async response => {
|
|
2690
|
+
let parsed;
|
|
2691
|
+
try {
|
|
2692
|
+
parsed = await response.json();
|
|
2693
|
+
} catch {
|
|
2694
|
+
return {};
|
|
2695
|
+
}
|
|
2696
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2697
|
+
return {};
|
|
2698
|
+
}
|
|
2699
|
+
const error = Reflect.get(parsed, 'error');
|
|
2700
|
+
if (!error || typeof error !== 'object') {
|
|
2701
|
+
return {};
|
|
2702
|
+
}
|
|
2703
|
+
const errorCode = Reflect.get(error, 'code');
|
|
2704
|
+
const errorMessage = Reflect.get(error, 'message');
|
|
2705
|
+
const errorType = Reflect.get(error, 'type');
|
|
2706
|
+
return {
|
|
2707
|
+
errorCode: typeof errorCode === 'string' ? errorCode : undefined,
|
|
2708
|
+
errorMessage: typeof errorMessage === 'string' ? errorMessage : undefined,
|
|
2709
|
+
errorType: typeof errorType === 'string' ? errorType : undefined
|
|
2710
|
+
};
|
|
2711
|
+
};
|
|
2712
|
+
const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApiApiBaseUrl, assetDir, platform, options) => {
|
|
2713
|
+
const {
|
|
2714
|
+
onTextChunk,
|
|
2715
|
+
stream
|
|
2716
|
+
} = options ?? {
|
|
2717
|
+
stream: false
|
|
2718
|
+
};
|
|
2719
|
+
const completionMessages = messages.map(message => ({
|
|
2720
|
+
content: message.text,
|
|
2721
|
+
role: message.role
|
|
2722
|
+
}));
|
|
2723
|
+
const tools = getBasicChatTools();
|
|
2724
|
+
const maxToolIterations = 4;
|
|
2725
|
+
for (let i = 0; i <= maxToolIterations; i++) {
|
|
2726
|
+
let response;
|
|
2727
|
+
try {
|
|
2728
|
+
response = await fetch(getOpenApiApiEndpoint(openApiApiBaseUrl, stream), {
|
|
2729
|
+
body: JSON.stringify({
|
|
2730
|
+
messages: completionMessages,
|
|
2731
|
+
model: modelId,
|
|
2732
|
+
...(stream ? {
|
|
2733
|
+
stream: true
|
|
2734
|
+
} : {}),
|
|
2735
|
+
tool_choice: 'auto',
|
|
2736
|
+
tools
|
|
2737
|
+
}),
|
|
2738
|
+
headers: {
|
|
2739
|
+
Authorization: `Bearer ${openApiApiKey}`,
|
|
2740
|
+
'Content-Type': 'application/json',
|
|
2741
|
+
...getClientRequestIdHeader()
|
|
2742
|
+
},
|
|
2743
|
+
method: 'POST'
|
|
2744
|
+
});
|
|
2745
|
+
} catch {
|
|
2746
|
+
return {
|
|
2747
|
+
details: 'request-failed',
|
|
2748
|
+
type: 'error'
|
|
2749
|
+
};
|
|
2750
|
+
}
|
|
2751
|
+
if (!response.ok) {
|
|
2752
|
+
const {
|
|
2753
|
+
errorCode,
|
|
2754
|
+
errorMessage,
|
|
2755
|
+
errorType
|
|
2756
|
+
} = await getOpenApiErrorDetails(response);
|
|
2757
|
+
return {
|
|
2758
|
+
details: 'http-error',
|
|
2759
|
+
errorCode,
|
|
2760
|
+
errorMessage,
|
|
2761
|
+
errorType,
|
|
2762
|
+
statusCode: response.status,
|
|
2763
|
+
type: 'error'
|
|
2764
|
+
};
|
|
2765
|
+
}
|
|
2766
|
+
if (stream) {
|
|
2767
|
+
return parseOpenApiStream(response, onTextChunk);
|
|
2768
|
+
}
|
|
2769
|
+
let parsed;
|
|
2770
|
+
try {
|
|
2771
|
+
parsed = await response.json();
|
|
2772
|
+
} catch {
|
|
2773
|
+
return {
|
|
2774
|
+
details: 'request-failed',
|
|
2775
|
+
type: 'error'
|
|
2776
|
+
};
|
|
2777
|
+
}
|
|
2778
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2779
|
+
return {
|
|
2780
|
+
text: '',
|
|
2781
|
+
type: 'success'
|
|
2782
|
+
};
|
|
2783
|
+
}
|
|
2784
|
+
const choices = Reflect.get(parsed, 'choices');
|
|
2785
|
+
if (!Array.isArray(choices)) {
|
|
2786
|
+
return {
|
|
2787
|
+
text: '',
|
|
2788
|
+
type: 'success'
|
|
2789
|
+
};
|
|
2790
|
+
}
|
|
2791
|
+
const firstChoice = choices[0];
|
|
2792
|
+
if (!firstChoice || typeof firstChoice !== 'object') {
|
|
2793
|
+
return {
|
|
2794
|
+
text: '',
|
|
2795
|
+
type: 'success'
|
|
2796
|
+
};
|
|
2797
|
+
}
|
|
2798
|
+
const message = Reflect.get(firstChoice, 'message');
|
|
2799
|
+
if (!message || typeof message !== 'object') {
|
|
2800
|
+
return {
|
|
2801
|
+
text: '',
|
|
2802
|
+
type: 'success'
|
|
2803
|
+
};
|
|
2804
|
+
}
|
|
2805
|
+
const toolCalls = Reflect.get(message, 'tool_calls');
|
|
2806
|
+
if (Array.isArray(toolCalls) && toolCalls.length > 0) {
|
|
2807
|
+
completionMessages.push(message);
|
|
2808
|
+
for (const toolCall of toolCalls) {
|
|
2809
|
+
if (!toolCall || typeof toolCall !== 'object') {
|
|
2810
|
+
continue;
|
|
2811
|
+
}
|
|
2812
|
+
const id = Reflect.get(toolCall, 'id');
|
|
2813
|
+
const toolFunction = Reflect.get(toolCall, 'function');
|
|
2814
|
+
if (typeof id !== 'string' || !toolFunction || typeof toolFunction !== 'object') {
|
|
2815
|
+
continue;
|
|
2816
|
+
}
|
|
2817
|
+
const name = Reflect.get(toolFunction, 'name');
|
|
2818
|
+
const rawArguments = Reflect.get(toolFunction, 'arguments');
|
|
2819
|
+
const content = typeof name === 'string' ? await executeChatTool(name, rawArguments, {
|
|
2820
|
+
assetDir,
|
|
2821
|
+
platform
|
|
2822
|
+
}) : '{}';
|
|
2823
|
+
completionMessages.push({
|
|
2824
|
+
content,
|
|
2825
|
+
role: 'tool',
|
|
2826
|
+
tool_call_id: id
|
|
2827
|
+
});
|
|
2828
|
+
}
|
|
2829
|
+
continue;
|
|
2830
|
+
}
|
|
2831
|
+
const content = Reflect.get(message, 'content');
|
|
2832
|
+
return {
|
|
2833
|
+
text: getTextContent(content),
|
|
2834
|
+
type: 'success'
|
|
2835
|
+
};
|
|
2836
|
+
}
|
|
2837
|
+
return {
|
|
2838
|
+
details: 'request-failed',
|
|
2839
|
+
type: 'error'
|
|
2840
|
+
};
|
|
2841
|
+
};
|
|
2842
|
+
|
|
2843
|
+
const getOpenApiErrorMessage = errorResult => {
|
|
2844
|
+
switch (errorResult.details) {
|
|
2845
|
+
case 'http-error':
|
|
2846
|
+
{
|
|
2847
|
+
const errorMessage = errorResult.errorMessage?.trim();
|
|
2848
|
+
const hasErrorCode = typeof errorResult.errorCode === 'string' && errorResult.errorCode.length > 0;
|
|
2849
|
+
const hasErrorType = typeof errorResult.errorType === 'string' && errorResult.errorType.length > 0;
|
|
2850
|
+
if (errorResult.statusCode === 429) {
|
|
2851
|
+
let prefix = 'OpenAI rate limit exceeded (429)';
|
|
2852
|
+
if (hasErrorCode) {
|
|
2853
|
+
prefix = `OpenAI rate limit exceeded (429: ${errorResult.errorCode})`;
|
|
2854
|
+
}
|
|
2855
|
+
if (hasErrorType) {
|
|
2856
|
+
prefix += ` [${errorResult.errorType}]`;
|
|
2857
|
+
}
|
|
2858
|
+
prefix += '.';
|
|
2859
|
+
if (!errorMessage) {
|
|
2860
|
+
return prefix;
|
|
2861
|
+
}
|
|
2862
|
+
return `${prefix} ${errorMessage}`;
|
|
2863
|
+
}
|
|
2864
|
+
if (typeof errorResult.statusCode === 'number') {
|
|
2865
|
+
let prefix = `OpenAI request failed (status ${errorResult.statusCode})`;
|
|
2866
|
+
if (hasErrorCode) {
|
|
2867
|
+
prefix += `: ${errorResult.errorCode}`;
|
|
2868
|
+
}
|
|
2869
|
+
if (hasErrorType) {
|
|
2870
|
+
prefix += ` [${errorResult.errorType}]`;
|
|
2871
|
+
}
|
|
2872
|
+
prefix += '.';
|
|
2873
|
+
if (!errorMessage) {
|
|
2874
|
+
return prefix;
|
|
2875
|
+
}
|
|
2876
|
+
return `${prefix} ${errorMessage}`;
|
|
2877
|
+
}
|
|
2878
|
+
if (errorMessage) {
|
|
2879
|
+
return `OpenAI request failed. ${errorMessage}`;
|
|
2880
|
+
}
|
|
2881
|
+
return openApiRequestFailedMessage;
|
|
2882
|
+
}
|
|
2883
|
+
case 'request-failed':
|
|
2884
|
+
return openApiRequestFailedMessage;
|
|
2885
|
+
}
|
|
2886
|
+
};
|
|
2887
|
+
|
|
2888
|
+
const getOpenApiModelId = selectedModelId => {
|
|
2889
|
+
const openApiPrefix = 'openapi/';
|
|
2890
|
+
const openAiPrefix = 'openai/';
|
|
2891
|
+
const normalizedModelId = selectedModelId.toLowerCase();
|
|
2892
|
+
if (normalizedModelId.startsWith(openApiPrefix)) {
|
|
2893
|
+
return selectedModelId.slice(openApiPrefix.length);
|
|
2894
|
+
}
|
|
2895
|
+
if (normalizedModelId.startsWith(openAiPrefix)) {
|
|
2896
|
+
return selectedModelId.slice(openAiPrefix.length);
|
|
2897
|
+
}
|
|
2898
|
+
return selectedModelId;
|
|
2899
|
+
};
|
|
2900
|
+
|
|
2901
|
+
const getOpenRouterApiEndpoint = openRouterApiBaseUrl => {
|
|
2902
|
+
const trimmedBaseUrl = openRouterApiBaseUrl.replace(/\/+$/, '');
|
|
2903
|
+
return `${trimmedBaseUrl}/chat/completions`;
|
|
2904
|
+
};
|
|
2905
|
+
|
|
2906
|
+
const getOpenRouterKeyEndpoint = openRouterApiBaseUrl => {
|
|
2907
|
+
const trimmedBaseUrl = openRouterApiBaseUrl.replace(/\/+$/, '');
|
|
2908
|
+
return `${trimmedBaseUrl}/auth/key`;
|
|
2909
|
+
};
|
|
2910
|
+
|
|
2911
|
+
const getOpenRouterRaw429Message = async response => {
|
|
2912
|
+
let parsed;
|
|
2913
|
+
try {
|
|
2914
|
+
parsed = await response.json();
|
|
2915
|
+
} catch {
|
|
2916
|
+
return undefined;
|
|
2917
|
+
}
|
|
2918
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2919
|
+
return undefined;
|
|
2920
|
+
}
|
|
2921
|
+
const error = Reflect.get(parsed, 'error');
|
|
2922
|
+
if (!error || typeof error !== 'object') {
|
|
2923
|
+
return undefined;
|
|
2924
|
+
}
|
|
2925
|
+
const metadata = Reflect.get(error, 'metadata');
|
|
2926
|
+
if (!metadata || typeof metadata !== 'object') {
|
|
2927
|
+
return undefined;
|
|
2928
|
+
}
|
|
2929
|
+
const raw = Reflect.get(metadata, 'raw');
|
|
2930
|
+
if (typeof raw !== 'string' || !raw) {
|
|
2931
|
+
return undefined;
|
|
2932
|
+
}
|
|
2933
|
+
return raw;
|
|
2934
|
+
};
|
|
2935
|
+
const getOpenRouterLimitInfo = async (openRouterApiKey, openRouterApiBaseUrl) => {
|
|
2936
|
+
let response;
|
|
2937
|
+
try {
|
|
2938
|
+
response = await fetch(getOpenRouterKeyEndpoint(openRouterApiBaseUrl), {
|
|
2939
|
+
headers: {
|
|
2940
|
+
Authorization: `Bearer ${openRouterApiKey}`,
|
|
2941
|
+
...getClientRequestIdHeader()
|
|
2942
|
+
},
|
|
2943
|
+
method: 'GET'
|
|
2944
|
+
});
|
|
2945
|
+
} catch {
|
|
2946
|
+
return undefined;
|
|
2947
|
+
}
|
|
2948
|
+
if (!response.ok) {
|
|
2949
|
+
return undefined;
|
|
2950
|
+
}
|
|
2951
|
+
let parsed;
|
|
2952
|
+
try {
|
|
2953
|
+
parsed = await response.json();
|
|
2954
|
+
} catch {
|
|
2955
|
+
return undefined;
|
|
2956
|
+
}
|
|
2957
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
2958
|
+
return undefined;
|
|
2959
|
+
}
|
|
2960
|
+
const data = Reflect.get(parsed, 'data');
|
|
2961
|
+
if (!data || typeof data !== 'object') {
|
|
2962
|
+
return undefined;
|
|
2963
|
+
}
|
|
2964
|
+
const limitRemaining = Reflect.get(data, 'limit_remaining');
|
|
2965
|
+
const limitReset = Reflect.get(data, 'limit_reset');
|
|
2966
|
+
const usage = Reflect.get(data, 'usage');
|
|
2967
|
+
const usageDaily = Reflect.get(data, 'usage_daily');
|
|
2968
|
+
const normalizedLimitInfo = {
|
|
2969
|
+
limitRemaining: typeof limitRemaining === 'number' || limitRemaining === null ? limitRemaining : undefined,
|
|
2970
|
+
limitReset: typeof limitReset === 'string' || limitReset === null ? limitReset : undefined,
|
|
2971
|
+
usage: typeof usage === 'number' ? usage : undefined,
|
|
2972
|
+
usageDaily: typeof usageDaily === 'number' ? usageDaily : undefined
|
|
2973
|
+
};
|
|
2974
|
+
const hasLimitInfo = normalizedLimitInfo.limitRemaining !== undefined || normalizedLimitInfo.limitReset !== undefined || normalizedLimitInfo.usage !== undefined || normalizedLimitInfo.usageDaily !== undefined;
|
|
2975
|
+
if (!hasLimitInfo) {
|
|
2976
|
+
return undefined;
|
|
2977
|
+
}
|
|
2978
|
+
return normalizedLimitInfo;
|
|
2979
|
+
};
|
|
2980
|
+
const getOpenRouterAssistantText = async (messages, modelId, openRouterApiKey, openRouterApiBaseUrl, assetDir, platform) => {
|
|
2981
|
+
const completionMessages = messages.map(message => ({
|
|
2982
|
+
content: message.text,
|
|
2983
|
+
role: message.role
|
|
2984
|
+
}));
|
|
2985
|
+
const tools = getBasicChatTools();
|
|
2986
|
+
const maxToolIterations = 4;
|
|
2987
|
+
for (let i = 0; i <= maxToolIterations; i++) {
|
|
2988
|
+
let response;
|
|
2989
|
+
try {
|
|
2990
|
+
response = await fetch(getOpenRouterApiEndpoint(openRouterApiBaseUrl), {
|
|
2991
|
+
body: JSON.stringify({
|
|
2992
|
+
messages: completionMessages,
|
|
2993
|
+
model: modelId,
|
|
2994
|
+
tool_choice: 'auto',
|
|
2995
|
+
tools
|
|
2996
|
+
}),
|
|
2997
|
+
headers: {
|
|
2998
|
+
Authorization: `Bearer ${openRouterApiKey}`,
|
|
2999
|
+
'Content-Type': 'application/json',
|
|
3000
|
+
...getClientRequestIdHeader()
|
|
3001
|
+
},
|
|
3002
|
+
method: 'POST'
|
|
3003
|
+
});
|
|
3004
|
+
} catch {
|
|
3005
|
+
return {
|
|
3006
|
+
details: 'request-failed',
|
|
3007
|
+
type: 'error'
|
|
3008
|
+
};
|
|
3009
|
+
}
|
|
3010
|
+
if (!response.ok) {
|
|
3011
|
+
if (response.status === 429) {
|
|
3012
|
+
const retryAfter = response.headers?.get?.('retry-after') ?? null;
|
|
3013
|
+
const rawMessage = await getOpenRouterRaw429Message(response);
|
|
3014
|
+
const limitInfo = await getOpenRouterLimitInfo(openRouterApiKey, openRouterApiBaseUrl);
|
|
3015
|
+
return {
|
|
3016
|
+
details: 'too-many-requests',
|
|
3017
|
+
limitInfo: limitInfo || retryAfter ? {
|
|
3018
|
+
...limitInfo,
|
|
3019
|
+
retryAfter
|
|
3020
|
+
} : undefined,
|
|
3021
|
+
rawMessage,
|
|
3022
|
+
statusCode: 429,
|
|
3023
|
+
type: 'error'
|
|
3024
|
+
};
|
|
3025
|
+
}
|
|
3026
|
+
return {
|
|
3027
|
+
details: 'http-error',
|
|
3028
|
+
statusCode: response.status,
|
|
3029
|
+
type: 'error'
|
|
3030
|
+
};
|
|
3031
|
+
}
|
|
3032
|
+
let parsed;
|
|
3033
|
+
try {
|
|
3034
|
+
parsed = await response.json();
|
|
3035
|
+
} catch {
|
|
3036
|
+
return {
|
|
3037
|
+
details: 'request-failed',
|
|
3038
|
+
type: 'error'
|
|
3039
|
+
};
|
|
3040
|
+
}
|
|
3041
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
3042
|
+
return {
|
|
3043
|
+
text: '',
|
|
3044
|
+
type: 'success'
|
|
3045
|
+
};
|
|
3046
|
+
}
|
|
3047
|
+
const choices = Reflect.get(parsed, 'choices');
|
|
3048
|
+
if (!Array.isArray(choices)) {
|
|
3049
|
+
return {
|
|
3050
|
+
text: '',
|
|
3051
|
+
type: 'success'
|
|
3052
|
+
};
|
|
3053
|
+
}
|
|
3054
|
+
const firstChoice = choices[0];
|
|
3055
|
+
if (!firstChoice || typeof firstChoice !== 'object') {
|
|
3056
|
+
return {
|
|
3057
|
+
text: '',
|
|
3058
|
+
type: 'success'
|
|
3059
|
+
};
|
|
3060
|
+
}
|
|
3061
|
+
const message = Reflect.get(firstChoice, 'message');
|
|
3062
|
+
if (!message || typeof message !== 'object') {
|
|
3063
|
+
return {
|
|
3064
|
+
text: '',
|
|
3065
|
+
type: 'success'
|
|
3066
|
+
};
|
|
3067
|
+
}
|
|
3068
|
+
const toolCalls = Reflect.get(message, 'tool_calls');
|
|
3069
|
+
if (Array.isArray(toolCalls) && toolCalls.length > 0) {
|
|
3070
|
+
completionMessages.push(message);
|
|
3071
|
+
for (const toolCall of toolCalls) {
|
|
3072
|
+
if (!toolCall || typeof toolCall !== 'object') {
|
|
3073
|
+
continue;
|
|
3074
|
+
}
|
|
3075
|
+
const id = Reflect.get(toolCall, 'id');
|
|
3076
|
+
const toolFunction = Reflect.get(toolCall, 'function');
|
|
3077
|
+
if (typeof id !== 'string' || !toolFunction || typeof toolFunction !== 'object') {
|
|
3078
|
+
continue;
|
|
3079
|
+
}
|
|
3080
|
+
const name = Reflect.get(toolFunction, 'name');
|
|
3081
|
+
const rawArguments = Reflect.get(toolFunction, 'arguments');
|
|
3082
|
+
const content = typeof name === 'string' ? await executeChatTool(name, rawArguments, {
|
|
3083
|
+
assetDir,
|
|
3084
|
+
platform
|
|
3085
|
+
}) : '{}';
|
|
3086
|
+
completionMessages.push({
|
|
3087
|
+
content,
|
|
3088
|
+
role: 'tool',
|
|
3089
|
+
tool_call_id: id
|
|
3090
|
+
});
|
|
3091
|
+
}
|
|
3092
|
+
continue;
|
|
3093
|
+
}
|
|
3094
|
+
const content = Reflect.get(message, 'content');
|
|
3095
|
+
return {
|
|
3096
|
+
text: getTextContent(content),
|
|
3097
|
+
type: 'success'
|
|
3098
|
+
};
|
|
3099
|
+
}
|
|
3100
|
+
return {
|
|
3101
|
+
details: 'request-failed',
|
|
3102
|
+
type: 'error'
|
|
3103
|
+
};
|
|
2130
3104
|
};
|
|
2131
3105
|
|
|
2132
|
-
const
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
body: JSON.stringify({
|
|
2137
|
-
messages: [{
|
|
2138
|
-
content: userText,
|
|
2139
|
-
role: 'user'
|
|
2140
|
-
}],
|
|
2141
|
-
model: modelId
|
|
2142
|
-
}),
|
|
2143
|
-
headers: {
|
|
2144
|
-
Authorization: `Bearer ${openRouterApiKey}`,
|
|
2145
|
-
'Content-Type': 'application/json'
|
|
2146
|
-
},
|
|
2147
|
-
method: 'POST'
|
|
2148
|
-
});
|
|
2149
|
-
} catch {
|
|
2150
|
-
throw new Error(openRouterRequestFailedMessage);
|
|
2151
|
-
}
|
|
2152
|
-
if (!response.ok) {
|
|
2153
|
-
throw new Error(`Failed to get OpenRouter response: ${response.status}`);
|
|
2154
|
-
}
|
|
2155
|
-
const parsed = await response.json();
|
|
2156
|
-
if (!parsed || typeof parsed !== 'object') {
|
|
2157
|
-
return '';
|
|
3106
|
+
const getOpenRouterTooManyRequestsMessage = errorResult => {
|
|
3107
|
+
const details = [];
|
|
3108
|
+
if (errorResult.rawMessage) {
|
|
3109
|
+
details.push(errorResult.rawMessage);
|
|
2158
3110
|
}
|
|
2159
|
-
const
|
|
2160
|
-
|
|
2161
|
-
|
|
3111
|
+
const {
|
|
3112
|
+
limitInfo
|
|
3113
|
+
} = errorResult;
|
|
3114
|
+
if (limitInfo) {
|
|
3115
|
+
if (limitInfo.retryAfter) {
|
|
3116
|
+
details.push(`Retry after: ${limitInfo.retryAfter}.`);
|
|
3117
|
+
}
|
|
3118
|
+
if (limitInfo.limitReset) {
|
|
3119
|
+
details.push(`Limit resets: ${limitInfo.limitReset}.`);
|
|
3120
|
+
}
|
|
3121
|
+
if (limitInfo.limitRemaining === null) {
|
|
3122
|
+
details.push('Credits remaining: unlimited.');
|
|
3123
|
+
} else if (typeof limitInfo.limitRemaining === 'number') {
|
|
3124
|
+
details.push(`Credits remaining: ${limitInfo.limitRemaining}.`);
|
|
3125
|
+
}
|
|
3126
|
+
if (typeof limitInfo.usageDaily === 'number') {
|
|
3127
|
+
details.push(`Credits used today (UTC): ${limitInfo.usageDaily}.`);
|
|
3128
|
+
}
|
|
3129
|
+
if (typeof limitInfo.usage === 'number') {
|
|
3130
|
+
details.push(`Credits used (all time): ${limitInfo.usage}.`);
|
|
3131
|
+
}
|
|
2162
3132
|
}
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
return '';
|
|
3133
|
+
if (details.length === 0) {
|
|
3134
|
+
return openRouterTooManyRequestsMessage;
|
|
2166
3135
|
}
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
3136
|
+
return `${openRouterTooManyRequestsMessage} ${details.join(' ')}`;
|
|
3137
|
+
};
|
|
3138
|
+
|
|
3139
|
+
const getOpenRouterErrorMessage = errorResult => {
|
|
3140
|
+
switch (errorResult.details) {
|
|
3141
|
+
case 'http-error':
|
|
3142
|
+
case 'request-failed':
|
|
3143
|
+
return openRouterRequestFailedMessage;
|
|
3144
|
+
case 'too-many-requests':
|
|
3145
|
+
return getOpenRouterTooManyRequestsMessage(errorResult);
|
|
2170
3146
|
}
|
|
2171
|
-
const content = Reflect.get(message, 'content');
|
|
2172
|
-
return getTextContent(content);
|
|
2173
3147
|
};
|
|
2174
3148
|
|
|
2175
|
-
|
|
3149
|
+
// cspell:ignore openrouter
|
|
2176
3150
|
const getOpenRouterModelId = selectedModelId => {
|
|
2177
3151
|
const openRouterPrefix = 'openrouter/';
|
|
2178
3152
|
if (selectedModelId.toLowerCase().startsWith(openRouterPrefix)) {
|
|
@@ -2181,7 +3155,17 @@ const getOpenRouterModelId = selectedModelId => {
|
|
|
2181
3155
|
return selectedModelId;
|
|
2182
3156
|
};
|
|
2183
3157
|
|
|
2184
|
-
|
|
3158
|
+
const isOpenApiModel = (selectedModelId, models) => {
|
|
3159
|
+
const selectedModel = models.find(model => model.id === selectedModelId);
|
|
3160
|
+
const normalizedProvider = selectedModel?.provider?.toLowerCase();
|
|
3161
|
+
if (normalizedProvider === 'openapi' || normalizedProvider === 'openai' || normalizedProvider === 'open-ai') {
|
|
3162
|
+
return true;
|
|
3163
|
+
}
|
|
3164
|
+
const normalizedModelId = selectedModelId.toLowerCase();
|
|
3165
|
+
return normalizedModelId.startsWith('openapi/') || normalizedModelId.startsWith('openai/');
|
|
3166
|
+
};
|
|
3167
|
+
|
|
3168
|
+
// cspell:ignore openrouter
|
|
2185
3169
|
|
|
2186
3170
|
const isOpenRouterModel = (selectedModelId, models) => {
|
|
2187
3171
|
const selectedModel = models.find(model => model.id === selectedModelId);
|
|
@@ -2192,25 +3176,70 @@ const isOpenRouterModel = (selectedModelId, models) => {
|
|
|
2192
3176
|
return selectedModelId.toLowerCase().startsWith('openrouter/');
|
|
2193
3177
|
};
|
|
2194
3178
|
|
|
2195
|
-
const getAiResponse = async (
|
|
3179
|
+
const getAiResponse = async ({
|
|
3180
|
+
assetDir,
|
|
3181
|
+
messages,
|
|
3182
|
+
mockApiCommandId,
|
|
3183
|
+
models,
|
|
3184
|
+
nextMessageId,
|
|
3185
|
+
onTextChunk,
|
|
3186
|
+
openApiApiBaseUrl,
|
|
3187
|
+
openApiApiKey,
|
|
3188
|
+
openRouterApiBaseUrl,
|
|
3189
|
+
openRouterApiKey,
|
|
3190
|
+
platform,
|
|
3191
|
+
selectedModelId,
|
|
3192
|
+
streamingEnabled = false,
|
|
3193
|
+
useMockApi,
|
|
3194
|
+
userText
|
|
3195
|
+
}) => {
|
|
2196
3196
|
let text = '';
|
|
3197
|
+
const usesOpenApiModel = isOpenApiModel(selectedModelId, models);
|
|
2197
3198
|
const usesOpenRouterModel = isOpenRouterModel(selectedModelId, models);
|
|
2198
|
-
if (
|
|
2199
|
-
if (
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
text
|
|
2207
|
-
}
|
|
3199
|
+
if (usesOpenApiModel) {
|
|
3200
|
+
if (openApiApiKey) {
|
|
3201
|
+
const result = await getOpenApiAssistantText(messages, getOpenApiModelId(selectedModelId), openApiApiKey, openApiApiBaseUrl, assetDir, platform, {
|
|
3202
|
+
onTextChunk,
|
|
3203
|
+
stream: streamingEnabled
|
|
3204
|
+
});
|
|
3205
|
+
if (result.type === 'success') {
|
|
3206
|
+
const {
|
|
3207
|
+
text: assistantText
|
|
3208
|
+
} = result;
|
|
3209
|
+
text = assistantText;
|
|
3210
|
+
} else {
|
|
3211
|
+
text = getOpenApiErrorMessage(result);
|
|
3212
|
+
}
|
|
3213
|
+
} else {
|
|
3214
|
+
text = openApiApiKeyRequiredMessage;
|
|
3215
|
+
}
|
|
3216
|
+
} else if (usesOpenRouterModel) {
|
|
3217
|
+
const modelId = getOpenRouterModelId(selectedModelId);
|
|
3218
|
+
if (useMockApi) {
|
|
3219
|
+
const result = await getMockOpenRouterAssistantText(messages, modelId, openRouterApiBaseUrl, openRouterApiKey, mockApiCommandId, assetDir, platform);
|
|
3220
|
+
if (result.type === 'success') {
|
|
3221
|
+
const {
|
|
3222
|
+
text: assistantText
|
|
3223
|
+
} = result;
|
|
3224
|
+
text = assistantText;
|
|
3225
|
+
} else {
|
|
3226
|
+
text = getOpenRouterErrorMessage(result);
|
|
3227
|
+
}
|
|
3228
|
+
} else if (openRouterApiKey) {
|
|
3229
|
+
const result = await getOpenRouterAssistantText(messages, modelId, openRouterApiKey, openRouterApiBaseUrl, assetDir, platform);
|
|
3230
|
+
if (result.type === 'success') {
|
|
3231
|
+
const {
|
|
3232
|
+
text: assistantText
|
|
3233
|
+
} = result;
|
|
3234
|
+
text = assistantText;
|
|
3235
|
+
} else {
|
|
3236
|
+
text = getOpenRouterErrorMessage(result);
|
|
2208
3237
|
}
|
|
2209
3238
|
} else {
|
|
2210
3239
|
text = openRouterApiKeyRequiredMessage;
|
|
2211
3240
|
}
|
|
2212
3241
|
}
|
|
2213
|
-
if (!text && !usesOpenRouterModel) {
|
|
3242
|
+
if (!text && !usesOpenApiModel && !usesOpenRouterModel) {
|
|
2214
3243
|
text = await getMockAiResponse(userText);
|
|
2215
3244
|
}
|
|
2216
3245
|
const assistantTime = new Date().toLocaleTimeString([], {
|
|
@@ -2232,6 +3261,75 @@ const update = async settings => {
|
|
|
2232
3261
|
await invoke('Preferences.update', settings);
|
|
2233
3262
|
};
|
|
2234
3263
|
|
|
3264
|
+
const setOpenApiApiKey = async (state, openApiApiKey, persist = true) => {
|
|
3265
|
+
if (persist) {
|
|
3266
|
+
await update({
|
|
3267
|
+
'secrets.openApiKey': openApiApiKey
|
|
3268
|
+
});
|
|
3269
|
+
}
|
|
3270
|
+
return {
|
|
3271
|
+
...state,
|
|
3272
|
+
openApiApiKey,
|
|
3273
|
+
openApiApiKeyInput: openApiApiKey
|
|
3274
|
+
};
|
|
3275
|
+
};
|
|
3276
|
+
|
|
3277
|
+
const handleClickSaveOpenApiApiKey = async state => {
|
|
3278
|
+
const {
|
|
3279
|
+
openApiApiKeyInput
|
|
3280
|
+
} = state;
|
|
3281
|
+
const openApiApiKey = openApiApiKeyInput.trim();
|
|
3282
|
+
if (!openApiApiKey) {
|
|
3283
|
+
return state;
|
|
3284
|
+
}
|
|
3285
|
+
const updatedState = await setOpenApiApiKey(state, openApiApiKey);
|
|
3286
|
+
const session = updatedState.sessions.find(item => item.id === updatedState.selectedSessionId);
|
|
3287
|
+
if (!session) {
|
|
3288
|
+
return updatedState;
|
|
3289
|
+
}
|
|
3290
|
+
const lastMessage = session.messages.at(-1);
|
|
3291
|
+
const shouldRetryOpenApi = lastMessage?.role === 'assistant' && lastMessage.text === openApiApiKeyRequiredMessage;
|
|
3292
|
+
if (!shouldRetryOpenApi) {
|
|
3293
|
+
return updatedState;
|
|
3294
|
+
}
|
|
3295
|
+
const previousUserMessage = session.messages.toReversed().find(item => item.role === 'user');
|
|
3296
|
+
if (!previousUserMessage) {
|
|
3297
|
+
return updatedState;
|
|
3298
|
+
}
|
|
3299
|
+
const retryMessages = session.messages.slice(0, -1);
|
|
3300
|
+
const assistantMessage = await getAiResponse({
|
|
3301
|
+
assetDir: updatedState.assetDir,
|
|
3302
|
+
messages: retryMessages,
|
|
3303
|
+
mockApiCommandId: updatedState.mockApiCommandId,
|
|
3304
|
+
models: updatedState.models,
|
|
3305
|
+
nextMessageId: updatedState.nextMessageId,
|
|
3306
|
+
openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
|
|
3307
|
+
openApiApiKey: updatedState.openApiApiKey,
|
|
3308
|
+
openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
|
|
3309
|
+
openRouterApiKey: updatedState.openRouterApiKey,
|
|
3310
|
+
platform: updatedState.platform,
|
|
3311
|
+
selectedModelId: updatedState.selectedModelId,
|
|
3312
|
+
useMockApi: updatedState.useMockApi,
|
|
3313
|
+
userText: previousUserMessage.text
|
|
3314
|
+
});
|
|
3315
|
+
const updatedSession = {
|
|
3316
|
+
...session,
|
|
3317
|
+
messages: [...session.messages.slice(0, -1), assistantMessage]
|
|
3318
|
+
};
|
|
3319
|
+
await saveChatSession(updatedSession);
|
|
3320
|
+
const updatedSessions = updatedState.sessions.map(item => {
|
|
3321
|
+
if (item.id !== updatedState.selectedSessionId) {
|
|
3322
|
+
return item;
|
|
3323
|
+
}
|
|
3324
|
+
return updatedSession;
|
|
3325
|
+
});
|
|
3326
|
+
return {
|
|
3327
|
+
...updatedState,
|
|
3328
|
+
nextMessageId: updatedState.nextMessageId + 1,
|
|
3329
|
+
sessions: updatedSessions
|
|
3330
|
+
};
|
|
3331
|
+
};
|
|
3332
|
+
|
|
2235
3333
|
const setOpenRouterApiKey = async (state, openRouterApiKey, persist = true) => {
|
|
2236
3334
|
if (persist) {
|
|
2237
3335
|
await update({
|
|
@@ -2253,7 +3351,18 @@ const handleClickSaveOpenRouterApiKey = async state => {
|
|
|
2253
3351
|
if (!openRouterApiKey) {
|
|
2254
3352
|
return state;
|
|
2255
3353
|
}
|
|
2256
|
-
const
|
|
3354
|
+
const optimisticState = {
|
|
3355
|
+
...state,
|
|
3356
|
+
openRouterApiKeyState: 'saving'
|
|
3357
|
+
};
|
|
3358
|
+
set(state.uid, state, optimisticState);
|
|
3359
|
+
// @ts-ignore
|
|
3360
|
+
await invoke('Chat.rerender');
|
|
3361
|
+
const persistedState = await setOpenRouterApiKey(optimisticState, openRouterApiKey);
|
|
3362
|
+
const updatedState = {
|
|
3363
|
+
...persistedState,
|
|
3364
|
+
openRouterApiKeyState: 'idle'
|
|
3365
|
+
};
|
|
2257
3366
|
const session = updatedState.sessions.find(item => item.id === updatedState.selectedSessionId);
|
|
2258
3367
|
if (!session) {
|
|
2259
3368
|
return updatedState;
|
|
@@ -2267,7 +3376,22 @@ const handleClickSaveOpenRouterApiKey = async state => {
|
|
|
2267
3376
|
if (!previousUserMessage) {
|
|
2268
3377
|
return updatedState;
|
|
2269
3378
|
}
|
|
2270
|
-
const
|
|
3379
|
+
const retryMessages = session.messages.slice(0, -1);
|
|
3380
|
+
const assistantMessage = await getAiResponse({
|
|
3381
|
+
assetDir: updatedState.assetDir,
|
|
3382
|
+
messages: retryMessages,
|
|
3383
|
+
mockApiCommandId: updatedState.mockApiCommandId,
|
|
3384
|
+
models: updatedState.models,
|
|
3385
|
+
nextMessageId: updatedState.nextMessageId,
|
|
3386
|
+
openApiApiBaseUrl: updatedState.openApiApiBaseUrl,
|
|
3387
|
+
openApiApiKey: updatedState.openApiApiKey,
|
|
3388
|
+
openRouterApiBaseUrl: updatedState.openRouterApiBaseUrl,
|
|
3389
|
+
openRouterApiKey,
|
|
3390
|
+
platform: updatedState.platform,
|
|
3391
|
+
selectedModelId: updatedState.selectedModelId,
|
|
3392
|
+
useMockApi: updatedState.useMockApi,
|
|
3393
|
+
userText: previousUserMessage.text
|
|
3394
|
+
});
|
|
2271
3395
|
const updatedSession = {
|
|
2272
3396
|
...session,
|
|
2273
3397
|
messages: [...session.messages.slice(0, -1), assistantMessage]
|
|
@@ -2282,6 +3406,7 @@ const handleClickSaveOpenRouterApiKey = async state => {
|
|
|
2282
3406
|
return {
|
|
2283
3407
|
...updatedState,
|
|
2284
3408
|
nextMessageId: updatedState.nextMessageId + 1,
|
|
3409
|
+
openRouterApiKeyState: 'idle',
|
|
2285
3410
|
sessions: updatedSessions
|
|
2286
3411
|
};
|
|
2287
3412
|
};
|
|
@@ -2294,16 +3419,54 @@ const focusInput = state => {
|
|
|
2294
3419
|
};
|
|
2295
3420
|
};
|
|
2296
3421
|
|
|
3422
|
+
const appendMessageToSelectedSession = (sessions, selectedSessionId, message) => {
|
|
3423
|
+
return sessions.map(session => {
|
|
3424
|
+
if (session.id !== selectedSessionId) {
|
|
3425
|
+
return session;
|
|
3426
|
+
}
|
|
3427
|
+
return {
|
|
3428
|
+
...session,
|
|
3429
|
+
messages: [...session.messages, message]
|
|
3430
|
+
};
|
|
3431
|
+
});
|
|
3432
|
+
};
|
|
3433
|
+
const updateMessageTextInSelectedSession = (sessions, selectedSessionId, messageId, text, inProgress) => {
|
|
3434
|
+
return sessions.map(session => {
|
|
3435
|
+
if (session.id !== selectedSessionId) {
|
|
3436
|
+
return session;
|
|
3437
|
+
}
|
|
3438
|
+
return {
|
|
3439
|
+
...session,
|
|
3440
|
+
messages: session.messages.map(message => {
|
|
3441
|
+
if (message.id !== messageId) {
|
|
3442
|
+
return message;
|
|
3443
|
+
}
|
|
3444
|
+
return {
|
|
3445
|
+
...message,
|
|
3446
|
+
inProgress,
|
|
3447
|
+
text
|
|
3448
|
+
};
|
|
3449
|
+
})
|
|
3450
|
+
};
|
|
3451
|
+
});
|
|
3452
|
+
};
|
|
2297
3453
|
const handleSubmit = async state => {
|
|
2298
3454
|
const {
|
|
3455
|
+
assetDir,
|
|
2299
3456
|
composerValue,
|
|
3457
|
+
mockApiCommandId,
|
|
2300
3458
|
models,
|
|
2301
3459
|
nextMessageId,
|
|
3460
|
+
openApiApiBaseUrl,
|
|
3461
|
+
openApiApiKey,
|
|
2302
3462
|
openRouterApiBaseUrl,
|
|
2303
3463
|
openRouterApiKey,
|
|
3464
|
+
platform,
|
|
2304
3465
|
selectedModelId,
|
|
2305
3466
|
selectedSessionId,
|
|
2306
3467
|
sessions,
|
|
3468
|
+
streamingEnabled,
|
|
3469
|
+
useMockApi,
|
|
2307
3470
|
viewMode
|
|
2308
3471
|
} = state;
|
|
2309
3472
|
const userText = composerValue.trim();
|
|
@@ -2320,6 +3483,18 @@ const handleSubmit = async state => {
|
|
|
2320
3483
|
text: userText,
|
|
2321
3484
|
time: userTime
|
|
2322
3485
|
};
|
|
3486
|
+
const assistantMessageId = `message-${nextMessageId + 1}`;
|
|
3487
|
+
const assistantTime = new Date().toLocaleTimeString([], {
|
|
3488
|
+
hour: '2-digit',
|
|
3489
|
+
minute: '2-digit'
|
|
3490
|
+
});
|
|
3491
|
+
const inProgressAssistantMessage = {
|
|
3492
|
+
id: assistantMessageId,
|
|
3493
|
+
inProgress: true,
|
|
3494
|
+
role: 'assistant',
|
|
3495
|
+
text: '',
|
|
3496
|
+
time: assistantTime
|
|
3497
|
+
};
|
|
2323
3498
|
let workingSessions = sessions;
|
|
2324
3499
|
if (viewMode === 'detail') {
|
|
2325
3500
|
const loadedSession = await getChatSession(selectedSessionId);
|
|
@@ -2337,12 +3512,13 @@ const handleSubmit = async state => {
|
|
|
2337
3512
|
const newSessionId = generateSessionId();
|
|
2338
3513
|
const newSession = {
|
|
2339
3514
|
id: newSessionId,
|
|
2340
|
-
messages: [userMessage],
|
|
3515
|
+
messages: streamingEnabled ? [userMessage, inProgressAssistantMessage] : [userMessage],
|
|
2341
3516
|
title: `Chat ${workingSessions.length + 1}`
|
|
2342
3517
|
};
|
|
2343
3518
|
await saveChatSession(newSession);
|
|
2344
3519
|
optimisticState = focusInput({
|
|
2345
3520
|
...state,
|
|
3521
|
+
composerHeight: getMinComposerHeightForState(state),
|
|
2346
3522
|
composerValue: '',
|
|
2347
3523
|
inputSource: 'script',
|
|
2348
3524
|
lastSubmittedSessionId: newSessionId,
|
|
@@ -2352,21 +3528,15 @@ const handleSubmit = async state => {
|
|
|
2352
3528
|
viewMode: 'detail'
|
|
2353
3529
|
});
|
|
2354
3530
|
} else {
|
|
2355
|
-
const
|
|
2356
|
-
|
|
2357
|
-
return session;
|
|
2358
|
-
}
|
|
2359
|
-
return {
|
|
2360
|
-
...session,
|
|
2361
|
-
messages: [...session.messages, userMessage]
|
|
2362
|
-
};
|
|
2363
|
-
});
|
|
3531
|
+
const updatedWithUser = appendMessageToSelectedSession(workingSessions, selectedSessionId, userMessage);
|
|
3532
|
+
const updatedSessions = streamingEnabled ? appendMessageToSelectedSession(updatedWithUser, selectedSessionId, inProgressAssistantMessage) : updatedWithUser;
|
|
2364
3533
|
const selectedSession = updatedSessions.find(session => session.id === selectedSessionId);
|
|
2365
3534
|
if (selectedSession) {
|
|
2366
3535
|
await saveChatSession(selectedSession);
|
|
2367
3536
|
}
|
|
2368
3537
|
optimisticState = focusInput({
|
|
2369
3538
|
...state,
|
|
3539
|
+
composerHeight: getMinComposerHeightForState(state),
|
|
2370
3540
|
composerValue: '',
|
|
2371
3541
|
inputSource: 'script',
|
|
2372
3542
|
lastSubmittedSessionId: selectedSessionId,
|
|
@@ -2377,23 +3547,56 @@ const handleSubmit = async state => {
|
|
|
2377
3547
|
set(state.uid, state, optimisticState);
|
|
2378
3548
|
// @ts-ignore
|
|
2379
3549
|
await invoke('Chat.rerender');
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
3550
|
+
let latestState = optimisticState;
|
|
3551
|
+
let previousState = optimisticState;
|
|
3552
|
+
const selectedOptimisticSession = latestState.sessions.find(session => session.id === latestState.selectedSessionId);
|
|
3553
|
+
const messages = (selectedOptimisticSession?.messages ?? []).filter(message => !message.inProgress);
|
|
3554
|
+
const onTextChunk = streamingEnabled ? async chunk => {
|
|
3555
|
+
const selectedSession = latestState.sessions.find(session => session.id === latestState.selectedSessionId);
|
|
3556
|
+
if (!selectedSession) {
|
|
3557
|
+
return;
|
|
2384
3558
|
}
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
3559
|
+
const assistantMessage = selectedSession.messages.find(message => message.id === assistantMessageId);
|
|
3560
|
+
if (!assistantMessage) {
|
|
3561
|
+
return;
|
|
3562
|
+
}
|
|
3563
|
+
const updatedText = assistantMessage.text + chunk;
|
|
3564
|
+
const updatedSessions = updateMessageTextInSelectedSession(latestState.sessions, latestState.selectedSessionId, assistantMessageId, updatedText, true);
|
|
3565
|
+
const nextState = {
|
|
3566
|
+
...latestState,
|
|
3567
|
+
sessions: updatedSessions
|
|
2388
3568
|
};
|
|
3569
|
+
set(state.uid, previousState, nextState);
|
|
3570
|
+
previousState = nextState;
|
|
3571
|
+
latestState = nextState;
|
|
3572
|
+
// @ts-ignore
|
|
3573
|
+
await invoke('Chat.rerender');
|
|
3574
|
+
} : undefined;
|
|
3575
|
+
const assistantMessage = await getAiResponse({
|
|
3576
|
+
assetDir,
|
|
3577
|
+
messages,
|
|
3578
|
+
mockApiCommandId,
|
|
3579
|
+
models,
|
|
3580
|
+
nextMessageId: optimisticState.nextMessageId,
|
|
3581
|
+
onTextChunk,
|
|
3582
|
+
openApiApiBaseUrl,
|
|
3583
|
+
openApiApiKey,
|
|
3584
|
+
openRouterApiBaseUrl,
|
|
3585
|
+
openRouterApiKey,
|
|
3586
|
+
platform,
|
|
3587
|
+
selectedModelId,
|
|
3588
|
+
streamingEnabled,
|
|
3589
|
+
useMockApi,
|
|
3590
|
+
userText
|
|
2389
3591
|
});
|
|
2390
|
-
const
|
|
3592
|
+
const updatedSessions = streamingEnabled ? updateMessageTextInSelectedSession(latestState.sessions, latestState.selectedSessionId, assistantMessageId, assistantMessage.text, false) : appendMessageToSelectedSession(latestState.sessions, latestState.selectedSessionId, assistantMessage);
|
|
3593
|
+
const selectedSession = updatedSessions.find(session => session.id === latestState.selectedSessionId);
|
|
2391
3594
|
if (selectedSession) {
|
|
2392
3595
|
await saveChatSession(selectedSession);
|
|
2393
3596
|
}
|
|
2394
3597
|
return focusInput({
|
|
2395
|
-
...
|
|
2396
|
-
nextMessageId:
|
|
3598
|
+
...latestState,
|
|
3599
|
+
nextMessageId: latestState.nextMessageId + 1,
|
|
2397
3600
|
sessions: updatedSessions
|
|
2398
3601
|
});
|
|
2399
3602
|
};
|
|
@@ -2438,7 +3641,11 @@ const getRenameIdFromInputName = name => {
|
|
|
2438
3641
|
return name.slice(RenamePrefix.length);
|
|
2439
3642
|
};
|
|
2440
3643
|
|
|
2441
|
-
|
|
3644
|
+
const OpenApiApiKeyInput = 'open-api-api-key';
|
|
3645
|
+
const SaveOpenApiApiKey = 'save-openapi-api-key';
|
|
3646
|
+
const OpenOpenApiApiKeySettings = 'open-openapi-api-key-settings';
|
|
3647
|
+
|
|
3648
|
+
// cspell:ignore openrouter
|
|
2442
3649
|
const OpenRouterApiKeyInput = 'open-router-api-key';
|
|
2443
3650
|
const SaveOpenRouterApiKey = 'save-openrouter-api-key';
|
|
2444
3651
|
const OpenOpenRouterApiKeySettings = 'open-openrouter-api-key-settings';
|
|
@@ -2524,9 +3731,15 @@ const handleClick = async (state, name, id = '') => {
|
|
|
2524
3731
|
if (name === SaveOpenRouterApiKey) {
|
|
2525
3732
|
return handleClickSaveOpenRouterApiKey(state);
|
|
2526
3733
|
}
|
|
3734
|
+
if (name === SaveOpenApiApiKey) {
|
|
3735
|
+
return handleClickSaveOpenApiApiKey(state);
|
|
3736
|
+
}
|
|
2527
3737
|
if (name === OpenOpenRouterApiKeySettings) {
|
|
2528
3738
|
return handleClickOpenRouterApiKeySettings(state);
|
|
2529
3739
|
}
|
|
3740
|
+
if (name === OpenOpenApiApiKeySettings) {
|
|
3741
|
+
return handleClickOpenApiApiKeySettings(state);
|
|
3742
|
+
}
|
|
2530
3743
|
return state;
|
|
2531
3744
|
};
|
|
2532
3745
|
|
|
@@ -2557,6 +3770,12 @@ const handleClickSettings = async () => {
|
|
|
2557
3770
|
};
|
|
2558
3771
|
|
|
2559
3772
|
const handleInput = async (state, name, value, inputSource = 'user') => {
|
|
3773
|
+
if (name === OpenApiApiKeyInput) {
|
|
3774
|
+
return {
|
|
3775
|
+
...state,
|
|
3776
|
+
openApiApiKeyInput: value
|
|
3777
|
+
};
|
|
3778
|
+
}
|
|
2560
3779
|
if (name === OpenRouterApiKeyInput) {
|
|
2561
3780
|
return {
|
|
2562
3781
|
...state,
|
|
@@ -2566,8 +3785,10 @@ const handleInput = async (state, name, value, inputSource = 'user') => {
|
|
|
2566
3785
|
if (name !== Composer) {
|
|
2567
3786
|
return state;
|
|
2568
3787
|
}
|
|
3788
|
+
const composerHeight = await getComposerHeight(state, value);
|
|
2569
3789
|
return {
|
|
2570
3790
|
...state,
|
|
3791
|
+
composerHeight,
|
|
2571
3792
|
composerValue: value,
|
|
2572
3793
|
inputSource
|
|
2573
3794
|
};
|
|
@@ -2632,6 +3853,7 @@ const submitRename = async state => {
|
|
|
2632
3853
|
}
|
|
2633
3854
|
return {
|
|
2634
3855
|
...state,
|
|
3856
|
+
composerHeight: getMinComposerHeightForState(state),
|
|
2635
3857
|
composerValue: '',
|
|
2636
3858
|
inputSource: 'script',
|
|
2637
3859
|
renamingSessionId: '',
|
|
@@ -2670,7 +3892,29 @@ const handleModelChange = async (state, value) => {
|
|
|
2670
3892
|
};
|
|
2671
3893
|
|
|
2672
3894
|
const handleNewline = async state => {
|
|
2673
|
-
|
|
3895
|
+
const {
|
|
3896
|
+
composerValue
|
|
3897
|
+
} = state;
|
|
3898
|
+
return handleInput(state, Composer, `${composerValue}\n`);
|
|
3899
|
+
};
|
|
3900
|
+
|
|
3901
|
+
const handleChatListScroll = async (state, chatListScrollTop) => {
|
|
3902
|
+
if (state.chatListScrollTop === chatListScrollTop) {
|
|
3903
|
+
return state;
|
|
3904
|
+
}
|
|
3905
|
+
return {
|
|
3906
|
+
...state,
|
|
3907
|
+
chatListScrollTop
|
|
3908
|
+
};
|
|
3909
|
+
};
|
|
3910
|
+
const handleMessagesScroll = async (state, messagesScrollTop) => {
|
|
3911
|
+
if (state.messagesScrollTop === messagesScrollTop) {
|
|
3912
|
+
return state;
|
|
3913
|
+
}
|
|
3914
|
+
return {
|
|
3915
|
+
...state,
|
|
3916
|
+
messagesScrollTop
|
|
3917
|
+
};
|
|
2674
3918
|
};
|
|
2675
3919
|
|
|
2676
3920
|
const id = 7201;
|
|
@@ -2699,6 +3943,32 @@ const isObject = value => {
|
|
|
2699
3943
|
return typeof value === 'object' && value !== null;
|
|
2700
3944
|
};
|
|
2701
3945
|
|
|
3946
|
+
const getSavedChatListScrollTop = savedState => {
|
|
3947
|
+
if (!isObject(savedState)) {
|
|
3948
|
+
return undefined;
|
|
3949
|
+
}
|
|
3950
|
+
const {
|
|
3951
|
+
chatListScrollTop
|
|
3952
|
+
} = savedState;
|
|
3953
|
+
if (typeof chatListScrollTop !== 'number') {
|
|
3954
|
+
return undefined;
|
|
3955
|
+
}
|
|
3956
|
+
return chatListScrollTop;
|
|
3957
|
+
};
|
|
3958
|
+
|
|
3959
|
+
const getSavedMessagesScrollTop = savedState => {
|
|
3960
|
+
if (!isObject(savedState)) {
|
|
3961
|
+
return undefined;
|
|
3962
|
+
}
|
|
3963
|
+
const {
|
|
3964
|
+
messagesScrollTop
|
|
3965
|
+
} = savedState;
|
|
3966
|
+
if (typeof messagesScrollTop !== 'number') {
|
|
3967
|
+
return undefined;
|
|
3968
|
+
}
|
|
3969
|
+
return messagesScrollTop;
|
|
3970
|
+
};
|
|
3971
|
+
|
|
2702
3972
|
const getSavedSelectedModelId = savedState => {
|
|
2703
3973
|
if (!isObject(savedState)) {
|
|
2704
3974
|
return undefined;
|
|
@@ -2751,6 +4021,39 @@ const getSavedViewMode = savedState => {
|
|
|
2751
4021
|
return viewMode;
|
|
2752
4022
|
};
|
|
2753
4023
|
|
|
4024
|
+
const loadOpenApiApiKey = async () => {
|
|
4025
|
+
try {
|
|
4026
|
+
const savedOpenApiKey = await get('secrets.openApiKey');
|
|
4027
|
+
if (typeof savedOpenApiKey === 'string' && savedOpenApiKey) {
|
|
4028
|
+
return savedOpenApiKey;
|
|
4029
|
+
}
|
|
4030
|
+
const legacySavedOpenApiApiKey = await get('secrets.openApiApiKey');
|
|
4031
|
+
if (typeof legacySavedOpenApiApiKey === 'string' && legacySavedOpenApiApiKey) {
|
|
4032
|
+
return legacySavedOpenApiApiKey;
|
|
4033
|
+
}
|
|
4034
|
+
const legacySavedOpenAiApiKey = await get('secrets.openAiApiKey');
|
|
4035
|
+
return typeof legacySavedOpenAiApiKey === 'string' ? legacySavedOpenAiApiKey : '';
|
|
4036
|
+
} catch {
|
|
4037
|
+
return '';
|
|
4038
|
+
}
|
|
4039
|
+
};
|
|
4040
|
+
const loadOpenRouterApiKey = async () => {
|
|
4041
|
+
try {
|
|
4042
|
+
const savedOpenRouterApiKey = await get('secrets.openRouterApiKey');
|
|
4043
|
+
return typeof savedOpenRouterApiKey === 'string' ? savedOpenRouterApiKey : '';
|
|
4044
|
+
} catch {
|
|
4045
|
+
return '';
|
|
4046
|
+
}
|
|
4047
|
+
};
|
|
4048
|
+
const loadPreferences = async () => {
|
|
4049
|
+
const openApiApiKey = await loadOpenApiApiKey();
|
|
4050
|
+
const openRouterApiKey = await loadOpenRouterApiKey();
|
|
4051
|
+
return {
|
|
4052
|
+
openApiApiKey,
|
|
4053
|
+
openRouterApiKey
|
|
4054
|
+
};
|
|
4055
|
+
};
|
|
4056
|
+
|
|
2754
4057
|
const toSummarySession = session => {
|
|
2755
4058
|
return {
|
|
2756
4059
|
id: session.id,
|
|
@@ -2776,13 +4079,10 @@ const loadSelectedSessionMessages = async (sessions, selectedSessionId) => {
|
|
|
2776
4079
|
const loadContent = async (state, savedState) => {
|
|
2777
4080
|
const savedSelectedModelId = getSavedSelectedModelId(savedState);
|
|
2778
4081
|
const savedViewMode = getSavedViewMode(savedState);
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
} catch {
|
|
2784
|
-
openRouterApiKey = '';
|
|
2785
|
-
}
|
|
4082
|
+
const {
|
|
4083
|
+
openApiApiKey,
|
|
4084
|
+
openRouterApiKey
|
|
4085
|
+
} = await loadPreferences();
|
|
2786
4086
|
const legacySavedSessions = getSavedSessions(savedState);
|
|
2787
4087
|
const storedSessions = await listChatSessions();
|
|
2788
4088
|
let sessions = storedSessions;
|
|
@@ -2800,6 +4100,8 @@ const loadContent = async (state, savedState) => {
|
|
|
2800
4100
|
}
|
|
2801
4101
|
const preferredSessionId = getSavedSelectedSessionId(savedState) || state.selectedSessionId;
|
|
2802
4102
|
const preferredModelId = savedSelectedModelId || state.selectedModelId;
|
|
4103
|
+
const chatListScrollTop = getSavedChatListScrollTop(savedState) ?? state.chatListScrollTop;
|
|
4104
|
+
const messagesScrollTop = getSavedMessagesScrollTop(savedState) ?? state.messagesScrollTop;
|
|
2803
4105
|
const selectedModelId = state.models.some(model => model.id === preferredModelId) ? preferredModelId : state.models[0]?.id || '';
|
|
2804
4106
|
const selectedSessionId = sessions.some(session => session.id === preferredSessionId) ? preferredSessionId : sessions[0]?.id || '';
|
|
2805
4107
|
sessions = await loadSelectedSessionMessages(sessions, selectedSessionId);
|
|
@@ -2807,7 +4109,11 @@ const loadContent = async (state, savedState) => {
|
|
|
2807
4109
|
const viewMode = sessions.length === 0 || !selectedSessionId ? 'list' : preferredViewMode === 'detail' ? 'detail' : 'list';
|
|
2808
4110
|
return {
|
|
2809
4111
|
...state,
|
|
4112
|
+
chatListScrollTop,
|
|
2810
4113
|
initial: false,
|
|
4114
|
+
messagesScrollTop,
|
|
4115
|
+
openApiApiKey,
|
|
4116
|
+
openApiApiKeyInput: openApiApiKey,
|
|
2811
4117
|
openRouterApiKey,
|
|
2812
4118
|
openRouterApiKeyInput: openRouterApiKey,
|
|
2813
4119
|
selectedModelId,
|
|
@@ -2851,12 +4157,22 @@ const openMockSession = async (state, mockSessionId, mockChatMessages) => {
|
|
|
2851
4157
|
};
|
|
2852
4158
|
};
|
|
2853
4159
|
|
|
4160
|
+
const getCss = composerHeight => {
|
|
4161
|
+
return `:root {
|
|
4162
|
+
--ChatInputBoxHeight: ${composerHeight}px;
|
|
4163
|
+
}`;
|
|
4164
|
+
};
|
|
4165
|
+
|
|
2854
4166
|
// TODO render things like scrollbar height,scrollbar offset, textarea height,
|
|
2855
4167
|
// list height
|
|
2856
|
-
|
|
2857
|
-
`;
|
|
4168
|
+
|
|
2858
4169
|
const renderCss = (oldState, newState) => {
|
|
2859
|
-
|
|
4170
|
+
const {
|
|
4171
|
+
composerHeight,
|
|
4172
|
+
uid
|
|
4173
|
+
} = newState;
|
|
4174
|
+
const css = getCss(composerHeight);
|
|
4175
|
+
return [SetCss, uid, css];
|
|
2860
4176
|
};
|
|
2861
4177
|
|
|
2862
4178
|
const getFocusSelector = focus => {
|
|
@@ -2906,6 +4222,8 @@ const ChatListItemLabel = 'ChatListItemLabel';
|
|
|
2906
4222
|
const Markdown = 'Markdown';
|
|
2907
4223
|
const Message = 'Message';
|
|
2908
4224
|
const ChatMessageContent = 'ChatMessageContent';
|
|
4225
|
+
const ChatOrderedList = 'ChatOrderedList';
|
|
4226
|
+
const ChatOrderedListItem = 'ChatOrderedListItem';
|
|
2909
4227
|
const MessageUser = 'MessageUser';
|
|
2910
4228
|
const MessageAssistant = 'MessageAssistant';
|
|
2911
4229
|
const MultilineInputBox = 'MultilineInputBox';
|
|
@@ -2930,13 +4248,19 @@ const HandleClickList = 17;
|
|
|
2930
4248
|
const HandleClickDelete = 18;
|
|
2931
4249
|
const HandleSubmit = 19;
|
|
2932
4250
|
const HandleModelChange = 20;
|
|
4251
|
+
const HandleChatListScroll = 21;
|
|
4252
|
+
const HandleMessagesScroll = 22;
|
|
2933
4253
|
|
|
2934
4254
|
const getModelLabel = model => {
|
|
2935
4255
|
if (model.provider === 'openRouter') {
|
|
2936
4256
|
return `${model.name} (OpenRouter)`;
|
|
2937
4257
|
}
|
|
4258
|
+
if (model.provider === 'openApi' || model.provider === 'openAI' || model.provider === 'openai') {
|
|
4259
|
+
return `${model.name} (OpenAI)`;
|
|
4260
|
+
}
|
|
2938
4261
|
return model.name;
|
|
2939
4262
|
};
|
|
4263
|
+
|
|
2940
4264
|
const getModelOptionDOm = (model, selectedModelId) => {
|
|
2941
4265
|
return [{
|
|
2942
4266
|
childCount: 1,
|
|
@@ -3004,7 +4328,7 @@ const getUsageOverviewDom = (tokensUsed, tokensMax) => {
|
|
|
3004
4328
|
}, text(usageLabel)];
|
|
3005
4329
|
};
|
|
3006
4330
|
|
|
3007
|
-
const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
|
|
4331
|
+
const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20) => {
|
|
3008
4332
|
const isSendDisabled = composerValue.trim() === '';
|
|
3009
4333
|
const modelOptions = models.flatMap(model => getModelOptionDOm(model, selectedModelId));
|
|
3010
4334
|
return [{
|
|
@@ -3022,7 +4346,7 @@ const getChatSendAreaDom = (composerValue, models, selectedModelId, usageOvervie
|
|
|
3022
4346
|
onFocus: HandleFocus,
|
|
3023
4347
|
onInput: HandleInput,
|
|
3024
4348
|
placeholder: composePlaceholder(),
|
|
3025
|
-
|
|
4349
|
+
// style: `height:${composerHeight}px;font-size:${composerFontSize}px;font-family:${composerFontFamily};line-height:${composerLineHeight}px;`,
|
|
3026
4350
|
type: TextArea,
|
|
3027
4351
|
value: composerValue
|
|
3028
4352
|
}, {
|
|
@@ -3111,18 +4435,27 @@ const getChatHeaderDomDetailMode = selectedSessionTitle => {
|
|
|
3111
4435
|
}, text(selectedSessionTitle), ...getChatHeaderActionsDom()];
|
|
3112
4436
|
};
|
|
3113
4437
|
|
|
3114
|
-
const
|
|
4438
|
+
const getMissingApiKeyDom = ({
|
|
4439
|
+
getApiKeyText,
|
|
4440
|
+
inputName,
|
|
4441
|
+
inputValue,
|
|
4442
|
+
openSettingsButtonName,
|
|
4443
|
+
placeholder,
|
|
4444
|
+
saveButtonDisabled = false,
|
|
4445
|
+
saveButtonName,
|
|
4446
|
+
saveButtonText = save()
|
|
4447
|
+
}) => {
|
|
3115
4448
|
return [{
|
|
3116
4449
|
childCount: 2,
|
|
3117
4450
|
type: Div
|
|
3118
4451
|
}, {
|
|
3119
4452
|
childCount: 0,
|
|
3120
4453
|
className: InputBox,
|
|
3121
|
-
name:
|
|
4454
|
+
name: inputName,
|
|
3122
4455
|
onInput: HandleInput,
|
|
3123
|
-
placeholder
|
|
4456
|
+
placeholder,
|
|
3124
4457
|
type: Input,
|
|
3125
|
-
value:
|
|
4458
|
+
value: inputValue
|
|
3126
4459
|
}, {
|
|
3127
4460
|
childCount: 2,
|
|
3128
4461
|
className: Actions,
|
|
@@ -3130,35 +4463,77 @@ const getMissingOpenRouterApiKeyDom = openRouterApiKeyInput => {
|
|
|
3130
4463
|
}, {
|
|
3131
4464
|
childCount: 1,
|
|
3132
4465
|
className: mergeClassNames(Button, ButtonPrimary),
|
|
3133
|
-
|
|
4466
|
+
disabled: saveButtonDisabled,
|
|
4467
|
+
name: saveButtonName,
|
|
3134
4468
|
onClick: HandleClick,
|
|
3135
4469
|
type: Button$1
|
|
3136
|
-
}, text(
|
|
4470
|
+
}, text(saveButtonText), {
|
|
3137
4471
|
childCount: 1,
|
|
3138
4472
|
className: mergeClassNames(Button, ButtonSecondary),
|
|
3139
|
-
name:
|
|
4473
|
+
name: openSettingsButtonName,
|
|
3140
4474
|
onClick: HandleClick,
|
|
3141
4475
|
type: Button$1
|
|
3142
|
-
}, text(
|
|
4476
|
+
}, text(getApiKeyText)];
|
|
4477
|
+
};
|
|
4478
|
+
|
|
4479
|
+
const getMissingOpenApiApiKeyDom = openApiApiKeyInput => {
|
|
4480
|
+
return getMissingApiKeyDom({
|
|
4481
|
+
getApiKeyText: getOpenApiApiKey(),
|
|
4482
|
+
inputName: OpenApiApiKeyInput,
|
|
4483
|
+
inputValue: openApiApiKeyInput,
|
|
4484
|
+
openSettingsButtonName: OpenOpenApiApiKeySettings,
|
|
4485
|
+
placeholder: openApiApiKeyPlaceholder(),
|
|
4486
|
+
saveButtonName: SaveOpenApiApiKey
|
|
4487
|
+
});
|
|
4488
|
+
};
|
|
4489
|
+
|
|
4490
|
+
const getMissingOpenRouterApiKeyDom = (openRouterApiKeyInput, openRouterApiKeyState = 'idle') => {
|
|
4491
|
+
const isSaving = openRouterApiKeyState === 'saving';
|
|
4492
|
+
return getMissingApiKeyDom({
|
|
4493
|
+
getApiKeyText: getOpenRouterApiKey(),
|
|
4494
|
+
inputName: OpenRouterApiKeyInput,
|
|
4495
|
+
inputValue: openRouterApiKeyInput,
|
|
4496
|
+
openSettingsButtonName: OpenOpenRouterApiKeySettings,
|
|
4497
|
+
placeholder: openRouterApiKeyPlaceholder(),
|
|
4498
|
+
saveButtonDisabled: isSaving,
|
|
4499
|
+
saveButtonName: SaveOpenRouterApiKey,
|
|
4500
|
+
saveButtonText: isSaving ? saving() : save()
|
|
4501
|
+
});
|
|
3143
4502
|
};
|
|
3144
4503
|
|
|
3145
4504
|
const getOpenRouterRequestFailedDom = () => {
|
|
3146
4505
|
return [{
|
|
3147
4506
|
childCount: openRouterRequestFailureReasons.length,
|
|
3148
|
-
className:
|
|
4507
|
+
className: ChatOrderedList,
|
|
3149
4508
|
type: Ol
|
|
3150
4509
|
}, ...openRouterRequestFailureReasons.flatMap(reason => {
|
|
3151
4510
|
return [{
|
|
3152
4511
|
childCount: 1,
|
|
4512
|
+
className: ChatOrderedListItem,
|
|
4513
|
+
type: Li
|
|
4514
|
+
}, text(reason)];
|
|
4515
|
+
})];
|
|
4516
|
+
};
|
|
4517
|
+
const getOpenRouterTooManyRequestsDom = () => {
|
|
4518
|
+
return [{
|
|
4519
|
+
childCount: openRouterTooManyRequestsReasons.length,
|
|
4520
|
+
className: ChatOrderedList,
|
|
4521
|
+
type: Ol
|
|
4522
|
+
}, ...openRouterTooManyRequestsReasons.flatMap(reason => {
|
|
4523
|
+
return [{
|
|
4524
|
+
childCount: 1,
|
|
4525
|
+
className: ChatOrderedListItem,
|
|
3153
4526
|
type: Li
|
|
3154
4527
|
}, text(reason)];
|
|
3155
4528
|
})];
|
|
3156
4529
|
};
|
|
3157
|
-
const getChatMessageDom = (message, openRouterApiKeyInput) => {
|
|
4530
|
+
const getChatMessageDom = (message, openRouterApiKeyInput, openApiApiKeyInput = '', openRouterApiKeyState = 'idle') => {
|
|
3158
4531
|
const roleClassName = message.role === 'user' ? MessageUser : MessageAssistant;
|
|
4532
|
+
const isOpenApiApiKeyMissingMessage = message.role === 'assistant' && message.text === openApiApiKeyRequiredMessage;
|
|
3159
4533
|
const isOpenRouterApiKeyMissingMessage = message.role === 'assistant' && message.text === openRouterApiKeyRequiredMessage;
|
|
3160
4534
|
const isOpenRouterRequestFailedMessage = message.role === 'assistant' && message.text === openRouterRequestFailedMessage;
|
|
3161
|
-
const
|
|
4535
|
+
const isOpenRouterTooManyRequestsMessage = message.role === 'assistant' && message.text.startsWith(openRouterTooManyRequestsMessage);
|
|
4536
|
+
const extraChildCount = isOpenApiApiKeyMissingMessage || isOpenRouterApiKeyMissingMessage || isOpenRouterRequestFailedMessage || isOpenRouterTooManyRequestsMessage ? 2 : 1;
|
|
3162
4537
|
return [{
|
|
3163
4538
|
childCount: 1,
|
|
3164
4539
|
className: mergeClassNames(Message, roleClassName),
|
|
@@ -3171,7 +4546,7 @@ const getChatMessageDom = (message, openRouterApiKeyInput) => {
|
|
|
3171
4546
|
childCount: 1,
|
|
3172
4547
|
className: Markdown,
|
|
3173
4548
|
type: P
|
|
3174
|
-
}, text(message.text), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyInput) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : [])];
|
|
4549
|
+
}, text(message.text), ...(isOpenApiApiKeyMissingMessage ? getMissingOpenApiApiKeyDom(openApiApiKeyInput) : []), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyInput, openRouterApiKeyState) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : []), ...(isOpenRouterTooManyRequestsMessage ? getOpenRouterTooManyRequestsDom() : [])];
|
|
3175
4550
|
};
|
|
3176
4551
|
|
|
3177
4552
|
const getEmptyMessagesDom = () => {
|
|
@@ -3181,18 +4556,21 @@ const getEmptyMessagesDom = () => {
|
|
|
3181
4556
|
type: Div
|
|
3182
4557
|
}, text(startConversation())];
|
|
3183
4558
|
};
|
|
3184
|
-
|
|
4559
|
+
|
|
4560
|
+
const getMessagesDom = (messages, openRouterApiKeyInput, openApiApiKeyInput = '', openRouterApiKeyState = 'idle', messagesScrollTop = 0) => {
|
|
3185
4561
|
if (messages.length === 0) {
|
|
3186
4562
|
return getEmptyMessagesDom();
|
|
3187
4563
|
}
|
|
3188
4564
|
return [{
|
|
3189
4565
|
childCount: messages.length,
|
|
3190
4566
|
className: 'ChatMessages',
|
|
4567
|
+
onScroll: HandleMessagesScroll,
|
|
4568
|
+
scrollTop: messagesScrollTop,
|
|
3191
4569
|
type: Div
|
|
3192
|
-
}, ...messages.flatMap(message => getChatMessageDom(message, openRouterApiKeyInput))];
|
|
4570
|
+
}, ...messages.flatMap(message => getChatMessageDom(message, openRouterApiKeyInput, openApiApiKeyInput, openRouterApiKeyState))];
|
|
3193
4571
|
};
|
|
3194
4572
|
|
|
3195
|
-
const getChatModeDetailVirtualDom = (sessions, selectedSessionId, composerValue, openRouterApiKeyInput, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
|
|
4573
|
+
const getChatModeDetailVirtualDom = (sessions, selectedSessionId, composerValue, openRouterApiKeyInput, openApiApiKeyInput, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openRouterApiKeyState = 'idle', composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20, messagesScrollTop = 0) => {
|
|
3196
4574
|
const selectedSession = sessions.find(session => session.id === selectedSessionId);
|
|
3197
4575
|
const selectedSessionTitle = selectedSession?.title || chatTitle();
|
|
3198
4576
|
const messages = selectedSession ? selectedSession.messages : [];
|
|
@@ -3200,7 +4578,7 @@ const getChatModeDetailVirtualDom = (sessions, selectedSessionId, composerValue,
|
|
|
3200
4578
|
childCount: 3,
|
|
3201
4579
|
className: mergeClassNames(Viewlet, Chat),
|
|
3202
4580
|
type: Div
|
|
3203
|
-
}, ...getChatHeaderDomDetailMode(selectedSessionTitle), ...getMessagesDom(messages, openRouterApiKeyInput), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax)];
|
|
4581
|
+
}, ...getChatHeaderDomDetailMode(selectedSessionTitle), ...getMessagesDom(messages, openRouterApiKeyInput, openApiApiKeyInput, openRouterApiKeyState, messagesScrollTop), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight, composerFontSize, composerFontFamily, composerLineHeight)];
|
|
3204
4582
|
};
|
|
3205
4583
|
|
|
3206
4584
|
const getChatHeaderListModeDom = () => {
|
|
@@ -3257,7 +4635,7 @@ const getSessionDom = session => {
|
|
|
3257
4635
|
}, text('🗑')];
|
|
3258
4636
|
};
|
|
3259
4637
|
|
|
3260
|
-
const getChatListDom = (sessions, selectedSessionId) => {
|
|
4638
|
+
const getChatListDom = (sessions, selectedSessionId, chatListScrollTop = 0) => {
|
|
3261
4639
|
if (sessions.length === 0) {
|
|
3262
4640
|
return getEmptyChatSessionsDom();
|
|
3263
4641
|
}
|
|
@@ -3265,16 +4643,18 @@ const getChatListDom = (sessions, selectedSessionId) => {
|
|
|
3265
4643
|
childCount: sessions.length,
|
|
3266
4644
|
className: ChatList,
|
|
3267
4645
|
onClick: HandleClickList,
|
|
4646
|
+
onScroll: HandleChatListScroll,
|
|
4647
|
+
scrollTop: chatListScrollTop,
|
|
3268
4648
|
type: Div
|
|
3269
4649
|
}, ...sessions.flatMap(getSessionDom)];
|
|
3270
4650
|
};
|
|
3271
4651
|
|
|
3272
|
-
const getChatModeListVirtualDom = (sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
|
|
4652
|
+
const getChatModeListVirtualDom = (sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20, chatListScrollTop = 0) => {
|
|
3273
4653
|
return [{
|
|
3274
4654
|
childCount: 3,
|
|
3275
4655
|
className: mergeClassNames(Viewlet, Chat),
|
|
3276
4656
|
type: Div
|
|
3277
|
-
}, ...getChatHeaderListModeDom(), ...getChatListDom(sessions), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax)];
|
|
4657
|
+
}, ...getChatHeaderListModeDom(), ...getChatListDom(sessions, selectedSessionId, chatListScrollTop), ...getChatSendAreaDom(composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight, composerFontSize, composerFontFamily, composerLineHeight)];
|
|
3278
4658
|
};
|
|
3279
4659
|
|
|
3280
4660
|
const getChatModeUnsupportedVirtualDom = () => {
|
|
@@ -3284,12 +4664,12 @@ const getChatModeUnsupportedVirtualDom = () => {
|
|
|
3284
4664
|
}, text(unknownViewMode())];
|
|
3285
4665
|
};
|
|
3286
4666
|
|
|
3287
|
-
const getChatVirtualDom = (sessions, selectedSessionId, composerValue, openRouterApiKeyInput, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax) => {
|
|
4667
|
+
const getChatVirtualDom = (sessions, selectedSessionId, composerValue, openRouterApiKeyInput, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openApiApiKeyInput = '', openRouterApiKeyState = 'idle', composerHeight = 28, composerFontSize = 13, composerFontFamily = 'system-ui', composerLineHeight = 20, chatListScrollTop = 0, messagesScrollTop = 0) => {
|
|
3288
4668
|
switch (viewMode) {
|
|
3289
4669
|
case 'detail':
|
|
3290
|
-
return getChatModeDetailVirtualDom(sessions, selectedSessionId, composerValue, openRouterApiKeyInput, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax);
|
|
4670
|
+
return getChatModeDetailVirtualDom(sessions, selectedSessionId, composerValue, openRouterApiKeyInput, openApiApiKeyInput, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openRouterApiKeyState, composerHeight, composerFontSize, composerFontFamily, composerLineHeight, messagesScrollTop);
|
|
3291
4671
|
case 'list':
|
|
3292
|
-
return getChatModeListVirtualDom(sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax);
|
|
4672
|
+
return getChatModeListVirtualDom(sessions, selectedSessionId, composerValue, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, composerHeight, composerFontSize, composerFontFamily, composerLineHeight, chatListScrollTop);
|
|
3293
4673
|
default:
|
|
3294
4674
|
return getChatModeUnsupportedVirtualDom();
|
|
3295
4675
|
}
|
|
@@ -3297,10 +4677,18 @@ const getChatVirtualDom = (sessions, selectedSessionId, composerValue, openRoute
|
|
|
3297
4677
|
|
|
3298
4678
|
const renderItems = (oldState, newState) => {
|
|
3299
4679
|
const {
|
|
4680
|
+
chatListScrollTop,
|
|
4681
|
+
composerFontFamily,
|
|
4682
|
+
composerFontSize,
|
|
4683
|
+
composerHeight,
|
|
4684
|
+
composerLineHeight,
|
|
3300
4685
|
composerValue,
|
|
3301
4686
|
initial,
|
|
4687
|
+
messagesScrollTop,
|
|
3302
4688
|
models,
|
|
4689
|
+
openApiApiKeyInput,
|
|
3303
4690
|
openRouterApiKeyInput,
|
|
4691
|
+
openRouterApiKeyState,
|
|
3304
4692
|
selectedModelId,
|
|
3305
4693
|
selectedSessionId,
|
|
3306
4694
|
sessions,
|
|
@@ -3313,7 +4701,7 @@ const renderItems = (oldState, newState) => {
|
|
|
3313
4701
|
if (initial) {
|
|
3314
4702
|
return [SetDom2, uid, []];
|
|
3315
4703
|
}
|
|
3316
|
-
const dom = getChatVirtualDom(sessions, selectedSessionId, composerValue, openRouterApiKeyInput, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax);
|
|
4704
|
+
const dom = getChatVirtualDom(sessions, selectedSessionId, composerValue, openRouterApiKeyInput, viewMode, models, selectedModelId, usageOverviewEnabled, tokensUsed, tokensMax, openApiApiKeyInput, openRouterApiKeyState, composerHeight, composerFontSize, composerFontFamily, composerLineHeight, chatListScrollTop, messagesScrollTop);
|
|
3317
4705
|
return [SetDom2, uid, dom];
|
|
3318
4706
|
};
|
|
3319
4707
|
|
|
@@ -3324,6 +4712,14 @@ const renderIncremental = (oldState, newState) => {
|
|
|
3324
4712
|
return [SetPatches, newState.uid, patches];
|
|
3325
4713
|
};
|
|
3326
4714
|
|
|
4715
|
+
const renderScrollTop = (oldState, newState) => {
|
|
4716
|
+
const {
|
|
4717
|
+
messagesScrollTop,
|
|
4718
|
+
uid
|
|
4719
|
+
} = newState;
|
|
4720
|
+
return [SetProperty, uid, '.ChatMessages', 'scrollTop', messagesScrollTop];
|
|
4721
|
+
};
|
|
4722
|
+
|
|
3327
4723
|
const renderValue = (oldState, newState) => {
|
|
3328
4724
|
const {
|
|
3329
4725
|
composerValue
|
|
@@ -3343,6 +4739,8 @@ const getRenderer = diffType => {
|
|
|
3343
4739
|
return renderIncremental;
|
|
3344
4740
|
case RenderItems:
|
|
3345
4741
|
return renderItems;
|
|
4742
|
+
case RenderScrollTop:
|
|
4743
|
+
return renderScrollTop;
|
|
3346
4744
|
case RenderValue:
|
|
3347
4745
|
return renderValue;
|
|
3348
4746
|
default:
|
|
@@ -3404,6 +4802,12 @@ const renderEventListeners = () => {
|
|
|
3404
4802
|
}, {
|
|
3405
4803
|
name: HandleModelChange,
|
|
3406
4804
|
params: ['handleModelChange', TargetValue]
|
|
4805
|
+
}, {
|
|
4806
|
+
name: HandleChatListScroll,
|
|
4807
|
+
params: ['handleChatListScroll', 'event.target.scrollTop']
|
|
4808
|
+
}, {
|
|
4809
|
+
name: HandleMessagesScroll,
|
|
4810
|
+
params: ['handleMessagesScroll', 'event.target.scrollTop']
|
|
3407
4811
|
}, {
|
|
3408
4812
|
name: HandleFocus,
|
|
3409
4813
|
params: ['handleInputFocus', TargetName]
|
|
@@ -3424,6 +4828,7 @@ const reset = async state => {
|
|
|
3424
4828
|
await clearChatSessions();
|
|
3425
4829
|
return {
|
|
3426
4830
|
...state,
|
|
4831
|
+
composerHeight: getMinComposerHeightForState(state),
|
|
3427
4832
|
composerValue: '',
|
|
3428
4833
|
openRouterApiKey: '',
|
|
3429
4834
|
selectedSessionId: '',
|
|
@@ -3441,8 +4846,10 @@ const resize = (state, dimensions) => {
|
|
|
3441
4846
|
|
|
3442
4847
|
const saveState = state => {
|
|
3443
4848
|
const {
|
|
4849
|
+
chatListScrollTop,
|
|
3444
4850
|
composerValue,
|
|
3445
4851
|
height,
|
|
4852
|
+
messagesScrollTop,
|
|
3446
4853
|
nextMessageId,
|
|
3447
4854
|
renamingSessionId,
|
|
3448
4855
|
selectedModelId,
|
|
@@ -3453,8 +4860,10 @@ const saveState = state => {
|
|
|
3453
4860
|
y
|
|
3454
4861
|
} = state;
|
|
3455
4862
|
return {
|
|
4863
|
+
chatListScrollTop,
|
|
3456
4864
|
composerValue,
|
|
3457
4865
|
height,
|
|
4866
|
+
messagesScrollTop,
|
|
3458
4867
|
nextMessageId,
|
|
3459
4868
|
renamingSessionId,
|
|
3460
4869
|
selectedModelId,
|
|
@@ -3488,6 +4897,21 @@ const setChatList = state => {
|
|
|
3488
4897
|
};
|
|
3489
4898
|
};
|
|
3490
4899
|
|
|
4900
|
+
const defaultMockApiCommandId = 'ChatE2e.mockApi';
|
|
4901
|
+
const useMockApi = (state, value, mockApiCommandId = defaultMockApiCommandId) => {
|
|
4902
|
+
if (!value) {
|
|
4903
|
+
return {
|
|
4904
|
+
...state,
|
|
4905
|
+
useMockApi: false
|
|
4906
|
+
};
|
|
4907
|
+
}
|
|
4908
|
+
return {
|
|
4909
|
+
...state,
|
|
4910
|
+
mockApiCommandId,
|
|
4911
|
+
useMockApi: true
|
|
4912
|
+
};
|
|
4913
|
+
};
|
|
4914
|
+
|
|
3491
4915
|
const commandMap = {
|
|
3492
4916
|
'Chat.clearInput': wrapCommand(clearInput),
|
|
3493
4917
|
'Chat.create': create,
|
|
@@ -3497,6 +4921,7 @@ const commandMap = {
|
|
|
3497
4921
|
'Chat.getKeyBindings': getKeyBindings,
|
|
3498
4922
|
'Chat.getSelectedSessionId': wrapGetter(getSelectedSessionId),
|
|
3499
4923
|
'Chat.handleChatListContextMenu': handleChatListContextMenu,
|
|
4924
|
+
'Chat.handleChatListScroll': wrapCommand(handleChatListScroll),
|
|
3500
4925
|
'Chat.handleClick': wrapCommand(handleClick),
|
|
3501
4926
|
'Chat.handleClickBack': wrapCommand(handleClickBack),
|
|
3502
4927
|
'Chat.handleClickClose': handleClickClose,
|
|
@@ -3507,6 +4932,7 @@ const commandMap = {
|
|
|
3507
4932
|
'Chat.handleInput': wrapCommand(handleInput),
|
|
3508
4933
|
'Chat.handleInputFocus': wrapCommand(handleInputFocus),
|
|
3509
4934
|
'Chat.handleKeyDown': wrapCommand(handleKeyDown),
|
|
4935
|
+
'Chat.handleMessagesScroll': wrapCommand(handleMessagesScroll),
|
|
3510
4936
|
'Chat.handleModelChange': wrapCommand(handleModelChange),
|
|
3511
4937
|
'Chat.handleSubmit': wrapCommand(handleSubmit),
|
|
3512
4938
|
'Chat.initialize': initialize,
|
|
@@ -3521,7 +4947,8 @@ const commandMap = {
|
|
|
3521
4947
|
'Chat.saveState': wrapGetter(saveState),
|
|
3522
4948
|
'Chat.setChatList': wrapCommand(setChatList),
|
|
3523
4949
|
'Chat.setOpenRouterApiKey': wrapCommand(setOpenRouterApiKey),
|
|
3524
|
-
'Chat.terminate': terminate
|
|
4950
|
+
'Chat.terminate': terminate,
|
|
4951
|
+
'Chat.useMockApi': wrapCommand(useMockApi)
|
|
3525
4952
|
};
|
|
3526
4953
|
|
|
3527
4954
|
const listen = async () => {
|