@lvce-editor/static-server 0.77.5 → 0.77.6
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/{e30ed59 → 101c327}/css/App.css +140 -94
- package/static/{e30ed59 → 101c327}/manifest.json +2 -2
- package/static/{e30ed59 → 101c327}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
- package/static/{e30ed59 → 101c327}/packages/chat-message-parsing-worker/dist/chatMessageParsingWorkerMain.js +105 -42
- package/static/{e30ed59 → 101c327}/packages/chat-view/dist/chatViewWorkerMain.js +1960 -458
- package/static/{e30ed59 → 101c327}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
- package/static/{e30ed59 → 101c327}/packages/renderer-process/dist/rendererProcessMain.js +22 -9
- package/static/{e30ed59 → 101c327}/packages/renderer-process/package.json +1 -1
- package/static/{e30ed59 → 101c327}/packages/renderer-worker/dist/rendererWorkerMain.js +4 -4
- package/static/{e30ed59 → 101c327}/packages/status-bar-worker/dist/statusBarWorkerMain.js +22 -3
- package/static/{e30ed59 → 101c327}/packages/title-bar-worker/dist/titleBarWorkerMain.js +302 -159
- package/static/index.html +4 -4
- /package/static/{e30ed59 → 101c327}/config/colorTheme.json +0 -0
- /package/static/{e30ed59 → 101c327}/config/defaultSettings.json +0 -0
- /package/static/{e30ed59 → 101c327}/config/fileMap.json +0 -0
- /package/static/{e30ed59 → 101c327}/config/webExtensions.json +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/AdditionalDetails.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Animation.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/BrowserScrollBar.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Category.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/DebugButtons.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/DebugValue.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/E2eTest.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/E2eTests.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/EditorHover.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/EditorMessage.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/FeatureContent.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Features.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ImagePreview.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/InlineDiffEditor.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/InputBadge.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Key.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/KeyBindingsHeader.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/KeyBindingsTable.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/LegacyDialog.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Markdown.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Message.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Preview.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ScrollToTop.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/SettingsHeader.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/SettingsItems.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/SettingsSideBar.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/Table.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletAbout.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletBrowserViewOverview.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletDebugConsole.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletDefineKeyBinding.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletDiffEditor.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletEditorWidgetError.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletExtensionDetail.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletExtensionDetailHeader.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletExtensionDetailTabs.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletExtensions.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletIframeInspector.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletKeyBindings.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletLanguageModels.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletMedia.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletOutput.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletPanel.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletPanelTabs.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletPdf.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletProblems.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletReferences.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletRunAndDebug.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletScreenCapture.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletSearch.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletSettings.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletSimpleBrowser.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletSourceControl.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletStorage.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletTerminal.css +0 -0
- /package/static/{e30ed59 → 101c327}/css/parts/ViewletTerminalTabs.css +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-bat/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-bat/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-c/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-c/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cpp/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cpp/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cson/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cson/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-css/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-css/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-dart/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-dart/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-desktop/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-desktop/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-docker/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-docker/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-dotenv/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-elixir/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-elixir/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-elm/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-elm/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-gn/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-gn/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-go/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-go/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-graphql/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-graphql/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-html/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-html/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-java/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-java/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-javascript/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-javascript/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-json/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-json/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-json5/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-json5/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-jsx/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-jsx/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-julia/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-julia/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-kotlin/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-less/LICENSE +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-less/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-less/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-markdown/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-markdown/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-mdx/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-mdx/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nix/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nix/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-perl/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-perl/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-plaintext/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-powershell/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-powershell/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-python/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-python/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-r/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-r/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-ruby/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-ruby/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-rust/LICENSE +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-rust/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-rust/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-scss/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-scss/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-shellscript/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-svelte/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-svelte/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-terraform/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-terraform/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-toml/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-toml/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-typescript/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-typescript/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-vue/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-vue/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-wgsl/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-xml/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-xml/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-yaml/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-yaml/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-ayu/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-ayu/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-ayu/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-ayu/images/demo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-cobalt2/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-cobalt2/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-gruvbox/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-gruvbox/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-high-contrast/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-high-contrast/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-material/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-material/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-material/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-monokai/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-monokai/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-monokai/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-noctis-uva/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-palenight/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-palenight/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-palenight/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-palenight/images/demo.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-slime/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-slime/color-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-slime/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.theme-slime/icon.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/extension.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icon.png +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
- /package/static/{e30ed59 → 101c327}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
- /package/static/{e30ed59 → 101c327}/fonts/FiraCode-VariableFont.ttf +0 -0
- /package/static/{e30ed59 → 101c327}/icons/add.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/arrow-down.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/arrow-left.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/arrow-right.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/arrow-up.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/blank.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/book.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/case-sensitive.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/check.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chevron-down.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chevron-left.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chevron-right.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chevron-up.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chrome-close.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chrome-maximize.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chrome-minimize.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/chrome-restore.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/circle-filled.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/clear-all.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/close.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/cloud.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/collapse-all.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-all.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-alt-2.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-alt-small.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-alt.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-conditional.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-data-unverified.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-data.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-function-unverified.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-function.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-log-unverified.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-log.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-breakpoint-unsupported.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-console.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-continue-small.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-continue.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-coverage.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-disconnect.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-line-by-line.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-pause.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-rerun.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-restart-frame.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-restart.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-reverse-continue.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-stackframe-active.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-stackframe.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-start.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-step-back.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-step-into.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-step-out.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-step-over.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug-stop.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/debug.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/discard.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/edit.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/ellipsis.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/error.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/exclude.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/extensionDefaultIcon.png +0 -0
- /package/static/{e30ed59 → 101c327}/icons/extensions.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/files.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/filter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/go-to-file.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/icon-close.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/icon-source-control.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/icon-sync.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/icon.png +0 -0
- /package/static/{e30ed59 → 101c327}/icons/icon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/info.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/language-icon.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/link-external.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/list-flat.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/list-tree.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/new-file.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/new-folder.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/newline.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/open-preview.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/play.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/preserve-case.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/progress.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/pwa-icon-192.png +0 -0
- /package/static/{e30ed59 → 101c327}/icons/pwa-icon-512.png +0 -0
- /package/static/{e30ed59 → 101c327}/icons/record-keys.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/refresh.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/regex.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/remove.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/replace-all.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/replace.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/repo.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/run-all.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/search.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/send.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/settings-gear.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/sort-precedence.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/source-control.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/split-horizontal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/squiggly-error.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/squiggly-warning.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-array.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-boolean.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-class.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-color.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-constant.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-enum-member.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-enum.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-event.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-field.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-file.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-interface.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-key.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-keyword.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-method.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-misc.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-namespace.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-numeric.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-operator.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-parameter.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-property.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-ruler.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-snippet.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-string.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-structure.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/symbol-variable.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/tag.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/terminal-bash.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/terminal.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/theme-icon.png +0 -0
- /package/static/{e30ed59 → 101c327}/icons/trash.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/triangle-down.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/triangle-left.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/triangle-right.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/triangle-up.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/warning.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/whole-word.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/zoom-in.svg +0 -0
- /package/static/{e30ed59 → 101c327}/icons/zoom-out.svg +0 -0
- /package/static/{e30ed59 → 101c327}/js/babel-parser.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/ky.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/lvce-editor-import-script.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/lvce-editor-ipc.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/lvce-editor-json-rpc.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/lvce-editor-rpc.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/lvce-editor-verror.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/p-min-delay.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/pretty-bytes.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/preview-injected.js +0 -0
- /package/static/{e30ed59 → 101c327}/js/yoctodelay.js +0 -0
- /package/static/{e30ed59 → 101c327}/lib-css/termterm.css +0 -0
- /package/static/{e30ed59 → 101c327}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/chat-coordinator-worker/dist/chatCoordinatorWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/chat-debug-view/dist/chatDebugViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/chat-math-worker/dist/chatMathWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/chat-network-worker/dist/chatNetworkWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/chat-storage-worker/dist/chatStorageWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/chat-tool-worker/dist/chatToolWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/error-worker/dist/errorWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/preload/dist/index.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/renderer-process/LICENSE +0 -0
- /package/static/{e30ed59 → 101c327}/packages/renderer-process/README.md +0 -0
- /package/static/{e30ed59 → 101c327}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/test-worker/dist/testWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/packages/update-worker/dist/updateWorkerMain.js +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.cpp +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.css +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.csv +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.dart +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.env +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.ex +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.html +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.java +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.jl +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.js +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.json +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.kt +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.pl +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.py +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/index.ts +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/scrolling.txt +0 -0
- /package/static/{e30ed59 → 101c327}/playground/languages/tsconfig.json +0 -0
- /package/static/{e30ed59 → 101c327}/playground/sample-folder/a.txt +0 -0
- /package/static/{e30ed59 → 101c327}/playground/sample-folder/b.txt +0 -0
- /package/static/{e30ed59 → 101c327}/playground/sample-folder/c.txt +0 -0
|
@@ -1198,6 +1198,7 @@ const Reference = 100;
|
|
|
1198
1198
|
|
|
1199
1199
|
const ClientX = 'event.clientX';
|
|
1200
1200
|
const ClientY = 'event.clientY';
|
|
1201
|
+
const DataTransferFiles2 = 'event.dataTransfer.files2';
|
|
1201
1202
|
const DefaultPrevented = 'event.defaultPrevented';
|
|
1202
1203
|
const Key = 'event.key';
|
|
1203
1204
|
const ShiftKey = 'event.shiftKey';
|
|
@@ -1212,7 +1213,10 @@ const End = 255;
|
|
|
1212
1213
|
const Home = 12;
|
|
1213
1214
|
const UpArrow = 14;
|
|
1214
1215
|
const DownArrow = 16;
|
|
1216
|
+
const KeyN = 42;
|
|
1217
|
+
const KeyV = 50;
|
|
1215
1218
|
|
|
1219
|
+
const CtrlCmd = 1 << 11 >>> 0;
|
|
1216
1220
|
const Shift = 1 << 10 >>> 0;
|
|
1217
1221
|
|
|
1218
1222
|
const Chat$2 = 97;
|
|
@@ -1307,6 +1311,10 @@ const showContextMenu2 = async (uid, menuId, x, y, args) => {
|
|
|
1307
1311
|
number(y);
|
|
1308
1312
|
await invoke('ContextMenu.show2', uid, menuId, x, y, args);
|
|
1309
1313
|
};
|
|
1314
|
+
const getFileHandles = async fileIds => {
|
|
1315
|
+
const files = await invoke('FileSystemHandle.getFileHandles', fileIds);
|
|
1316
|
+
return files;
|
|
1317
|
+
};
|
|
1310
1318
|
const sendMessagePortToClipBoardWorker$1 = async (port, rpcId) => {
|
|
1311
1319
|
const command = 'ClipBoard.handleMessagePort';
|
|
1312
1320
|
await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToClipBoardWorker', port, command, rpcId);
|
|
@@ -1485,15 +1493,68 @@ const terminate = () => {
|
|
|
1485
1493
|
globalThis.close();
|
|
1486
1494
|
};
|
|
1487
1495
|
|
|
1496
|
+
const getComposerWidth = width => {
|
|
1497
|
+
return Math.max(1, width - 32);
|
|
1498
|
+
};
|
|
1499
|
+
|
|
1500
|
+
const composerAttachmentGap = 8;
|
|
1501
|
+
const composerAttachmentMarginBottom = 8;
|
|
1502
|
+
const composerAttachmentFontSize = 12;
|
|
1503
|
+
const composerAttachmentHorizontalPadding = 20;
|
|
1504
|
+
const composerAttachmentBorderWidth = 2;
|
|
1505
|
+
const composerAttachmentHeight = 26;
|
|
1506
|
+
const averageCharacterWidth = composerAttachmentFontSize * 0.6;
|
|
1507
|
+
const fallbackComposerWidth = 480;
|
|
1508
|
+
const getComposerAttachmentLabel$1 = displayType => {
|
|
1509
|
+
switch (displayType) {
|
|
1510
|
+
case 'file':
|
|
1511
|
+
return 'File';
|
|
1512
|
+
case 'image':
|
|
1513
|
+
return 'Image';
|
|
1514
|
+
case 'invalid-image':
|
|
1515
|
+
return 'Invalid image';
|
|
1516
|
+
case 'text-file':
|
|
1517
|
+
return 'Text file';
|
|
1518
|
+
default:
|
|
1519
|
+
return displayType;
|
|
1520
|
+
}
|
|
1521
|
+
};
|
|
1522
|
+
const getAttachmentContainerWidth = width => {
|
|
1523
|
+
if (width <= 0) {
|
|
1524
|
+
return fallbackComposerWidth;
|
|
1525
|
+
}
|
|
1526
|
+
return Math.max(1, getComposerWidth(width));
|
|
1527
|
+
};
|
|
1528
|
+
const getComposerAttachmentWidth = (attachment, containerWidth) => {
|
|
1529
|
+
const label = `${getComposerAttachmentLabel$1(attachment.displayType)} · ${attachment.name}`;
|
|
1530
|
+
const estimatedWidth = Math.ceil(label.length * averageCharacterWidth) + composerAttachmentHorizontalPadding + composerAttachmentBorderWidth;
|
|
1531
|
+
return Math.min(containerWidth, estimatedWidth);
|
|
1532
|
+
};
|
|
1533
|
+
const getComposerAttachmentsHeight = (composerAttachments, width) => {
|
|
1534
|
+
if (composerAttachments.length === 0) {
|
|
1535
|
+
return 0;
|
|
1536
|
+
}
|
|
1537
|
+
const containerWidth = getAttachmentContainerWidth(width);
|
|
1538
|
+
let currentRowWidth = 0;
|
|
1539
|
+
let rowCount = 1;
|
|
1540
|
+
for (const attachment of composerAttachments) {
|
|
1541
|
+
const attachmentWidth = getComposerAttachmentWidth(attachment, containerWidth);
|
|
1542
|
+
const nextRowWidth = currentRowWidth === 0 ? attachmentWidth : currentRowWidth + composerAttachmentGap + attachmentWidth;
|
|
1543
|
+
if (currentRowWidth > 0 && nextRowWidth > containerWidth) {
|
|
1544
|
+
rowCount++;
|
|
1545
|
+
currentRowWidth = attachmentWidth;
|
|
1546
|
+
} else {
|
|
1547
|
+
currentRowWidth = nextRowWidth;
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
return rowCount * composerAttachmentHeight + (rowCount - 1) * composerAttachmentGap + composerAttachmentMarginBottom;
|
|
1551
|
+
};
|
|
1552
|
+
|
|
1488
1553
|
const estimateComposerHeight = (value, lineHeight) => {
|
|
1489
1554
|
const lineCount = value.split('\n').length;
|
|
1490
1555
|
return lineCount * lineHeight + 8;
|
|
1491
1556
|
};
|
|
1492
1557
|
|
|
1493
|
-
const getComposerWidth = width => {
|
|
1494
|
-
return Math.max(1, width - 32);
|
|
1495
|
-
};
|
|
1496
|
-
|
|
1497
1558
|
const getMaxComposerHeight = (lineHeight, maxComposerRows) => {
|
|
1498
1559
|
return lineHeight * Math.max(1, maxComposerRows) + 8;
|
|
1499
1560
|
};
|
|
@@ -1552,10 +1613,12 @@ const getNextChatHistoryState = async (state, direction) => {
|
|
|
1552
1613
|
const nextDraft = state.chatInputHistoryIndex === -1 ? state.composerValue : state.chatInputHistoryDraft;
|
|
1553
1614
|
const nextComposerValue = getHistoryValueForIndex(state.chatInputHistory, nextIndex);
|
|
1554
1615
|
const composerHeight = await getComposerHeight(state, nextComposerValue);
|
|
1616
|
+
const composerAttachmentsHeight = getComposerAttachmentsHeight(state.composerAttachments, state.width);
|
|
1555
1617
|
return {
|
|
1556
1618
|
...state,
|
|
1557
1619
|
chatInputHistoryDraft: nextDraft,
|
|
1558
1620
|
chatInputHistoryIndex: nextIndex,
|
|
1621
|
+
composerAttachmentsHeight,
|
|
1559
1622
|
composerHeight,
|
|
1560
1623
|
composerSelectionEnd: nextComposerValue.length,
|
|
1561
1624
|
composerSelectionStart: nextComposerValue.length,
|
|
@@ -1569,9 +1632,11 @@ const getNextChatHistoryState = async (state, direction) => {
|
|
|
1569
1632
|
const nextIndex = state.chatInputHistoryIndex - 1;
|
|
1570
1633
|
if (nextIndex === -1) {
|
|
1571
1634
|
const composerHeight = await getComposerHeight(state, state.chatInputHistoryDraft);
|
|
1635
|
+
const composerAttachmentsHeight = getComposerAttachmentsHeight(state.composerAttachments, state.width);
|
|
1572
1636
|
return {
|
|
1573
1637
|
...state,
|
|
1574
1638
|
chatInputHistoryIndex: -1,
|
|
1639
|
+
composerAttachmentsHeight,
|
|
1575
1640
|
composerHeight,
|
|
1576
1641
|
composerSelectionEnd: state.chatInputHistoryDraft.length,
|
|
1577
1642
|
composerSelectionStart: state.chatInputHistoryDraft.length,
|
|
@@ -1581,9 +1646,11 @@ const getNextChatHistoryState = async (state, direction) => {
|
|
|
1581
1646
|
}
|
|
1582
1647
|
const nextComposerValue = getHistoryValueForIndex(state.chatInputHistory, nextIndex);
|
|
1583
1648
|
const composerHeight = await getComposerHeight(state, nextComposerValue);
|
|
1649
|
+
const composerAttachmentsHeight = getComposerAttachmentsHeight(state.composerAttachments, state.width);
|
|
1584
1650
|
return {
|
|
1585
1651
|
...state,
|
|
1586
1652
|
chatInputHistoryIndex: nextIndex,
|
|
1653
|
+
composerAttachmentsHeight,
|
|
1587
1654
|
composerHeight,
|
|
1588
1655
|
composerSelectionEnd: nextComposerValue.length,
|
|
1589
1656
|
composerSelectionStart: nextComposerValue.length,
|
|
@@ -1783,12 +1850,14 @@ const Debug = 'Debug';
|
|
|
1783
1850
|
const BackToChats = 'Back to chats';
|
|
1784
1851
|
const BackToChatList = 'Back to chat list';
|
|
1785
1852
|
const Search$1 = 'Search';
|
|
1853
|
+
const ScrollDown$1 = 'Scroll down';
|
|
1786
1854
|
const SearchModels = 'Search models';
|
|
1787
1855
|
const SearchChats = 'Search chats';
|
|
1788
1856
|
const Paste = 'Paste';
|
|
1789
1857
|
const Rename = 'Rename';
|
|
1790
1858
|
const Archive = 'Archive';
|
|
1791
1859
|
const AddProjectChat = 'Add Project';
|
|
1860
|
+
const RemoveProject = 'Remove Project';
|
|
1792
1861
|
const Settings$1 = 'Settings';
|
|
1793
1862
|
const LoginToBackend = 'Login to backend';
|
|
1794
1863
|
const LogoutFromBackend = 'Logout from backend';
|
|
@@ -1801,12 +1870,19 @@ const StartConversationByTypingBelow = 'Start a conversation by typing below.';
|
|
|
1801
1870
|
const NoMatchingModelsFound = 'No matching models have been found.';
|
|
1802
1871
|
const ComposePlaceholder = 'Type your message. Enter to send.';
|
|
1803
1872
|
const AttachImageAsContext = 'Attach Image as Context';
|
|
1804
|
-
const
|
|
1873
|
+
const OpenImageInNewTab = 'Open image in new tab';
|
|
1874
|
+
const RemoveAttachment = 'Remove attachment';
|
|
1875
|
+
const ImageCouldNotBeLoaded = 'Image preview could not be loaded';
|
|
1805
1876
|
const OpenRouterApiKeyPlaceholder = 'Enter OpenRouter API key';
|
|
1806
1877
|
const OpenApiApiKeyPlaceholder = 'Enter OpenAI API key';
|
|
1807
1878
|
const SendMessage = 'Send message';
|
|
1808
1879
|
const StartVoiceDictation = 'Start voice dictation';
|
|
1809
1880
|
const AddContext$1 = 'Add Context';
|
|
1881
|
+
const AddAction = 'Add Action';
|
|
1882
|
+
const OpenInVsCode = 'Open in VSCode';
|
|
1883
|
+
const Commit = 'Commit';
|
|
1884
|
+
const OpenTerminal = 'Open Terminal';
|
|
1885
|
+
const ShowDiff = 'Show Diff';
|
|
1810
1886
|
const CreatePullRequest$2 = 'Create PR';
|
|
1811
1887
|
const Save = 'Save';
|
|
1812
1888
|
const Saving = 'Saving...';
|
|
@@ -1841,6 +1917,9 @@ const newChat = () => {
|
|
|
1841
1917
|
const addProject = () => {
|
|
1842
1918
|
return i18nString(AddProjectChat);
|
|
1843
1919
|
};
|
|
1920
|
+
const removeProject = () => {
|
|
1921
|
+
return i18nString(RemoveProject);
|
|
1922
|
+
};
|
|
1844
1923
|
const debug = () => {
|
|
1845
1924
|
return i18nString(Debug);
|
|
1846
1925
|
};
|
|
@@ -1856,6 +1935,9 @@ const settings = () => {
|
|
|
1856
1935
|
const search = () => {
|
|
1857
1936
|
return i18nString(Search$1);
|
|
1858
1937
|
};
|
|
1938
|
+
const scrollDown = () => {
|
|
1939
|
+
return i18nString(ScrollDown$1);
|
|
1940
|
+
};
|
|
1859
1941
|
const searchModels = () => {
|
|
1860
1942
|
return i18nString(SearchModels);
|
|
1861
1943
|
};
|
|
@@ -1895,6 +1977,12 @@ const composePlaceholder = () => {
|
|
|
1895
1977
|
const attachImageAsContext = () => {
|
|
1896
1978
|
return i18nString(AttachImageAsContext);
|
|
1897
1979
|
};
|
|
1980
|
+
const openImageInNewTab = () => {
|
|
1981
|
+
return i18nString(OpenImageInNewTab);
|
|
1982
|
+
};
|
|
1983
|
+
const removeAttachment = () => {
|
|
1984
|
+
return i18nString(RemoveAttachment);
|
|
1985
|
+
};
|
|
1898
1986
|
const imageCouldNotBeLoaded = () => {
|
|
1899
1987
|
return i18nString(ImageCouldNotBeLoaded);
|
|
1900
1988
|
};
|
|
@@ -1913,6 +2001,21 @@ const startVoiceDictation = () => {
|
|
|
1913
2001
|
const addContext = () => {
|
|
1914
2002
|
return i18nString(AddContext$1);
|
|
1915
2003
|
};
|
|
2004
|
+
const addAction = () => {
|
|
2005
|
+
return i18nString(AddAction);
|
|
2006
|
+
};
|
|
2007
|
+
const openInVsCode = () => {
|
|
2008
|
+
return i18nString(OpenInVsCode);
|
|
2009
|
+
};
|
|
2010
|
+
const commit = () => {
|
|
2011
|
+
return i18nString(Commit);
|
|
2012
|
+
};
|
|
2013
|
+
const openTerminal = () => {
|
|
2014
|
+
return i18nString(OpenTerminal);
|
|
2015
|
+
};
|
|
2016
|
+
const showDiff = () => {
|
|
2017
|
+
return i18nString(ShowDiff);
|
|
2018
|
+
};
|
|
1916
2019
|
const createPullRequest = () => {
|
|
1917
2020
|
return i18nString(CreatePullRequest$2);
|
|
1918
2021
|
};
|
|
@@ -1971,29 +2074,35 @@ const getDefaultModelsOpenAi = () => {
|
|
|
1971
2074
|
id: 'openapi/codex-5.3',
|
|
1972
2075
|
name: 'Codex 5.3',
|
|
1973
2076
|
provider: 'openApi',
|
|
2077
|
+
supportsReasoningEffort: true,
|
|
1974
2078
|
usageCost: 1
|
|
1975
2079
|
}, {
|
|
1976
2080
|
id: 'openapi/gpt-5.4-mini',
|
|
1977
2081
|
name: 'GPT-5.4 Mini',
|
|
1978
|
-
provider: 'openApi'
|
|
2082
|
+
provider: 'openApi',
|
|
2083
|
+
supportsReasoningEffort: true
|
|
1979
2084
|
}, {
|
|
1980
2085
|
id: 'openapi/gpt-5-mini',
|
|
1981
2086
|
name: 'GPT-5 Mini',
|
|
1982
|
-
provider: 'openApi'
|
|
2087
|
+
provider: 'openApi',
|
|
2088
|
+
supportsReasoningEffort: true
|
|
1983
2089
|
}, {
|
|
1984
2090
|
id: 'openapi/gpt-4o-mini',
|
|
1985
2091
|
name: 'GPT-4o Mini',
|
|
1986
2092
|
provider: 'openApi',
|
|
2093
|
+
supportsImages: true,
|
|
1987
2094
|
usageCost: 1
|
|
1988
2095
|
}, {
|
|
1989
2096
|
id: 'openapi/gpt-4o',
|
|
1990
2097
|
name: 'GPT-4o',
|
|
1991
2098
|
provider: 'openApi',
|
|
2099
|
+
supportsImages: true,
|
|
1992
2100
|
usageCost: 3
|
|
1993
2101
|
}, {
|
|
1994
2102
|
id: 'openapi/gpt-4.1-mini',
|
|
1995
2103
|
name: 'GPT-4.1 Mini',
|
|
1996
2104
|
provider: 'openApi',
|
|
2105
|
+
supportsImages: true,
|
|
1997
2106
|
usageCost: 1
|
|
1998
2107
|
}];
|
|
1999
2108
|
};
|
|
@@ -2101,6 +2210,22 @@ const getModelPickerHeight = (modelPickerHeaderHeight, itemCount) => {
|
|
|
2101
2210
|
return Math.min(240, modelPickerHeaderHeight + effectiveItemCount * modelPickerItemHeight);
|
|
2102
2211
|
};
|
|
2103
2212
|
|
|
2213
|
+
const minimumWidthForRunModePicker = 520;
|
|
2214
|
+
const minimumWidthForAgentModePicker = 640;
|
|
2215
|
+
const fullyVisibleResponsivePickerState = {
|
|
2216
|
+
hasSpaceForAgentModePicker: true,
|
|
2217
|
+
hasSpaceForRunModePicker: true
|
|
2218
|
+
};
|
|
2219
|
+
const getResponsivePickerState = (width, responsivePickerVisibilityEnabled) => {
|
|
2220
|
+
if (!responsivePickerVisibilityEnabled) {
|
|
2221
|
+
return fullyVisibleResponsivePickerState;
|
|
2222
|
+
}
|
|
2223
|
+
return {
|
|
2224
|
+
hasSpaceForAgentModePicker: width >= minimumWidthForAgentModePicker,
|
|
2225
|
+
hasSpaceForRunModePicker: width >= minimumWidthForRunModePicker
|
|
2226
|
+
};
|
|
2227
|
+
};
|
|
2228
|
+
|
|
2104
2229
|
const getModelLabel = model => {
|
|
2105
2230
|
if (model.provider === 'openRouter') {
|
|
2106
2231
|
return `${model.name} (OpenRouter)`;
|
|
@@ -2186,8 +2311,10 @@ const createDefaultState = () => {
|
|
|
2186
2311
|
const chatMessageLineHeight = 20;
|
|
2187
2312
|
const composerFontSize = 13;
|
|
2188
2313
|
const composerLineHeight = 20;
|
|
2314
|
+
const responsivePickerVisibilityEnabled = false;
|
|
2189
2315
|
const models = getDefaultModels();
|
|
2190
2316
|
const visibleModels = getVisibleModels(models, '');
|
|
2317
|
+
const responsivePickerState = getResponsivePickerState(800, responsivePickerVisibilityEnabled);
|
|
2191
2318
|
return {
|
|
2192
2319
|
addContextButtonEnabled: false,
|
|
2193
2320
|
agentMode: defaultAgentMode,
|
|
@@ -2213,7 +2340,10 @@ const createDefaultState = () => {
|
|
|
2213
2340
|
chatSendAreaPaddingLeft: 8,
|
|
2214
2341
|
chatSendAreaPaddingRight: 8,
|
|
2215
2342
|
chatSendAreaPaddingTop: 10,
|
|
2343
|
+
composerAttachmentPreviewOverlayAttachmentId: '',
|
|
2344
|
+
composerAttachmentPreviewOverlayError: false,
|
|
2216
2345
|
composerAttachments: [],
|
|
2346
|
+
composerAttachmentsHeight: 0,
|
|
2217
2347
|
composerDropActive: false,
|
|
2218
2348
|
composerDropEnabled: true,
|
|
2219
2349
|
composerFontFamily: 'system-ui',
|
|
@@ -2229,6 +2359,7 @@ const createDefaultState = () => {
|
|
|
2229
2359
|
focused: false,
|
|
2230
2360
|
headerHeight: 50,
|
|
2231
2361
|
height: 0,
|
|
2362
|
+
...responsivePickerState,
|
|
2232
2363
|
initial: true,
|
|
2233
2364
|
inputSource: 'script',
|
|
2234
2365
|
lastNormalViewMode: 'list',
|
|
@@ -2241,12 +2372,14 @@ const createDefaultState = () => {
|
|
|
2241
2372
|
messagesScrollTop: 0,
|
|
2242
2373
|
mockAiResponseDelay: 800,
|
|
2243
2374
|
mockApiCommandId: '',
|
|
2375
|
+
mockOpenApiRequests: [],
|
|
2244
2376
|
modelPickerHeaderHeight,
|
|
2245
2377
|
modelPickerHeight: getModelPickerHeight(modelPickerHeaderHeight, visibleModels.length),
|
|
2246
2378
|
modelPickerListScrollTop: 0,
|
|
2247
2379
|
modelPickerOpen: false,
|
|
2248
2380
|
modelPickerSearchValue: '',
|
|
2249
2381
|
models,
|
|
2382
|
+
nextAttachmentId: 1,
|
|
2250
2383
|
nextMessageId: 1,
|
|
2251
2384
|
openApiApiBaseUrl: 'https://api.openai.com/v1',
|
|
2252
2385
|
openApiApiKey: '',
|
|
@@ -2274,8 +2407,10 @@ const createDefaultState = () => {
|
|
|
2274
2407
|
reasoningEffortPickerOpen: false,
|
|
2275
2408
|
reasoningPickerEnabled: false,
|
|
2276
2409
|
renamingSessionId: '',
|
|
2410
|
+
responsivePickerVisibilityEnabled,
|
|
2277
2411
|
runMode: 'local',
|
|
2278
2412
|
runModePickerOpen: false,
|
|
2413
|
+
scrollDownButtonEnabled: false,
|
|
2279
2414
|
searchEnabled: false,
|
|
2280
2415
|
searchFieldVisible: false,
|
|
2281
2416
|
searchValue: '',
|
|
@@ -2428,6 +2563,7 @@ const clearChatSessions = async () => {
|
|
|
2428
2563
|
await clear();
|
|
2429
2564
|
};
|
|
2430
2565
|
const appendChatViewEvent = async event => {
|
|
2566
|
+
// The local chat-view event union may temporarily grow ahead of the shared rpc-registry typings.
|
|
2431
2567
|
await appendEvent(event);
|
|
2432
2568
|
};
|
|
2433
2569
|
const getChatViewEvents = async sessionId => {
|
|
@@ -2484,28 +2620,72 @@ const getComposerAttachmentDisplayType = async (blob, name, mimeType) => {
|
|
|
2484
2620
|
return 'file';
|
|
2485
2621
|
};
|
|
2486
2622
|
|
|
2623
|
+
const chunkSize = 0x80_00;
|
|
2624
|
+
const getBlobBase64 = async blob => {
|
|
2625
|
+
const bytes = new Uint8Array(await blob.arrayBuffer());
|
|
2626
|
+
if (typeof Buffer !== 'undefined') {
|
|
2627
|
+
return Buffer.from(bytes).toString('base64');
|
|
2628
|
+
}
|
|
2629
|
+
let binary = '';
|
|
2630
|
+
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
2631
|
+
binary += String.fromCodePoint(...bytes.subarray(i, i + chunkSize));
|
|
2632
|
+
}
|
|
2633
|
+
return btoa(binary);
|
|
2634
|
+
};
|
|
2635
|
+
|
|
2636
|
+
const getComposerAttachmentPreviewSrc = async (blob, displayType, mimeType) => {
|
|
2637
|
+
if (displayType !== 'image') {
|
|
2638
|
+
return undefined;
|
|
2639
|
+
}
|
|
2640
|
+
const base64 = await getBlobBase64(blob);
|
|
2641
|
+
return `data:${mimeType || 'application/octet-stream'};base64,${base64}`;
|
|
2642
|
+
};
|
|
2643
|
+
|
|
2644
|
+
const getComposerAttachmentTextContent = async (blob, displayType) => {
|
|
2645
|
+
if (displayType !== 'text-file') {
|
|
2646
|
+
return undefined;
|
|
2647
|
+
}
|
|
2648
|
+
return blob.text();
|
|
2649
|
+
};
|
|
2650
|
+
|
|
2487
2651
|
const isChatAttachmentAddedEvent = event => {
|
|
2488
2652
|
return event.type === 'chat-attachment-added';
|
|
2489
2653
|
};
|
|
2654
|
+
const isChatAttachmentRemovedEvent = event => {
|
|
2655
|
+
return event.type === 'chat-attachment-removed';
|
|
2656
|
+
};
|
|
2490
2657
|
const getComposerAttachments = async sessionId => {
|
|
2491
2658
|
if (!sessionId) {
|
|
2492
2659
|
return [];
|
|
2493
2660
|
}
|
|
2494
2661
|
const events = await getChatViewEvents(sessionId);
|
|
2495
|
-
const attachments =
|
|
2662
|
+
const attachments = new Map();
|
|
2496
2663
|
for (const event of events) {
|
|
2664
|
+
if (isChatAttachmentRemovedEvent(event)) {
|
|
2665
|
+
attachments.delete(event.attachmentId);
|
|
2666
|
+
continue;
|
|
2667
|
+
}
|
|
2497
2668
|
if (!isChatAttachmentAddedEvent(event)) {
|
|
2498
2669
|
continue;
|
|
2499
2670
|
}
|
|
2500
|
-
|
|
2671
|
+
const displayType = await getComposerAttachmentDisplayType(event.blob, event.name, event.mimeType);
|
|
2672
|
+
const previewSrc = await getComposerAttachmentPreviewSrc(event.blob, displayType, event.mimeType);
|
|
2673
|
+
const textContent = await getComposerAttachmentTextContent(event.blob, displayType);
|
|
2674
|
+
attachments.set(event.attachmentId, {
|
|
2501
2675
|
attachmentId: event.attachmentId,
|
|
2502
|
-
displayType
|
|
2676
|
+
displayType,
|
|
2503
2677
|
mimeType: event.mimeType,
|
|
2504
2678
|
name: event.name,
|
|
2505
|
-
|
|
2679
|
+
...(previewSrc ? {
|
|
2680
|
+
previewSrc
|
|
2681
|
+
} : {}),
|
|
2682
|
+
size: event.size,
|
|
2683
|
+
...(typeof textContent === 'string' ? {
|
|
2684
|
+
textContent
|
|
2685
|
+
} : {})
|
|
2506
2686
|
});
|
|
2507
2687
|
}
|
|
2508
|
-
return attachments;
|
|
2688
|
+
return [...attachments.values()];
|
|
2509
2689
|
};
|
|
2510
2690
|
|
|
2511
2691
|
const getNextSelectedSessionId = (sessions, deletedId) => {
|
|
@@ -2523,7 +2703,8 @@ const getNextSelectedSessionId = (sessions, deletedId) => {
|
|
|
2523
2703
|
const deleteSession = async (state, id) => {
|
|
2524
2704
|
const {
|
|
2525
2705
|
renamingSessionId,
|
|
2526
|
-
sessions
|
|
2706
|
+
sessions,
|
|
2707
|
+
width
|
|
2527
2708
|
} = state;
|
|
2528
2709
|
const filtered = sessions.filter(session => session.id !== id);
|
|
2529
2710
|
if (filtered.length === sessions.length) {
|
|
@@ -2534,6 +2715,7 @@ const deleteSession = async (state, id) => {
|
|
|
2534
2715
|
return {
|
|
2535
2716
|
...state,
|
|
2536
2717
|
composerAttachments: [],
|
|
2718
|
+
composerAttachmentsHeight: 0,
|
|
2537
2719
|
renamingSessionId: '',
|
|
2538
2720
|
selectedSessionId: '',
|
|
2539
2721
|
sessions: [],
|
|
@@ -2555,6 +2737,7 @@ const deleteSession = async (state, id) => {
|
|
|
2555
2737
|
return {
|
|
2556
2738
|
...state,
|
|
2557
2739
|
composerAttachments,
|
|
2740
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, width),
|
|
2558
2741
|
renamingSessionId: renamingSessionId === id ? '' : renamingSessionId,
|
|
2559
2742
|
selectedSessionId: nextSelectedSessionId,
|
|
2560
2743
|
sessions: hydratedSessions
|
|
@@ -2619,7 +2802,7 @@ const getRenderHtmlCss = (sessions, selectedSessionId) => {
|
|
|
2619
2802
|
const isEqual$1 = (oldState, newState) => {
|
|
2620
2803
|
const oldRenderHtmlCss = getRenderHtmlCss(oldState.sessions, oldState.selectedSessionId);
|
|
2621
2804
|
const newRenderHtmlCss = getRenderHtmlCss(newState.sessions, newState.selectedSessionId);
|
|
2622
|
-
return oldState.initial === newState.initial && oldState.chatMessageFontFamily === newState.chatMessageFontFamily && oldState.chatMessageFontSize === newState.chatMessageFontSize && oldState.chatMessageLineHeight === newState.chatMessageLineHeight && oldState.chatFocusContentMaxWidth === newState.chatFocusContentMaxWidth && oldState.chatSendAreaPaddingTop === newState.chatSendAreaPaddingTop && oldState.chatSendAreaPaddingLeft === newState.chatSendAreaPaddingLeft && oldState.chatSendAreaPaddingRight === newState.chatSendAreaPaddingRight && oldState.chatSendAreaPaddingBottom === newState.chatSendAreaPaddingBottom && oldState.composerHeight === newState.composerHeight && oldState.modelPickerHeight === newState.modelPickerHeight && oldState.composerLineHeight === newState.composerLineHeight && oldState.composerFontFamily === newState.composerFontFamily && oldState.composerFontSize === newState.composerFontSize && oldState.listItemHeight === newState.listItemHeight && oldState.textAreaPaddingTop === newState.textAreaPaddingTop && oldState.textAreaPaddingLeft === newState.textAreaPaddingLeft && oldState.textAreaPaddingRight === newState.textAreaPaddingRight && oldState.textAreaPaddingBottom === newState.textAreaPaddingBottom && oldRenderHtmlCss === newRenderHtmlCss;
|
|
2805
|
+
return oldState.initial === newState.initial && oldState.chatMessageFontFamily === newState.chatMessageFontFamily && oldState.chatMessageFontSize === newState.chatMessageFontSize && oldState.chatMessageLineHeight === newState.chatMessageLineHeight && oldState.chatFocusContentMaxWidth === newState.chatFocusContentMaxWidth && oldState.chatSendAreaPaddingTop === newState.chatSendAreaPaddingTop && oldState.chatSendAreaPaddingLeft === newState.chatSendAreaPaddingLeft && oldState.chatSendAreaPaddingRight === newState.chatSendAreaPaddingRight && oldState.chatSendAreaPaddingBottom === newState.chatSendAreaPaddingBottom && oldState.composerHeight === newState.composerHeight && oldState.composerAttachmentsHeight === newState.composerAttachmentsHeight && oldState.modelPickerHeight === newState.modelPickerHeight && oldState.composerLineHeight === newState.composerLineHeight && oldState.composerFontFamily === newState.composerFontFamily && oldState.composerFontSize === newState.composerFontSize && oldState.listItemHeight === newState.listItemHeight && oldState.textAreaPaddingTop === newState.textAreaPaddingTop && oldState.textAreaPaddingLeft === newState.textAreaPaddingLeft && oldState.textAreaPaddingRight === newState.textAreaPaddingRight && oldState.textAreaPaddingBottom === newState.textAreaPaddingBottom && oldRenderHtmlCss === newRenderHtmlCss;
|
|
2623
2806
|
};
|
|
2624
2807
|
|
|
2625
2808
|
const diffFocus = (oldState, newState) => {
|
|
@@ -2640,7 +2823,7 @@ const isEqualComposerAttachments = (a, b) => {
|
|
|
2640
2823
|
return false;
|
|
2641
2824
|
}
|
|
2642
2825
|
for (let i = 0; i < a.length; i++) {
|
|
2643
|
-
if (a[i].attachmentId !== b[i].attachmentId || a[i].displayType !== b[i].displayType || a[i].mimeType !== b[i].mimeType || a[i].name !== b[i].name || a[i].size !== b[i].size) {
|
|
2826
|
+
if (a[i].attachmentId !== b[i].attachmentId || a[i].displayType !== b[i].displayType || a[i].mimeType !== b[i].mimeType || a[i].name !== b[i].name || a[i].previewSrc !== b[i].previewSrc || a[i].size !== b[i].size) {
|
|
2644
2827
|
return false;
|
|
2645
2828
|
}
|
|
2646
2829
|
}
|
|
@@ -2673,7 +2856,7 @@ const isEqualVisibleModels = (a, b) => {
|
|
|
2673
2856
|
};
|
|
2674
2857
|
|
|
2675
2858
|
const isEqual = (oldState, newState) => {
|
|
2676
|
-
return oldState.addContextButtonEnabled === newState.addContextButtonEnabled && oldState.agentMode === newState.agentMode && oldState.agentModePickerOpen === newState.agentModePickerOpen && oldState.authEnabled === newState.authEnabled && oldState.authErrorMessage === newState.authErrorMessage && oldState.authStatus === newState.authStatus && isEqualComposerAttachments(oldState.composerAttachments, newState.composerAttachments) && oldState.composerDropActive === newState.composerDropActive && oldState.composerDropEnabled === newState.composerDropEnabled && oldState.composerValue === newState.composerValue && oldState.initial === newState.initial && oldState.modelPickerOpen === newState.modelPickerOpen && oldState.modelPickerSearchValue === newState.modelPickerSearchValue && isEqualVisibleModels(oldState.visibleModels, newState.visibleModels) && oldState.listFocusedIndex === newState.listFocusedIndex && isEqualProjectExpandedIds(oldState.projectExpandedIds, newState.projectExpandedIds) && oldState.projectListScrollTop === newState.projectListScrollTop && oldState.reasoningEffort === newState.reasoningEffort && oldState.reasoningEffortPickerOpen === newState.reasoningEffortPickerOpen && oldState.reasoningPickerEnabled === newState.reasoningPickerEnabled && oldState.renamingSessionId === newState.renamingSessionId && oldState.selectedModelId === newState.selectedModelId && oldState.selectedProjectId === newState.selectedProjectId && oldState.selectedSessionId === newState.selectedSessionId && oldState.showRunMode === newState.showRunMode && oldState.runMode === newState.runMode && oldState.runModePickerOpen === newState.runModePickerOpen && oldState.sessions === newState.sessions && oldState.tokensMax === newState.tokensMax && oldState.tokensUsed === newState.tokensUsed && oldState.usageOverviewEnabled === newState.usageOverviewEnabled && oldState.useChatMathWorker === newState.useChatMathWorker && oldState.viewMode === newState.viewMode && oldState.voiceDictationEnabled === newState.voiceDictationEnabled;
|
|
2859
|
+
return oldState.addContextButtonEnabled === newState.addContextButtonEnabled && oldState.agentMode === newState.agentMode && oldState.agentModePickerOpen === newState.agentModePickerOpen && oldState.authEnabled === newState.authEnabled && oldState.authErrorMessage === newState.authErrorMessage && oldState.authStatus === newState.authStatus && isEqualComposerAttachments(oldState.composerAttachments, newState.composerAttachments) && oldState.composerDropActive === newState.composerDropActive && oldState.composerDropEnabled === newState.composerDropEnabled && oldState.composerValue === newState.composerValue && oldState.hasSpaceForAgentModePicker === newState.hasSpaceForAgentModePicker && oldState.hasSpaceForRunModePicker === newState.hasSpaceForRunModePicker && oldState.initial === newState.initial && oldState.modelPickerOpen === newState.modelPickerOpen && oldState.modelPickerSearchValue === newState.modelPickerSearchValue && isEqualVisibleModels(oldState.visibleModels, newState.visibleModels) && oldState.listFocusedIndex === newState.listFocusedIndex && isEqualProjectExpandedIds(oldState.projectExpandedIds, newState.projectExpandedIds) && oldState.projectListScrollTop === newState.projectListScrollTop && oldState.reasoningEffort === newState.reasoningEffort && oldState.reasoningEffortPickerOpen === newState.reasoningEffortPickerOpen && oldState.reasoningPickerEnabled === newState.reasoningPickerEnabled && oldState.renamingSessionId === newState.renamingSessionId && oldState.selectedModelId === newState.selectedModelId && oldState.selectedProjectId === newState.selectedProjectId && oldState.selectedSessionId === newState.selectedSessionId && oldState.showRunMode === newState.showRunMode && oldState.runMode === newState.runMode && oldState.runModePickerOpen === newState.runModePickerOpen && oldState.sessions === newState.sessions && oldState.tokensMax === newState.tokensMax && oldState.tokensUsed === newState.tokensUsed && oldState.usageOverviewEnabled === newState.usageOverviewEnabled && oldState.useChatMathWorker === newState.useChatMathWorker && oldState.viewMode === newState.viewMode && oldState.voiceDictationEnabled === newState.voiceDictationEnabled;
|
|
2677
2860
|
};
|
|
2678
2861
|
|
|
2679
2862
|
const diffScrollTop = (oldState, newState) => {
|
|
@@ -2694,10 +2877,7 @@ const RenderIncremental = 11;
|
|
|
2694
2877
|
const RenderScrollTop = 12;
|
|
2695
2878
|
|
|
2696
2879
|
const diffValue = (oldState, newState) => {
|
|
2697
|
-
|
|
2698
|
-
return true;
|
|
2699
|
-
}
|
|
2700
|
-
return newState.inputSource !== 'script';
|
|
2880
|
+
return oldState.composerValue === newState.composerValue || newState.inputSource !== 'script';
|
|
2701
2881
|
};
|
|
2702
2882
|
|
|
2703
2883
|
const modules = [isEqual, diffValue, diffSelection, diffFocus, isEqual$1, diffFocus, diffScrollTop];
|
|
@@ -2719,8 +2899,7 @@ const diff2 = uid => {
|
|
|
2719
2899
|
newState,
|
|
2720
2900
|
oldState
|
|
2721
2901
|
} = get$1(uid);
|
|
2722
|
-
|
|
2723
|
-
return result;
|
|
2902
|
+
return diff(oldState, newState);
|
|
2724
2903
|
};
|
|
2725
2904
|
|
|
2726
2905
|
const getAuthState = state => {
|
|
@@ -3061,7 +3240,8 @@ const openModelPicker = state => {
|
|
|
3061
3240
|
return {
|
|
3062
3241
|
...state,
|
|
3063
3242
|
agentModePickerOpen: false,
|
|
3064
|
-
focus: 'model-picker-input',
|
|
3243
|
+
focus: modelPickerOpen ? 'model-picker-input' : state.focus,
|
|
3244
|
+
focused: modelPickerOpen ? true : state.focused,
|
|
3065
3245
|
modelPickerHeight: getModelPickerHeight(state.modelPickerHeaderHeight, visibleModels.length),
|
|
3066
3246
|
modelPickerListScrollTop: 0,
|
|
3067
3247
|
modelPickerOpen,
|
|
@@ -3077,6 +3257,10 @@ const getKeyBindings = () => {
|
|
|
3077
3257
|
command: 'Chat.chatInputHistoryDown',
|
|
3078
3258
|
key: DownArrow,
|
|
3079
3259
|
when: FocusChatInput
|
|
3260
|
+
}, {
|
|
3261
|
+
command: 'Chat.pasteInput',
|
|
3262
|
+
key: CtrlCmd | KeyV,
|
|
3263
|
+
when: FocusChatInput
|
|
3080
3264
|
}, {
|
|
3081
3265
|
command: 'Chat.chatInputHistoryUp',
|
|
3082
3266
|
key: UpArrow,
|
|
@@ -3097,6 +3281,10 @@ const getKeyBindings = () => {
|
|
|
3097
3281
|
command: 'Chat.chatListFocusPrevious',
|
|
3098
3282
|
key: UpArrow,
|
|
3099
3283
|
when: FocusChatList
|
|
3284
|
+
}, {
|
|
3285
|
+
command: 'Chat.handleClickNew',
|
|
3286
|
+
key: CtrlCmd | KeyN,
|
|
3287
|
+
when: FocusChatInput
|
|
3100
3288
|
}, {
|
|
3101
3289
|
command: 'Chat.handleSubmit',
|
|
3102
3290
|
key: Enter,
|
|
@@ -3116,6 +3304,24 @@ const getKeyBindings = () => {
|
|
|
3116
3304
|
}];
|
|
3117
3305
|
};
|
|
3118
3306
|
|
|
3307
|
+
const getMenuEntriesChatAttachment = (attachmentId, previewSrc) => {
|
|
3308
|
+
return [{
|
|
3309
|
+
args: [previewSrc],
|
|
3310
|
+
command: 'Chat.openChatAttachmentInNewTab',
|
|
3311
|
+
flags: None,
|
|
3312
|
+
id: 'openImageInNewTab',
|
|
3313
|
+
// @ts-ignore
|
|
3314
|
+
label: openImageInNewTab()
|
|
3315
|
+
}, {
|
|
3316
|
+
args: [attachmentId],
|
|
3317
|
+
command: 'Chat.removeComposerAttachment',
|
|
3318
|
+
flags: None,
|
|
3319
|
+
id: 'removeAttachment',
|
|
3320
|
+
// @ts-ignore
|
|
3321
|
+
label: removeAttachment()
|
|
3322
|
+
}];
|
|
3323
|
+
};
|
|
3324
|
+
|
|
3119
3325
|
const getMenuEntriesChatHeader = () => {
|
|
3120
3326
|
// TODO
|
|
3121
3327
|
return [{
|
|
@@ -3175,14 +3381,24 @@ const Composer = 'composer';
|
|
|
3175
3381
|
const Search = 'search';
|
|
3176
3382
|
const ComposerDropTarget = 'composer-drop-target';
|
|
3177
3383
|
const ComposerAttachmentPrefix = 'composer-attachment:';
|
|
3384
|
+
const ComposerAttachmentPreviewPrefix = 'composer-attachment-preview:';
|
|
3385
|
+
const ComposerAttachmentRemovePrefix = 'composer-attachment-remove:';
|
|
3386
|
+
const ComposerAttachmentPreviewOverlay = 'composer-attachment-preview-overlay';
|
|
3178
3387
|
const AddContext = 'add-context';
|
|
3179
3388
|
const Dictate = 'dictate';
|
|
3180
3389
|
const CreatePullRequest$1 = 'create-pull-request';
|
|
3390
|
+
const FocusAddAction = 'focus-add-action';
|
|
3391
|
+
const FocusOpenInVsCode = 'focus-open-in-vscode';
|
|
3392
|
+
const FocusCommit = 'focus-commit';
|
|
3393
|
+
const FocusOpenTerminal = 'focus-open-terminal';
|
|
3394
|
+
const FocusShowDiff = 'focus-show-diff';
|
|
3181
3395
|
const Send = 'send';
|
|
3396
|
+
const ScrollDown = 'scroll-down';
|
|
3182
3397
|
const Back = 'back';
|
|
3183
3398
|
const ModelPickerToggle = 'model-picker-toggle';
|
|
3184
3399
|
const ModelPickerSearch = 'model-picker-search';
|
|
3185
3400
|
const ModelPickerList = 'model-picker-list';
|
|
3401
|
+
const PickerList = 'picker-list';
|
|
3186
3402
|
const AgentModePickerToggle = 'agent-mode-picker-toggle';
|
|
3187
3403
|
const AgentModePickerItemPrefix = 'agent-mode-picker-item:';
|
|
3188
3404
|
const ReasoningEffortPickerToggle = 'reasoning-effort-picker-toggle';
|
|
@@ -3201,6 +3417,7 @@ const Login = 'login';
|
|
|
3201
3417
|
const Logout = 'logout';
|
|
3202
3418
|
const CloseChat = 'close-chat';
|
|
3203
3419
|
const SessionDelete = 'SessionDelete';
|
|
3420
|
+
const ProjectDelete = 'ProjectDelete';
|
|
3204
3421
|
const ProjectPrefix = 'project:';
|
|
3205
3422
|
const SessionPrefix = 'session:';
|
|
3206
3423
|
const RenamePrefix = 'session-rename:';
|
|
@@ -3244,6 +3461,30 @@ const getModelPickerItemInputName = modelId => {
|
|
|
3244
3461
|
const getComposerAttachmentInputName = attachmentId => {
|
|
3245
3462
|
return `${ComposerAttachmentPrefix}${attachmentId}`;
|
|
3246
3463
|
};
|
|
3464
|
+
const isComposerAttachmentInputName = name => {
|
|
3465
|
+
return name.startsWith(ComposerAttachmentPrefix);
|
|
3466
|
+
};
|
|
3467
|
+
const getAttachmentIdFromComposerAttachmentInputName = name => {
|
|
3468
|
+
return name.slice(ComposerAttachmentPrefix.length);
|
|
3469
|
+
};
|
|
3470
|
+
const getComposerAttachmentRemoveInputName = attachmentId => {
|
|
3471
|
+
return `${ComposerAttachmentRemovePrefix}${attachmentId}`;
|
|
3472
|
+
};
|
|
3473
|
+
const isComposerAttachmentPreviewInputName = name => {
|
|
3474
|
+
return name.startsWith(ComposerAttachmentPreviewPrefix);
|
|
3475
|
+
};
|
|
3476
|
+
const getAttachmentIdFromComposerAttachmentPreviewInputName = name => {
|
|
3477
|
+
return name.slice(ComposerAttachmentPreviewPrefix.length);
|
|
3478
|
+
};
|
|
3479
|
+
const isComposerAttachmentRemoveInputName = name => {
|
|
3480
|
+
return name.startsWith(ComposerAttachmentRemovePrefix);
|
|
3481
|
+
};
|
|
3482
|
+
const getAttachmentIdFromComposerAttachmentRemoveInputName = name => {
|
|
3483
|
+
return name.slice(ComposerAttachmentRemovePrefix.length);
|
|
3484
|
+
};
|
|
3485
|
+
const isComposerAttachmentPreviewOverlayInputName = name => {
|
|
3486
|
+
return name === ComposerAttachmentPreviewOverlay;
|
|
3487
|
+
};
|
|
3247
3488
|
const isModelPickerItemInputName = name => {
|
|
3248
3489
|
return name.startsWith(ModelPickerItemPrefix);
|
|
3249
3490
|
};
|
|
@@ -3285,17 +3526,27 @@ const menuEntryAddProject = {
|
|
|
3285
3526
|
id: 'addProject',
|
|
3286
3527
|
label: addProject()
|
|
3287
3528
|
};
|
|
3288
|
-
const getMenuEntriesChatProjectList = (projectId = '') => {
|
|
3529
|
+
const getMenuEntriesChatProjectList = (projectId = '', canRemoveProject = true) => {
|
|
3289
3530
|
if (!projectId) {
|
|
3290
3531
|
return [menuEntryAddProject];
|
|
3291
3532
|
}
|
|
3292
|
-
|
|
3533
|
+
const entries = [{
|
|
3293
3534
|
args: [getCreateSessionInProjectInputName(projectId)],
|
|
3294
3535
|
command: 'Chat.handleClick',
|
|
3295
3536
|
flags: None,
|
|
3296
3537
|
id: 'newChat',
|
|
3297
3538
|
label: newChat()
|
|
3298
3539
|
}, menuEntryAddProject];
|
|
3540
|
+
if (canRemoveProject) {
|
|
3541
|
+
entries.push({
|
|
3542
|
+
args: [ProjectDelete, projectId],
|
|
3543
|
+
command: 'Chat.handleClick',
|
|
3544
|
+
flags: None,
|
|
3545
|
+
id: 'removeProject',
|
|
3546
|
+
label: removeProject()
|
|
3547
|
+
});
|
|
3548
|
+
}
|
|
3549
|
+
return entries;
|
|
3299
3550
|
};
|
|
3300
3551
|
|
|
3301
3552
|
const getMenuEntriesProjectAddButton = () => {
|
|
@@ -3313,12 +3564,15 @@ const MenuChatHeader = 2179;
|
|
|
3313
3564
|
const MenuChatInput = 2180;
|
|
3314
3565
|
const MenuProjectAddButton = 2181;
|
|
3315
3566
|
const MenuChatProjectList = 2182;
|
|
3567
|
+
const MenuChatAttachment = 2183;
|
|
3316
3568
|
const getMenuEntryIds = () => {
|
|
3317
|
-
return [Chat$2, MenuChatList, MenuChatHeader, MenuChatInput, MenuProjectAddButton, MenuChatProjectList];
|
|
3569
|
+
return [Chat$2, MenuChatList, MenuChatHeader, MenuChatInput, MenuProjectAddButton, MenuChatProjectList, MenuChatAttachment];
|
|
3318
3570
|
};
|
|
3319
3571
|
|
|
3320
3572
|
const getMenuEntries = (menuId, props) => {
|
|
3321
3573
|
switch (props.menuId) {
|
|
3574
|
+
case MenuChatAttachment:
|
|
3575
|
+
return getMenuEntriesChatAttachment(props.attachmentId, props.previewSrc);
|
|
3322
3576
|
case MenuChatHeader:
|
|
3323
3577
|
return getMenuEntriesChatHeader();
|
|
3324
3578
|
case MenuChatInput:
|
|
@@ -3326,7 +3580,7 @@ const getMenuEntries = (menuId, props) => {
|
|
|
3326
3580
|
case MenuChatList:
|
|
3327
3581
|
return getMenuEntriesChatList();
|
|
3328
3582
|
case MenuChatProjectList:
|
|
3329
|
-
return getMenuEntriesChatProjectList(props.projectId);
|
|
3583
|
+
return getMenuEntriesChatProjectList(props.projectId, props.canRemoveProject);
|
|
3330
3584
|
case MenuProjectAddButton:
|
|
3331
3585
|
return getMenuEntriesProjectAddButton();
|
|
3332
3586
|
default:
|
|
@@ -3334,6 +3588,10 @@ const getMenuEntries = (menuId, props) => {
|
|
|
3334
3588
|
}
|
|
3335
3589
|
};
|
|
3336
3590
|
|
|
3591
|
+
const getMockOpenApiRequests = state => {
|
|
3592
|
+
return state.mockOpenApiRequests;
|
|
3593
|
+
};
|
|
3594
|
+
|
|
3337
3595
|
const getQuickPickMenuEntries = () => {
|
|
3338
3596
|
return [];
|
|
3339
3597
|
};
|
|
@@ -3423,6 +3681,15 @@ const handleChatListContextMenu = async (state, eventX, eventY) => {
|
|
|
3423
3681
|
};
|
|
3424
3682
|
};
|
|
3425
3683
|
|
|
3684
|
+
const focusInput = state => {
|
|
3685
|
+
return {
|
|
3686
|
+
...state,
|
|
3687
|
+
focus: 'composer',
|
|
3688
|
+
focused: true,
|
|
3689
|
+
listFocusedIndex: -1
|
|
3690
|
+
};
|
|
3691
|
+
};
|
|
3692
|
+
|
|
3426
3693
|
const generateSessionId = () => {
|
|
3427
3694
|
return crypto.randomUUID();
|
|
3428
3695
|
};
|
|
@@ -3438,14 +3705,93 @@ const createSession = async (state, projectIdOverride = '') => {
|
|
|
3438
3705
|
title: `Chat ${state.sessions.length + 1}`
|
|
3439
3706
|
};
|
|
3440
3707
|
await saveChatSession(session);
|
|
3441
|
-
return {
|
|
3708
|
+
return focusInput({
|
|
3442
3709
|
...state,
|
|
3443
3710
|
composerAttachments: [],
|
|
3711
|
+
composerAttachmentsHeight: 0,
|
|
3444
3712
|
projectExpandedIds: state.projectExpandedIds.includes(projectId) ? state.projectExpandedIds : [...state.projectExpandedIds, projectId],
|
|
3445
3713
|
renamingSessionId: '',
|
|
3446
3714
|
selectedProjectId: projectId,
|
|
3447
3715
|
selectedSessionId: id,
|
|
3448
3716
|
sessions: [...state.sessions, session]
|
|
3717
|
+
});
|
|
3718
|
+
};
|
|
3719
|
+
|
|
3720
|
+
const getBlankProjectId = (state, removedProjectId) => {
|
|
3721
|
+
return state.projects.find(project => project.id !== removedProjectId && project.name === '_blank')?.id || '';
|
|
3722
|
+
};
|
|
3723
|
+
const getNextViewMode = (state, hasSelectedSession) => {
|
|
3724
|
+
if (state.viewMode === 'chat-focus') {
|
|
3725
|
+
return 'chat-focus';
|
|
3726
|
+
}
|
|
3727
|
+
if (!hasSelectedSession) {
|
|
3728
|
+
return 'list';
|
|
3729
|
+
}
|
|
3730
|
+
return state.viewMode === 'detail' ? 'detail' : 'list';
|
|
3731
|
+
};
|
|
3732
|
+
const ensureExpandedProject = (state, projectExpandedIds, selectedProjectId, visibleSessions) => {
|
|
3733
|
+
if (state.viewMode !== 'chat-focus' || !selectedProjectId || visibleSessions.length === 0 || projectExpandedIds.includes(selectedProjectId)) {
|
|
3734
|
+
return projectExpandedIds;
|
|
3735
|
+
}
|
|
3736
|
+
return [...projectExpandedIds, selectedProjectId];
|
|
3737
|
+
};
|
|
3738
|
+
const deleteProject = async (state, projectId) => {
|
|
3739
|
+
const project = state.projects.find(candidate => candidate.id === projectId);
|
|
3740
|
+
if (!project || project.name === '_blank') {
|
|
3741
|
+
return state;
|
|
3742
|
+
}
|
|
3743
|
+
const blankProjectId = getBlankProjectId(state, projectId);
|
|
3744
|
+
if (!blankProjectId) {
|
|
3745
|
+
return state;
|
|
3746
|
+
}
|
|
3747
|
+
const projects = state.projects.filter(candidate => candidate.id !== projectId);
|
|
3748
|
+
const sessions = await Promise.all(state.sessions.map(async session => {
|
|
3749
|
+
if (session.projectId !== projectId) {
|
|
3750
|
+
return session;
|
|
3751
|
+
}
|
|
3752
|
+
const updatedSession = {
|
|
3753
|
+
...session,
|
|
3754
|
+
projectId: blankProjectId
|
|
3755
|
+
};
|
|
3756
|
+
await saveChatSession(updatedSession);
|
|
3757
|
+
return updatedSession;
|
|
3758
|
+
}));
|
|
3759
|
+
const selectedProjectId = !state.selectedProjectId || state.selectedProjectId === projectId || !projects.some(candidate => candidate.id === state.selectedProjectId) ? blankProjectId : state.selectedProjectId;
|
|
3760
|
+
const projectExpandedIds = state.projectExpandedIds.filter(expandedProjectId => expandedProjectId !== projectId && projects.some(candidate => candidate.id === expandedProjectId));
|
|
3761
|
+
const visibleSessions = getVisibleSessions(sessions, selectedProjectId);
|
|
3762
|
+
const nextProjectExpandedIds = ensureExpandedProject(state, projectExpandedIds, selectedProjectId, visibleSessions);
|
|
3763
|
+
if (visibleSessions.length === 0) {
|
|
3764
|
+
return {
|
|
3765
|
+
...state,
|
|
3766
|
+
composerAttachments: [],
|
|
3767
|
+
composerAttachmentsHeight: 0,
|
|
3768
|
+
projectExpandedIds: nextProjectExpandedIds,
|
|
3769
|
+
projects,
|
|
3770
|
+
selectedProjectId,
|
|
3771
|
+
selectedSessionId: '',
|
|
3772
|
+
sessions,
|
|
3773
|
+
viewMode: getNextViewMode(state, false)
|
|
3774
|
+
};
|
|
3775
|
+
}
|
|
3776
|
+
const selectedSessionId = visibleSessions.some(session => session.id === state.selectedSessionId) ? state.selectedSessionId : visibleSessions[0].id;
|
|
3777
|
+
const loadedSession = await getChatSession(selectedSessionId);
|
|
3778
|
+
const composerAttachments = await getComposerAttachments(selectedSessionId);
|
|
3779
|
+
const hydratedSessions = sessions.map(session => {
|
|
3780
|
+
if (session.id !== selectedSessionId || !loadedSession) {
|
|
3781
|
+
return session;
|
|
3782
|
+
}
|
|
3783
|
+
return loadedSession;
|
|
3784
|
+
});
|
|
3785
|
+
return {
|
|
3786
|
+
...state,
|
|
3787
|
+
composerAttachments,
|
|
3788
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, state.width),
|
|
3789
|
+
projectExpandedIds: nextProjectExpandedIds,
|
|
3790
|
+
projects,
|
|
3791
|
+
selectedProjectId,
|
|
3792
|
+
selectedSessionId,
|
|
3793
|
+
sessions: hydratedSessions,
|
|
3794
|
+
viewMode: getNextViewMode(state, true)
|
|
3449
3795
|
};
|
|
3450
3796
|
};
|
|
3451
3797
|
|
|
@@ -3458,6 +3804,12 @@ const getModelPickerClickIndex = (y, height, eventY, modelPickerBottomOffset, mo
|
|
|
3458
3804
|
return Math.floor(relativeY / modelPickerItemHeight);
|
|
3459
3805
|
};
|
|
3460
3806
|
|
|
3807
|
+
const AutoScrollTopA = Number.MAX_SAFE_INTEGER;
|
|
3808
|
+
const AutoScrollTopB = Number.MAX_SAFE_INTEGER - 1;
|
|
3809
|
+
const getNextAutoScrollTop = currentScrollTop => {
|
|
3810
|
+
return currentScrollTop === AutoScrollTopA ? AutoScrollTopB : AutoScrollTopA;
|
|
3811
|
+
};
|
|
3812
|
+
|
|
3461
3813
|
const openFolder = async () => {
|
|
3462
3814
|
try {
|
|
3463
3815
|
return await invoke('FilePicker.showDirectoryPicker');
|
|
@@ -3467,24 +3819,32 @@ const openFolder = async () => {
|
|
|
3467
3819
|
};
|
|
3468
3820
|
|
|
3469
3821
|
const selectProject = async (state, projectId) => {
|
|
3470
|
-
|
|
3822
|
+
const {
|
|
3823
|
+
selectedProjectId,
|
|
3824
|
+
selectedSessionId,
|
|
3825
|
+
sessions,
|
|
3826
|
+
viewMode,
|
|
3827
|
+
width
|
|
3828
|
+
} = state;
|
|
3829
|
+
if (!projectId || selectedProjectId === projectId) {
|
|
3471
3830
|
return state;
|
|
3472
3831
|
}
|
|
3473
|
-
const visibleSessions = getVisibleSessions(
|
|
3832
|
+
const visibleSessions = getVisibleSessions(sessions, projectId);
|
|
3474
3833
|
if (visibleSessions.length === 0) {
|
|
3475
3834
|
return {
|
|
3476
3835
|
...state,
|
|
3477
3836
|
composerAttachments: [],
|
|
3837
|
+
composerAttachmentsHeight: 0,
|
|
3478
3838
|
selectedProjectId: projectId,
|
|
3479
3839
|
selectedSessionId: '',
|
|
3480
|
-
viewMode:
|
|
3840
|
+
viewMode: viewMode === 'chat-focus' ? 'chat-focus' : 'list'
|
|
3481
3841
|
};
|
|
3482
3842
|
}
|
|
3483
|
-
const currentSessionVisible = visibleSessions.some(session => session.id ===
|
|
3484
|
-
const nextSelectedSessionId = currentSessionVisible ?
|
|
3843
|
+
const currentSessionVisible = visibleSessions.some(session => session.id === selectedSessionId);
|
|
3844
|
+
const nextSelectedSessionId = currentSessionVisible ? selectedSessionId : visibleSessions[0].id;
|
|
3485
3845
|
const loadedSession = await getChatSession(nextSelectedSessionId);
|
|
3486
3846
|
const composerAttachments = await getComposerAttachments(nextSelectedSessionId);
|
|
3487
|
-
const
|
|
3847
|
+
const hydratedSessions = sessions.map(session => {
|
|
3488
3848
|
if (session.id !== nextSelectedSessionId || !loadedSession) {
|
|
3489
3849
|
return session;
|
|
3490
3850
|
}
|
|
@@ -3493,10 +3853,11 @@ const selectProject = async (state, projectId) => {
|
|
|
3493
3853
|
return {
|
|
3494
3854
|
...state,
|
|
3495
3855
|
composerAttachments,
|
|
3856
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, width),
|
|
3496
3857
|
selectedProjectId: projectId,
|
|
3497
3858
|
selectedSessionId: nextSelectedSessionId,
|
|
3498
|
-
sessions,
|
|
3499
|
-
viewMode:
|
|
3859
|
+
sessions: hydratedSessions,
|
|
3860
|
+
viewMode: viewMode === 'chat-focus' ? 'chat-focus' : 'detail'
|
|
3500
3861
|
};
|
|
3501
3862
|
};
|
|
3502
3863
|
|
|
@@ -3535,6 +3896,7 @@ const handleClickCreateProject = async state => {
|
|
|
3535
3896
|
return {
|
|
3536
3897
|
...state,
|
|
3537
3898
|
composerAttachments: [],
|
|
3899
|
+
composerAttachmentsHeight: 0,
|
|
3538
3900
|
projects: [...state.projects, project],
|
|
3539
3901
|
selectedProjectId: project.id,
|
|
3540
3902
|
selectedSessionId: '',
|
|
@@ -3573,8 +3935,7 @@ const executeProvider = async ({
|
|
|
3573
3935
|
}) => {
|
|
3574
3936
|
await activateByEvent(event, assetDir, platform);
|
|
3575
3937
|
// @ts-ignore
|
|
3576
|
-
|
|
3577
|
-
return result;
|
|
3938
|
+
return invoke$2(method, ...params);
|
|
3578
3939
|
};
|
|
3579
3940
|
|
|
3580
3941
|
const CommandExecute = 'ExtensionHostCommand.executeCommand';
|
|
@@ -4025,6 +4386,54 @@ const getBasicChatTools = async (agentMode = defaultAgentMode, questionToolEnabl
|
|
|
4025
4386
|
}
|
|
4026
4387
|
};
|
|
4027
4388
|
|
|
4389
|
+
const getAttachmentTextPart = attachment => {
|
|
4390
|
+
switch (attachment.displayType) {
|
|
4391
|
+
case 'file':
|
|
4392
|
+
return {
|
|
4393
|
+
text: `Attached file "${attachment.name}" (${attachment.mimeType || 'application/octet-stream'}, ${attachment.size} bytes).`,
|
|
4394
|
+
type: 'input_text'
|
|
4395
|
+
};
|
|
4396
|
+
case 'image':
|
|
4397
|
+
return {
|
|
4398
|
+
text: `Attached image "${attachment.name}" could not be encoded for the AI request.`,
|
|
4399
|
+
type: 'input_text'
|
|
4400
|
+
};
|
|
4401
|
+
case 'invalid-image':
|
|
4402
|
+
return {
|
|
4403
|
+
text: `Attached file "${attachment.name}" could not be processed as a valid image.`,
|
|
4404
|
+
type: 'input_text'
|
|
4405
|
+
};
|
|
4406
|
+
case 'text-file':
|
|
4407
|
+
return {
|
|
4408
|
+
text: attachment.textContent ? `Attached text file "${attachment.name}" (${attachment.mimeType || 'text/plain'}):\n\n${attachment.textContent}` : `Attached text file "${attachment.name}" (${attachment.mimeType || 'text/plain'}).`,
|
|
4409
|
+
type: 'input_text'
|
|
4410
|
+
};
|
|
4411
|
+
}
|
|
4412
|
+
};
|
|
4413
|
+
const getChatMessageOpenAiContent = message => {
|
|
4414
|
+
if (!message.attachments || message.attachments.length === 0) {
|
|
4415
|
+
return message.text;
|
|
4416
|
+
}
|
|
4417
|
+
const parts = [];
|
|
4418
|
+
if (message.text) {
|
|
4419
|
+
parts.push({
|
|
4420
|
+
text: message.text,
|
|
4421
|
+
type: 'input_text'
|
|
4422
|
+
});
|
|
4423
|
+
}
|
|
4424
|
+
for (const attachment of message.attachments) {
|
|
4425
|
+
if (attachment.displayType === 'image' && attachment.previewSrc) {
|
|
4426
|
+
parts.push({
|
|
4427
|
+
image_url: attachment.previewSrc,
|
|
4428
|
+
type: 'input_image'
|
|
4429
|
+
});
|
|
4430
|
+
continue;
|
|
4431
|
+
}
|
|
4432
|
+
parts.push(getAttachmentTextPart(attachment));
|
|
4433
|
+
}
|
|
4434
|
+
return parts;
|
|
4435
|
+
};
|
|
4436
|
+
|
|
4028
4437
|
const getClientRequestIdHeader = () => {
|
|
4029
4438
|
return {
|
|
4030
4439
|
'x-client-request-id': crypto.randomUUID()
|
|
@@ -4040,11 +4449,22 @@ const getMockAiResponse = async (userMessage, delayInMs) => {
|
|
|
4040
4449
|
return `Mock AI response: I received "${userMessage}".`;
|
|
4041
4450
|
};
|
|
4042
4451
|
|
|
4452
|
+
let requests = [];
|
|
4453
|
+
const reset$2 = () => {
|
|
4454
|
+
requests = [];
|
|
4455
|
+
};
|
|
4456
|
+
const capture = request => {
|
|
4457
|
+
requests = [...requests, request];
|
|
4458
|
+
};
|
|
4459
|
+
const getAll = () => {
|
|
4460
|
+
return requests;
|
|
4461
|
+
};
|
|
4462
|
+
|
|
4043
4463
|
let queue = [];
|
|
4044
4464
|
let waiters = [];
|
|
4045
4465
|
let finished = false;
|
|
4046
4466
|
let errorResult;
|
|
4047
|
-
const reset$
|
|
4467
|
+
const reset$1 = () => {
|
|
4048
4468
|
queue = [];
|
|
4049
4469
|
waiters = [];
|
|
4050
4470
|
finished = false;
|
|
@@ -4118,6 +4538,47 @@ const readNextChunk = async () => {
|
|
|
4118
4538
|
return promise;
|
|
4119
4539
|
};
|
|
4120
4540
|
|
|
4541
|
+
const lastRequestSummaryToken = '__MOCK_OPENAPI_LAST_REQUEST_SUMMARY__';
|
|
4542
|
+
const getLastRequestSummary = () => {
|
|
4543
|
+
const requests = getAll();
|
|
4544
|
+
const request = requests.at(-1);
|
|
4545
|
+
if (!request || !request.payload || typeof request.payload !== 'object') {
|
|
4546
|
+
return 'mock-request-summary images=0 text-files=0';
|
|
4547
|
+
}
|
|
4548
|
+
const input = Reflect.get(request.payload, 'input');
|
|
4549
|
+
if (!Array.isArray(input) || input.length === 0) {
|
|
4550
|
+
return 'mock-request-summary images=0 text-files=0';
|
|
4551
|
+
}
|
|
4552
|
+
let imageCount = 0;
|
|
4553
|
+
let textFileCount = 0;
|
|
4554
|
+
for (const item of input) {
|
|
4555
|
+
if (!item || typeof item !== 'object') {
|
|
4556
|
+
continue;
|
|
4557
|
+
}
|
|
4558
|
+
const content = Reflect.get(item, 'content');
|
|
4559
|
+
if (!Array.isArray(content)) {
|
|
4560
|
+
continue;
|
|
4561
|
+
}
|
|
4562
|
+
for (const part of content) {
|
|
4563
|
+
if (!part || typeof part !== 'object') {
|
|
4564
|
+
continue;
|
|
4565
|
+
}
|
|
4566
|
+
const type = Reflect.get(part, 'type');
|
|
4567
|
+
if (type === 'input_image') {
|
|
4568
|
+
imageCount++;
|
|
4569
|
+
continue;
|
|
4570
|
+
}
|
|
4571
|
+
if (type !== 'input_text') {
|
|
4572
|
+
continue;
|
|
4573
|
+
}
|
|
4574
|
+
const text = Reflect.get(part, 'text');
|
|
4575
|
+
if (typeof text === 'string' && text.startsWith('Attached text file "')) {
|
|
4576
|
+
textFileCount++;
|
|
4577
|
+
}
|
|
4578
|
+
}
|
|
4579
|
+
}
|
|
4580
|
+
return `mock-request-summary images=${imageCount} text-files=${textFileCount}`;
|
|
4581
|
+
};
|
|
4121
4582
|
const getResponseFunctionCalls$1 = value => {
|
|
4122
4583
|
if (!value || typeof value !== 'object') {
|
|
4123
4584
|
return [];
|
|
@@ -4315,9 +4776,10 @@ const getMockOpenApiAssistantText = async (stream, onTextChunk, onToolCallsChunk
|
|
|
4315
4776
|
}
|
|
4316
4777
|
continue;
|
|
4317
4778
|
}
|
|
4318
|
-
|
|
4779
|
+
const resolvedChunk = chunk === lastRequestSummaryToken ? getLastRequestSummary() : chunk;
|
|
4780
|
+
text += resolvedChunk;
|
|
4319
4781
|
if (stream && onTextChunk) {
|
|
4320
|
-
await onTextChunk(
|
|
4782
|
+
await onTextChunk(resolvedChunk);
|
|
4321
4783
|
}
|
|
4322
4784
|
}
|
|
4323
4785
|
if (!requestDone && remainder) {
|
|
@@ -4517,7 +4979,7 @@ const getOpenAiTools = tools => {
|
|
|
4517
4979
|
};
|
|
4518
4980
|
});
|
|
4519
4981
|
};
|
|
4520
|
-
const getOpenAiParams = (input, modelId, stream, includeObfuscation, tools, webSearchEnabled, maxToolCalls, systemPrompt = '', previousResponseId, reasoningEffort) => {
|
|
4982
|
+
const getOpenAiParams = (input, modelId, stream, includeObfuscation, tools, webSearchEnabled, maxToolCalls, systemPrompt = '', previousResponseId, reasoningEffort, supportsReasoningEffort = false) => {
|
|
4521
4983
|
const openAiTools = getOpenAiTools(tools);
|
|
4522
4984
|
return {
|
|
4523
4985
|
input,
|
|
@@ -4536,7 +4998,7 @@ const getOpenAiParams = (input, modelId, stream, includeObfuscation, tools, webS
|
|
|
4536
4998
|
...(previousResponseId ? {
|
|
4537
4999
|
previous_response_id: previousResponseId
|
|
4538
5000
|
} : {}),
|
|
4539
|
-
...(reasoningEffort ? {
|
|
5001
|
+
...(reasoningEffort && supportsReasoningEffort ? {
|
|
4540
5002
|
reasoning: {
|
|
4541
5003
|
effort: reasoningEffort
|
|
4542
5004
|
}
|
|
@@ -5143,6 +5605,7 @@ const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApi
|
|
|
5143
5605
|
questionToolEnabled = false,
|
|
5144
5606
|
reasoningEffort,
|
|
5145
5607
|
stream,
|
|
5608
|
+
supportsReasoningEffort = false,
|
|
5146
5609
|
systemPrompt = '',
|
|
5147
5610
|
toolEnablement,
|
|
5148
5611
|
useChatNetworkWorkerForRequests = false,
|
|
@@ -5153,7 +5616,7 @@ const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApi
|
|
|
5153
5616
|
stream: false
|
|
5154
5617
|
};
|
|
5155
5618
|
const openAiInput = messages.map(message => ({
|
|
5156
|
-
content: message
|
|
5619
|
+
content: getChatMessageOpenAiContent(message),
|
|
5157
5620
|
role: message.role
|
|
5158
5621
|
}));
|
|
5159
5622
|
const tools = await getBasicChatTools(agentMode, questionToolEnabled, toolEnablement);
|
|
@@ -5161,7 +5624,7 @@ const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApi
|
|
|
5161
5624
|
const maxToolIterations = safeMaxToolCalls - 1;
|
|
5162
5625
|
let previousResponseId;
|
|
5163
5626
|
for (let i = 0; i <= maxToolIterations; i++) {
|
|
5164
|
-
const postBody = getOpenAiParams(openAiInput, modelId, stream, includeObfuscation, tools, webSearchEnabled, safeMaxToolCalls, systemPrompt, previousResponseId, reasoningEffort);
|
|
5627
|
+
const postBody = getOpenAiParams(openAiInput, modelId, stream, includeObfuscation, tools, webSearchEnabled, safeMaxToolCalls, systemPrompt, previousResponseId, reasoningEffort, supportsReasoningEffort);
|
|
5165
5628
|
if (stream) {
|
|
5166
5629
|
const streamResult = useChatNetworkWorkerForRequests ? await (async () => {
|
|
5167
5630
|
const requestResult = await makeStreamingApiRequest({
|
|
@@ -5546,12 +6009,22 @@ const getOpenApiAssistantText = async (messages, modelId, openApiApiKey, openApi
|
|
|
5546
6009
|
};
|
|
5547
6010
|
};
|
|
5548
6011
|
|
|
6012
|
+
const imageRegex = /\b(?:image|vision|multimodal)\b/i;
|
|
6013
|
+
const unsupportedRegex = /\bdoes(?:\s+not|n't)\s+support|not\s+support(?:ed)?|unsupported\b/i;
|
|
5549
6014
|
const isOffline = () => {
|
|
5550
6015
|
if (!globalThis.navigator) {
|
|
5551
6016
|
return false;
|
|
5552
6017
|
}
|
|
5553
6018
|
return globalThis.navigator.onLine === false;
|
|
5554
6019
|
};
|
|
6020
|
+
const isImageNotSupportedError = errorResult => {
|
|
6021
|
+
const haystack = [errorResult.errorCode, errorResult.errorMessage, errorResult.errorType].filter(Boolean).join(' ');
|
|
6022
|
+
return imageRegex.test(haystack) && unsupportedRegex.test(haystack);
|
|
6023
|
+
};
|
|
6024
|
+
const getImageNotSupportedMessage = modelName => {
|
|
6025
|
+
const subject = modelName ? `${modelName} does not support image attachments.` : 'This model does not support image attachments.';
|
|
6026
|
+
return `${subject} Choose a vision-capable model like GPT-4o Mini or GPT-4o, or remove the image and try again.`;
|
|
6027
|
+
};
|
|
5555
6028
|
const getOpenApiErrorMessage = errorResult => {
|
|
5556
6029
|
switch (errorResult.details) {
|
|
5557
6030
|
case 'http-error':
|
|
@@ -5565,6 +6038,9 @@ const getOpenApiErrorMessage = errorResult => {
|
|
|
5565
6038
|
const status = typeof errorResult.statusCode === 'number' ? errorResult.statusCode : 401;
|
|
5566
6039
|
return `OpenAI request failed (Status ${status}): Invalid API key. Please verify your OpenAI API key in Chat Settings.`;
|
|
5567
6040
|
}
|
|
6041
|
+
if (isImageNotSupportedError(errorResult)) {
|
|
6042
|
+
return getImageNotSupportedMessage();
|
|
6043
|
+
}
|
|
5568
6044
|
if (errorResult.statusCode === 429) {
|
|
5569
6045
|
let prefix = 'OpenAI rate limit exceeded (429)';
|
|
5570
6046
|
if (hasErrorCode) {
|
|
@@ -6013,17 +6489,6 @@ const isOpenRouterModel = (selectedModelId, models) => {
|
|
|
6013
6489
|
return selectedModelId.toLowerCase().startsWith('openrouter/');
|
|
6014
6490
|
};
|
|
6015
6491
|
|
|
6016
|
-
let requests = [];
|
|
6017
|
-
const reset$1 = () => {
|
|
6018
|
-
requests = [];
|
|
6019
|
-
};
|
|
6020
|
-
const capture = request => {
|
|
6021
|
-
requests = [...requests, request];
|
|
6022
|
-
};
|
|
6023
|
-
const getAll = () => {
|
|
6024
|
-
return requests;
|
|
6025
|
-
};
|
|
6026
|
-
|
|
6027
6492
|
/* eslint-disable prefer-destructuring */
|
|
6028
6493
|
|
|
6029
6494
|
const trailingSlashesRegex = /\/+$/;
|
|
@@ -6038,6 +6503,9 @@ const getEffectiveBackendModelId = selectedModelId => {
|
|
|
6038
6503
|
}
|
|
6039
6504
|
return selectedModelId.slice(separatorIndex + 1);
|
|
6040
6505
|
};
|
|
6506
|
+
const hasImageAttachments = messages => {
|
|
6507
|
+
return messages.some(message => message.attachments?.some(attachment => attachment.displayType === 'image'));
|
|
6508
|
+
};
|
|
6041
6509
|
const getBackendAssistantText = async (messages, selectedModelId, backendUrl, authAccessToken, systemPrompt) => {
|
|
6042
6510
|
let response;
|
|
6043
6511
|
try {
|
|
@@ -6085,6 +6553,7 @@ const getAiResponse = async ({
|
|
|
6085
6553
|
nextMessageId,
|
|
6086
6554
|
onDataEvent,
|
|
6087
6555
|
onEventStreamFinished,
|
|
6556
|
+
onMockOpenApiRequestCaptured,
|
|
6088
6557
|
onTextChunk,
|
|
6089
6558
|
onToolCallsChunk,
|
|
6090
6559
|
openApiApiBaseUrl,
|
|
@@ -6160,7 +6629,15 @@ const getAiResponse = async ({
|
|
|
6160
6629
|
}
|
|
6161
6630
|
}
|
|
6162
6631
|
let text = '';
|
|
6163
|
-
|
|
6632
|
+
const usesOpenApiModel = isOpenApiModel(selectedModelId, models);
|
|
6633
|
+
const usesOpenRouterModel = isOpenRouterModel(selectedModelId, models);
|
|
6634
|
+
const selectedModel = models.find(model => model.id === selectedModelId);
|
|
6635
|
+
const supportsImages = selectedModel?.supportsImages ?? false;
|
|
6636
|
+
const supportsReasoningEffort = selectedModel?.supportsReasoningEffort ?? false;
|
|
6637
|
+
if (hasImageAttachments(messages) && !supportsImages) {
|
|
6638
|
+
text = getImageNotSupportedMessage(selectedModel?.name);
|
|
6639
|
+
}
|
|
6640
|
+
if (!text && authEnabled) {
|
|
6164
6641
|
if (!backendUrl) {
|
|
6165
6642
|
text = backendUrlRequiredMessage;
|
|
6166
6643
|
} else if (authAccessToken) {
|
|
@@ -6169,13 +6646,11 @@ const getAiResponse = async ({
|
|
|
6169
6646
|
text = backendAccessTokenRequiredMessage;
|
|
6170
6647
|
}
|
|
6171
6648
|
}
|
|
6172
|
-
const usesOpenApiModel = isOpenApiModel(selectedModelId, models);
|
|
6173
|
-
const usesOpenRouterModel = isOpenRouterModel(selectedModelId, models);
|
|
6174
6649
|
if (!text && usesOpenApiModel) {
|
|
6175
6650
|
const safeMaxToolCalls = Math.max(1, maxToolCalls);
|
|
6176
6651
|
if (useMockApi) {
|
|
6177
6652
|
const openAiInput = messages.map(message => ({
|
|
6178
|
-
content: message
|
|
6653
|
+
content: getChatMessageOpenAiContent(message),
|
|
6179
6654
|
role: message.role
|
|
6180
6655
|
}));
|
|
6181
6656
|
const modelId = getOpenApiModelId(selectedModelId);
|
|
@@ -6187,12 +6662,16 @@ const getAiResponse = async ({
|
|
|
6187
6662
|
const maxToolIterations = safeMaxToolCalls - 1;
|
|
6188
6663
|
let previousResponseId;
|
|
6189
6664
|
for (let i = 0; i <= maxToolIterations; i++) {
|
|
6190
|
-
|
|
6665
|
+
const request = {
|
|
6191
6666
|
headers,
|
|
6192
6667
|
method: 'POST',
|
|
6193
|
-
payload: getOpenAiParams(openAiInput, modelId, streamingEnabled, passIncludeObfuscation, await getBasicChatTools(agentMode, questionToolEnabled, toolEnablement), agentMode === 'plan' ? false : webSearchEnabled, safeMaxToolCalls, systemPrompt, previousResponseId, reasoningEffort),
|
|
6668
|
+
payload: getOpenAiParams(openAiInput, modelId, streamingEnabled, passIncludeObfuscation, await getBasicChatTools(agentMode, questionToolEnabled, toolEnablement), agentMode === 'plan' ? false : webSearchEnabled, safeMaxToolCalls, systemPrompt, previousResponseId, reasoningEffort, supportsReasoningEffort),
|
|
6194
6669
|
url: getOpenApiApiEndpoint(openApiApiBaseUrl)
|
|
6195
|
-
}
|
|
6670
|
+
};
|
|
6671
|
+
capture(request);
|
|
6672
|
+
if (onMockOpenApiRequestCaptured) {
|
|
6673
|
+
await Promise.resolve(onMockOpenApiRequestCaptured(request));
|
|
6674
|
+
}
|
|
6196
6675
|
const result = await getMockOpenApiAssistantText(streamingEnabled, onTextChunk, onToolCallsChunk, onDataEvent, onEventStreamFinished);
|
|
6197
6676
|
if (result.type !== 'success') {
|
|
6198
6677
|
text = getOpenApiErrorMessage(result);
|
|
@@ -6270,6 +6749,7 @@ const getAiResponse = async ({
|
|
|
6270
6749
|
reasoningEffort
|
|
6271
6750
|
} : {}),
|
|
6272
6751
|
stream: streamingEnabled,
|
|
6752
|
+
supportsReasoningEffort,
|
|
6273
6753
|
systemPrompt,
|
|
6274
6754
|
...(toolEnablement ? {
|
|
6275
6755
|
toolEnablement
|
|
@@ -6334,8 +6814,8 @@ const getAiResponse = async ({
|
|
|
6334
6814
|
return message;
|
|
6335
6815
|
};
|
|
6336
6816
|
|
|
6337
|
-
const
|
|
6338
|
-
return invoke$7('
|
|
6817
|
+
const parseMessageContents = async rawMessages => {
|
|
6818
|
+
return invoke$7('ChatMessageParsing.parseMessageContents', rawMessages);
|
|
6339
6819
|
};
|
|
6340
6820
|
|
|
6341
6821
|
const Actions = 'Actions';
|
|
@@ -6346,6 +6826,10 @@ const Chat = 'Chat';
|
|
|
6346
6826
|
const ChatActions = 'ChatActions';
|
|
6347
6827
|
const ChatAuthError = 'ChatAuthError';
|
|
6348
6828
|
const ChatFocus = 'ChatFocus';
|
|
6829
|
+
const ChatFocusActions = 'ChatFocusActions';
|
|
6830
|
+
const ChatFocusHeader = 'ChatFocusHeader';
|
|
6831
|
+
const ChatFocusMainArea = 'ChatFocusMainArea';
|
|
6832
|
+
const ChatFocusProject = 'ChatFocusProject';
|
|
6349
6833
|
const ChatHeader = 'ChatHeader';
|
|
6350
6834
|
const ChatHeaderLabel = 'ChatHeaderLabel';
|
|
6351
6835
|
const ChatInputBox = 'ChatInputBox';
|
|
@@ -6370,15 +6854,30 @@ const ChatModelPickerItemSelected = 'ChatModelPickerItemSelected';
|
|
|
6370
6854
|
const ChatModelPickerItemUsageCost = 'ChatModelPickerItemUsageCost';
|
|
6371
6855
|
const ChatModelPickerList = 'ChatModelPickerList';
|
|
6372
6856
|
const ChatName = 'ChatName';
|
|
6857
|
+
const ChatOverlays = 'ChatOverlays';
|
|
6373
6858
|
const ChatOrderedList = 'ChatOrderedList';
|
|
6374
6859
|
const ChatOrderedListItem = 'ChatOrderedListItem';
|
|
6375
6860
|
const ChatOrderedListItemContent = 'ChatOrderedListItemContent';
|
|
6861
|
+
const ChatOrderedListItemPrefix = 'ChatOrderedListItemPrefix';
|
|
6376
6862
|
const ChatOrderedListMarker = 'ChatOrderedListMarker';
|
|
6377
6863
|
const ChatComposerAttachment = 'ChatComposerAttachment';
|
|
6378
6864
|
const ChatComposerAttachmentImage = 'ChatComposerAttachmentImage';
|
|
6379
6865
|
const ChatComposerAttachmentInvalidImage = 'ChatComposerAttachmentInvalidImage';
|
|
6866
|
+
const ChatComposerAttachmentLabel = 'ChatComposerAttachmentLabel';
|
|
6867
|
+
const ChatComposerAttachmentPreview = 'ChatComposerAttachmentPreview';
|
|
6868
|
+
const ChatComposerAttachmentPreviewOverlay = 'ChatComposerAttachmentPreviewOverlay';
|
|
6869
|
+
const ChatComposerAttachmentPreviewOverlayError = 'ChatComposerAttachmentPreviewOverlayError';
|
|
6870
|
+
const ChatComposerAttachmentPreviewOverlayImage = 'ChatComposerAttachmentPreviewOverlayImage';
|
|
6871
|
+
const ChatComposerAttachmentRemoveButton = 'ChatComposerAttachmentRemoveButton';
|
|
6380
6872
|
const ChatComposerAttachments = 'ChatComposerAttachments';
|
|
6381
6873
|
const ChatComposerAttachmentTextFile = 'ChatComposerAttachmentTextFile';
|
|
6874
|
+
const ChatAttachment = 'ChatAttachment';
|
|
6875
|
+
const ChatAttachmentImage = 'ChatAttachmentImage';
|
|
6876
|
+
const ChatAttachmentInvalidImage = 'ChatAttachmentInvalidImage';
|
|
6877
|
+
const ChatAttachmentLabel = 'ChatAttachmentLabel';
|
|
6878
|
+
const ChatAttachmentPreview = 'ChatAttachmentPreview';
|
|
6879
|
+
const ChatAttachments = 'ChatAttachments';
|
|
6880
|
+
const ChatAttachmentTextFile = 'ChatAttachmentTextFile';
|
|
6382
6881
|
const ChatSendArea = 'ChatSendArea';
|
|
6383
6882
|
const ChatSendAreaBottom = 'ChatSendAreaBottom';
|
|
6384
6883
|
const ChatSendAreaContent = 'ChatSendAreaContent';
|
|
@@ -6414,6 +6913,7 @@ const FileIcon = 'FileIcon';
|
|
|
6414
6913
|
const IconButton = 'IconButton';
|
|
6415
6914
|
const IconButtonDisabled = 'IconButtonDisabled';
|
|
6416
6915
|
const ImageElement = 'ImageElement';
|
|
6916
|
+
const ImageErrorMessage = 'ImageErrorMessage';
|
|
6417
6917
|
const InputBox = 'InputBox';
|
|
6418
6918
|
const Insertion = 'Insertion';
|
|
6419
6919
|
const Label = 'Label';
|
|
@@ -6427,6 +6927,7 @@ const MaskIconAccount = 'MaskIconAccount';
|
|
|
6427
6927
|
const MaskIconAdd = 'MaskIconAdd';
|
|
6428
6928
|
const MaskIconArrowLeft = 'MaskIconArrowLeft';
|
|
6429
6929
|
const MaskIconChevronDown = 'MaskIconChevronDown';
|
|
6930
|
+
const MaskIconChevronRight = 'MaskIconChevronRight';
|
|
6430
6931
|
const MaskIconChevronUp = 'MaskIconChevronUp';
|
|
6431
6932
|
const MaskIconClose = 'MaskIconClose';
|
|
6432
6933
|
const MaskIconDebugPause = 'MaskIconDebugPause';
|
|
@@ -6496,15 +6997,37 @@ const jsRules = [{
|
|
|
6496
6997
|
className: TokenKeyword,
|
|
6497
6998
|
regex: /\b(?:const|let|var|function|return|if|else|for|while|class|new|typeof|instanceof|import|export|from|default|async|await|try|catch|finally|throw|this|true|false|null|undefined)\b/
|
|
6498
6999
|
}];
|
|
6499
|
-
const
|
|
7000
|
+
const tsRules = [{
|
|
6500
7001
|
className: TokenComment,
|
|
6501
|
-
regex:
|
|
7002
|
+
regex: /\/\/[^\n]*/
|
|
6502
7003
|
}, {
|
|
6503
|
-
className:
|
|
6504
|
-
regex:
|
|
7004
|
+
className: TokenComment,
|
|
7005
|
+
regex: /\/\*[\s\S]*?\*\//
|
|
6505
7006
|
}, {
|
|
6506
|
-
className:
|
|
6507
|
-
regex:
|
|
7007
|
+
className: TokenString,
|
|
7008
|
+
regex: /"[^"\\]*(?:\\.[^"\\]*)*"/
|
|
7009
|
+
}, {
|
|
7010
|
+
className: TokenString,
|
|
7011
|
+
regex: /'[^'\\]*(?:\\.[^'\\]*)*'/
|
|
7012
|
+
}, {
|
|
7013
|
+
className: TokenString,
|
|
7014
|
+
regex: /`[^`\\]*(?:\\.[^`\\]*)*`/
|
|
7015
|
+
}, {
|
|
7016
|
+
className: TokenNumber,
|
|
7017
|
+
regex: /\b\d+\.?\d*\b/
|
|
7018
|
+
}, {
|
|
7019
|
+
className: TokenKeyword,
|
|
7020
|
+
regex: /\b(?:abstract|any|as|asserts|async|await|boolean|class|const|constructor|declare|default|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|infer|instanceof|interface|is|keyof|let|module|namespace|never|new|null|number|object|override|private|protected|public|readonly|return|satisfies|set|static|string|super|switch|symbol|this|throw|true|try|type|typeof|undefined|unknown|var|void|while)\b/
|
|
7021
|
+
}];
|
|
7022
|
+
const htmlRules = [{
|
|
7023
|
+
className: TokenComment,
|
|
7024
|
+
regex: /<!--[\s\S]*?-->/
|
|
7025
|
+
}, {
|
|
7026
|
+
className: TokenTag,
|
|
7027
|
+
regex: /<\/[a-zA-Z][a-zA-Z0-9-]*\s*>/
|
|
7028
|
+
}, {
|
|
7029
|
+
className: TokenTag,
|
|
7030
|
+
regex: /<[a-zA-Z][a-zA-Z0-9-]*/
|
|
6508
7031
|
}, {
|
|
6509
7032
|
className: TokenTag,
|
|
6510
7033
|
regex: /\/?>/
|
|
@@ -6619,6 +7142,9 @@ const highlightCode = (code, language) => {
|
|
|
6619
7142
|
if (normalized === 'js' || normalized === 'javascript') {
|
|
6620
7143
|
return tokenize(code, jsRules);
|
|
6621
7144
|
}
|
|
7145
|
+
if (normalized === 'ts' || normalized === 'typescript') {
|
|
7146
|
+
return tokenize(code, tsRules);
|
|
7147
|
+
}
|
|
6622
7148
|
if (normalized === 'py' || normalized === 'python') {
|
|
6623
7149
|
return tokenize(code, pythonRules);
|
|
6624
7150
|
}
|
|
@@ -7769,9 +8295,28 @@ const parseAndStoreMessagesContent = async (parsedMessages, messages) => {
|
|
|
7769
8295
|
}
|
|
7770
8296
|
return nextParsedMessages;
|
|
7771
8297
|
};
|
|
8298
|
+
const getMessagesNeedingParsing = (parsedMessages, messages) => {
|
|
8299
|
+
return messages.filter(message => {
|
|
8300
|
+
const existingParsedMessage = parsedMessages.find(item => item.id === message.id);
|
|
8301
|
+
return !existingParsedMessage || existingParsedMessage.text !== message.text;
|
|
8302
|
+
});
|
|
8303
|
+
};
|
|
8304
|
+
const parseAndStoreMessagesContentInWorker = async (parsedMessages, messages) => {
|
|
8305
|
+
const messagesNeedingParsing = getMessagesNeedingParsing(parsedMessages, messages);
|
|
8306
|
+
if (messagesNeedingParsing.length === 0) {
|
|
8307
|
+
return parsedMessages;
|
|
8308
|
+
}
|
|
8309
|
+
const parsedContents = await parseMessageContents(messagesNeedingParsing.map(message => message.text));
|
|
8310
|
+
let nextParsedMessages = parsedMessages;
|
|
8311
|
+
for (const [index, message] of messagesNeedingParsing.entries()) {
|
|
8312
|
+
const parsedContent = message.text === '' ? emptyMessageContent : parsedContents[index];
|
|
8313
|
+
nextParsedMessages = setParsedMessageContent(nextParsedMessages, message.id, message.text, parsedContent);
|
|
8314
|
+
}
|
|
8315
|
+
return nextParsedMessages;
|
|
8316
|
+
};
|
|
7772
8317
|
const parseAndStoreMessagesContentWithWorkerPreference = async (parsedMessages, messages, useChatMessageParsingWorker) => {
|
|
7773
8318
|
if (useChatMessageParsingWorker) {
|
|
7774
|
-
return
|
|
8319
|
+
return parseAndStoreMessagesContentInWorker(parsedMessages, messages);
|
|
7775
8320
|
}
|
|
7776
8321
|
return parseAndStoreMessagesContent(parsedMessages, messages);
|
|
7777
8322
|
};
|
|
@@ -8007,15 +8552,6 @@ const getSlashCommandHandler = command => {
|
|
|
8007
8552
|
return slashCommandRegistry[command];
|
|
8008
8553
|
};
|
|
8009
8554
|
|
|
8010
|
-
const focusInput = state => {
|
|
8011
|
-
return {
|
|
8012
|
-
...state,
|
|
8013
|
-
focus: 'composer',
|
|
8014
|
-
focused: true,
|
|
8015
|
-
listFocusedIndex: -1
|
|
8016
|
-
};
|
|
8017
|
-
};
|
|
8018
|
-
|
|
8019
8555
|
const withClearedComposer = state => {
|
|
8020
8556
|
return focusInput({
|
|
8021
8557
|
...state,
|
|
@@ -8169,12 +8705,6 @@ const getMentionContextMessage = async value => {
|
|
|
8169
8705
|
};
|
|
8170
8706
|
};
|
|
8171
8707
|
|
|
8172
|
-
const AutoScrollTopA = Number.MAX_SAFE_INTEGER;
|
|
8173
|
-
const AutoScrollTopB = Number.MAX_SAFE_INTEGER - 1;
|
|
8174
|
-
const getNextAutoScrollTop = currentScrollTop => {
|
|
8175
|
-
return currentScrollTop === AutoScrollTopA ? AutoScrollTopB : AutoScrollTopA;
|
|
8176
|
-
};
|
|
8177
|
-
|
|
8178
8708
|
const slashCommandRegex = /^\/([a-z][a-z0-9-]*)(?:\s+.*)?$/i;
|
|
8179
8709
|
const getSlashCommand = value => {
|
|
8180
8710
|
const trimmed = value.trim();
|
|
@@ -8452,6 +8982,19 @@ const withUpdatedMessageScrollTop = state => {
|
|
|
8452
8982
|
};
|
|
8453
8983
|
};
|
|
8454
8984
|
const workspaceUriPlaceholder = '{{workspaceUri}}';
|
|
8985
|
+
const clearComposerAttachments = async (sessionId, attachmentIds) => {
|
|
8986
|
+
if (!sessionId) {
|
|
8987
|
+
return;
|
|
8988
|
+
}
|
|
8989
|
+
for (const attachmentId of attachmentIds) {
|
|
8990
|
+
await appendChatViewEvent({
|
|
8991
|
+
attachmentId,
|
|
8992
|
+
sessionId,
|
|
8993
|
+
timestamp: new Date().toISOString(),
|
|
8994
|
+
type: 'chat-attachment-removed'
|
|
8995
|
+
});
|
|
8996
|
+
}
|
|
8997
|
+
};
|
|
8455
8998
|
const getCurrentDate = () => {
|
|
8456
8999
|
return new Date().toISOString().slice(0, 10);
|
|
8457
9000
|
};
|
|
@@ -8544,7 +9087,12 @@ const handleSubmit = async state => {
|
|
|
8544
9087
|
minute: '2-digit'
|
|
8545
9088
|
});
|
|
8546
9089
|
const userMessageId = crypto.randomUUID();
|
|
9090
|
+
const composerAttachments = state.composerAttachments.length > 0 ? state.composerAttachments : await getComposerAttachments(state.selectedSessionId);
|
|
9091
|
+
await clearComposerAttachments(state.selectedSessionId, composerAttachments.map(attachment => attachment.attachmentId));
|
|
8547
9092
|
const userMessage = {
|
|
9093
|
+
...(composerAttachments.length > 0 ? {
|
|
9094
|
+
attachments: composerAttachments
|
|
9095
|
+
} : {}),
|
|
8548
9096
|
id: userMessageId,
|
|
8549
9097
|
role: 'user',
|
|
8550
9098
|
text: userText,
|
|
@@ -8600,6 +9148,7 @@ const handleSubmit = async state => {
|
|
|
8600
9148
|
optimisticState = withUpdatedMessageScrollTop(focusInput({
|
|
8601
9149
|
...state,
|
|
8602
9150
|
composerAttachments: [],
|
|
9151
|
+
composerAttachmentsHeight: 0,
|
|
8603
9152
|
composerHeight: getMinComposerHeightForState(state),
|
|
8604
9153
|
composerSelectionEnd: 0,
|
|
8605
9154
|
composerSelectionStart: 0,
|
|
@@ -8637,6 +9186,8 @@ const handleSubmit = async state => {
|
|
|
8637
9186
|
}
|
|
8638
9187
|
optimisticState = withUpdatedMessageScrollTop(focusInput({
|
|
8639
9188
|
...state,
|
|
9189
|
+
composerAttachments: [],
|
|
9190
|
+
composerAttachmentsHeight: 0,
|
|
8640
9191
|
composerHeight: getMinComposerHeightForState(state),
|
|
8641
9192
|
composerSelectionEnd: 0,
|
|
8642
9193
|
composerSelectionStart: 0,
|
|
@@ -8656,6 +9207,9 @@ const handleSubmit = async state => {
|
|
|
8656
9207
|
latestState: optimisticState,
|
|
8657
9208
|
previousState: optimisticState
|
|
8658
9209
|
};
|
|
9210
|
+
let {
|
|
9211
|
+
mockOpenApiRequests
|
|
9212
|
+
} = optimisticState;
|
|
8659
9213
|
const selectedOptimisticSession = optimisticState.sessions.find(session => session.id === optimisticState.selectedSessionId);
|
|
8660
9214
|
const systemPrompt = getEffectiveSystemPrompt(optimisticState, selectedOptimisticSession);
|
|
8661
9215
|
const workspaceUri = getWorkspaceUri(optimisticState, selectedOptimisticSession);
|
|
@@ -8698,6 +9252,9 @@ const handleSubmit = async state => {
|
|
|
8698
9252
|
value: '[DONE]'
|
|
8699
9253
|
});
|
|
8700
9254
|
},
|
|
9255
|
+
onMockOpenApiRequestCaptured: async request => {
|
|
9256
|
+
mockOpenApiRequests = [...mockOpenApiRequests, request];
|
|
9257
|
+
},
|
|
8701
9258
|
...(handleTextChunkFunctionRef ? {
|
|
8702
9259
|
onTextChunk: handleTextChunkFunctionRef
|
|
8703
9260
|
} : {}),
|
|
@@ -8754,6 +9311,7 @@ const handleSubmit = async state => {
|
|
|
8754
9311
|
}
|
|
8755
9312
|
return withUpdatedMessageScrollTop(focusInput({
|
|
8756
9313
|
...latestState,
|
|
9314
|
+
mockOpenApiRequests,
|
|
8757
9315
|
nextMessageId: latestState.nextMessageId + 1,
|
|
8758
9316
|
parsedMessages: finalParsedMessages,
|
|
8759
9317
|
sessions: updatedSessions
|
|
@@ -8780,11 +9338,43 @@ const handleReasoningEffortChange = async (state, value) => {
|
|
|
8780
9338
|
return setReasoningEffort(state, value);
|
|
8781
9339
|
};
|
|
8782
9340
|
|
|
9341
|
+
const handleRemoveComposerAttachment = async (state, attachmentId) => {
|
|
9342
|
+
const {
|
|
9343
|
+
composerAttachments,
|
|
9344
|
+
selectedSessionId
|
|
9345
|
+
} = state;
|
|
9346
|
+
const nextComposerAttachments = composerAttachments.filter(attachment => attachment.attachmentId !== attachmentId);
|
|
9347
|
+
if (nextComposerAttachments.length === composerAttachments.length) {
|
|
9348
|
+
return state;
|
|
9349
|
+
}
|
|
9350
|
+
if (selectedSessionId) {
|
|
9351
|
+
await appendChatViewEvent({
|
|
9352
|
+
attachmentId,
|
|
9353
|
+
sessionId: selectedSessionId,
|
|
9354
|
+
timestamp: new Date().toISOString(),
|
|
9355
|
+
type: 'chat-attachment-removed'
|
|
9356
|
+
});
|
|
9357
|
+
}
|
|
9358
|
+
return {
|
|
9359
|
+
...state,
|
|
9360
|
+
composerAttachments: nextComposerAttachments,
|
|
9361
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(nextComposerAttachments, state.width)
|
|
9362
|
+
};
|
|
9363
|
+
};
|
|
9364
|
+
|
|
8783
9365
|
const openAgentModePicker = state => {
|
|
9366
|
+
if (!state.hasSpaceForAgentModePicker) {
|
|
9367
|
+
return {
|
|
9368
|
+
...state,
|
|
9369
|
+
agentModePickerOpen: false
|
|
9370
|
+
};
|
|
9371
|
+
}
|
|
8784
9372
|
const agentModePickerOpen = !state.agentModePickerOpen;
|
|
8785
9373
|
return {
|
|
8786
9374
|
...state,
|
|
8787
9375
|
agentModePickerOpen,
|
|
9376
|
+
focus: agentModePickerOpen ? 'picker-list' : state.focus,
|
|
9377
|
+
focused: agentModePickerOpen ? true : state.focused,
|
|
8788
9378
|
modelPickerOpen: false,
|
|
8789
9379
|
modelPickerSearchValue: '',
|
|
8790
9380
|
reasoningEffortPickerOpen: false,
|
|
@@ -8803,6 +9393,8 @@ const openReasoningEffortPicker = state => {
|
|
|
8803
9393
|
return {
|
|
8804
9394
|
...state,
|
|
8805
9395
|
agentModePickerOpen: false,
|
|
9396
|
+
focus: reasoningEffortPickerOpen ? 'picker-list' : state.focus,
|
|
9397
|
+
focused: reasoningEffortPickerOpen ? true : state.focused,
|
|
8806
9398
|
modelPickerOpen: false,
|
|
8807
9399
|
modelPickerSearchValue: '',
|
|
8808
9400
|
reasoningEffortPickerOpen,
|
|
@@ -8818,10 +9410,18 @@ const OpenOpenRouterApiKeySettings = 'open-openrouter-api-key-settings';
|
|
|
8818
9410
|
const OpenOpenRouterApiKeyWebsite = 'open-openrouter-api-key-website';
|
|
8819
9411
|
|
|
8820
9412
|
const openRunModePicker = state => {
|
|
9413
|
+
if (!state.hasSpaceForRunModePicker) {
|
|
9414
|
+
return {
|
|
9415
|
+
...state,
|
|
9416
|
+
runModePickerOpen: false
|
|
9417
|
+
};
|
|
9418
|
+
}
|
|
8821
9419
|
const runModePickerOpen = !state.runModePickerOpen;
|
|
8822
9420
|
return {
|
|
8823
9421
|
...state,
|
|
8824
9422
|
agentModePickerOpen: false,
|
|
9423
|
+
focus: runModePickerOpen ? 'picker-list' : state.focus,
|
|
9424
|
+
focused: runModePickerOpen ? true : state.focused,
|
|
8825
9425
|
modelPickerOpen: false,
|
|
8826
9426
|
modelPickerSearchValue: '',
|
|
8827
9427
|
reasoningEffortPickerOpen: false,
|
|
@@ -8831,13 +9431,19 @@ const openRunModePicker = state => {
|
|
|
8831
9431
|
};
|
|
8832
9432
|
|
|
8833
9433
|
const selectSession = async (state, id) => {
|
|
8834
|
-
const
|
|
9434
|
+
const {
|
|
9435
|
+
lastNormalViewMode,
|
|
9436
|
+
sessions,
|
|
9437
|
+
viewMode,
|
|
9438
|
+
width
|
|
9439
|
+
} = state;
|
|
9440
|
+
const exists = sessions.some(session => session.id === id);
|
|
8835
9441
|
if (!exists) {
|
|
8836
9442
|
return state;
|
|
8837
9443
|
}
|
|
8838
9444
|
const loadedSession = await getChatSession(id);
|
|
8839
9445
|
const composerAttachments = await getComposerAttachments(id);
|
|
8840
|
-
const
|
|
9446
|
+
const hydratedSessions = sessions.map(session => {
|
|
8841
9447
|
if (session.id !== id) {
|
|
8842
9448
|
return session;
|
|
8843
9449
|
}
|
|
@@ -8849,11 +9455,12 @@ const selectSession = async (state, id) => {
|
|
|
8849
9455
|
return {
|
|
8850
9456
|
...state,
|
|
8851
9457
|
composerAttachments,
|
|
8852
|
-
|
|
9458
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, width),
|
|
9459
|
+
lastNormalViewMode: viewMode === 'chat-focus' ? lastNormalViewMode : 'detail',
|
|
8853
9460
|
renamingSessionId: '',
|
|
8854
9461
|
selectedSessionId: id,
|
|
8855
|
-
sessions,
|
|
8856
|
-
viewMode:
|
|
9462
|
+
sessions: hydratedSessions,
|
|
9463
|
+
viewMode: viewMode === 'chat-focus' ? 'chat-focus' : 'detail'
|
|
8857
9464
|
};
|
|
8858
9465
|
};
|
|
8859
9466
|
|
|
@@ -8877,16 +9484,20 @@ const startRename = (state, id) => {
|
|
|
8877
9484
|
};
|
|
8878
9485
|
|
|
8879
9486
|
const toggleChatFocusMode = async state => {
|
|
8880
|
-
|
|
9487
|
+
const {
|
|
9488
|
+
lastNormalViewMode,
|
|
9489
|
+
viewMode
|
|
9490
|
+
} = state;
|
|
9491
|
+
if (viewMode === 'chat-focus') {
|
|
8881
9492
|
return {
|
|
8882
9493
|
...state,
|
|
8883
|
-
viewMode:
|
|
9494
|
+
viewMode: lastNormalViewMode
|
|
8884
9495
|
};
|
|
8885
9496
|
}
|
|
8886
|
-
if (
|
|
9497
|
+
if (viewMode === 'list' || viewMode === 'detail') {
|
|
8887
9498
|
return {
|
|
8888
9499
|
...state,
|
|
8889
|
-
lastNormalViewMode:
|
|
9500
|
+
lastNormalViewMode: viewMode,
|
|
8890
9501
|
viewMode: 'chat-focus'
|
|
8891
9502
|
};
|
|
8892
9503
|
}
|
|
@@ -8894,25 +9505,32 @@ const toggleChatFocusMode = async state => {
|
|
|
8894
9505
|
};
|
|
8895
9506
|
|
|
8896
9507
|
const toggleProjectExpanded = async (state, projectId) => {
|
|
8897
|
-
const
|
|
8898
|
-
|
|
8899
|
-
|
|
9508
|
+
const {
|
|
9509
|
+
projectExpandedIds,
|
|
9510
|
+
selectedSessionId,
|
|
9511
|
+
sessions,
|
|
9512
|
+
width
|
|
9513
|
+
} = state;
|
|
9514
|
+
const isExpanded = projectExpandedIds.includes(projectId);
|
|
9515
|
+
const nextProjectExpandedIds = isExpanded ? projectExpandedIds.filter(id => id !== projectId) : [...projectExpandedIds, projectId];
|
|
9516
|
+
const visibleSessions = getVisibleSessions(sessions, projectId);
|
|
8900
9517
|
if (visibleSessions.length === 0) {
|
|
8901
9518
|
return {
|
|
8902
9519
|
...state,
|
|
8903
9520
|
composerAttachments: [],
|
|
8904
|
-
|
|
9521
|
+
composerAttachmentsHeight: 0,
|
|
9522
|
+
projectExpandedIds: nextProjectExpandedIds,
|
|
8905
9523
|
selectedProjectId: projectId,
|
|
8906
9524
|
selectedSessionId: '',
|
|
8907
9525
|
viewMode: 'chat-focus'
|
|
8908
9526
|
};
|
|
8909
9527
|
}
|
|
8910
|
-
const selectedSessionVisible = visibleSessions.some(session => session.id ===
|
|
8911
|
-
const
|
|
8912
|
-
const loadedSession = await getChatSession(
|
|
8913
|
-
const composerAttachments = await getComposerAttachments(
|
|
8914
|
-
const
|
|
8915
|
-
if (session.id !==
|
|
9528
|
+
const selectedSessionVisible = visibleSessions.some(session => session.id === selectedSessionId);
|
|
9529
|
+
const nextSelectedSessionId = selectedSessionVisible ? selectedSessionId : visibleSessions[0].id;
|
|
9530
|
+
const loadedSession = await getChatSession(nextSelectedSessionId);
|
|
9531
|
+
const composerAttachments = await getComposerAttachments(nextSelectedSessionId);
|
|
9532
|
+
const hydratedSessions = sessions.map(session => {
|
|
9533
|
+
if (session.id !== nextSelectedSessionId || !loadedSession) {
|
|
8916
9534
|
return session;
|
|
8917
9535
|
}
|
|
8918
9536
|
return loadedSession;
|
|
@@ -8920,10 +9538,11 @@ const toggleProjectExpanded = async (state, projectId) => {
|
|
|
8920
9538
|
return {
|
|
8921
9539
|
...state,
|
|
8922
9540
|
composerAttachments,
|
|
8923
|
-
|
|
9541
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, width),
|
|
9542
|
+
projectExpandedIds: nextProjectExpandedIds,
|
|
8924
9543
|
selectedProjectId: projectId,
|
|
8925
|
-
selectedSessionId,
|
|
8926
|
-
sessions,
|
|
9544
|
+
selectedSessionId: nextSelectedSessionId,
|
|
9545
|
+
sessions: hydratedSessions,
|
|
8927
9546
|
viewMode: 'chat-focus'
|
|
8928
9547
|
};
|
|
8929
9548
|
};
|
|
@@ -9057,10 +9676,23 @@ const handleClick = async (state, name, id = '', eventX = 0, eventY = 0) => {
|
|
|
9057
9676
|
const sessionId = getRenameIdFromInputName(name);
|
|
9058
9677
|
return startRename(state, sessionId);
|
|
9059
9678
|
}
|
|
9679
|
+
case isComposerAttachmentRemoveInputName(name):
|
|
9680
|
+
{
|
|
9681
|
+
const attachmentId = getAttachmentIdFromComposerAttachmentRemoveInputName(name);
|
|
9682
|
+
return handleRemoveComposerAttachment(state, attachmentId);
|
|
9683
|
+
}
|
|
9060
9684
|
case name === SessionDelete:
|
|
9061
9685
|
return deleteSession(state, id);
|
|
9686
|
+
case name === ProjectDelete:
|
|
9687
|
+
return deleteProject(state, id);
|
|
9062
9688
|
case name === Send:
|
|
9063
9689
|
return handleClickSend(state);
|
|
9690
|
+
case name === ScrollDown:
|
|
9691
|
+
return {
|
|
9692
|
+
...state,
|
|
9693
|
+
messagesAutoScrollEnabled: true,
|
|
9694
|
+
messagesScrollTop: getNextAutoScrollTop(state.messagesScrollTop)
|
|
9695
|
+
};
|
|
9064
9696
|
case name === SaveOpenRouterApiKey:
|
|
9065
9697
|
return handleClickSaveOpenRouterApiKey(state);
|
|
9066
9698
|
case name === SaveOpenApiApiKey:
|
|
@@ -9086,6 +9718,7 @@ const handleClickBack = async state => {
|
|
|
9086
9718
|
return {
|
|
9087
9719
|
...state,
|
|
9088
9720
|
composerAttachments: [],
|
|
9721
|
+
composerAttachmentsHeight: 0,
|
|
9089
9722
|
lastNormalViewMode: 'list',
|
|
9090
9723
|
renamingSessionId: '',
|
|
9091
9724
|
viewMode: 'list'
|
|
@@ -9167,6 +9800,7 @@ const handleClickNew = async state => {
|
|
|
9167
9800
|
return focusInput({
|
|
9168
9801
|
...clearedState,
|
|
9169
9802
|
composerAttachments: [],
|
|
9803
|
+
composerAttachmentsHeight: 0,
|
|
9170
9804
|
lastNormalViewMode: 'list',
|
|
9171
9805
|
renamingSessionId: '',
|
|
9172
9806
|
viewMode: 'list'
|
|
@@ -9182,7 +9816,23 @@ const handleClickSettings = async () => {
|
|
|
9182
9816
|
await invoke('Main.openUri', 'app://settings.json');
|
|
9183
9817
|
};
|
|
9184
9818
|
|
|
9185
|
-
const handleContextMenuChatImageAttachment = async state => {
|
|
9819
|
+
const handleContextMenuChatImageAttachment = async (state, name, eventX, eventY) => {
|
|
9820
|
+
const getFallbackAttachment = () => {
|
|
9821
|
+
const attachmentsWithPreview = state.composerAttachments.filter(attachment => attachment.previewSrc);
|
|
9822
|
+
if (attachmentsWithPreview.length !== 1) {
|
|
9823
|
+
return undefined;
|
|
9824
|
+
}
|
|
9825
|
+
return attachmentsWithPreview[0];
|
|
9826
|
+
};
|
|
9827
|
+
const attachment = isComposerAttachmentPreviewInputName(name) ? state.composerAttachments.find(item => item.attachmentId === getAttachmentIdFromComposerAttachmentPreviewInputName(name)) : getFallbackAttachment();
|
|
9828
|
+
if (!attachment?.previewSrc) {
|
|
9829
|
+
return state;
|
|
9830
|
+
}
|
|
9831
|
+
await showContextMenu2(state.uid, MenuChatAttachment, eventX, eventY, {
|
|
9832
|
+
attachmentId: attachment.attachmentId,
|
|
9833
|
+
menuId: MenuChatAttachment,
|
|
9834
|
+
previewSrc: attachment.previewSrc
|
|
9835
|
+
});
|
|
9186
9836
|
return state;
|
|
9187
9837
|
};
|
|
9188
9838
|
|
|
@@ -9195,16 +9845,20 @@ const handleContextMenuChatSendAreaBottom = async state => {
|
|
|
9195
9845
|
};
|
|
9196
9846
|
|
|
9197
9847
|
const handleDragEnter = async (state, name, hasFiles = true) => {
|
|
9848
|
+
const {
|
|
9849
|
+
composerDropActive,
|
|
9850
|
+
composerDropEnabled
|
|
9851
|
+
} = state;
|
|
9198
9852
|
if (name !== ComposerDropTarget) {
|
|
9199
9853
|
return state;
|
|
9200
9854
|
}
|
|
9201
|
-
if (!
|
|
9855
|
+
if (!composerDropEnabled) {
|
|
9202
9856
|
return state;
|
|
9203
9857
|
}
|
|
9204
9858
|
if (!hasFiles) {
|
|
9205
9859
|
return state;
|
|
9206
9860
|
}
|
|
9207
|
-
if (
|
|
9861
|
+
if (composerDropActive) {
|
|
9208
9862
|
return state;
|
|
9209
9863
|
}
|
|
9210
9864
|
return {
|
|
@@ -9227,16 +9881,20 @@ const handleDragLeave = async (state, name) => {
|
|
|
9227
9881
|
};
|
|
9228
9882
|
|
|
9229
9883
|
const handleDragOver = async (state, name, hasFiles = true) => {
|
|
9884
|
+
const {
|
|
9885
|
+
composerDropActive,
|
|
9886
|
+
composerDropEnabled
|
|
9887
|
+
} = state;
|
|
9230
9888
|
if (name !== ComposerDropTarget) {
|
|
9231
9889
|
return state;
|
|
9232
9890
|
}
|
|
9233
|
-
if (!
|
|
9891
|
+
if (!composerDropEnabled) {
|
|
9234
9892
|
return state;
|
|
9235
9893
|
}
|
|
9236
9894
|
if (!hasFiles) {
|
|
9237
9895
|
return state;
|
|
9238
9896
|
}
|
|
9239
|
-
if (
|
|
9897
|
+
if (composerDropActive) {
|
|
9240
9898
|
return state;
|
|
9241
9899
|
}
|
|
9242
9900
|
return {
|
|
@@ -9245,47 +9903,92 @@ const handleDragOver = async (state, name, hasFiles = true) => {
|
|
|
9245
9903
|
};
|
|
9246
9904
|
};
|
|
9247
9905
|
|
|
9248
|
-
const
|
|
9906
|
+
const getDroppedFiles = async fileHandles => {
|
|
9907
|
+
// TODO adjust e2e test and remove this code
|
|
9908
|
+
if (fileHandles.some(item => typeof item !== 'number')) {
|
|
9909
|
+
return fileHandles.map(item => {
|
|
9910
|
+
return {
|
|
9911
|
+
getFile() {
|
|
9912
|
+
return item;
|
|
9913
|
+
}
|
|
9914
|
+
};
|
|
9915
|
+
});
|
|
9916
|
+
}
|
|
9917
|
+
const actualHandles = await getFileHandles(fileHandles);
|
|
9918
|
+
return actualHandles.map(item => item.value).filter(item => item.kind === 'file');
|
|
9919
|
+
};
|
|
9920
|
+
|
|
9921
|
+
const handleDropFiles = async (state, name, fileHandles = []) => {
|
|
9922
|
+
const droppedFileHandles = await getDroppedFiles(fileHandles);
|
|
9923
|
+
const {
|
|
9924
|
+
composerDropActive,
|
|
9925
|
+
composerDropEnabled,
|
|
9926
|
+
nextAttachmentId,
|
|
9927
|
+
selectedSessionId,
|
|
9928
|
+
width
|
|
9929
|
+
} = state;
|
|
9249
9930
|
if (name !== ComposerDropTarget) {
|
|
9250
9931
|
return state;
|
|
9251
9932
|
}
|
|
9252
|
-
if (!
|
|
9933
|
+
if (!composerDropEnabled) {
|
|
9253
9934
|
return {
|
|
9254
9935
|
...state,
|
|
9255
9936
|
composerDropActive: false
|
|
9256
9937
|
};
|
|
9257
9938
|
}
|
|
9258
|
-
const nextState =
|
|
9939
|
+
const nextState = composerDropActive === false ? state : {
|
|
9259
9940
|
...state,
|
|
9260
9941
|
composerDropActive: false
|
|
9261
9942
|
};
|
|
9262
|
-
if (!
|
|
9943
|
+
if (!selectedSessionId || fileHandles.length === 0) {
|
|
9263
9944
|
return nextState;
|
|
9264
9945
|
}
|
|
9265
9946
|
const nextAttachments = [];
|
|
9266
|
-
for (const
|
|
9267
|
-
const
|
|
9947
|
+
for (const droppedFileHandle of droppedFileHandles) {
|
|
9948
|
+
const file = await droppedFileHandle.getFile();
|
|
9949
|
+
const attachmentId = `attachment-${nextAttachmentId + nextAttachments.length}`;
|
|
9950
|
+
const displayType = await getComposerAttachmentDisplayType(file, file.name, file.type);
|
|
9951
|
+
const previewSrc = await getComposerAttachmentPreviewSrc(file, displayType, file.type);
|
|
9952
|
+
const textContent = await getComposerAttachmentTextContent(file, displayType);
|
|
9268
9953
|
await appendChatViewEvent({
|
|
9269
9954
|
attachmentId,
|
|
9270
9955
|
blob: file,
|
|
9271
9956
|
mimeType: file.type,
|
|
9272
9957
|
name: file.name,
|
|
9273
|
-
sessionId:
|
|
9958
|
+
sessionId: selectedSessionId,
|
|
9274
9959
|
size: file.size,
|
|
9275
9960
|
timestamp: new Date().toISOString(),
|
|
9276
9961
|
type: 'chat-attachment-added'
|
|
9277
9962
|
});
|
|
9278
9963
|
nextAttachments.push({
|
|
9279
9964
|
attachmentId,
|
|
9280
|
-
displayType
|
|
9965
|
+
displayType,
|
|
9281
9966
|
mimeType: file.type,
|
|
9282
9967
|
name: file.name,
|
|
9283
|
-
|
|
9968
|
+
...(previewSrc ? {
|
|
9969
|
+
previewSrc
|
|
9970
|
+
} : {}),
|
|
9971
|
+
size: file.size,
|
|
9972
|
+
...(typeof textContent === 'string' ? {
|
|
9973
|
+
textContent
|
|
9974
|
+
} : {})
|
|
9284
9975
|
});
|
|
9285
9976
|
}
|
|
9286
9977
|
return {
|
|
9287
9978
|
...nextState,
|
|
9288
|
-
composerAttachments: [...nextState.composerAttachments, ...nextAttachments]
|
|
9979
|
+
composerAttachments: [...nextState.composerAttachments, ...nextAttachments],
|
|
9980
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight([...nextState.composerAttachments, ...nextAttachments], width),
|
|
9981
|
+
nextAttachmentId: nextAttachmentId + nextAttachments.length
|
|
9982
|
+
};
|
|
9983
|
+
};
|
|
9984
|
+
|
|
9985
|
+
const handleErrorComposerAttachmentPreviewOverlay = async state => {
|
|
9986
|
+
if (!state.composerAttachmentPreviewOverlayAttachmentId || state.composerAttachmentPreviewOverlayError) {
|
|
9987
|
+
return state;
|
|
9988
|
+
}
|
|
9989
|
+
return {
|
|
9990
|
+
...state,
|
|
9991
|
+
composerAttachmentPreviewOverlayError: true
|
|
9289
9992
|
};
|
|
9290
9993
|
};
|
|
9291
9994
|
|
|
@@ -9297,9 +10000,6 @@ const handleSearchValueChange = (state, newValue) => {
|
|
|
9297
10000
|
};
|
|
9298
10001
|
|
|
9299
10002
|
const handleInput = async (state, name, value, inputSource = 'user') => {
|
|
9300
|
-
const {
|
|
9301
|
-
selectedSessionId
|
|
9302
|
-
} = state;
|
|
9303
10003
|
if (name === OpenApiApiKeyInput) {
|
|
9304
10004
|
return {
|
|
9305
10005
|
...state,
|
|
@@ -9328,18 +10028,21 @@ const handleInput = async (state, name, value, inputSource = 'user') => {
|
|
|
9328
10028
|
if (name !== Composer) {
|
|
9329
10029
|
return state;
|
|
9330
10030
|
}
|
|
9331
|
-
if (selectedSessionId) {
|
|
10031
|
+
if (state.selectedSessionId) {
|
|
9332
10032
|
await appendChatViewEvent({
|
|
9333
|
-
sessionId: selectedSessionId,
|
|
10033
|
+
sessionId: state.selectedSessionId,
|
|
9334
10034
|
timestamp: new Date().toISOString(),
|
|
9335
10035
|
type: 'handle-input',
|
|
9336
10036
|
value
|
|
9337
10037
|
});
|
|
9338
10038
|
}
|
|
9339
10039
|
const composerHeight = await getComposerHeight(state, value);
|
|
10040
|
+
const composerAttachmentsHeight = getComposerAttachmentsHeight(state.composerAttachments, state.width);
|
|
10041
|
+
const chatInputHistoryDraft = state.chatInputHistoryIndex === -1 ? value : state.chatInputHistoryDraft;
|
|
9340
10042
|
return {
|
|
9341
10043
|
...state,
|
|
9342
|
-
chatInputHistoryDraft
|
|
10044
|
+
chatInputHistoryDraft,
|
|
10045
|
+
composerAttachmentsHeight,
|
|
9343
10046
|
composerHeight,
|
|
9344
10047
|
composerSelectionEnd: value.length,
|
|
9345
10048
|
composerSelectionStart: value.length,
|
|
@@ -9395,6 +10098,18 @@ const handleInputFocus = async (state, name) => {
|
|
|
9395
10098
|
};
|
|
9396
10099
|
};
|
|
9397
10100
|
|
|
10101
|
+
const getSubmittedRenameState = (state, sessions) => {
|
|
10102
|
+
return {
|
|
10103
|
+
...state,
|
|
10104
|
+
composerHeight: getMinComposerHeightForState(state),
|
|
10105
|
+
composerSelectionEnd: 0,
|
|
10106
|
+
composerSelectionStart: 0,
|
|
10107
|
+
composerValue: '',
|
|
10108
|
+
inputSource: 'script',
|
|
10109
|
+
renamingSessionId: '',
|
|
10110
|
+
sessions
|
|
10111
|
+
};
|
|
10112
|
+
};
|
|
9398
10113
|
const submitRename = async state => {
|
|
9399
10114
|
const {
|
|
9400
10115
|
composerValue,
|
|
@@ -9408,29 +10123,24 @@ const submitRename = async state => {
|
|
|
9408
10123
|
renamingSessionId: ''
|
|
9409
10124
|
};
|
|
9410
10125
|
}
|
|
10126
|
+
const promptedTitle = sanitizeGeneratedTitle(await invoke('Main.prompt', title));
|
|
10127
|
+
if (!promptedTitle) {
|
|
10128
|
+
return getSubmittedRenameState(state, sessions);
|
|
10129
|
+
}
|
|
9411
10130
|
const updatedSessions = sessions.map(session => {
|
|
9412
10131
|
if (session.id !== renamingSessionId) {
|
|
9413
10132
|
return session;
|
|
9414
10133
|
}
|
|
9415
10134
|
return {
|
|
9416
10135
|
...session,
|
|
9417
|
-
title
|
|
10136
|
+
title: promptedTitle
|
|
9418
10137
|
};
|
|
9419
10138
|
});
|
|
9420
10139
|
const renamedSession = updatedSessions.find(session => session.id === renamingSessionId);
|
|
9421
10140
|
if (renamedSession) {
|
|
9422
10141
|
await saveChatSession(renamedSession);
|
|
9423
10142
|
}
|
|
9424
|
-
return
|
|
9425
|
-
...state,
|
|
9426
|
-
composerHeight: getMinComposerHeightForState(state),
|
|
9427
|
-
composerSelectionEnd: 0,
|
|
9428
|
-
composerSelectionStart: 0,
|
|
9429
|
-
composerValue: '',
|
|
9430
|
-
inputSource: 'script',
|
|
9431
|
-
renamingSessionId: '',
|
|
9432
|
-
sessions: updatedSessions
|
|
9433
|
-
};
|
|
10143
|
+
return getSubmittedRenameState(state, updatedSessions);
|
|
9434
10144
|
};
|
|
9435
10145
|
|
|
9436
10146
|
const handleKeyDown = async (state, key, shiftKey) => {
|
|
@@ -9464,19 +10174,77 @@ const handleMissingOpenRouterApiKeyFormSubmit = async state => {
|
|
|
9464
10174
|
};
|
|
9465
10175
|
|
|
9466
10176
|
const handleModelChange = async (state, value) => {
|
|
10177
|
+
const {
|
|
10178
|
+
modelPickerHeaderHeight,
|
|
10179
|
+
models
|
|
10180
|
+
} = state;
|
|
9467
10181
|
return {
|
|
9468
10182
|
...state,
|
|
9469
10183
|
agentModePickerOpen: false,
|
|
9470
|
-
modelPickerHeight: getModelPickerHeight(
|
|
10184
|
+
modelPickerHeight: getModelPickerHeight(modelPickerHeaderHeight, models.length),
|
|
9471
10185
|
modelPickerListScrollTop: 0,
|
|
9472
10186
|
modelPickerOpen: false,
|
|
9473
10187
|
modelPickerSearchValue: '',
|
|
9474
10188
|
reasoningEffortPickerOpen: false,
|
|
9475
10189
|
selectedModelId: value,
|
|
9476
|
-
visibleModels:
|
|
10190
|
+
visibleModels: models
|
|
10191
|
+
};
|
|
10192
|
+
};
|
|
10193
|
+
|
|
10194
|
+
const hideComposerAttachmentPreviewOverlay = async state => {
|
|
10195
|
+
if (!state.composerAttachmentPreviewOverlayAttachmentId && !state.composerAttachmentPreviewOverlayError) {
|
|
10196
|
+
return state;
|
|
10197
|
+
}
|
|
10198
|
+
return {
|
|
10199
|
+
...state,
|
|
10200
|
+
composerAttachmentPreviewOverlayAttachmentId: '',
|
|
10201
|
+
composerAttachmentPreviewOverlayError: false
|
|
10202
|
+
};
|
|
10203
|
+
};
|
|
10204
|
+
|
|
10205
|
+
const isCurrentAttachmentTarget = (name, attachmentId) => {
|
|
10206
|
+
return name === getComposerAttachmentInputName(attachmentId) || isComposerAttachmentRemoveInputName(name) && getAttachmentIdFromComposerAttachmentRemoveInputName(name) === attachmentId;
|
|
10207
|
+
};
|
|
10208
|
+
const handleMouseOut = async (state, name, relatedName = '') => {
|
|
10209
|
+
const {
|
|
10210
|
+
composerAttachmentPreviewOverlayAttachmentId
|
|
10211
|
+
} = state;
|
|
10212
|
+
if (!composerAttachmentPreviewOverlayAttachmentId) {
|
|
10213
|
+
return state;
|
|
10214
|
+
}
|
|
10215
|
+
const isLeavingOverlay = isComposerAttachmentPreviewOverlayInputName(name);
|
|
10216
|
+
if (!isLeavingOverlay) {
|
|
10217
|
+
return state;
|
|
10218
|
+
}
|
|
10219
|
+
if (isComposerAttachmentPreviewOverlayInputName(relatedName) || isCurrentAttachmentTarget(relatedName, composerAttachmentPreviewOverlayAttachmentId)) {
|
|
10220
|
+
return state;
|
|
10221
|
+
}
|
|
10222
|
+
return hideComposerAttachmentPreviewOverlay(state);
|
|
10223
|
+
};
|
|
10224
|
+
|
|
10225
|
+
const showComposerAttachmentPreviewOverlay = async (state, attachmentId) => {
|
|
10226
|
+
const attachment = state.composerAttachments.find(item => item.attachmentId === attachmentId) ?? state.composerAttachments.find(item => item.displayType === 'image' && !!item.previewSrc);
|
|
10227
|
+
if (!attachment || attachment.displayType !== 'image' || !attachment.previewSrc) {
|
|
10228
|
+
return state;
|
|
10229
|
+
}
|
|
10230
|
+
if (state.composerAttachmentPreviewOverlayAttachmentId === attachmentId && !state.composerAttachmentPreviewOverlayError) {
|
|
10231
|
+
return state;
|
|
10232
|
+
}
|
|
10233
|
+
return {
|
|
10234
|
+
...state,
|
|
10235
|
+
composerAttachmentPreviewOverlayAttachmentId: attachmentId,
|
|
10236
|
+
composerAttachmentPreviewOverlayError: false
|
|
9477
10237
|
};
|
|
9478
10238
|
};
|
|
9479
10239
|
|
|
10240
|
+
const handleMouseOver = async (state, name) => {
|
|
10241
|
+
if (!isComposerAttachmentInputName(name)) {
|
|
10242
|
+
return state;
|
|
10243
|
+
}
|
|
10244
|
+
const attachmentId = getAttachmentIdFromComposerAttachmentInputName(name);
|
|
10245
|
+
return showComposerAttachmentPreviewOverlay(state, attachmentId);
|
|
10246
|
+
};
|
|
10247
|
+
|
|
9480
10248
|
const handleNewline = async state => {
|
|
9481
10249
|
const {
|
|
9482
10250
|
composerValue
|
|
@@ -9502,7 +10270,7 @@ const handleProjectAddButtonContextMenu = async (state, button, x, y) => {
|
|
|
9502
10270
|
return state;
|
|
9503
10271
|
};
|
|
9504
10272
|
|
|
9505
|
-
const
|
|
10273
|
+
const getProjectAtIndex = (state, index) => {
|
|
9506
10274
|
const {
|
|
9507
10275
|
projectExpandedIds,
|
|
9508
10276
|
projects,
|
|
@@ -9512,7 +10280,7 @@ const getProjectIdAtIndex = (state, index) => {
|
|
|
9512
10280
|
let currentIndex = 0;
|
|
9513
10281
|
for (const project of projects) {
|
|
9514
10282
|
if (currentIndex === index) {
|
|
9515
|
-
return project
|
|
10283
|
+
return project;
|
|
9516
10284
|
}
|
|
9517
10285
|
currentIndex++;
|
|
9518
10286
|
if (projectExpandedIds.includes(project.id)) {
|
|
@@ -9522,13 +10290,13 @@ const getProjectIdAtIndex = (state, index) => {
|
|
|
9522
10290
|
continue;
|
|
9523
10291
|
}
|
|
9524
10292
|
if (currentIndex === index) {
|
|
9525
|
-
return project
|
|
10293
|
+
return project;
|
|
9526
10294
|
}
|
|
9527
10295
|
currentIndex++;
|
|
9528
10296
|
}
|
|
9529
10297
|
}
|
|
9530
10298
|
}
|
|
9531
|
-
return
|
|
10299
|
+
return undefined;
|
|
9532
10300
|
};
|
|
9533
10301
|
const handleProjectListContextMenu = async (state, button, x, y) => {
|
|
9534
10302
|
const {
|
|
@@ -9541,13 +10309,14 @@ const handleProjectListContextMenu = async (state, button, x, y) => {
|
|
|
9541
10309
|
if (index < 0) {
|
|
9542
10310
|
return state;
|
|
9543
10311
|
}
|
|
9544
|
-
const
|
|
9545
|
-
if (!
|
|
10312
|
+
const project = getProjectAtIndex(state, index);
|
|
10313
|
+
if (!project) {
|
|
9546
10314
|
return state;
|
|
9547
10315
|
}
|
|
9548
10316
|
await showContextMenu2(uid, MenuChatProjectList, x, y, {
|
|
10317
|
+
canRemoveProject: project.name !== '_blank',
|
|
9549
10318
|
menuId: MenuChatProjectList,
|
|
9550
|
-
projectId
|
|
10319
|
+
projectId: project.id
|
|
9551
10320
|
});
|
|
9552
10321
|
return state;
|
|
9553
10322
|
};
|
|
@@ -9670,6 +10439,23 @@ const getSavedChatListScrollTop = savedState => {
|
|
|
9670
10439
|
return chatListScrollTop;
|
|
9671
10440
|
};
|
|
9672
10441
|
|
|
10442
|
+
const getSavedComposerSelection = (savedState, composerValue) => {
|
|
10443
|
+
if (!isObject$1(savedState)) {
|
|
10444
|
+
return undefined;
|
|
10445
|
+
}
|
|
10446
|
+
const {
|
|
10447
|
+
composerSelectionEnd,
|
|
10448
|
+
composerSelectionStart
|
|
10449
|
+
} = savedState;
|
|
10450
|
+
if (typeof composerSelectionStart !== 'number') {
|
|
10451
|
+
return undefined;
|
|
10452
|
+
}
|
|
10453
|
+
if (typeof composerSelectionEnd !== 'number') {
|
|
10454
|
+
return undefined;
|
|
10455
|
+
}
|
|
10456
|
+
return getNormalizedComposerSelection(composerValue, composerSelectionStart, composerSelectionEnd);
|
|
10457
|
+
};
|
|
10458
|
+
|
|
9673
10459
|
const getSavedComposerValue = savedState => {
|
|
9674
10460
|
if (!isObject$1(savedState)) {
|
|
9675
10461
|
return undefined;
|
|
@@ -9971,6 +10757,15 @@ const loadReasoningPickerEnabled = async () => {
|
|
|
9971
10757
|
}
|
|
9972
10758
|
};
|
|
9973
10759
|
|
|
10760
|
+
const loadScrollDownButtonEnabled = async () => {
|
|
10761
|
+
try {
|
|
10762
|
+
const savedScrollDownButtonEnabled = await get('chatView.scrollDownButtonEnabled');
|
|
10763
|
+
return typeof savedScrollDownButtonEnabled === 'boolean' ? savedScrollDownButtonEnabled : false;
|
|
10764
|
+
} catch {
|
|
10765
|
+
return false;
|
|
10766
|
+
}
|
|
10767
|
+
};
|
|
10768
|
+
|
|
9974
10769
|
const loadSearchEnabled = async () => {
|
|
9975
10770
|
try {
|
|
9976
10771
|
const savedSearchEnabled = await get('chatView.searchEnabled');
|
|
@@ -10062,7 +10857,7 @@ const loadVoiceDictationEnabled = async () => {
|
|
|
10062
10857
|
};
|
|
10063
10858
|
|
|
10064
10859
|
const loadPreferences = async () => {
|
|
10065
|
-
const [aiSessionTitleGenerationEnabled, authAccessToken, authEnabled, authRefreshToken, backendUrl, chatHistoryEnabled, composerDropEnabled, openApiApiKey, openRouterApiKey, emitStreamingFunctionCallEvents, reasoningPickerEnabled, searchEnabled, streamingEnabled, todoListToolEnabled, toolEnablement, passIncludeObfuscation, useChatCoordinatorWorker, useChatMathWorker, useChatMessageParsingWorker, useChatNetworkWorkerForRequests, useChatToolWorker, voiceDictationEnabled] = await Promise.all([loadAiSessionTitleGenerationEnabled(), loadBackendAccessToken(), loadAuthEnabled(), loadBackendRefreshToken(), loadBackendUrl(), loadChatHistoryEnabled(), loadComposerDropEnabled(), loadOpenApiApiKey(), loadOpenRouterApiKey(), loadEmitStreamingFunctionCallEvents(), loadReasoningPickerEnabled(), loadSearchEnabled(), loadStreamingEnabled(), loadTodoListToolEnabled(), loadToolEnablement(), loadPassIncludeObfuscation(), loadUseChatCoordinatorWorker(), loadUseChatMathWorker(), loadUseChatMessageParsingWorker(), loadUseChatNetworkWorkerForRequests(), loadUseChatToolWorker(), loadVoiceDictationEnabled()]);
|
|
10860
|
+
const [aiSessionTitleGenerationEnabled, authAccessToken, authEnabled, authRefreshToken, backendUrl, chatHistoryEnabled, composerDropEnabled, openApiApiKey, openRouterApiKey, emitStreamingFunctionCallEvents, reasoningPickerEnabled, scrollDownButtonEnabled, searchEnabled, streamingEnabled, todoListToolEnabled, toolEnablement, passIncludeObfuscation, useChatCoordinatorWorker, useChatMathWorker, useChatMessageParsingWorker, useChatNetworkWorkerForRequests, useChatToolWorker, voiceDictationEnabled] = await Promise.all([loadAiSessionTitleGenerationEnabled(), loadBackendAccessToken(), loadAuthEnabled(), loadBackendRefreshToken(), loadBackendUrl(), loadChatHistoryEnabled(), loadComposerDropEnabled(), loadOpenApiApiKey(), loadOpenRouterApiKey(), loadEmitStreamingFunctionCallEvents(), loadReasoningPickerEnabled(), loadScrollDownButtonEnabled(), loadSearchEnabled(), loadStreamingEnabled(), loadTodoListToolEnabled(), loadToolEnablement(), loadPassIncludeObfuscation(), loadUseChatCoordinatorWorker(), loadUseChatMathWorker(), loadUseChatMessageParsingWorker(), loadUseChatNetworkWorkerForRequests(), loadUseChatToolWorker(), loadVoiceDictationEnabled()]);
|
|
10066
10861
|
return {
|
|
10067
10862
|
aiSessionTitleGenerationEnabled,
|
|
10068
10863
|
authAccessToken,
|
|
@@ -10076,6 +10871,7 @@ const loadPreferences = async () => {
|
|
|
10076
10871
|
openRouterApiKey,
|
|
10077
10872
|
passIncludeObfuscation,
|
|
10078
10873
|
reasoningPickerEnabled,
|
|
10874
|
+
scrollDownButtonEnabled,
|
|
10079
10875
|
searchEnabled,
|
|
10080
10876
|
streamingEnabled,
|
|
10081
10877
|
todoListToolEnabled,
|
|
@@ -10133,6 +10929,9 @@ const loadContent = async (state, savedState) => {
|
|
|
10133
10929
|
const savedSelectedModelId = getSavedSelectedModelId(savedState);
|
|
10134
10930
|
const savedViewMode = getSavedViewMode(savedState);
|
|
10135
10931
|
const savedComposerValue = getSavedComposerValue(savedState);
|
|
10932
|
+
const composerValue = savedComposerValue ?? state.composerValue;
|
|
10933
|
+
const savedComposerSelection = getSavedComposerSelection(savedState, composerValue);
|
|
10934
|
+
const [composerSelectionStart, composerSelectionEnd] = savedComposerSelection ?? [state.composerSelectionStart, state.composerSelectionEnd];
|
|
10136
10935
|
const {
|
|
10137
10936
|
aiSessionTitleGenerationEnabled,
|
|
10138
10937
|
authAccessToken,
|
|
@@ -10146,6 +10945,7 @@ const loadContent = async (state, savedState) => {
|
|
|
10146
10945
|
openRouterApiKey,
|
|
10147
10946
|
passIncludeObfuscation,
|
|
10148
10947
|
reasoningPickerEnabled,
|
|
10948
|
+
scrollDownButtonEnabled,
|
|
10149
10949
|
searchEnabled,
|
|
10150
10950
|
streamingEnabled,
|
|
10151
10951
|
todoListToolEnabled,
|
|
@@ -10221,9 +11021,12 @@ const loadContent = async (state, savedState) => {
|
|
|
10221
11021
|
chatHistoryEnabled,
|
|
10222
11022
|
chatListScrollTop,
|
|
10223
11023
|
composerAttachments,
|
|
11024
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, state.width),
|
|
10224
11025
|
composerDropActive: false,
|
|
10225
11026
|
composerDropEnabled,
|
|
10226
|
-
|
|
11027
|
+
composerSelectionEnd,
|
|
11028
|
+
composerSelectionStart,
|
|
11029
|
+
composerValue,
|
|
10227
11030
|
emitStreamingFunctionCallEvents,
|
|
10228
11031
|
initial: false,
|
|
10229
11032
|
lastNormalViewMode,
|
|
@@ -10245,6 +11048,7 @@ const loadContent = async (state, savedState) => {
|
|
|
10245
11048
|
reasoningEffortPickerOpen: false,
|
|
10246
11049
|
reasoningPickerEnabled,
|
|
10247
11050
|
runModePickerOpen: false,
|
|
11051
|
+
scrollDownButtonEnabled,
|
|
10248
11052
|
searchEnabled,
|
|
10249
11053
|
searchFieldVisible: false,
|
|
10250
11054
|
searchValue: '',
|
|
@@ -10302,7 +11106,7 @@ const mockOpenApiRequestGetAll = _state => {
|
|
|
10302
11106
|
};
|
|
10303
11107
|
|
|
10304
11108
|
const mockOpenApiRequestReset = state => {
|
|
10305
|
-
reset$
|
|
11109
|
+
reset$2();
|
|
10306
11110
|
return state;
|
|
10307
11111
|
};
|
|
10308
11112
|
|
|
@@ -10327,20 +11131,43 @@ const mockOpenApiStreamPushChunk = (state, chunk) => {
|
|
|
10327
11131
|
};
|
|
10328
11132
|
|
|
10329
11133
|
const mockOpenApiStreamReset = state => {
|
|
10330
|
-
reset$
|
|
11134
|
+
reset$1();
|
|
10331
11135
|
return state;
|
|
10332
11136
|
};
|
|
10333
11137
|
|
|
10334
|
-
const
|
|
10335
|
-
|
|
10336
|
-
sessions: currentSessions
|
|
10337
|
-
} = state;
|
|
10338
|
-
if (!mockSessionId) {
|
|
11138
|
+
const openMockProject = async (state, projectId, projectName, projectUri) => {
|
|
11139
|
+
if (!projectId || !projectName) {
|
|
10339
11140
|
return state;
|
|
10340
11141
|
}
|
|
10341
|
-
const
|
|
10342
|
-
|
|
10343
|
-
|
|
11142
|
+
const project = {
|
|
11143
|
+
id: projectId,
|
|
11144
|
+
name: projectName,
|
|
11145
|
+
uri: projectUri
|
|
11146
|
+
};
|
|
11147
|
+
const projects = state.projects.some(candidate => candidate.id === projectId) ? state.projects.map(candidate => {
|
|
11148
|
+
if (candidate.id !== projectId) {
|
|
11149
|
+
return candidate;
|
|
11150
|
+
}
|
|
11151
|
+
return project;
|
|
11152
|
+
}) : [...state.projects, project];
|
|
11153
|
+
return {
|
|
11154
|
+
...state,
|
|
11155
|
+
projectExpandedIds: state.projectExpandedIds.includes(projectId) ? state.projectExpandedIds : [...state.projectExpandedIds, projectId],
|
|
11156
|
+
projects,
|
|
11157
|
+
selectedProjectId: projectId
|
|
11158
|
+
};
|
|
11159
|
+
};
|
|
11160
|
+
|
|
11161
|
+
const openMockSession = async (state, mockSessionId, mockChatMessages) => {
|
|
11162
|
+
const {
|
|
11163
|
+
sessions: currentSessions
|
|
11164
|
+
} = state;
|
|
11165
|
+
if (!mockSessionId) {
|
|
11166
|
+
return state;
|
|
11167
|
+
}
|
|
11168
|
+
const parsedMessages = await parseAndStoreMessagesContentWithWorkerPreference(state.parsedMessages, mockChatMessages, state.useChatMessageParsingWorker);
|
|
11169
|
+
const existingSession = currentSessions.find(session => session.id === mockSessionId);
|
|
11170
|
+
const sessions = existingSession ? currentSessions.map(session => {
|
|
10344
11171
|
if (session.id !== mockSessionId) {
|
|
10345
11172
|
return session;
|
|
10346
11173
|
}
|
|
@@ -10360,6 +11187,7 @@ const openMockSession = async (state, mockSessionId, mockChatMessages) => {
|
|
|
10360
11187
|
return {
|
|
10361
11188
|
...state,
|
|
10362
11189
|
composerAttachments: [],
|
|
11190
|
+
composerAttachmentsHeight: 0,
|
|
10363
11191
|
parsedMessages,
|
|
10364
11192
|
renamingSessionId: '',
|
|
10365
11193
|
selectedSessionId: mockSessionId,
|
|
@@ -10374,19 +11202,24 @@ const pasteInput = async state => {
|
|
|
10374
11202
|
};
|
|
10375
11203
|
|
|
10376
11204
|
const registerMockResponse = (state, mockResponse) => {
|
|
10377
|
-
reset$
|
|
11205
|
+
reset$1();
|
|
10378
11206
|
pushChunk(mockResponse.text);
|
|
10379
11207
|
finish();
|
|
10380
11208
|
return state;
|
|
10381
11209
|
};
|
|
10382
11210
|
|
|
10383
|
-
const
|
|
11211
|
+
const removeComposerAttachment = async (state, attachmentId) => {
|
|
11212
|
+
return handleRemoveComposerAttachment(state, attachmentId);
|
|
11213
|
+
};
|
|
11214
|
+
|
|
11215
|
+
const getCss = (composerHeight, composerAttachmentsHeight, modelPickerHeight, listItemHeight, chatMessageFontSize, chatMessageLineHeight, chatMessageFontFamily, chatFocusContentMaxWidth, textAreaPaddingTop, textAreaPaddingLeft, textAreaPaddingRight, textAreaPaddingBottom, chatSendAreaPaddingTop, chatSendAreaPaddingLeft, chatSendAreaPaddingRight, chatSendAreaPaddingBottom, renderHtmlCss) => {
|
|
10384
11216
|
const buttonsHeight = 20;
|
|
10385
11217
|
const gap = 10;
|
|
10386
11218
|
const contentPadding = 10;
|
|
10387
|
-
const chatSendAreaHeight = composerHeight + chatSendAreaPaddingTop + chatSendAreaPaddingBottom + buttonsHeight + gap + contentPadding * 2;
|
|
11219
|
+
const chatSendAreaHeight = composerHeight + composerAttachmentsHeight + chatSendAreaPaddingTop + chatSendAreaPaddingBottom + buttonsHeight + gap + contentPadding * 2;
|
|
10388
11220
|
const baseCss = `:root {
|
|
10389
11221
|
--ChatInputBoxHeight: ${composerHeight}px;
|
|
11222
|
+
--ChatComposerAttachmentsHeight: ${composerAttachmentsHeight}px;
|
|
10390
11223
|
--ChatTextAreaHeight: ${composerHeight}px;
|
|
10391
11224
|
--ChatSendAreaHeight: ${chatSendAreaHeight}px;
|
|
10392
11225
|
--ChatTextAreaPaddingTop: ${textAreaPaddingTop}px;
|
|
@@ -10421,10 +11254,12 @@ const getCss = (composerHeight, modelPickerHeight, listItemHeight, chatMessageFo
|
|
|
10421
11254
|
}
|
|
10422
11255
|
|
|
10423
11256
|
.ChatComposerAttachment{
|
|
11257
|
+
align-items: center;
|
|
11258
|
+
display: inline-flex;
|
|
11259
|
+
gap: 6px;
|
|
10424
11260
|
max-width: 100%;
|
|
11261
|
+
min-width: 0;
|
|
10425
11262
|
overflow: hidden;
|
|
10426
|
-
white-space: nowrap;
|
|
10427
|
-
text-overflow: ellipsis;
|
|
10428
11263
|
border-radius: 999px;
|
|
10429
11264
|
border: 1px solid var(--vscode-widget-border, var(--vscode-panel-border));
|
|
10430
11265
|
padding: 4px 10px;
|
|
@@ -10433,6 +11268,35 @@ const getCss = (composerHeight, modelPickerHeight, listItemHeight, chatMessageFo
|
|
|
10433
11268
|
font-size: 12px;
|
|
10434
11269
|
}
|
|
10435
11270
|
|
|
11271
|
+
.ChatComposerAttachmentLabel{
|
|
11272
|
+
min-width: 0;
|
|
11273
|
+
overflow: hidden;
|
|
11274
|
+
text-overflow: ellipsis;
|
|
11275
|
+
white-space: nowrap;
|
|
11276
|
+
}
|
|
11277
|
+
|
|
11278
|
+
.ChatComposerAttachmentPreview{
|
|
11279
|
+
width: 20px;
|
|
11280
|
+
height: 20px;
|
|
11281
|
+
flex: none;
|
|
11282
|
+
border-radius: 4px;
|
|
11283
|
+
object-fit: cover;
|
|
11284
|
+
}
|
|
11285
|
+
|
|
11286
|
+
.ChatComposerAttachmentRemoveButton{
|
|
11287
|
+
appearance: none;
|
|
11288
|
+
background: transparent;
|
|
11289
|
+
border: none;
|
|
11290
|
+
border-radius: 999px;
|
|
11291
|
+
color: inherit;
|
|
11292
|
+
cursor: pointer;
|
|
11293
|
+
flex-shrink: 0;
|
|
11294
|
+
font: inherit;
|
|
11295
|
+
line-height: 1;
|
|
11296
|
+
margin: 0;
|
|
11297
|
+
padding: 0;
|
|
11298
|
+
}
|
|
11299
|
+
|
|
10436
11300
|
.ChatComposerAttachmentImage{
|
|
10437
11301
|
border-color: var(--vscode-charts-blue);
|
|
10438
11302
|
}
|
|
@@ -10446,6 +11310,93 @@ const getCss = (composerHeight, modelPickerHeight, listItemHeight, chatMessageFo
|
|
|
10446
11310
|
border-color: var(--vscode-charts-green, var(--vscode-widget-border, var(--vscode-panel-border)));
|
|
10447
11311
|
}
|
|
10448
11312
|
|
|
11313
|
+
.ChatAttachments{
|
|
11314
|
+
display: flex;
|
|
11315
|
+
flex-wrap: wrap;
|
|
11316
|
+
gap: 8px;
|
|
11317
|
+
margin-top: 8px;
|
|
11318
|
+
}
|
|
11319
|
+
|
|
11320
|
+
.ChatAttachment{
|
|
11321
|
+
align-items: center;
|
|
11322
|
+
display: inline-flex;
|
|
11323
|
+
gap: 6px;
|
|
11324
|
+
max-width: 100%;
|
|
11325
|
+
min-width: 0;
|
|
11326
|
+
overflow: hidden;
|
|
11327
|
+
border-radius: 999px;
|
|
11328
|
+
border: 1px solid var(--vscode-widget-border, var(--vscode-panel-border));
|
|
11329
|
+
padding: 4px 10px;
|
|
11330
|
+
background: var(--vscode-badge-background, color-mix(in srgb, var(--vscode-editor-background) 88%, white));
|
|
11331
|
+
color: var(--vscode-badge-foreground, var(--vscode-foreground));
|
|
11332
|
+
font-size: 12px;
|
|
11333
|
+
}
|
|
11334
|
+
|
|
11335
|
+
.ChatAttachmentLabel{
|
|
11336
|
+
min-width: 0;
|
|
11337
|
+
overflow: hidden;
|
|
11338
|
+
text-overflow: ellipsis;
|
|
11339
|
+
white-space: nowrap;
|
|
11340
|
+
}
|
|
11341
|
+
|
|
11342
|
+
.ChatAttachmentPreview{
|
|
11343
|
+
width: 20px;
|
|
11344
|
+
height: 20px;
|
|
11345
|
+
flex: none;
|
|
11346
|
+
border-radius: 4px;
|
|
11347
|
+
object-fit: cover;
|
|
11348
|
+
}
|
|
11349
|
+
|
|
11350
|
+
.ChatAttachmentImage{
|
|
11351
|
+
border-color: var(--vscode-charts-blue);
|
|
11352
|
+
}
|
|
11353
|
+
|
|
11354
|
+
.ChatAttachmentInvalidImage{
|
|
11355
|
+
border-color: var(--vscode-inputValidation-errorBorder, var(--vscode-errorForeground));
|
|
11356
|
+
color: var(--vscode-errorForeground, var(--vscode-foreground));
|
|
11357
|
+
}
|
|
11358
|
+
|
|
11359
|
+
.ChatAttachmentTextFile{
|
|
11360
|
+
border-color: var(--vscode-charts-green, var(--vscode-widget-border, var(--vscode-panel-border)));
|
|
11361
|
+
}
|
|
11362
|
+
|
|
11363
|
+
.Chat{
|
|
11364
|
+
position: relative;
|
|
11365
|
+
}
|
|
11366
|
+
|
|
11367
|
+
.ChatComposerAttachmentPreviewOverlay{
|
|
11368
|
+
position: absolute;
|
|
11369
|
+
left: calc(var(--ChatSendAreaPaddingLeft) + 8px);
|
|
11370
|
+
bottom: calc(var(--ChatSendAreaHeight) - 12px);
|
|
11371
|
+
z-index: 6;
|
|
11372
|
+
width: 240px;
|
|
11373
|
+
min-width: 160px;
|
|
11374
|
+
min-height: 160px;
|
|
11375
|
+
max-width: calc(100% - var(--ChatSendAreaPaddingLeft) - var(--ChatSendAreaPaddingRight) - 16px);
|
|
11376
|
+
display: flex;
|
|
11377
|
+
align-items: center;
|
|
11378
|
+
justify-content: center;
|
|
11379
|
+
border: 1px solid var(--vscode-widget-border, var(--vscode-panel-border));
|
|
11380
|
+
border-radius: 12px;
|
|
11381
|
+
background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
|
|
11382
|
+
box-shadow: 0 12px 28px color-mix(in srgb, var(--vscode-editor-background) 45%, black);
|
|
11383
|
+
overflow: hidden;
|
|
11384
|
+
}
|
|
11385
|
+
|
|
11386
|
+
.ChatComposerAttachmentPreviewOverlayImage{
|
|
11387
|
+
display: block;
|
|
11388
|
+
width: 100%;
|
|
11389
|
+
max-width: 100%;
|
|
11390
|
+
max-height: min(320px, calc(100vh - 200px));
|
|
11391
|
+
object-fit: contain;
|
|
11392
|
+
background: color-mix(in srgb, var(--vscode-editor-background) 88%, black);
|
|
11393
|
+
}
|
|
11394
|
+
|
|
11395
|
+
.ChatComposerAttachmentPreviewOverlayError{
|
|
11396
|
+
padding: 12px;
|
|
11397
|
+
color: var(--vscode-errorForeground, var(--vscode-foreground));
|
|
11398
|
+
}
|
|
11399
|
+
|
|
10449
11400
|
.CustomSelectContainer{
|
|
10450
11401
|
position: relative;
|
|
10451
11402
|
min-width: 0;
|
|
@@ -10457,6 +11408,20 @@ const getCss = (composerHeight, modelPickerHeight, listItemHeight, chatMessageFo
|
|
|
10457
11408
|
justify-content: flex-end;
|
|
10458
11409
|
}
|
|
10459
11410
|
|
|
11411
|
+
.ChatOverlays{
|
|
11412
|
+
position: absolute;
|
|
11413
|
+
inset: 0;
|
|
11414
|
+
pointer-events: none;
|
|
11415
|
+
}
|
|
11416
|
+
|
|
11417
|
+
.ChatOverlays > *{
|
|
11418
|
+
pointer-events: auto;
|
|
11419
|
+
}
|
|
11420
|
+
|
|
11421
|
+
.ChatViewDropOverlayActive{
|
|
11422
|
+
background: rgba(255, 255, 255, 0.1);
|
|
11423
|
+
}
|
|
11424
|
+
|
|
10460
11425
|
.RunModePickerPopOver{
|
|
10461
11426
|
overflow: hidden;
|
|
10462
11427
|
border: 1px solid var(--vscode-widget-border, var(--vscode-panel-border));
|
|
@@ -10469,6 +11434,33 @@ const getCss = (composerHeight, modelPickerHeight, listItemHeight, chatMessageFo
|
|
|
10469
11434
|
color: var(--vscode-textLink-foreground);
|
|
10470
11435
|
}
|
|
10471
11436
|
|
|
11437
|
+
.ProjectListChevron{
|
|
11438
|
+
display: inline-block;
|
|
11439
|
+
flex: none;
|
|
11440
|
+
height: 16px;
|
|
11441
|
+
width: 16px;
|
|
11442
|
+
}
|
|
11443
|
+
|
|
11444
|
+
.ChatOrderedListItem{
|
|
11445
|
+
align-items: flex-start;
|
|
11446
|
+
display: flex;
|
|
11447
|
+
gap: 8px;
|
|
11448
|
+
}
|
|
11449
|
+
|
|
11450
|
+
.ChatOrderedListMarker{
|
|
11451
|
+
flex: none;
|
|
11452
|
+
min-width: 1.5em;
|
|
11453
|
+
}
|
|
11454
|
+
|
|
11455
|
+
.ChatOrderedListItemContent{
|
|
11456
|
+
flex: 1;
|
|
11457
|
+
min-width: 0;
|
|
11458
|
+
}
|
|
11459
|
+
|
|
11460
|
+
.ChatOrderedListItemPrefix{
|
|
11461
|
+
white-space: nowrap;
|
|
11462
|
+
}
|
|
11463
|
+
|
|
10472
11464
|
.ChatToolCalls .ChatOrderedList{
|
|
10473
11465
|
list-style: none;
|
|
10474
11466
|
margin: 0;
|
|
@@ -10491,6 +11483,49 @@ const getCss = (composerHeight, modelPickerHeight, listItemHeight, chatMessageFo
|
|
|
10491
11483
|
min-width: 0;
|
|
10492
11484
|
}
|
|
10493
11485
|
|
|
11486
|
+
.ChatMessages > .Message{
|
|
11487
|
+
display: flex;
|
|
11488
|
+
}
|
|
11489
|
+
|
|
11490
|
+
.ChatMessages > .MessageUser{
|
|
11491
|
+
justify-content: flex-end;
|
|
11492
|
+
}
|
|
11493
|
+
|
|
11494
|
+
.ChatMessages > .MessageAssistant{
|
|
11495
|
+
justify-content: flex-start;
|
|
11496
|
+
}
|
|
11497
|
+
|
|
11498
|
+
.ChatMessages > .MessageUser .ChatAttachments{
|
|
11499
|
+
justify-content: flex-end;
|
|
11500
|
+
}
|
|
11501
|
+
|
|
11502
|
+
.ChatFocus .ChatMessages > .Message{
|
|
11503
|
+
inline-size: fit-content;
|
|
11504
|
+
max-inline-size: min(100%, var(--ChatFocusContentMaxWidth));
|
|
11505
|
+
}
|
|
11506
|
+
|
|
11507
|
+
.ChatFocus .ChatMessages > .Message > .ChatMessageContent{
|
|
11508
|
+
max-inline-size: 100%;
|
|
11509
|
+
}
|
|
11510
|
+
|
|
11511
|
+
|
|
11512
|
+
.Viewlet.Chat.ChatFocus{
|
|
11513
|
+
display: flex !important;
|
|
11514
|
+
min-width: 0;
|
|
11515
|
+
}
|
|
11516
|
+
|
|
11517
|
+
.ChatFocusMainArea{
|
|
11518
|
+
display: flex;
|
|
11519
|
+
flex: 1;
|
|
11520
|
+
flex-direction: column;
|
|
11521
|
+
min-width: 0;
|
|
11522
|
+
}
|
|
11523
|
+
|
|
11524
|
+
.ChatFocusMainArea > .ChatMessages{
|
|
11525
|
+
flex: 1;
|
|
11526
|
+
min-height: 0;
|
|
11527
|
+
}
|
|
11528
|
+
|
|
10494
11529
|
`;
|
|
10495
11530
|
return `${baseCss}
|
|
10496
11531
|
|
|
@@ -10511,6 +11546,7 @@ const renderCss = (oldState, newState) => {
|
|
|
10511
11546
|
chatSendAreaPaddingLeft,
|
|
10512
11547
|
chatSendAreaPaddingRight,
|
|
10513
11548
|
chatSendAreaPaddingTop,
|
|
11549
|
+
composerAttachmentsHeight,
|
|
10514
11550
|
composerHeight,
|
|
10515
11551
|
listItemHeight,
|
|
10516
11552
|
modelPickerHeight,
|
|
@@ -10523,10 +11559,11 @@ const renderCss = (oldState, newState) => {
|
|
|
10523
11559
|
uid
|
|
10524
11560
|
} = newState;
|
|
10525
11561
|
const renderHtmlCss = getRenderHtmlCss(sessions, selectedSessionId);
|
|
10526
|
-
const css = getCss(composerHeight, modelPickerHeight, listItemHeight, chatMessageFontSize, chatMessageLineHeight, chatMessageFontFamily, chatFocusContentMaxWidth, textAreaPaddingTop, textAreaPaddingLeft, textAreaPaddingRight, textAreaPaddingBottom, chatSendAreaPaddingTop, chatSendAreaPaddingLeft, chatSendAreaPaddingRight, chatSendAreaPaddingBottom, renderHtmlCss);
|
|
11562
|
+
const css = getCss(composerHeight, composerAttachmentsHeight, modelPickerHeight, listItemHeight, chatMessageFontSize, chatMessageLineHeight, chatMessageFontFamily, chatFocusContentMaxWidth, textAreaPaddingTop, textAreaPaddingLeft, textAreaPaddingRight, textAreaPaddingBottom, chatSendAreaPaddingTop, chatSendAreaPaddingLeft, chatSendAreaPaddingRight, chatSendAreaPaddingBottom, renderHtmlCss);
|
|
10527
11563
|
return [SetCss, uid, css];
|
|
10528
11564
|
};
|
|
10529
11565
|
|
|
11566
|
+
const pickerListSelector = '.ChatOverlays .ChatModelPickerList';
|
|
10530
11567
|
const getFocusSelector = state => {
|
|
10531
11568
|
const {
|
|
10532
11569
|
focus,
|
|
@@ -10552,6 +11589,8 @@ const getFocusSelector = state => {
|
|
|
10552
11589
|
}
|
|
10553
11590
|
case 'model-picker-input':
|
|
10554
11591
|
return `[name="${ModelPickerSearch}"]`;
|
|
11592
|
+
case 'picker-list':
|
|
11593
|
+
return pickerListSelector;
|
|
10555
11594
|
case 'send-button':
|
|
10556
11595
|
return '[name="send"]';
|
|
10557
11596
|
default:
|
|
@@ -10562,6 +11601,9 @@ const renderFocus = (oldState, newState) => {
|
|
|
10562
11601
|
if (newState.modelPickerOpen && !oldState.modelPickerOpen) {
|
|
10563
11602
|
return [FocusSelector, `[name="${ModelPickerSearch}"]`];
|
|
10564
11603
|
}
|
|
11604
|
+
if (newState.agentModePickerOpen && !oldState.agentModePickerOpen || newState.runModePickerOpen && !oldState.runModePickerOpen || newState.reasoningEffortPickerOpen && !oldState.reasoningEffortPickerOpen) {
|
|
11605
|
+
return [FocusSelector, pickerListSelector];
|
|
11606
|
+
}
|
|
10565
11607
|
const selector = getFocusSelector(newState);
|
|
10566
11608
|
return [FocusSelector, selector];
|
|
10567
11609
|
};
|
|
@@ -10579,6 +11621,8 @@ const renderFocusContext = (oldState, newState) => {
|
|
|
10579
11621
|
const HandleListContextMenu = 2;
|
|
10580
11622
|
const HandleFocus = 3;
|
|
10581
11623
|
const HandleInput = 4;
|
|
11624
|
+
const HandleMouseOut = 5;
|
|
11625
|
+
const HandleMouseOver = 7;
|
|
10582
11626
|
const HandleClick = 11;
|
|
10583
11627
|
const HandleKeyDown = 12;
|
|
10584
11628
|
const HandleClickClose = 13;
|
|
@@ -10626,57 +11670,7 @@ const HandlePointerUpModelPickerList = 55;
|
|
|
10626
11670
|
const HandleClickReasoningEffortPickerToggle = 56;
|
|
10627
11671
|
const HandleClickAgentModePickerToggle = 57;
|
|
10628
11672
|
const HandleContextMenuChatImageAttachment = 58;
|
|
10629
|
-
|
|
10630
|
-
const getCustomSelectOptionVirtualDom = (name, label, selected, detail = '') => {
|
|
10631
|
-
const className = mergeClassNames(ChatModelPickerItem, selected ? ChatModelPickerItemSelected : '');
|
|
10632
|
-
const hasDetail = detail !== '';
|
|
10633
|
-
return [{
|
|
10634
|
-
childCount: 1,
|
|
10635
|
-
type: Li
|
|
10636
|
-
}, {
|
|
10637
|
-
childCount: hasDetail ? 2 : 1,
|
|
10638
|
-
className,
|
|
10639
|
-
inputType: 'button',
|
|
10640
|
-
name,
|
|
10641
|
-
onClick: HandleClick,
|
|
10642
|
-
type: Button$1
|
|
10643
|
-
}, {
|
|
10644
|
-
childCount: 1,
|
|
10645
|
-
className: ChatModelPickerItemLabel,
|
|
10646
|
-
name,
|
|
10647
|
-
type: Span
|
|
10648
|
-
}, text(label), ...(hasDetail ? [{
|
|
10649
|
-
childCount: 1,
|
|
10650
|
-
className: ChatModelPickerItemUsageCost,
|
|
10651
|
-
name,
|
|
10652
|
-
type: Span
|
|
10653
|
-
}, text(detail)] : [])];
|
|
10654
|
-
};
|
|
10655
|
-
|
|
10656
|
-
const getCustomSelectPopOverVirtualDom = (optionCount, height, optionNodes, containerClassName = '', popOverClassName = '') => {
|
|
10657
|
-
return [{
|
|
10658
|
-
childCount: 1,
|
|
10659
|
-
className: mergeClassNames(ChatModelPickerContainer, containerClassName),
|
|
10660
|
-
type: Div
|
|
10661
|
-
}, {
|
|
10662
|
-
childCount: 1,
|
|
10663
|
-
className: mergeClassNames(ChatModelPicker, popOverClassName),
|
|
10664
|
-
style: `height: ${height}px;`,
|
|
10665
|
-
type: Div
|
|
10666
|
-
}, {
|
|
10667
|
-
childCount: optionCount,
|
|
10668
|
-
className: ChatModelPickerList,
|
|
10669
|
-
type: Ul
|
|
10670
|
-
}, ...optionNodes];
|
|
10671
|
-
};
|
|
10672
|
-
|
|
10673
|
-
const agentModePickerHeight = agentModes.length * 28;
|
|
10674
|
-
const getAgentModeOptionsVirtualDom = selectedAgentMode => {
|
|
10675
|
-
return agentModes.flatMap(agentMode => getCustomSelectOptionVirtualDom(getAgentModePickerItemInputName(agentMode), getAgentModeLabel(agentMode), agentMode === selectedAgentMode));
|
|
10676
|
-
};
|
|
10677
|
-
const getAgentModePickerPopOverVirtualDom = selectedAgentMode => {
|
|
10678
|
-
return getCustomSelectPopOverVirtualDom(agentModes.length, agentModePickerHeight, getAgentModeOptionsVirtualDom(selectedAgentMode));
|
|
10679
|
-
};
|
|
11673
|
+
const HandleErrorComposerAttachmentPreviewOverlay = 59;
|
|
10680
11674
|
|
|
10681
11675
|
const getAddContextButtonDom = () => {
|
|
10682
11676
|
return [{
|
|
@@ -10717,22 +11711,22 @@ const getCustomSelectToggleVirtualDom = (label, name, open, onClick, title = lab
|
|
|
10717
11711
|
}];
|
|
10718
11712
|
};
|
|
10719
11713
|
|
|
10720
|
-
const
|
|
11714
|
+
const getCustomSelectPickerToggleVirtualDom = (label, name, open, onClick, title = label, containerChildCount = 1) => {
|
|
10721
11715
|
return [{
|
|
10722
|
-
childCount:
|
|
11716
|
+
childCount: containerChildCount,
|
|
10723
11717
|
className: CustomSelectContainer,
|
|
10724
11718
|
type: Div
|
|
10725
|
-
}, ...getCustomSelectToggleVirtualDom(
|
|
11719
|
+
}, ...getCustomSelectToggleVirtualDom(label, name, open, onClick, title)];
|
|
11720
|
+
};
|
|
11721
|
+
|
|
11722
|
+
const getAgentModePickerVirtualDom = (selectedAgentMode, agentModePickerOpen) => {
|
|
11723
|
+
return getCustomSelectPickerToggleVirtualDom(getAgentModeLabel(selectedAgentMode), AgentModePickerToggle, agentModePickerOpen, HandleClickAgentModePickerToggle);
|
|
10726
11724
|
};
|
|
10727
11725
|
|
|
10728
11726
|
const getChatModelPickerToggleVirtualDom = (models, selectedModelId, modelPickerOpen) => {
|
|
10729
11727
|
const selectedModel = models.find(model => model.id === selectedModelId);
|
|
10730
11728
|
const selectedModelLabel = selectedModel ? selectedModel.name : selectedModelId;
|
|
10731
|
-
return
|
|
10732
|
-
childCount: 1,
|
|
10733
|
-
className: CustomSelectContainer,
|
|
10734
|
-
type: Div
|
|
10735
|
-
}, ...getCustomSelectToggleVirtualDom(selectedModelLabel, ModelPickerToggle, modelPickerOpen, HandleClickModelPickerToggle)];
|
|
11729
|
+
return getCustomSelectPickerToggleVirtualDom(selectedModelLabel, ModelPickerToggle, modelPickerOpen, HandleClickModelPickerToggle);
|
|
10736
11730
|
};
|
|
10737
11731
|
|
|
10738
11732
|
const getCreatePullRequestButtonDom = () => {
|
|
@@ -10750,6 +11744,32 @@ const getCreatePullRequestButtonDom = () => {
|
|
|
10750
11744
|
}];
|
|
10751
11745
|
};
|
|
10752
11746
|
|
|
11747
|
+
const getCustomSelectOptionVirtualDom = (name, label, selected, detail = '') => {
|
|
11748
|
+
const className = mergeClassNames(ChatModelPickerItem, selected ? ChatModelPickerItemSelected : '');
|
|
11749
|
+
const hasDetail = detail !== '';
|
|
11750
|
+
return [{
|
|
11751
|
+
childCount: 1,
|
|
11752
|
+
type: Li
|
|
11753
|
+
}, {
|
|
11754
|
+
childCount: hasDetail ? 2 : 1,
|
|
11755
|
+
className,
|
|
11756
|
+
inputType: 'button',
|
|
11757
|
+
name,
|
|
11758
|
+
onClick: HandleClick,
|
|
11759
|
+
type: Button$1
|
|
11760
|
+
}, {
|
|
11761
|
+
childCount: 1,
|
|
11762
|
+
className: ChatModelPickerItemLabel,
|
|
11763
|
+
name,
|
|
11764
|
+
type: Span
|
|
11765
|
+
}, text(label), ...(hasDetail ? [{
|
|
11766
|
+
childCount: 1,
|
|
11767
|
+
className: ChatModelPickerItemUsageCost,
|
|
11768
|
+
name,
|
|
11769
|
+
type: Span
|
|
11770
|
+
}, text(detail)] : [])];
|
|
11771
|
+
};
|
|
11772
|
+
|
|
10753
11773
|
const reasoningEffortPickerHeight = reasoningEfforts.length * 28;
|
|
10754
11774
|
const getReasoningEffortOptionsVirtualDom = selectedReasoningEffort => {
|
|
10755
11775
|
return reasoningEfforts.flatMap(reasoningEffort => {
|
|
@@ -10759,11 +11779,7 @@ const getReasoningEffortOptionsVirtualDom = selectedReasoningEffort => {
|
|
|
10759
11779
|
});
|
|
10760
11780
|
};
|
|
10761
11781
|
const getReasoningEffortPickerVirtualDom = (selectedReasoningEffort, reasoningEffortPickerOpen) => {
|
|
10762
|
-
return [{
|
|
10763
|
-
childCount: reasoningEffortPickerOpen ? 2 : 1,
|
|
10764
|
-
className: CustomSelectContainer,
|
|
10765
|
-
type: Div
|
|
10766
|
-
}, ...getCustomSelectToggleVirtualDom(getReasoningEffortLabel(selectedReasoningEffort), ReasoningEffortPickerToggle, reasoningEffortPickerOpen, HandleClickReasoningEffortPickerToggle, 'Reasoning'), ...(reasoningEffortPickerOpen ? [{
|
|
11782
|
+
return [...getCustomSelectPickerToggleVirtualDom(getReasoningEffortLabel(selectedReasoningEffort), ReasoningEffortPickerToggle, reasoningEffortPickerOpen, HandleClickReasoningEffortPickerToggle, 'Reasoning', reasoningEffortPickerOpen ? 2 : 1), ...(reasoningEffortPickerOpen ? [{
|
|
10767
11783
|
childCount: 1,
|
|
10768
11784
|
className: mergeClassNames(ChatModelPicker, CustomSelectPopOver),
|
|
10769
11785
|
style: `height: ${reasoningEffortPickerHeight}px;`,
|
|
@@ -10771,16 +11787,29 @@ const getReasoningEffortPickerVirtualDom = (selectedReasoningEffort, reasoningEf
|
|
|
10771
11787
|
}, {
|
|
10772
11788
|
childCount: reasoningEfforts.length,
|
|
10773
11789
|
className: ChatModelPickerList,
|
|
11790
|
+
name: PickerList,
|
|
11791
|
+
tabIndex: -1,
|
|
10774
11792
|
type: Ul
|
|
10775
11793
|
}, ...getReasoningEffortOptionsVirtualDom(selectedReasoningEffort)] : [])];
|
|
10776
11794
|
};
|
|
10777
11795
|
|
|
10778
11796
|
const getRunModePickerVirtualDom = (selectedRunMode, runModePickerOpen) => {
|
|
11797
|
+
return getCustomSelectPickerToggleVirtualDom(selectedRunMode, RunModePickerToggle, runModePickerOpen, HandleClickRunModePickerToggle);
|
|
11798
|
+
};
|
|
11799
|
+
|
|
11800
|
+
const getScrollDownButtonDom = () => {
|
|
10779
11801
|
return [{
|
|
10780
11802
|
childCount: 1,
|
|
10781
|
-
className:
|
|
10782
|
-
|
|
10783
|
-
|
|
11803
|
+
className: mergeClassNames(Button, ButtonSecondary),
|
|
11804
|
+
inputType: 'button',
|
|
11805
|
+
name: ScrollDown,
|
|
11806
|
+
onClick: HandleClick,
|
|
11807
|
+
title: scrollDown(),
|
|
11808
|
+
type: Button$1
|
|
11809
|
+
}, {
|
|
11810
|
+
text: scrollDown(),
|
|
11811
|
+
type: Text
|
|
11812
|
+
}];
|
|
10784
11813
|
};
|
|
10785
11814
|
|
|
10786
11815
|
const getSendButtonClassName = isSendDisabled => {
|
|
@@ -10915,6 +11944,34 @@ const getComposerAttachmentClassName = displayType => {
|
|
|
10915
11944
|
return ChatComposerAttachment;
|
|
10916
11945
|
}
|
|
10917
11946
|
};
|
|
11947
|
+
const getComposerAttachmentRemoveButtonDom = attachment => {
|
|
11948
|
+
return [{
|
|
11949
|
+
buttonType: 'button',
|
|
11950
|
+
childCount: 1,
|
|
11951
|
+
className: ChatComposerAttachmentRemoveButton,
|
|
11952
|
+
name: getComposerAttachmentRemoveInputName(attachment.attachmentId),
|
|
11953
|
+
onClick: HandleClick,
|
|
11954
|
+
title: removeAttachment(),
|
|
11955
|
+
type: Button$1
|
|
11956
|
+
}, {
|
|
11957
|
+
text: 'x',
|
|
11958
|
+
type: Text
|
|
11959
|
+
}];
|
|
11960
|
+
};
|
|
11961
|
+
const getComposerAttachmentPreviewDom = attachment => {
|
|
11962
|
+
if (!attachment.previewSrc) {
|
|
11963
|
+
return [];
|
|
11964
|
+
}
|
|
11965
|
+
return [{
|
|
11966
|
+
alt: `Image preview for ${attachment.name}`,
|
|
11967
|
+
childCount: 0,
|
|
11968
|
+
className: ChatComposerAttachmentPreview,
|
|
11969
|
+
name: getComposerAttachmentInputName(attachment.attachmentId),
|
|
11970
|
+
onContextMenu: HandleContextMenuChatImageAttachment,
|
|
11971
|
+
src: attachment.previewSrc,
|
|
11972
|
+
type: Img
|
|
11973
|
+
}];
|
|
11974
|
+
};
|
|
10918
11975
|
const getComposerAttachmentsDom = composerAttachments => {
|
|
10919
11976
|
if (composerAttachments.length === 0) {
|
|
10920
11977
|
return [];
|
|
@@ -10923,15 +11980,28 @@ const getComposerAttachmentsDom = composerAttachments => {
|
|
|
10923
11980
|
childCount: composerAttachments.length,
|
|
10924
11981
|
className: ChatComposerAttachments,
|
|
10925
11982
|
type: Div
|
|
10926
|
-
}, ...composerAttachments.flatMap(attachment =>
|
|
10927
|
-
|
|
10928
|
-
|
|
10929
|
-
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
|
|
10933
|
-
|
|
10934
|
-
|
|
11983
|
+
}, ...composerAttachments.flatMap(attachment => {
|
|
11984
|
+
const removeButtonDom = getComposerAttachmentRemoveButtonDom(attachment);
|
|
11985
|
+
const previewDom = getComposerAttachmentPreviewDom(attachment);
|
|
11986
|
+
return [{
|
|
11987
|
+
childCount: 1 + (removeButtonDom.length > 0 ? 1 : 0) + previewDom.length,
|
|
11988
|
+
className: mergeClassNames(ChatComposerAttachment, getComposerAttachmentClassName(attachment.displayType)),
|
|
11989
|
+
name: getComposerAttachmentInputName(attachment.attachmentId),
|
|
11990
|
+
onMouseOut: HandleMouseOut,
|
|
11991
|
+
onMouseOver: HandleMouseOver,
|
|
11992
|
+
onPointerOut: HandleMouseOut,
|
|
11993
|
+
onPointerOver: HandleMouseOver,
|
|
11994
|
+
type: Div
|
|
11995
|
+
}, ...removeButtonDom, ...previewDom, {
|
|
11996
|
+
childCount: 1,
|
|
11997
|
+
className: ChatComposerAttachmentLabel,
|
|
11998
|
+
name: getComposerAttachmentInputName(attachment.attachmentId),
|
|
11999
|
+
type: Span
|
|
12000
|
+
}, {
|
|
12001
|
+
text: `${getComposerAttachmentLabel(attachment.displayType)} · ${attachment.name}`,
|
|
12002
|
+
type: Text
|
|
12003
|
+
}];
|
|
12004
|
+
})];
|
|
10935
12005
|
};
|
|
10936
12006
|
const getComposerTextAreaDom = () => {
|
|
10937
12007
|
return {
|
|
@@ -10947,15 +12017,19 @@ const getComposerTextAreaDom = () => {
|
|
|
10947
12017
|
type: TextArea
|
|
10948
12018
|
};
|
|
10949
12019
|
};
|
|
10950
|
-
const getChatSendAreaDom = (composerValue, composerAttachments, agentMode, agentModePickerOpen, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton = false, voiceDictationEnabled = false) => {
|
|
12020
|
+
const getChatSendAreaDom = (composerValue, composerAttachments, agentMode, agentModePickerOpen, hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton = false, voiceDictationEnabled = false, scrollDownButtonEnabled = false, messagesAutoScrollEnabled = true) => {
|
|
10951
12021
|
const isSendDisabled = composerValue.trim() === '';
|
|
10952
|
-
const
|
|
10953
|
-
const
|
|
12022
|
+
const showAgentModePicker = hasSpaceForAgentModePicker;
|
|
12023
|
+
const showResponsiveRunModePicker = showRunMode && hasSpaceForRunModePicker;
|
|
12024
|
+
const showScrollDownButton = scrollDownButtonEnabled && !messagesAutoScrollEnabled;
|
|
12025
|
+
const bottomControlsCount = 2 + (usageOverviewEnabled ? 1 : 0) + (addContextButtonEnabled ? 1 : 0) + (showCreatePullRequestButton ? 1 : 0) + (voiceDictationEnabled ? 1 : 0) + (showScrollDownButton ? 1 : 0);
|
|
12026
|
+
const primaryControlsCount = 1 + (showAgentModePicker ? 1 : 0) + (reasoningPickerEnabled ? 1 : 0) + (showResponsiveRunModePicker ? 1 : 0);
|
|
10954
12027
|
const hasTodoList = todoListToolEnabled && todoListItems.length > 0;
|
|
10955
12028
|
const hasComposerAttachments = composerAttachments.length > 0;
|
|
10956
12029
|
return [{
|
|
10957
12030
|
childCount: 1,
|
|
10958
12031
|
className: ChatSendArea,
|
|
12032
|
+
onContextMenu: HandleContextMenuChatSendAreaBottom,
|
|
10959
12033
|
onSubmit: HandleSubmit,
|
|
10960
12034
|
type: Form
|
|
10961
12035
|
}, {
|
|
@@ -10970,8 +12044,88 @@ const getChatSendAreaDom = (composerValue, composerAttachments, agentMode, agent
|
|
|
10970
12044
|
}, {
|
|
10971
12045
|
childCount: primaryControlsCount,
|
|
10972
12046
|
className: ChatSendAreaPrimaryControls,
|
|
12047
|
+
role: 'toolbar',
|
|
12048
|
+
type: Div
|
|
12049
|
+
}, ...(showAgentModePicker ? getAgentModePickerVirtualDom(agentMode, agentModePickerOpen) : []), ...getChatModelPickerToggleVirtualDom(models, selectedModelId, modelPickerOpen), ...(reasoningPickerEnabled ? getReasoningEffortPickerVirtualDom(reasoningEffort, reasoningEffortPickerOpen) : []), ...(showResponsiveRunModePicker ? getRunModePickerVirtualDom(runMode, runModePickerOpen) : []), ...(usageOverviewEnabled ? getUsageOverviewDom(tokensUsed, tokensMax) : []), ...(addContextButtonEnabled ? getAddContextButtonDom() : []), ...(showCreatePullRequestButton ? getCreatePullRequestButtonDom() : []), ...(showScrollDownButton ? getScrollDownButtonDom() : []), ...getSendButtonDom(isSendDisabled, voiceDictationEnabled)];
|
|
12050
|
+
};
|
|
12051
|
+
|
|
12052
|
+
const focusHeaderStyle = 'align-items:center;border-bottom:1px solid var(--vscode-panel-border, transparent);display:flex;gap:12px;justify-content:space-between;padding:8px 12px;';
|
|
12053
|
+
const focusHeaderMetaStyle = 'align-items:baseline;display:flex;gap:8px;min-width:0;overflow:hidden;';
|
|
12054
|
+
const focusHeaderTitleStyle = 'margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;';
|
|
12055
|
+
const focusHeaderProjectStyle = 'overflow:hidden;text-overflow:ellipsis;white-space:nowrap;';
|
|
12056
|
+
const focusHeaderActionsStyle = 'display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;';
|
|
12057
|
+
const focusHeaderButtonStyle = 'white-space:nowrap;';
|
|
12058
|
+
const getFocusHeaderActionButtonDom = (label, name) => {
|
|
12059
|
+
return [{
|
|
12060
|
+
childCount: 1,
|
|
12061
|
+
className: mergeClassNames(Button, ButtonSecondary),
|
|
12062
|
+
inputType: 'button',
|
|
12063
|
+
name,
|
|
12064
|
+
onClick: HandleClick,
|
|
12065
|
+
style: focusHeaderButtonStyle,
|
|
12066
|
+
title: label,
|
|
12067
|
+
type: Button$1
|
|
12068
|
+
}, text(label)];
|
|
12069
|
+
};
|
|
12070
|
+
const getChatHeaderDomFocusMode = (selectedSessionTitle, selectedProjectName) => {
|
|
12071
|
+
const items = [[addAction(), FocusAddAction], [openInVsCode(), FocusOpenInVsCode], [commit(), FocusCommit], [openTerminal(), FocusOpenTerminal], [showDiff(), FocusShowDiff]];
|
|
12072
|
+
const hasProjectName = !!selectedProjectName;
|
|
12073
|
+
return [{
|
|
12074
|
+
childCount: 2,
|
|
12075
|
+
className: ChatFocusHeader,
|
|
12076
|
+
style: focusHeaderStyle,
|
|
12077
|
+
type: Header
|
|
12078
|
+
}, {
|
|
12079
|
+
childCount: hasProjectName ? 2 : 1,
|
|
12080
|
+
className: ChatName,
|
|
12081
|
+
style: focusHeaderMetaStyle,
|
|
12082
|
+
type: Div
|
|
12083
|
+
}, {
|
|
12084
|
+
childCount: 1,
|
|
12085
|
+
className: ChatHeaderLabel,
|
|
12086
|
+
style: focusHeaderTitleStyle,
|
|
12087
|
+
type: H2
|
|
12088
|
+
}, text(selectedSessionTitle), ...(hasProjectName ? [{
|
|
12089
|
+
childCount: 1,
|
|
12090
|
+
className: mergeClassNames(LabelDetail, ChatFocusProject),
|
|
12091
|
+
style: focusHeaderProjectStyle,
|
|
12092
|
+
type: Span
|
|
12093
|
+
}, text(selectedProjectName)] : []), {
|
|
12094
|
+
'aria-label': 'focus header actions',
|
|
12095
|
+
childCount: items.length,
|
|
12096
|
+
className: ChatFocusActions,
|
|
12097
|
+
role: ToolBar,
|
|
12098
|
+
style: focusHeaderActionsStyle,
|
|
12099
|
+
type: Div
|
|
12100
|
+
}, ...items.flatMap(([label, name]) => getFocusHeaderActionButtonDom(label, name))];
|
|
12101
|
+
};
|
|
12102
|
+
|
|
12103
|
+
const getAgentModeOptionsVirtualDom = selectedAgentMode => {
|
|
12104
|
+
return agentModes.flatMap(agentMode => getCustomSelectOptionVirtualDom(getAgentModePickerItemInputName(agentMode), getAgentModeLabel(agentMode), agentMode === selectedAgentMode));
|
|
12105
|
+
};
|
|
12106
|
+
|
|
12107
|
+
const getCustomSelectPopOverVirtualDom = (optionCount, height, optionNodes, containerClassName = '', popOverClassName = '') => {
|
|
12108
|
+
return [{
|
|
12109
|
+
childCount: 1,
|
|
12110
|
+
className: mergeClassNames(ChatModelPickerContainer, containerClassName),
|
|
12111
|
+
type: Div
|
|
12112
|
+
}, {
|
|
12113
|
+
childCount: 1,
|
|
12114
|
+
className: mergeClassNames(ChatModelPicker, popOverClassName),
|
|
12115
|
+
style: `height: ${height}px;`,
|
|
10973
12116
|
type: Div
|
|
10974
|
-
},
|
|
12117
|
+
}, {
|
|
12118
|
+
childCount: optionCount,
|
|
12119
|
+
className: ChatModelPickerList,
|
|
12120
|
+
name: PickerList,
|
|
12121
|
+
tabIndex: -1,
|
|
12122
|
+
type: Ul
|
|
12123
|
+
}, ...optionNodes];
|
|
12124
|
+
};
|
|
12125
|
+
|
|
12126
|
+
const agentModePickerHeight = agentModes.length * 28;
|
|
12127
|
+
const getAgentModePickerPopOverVirtualDom = selectedAgentMode => {
|
|
12128
|
+
return getCustomSelectPopOverVirtualDom(agentModes.length, agentModePickerHeight, getAgentModeOptionsVirtualDom(selectedAgentMode));
|
|
10975
12129
|
};
|
|
10976
12130
|
|
|
10977
12131
|
const getUsageCostLabel = model => {
|
|
@@ -11040,6 +12194,91 @@ const getChatModelPickerPopOverVirtualDom = (models, selectedModelId, modelPicke
|
|
|
11040
12194
|
}, ...getModelPickerHeaderDom(modelPickerSearchValue), ...getChatModelListVirtualDom(visibleModels, selectedModelId)];
|
|
11041
12195
|
};
|
|
11042
12196
|
|
|
12197
|
+
const getComposerAttachmentPreviewOverlayVirtualDom = (composerAttachments, attachmentId, hasError) => {
|
|
12198
|
+
if (!attachmentId) {
|
|
12199
|
+
return [];
|
|
12200
|
+
}
|
|
12201
|
+
const attachment = composerAttachments.find(item => item.attachmentId === attachmentId);
|
|
12202
|
+
if (!attachment || attachment.displayType !== 'image' || !attachment.previewSrc) {
|
|
12203
|
+
return [];
|
|
12204
|
+
}
|
|
12205
|
+
return [{
|
|
12206
|
+
childCount: 1,
|
|
12207
|
+
className: ChatComposerAttachmentPreviewOverlay,
|
|
12208
|
+
name: ComposerAttachmentPreviewOverlay,
|
|
12209
|
+
onMouseOut: HandleMouseOut,
|
|
12210
|
+
onMouseOver: HandleMouseOver,
|
|
12211
|
+
onPointerOut: HandleMouseOut,
|
|
12212
|
+
onPointerOver: HandleMouseOver,
|
|
12213
|
+
type: Div
|
|
12214
|
+
}, ...(hasError ? [{
|
|
12215
|
+
childCount: 1,
|
|
12216
|
+
className: mergeClassNames(ChatComposerAttachmentPreviewOverlayError, ImageErrorMessage),
|
|
12217
|
+
name: ComposerAttachmentPreviewOverlay,
|
|
12218
|
+
type: Div
|
|
12219
|
+
}, {
|
|
12220
|
+
text: imageCouldNotBeLoaded(),
|
|
12221
|
+
type: Text
|
|
12222
|
+
}] : [{
|
|
12223
|
+
alt: `Large image preview for ${attachment.name}`,
|
|
12224
|
+
childCount: 0,
|
|
12225
|
+
className: ChatComposerAttachmentPreviewOverlayImage,
|
|
12226
|
+
name: ComposerAttachmentPreviewOverlay,
|
|
12227
|
+
onError: HandleErrorComposerAttachmentPreviewOverlay,
|
|
12228
|
+
src: attachment.previewSrc,
|
|
12229
|
+
type: Img
|
|
12230
|
+
}])];
|
|
12231
|
+
};
|
|
12232
|
+
|
|
12233
|
+
const runModes = ['local', 'background', 'cloud'];
|
|
12234
|
+
const runModePickerHeight = runModes.length * 28;
|
|
12235
|
+
const getRunModeOptionsVirtualDom = selectedRunMode => {
|
|
12236
|
+
return runModes.flatMap(runMode => getCustomSelectOptionVirtualDom(getRunModePickerItemInputName(runMode), runMode, runMode === selectedRunMode));
|
|
12237
|
+
};
|
|
12238
|
+
const getRunModePickerPopOverVirtualDom = selectedRunMode => {
|
|
12239
|
+
return getCustomSelectPopOverVirtualDom(runModes.length, runModePickerHeight, getRunModeOptionsVirtualDom(selectedRunMode), RunModePickerContainer, RunModePickerPopOver);
|
|
12240
|
+
};
|
|
12241
|
+
|
|
12242
|
+
const getDropOverlayVirtualDom = () => {
|
|
12243
|
+
return [{
|
|
12244
|
+
childCount: 1,
|
|
12245
|
+
className: mergeClassNames(ChatViewDropOverlay, ChatViewDropOverlayActive),
|
|
12246
|
+
name: ComposerDropTarget,
|
|
12247
|
+
onDragLeave: HandleDragLeave,
|
|
12248
|
+
onDragOver: HandleDragOver,
|
|
12249
|
+
onDrop: HandleDrop,
|
|
12250
|
+
type: Div
|
|
12251
|
+
}, {
|
|
12252
|
+
text: attachImageAsContext(),
|
|
12253
|
+
type: Text
|
|
12254
|
+
}];
|
|
12255
|
+
};
|
|
12256
|
+
const getChatOverlaysVirtualDom = ({
|
|
12257
|
+
agentMode,
|
|
12258
|
+
agentModePickerVisible,
|
|
12259
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
12260
|
+
composerAttachmentPreviewOverlayError,
|
|
12261
|
+
composerAttachmentPreviewOverlayVisible,
|
|
12262
|
+
composerAttachments,
|
|
12263
|
+
dropOverlayVisible,
|
|
12264
|
+
modelPickerSearchValue,
|
|
12265
|
+
modelPickerVisible,
|
|
12266
|
+
runMode,
|
|
12267
|
+
runModePickerVisible,
|
|
12268
|
+
selectedModelId,
|
|
12269
|
+
visibleModels
|
|
12270
|
+
}) => {
|
|
12271
|
+
const overlayChildCount = (dropOverlayVisible ? 1 : 0) + (composerAttachmentPreviewOverlayVisible ? 1 : 0) + (agentModePickerVisible ? 1 : 0) + (modelPickerVisible ? 1 : 0) + (runModePickerVisible ? 1 : 0);
|
|
12272
|
+
if (!overlayChildCount) {
|
|
12273
|
+
return [];
|
|
12274
|
+
}
|
|
12275
|
+
return [{
|
|
12276
|
+
childCount: overlayChildCount,
|
|
12277
|
+
className: ChatOverlays,
|
|
12278
|
+
type: Div
|
|
12279
|
+
}, ...(dropOverlayVisible ? getDropOverlayVirtualDom() : []), ...getComposerAttachmentPreviewOverlayVirtualDom(composerAttachments, composerAttachmentPreviewOverlayAttachmentId, composerAttachmentPreviewOverlayError), ...(agentModePickerVisible ? getAgentModePickerPopOverVirtualDom(agentMode) : []), ...(modelPickerVisible ? getChatModelPickerPopOverVirtualDom(visibleModels, selectedModelId, modelPickerSearchValue) : []), ...(runModePickerVisible ? getRunModePickerPopOverVirtualDom(runMode) : [])];
|
|
12280
|
+
};
|
|
12281
|
+
|
|
11043
12282
|
const getBoldInlineNodeDom = (inlineNode, useChatMathWorker, renderInlineNodeDom) => {
|
|
11044
12283
|
return [{
|
|
11045
12284
|
childCount: inlineNode.children.length,
|
|
@@ -11170,12 +12409,17 @@ const getTokenDom = token => {
|
|
|
11170
12409
|
|
|
11171
12410
|
const getCodeBlockDom = node => {
|
|
11172
12411
|
const tokenDom = node.codeTokens.flatMap(getTokenDom);
|
|
12412
|
+
const languageAttribute = node.language ? {
|
|
12413
|
+
'data-lang': node.language
|
|
12414
|
+
} : {};
|
|
11173
12415
|
return [{
|
|
11174
12416
|
childCount: 1,
|
|
11175
|
-
type: Pre
|
|
12417
|
+
type: Pre,
|
|
12418
|
+
...languageAttribute
|
|
11176
12419
|
}, {
|
|
11177
12420
|
childCount: node.codeTokens.length,
|
|
11178
|
-
type: Code
|
|
12421
|
+
type: Code,
|
|
12422
|
+
...languageAttribute
|
|
11179
12423
|
}, ...tokenDom];
|
|
11180
12424
|
};
|
|
11181
12425
|
|
|
@@ -11203,24 +12447,69 @@ const getHeadingDom = (node, useChatMathWorker) => {
|
|
|
11203
12447
|
}, ...node.children.flatMap(child => getInlineNodeDom(child, useChatMathWorker))];
|
|
11204
12448
|
};
|
|
11205
12449
|
|
|
12450
|
+
const leadingPunctuationRegex = /^([:;,.!?]+)([\s\S]*)$/;
|
|
12451
|
+
const splitLeadingPunctuation = children => {
|
|
12452
|
+
const [firstChild, secondChild, ...restChildren] = children;
|
|
12453
|
+
if (firstChild?.type !== 'bold' || secondChild?.type !== 'text') {
|
|
12454
|
+
return {
|
|
12455
|
+
prefixChildren: [],
|
|
12456
|
+
remainingChildren: children
|
|
12457
|
+
};
|
|
12458
|
+
}
|
|
12459
|
+
const match = secondChild.text.match(leadingPunctuationRegex);
|
|
12460
|
+
if (!match) {
|
|
12461
|
+
return {
|
|
12462
|
+
prefixChildren: [],
|
|
12463
|
+
remainingChildren: children
|
|
12464
|
+
};
|
|
12465
|
+
}
|
|
12466
|
+
const [, punctuation, remainingText] = match;
|
|
12467
|
+
const nextChildren = restChildren;
|
|
12468
|
+
if (remainingText) {
|
|
12469
|
+
nextChildren.unshift({
|
|
12470
|
+
text: remainingText,
|
|
12471
|
+
type: 'text'
|
|
12472
|
+
});
|
|
12473
|
+
}
|
|
12474
|
+
return {
|
|
12475
|
+
prefixChildren: [firstChild, {
|
|
12476
|
+
text: punctuation,
|
|
12477
|
+
type: 'text'
|
|
12478
|
+
}],
|
|
12479
|
+
remainingChildren: nextChildren
|
|
12480
|
+
};
|
|
12481
|
+
};
|
|
11206
12482
|
const getOrderedListItemDom = (item, useChatMathWorker, fallbackIndex, recurseOrdered, recurseUnordered) => {
|
|
11207
12483
|
const hasNestedList = (item.nestedItems?.length || 0) > 0;
|
|
11208
12484
|
const nestedListType = item.nestedListType || 'unordered-list';
|
|
12485
|
+
const {
|
|
12486
|
+
prefixChildren,
|
|
12487
|
+
remainingChildren
|
|
12488
|
+
} = splitLeadingPunctuation(item.children);
|
|
11209
12489
|
const nestedListDom = hasNestedList ? [{
|
|
11210
12490
|
childCount: item.nestedItems?.length || 0,
|
|
11211
12491
|
className: nestedListType === 'ordered-list' ? ChatOrderedList : ChatUnorderedList,
|
|
11212
12492
|
type: nestedListType === 'ordered-list' ? Ol : Ul
|
|
11213
12493
|
}, ...(item.nestedItems || []).flatMap((nestedItem, index) => nestedListType === 'ordered-list' ? recurseOrdered(nestedItem, useChatMathWorker, index + 1) : recurseUnordered(nestedItem, useChatMathWorker))] : [];
|
|
11214
12494
|
const marker = `${item.index ?? fallbackIndex}.`;
|
|
12495
|
+
const prefixDom = prefixChildren.length === 0 ? [] : [{
|
|
12496
|
+
childCount: prefixChildren.length,
|
|
12497
|
+
className: ChatOrderedListItemPrefix,
|
|
12498
|
+
type: Span
|
|
12499
|
+
}, ...prefixChildren.flatMap(child => getInlineNodeDom(child, useChatMathWorker))];
|
|
11215
12500
|
return [{
|
|
11216
|
-
childCount:
|
|
12501
|
+
childCount: 2,
|
|
11217
12502
|
className: ChatOrderedListItem,
|
|
11218
12503
|
type: Li
|
|
11219
12504
|
}, {
|
|
11220
12505
|
childCount: 1,
|
|
11221
12506
|
className: ChatOrderedListMarker,
|
|
11222
12507
|
type: Span
|
|
11223
|
-
}, text(marker),
|
|
12508
|
+
}, text(marker), {
|
|
12509
|
+
childCount: (prefixDom.length === 0 ? 0 : 1) + remainingChildren.length + (hasNestedList ? 1 : 0),
|
|
12510
|
+
className: ChatOrderedListItemContent,
|
|
12511
|
+
type: Div
|
|
12512
|
+
}, ...prefixDom, ...remainingChildren.flatMap(child => getInlineNodeDom(child, useChatMathWorker)), ...nestedListDom];
|
|
11224
12513
|
};
|
|
11225
12514
|
|
|
11226
12515
|
const getTableHeadCellDom = (cell, useChatMathWorker) => {
|
|
@@ -11623,11 +12912,22 @@ const getReadFileTarget = rawArguments => {
|
|
|
11623
12912
|
};
|
|
11624
12913
|
};
|
|
11625
12914
|
|
|
11626
|
-
const getToolCallFileNameDom = (fileName,
|
|
12915
|
+
const getToolCallFileNameDom = (fileName, {
|
|
12916
|
+
clickableProps = {},
|
|
12917
|
+
title
|
|
12918
|
+
} = {}) => {
|
|
11627
12919
|
return [{
|
|
12920
|
+
childCount: 1,
|
|
12921
|
+
className: ChatToolCallReadFileLink,
|
|
12922
|
+
...(title === undefined ? {} : {
|
|
12923
|
+
title
|
|
12924
|
+
}),
|
|
12925
|
+
...clickableProps,
|
|
12926
|
+
type: Span
|
|
12927
|
+
}, {
|
|
11628
12928
|
childCount: 1,
|
|
11629
12929
|
className: ChatToolCallFileName,
|
|
11630
|
-
...
|
|
12930
|
+
...clickableProps,
|
|
11631
12931
|
type: Span
|
|
11632
12932
|
}, text(fileName)];
|
|
11633
12933
|
};
|
|
@@ -11656,75 +12956,9 @@ const getToolCallCreateDirectoryVirtualDom = toolCall => {
|
|
|
11656
12956
|
childCount: 1,
|
|
11657
12957
|
className: ToolCallName,
|
|
11658
12958
|
type: Span
|
|
11659
|
-
}, text('create_directory '), {
|
|
11660
|
-
|
|
11661
|
-
|
|
11662
|
-
...fileNameClickableProps,
|
|
11663
|
-
type: Span
|
|
11664
|
-
}, ...getToolCallFileNameDom(directoryName, fileNameClickableProps), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
11665
|
-
};
|
|
11666
|
-
|
|
11667
|
-
const getToolCallEditFileVirtualDom = toolCall => {
|
|
11668
|
-
const target = getReadFileTarget(toolCall.arguments);
|
|
11669
|
-
if (!target) {
|
|
11670
|
-
return [];
|
|
11671
|
-
}
|
|
11672
|
-
const fileName = getFileNameFromUri(target.title);
|
|
11673
|
-
const fileNameClickableProps = target.clickableUri ? {
|
|
11674
|
-
'data-uri': target.clickableUri,
|
|
11675
|
-
onClick: HandleClickFileName
|
|
11676
|
-
} : {};
|
|
11677
|
-
return [{
|
|
11678
|
-
childCount: 3,
|
|
11679
|
-
className: ChatOrderedListItem,
|
|
11680
|
-
title: target.title,
|
|
11681
|
-
type: Li
|
|
11682
|
-
}, {
|
|
11683
|
-
childCount: 0,
|
|
11684
|
-
className: FileIcon,
|
|
11685
|
-
type: Div
|
|
11686
|
-
}, {
|
|
11687
|
-
childCount: 1,
|
|
11688
|
-
className: ToolCallName,
|
|
11689
|
-
type: Span
|
|
11690
|
-
}, text('edit_file '), {
|
|
11691
|
-
childCount: 1,
|
|
11692
|
-
className: ChatToolCallReadFileLink,
|
|
11693
|
-
title: target.clickableUri,
|
|
11694
|
-
...fileNameClickableProps,
|
|
11695
|
-
type: Span
|
|
11696
|
-
}, ...getToolCallFileNameDom(fileName, fileNameClickableProps)];
|
|
11697
|
-
};
|
|
11698
|
-
|
|
11699
|
-
const getToolCallGetWorkspaceUriVirtualDom = toolCall => {
|
|
11700
|
-
if (!toolCall.result) {
|
|
11701
|
-
return [];
|
|
11702
|
-
}
|
|
11703
|
-
const statusLabel = getToolCallStatusLabel(toolCall);
|
|
11704
|
-
const fileName = getFileNameFromUri(toolCall.result);
|
|
11705
|
-
const fileNameClickableProps = {
|
|
11706
|
-
'data-uri': toolCall.result,
|
|
11707
|
-
onClick: HandleClickFileName
|
|
11708
|
-
};
|
|
11709
|
-
return [{
|
|
11710
|
-
childCount: statusLabel ? 4 : 3,
|
|
11711
|
-
className: ChatOrderedListItem,
|
|
11712
|
-
title: toolCall.result,
|
|
11713
|
-
type: Li
|
|
11714
|
-
}, {
|
|
11715
|
-
childCount: 0,
|
|
11716
|
-
className: FileIcon,
|
|
11717
|
-
type: Div
|
|
11718
|
-
}, {
|
|
11719
|
-
childCount: 1,
|
|
11720
|
-
className: ToolCallName,
|
|
11721
|
-
type: Span
|
|
11722
|
-
}, text('get_workspace_uri '), {
|
|
11723
|
-
childCount: 1,
|
|
11724
|
-
className: ChatToolCallReadFileLink,
|
|
11725
|
-
...fileNameClickableProps,
|
|
11726
|
-
type: Span
|
|
11727
|
-
}, ...getToolCallFileNameDom(fileName, fileNameClickableProps), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
12959
|
+
}, text('create_directory '), ...getToolCallFileNameDom(directoryName, {
|
|
12960
|
+
clickableProps: fileNameClickableProps
|
|
12961
|
+
}), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
11728
12962
|
};
|
|
11729
12963
|
|
|
11730
12964
|
const getToolCallArgumentPreview = rawArguments => {
|
|
@@ -11785,20 +13019,99 @@ const hasIncompleteJsonArguments = rawArguments => {
|
|
|
11785
13019
|
}
|
|
11786
13020
|
};
|
|
11787
13021
|
|
|
11788
|
-
const getToolCallLabel = toolCall => {
|
|
11789
|
-
const displayName = getToolCallDisplayName(toolCall.name);
|
|
11790
|
-
if (toolCall.name === 'write_file' && !toolCall.status && hasIncompleteJsonArguments(toolCall.arguments)) {
|
|
11791
|
-
return `${displayName} (in progress)`;
|
|
13022
|
+
const getToolCallLabel = toolCall => {
|
|
13023
|
+
const displayName = getToolCallDisplayName(toolCall.name);
|
|
13024
|
+
if (toolCall.name === 'write_file' && !toolCall.status && hasIncompleteJsonArguments(toolCall.arguments)) {
|
|
13025
|
+
return `${displayName} (in progress)`;
|
|
13026
|
+
}
|
|
13027
|
+
if ((toolCall.name === 'list_files' || toolCall.name === 'grep_search') && !toolCall.status && hasIncompleteJsonArguments(toolCall.arguments)) {
|
|
13028
|
+
return displayName;
|
|
13029
|
+
}
|
|
13030
|
+
const argumentPreview = getToolCallArgumentPreview(toolCall.arguments);
|
|
13031
|
+
const statusLabel = getToolCallStatusLabel(toolCall);
|
|
13032
|
+
if (argumentPreview === '{}') {
|
|
13033
|
+
return `${displayName}${statusLabel}`;
|
|
13034
|
+
}
|
|
13035
|
+
return `${displayName} ${argumentPreview}${statusLabel}`;
|
|
13036
|
+
};
|
|
13037
|
+
|
|
13038
|
+
const RE_TOOL_NAME_PREFIX = /^([^ :]+)/;
|
|
13039
|
+
const getToolCallDefaultDom = toolCall => {
|
|
13040
|
+
const label = getToolCallLabel(toolCall);
|
|
13041
|
+
const match = RE_TOOL_NAME_PREFIX.exec(label);
|
|
13042
|
+
const toolNamePrefix = match ? match[1] : label;
|
|
13043
|
+
const suffix = label.slice(toolNamePrefix.length);
|
|
13044
|
+
const hasSuffix = suffix.length > 0;
|
|
13045
|
+
const hoverTitle = hasSuffix && toolCall.arguments.trim() ? toolCall.arguments : undefined;
|
|
13046
|
+
return [{
|
|
13047
|
+
childCount: hasSuffix ? 2 : 1,
|
|
13048
|
+
className: ChatOrderedListItem,
|
|
13049
|
+
...(hoverTitle ? {
|
|
13050
|
+
title: hoverTitle
|
|
13051
|
+
} : {}),
|
|
13052
|
+
type: Li
|
|
13053
|
+
}, {
|
|
13054
|
+
childCount: 1,
|
|
13055
|
+
className: ToolCallName,
|
|
13056
|
+
type: Span
|
|
13057
|
+
}, text(toolNamePrefix), ...(hasSuffix ? [text(suffix)] : [])];
|
|
13058
|
+
};
|
|
13059
|
+
|
|
13060
|
+
const getToolCallEditFileVirtualDom = toolCall => {
|
|
13061
|
+
const target = getReadFileTarget(toolCall.arguments);
|
|
13062
|
+
if (!target) {
|
|
13063
|
+
return [];
|
|
11792
13064
|
}
|
|
11793
|
-
|
|
11794
|
-
|
|
13065
|
+
const fileName = getFileNameFromUri(target.title);
|
|
13066
|
+
const fileNameClickableProps = target.clickableUri ? {
|
|
13067
|
+
'data-uri': target.clickableUri,
|
|
13068
|
+
onClick: HandleClickFileName
|
|
13069
|
+
} : {};
|
|
13070
|
+
return [{
|
|
13071
|
+
childCount: 3,
|
|
13072
|
+
className: ChatOrderedListItem,
|
|
13073
|
+
title: target.title,
|
|
13074
|
+
type: Li
|
|
13075
|
+
}, {
|
|
13076
|
+
childCount: 0,
|
|
13077
|
+
className: FileIcon,
|
|
13078
|
+
type: Div
|
|
13079
|
+
}, {
|
|
13080
|
+
childCount: 1,
|
|
13081
|
+
className: ToolCallName,
|
|
13082
|
+
type: Span
|
|
13083
|
+
}, text('edit_file '), ...getToolCallFileNameDom(fileName, {
|
|
13084
|
+
clickableProps: fileNameClickableProps,
|
|
13085
|
+
title: target.clickableUri
|
|
13086
|
+
})];
|
|
13087
|
+
};
|
|
13088
|
+
|
|
13089
|
+
const getToolCallGetWorkspaceUriVirtualDom = toolCall => {
|
|
13090
|
+
if (!toolCall.result) {
|
|
13091
|
+
return [];
|
|
11795
13092
|
}
|
|
11796
|
-
const argumentPreview = getToolCallArgumentPreview(toolCall.arguments);
|
|
11797
13093
|
const statusLabel = getToolCallStatusLabel(toolCall);
|
|
11798
|
-
|
|
11799
|
-
|
|
11800
|
-
|
|
11801
|
-
|
|
13094
|
+
const fileName = getFileNameFromUri(toolCall.result);
|
|
13095
|
+
const fileNameClickableProps = {
|
|
13096
|
+
'data-uri': toolCall.result,
|
|
13097
|
+
onClick: HandleClickFileName
|
|
13098
|
+
};
|
|
13099
|
+
return [{
|
|
13100
|
+
childCount: statusLabel ? 4 : 3,
|
|
13101
|
+
className: ChatOrderedListItem,
|
|
13102
|
+
title: toolCall.result,
|
|
13103
|
+
type: Li
|
|
13104
|
+
}, {
|
|
13105
|
+
childCount: 0,
|
|
13106
|
+
className: FileIcon,
|
|
13107
|
+
type: Div
|
|
13108
|
+
}, {
|
|
13109
|
+
childCount: 1,
|
|
13110
|
+
className: ToolCallName,
|
|
13111
|
+
type: Span
|
|
13112
|
+
}, text('get_workspace_uri '), ...getToolCallFileNameDom(fileName, {
|
|
13113
|
+
clickableProps: fileNameClickableProps
|
|
13114
|
+
}), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
11802
13115
|
};
|
|
11803
13116
|
|
|
11804
13117
|
const getToolCallReadFileVirtualDom = toolCall => {
|
|
@@ -11826,12 +13139,9 @@ const getToolCallReadFileVirtualDom = toolCall => {
|
|
|
11826
13139
|
childCount: 1,
|
|
11827
13140
|
className: ToolCallName,
|
|
11828
13141
|
type: Span
|
|
11829
|
-
}, text(toolNameLabel), {
|
|
11830
|
-
|
|
11831
|
-
|
|
11832
|
-
...fileNameClickableProps,
|
|
11833
|
-
type: Span
|
|
11834
|
-
}, ...getToolCallFileNameDom(fileName, fileNameClickableProps), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
13142
|
+
}, text(toolNameLabel), ...getToolCallFileNameDom(fileName, {
|
|
13143
|
+
clickableProps: fileNameClickableProps
|
|
13144
|
+
}), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
11835
13145
|
};
|
|
11836
13146
|
|
|
11837
13147
|
const maxHtmlLength = 40_000;
|
|
@@ -12208,12 +13518,9 @@ const getToolCallWriteFileVirtualDom = toolCall => {
|
|
|
12208
13518
|
childCount: 1,
|
|
12209
13519
|
className: ToolCallName,
|
|
12210
13520
|
type: Span
|
|
12211
|
-
}, text('write_file '), {
|
|
12212
|
-
|
|
12213
|
-
|
|
12214
|
-
...fileNameClickableProps,
|
|
12215
|
-
type: Span
|
|
12216
|
-
}, ...getToolCallFileNameDom(fileName, fileNameClickableProps), ...(showDiffStats ? [{
|
|
13521
|
+
}, text('write_file '), ...getToolCallFileNameDom(fileName, {
|
|
13522
|
+
clickableProps: fileNameClickableProps
|
|
13523
|
+
}), ...(showDiffStats ? [{
|
|
12217
13524
|
childCount: 1,
|
|
12218
13525
|
className: Insertion,
|
|
12219
13526
|
type: Span
|
|
@@ -12224,7 +13531,6 @@ const getToolCallWriteFileVirtualDom = toolCall => {
|
|
|
12224
13531
|
}, text(` -${linesDeleted}`)] : []), ...(statusLabel ? [text(statusLabel)] : [])];
|
|
12225
13532
|
};
|
|
12226
13533
|
|
|
12227
|
-
const RE_TOOL_NAME_PREFIX = /^([^ :]+)/;
|
|
12228
13534
|
const getToolCallDom = toolCall => {
|
|
12229
13535
|
if (toolCall.name === 'getWorkspaceUri') {
|
|
12230
13536
|
const virtualDom = getToolCallGetWorkspaceUriVirtualDom(toolCall);
|
|
@@ -12268,24 +13574,7 @@ const getToolCallDom = toolCall => {
|
|
|
12268
13574
|
return virtualDom;
|
|
12269
13575
|
}
|
|
12270
13576
|
}
|
|
12271
|
-
|
|
12272
|
-
const match = RE_TOOL_NAME_PREFIX.exec(label);
|
|
12273
|
-
const toolNamePrefix = match ? match[1] : label;
|
|
12274
|
-
const suffix = label.slice(toolNamePrefix.length);
|
|
12275
|
-
const hasSuffix = suffix.length > 0;
|
|
12276
|
-
const hoverTitle = hasSuffix && toolCall.arguments.trim() ? toolCall.arguments : undefined;
|
|
12277
|
-
return [{
|
|
12278
|
-
childCount: hasSuffix ? 2 : 1,
|
|
12279
|
-
className: ChatOrderedListItem,
|
|
12280
|
-
...(hoverTitle ? {
|
|
12281
|
-
title: hoverTitle
|
|
12282
|
-
} : {}),
|
|
12283
|
-
type: Li
|
|
12284
|
-
}, {
|
|
12285
|
-
childCount: 1,
|
|
12286
|
-
className: ToolCallName,
|
|
12287
|
-
type: Span
|
|
12288
|
-
}, text(toolNamePrefix), ...(hasSuffix ? [text(suffix)] : [])];
|
|
13577
|
+
return getToolCallDefaultDom(toolCall);
|
|
12289
13578
|
};
|
|
12290
13579
|
|
|
12291
13580
|
const withOrderedListMarker = (virtualDom, index) => {
|
|
@@ -12343,6 +13632,70 @@ const getTopLevelNodeCount = nodes => {
|
|
|
12343
13632
|
return topLevelCount;
|
|
12344
13633
|
};
|
|
12345
13634
|
|
|
13635
|
+
const getChatAttachmentLabel = displayType => {
|
|
13636
|
+
switch (displayType) {
|
|
13637
|
+
case 'file':
|
|
13638
|
+
return 'File';
|
|
13639
|
+
case 'image':
|
|
13640
|
+
return 'Image';
|
|
13641
|
+
case 'invalid-image':
|
|
13642
|
+
return 'Invalid image';
|
|
13643
|
+
case 'text-file':
|
|
13644
|
+
return 'Text file';
|
|
13645
|
+
default:
|
|
13646
|
+
return displayType;
|
|
13647
|
+
}
|
|
13648
|
+
};
|
|
13649
|
+
const getChatAttachmentClassName = displayType => {
|
|
13650
|
+
switch (displayType) {
|
|
13651
|
+
case 'file':
|
|
13652
|
+
return ChatAttachment;
|
|
13653
|
+
case 'image':
|
|
13654
|
+
return ChatAttachmentImage;
|
|
13655
|
+
case 'invalid-image':
|
|
13656
|
+
return ChatAttachmentInvalidImage;
|
|
13657
|
+
case 'text-file':
|
|
13658
|
+
return ChatAttachmentTextFile;
|
|
13659
|
+
default:
|
|
13660
|
+
return ChatAttachment;
|
|
13661
|
+
}
|
|
13662
|
+
};
|
|
13663
|
+
const getChatAttachmentPreviewDom = attachment => {
|
|
13664
|
+
if (!attachment.previewSrc) {
|
|
13665
|
+
return [];
|
|
13666
|
+
}
|
|
13667
|
+
return [{
|
|
13668
|
+
alt: `Attachment preview for ${attachment.name}`,
|
|
13669
|
+
childCount: 0,
|
|
13670
|
+
className: ChatAttachmentPreview,
|
|
13671
|
+
src: attachment.previewSrc,
|
|
13672
|
+
type: Img
|
|
13673
|
+
}];
|
|
13674
|
+
};
|
|
13675
|
+
const getChatAttachmentsDom = attachments => {
|
|
13676
|
+
if (attachments.length === 0) {
|
|
13677
|
+
return [];
|
|
13678
|
+
}
|
|
13679
|
+
return [{
|
|
13680
|
+
childCount: attachments.length,
|
|
13681
|
+
className: ChatAttachments,
|
|
13682
|
+
type: Div
|
|
13683
|
+
}, ...attachments.flatMap(attachment => {
|
|
13684
|
+
const previewDom = getChatAttachmentPreviewDom(attachment);
|
|
13685
|
+
return [{
|
|
13686
|
+
childCount: 1 + previewDom.length,
|
|
13687
|
+
className: mergeClassNames(ChatAttachment, getChatAttachmentClassName(attachment.displayType)),
|
|
13688
|
+
type: Div
|
|
13689
|
+
}, ...previewDom, {
|
|
13690
|
+
childCount: 1,
|
|
13691
|
+
className: ChatAttachmentLabel,
|
|
13692
|
+
type: Span
|
|
13693
|
+
}, {
|
|
13694
|
+
text: `${getChatAttachmentLabel(attachment.displayType)} · ${attachment.name}`,
|
|
13695
|
+
type: Text
|
|
13696
|
+
}];
|
|
13697
|
+
})];
|
|
13698
|
+
};
|
|
12346
13699
|
const getChatMessageDom = (message, parsedMessageContent, _openRouterApiKeyInput, _openApiApiKeyInput = '', openApiApiKeyState = 'idle', openApiApiKeysSettingsUrl = 'https://platform.openai.com/api-keys', openApiApiKeyInputPattern = '^sk-.+', openRouterApiKeyState = 'idle', useChatMathWorker = false) => {
|
|
12347
13700
|
const roleClassName = message.role === 'user' ? MessageUser : MessageAssistant;
|
|
12348
13701
|
const isOpenApiApiKeyMissingMessage = message.role === 'assistant' && message.text === openApiApiKeyRequiredMessage;
|
|
@@ -12350,10 +13703,12 @@ const getChatMessageDom = (message, parsedMessageContent, _openRouterApiKeyInput
|
|
|
12350
13703
|
const isOpenRouterRequestFailedMessage = message.role === 'assistant' && message.text === openRouterRequestFailedMessage;
|
|
12351
13704
|
const isOpenRouterTooManyRequestsMessage = message.role === 'assistant' && message.text.startsWith(openRouterTooManyRequestsMessage);
|
|
12352
13705
|
const messageDom = getMessageContentDom(parsedMessageContent, useChatMathWorker);
|
|
13706
|
+
const attachmentsDom = message.role === 'user' ? getChatAttachmentsDom(message.attachments ?? []) : [];
|
|
12353
13707
|
const toolCallsDom = getToolCallsDom(message);
|
|
12354
13708
|
const toolCallsChildCount = toolCallsDom.length > 0 ? 1 : 0;
|
|
12355
13709
|
const messageDomChildCount = getTopLevelNodeCount(messageDom);
|
|
12356
|
-
const
|
|
13710
|
+
const attachmentsChildCount = attachmentsDom.length > 0 ? 1 : 0;
|
|
13711
|
+
const extraChildCount = isOpenApiApiKeyMissingMessage || isOpenRouterApiKeyMissingMessage || isOpenRouterRequestFailedMessage || isOpenRouterTooManyRequestsMessage ? messageDomChildCount + 1 + toolCallsChildCount + attachmentsChildCount : messageDomChildCount + toolCallsChildCount + attachmentsChildCount;
|
|
12357
13712
|
return [{
|
|
12358
13713
|
childCount: 1,
|
|
12359
13714
|
className: mergeClassNames(Message, roleClassName),
|
|
@@ -12362,7 +13717,7 @@ const getChatMessageDom = (message, parsedMessageContent, _openRouterApiKeyInput
|
|
|
12362
13717
|
childCount: extraChildCount,
|
|
12363
13718
|
className: ChatMessageContent,
|
|
12364
13719
|
type: Div
|
|
12365
|
-
}, ...toolCallsDom, ...messageDom, ...(isOpenApiApiKeyMissingMessage ? getMissingOpenApiApiKeyDom(openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern) : []), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyState) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : []), ...(isOpenRouterTooManyRequestsMessage ? getOpenRouterTooManyRequestsDom() : [])];
|
|
13720
|
+
}, ...toolCallsDom, ...messageDom, ...attachmentsDom, ...(isOpenApiApiKeyMissingMessage ? getMissingOpenApiApiKeyDom(openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern) : []), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyState) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : []), ...(isOpenRouterTooManyRequestsMessage ? getOpenRouterTooManyRequestsDom() : [])];
|
|
12366
13721
|
};
|
|
12367
13722
|
|
|
12368
13723
|
const parentNode$1 = {
|
|
@@ -12418,7 +13773,18 @@ const getDisplayMessages = (messages, parsedMessages) => {
|
|
|
12418
13773
|
};
|
|
12419
13774
|
const getMessagesDom = (messages, parsedMessages, openRouterApiKeyInput, openApiApiKeyInput = '', openApiApiKeyState = 'idle', openApiApiKeysSettingsUrl = 'https://platform.openai.com/api-keys', openApiApiKeyInputPattern = '^sk-.+', openRouterApiKeyState = 'idle', messagesScrollTop = 0, useChatMathWorker = false, hideWelcomeMessage = false) => {
|
|
12420
13775
|
if (messages.length === 0) {
|
|
12421
|
-
|
|
13776
|
+
if (!hideWelcomeMessage) {
|
|
13777
|
+
return getEmptyMessagesDom();
|
|
13778
|
+
}
|
|
13779
|
+
return [{
|
|
13780
|
+
childCount: 0,
|
|
13781
|
+
className: 'ChatMessages',
|
|
13782
|
+
onContextMenu: HandleMessagesContextMenu,
|
|
13783
|
+
onScroll: HandleMessagesScroll,
|
|
13784
|
+
role: 'log',
|
|
13785
|
+
scrollTop: messagesScrollTop,
|
|
13786
|
+
type: Div
|
|
13787
|
+
}];
|
|
12422
13788
|
}
|
|
12423
13789
|
const displayMessages = getDisplayMessages(messages, parsedMessages);
|
|
12424
13790
|
return [{
|
|
@@ -12426,24 +13792,26 @@ const getMessagesDom = (messages, parsedMessages, openRouterApiKeyInput, openApi
|
|
|
12426
13792
|
className: 'ChatMessages',
|
|
12427
13793
|
onContextMenu: HandleMessagesContextMenu,
|
|
12428
13794
|
onScroll: HandleMessagesScroll,
|
|
13795
|
+
role: 'log',
|
|
12429
13796
|
scrollTop: messagesScrollTop,
|
|
12430
13797
|
type: Div
|
|
12431
13798
|
}, ...displayMessages.flatMap(item => getChatMessageDom(item.message, item.parsedContent, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, useChatMathWorker))];
|
|
12432
13799
|
};
|
|
12433
13800
|
|
|
13801
|
+
const arrowLeft$1 = {
|
|
13802
|
+
childCount: 0,
|
|
13803
|
+
className: mergeClassNames(MaskIcon, MaskIconArrowLeft),
|
|
13804
|
+
type: Div
|
|
13805
|
+
};
|
|
12434
13806
|
const getBackToChatsButtonDom = () => {
|
|
12435
13807
|
return [{
|
|
12436
13808
|
childCount: 1,
|
|
12437
|
-
className:
|
|
12438
|
-
inputType: 'button',
|
|
13809
|
+
className: IconButton,
|
|
12439
13810
|
name: Back,
|
|
12440
13811
|
onClick: HandleClickBack,
|
|
12441
13812
|
title: backToChatList(),
|
|
12442
13813
|
type: Button$1
|
|
12443
|
-
},
|
|
12444
|
-
text: backToChatList(),
|
|
12445
|
-
type: Text
|
|
12446
|
-
}];
|
|
13814
|
+
}, arrowLeft$1];
|
|
12447
13815
|
};
|
|
12448
13816
|
|
|
12449
13817
|
const getProjectSessionDom = (session, selectedSessionId) => {
|
|
@@ -12483,10 +13851,10 @@ const getProjectGroupDom = (project, sessions, projectExpandedIds, selectedProje
|
|
|
12483
13851
|
tabIndex: 0,
|
|
12484
13852
|
type: Div
|
|
12485
13853
|
}, {
|
|
12486
|
-
childCount:
|
|
12487
|
-
className: ProjectListChevron,
|
|
12488
|
-
type:
|
|
12489
|
-
},
|
|
13854
|
+
childCount: 0,
|
|
13855
|
+
className: mergeClassNames(ProjectListChevron, MaskIcon, expanded ? MaskIconChevronDown : MaskIconChevronRight),
|
|
13856
|
+
type: Div
|
|
13857
|
+
}, {
|
|
12490
13858
|
childCount: 0,
|
|
12491
13859
|
className: 'MaskIcon MaskIconFolder',
|
|
12492
13860
|
type: Div
|
|
@@ -12535,15 +13903,6 @@ const getProjectListDom = (projects, sessions, projectExpandedIds, selectedProje
|
|
|
12535
13903
|
}, text('+ Add Project'), ...(showBackToChatsButton ? getBackToChatsButtonDom() : [])];
|
|
12536
13904
|
};
|
|
12537
13905
|
|
|
12538
|
-
const runModes = ['local', 'background', 'cloud'];
|
|
12539
|
-
const runModePickerHeight = runModes.length * 28;
|
|
12540
|
-
const getRunModeOptionsVirtualDom = selectedRunMode => {
|
|
12541
|
-
return runModes.flatMap(runMode => getCustomSelectOptionVirtualDom(getRunModePickerItemInputName(runMode), runMode, runMode === selectedRunMode));
|
|
12542
|
-
};
|
|
12543
|
-
const getRunModePickerPopOverVirtualDom = selectedRunMode => {
|
|
12544
|
-
return getCustomSelectPopOverVirtualDom(runModes.length, runModePickerHeight, getRunModeOptionsVirtualDom(selectedRunMode), RunModePickerContainer, RunModePickerPopOver);
|
|
12545
|
-
};
|
|
12546
|
-
|
|
12547
13906
|
const getChatModeChatFocusVirtualDom = ({
|
|
12548
13907
|
addContextButtonEnabled,
|
|
12549
13908
|
agentMode,
|
|
@@ -12551,6 +13910,8 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
12551
13910
|
authEnabled = false,
|
|
12552
13911
|
authErrorMessage = '',
|
|
12553
13912
|
authStatus = 'signed-out',
|
|
13913
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
13914
|
+
composerAttachmentPreviewOverlayError = false,
|
|
12554
13915
|
composerAttachments,
|
|
12555
13916
|
composerDropActive = false,
|
|
12556
13917
|
composerDropEnabled = true,
|
|
@@ -12559,6 +13920,9 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
12559
13920
|
composerHeight = 28,
|
|
12560
13921
|
composerLineHeight = 20,
|
|
12561
13922
|
composerValue,
|
|
13923
|
+
hasSpaceForAgentModePicker,
|
|
13924
|
+
hasSpaceForRunModePicker,
|
|
13925
|
+
messagesAutoScrollEnabled,
|
|
12562
13926
|
messagesScrollTop = 0,
|
|
12563
13927
|
modelPickerOpen = false,
|
|
12564
13928
|
modelPickerSearchValue = '',
|
|
@@ -12578,6 +13942,7 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
12578
13942
|
reasoningPickerEnabled,
|
|
12579
13943
|
runMode,
|
|
12580
13944
|
runModePickerOpen = false,
|
|
13945
|
+
scrollDownButtonEnabled,
|
|
12581
13946
|
selectedModelId,
|
|
12582
13947
|
selectedProjectId = '',
|
|
12583
13948
|
selectedSessionId,
|
|
@@ -12593,31 +13958,43 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
12593
13958
|
voiceDictationEnabled = false
|
|
12594
13959
|
}) => {
|
|
12595
13960
|
const selectedSession = sessions.find(session => session.id === selectedSessionId);
|
|
13961
|
+
const selectedProject = projects.find(project => project.id === selectedProjectId);
|
|
12596
13962
|
const messages = selectedSession ? selectedSession.messages : [];
|
|
13963
|
+
const selectedSessionTitle = selectedSession?.title || chatTitle();
|
|
13964
|
+
const selectedProjectName = selectedProject?.name || '';
|
|
12597
13965
|
const showCreatePullRequestButton = canCreatePullRequest(selectedSession);
|
|
12598
13966
|
const isDropOverlayVisible = composerDropEnabled && composerDropActive;
|
|
12599
|
-
const
|
|
13967
|
+
const isComposerAttachmentPreviewOverlayVisible = !!composerAttachmentPreviewOverlayAttachmentId;
|
|
13968
|
+
const isAgentModePickerVisible = hasSpaceForAgentModePicker && agentModePickerOpen;
|
|
12600
13969
|
const isNewModelPickerVisible = modelPickerOpen;
|
|
12601
|
-
const isRunModePickerVisible = showRunMode && runModePickerOpen;
|
|
12602
|
-
const
|
|
13970
|
+
const isRunModePickerVisible = showRunMode && hasSpaceForRunModePicker && runModePickerOpen;
|
|
13971
|
+
const hasVisibleOverlays = isDropOverlayVisible || isComposerAttachmentPreviewOverlayVisible || isAgentModePickerVisible || isNewModelPickerVisible || isRunModePickerVisible;
|
|
13972
|
+
const chatRootChildCount = 2 + (hasVisibleOverlays ? 1 : 0);
|
|
12603
13973
|
return [{
|
|
12604
13974
|
childCount: chatRootChildCount,
|
|
12605
13975
|
className: mergeClassNames(Viewlet, Chat, ChatFocus),
|
|
12606
13976
|
onDragEnter: HandleDragEnterChatView,
|
|
12607
13977
|
onDragOver: HandleDragOverChatView,
|
|
12608
13978
|
type: Div
|
|
12609
|
-
}, ...getProjectListDom(projects, sessions, projectExpandedIds, selectedProjectId, selectedSessionId, projectListScrollTop, true),
|
|
12610
|
-
childCount:
|
|
12611
|
-
className:
|
|
12612
|
-
name: ComposerDropTarget,
|
|
12613
|
-
onDragLeave: HandleDragLeave,
|
|
12614
|
-
onDragOver: HandleDragOver,
|
|
12615
|
-
onDrop: HandleDrop,
|
|
13979
|
+
}, ...getProjectListDom(projects, sessions, projectExpandedIds, selectedProjectId, selectedSessionId, projectListScrollTop, true), {
|
|
13980
|
+
childCount: 3,
|
|
13981
|
+
className: ChatFocusMainArea,
|
|
12616
13982
|
type: Div
|
|
12617
|
-
}, {
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
13983
|
+
}, ...getChatHeaderDomFocusMode(selectedSessionTitle, selectedProjectName), ...getMessagesDom(messages, parsedMessages, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, messagesScrollTop, useChatMathWorker, true), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton, voiceDictationEnabled, scrollDownButtonEnabled, messagesAutoScrollEnabled), ...getChatOverlaysVirtualDom({
|
|
13984
|
+
agentMode,
|
|
13985
|
+
agentModePickerVisible: isAgentModePickerVisible,
|
|
13986
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
13987
|
+
composerAttachmentPreviewOverlayError,
|
|
13988
|
+
composerAttachmentPreviewOverlayVisible: isComposerAttachmentPreviewOverlayVisible,
|
|
13989
|
+
composerAttachments,
|
|
13990
|
+
dropOverlayVisible: isDropOverlayVisible,
|
|
13991
|
+
modelPickerSearchValue,
|
|
13992
|
+
modelPickerVisible: isNewModelPickerVisible,
|
|
13993
|
+
runMode,
|
|
13994
|
+
runModePickerVisible: isRunModePickerVisible,
|
|
13995
|
+
selectedModelId,
|
|
13996
|
+
visibleModels
|
|
13997
|
+
})];
|
|
12621
13998
|
};
|
|
12622
13999
|
|
|
12623
14000
|
const arrowLeft = {
|
|
@@ -12656,22 +14033,31 @@ const getHeaderActionVirtualDom = item => {
|
|
|
12656
14033
|
}];
|
|
12657
14034
|
};
|
|
12658
14035
|
|
|
12659
|
-
const
|
|
12660
|
-
const toggleTitle = viewMode === 'chat-focus' ? normalChatMode() : chatFocusMode();
|
|
14036
|
+
const getAuthAction = (authEnabled, authStatus) => {
|
|
12661
14037
|
const isSigningIn = authStatus === 'signing-in';
|
|
12662
|
-
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
12666
|
-
|
|
12667
|
-
|
|
12668
|
-
|
|
14038
|
+
if (!authEnabled) {
|
|
14039
|
+
return undefined;
|
|
14040
|
+
}
|
|
14041
|
+
if (authStatus !== 'signed-in') {
|
|
14042
|
+
return {
|
|
14043
|
+
disabled: isSigningIn,
|
|
14044
|
+
icon: mergeClassNames(MaskIcon, MaskIconAccount),
|
|
14045
|
+
name: Login,
|
|
14046
|
+
onClick: HandleClick,
|
|
14047
|
+
title: isSigningIn ? loggingInToBackend() : loginToBackend()
|
|
14048
|
+
};
|
|
14049
|
+
}
|
|
14050
|
+
return {
|
|
12669
14051
|
disabled: false,
|
|
12670
14052
|
icon: mergeClassNames(MaskIcon, MaskIconSignOut),
|
|
12671
14053
|
name: Logout,
|
|
12672
14054
|
onClick: HandleClick,
|
|
12673
14055
|
title: logoutFromBackend()
|
|
12674
|
-
}
|
|
14056
|
+
};
|
|
14057
|
+
};
|
|
14058
|
+
const getChatHeaderActionsDom = (viewMode, authEnabled = false, authStatus = 'signed-out', searchEnabled = false) => {
|
|
14059
|
+
const toggleTitle = viewMode === 'chat-focus' ? normalChatMode() : chatFocusMode();
|
|
14060
|
+
const authAction = getAuthAction(authEnabled, authStatus);
|
|
12675
14061
|
const items = [{
|
|
12676
14062
|
icon: mergeClassNames(MaskIcon, MaskIconLayoutPanelLeft),
|
|
12677
14063
|
name: ToggleChatFocus,
|
|
@@ -12704,6 +14090,7 @@ const getChatHeaderActionsDom = (viewMode, authEnabled = false, authStatus = 'si
|
|
|
12704
14090
|
title: closeChat()
|
|
12705
14091
|
}];
|
|
12706
14092
|
return [{
|
|
14093
|
+
'aria-label': 'chat actions',
|
|
12707
14094
|
childCount: items.length,
|
|
12708
14095
|
className: ChatActions,
|
|
12709
14096
|
role: ToolBar,
|
|
@@ -12727,7 +14114,7 @@ const getChatHeaderDomDetailMode = (selectedSessionTitle, authEnabled = false, a
|
|
|
12727
14114
|
childCount: hasAuthError ? 3 : 2,
|
|
12728
14115
|
className: ChatHeader,
|
|
12729
14116
|
onContextMenu: HandleChatHeaderContextMenu,
|
|
12730
|
-
type:
|
|
14117
|
+
type: Header
|
|
12731
14118
|
}, {
|
|
12732
14119
|
childCount: 2,
|
|
12733
14120
|
className: ChatName,
|
|
@@ -12746,6 +14133,8 @@ const getChatModeDetailVirtualDom = ({
|
|
|
12746
14133
|
authEnabled = false,
|
|
12747
14134
|
authErrorMessage = '',
|
|
12748
14135
|
authStatus = 'signed-out',
|
|
14136
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14137
|
+
composerAttachmentPreviewOverlayError = false,
|
|
12749
14138
|
composerAttachments,
|
|
12750
14139
|
composerDropActive = false,
|
|
12751
14140
|
composerDropEnabled = true,
|
|
@@ -12754,6 +14143,9 @@ const getChatModeDetailVirtualDom = ({
|
|
|
12754
14143
|
composerHeight = 28,
|
|
12755
14144
|
composerLineHeight = 20,
|
|
12756
14145
|
composerValue,
|
|
14146
|
+
hasSpaceForAgentModePicker,
|
|
14147
|
+
hasSpaceForRunModePicker,
|
|
14148
|
+
messagesAutoScrollEnabled,
|
|
12757
14149
|
messagesScrollTop = 0,
|
|
12758
14150
|
modelPickerOpen = false,
|
|
12759
14151
|
modelPickerSearchValue = '',
|
|
@@ -12770,6 +14162,7 @@ const getChatModeDetailVirtualDom = ({
|
|
|
12770
14162
|
reasoningPickerEnabled,
|
|
12771
14163
|
runMode,
|
|
12772
14164
|
runModePickerOpen = false,
|
|
14165
|
+
scrollDownButtonEnabled,
|
|
12773
14166
|
selectedModelId,
|
|
12774
14167
|
selectedSessionId,
|
|
12775
14168
|
sessions,
|
|
@@ -12788,28 +14181,33 @@ const getChatModeDetailVirtualDom = ({
|
|
|
12788
14181
|
const messages = selectedSession ? selectedSession.messages : [];
|
|
12789
14182
|
const showCreatePullRequestButton = canCreatePullRequest(selectedSession);
|
|
12790
14183
|
const isDropOverlayVisible = composerDropEnabled && composerDropActive;
|
|
12791
|
-
const
|
|
14184
|
+
const isComposerAttachmentPreviewOverlayVisible = !!composerAttachmentPreviewOverlayAttachmentId;
|
|
14185
|
+
const isAgentModePickerVisible = hasSpaceForAgentModePicker && agentModePickerOpen;
|
|
12792
14186
|
const isNewModelPickerVisible = modelPickerOpen;
|
|
12793
|
-
const isRunModePickerVisible = showRunMode && runModePickerOpen;
|
|
12794
|
-
const
|
|
14187
|
+
const isRunModePickerVisible = showRunMode && hasSpaceForRunModePicker && runModePickerOpen;
|
|
14188
|
+
const hasVisibleOverlays = isDropOverlayVisible || isComposerAttachmentPreviewOverlayVisible || isAgentModePickerVisible || isNewModelPickerVisible || isRunModePickerVisible;
|
|
14189
|
+
const chatRootChildCount = 3 + (hasVisibleOverlays ? 1 : 0);
|
|
12795
14190
|
return [{
|
|
12796
14191
|
childCount: chatRootChildCount,
|
|
12797
14192
|
className: mergeClassNames(Viewlet, Chat),
|
|
12798
14193
|
onDragEnter: HandleDragEnterChatView,
|
|
12799
14194
|
onDragOver: HandleDragOverChatView,
|
|
12800
14195
|
type: Div
|
|
12801
|
-
}, ...getChatHeaderDomDetailMode(selectedSessionTitle, authEnabled, authStatus, authErrorMessage), ...getMessagesDom(messages, parsedMessages, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, messagesScrollTop, useChatMathWorker), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton, voiceDictationEnabled), ...(
|
|
12802
|
-
|
|
12803
|
-
|
|
12804
|
-
|
|
12805
|
-
|
|
12806
|
-
|
|
12807
|
-
|
|
12808
|
-
|
|
12809
|
-
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
14196
|
+
}, ...getChatHeaderDomDetailMode(selectedSessionTitle, authEnabled, authStatus, authErrorMessage), ...getMessagesDom(messages, parsedMessages, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, messagesScrollTop, useChatMathWorker), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton, voiceDictationEnabled, scrollDownButtonEnabled, messagesAutoScrollEnabled), ...getChatOverlaysVirtualDom({
|
|
14197
|
+
agentMode,
|
|
14198
|
+
agentModePickerVisible: isAgentModePickerVisible,
|
|
14199
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14200
|
+
composerAttachmentPreviewOverlayError,
|
|
14201
|
+
composerAttachmentPreviewOverlayVisible: isComposerAttachmentPreviewOverlayVisible,
|
|
14202
|
+
composerAttachments,
|
|
14203
|
+
dropOverlayVisible: isDropOverlayVisible,
|
|
14204
|
+
modelPickerSearchValue,
|
|
14205
|
+
modelPickerVisible: isNewModelPickerVisible,
|
|
14206
|
+
runMode,
|
|
14207
|
+
runModePickerVisible: isRunModePickerVisible,
|
|
14208
|
+
selectedModelId,
|
|
14209
|
+
visibleModels
|
|
14210
|
+
})];
|
|
12813
14211
|
};
|
|
12814
14212
|
|
|
12815
14213
|
const getChatSearchDom = (hasSearchField, searchValue) => {
|
|
@@ -12839,7 +14237,7 @@ const getChatHeaderListModeDom = (authEnabled = false, authStatus = 'signed-out'
|
|
|
12839
14237
|
childCount: headerChildCount,
|
|
12840
14238
|
className: ChatHeader,
|
|
12841
14239
|
onContextMenu: HandleChatHeaderContextMenu,
|
|
12842
|
-
type:
|
|
14240
|
+
type: Header
|
|
12843
14241
|
}, {
|
|
12844
14242
|
childCount: 1,
|
|
12845
14243
|
className: ChatHeaderLabel,
|
|
@@ -12938,23 +14336,6 @@ const getChatListDom = (sessions, selectedSessionId, listFocusedIndex, chatListS
|
|
|
12938
14336
|
}, ...sessions.flatMap((session, index) => getSessionDom(session, index === listFocusedIndex))];
|
|
12939
14337
|
};
|
|
12940
14338
|
|
|
12941
|
-
const getDropOverlayVirtualDom = isDropOverlayVisible => {
|
|
12942
|
-
if (!isDropOverlayVisible) {
|
|
12943
|
-
return [];
|
|
12944
|
-
}
|
|
12945
|
-
return [{
|
|
12946
|
-
childCount: 1,
|
|
12947
|
-
className: mergeClassNames(ChatViewDropOverlay, ChatViewDropOverlayActive),
|
|
12948
|
-
name: ComposerDropTarget,
|
|
12949
|
-
onDragLeave: HandleDragLeave,
|
|
12950
|
-
onDragOver: HandleDragOver,
|
|
12951
|
-
onDrop: HandleDrop,
|
|
12952
|
-
type: Div
|
|
12953
|
-
}, {
|
|
12954
|
-
text: attachImageAsContext(),
|
|
12955
|
-
type: Text
|
|
12956
|
-
}];
|
|
12957
|
-
};
|
|
12958
14339
|
const getChatModeListVirtualDom = ({
|
|
12959
14340
|
addContextButtonEnabled,
|
|
12960
14341
|
agentMode,
|
|
@@ -12963,6 +14344,8 @@ const getChatModeListVirtualDom = ({
|
|
|
12963
14344
|
authErrorMessage = '',
|
|
12964
14345
|
authStatus = 'signed-out',
|
|
12965
14346
|
chatListScrollTop = 0,
|
|
14347
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14348
|
+
composerAttachmentPreviewOverlayError = false,
|
|
12966
14349
|
composerAttachments,
|
|
12967
14350
|
composerDropActive = false,
|
|
12968
14351
|
composerDropEnabled = true,
|
|
@@ -12971,6 +14354,8 @@ const getChatModeListVirtualDom = ({
|
|
|
12971
14354
|
composerHeight = 28,
|
|
12972
14355
|
composerLineHeight = 20,
|
|
12973
14356
|
composerValue,
|
|
14357
|
+
hasSpaceForAgentModePicker,
|
|
14358
|
+
hasSpaceForRunModePicker,
|
|
12974
14359
|
listFocusedIndex = -1,
|
|
12975
14360
|
modelPickerOpen = false,
|
|
12976
14361
|
modelPickerSearchValue = '',
|
|
@@ -12996,10 +14381,12 @@ const getChatModeListVirtualDom = ({
|
|
|
12996
14381
|
voiceDictationEnabled = false
|
|
12997
14382
|
}) => {
|
|
12998
14383
|
const isDropOverlayVisible = composerDropEnabled && composerDropActive;
|
|
12999
|
-
const
|
|
14384
|
+
const isComposerAttachmentPreviewOverlayVisible = !!composerAttachmentPreviewOverlayAttachmentId;
|
|
14385
|
+
const isAgentModePickerVisible = hasSpaceForAgentModePicker && agentModePickerOpen;
|
|
13000
14386
|
const isNewModelPickerVisible = modelPickerOpen;
|
|
13001
|
-
const isRunModePickerVisible = showRunMode && runModePickerOpen;
|
|
13002
|
-
const
|
|
14387
|
+
const isRunModePickerVisible = showRunMode && hasSpaceForRunModePicker && runModePickerOpen;
|
|
14388
|
+
const hasVisibleOverlays = isDropOverlayVisible || isComposerAttachmentPreviewOverlayVisible || isAgentModePickerVisible || isNewModelPickerVisible || isRunModePickerVisible;
|
|
14389
|
+
const chatRootChildCount = 3 + (hasVisibleOverlays ? 1 : 0);
|
|
13003
14390
|
const searchValueTrimmed = searchValue.trim().toLowerCase();
|
|
13004
14391
|
const visibleSessions = searchEnabled && searchValueTrimmed ? sessions.filter(session => session.title.toLowerCase().includes(searchValueTrimmed)) : sessions;
|
|
13005
14392
|
return [{
|
|
@@ -13008,7 +14395,21 @@ const getChatModeListVirtualDom = ({
|
|
|
13008
14395
|
onDragEnter: HandleDragEnterChatView,
|
|
13009
14396
|
onDragOver: HandleDragOverChatView,
|
|
13010
14397
|
type: Div
|
|
13011
|
-
}, ...getChatHeaderListModeDom(authEnabled, authStatus, authErrorMessage, searchEnabled, searchFieldVisible, searchValue), ...getChatListDom(visibleSessions, selectedSessionId, listFocusedIndex, chatListScrollTop), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, false, voiceDictationEnabled), ...
|
|
14398
|
+
}, ...getChatHeaderListModeDom(authEnabled, authStatus, authErrorMessage, searchEnabled, searchFieldVisible, searchValue), ...getChatListDom(visibleSessions, selectedSessionId, listFocusedIndex, chatListScrollTop), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, false, voiceDictationEnabled), ...getChatOverlaysVirtualDom({
|
|
14399
|
+
agentMode,
|
|
14400
|
+
agentModePickerVisible: isAgentModePickerVisible,
|
|
14401
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14402
|
+
composerAttachmentPreviewOverlayError,
|
|
14403
|
+
composerAttachmentPreviewOverlayVisible: isComposerAttachmentPreviewOverlayVisible,
|
|
14404
|
+
composerAttachments,
|
|
14405
|
+
dropOverlayVisible: isDropOverlayVisible,
|
|
14406
|
+
modelPickerSearchValue,
|
|
14407
|
+
modelPickerVisible: isNewModelPickerVisible,
|
|
14408
|
+
runMode,
|
|
14409
|
+
runModePickerVisible: isRunModePickerVisible,
|
|
14410
|
+
selectedModelId,
|
|
14411
|
+
visibleModels
|
|
14412
|
+
})];
|
|
13012
14413
|
};
|
|
13013
14414
|
|
|
13014
14415
|
const getChatModeUnsupportedVirtualDom = () => {
|
|
@@ -13099,6 +14500,8 @@ const getChatVirtualDom = options => {
|
|
|
13099
14500
|
authErrorMessage = '',
|
|
13100
14501
|
authStatus = 'signed-out',
|
|
13101
14502
|
chatListScrollTop,
|
|
14503
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14504
|
+
composerAttachmentPreviewOverlayError = false,
|
|
13102
14505
|
composerAttachments,
|
|
13103
14506
|
composerDropActive = false,
|
|
13104
14507
|
composerDropEnabled = true,
|
|
@@ -13107,7 +14510,10 @@ const getChatVirtualDom = options => {
|
|
|
13107
14510
|
composerHeight,
|
|
13108
14511
|
composerLineHeight,
|
|
13109
14512
|
composerValue,
|
|
14513
|
+
hasSpaceForAgentModePicker,
|
|
14514
|
+
hasSpaceForRunModePicker,
|
|
13110
14515
|
listFocusedIndex = -1,
|
|
14516
|
+
messagesAutoScrollEnabled,
|
|
13111
14517
|
messagesScrollTop,
|
|
13112
14518
|
modelPickerOpen = false,
|
|
13113
14519
|
modelPickerSearchValue = '',
|
|
@@ -13127,6 +14533,7 @@ const getChatVirtualDom = options => {
|
|
|
13127
14533
|
reasoningPickerEnabled,
|
|
13128
14534
|
runMode,
|
|
13129
14535
|
runModePickerOpen = false,
|
|
14536
|
+
scrollDownButtonEnabled,
|
|
13130
14537
|
searchEnabled = false,
|
|
13131
14538
|
searchFieldVisible = false,
|
|
13132
14539
|
searchValue = '',
|
|
@@ -13155,6 +14562,8 @@ const getChatVirtualDom = options => {
|
|
|
13155
14562
|
authEnabled,
|
|
13156
14563
|
authErrorMessage,
|
|
13157
14564
|
authStatus,
|
|
14565
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14566
|
+
composerAttachmentPreviewOverlayError,
|
|
13158
14567
|
composerAttachments,
|
|
13159
14568
|
composerDropActive,
|
|
13160
14569
|
composerDropEnabled,
|
|
@@ -13163,6 +14572,9 @@ const getChatVirtualDom = options => {
|
|
|
13163
14572
|
composerHeight,
|
|
13164
14573
|
composerLineHeight,
|
|
13165
14574
|
composerValue,
|
|
14575
|
+
hasSpaceForAgentModePicker,
|
|
14576
|
+
hasSpaceForRunModePicker,
|
|
14577
|
+
messagesAutoScrollEnabled,
|
|
13166
14578
|
messagesScrollTop,
|
|
13167
14579
|
modelPickerOpen,
|
|
13168
14580
|
modelPickerSearchValue,
|
|
@@ -13182,6 +14594,7 @@ const getChatVirtualDom = options => {
|
|
|
13182
14594
|
reasoningPickerEnabled,
|
|
13183
14595
|
runMode,
|
|
13184
14596
|
runModePickerOpen,
|
|
14597
|
+
scrollDownButtonEnabled,
|
|
13185
14598
|
selectedModelId,
|
|
13186
14599
|
selectedProjectId,
|
|
13187
14600
|
selectedSessionId,
|
|
@@ -13204,6 +14617,8 @@ const getChatVirtualDom = options => {
|
|
|
13204
14617
|
authEnabled,
|
|
13205
14618
|
authErrorMessage,
|
|
13206
14619
|
authStatus,
|
|
14620
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14621
|
+
composerAttachmentPreviewOverlayError,
|
|
13207
14622
|
composerAttachments,
|
|
13208
14623
|
composerDropActive,
|
|
13209
14624
|
composerDropEnabled,
|
|
@@ -13212,6 +14627,9 @@ const getChatVirtualDom = options => {
|
|
|
13212
14627
|
composerHeight,
|
|
13213
14628
|
composerLineHeight,
|
|
13214
14629
|
composerValue,
|
|
14630
|
+
hasSpaceForAgentModePicker,
|
|
14631
|
+
hasSpaceForRunModePicker,
|
|
14632
|
+
messagesAutoScrollEnabled,
|
|
13215
14633
|
messagesScrollTop,
|
|
13216
14634
|
modelPickerOpen,
|
|
13217
14635
|
modelPickerSearchValue,
|
|
@@ -13228,6 +14646,7 @@ const getChatVirtualDom = options => {
|
|
|
13228
14646
|
reasoningPickerEnabled,
|
|
13229
14647
|
runMode,
|
|
13230
14648
|
runModePickerOpen,
|
|
14649
|
+
scrollDownButtonEnabled,
|
|
13231
14650
|
selectedModelId,
|
|
13232
14651
|
selectedSessionId,
|
|
13233
14652
|
sessions,
|
|
@@ -13250,6 +14669,8 @@ const getChatVirtualDom = options => {
|
|
|
13250
14669
|
authErrorMessage,
|
|
13251
14670
|
authStatus,
|
|
13252
14671
|
chatListScrollTop,
|
|
14672
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14673
|
+
composerAttachmentPreviewOverlayError,
|
|
13253
14674
|
composerAttachments,
|
|
13254
14675
|
composerDropActive,
|
|
13255
14676
|
composerDropEnabled,
|
|
@@ -13258,6 +14679,8 @@ const getChatVirtualDom = options => {
|
|
|
13258
14679
|
composerHeight,
|
|
13259
14680
|
composerLineHeight,
|
|
13260
14681
|
composerValue,
|
|
14682
|
+
hasSpaceForAgentModePicker,
|
|
14683
|
+
hasSpaceForRunModePicker,
|
|
13261
14684
|
listFocusedIndex,
|
|
13262
14685
|
modelPickerOpen,
|
|
13263
14686
|
modelPickerSearchValue,
|
|
@@ -13296,6 +14719,8 @@ const renderItems = (oldState, newState) => {
|
|
|
13296
14719
|
authErrorMessage,
|
|
13297
14720
|
authStatus,
|
|
13298
14721
|
chatListScrollTop,
|
|
14722
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14723
|
+
composerAttachmentPreviewOverlayError,
|
|
13299
14724
|
composerAttachments,
|
|
13300
14725
|
composerDropActive,
|
|
13301
14726
|
composerDropEnabled,
|
|
@@ -13304,8 +14729,11 @@ const renderItems = (oldState, newState) => {
|
|
|
13304
14729
|
composerHeight,
|
|
13305
14730
|
composerLineHeight,
|
|
13306
14731
|
composerValue,
|
|
14732
|
+
hasSpaceForAgentModePicker,
|
|
14733
|
+
hasSpaceForRunModePicker,
|
|
13307
14734
|
initial,
|
|
13308
14735
|
listFocusedIndex,
|
|
14736
|
+
messagesAutoScrollEnabled,
|
|
13309
14737
|
messagesScrollTop,
|
|
13310
14738
|
modelPickerOpen,
|
|
13311
14739
|
modelPickerSearchValue,
|
|
@@ -13325,6 +14753,7 @@ const renderItems = (oldState, newState) => {
|
|
|
13325
14753
|
reasoningPickerEnabled,
|
|
13326
14754
|
runMode,
|
|
13327
14755
|
runModePickerOpen,
|
|
14756
|
+
scrollDownButtonEnabled,
|
|
13328
14757
|
searchEnabled,
|
|
13329
14758
|
searchFieldVisible,
|
|
13330
14759
|
searchValue,
|
|
@@ -13354,6 +14783,8 @@ const renderItems = (oldState, newState) => {
|
|
|
13354
14783
|
authErrorMessage,
|
|
13355
14784
|
authStatus,
|
|
13356
14785
|
chatListScrollTop,
|
|
14786
|
+
composerAttachmentPreviewOverlayAttachmentId,
|
|
14787
|
+
composerAttachmentPreviewOverlayError,
|
|
13357
14788
|
composerAttachments,
|
|
13358
14789
|
composerDropActive,
|
|
13359
14790
|
composerDropEnabled,
|
|
@@ -13362,7 +14793,10 @@ const renderItems = (oldState, newState) => {
|
|
|
13362
14793
|
composerHeight,
|
|
13363
14794
|
composerLineHeight,
|
|
13364
14795
|
composerValue,
|
|
14796
|
+
hasSpaceForAgentModePicker,
|
|
14797
|
+
hasSpaceForRunModePicker,
|
|
13365
14798
|
listFocusedIndex,
|
|
14799
|
+
messagesAutoScrollEnabled,
|
|
13366
14800
|
messagesScrollTop,
|
|
13367
14801
|
modelPickerOpen,
|
|
13368
14802
|
modelPickerSearchValue,
|
|
@@ -13382,6 +14816,7 @@ const renderItems = (oldState, newState) => {
|
|
|
13382
14816
|
reasoningPickerEnabled,
|
|
13383
14817
|
runMode,
|
|
13384
14818
|
runModePickerOpen,
|
|
14819
|
+
scrollDownButtonEnabled,
|
|
13385
14820
|
searchEnabled,
|
|
13386
14821
|
searchFieldVisible,
|
|
13387
14822
|
searchValue,
|
|
@@ -13500,6 +14935,12 @@ const renderEventListeners = () => {
|
|
|
13500
14935
|
}, {
|
|
13501
14936
|
name: HandleClick,
|
|
13502
14937
|
params: ['handleClick', TargetName, 'event.target.dataset.id', ClientX, ClientY]
|
|
14938
|
+
}, {
|
|
14939
|
+
name: HandleMouseOver,
|
|
14940
|
+
params: ['handleMouseOver', TargetName]
|
|
14941
|
+
}, {
|
|
14942
|
+
name: HandleMouseOut,
|
|
14943
|
+
params: ['handleMouseOut', TargetName, 'event.relatedTarget && event.relatedTarget.getAttribute ? event.relatedTarget.getAttribute("name") : ""']
|
|
13503
14944
|
}, {
|
|
13504
14945
|
name: HandleClickDictationButton,
|
|
13505
14946
|
params: ['handleClickDictationButton']
|
|
@@ -13556,11 +14997,11 @@ const renderEventListeners = () => {
|
|
|
13556
14997
|
params: ['handleSearchValueChange', TargetValue]
|
|
13557
14998
|
}, {
|
|
13558
14999
|
name: HandleDragEnter,
|
|
13559
|
-
params: ['handleDragEnter', TargetName,
|
|
15000
|
+
params: ['handleDragEnter', TargetName, DataTransferFiles2],
|
|
13560
15001
|
preventDefault: true
|
|
13561
15002
|
}, {
|
|
13562
15003
|
name: HandleDragOver,
|
|
13563
|
-
params: ['handleDragOver', TargetName,
|
|
15004
|
+
params: ['handleDragOver', TargetName, DataTransferFiles2],
|
|
13564
15005
|
preventDefault: true
|
|
13565
15006
|
}, {
|
|
13566
15007
|
name: HandleDragLeave,
|
|
@@ -13568,15 +15009,15 @@ const renderEventListeners = () => {
|
|
|
13568
15009
|
preventDefault: true
|
|
13569
15010
|
}, {
|
|
13570
15011
|
name: HandleDrop,
|
|
13571
|
-
params: ['handleDropFiles', TargetName,
|
|
15012
|
+
params: ['handleDropFiles', TargetName, DataTransferFiles2],
|
|
13572
15013
|
preventDefault: true
|
|
13573
15014
|
}, {
|
|
13574
15015
|
name: HandleDragEnterChatView,
|
|
13575
|
-
params: ['handleDragEnter', 'composer-drop-target',
|
|
15016
|
+
params: ['handleDragEnter', 'composer-drop-target', DataTransferFiles2],
|
|
13576
15017
|
preventDefault: true
|
|
13577
15018
|
}, {
|
|
13578
15019
|
name: HandleDragOverChatView,
|
|
13579
|
-
params: ['handleDragOver', 'composer-drop-target',
|
|
15020
|
+
params: ['handleDragOver', 'composer-drop-target', DataTransferFiles2],
|
|
13580
15021
|
preventDefault: true
|
|
13581
15022
|
}, {
|
|
13582
15023
|
name: HandleModelChange,
|
|
@@ -13664,8 +15105,11 @@ const renderEventListeners = () => {
|
|
|
13664
15105
|
params: ['handleModelInputBlur']
|
|
13665
15106
|
}, {
|
|
13666
15107
|
name: HandleContextMenuChatImageAttachment,
|
|
13667
|
-
params: ['handleContextMenuChatImageAttachment'],
|
|
15108
|
+
params: ['handleContextMenuChatImageAttachment', TargetName, ClientX, ClientY],
|
|
13668
15109
|
preventDefault: true
|
|
15110
|
+
}, {
|
|
15111
|
+
name: HandleErrorComposerAttachmentPreviewOverlay,
|
|
15112
|
+
params: ['handleErrorComposerAttachmentPreviewOverlay']
|
|
13669
15113
|
}];
|
|
13670
15114
|
};
|
|
13671
15115
|
|
|
@@ -13680,6 +15124,7 @@ const reset = async state => {
|
|
|
13680
15124
|
agentMode: defaultAgentMode,
|
|
13681
15125
|
agentModePickerOpen: false,
|
|
13682
15126
|
composerAttachments: [],
|
|
15127
|
+
composerAttachmentsHeight: 0,
|
|
13683
15128
|
composerHeight: getMinComposerHeightForState(state),
|
|
13684
15129
|
composerSelectionEnd: 0,
|
|
13685
15130
|
composerSelectionStart: 0,
|
|
@@ -13704,14 +15149,39 @@ const reset = async state => {
|
|
|
13704
15149
|
};
|
|
13705
15150
|
|
|
13706
15151
|
const resize = async (state, dimensions, getComposerHeightFn = getComposerHeight) => {
|
|
15152
|
+
const {
|
|
15153
|
+
agentModePickerOpen,
|
|
15154
|
+
responsivePickerVisibilityEnabled,
|
|
15155
|
+
runModePickerOpen,
|
|
15156
|
+
width
|
|
15157
|
+
} = state;
|
|
15158
|
+
const responsivePickerState = dimensions.width === undefined ? undefined : getResponsivePickerState(dimensions.width, responsivePickerVisibilityEnabled);
|
|
15159
|
+
const responsivePickerOpenState = responsivePickerState ? {
|
|
15160
|
+
agentModePickerOpen: responsivePickerState.hasSpaceForAgentModePicker ? agentModePickerOpen : false,
|
|
15161
|
+
runModePickerOpen: responsivePickerState.hasSpaceForRunModePicker ? runModePickerOpen : false
|
|
15162
|
+
} : {};
|
|
13707
15163
|
const nextState = {
|
|
13708
15164
|
...state,
|
|
13709
|
-
...dimensions
|
|
15165
|
+
...dimensions,
|
|
15166
|
+
...responsivePickerState,
|
|
15167
|
+
...responsivePickerOpenState
|
|
13710
15168
|
};
|
|
13711
|
-
|
|
15169
|
+
const {
|
|
15170
|
+
composerAttachments,
|
|
15171
|
+
composerValue,
|
|
15172
|
+
width: nextWidth
|
|
15173
|
+
} = nextState;
|
|
15174
|
+
if (dimensions.width !== undefined && dimensions.width !== width && composerValue) {
|
|
15175
|
+
return {
|
|
15176
|
+
...nextState,
|
|
15177
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, nextWidth),
|
|
15178
|
+
composerHeight: await getComposerHeightFn(nextState, composerValue, nextWidth)
|
|
15179
|
+
};
|
|
15180
|
+
}
|
|
15181
|
+
if (dimensions.width !== undefined && dimensions.width !== width && composerAttachments.length > 0) {
|
|
13712
15182
|
return {
|
|
13713
15183
|
...nextState,
|
|
13714
|
-
|
|
15184
|
+
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, nextWidth)
|
|
13715
15185
|
};
|
|
13716
15186
|
}
|
|
13717
15187
|
return nextState;
|
|
@@ -13721,6 +15191,8 @@ const saveState = state => {
|
|
|
13721
15191
|
const {
|
|
13722
15192
|
agentMode,
|
|
13723
15193
|
chatListScrollTop,
|
|
15194
|
+
composerSelectionEnd,
|
|
15195
|
+
composerSelectionStart,
|
|
13724
15196
|
composerValue,
|
|
13725
15197
|
lastNormalViewMode,
|
|
13726
15198
|
maxToolCalls,
|
|
@@ -13742,6 +15214,8 @@ const saveState = state => {
|
|
|
13742
15214
|
return {
|
|
13743
15215
|
agentMode,
|
|
13744
15216
|
chatListScrollTop,
|
|
15217
|
+
composerSelectionEnd,
|
|
15218
|
+
composerSelectionStart,
|
|
13745
15219
|
composerValue,
|
|
13746
15220
|
lastNormalViewMode,
|
|
13747
15221
|
maxToolCalls,
|
|
@@ -13827,6 +15301,24 @@ const setReasoningPickerEnabled = (state, reasoningPickerEnabled) => {
|
|
|
13827
15301
|
};
|
|
13828
15302
|
};
|
|
13829
15303
|
|
|
15304
|
+
const setResponsivePickerVisibilityEnabled = (state, responsivePickerVisibilityEnabled) => {
|
|
15305
|
+
const responsivePickerState = getResponsivePickerState(state.width, responsivePickerVisibilityEnabled);
|
|
15306
|
+
return {
|
|
15307
|
+
...state,
|
|
15308
|
+
...responsivePickerState,
|
|
15309
|
+
agentModePickerOpen: responsivePickerState.hasSpaceForAgentModePicker ? state.agentModePickerOpen : false,
|
|
15310
|
+
responsivePickerVisibilityEnabled,
|
|
15311
|
+
runModePickerOpen: responsivePickerState.hasSpaceForRunModePicker ? state.runModePickerOpen : false
|
|
15312
|
+
};
|
|
15313
|
+
};
|
|
15314
|
+
|
|
15315
|
+
const setScrollDownButtonEnabled = (state, scrollDownButtonEnabled) => {
|
|
15316
|
+
return {
|
|
15317
|
+
...state,
|
|
15318
|
+
scrollDownButtonEnabled
|
|
15319
|
+
};
|
|
15320
|
+
};
|
|
15321
|
+
|
|
13830
15322
|
const setSearchEnabled = (state, searchEnabled) => {
|
|
13831
15323
|
return {
|
|
13832
15324
|
...state,
|
|
@@ -13959,6 +15451,7 @@ const commandMap = {
|
|
|
13959
15451
|
'Chat.getKeyBindings': getKeyBindings,
|
|
13960
15452
|
'Chat.getMenuEntries': getMenuEntries,
|
|
13961
15453
|
'Chat.getMenuEntryIds': getMenuEntryIds,
|
|
15454
|
+
'Chat.getMockOpenApiRequests': wrapGetter(getMockOpenApiRequests),
|
|
13962
15455
|
'Chat.getQuickPickMenuEntries': getQuickPickMenuEntries,
|
|
13963
15456
|
'Chat.getSelectedSessionId': wrapGetter(getSelectedSessionId),
|
|
13964
15457
|
'Chat.getSystemPrompt': wrapGetter(getSystemPrompt),
|
|
@@ -13991,6 +15484,7 @@ const commandMap = {
|
|
|
13991
15484
|
'Chat.handleDragLeave': wrapCommand(handleDragLeave),
|
|
13992
15485
|
'Chat.handleDragOver': wrapCommand(handleDragOver),
|
|
13993
15486
|
'Chat.handleDropFiles': wrapCommand(handleDropFiles),
|
|
15487
|
+
'Chat.handleErrorComposerAttachmentPreviewOverlay': wrapCommand(handleErrorComposerAttachmentPreviewOverlay),
|
|
13994
15488
|
'Chat.handleInput': wrapCommand(handleInput),
|
|
13995
15489
|
'Chat.handleInputFocus': wrapCommand(handleInputFocus),
|
|
13996
15490
|
'Chat.handleKeyDown': wrapCommand(handleKeyDown),
|
|
@@ -14001,6 +15495,8 @@ const commandMap = {
|
|
|
14001
15495
|
'Chat.handleModelChange': wrapCommand(handleModelChange),
|
|
14002
15496
|
'Chat.handleModelInputBlur': wrapCommand(handleModelInputBlur),
|
|
14003
15497
|
'Chat.handleModelPickerListScroll': wrapCommand(handleModelPickerListScroll),
|
|
15498
|
+
'Chat.handleMouseOut': wrapCommand(handleMouseOut),
|
|
15499
|
+
'Chat.handleMouseOver': wrapCommand(handleMouseOver),
|
|
14004
15500
|
'Chat.handlePointerDownModelPickerList': wrapCommand(handlePointerDownModelPickerList),
|
|
14005
15501
|
'Chat.handlePointerUpModelPickerList': wrapCommand(handlePointerUpModelPickerList),
|
|
14006
15502
|
'Chat.handleProjectAddButtonContextMenu': wrapCommand(handleProjectAddButtonContextMenu),
|
|
@@ -14010,6 +15506,7 @@ const commandMap = {
|
|
|
14010
15506
|
'Chat.handleRunModeChange': wrapCommand(handleRunModeChange),
|
|
14011
15507
|
'Chat.handleSearchValueChange': wrapCommand(handleSearchValueChange),
|
|
14012
15508
|
'Chat.handleSubmit': wrapCommand(handleSubmit),
|
|
15509
|
+
'Chat.hideComposerAttachmentPreviewOverlay': wrapCommand(hideComposerAttachmentPreviewOverlay),
|
|
14013
15510
|
'Chat.initialize': initialize,
|
|
14014
15511
|
'Chat.loadContent': wrapCommand(loadContent),
|
|
14015
15512
|
'Chat.loadContent2': wrapCommand(loadContent),
|
|
@@ -14022,12 +15519,14 @@ const commandMap = {
|
|
|
14022
15519
|
'Chat.mockOpenApiStreamPushChunk': wrapCommand(mockOpenApiStreamPushChunk),
|
|
14023
15520
|
'Chat.mockOpenApiStreamReset': wrapCommand(mockOpenApiStreamReset),
|
|
14024
15521
|
'Chat.openAgentModePicker': wrapCommand(openAgentModePicker),
|
|
15522
|
+
'Chat.openMockProject': wrapCommand(openMockProject),
|
|
14025
15523
|
'Chat.openMockSession': wrapCommand(openMockSession),
|
|
14026
15524
|
'Chat.openModelPicker': wrapCommand(openModelPicker),
|
|
14027
15525
|
'Chat.openReasoningEffortPicker': wrapCommand(openReasoningEffortPicker),
|
|
14028
15526
|
'Chat.openRunModePicker': wrapCommand(openRunModePicker),
|
|
14029
15527
|
'Chat.pasteInput': wrapCommand(pasteInput),
|
|
14030
15528
|
'Chat.registerMockResponse': wrapCommand(registerMockResponse),
|
|
15529
|
+
'Chat.removeComposerAttachment': wrapCommand(removeComposerAttachment),
|
|
14031
15530
|
'Chat.render2': render2,
|
|
14032
15531
|
'Chat.renderEventListeners': renderEventListeners,
|
|
14033
15532
|
'Chat.rerender': wrapCommand(rerender),
|
|
@@ -14044,6 +15543,8 @@ const commandMap = {
|
|
|
14044
15543
|
'Chat.setQuestionToolEnabled': wrapCommand(setQuestionToolEnabled),
|
|
14045
15544
|
'Chat.setReasoningEffort': wrapCommand(setReasoningEffort),
|
|
14046
15545
|
'Chat.setReasoningPickerEnabled': wrapCommand(setReasoningPickerEnabled),
|
|
15546
|
+
'Chat.setResponsivePickerVisibilityEnabled': wrapCommand(setResponsivePickerVisibilityEnabled),
|
|
15547
|
+
'Chat.setScrollDownButtonEnabled': wrapCommand(setScrollDownButtonEnabled),
|
|
14047
15548
|
'Chat.setSearchEnabled': wrapCommand(setSearchEnabled),
|
|
14048
15549
|
'Chat.setShowRunMode': wrapCommand(setShowRunMode),
|
|
14049
15550
|
'Chat.setStreamingEnabled': wrapCommand(setStreamingEnabled),
|
|
@@ -14054,6 +15555,7 @@ const commandMap = {
|
|
|
14054
15555
|
'Chat.setUseChatMathWorker': wrapCommand(setUseChatMathWorker),
|
|
14055
15556
|
'Chat.setUseChatMessageParsingWorker': wrapCommand(setUseChatMessageParsingWorker),
|
|
14056
15557
|
'Chat.setUseChatNetworkWorkerForRequests': wrapCommand(setUseChatNetworkWorkerForRequests),
|
|
15558
|
+
'Chat.showComposerAttachmentPreviewOverlay': wrapCommand(showComposerAttachmentPreviewOverlay),
|
|
14057
15559
|
'Chat.terminate': terminate,
|
|
14058
15560
|
'Chat.useMockApi': wrapCommand(useMockApi)
|
|
14059
15561
|
};
|