@lvce-editor/static-server 0.77.6 → 0.77.7
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/{101c327 → fd1a2e0}/css/App.css +89 -89
- package/static/{101c327 → fd1a2e0}/manifest.json +2 -2
- package/static/{101c327 → fd1a2e0}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
- package/static/{101c327 → fd1a2e0}/packages/chat-coordinator-worker/dist/chatCoordinatorWorkerMain.js +351 -36
- package/static/{101c327 → fd1a2e0}/packages/chat-message-parsing-worker/dist/chatMessageParsingWorkerMain.js +554 -36
- package/static/{101c327 → fd1a2e0}/packages/chat-view/dist/chatViewWorkerMain.js +1304 -1746
- package/static/{101c327 → fd1a2e0}/packages/explorer-worker/dist/explorerViewWorkerMain.js +4092 -4059
- package/static/{101c327 → fd1a2e0}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
- package/static/{101c327 → fd1a2e0}/packages/preview-worker/dist/previewWorkerMain.js +210 -101
- package/static/{101c327 → fd1a2e0}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
- package/static/{101c327 → fd1a2e0}/packages/renderer-worker/dist/rendererWorkerMain.js +7 -4
- package/static/{101c327 → fd1a2e0}/packages/test-worker/dist/testWorkerMain.js +56 -0
- package/static/index.html +4 -4
- /package/static/{101c327 → fd1a2e0}/config/colorTheme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/config/defaultSettings.json +0 -0
- /package/static/{101c327 → fd1a2e0}/config/fileMap.json +0 -0
- /package/static/{101c327 → fd1a2e0}/config/webExtensions.json +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/AdditionalDetails.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Animation.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/BrowserScrollBar.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Category.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/DebugButtons.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/DebugValue.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/E2eTest.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/E2eTests.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/EditorHover.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/EditorMessage.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/FeatureContent.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Features.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ImagePreview.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/InlineDiffEditor.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/InputBadge.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Key.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/KeyBindingsHeader.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/KeyBindingsTable.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/LegacyDialog.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Markdown.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Message.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Preview.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ScrollToTop.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/SettingsHeader.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/SettingsItems.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/SettingsSideBar.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/Table.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletAbout.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletBrowserViewOverview.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletDebugConsole.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletDefineKeyBinding.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletDiffEditor.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletEditorWidgetError.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletExtensionDetail.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletExtensionDetailHeader.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletExtensionDetailTabs.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletExtensions.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletIframeInspector.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletKeyBindings.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletLanguageModels.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletMedia.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletOutput.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletPanel.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletPanelTabs.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletPdf.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletProblems.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletReferences.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletRunAndDebug.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletScreenCapture.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletSearch.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletSettings.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletSimpleBrowser.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletSourceControl.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletStorage.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletTerminal.css +0 -0
- /package/static/{101c327 → fd1a2e0}/css/parts/ViewletTerminalTabs.css +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-bat/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-bat/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-c/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-c/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cpp/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cpp/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cson/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cson/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-css/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-css/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-dart/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-dart/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-desktop/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-desktop/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-docker/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-docker/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-dotenv/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-elixir/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-elixir/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-elm/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-elm/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-gn/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-gn/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-go/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-go/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-graphql/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-graphql/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-html/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-html/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-java/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-java/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-javascript/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-javascript/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-json/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-json/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-json5/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-json5/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-jsx/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-jsx/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-julia/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-julia/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-kotlin/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-less/LICENSE +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-less/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-less/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-markdown/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-markdown/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-mdx/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-mdx/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nix/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nix/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-perl/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-perl/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-plaintext/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-powershell/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-powershell/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-python/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-python/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-r/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-r/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-ruby/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-ruby/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-rust/LICENSE +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-rust/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-rust/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-scss/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-scss/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-shellscript/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-svelte/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-svelte/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-terraform/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-terraform/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-toml/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-toml/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-typescript/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-typescript/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-vue/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-vue/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-wgsl/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-xml/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-xml/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-yaml/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-yaml/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-ayu/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-ayu/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-ayu/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-ayu/images/demo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-cobalt2/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-cobalt2/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-gruvbox/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-gruvbox/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-high-contrast/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-high-contrast/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-material/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-material/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-material/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-monokai/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-monokai/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-monokai/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-noctis-uva/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-palenight/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-palenight/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-palenight/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-palenight/images/demo.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-slime/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-slime/color-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-slime/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.theme-slime/icon.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/extension.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icon.png +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/fonts/FiraCode-VariableFont.ttf +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/add.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/arrow-down.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/arrow-left.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/arrow-right.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/arrow-up.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/blank.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/book.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/case-sensitive.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/check.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chevron-down.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chevron-left.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chevron-right.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chevron-up.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chrome-close.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chrome-maximize.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chrome-minimize.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/chrome-restore.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/circle-filled.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/clear-all.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/close.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/cloud.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/collapse-all.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-all.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-alt-2.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-alt-small.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-alt.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-conditional.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-data-unverified.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-data.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-function-unverified.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-function.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-log-unverified.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-log.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-breakpoint-unsupported.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-console.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-continue-small.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-continue.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-coverage.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-disconnect.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-line-by-line.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-pause.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-rerun.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-restart-frame.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-restart.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-reverse-continue.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-stackframe-active.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-stackframe.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-start.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-step-back.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-step-into.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-step-out.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-step-over.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug-stop.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/debug.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/discard.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/edit.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/ellipsis.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/error.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/exclude.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/extensionDefaultIcon.png +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/extensions.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/files.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/filter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/go-to-file.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/icon-close.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/icon-source-control.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/icon-sync.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/icon.png +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/icon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/info.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/language-icon.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/link-external.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/list-flat.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/list-tree.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/new-file.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/new-folder.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/newline.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/open-preview.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/play.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/preserve-case.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/progress.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/pwa-icon-192.png +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/pwa-icon-512.png +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/record-keys.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/refresh.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/regex.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/remove.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/replace-all.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/replace.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/repo.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/run-all.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/search.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/send.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/settings-gear.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/sort-precedence.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/source-control.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/split-horizontal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/squiggly-error.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/squiggly-warning.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-array.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-boolean.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-class.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-color.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-constant.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-enum-member.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-enum.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-event.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-field.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-file.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-interface.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-key.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-keyword.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-method.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-misc.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-namespace.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-numeric.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-operator.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-parameter.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-property.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-ruler.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-snippet.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-string.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-structure.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/symbol-variable.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/tag.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/terminal-bash.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/terminal.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/theme-icon.png +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/trash.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/triangle-down.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/triangle-left.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/triangle-right.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/triangle-up.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/warning.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/whole-word.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/zoom-in.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/icons/zoom-out.svg +0 -0
- /package/static/{101c327 → fd1a2e0}/js/babel-parser.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/ky.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/lvce-editor-import-script.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/lvce-editor-ipc.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/lvce-editor-json-rpc.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/lvce-editor-rpc.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/lvce-editor-verror.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/p-min-delay.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/pretty-bytes.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/preview-injected.js +0 -0
- /package/static/{101c327 → fd1a2e0}/js/yoctodelay.js +0 -0
- /package/static/{101c327 → fd1a2e0}/lib-css/termterm.css +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/chat-debug-view/dist/chatDebugViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/chat-math-worker/dist/chatMathWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/chat-network-worker/dist/chatNetworkWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/chat-storage-worker/dist/chatStorageWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/chat-tool-worker/dist/chatToolWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/error-worker/dist/errorWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/preload/dist/index.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/renderer-process/LICENSE +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/renderer-process/README.md +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/renderer-process/package.json +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/status-bar-worker/dist/statusBarWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/packages/update-worker/dist/updateWorkerMain.js +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.cpp +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.css +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.csv +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.dart +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.env +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.ex +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.html +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.java +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.jl +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.js +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.json +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.kt +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.pl +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.py +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/index.ts +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/scrolling.txt +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/languages/tsconfig.json +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/sample-folder/a.txt +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/sample-folder/b.txt +0 -0
- /package/static/{101c327 → fd1a2e0}/playground/sample-folder/c.txt +0 -0
|
@@ -1118,20 +1118,13 @@ const create$2 = rpcId => {
|
|
|
1118
1118
|
};
|
|
1119
1119
|
|
|
1120
1120
|
const {
|
|
1121
|
-
invoke: invoke$
|
|
1121
|
+
invoke: invoke$8,
|
|
1122
1122
|
set: set$c
|
|
1123
1123
|
} = create$2(6008);
|
|
1124
1124
|
|
|
1125
1125
|
const {
|
|
1126
|
-
invoke: invoke$8,
|
|
1127
1126
|
set: set$b
|
|
1128
1127
|
} = create$2(6007);
|
|
1129
|
-
const getMathBlockDom = async node => {
|
|
1130
|
-
return invoke$8('ChatMath.getMathBlockDom', node);
|
|
1131
|
-
};
|
|
1132
|
-
const getMathInlineDom = async node => {
|
|
1133
|
-
return invoke$8('ChatMath.getMathInlineDom', node);
|
|
1134
|
-
};
|
|
1135
1128
|
|
|
1136
1129
|
const {
|
|
1137
1130
|
invoke: invoke$7,
|
|
@@ -1185,7 +1178,7 @@ const Br = 55;
|
|
|
1185
1178
|
const Tfoot = 59;
|
|
1186
1179
|
const Ul = 60;
|
|
1187
1180
|
const TextArea = 62;
|
|
1188
|
-
const Select
|
|
1181
|
+
const Select = 63;
|
|
1189
1182
|
const Option = 64;
|
|
1190
1183
|
const Code = 65;
|
|
1191
1184
|
const Label$1 = 66;
|
|
@@ -1214,7 +1207,6 @@ const Home = 12;
|
|
|
1214
1207
|
const UpArrow = 14;
|
|
1215
1208
|
const DownArrow = 16;
|
|
1216
1209
|
const KeyN = 42;
|
|
1217
|
-
const KeyV = 50;
|
|
1218
1210
|
|
|
1219
1211
|
const CtrlCmd = 1 << 11 >>> 0;
|
|
1220
1212
|
const Shift = 1 << 10 >>> 0;
|
|
@@ -1775,6 +1767,17 @@ const clearInput = async state => {
|
|
|
1775
1767
|
};
|
|
1776
1768
|
};
|
|
1777
1769
|
|
|
1770
|
+
const closeGitBranchPicker = state => {
|
|
1771
|
+
if (!state.gitBranchPickerOpen && !state.gitBranchPickerErrorMessage) {
|
|
1772
|
+
return state;
|
|
1773
|
+
}
|
|
1774
|
+
return {
|
|
1775
|
+
...state,
|
|
1776
|
+
gitBranchPickerErrorMessage: '',
|
|
1777
|
+
gitBranchPickerOpen: false
|
|
1778
|
+
};
|
|
1779
|
+
};
|
|
1780
|
+
|
|
1778
1781
|
const clampSelectionIndex = (value, max) => {
|
|
1779
1782
|
if (!Number.isFinite(value)) {
|
|
1780
1783
|
return 0;
|
|
@@ -1852,6 +1855,7 @@ const BackToChatList = 'Back to chat list';
|
|
|
1852
1855
|
const Search$1 = 'Search';
|
|
1853
1856
|
const ScrollDown$1 = 'Scroll down';
|
|
1854
1857
|
const SearchModels = 'Search models';
|
|
1858
|
+
const PickModel = 'Pick Model';
|
|
1855
1859
|
const SearchChats = 'Search chats';
|
|
1856
1860
|
const Paste = 'Paste';
|
|
1857
1861
|
const Rename = 'Rename';
|
|
@@ -1859,9 +1863,13 @@ const Archive = 'Archive';
|
|
|
1859
1863
|
const AddProjectChat = 'Add Project';
|
|
1860
1864
|
const RemoveProject = 'Remove Project';
|
|
1861
1865
|
const Settings$1 = 'Settings';
|
|
1866
|
+
const Login$1 = 'Login';
|
|
1867
|
+
const Logout$1 = 'Logout';
|
|
1862
1868
|
const LoginToBackend = 'Login to backend';
|
|
1863
1869
|
const LogoutFromBackend = 'Logout from backend';
|
|
1864
1870
|
const LoggingInToBackend = 'Logging in to backend';
|
|
1871
|
+
const LoggingOutFromBackend = 'Logging out from backend';
|
|
1872
|
+
const SignedIn = 'Signed in';
|
|
1865
1873
|
const SwitchToChatFocusMode = 'Switch to chat focus mode';
|
|
1866
1874
|
const SwitchToNormalChatMode = 'Switch to normal chat mode';
|
|
1867
1875
|
const CloseChat$1 = 'Close Chat';
|
|
@@ -1941,18 +1949,33 @@ const scrollDown = () => {
|
|
|
1941
1949
|
const searchModels = () => {
|
|
1942
1950
|
return i18nString(SearchModels);
|
|
1943
1951
|
};
|
|
1952
|
+
const pickModel = modelName => {
|
|
1953
|
+
return `${i18nString(PickModel)}, ${modelName}`;
|
|
1954
|
+
};
|
|
1944
1955
|
const searchChats = () => {
|
|
1945
1956
|
return i18nString(SearchChats);
|
|
1946
1957
|
};
|
|
1958
|
+
const login = () => {
|
|
1959
|
+
return i18nString(Login$1);
|
|
1960
|
+
};
|
|
1961
|
+
const logout = () => {
|
|
1962
|
+
return i18nString(Logout$1);
|
|
1963
|
+
};
|
|
1947
1964
|
const loginToBackend = () => {
|
|
1948
1965
|
return i18nString(LoginToBackend);
|
|
1949
1966
|
};
|
|
1950
|
-
const logoutFromBackend = () => {
|
|
1967
|
+
const logoutFromBackend$1 = () => {
|
|
1951
1968
|
return i18nString(LogoutFromBackend);
|
|
1952
1969
|
};
|
|
1953
1970
|
const loggingInToBackend = () => {
|
|
1954
1971
|
return i18nString(LoggingInToBackend);
|
|
1955
1972
|
};
|
|
1973
|
+
const loggingOutFromBackend = () => {
|
|
1974
|
+
return i18nString(LoggingOutFromBackend);
|
|
1975
|
+
};
|
|
1976
|
+
const signedIn = () => {
|
|
1977
|
+
return i18nString(SignedIn);
|
|
1978
|
+
};
|
|
1956
1979
|
const chatFocusMode = () => {
|
|
1957
1980
|
return i18nString(SwitchToChatFocusMode);
|
|
1958
1981
|
};
|
|
@@ -2324,8 +2347,6 @@ const createDefaultState = () => {
|
|
|
2324
2347
|
authAccessToken: '',
|
|
2325
2348
|
authEnabled: false,
|
|
2326
2349
|
authErrorMessage: '',
|
|
2327
|
-
authRefreshToken: '',
|
|
2328
|
-
authStatus: 'signed-out',
|
|
2329
2350
|
backendUrl: '',
|
|
2330
2351
|
chatFocusContentMaxWidth: 700,
|
|
2331
2352
|
chatHistoryEnabled: true,
|
|
@@ -2357,6 +2378,10 @@ const createDefaultState = () => {
|
|
|
2357
2378
|
errorCount: 0,
|
|
2358
2379
|
focus: 'composer',
|
|
2359
2380
|
focused: false,
|
|
2381
|
+
gitBranches: [],
|
|
2382
|
+
gitBranchPickerErrorMessage: '',
|
|
2383
|
+
gitBranchPickerOpen: false,
|
|
2384
|
+
gitBranchPickerVisible: false,
|
|
2360
2385
|
headerHeight: 50,
|
|
2361
2386
|
height: 0,
|
|
2362
2387
|
...responsivePickerState,
|
|
@@ -2438,11 +2463,11 @@ const createDefaultState = () => {
|
|
|
2438
2463
|
usageOverviewEnabled: false,
|
|
2439
2464
|
useChatCoordinatorWorker: false,
|
|
2440
2465
|
useChatMathWorker: true,
|
|
2441
|
-
useChatMessageParsingWorker: false,
|
|
2442
2466
|
useChatNetworkWorkerForRequests: false,
|
|
2443
2467
|
useChatToolWorker: true,
|
|
2444
2468
|
useMockApi: false,
|
|
2445
2469
|
userName: '',
|
|
2470
|
+
userState: 'loggedOut',
|
|
2446
2471
|
userSubscriptionPlan: '',
|
|
2447
2472
|
userUsedTokens: 0,
|
|
2448
2473
|
viewMode: 'list',
|
|
@@ -2829,7 +2854,24 @@ const isEqualComposerAttachments = (a, b) => {
|
|
|
2829
2854
|
}
|
|
2830
2855
|
return true;
|
|
2831
2856
|
};
|
|
2857
|
+
const isEqualGitBranches = (a, b) => {
|
|
2858
|
+
if (a === b) {
|
|
2859
|
+
return true;
|
|
2860
|
+
}
|
|
2861
|
+
if (a.length !== b.length) {
|
|
2862
|
+
return false;
|
|
2863
|
+
}
|
|
2864
|
+
for (let i = 0; i < a.length; i++) {
|
|
2865
|
+
if (a[i].current !== b[i].current || a[i].name !== b[i].name) {
|
|
2866
|
+
return false;
|
|
2867
|
+
}
|
|
2868
|
+
}
|
|
2869
|
+
return true;
|
|
2870
|
+
};
|
|
2832
2871
|
const isEqualProjectExpandedIds = (a, b) => {
|
|
2872
|
+
if (a === b) {
|
|
2873
|
+
return true;
|
|
2874
|
+
}
|
|
2833
2875
|
if (a.length !== b.length) {
|
|
2834
2876
|
return false;
|
|
2835
2877
|
}
|
|
@@ -2840,6 +2882,20 @@ const isEqualProjectExpandedIds = (a, b) => {
|
|
|
2840
2882
|
}
|
|
2841
2883
|
return true;
|
|
2842
2884
|
};
|
|
2885
|
+
const isEqualProjects = (a, b) => {
|
|
2886
|
+
if (a === b) {
|
|
2887
|
+
return true;
|
|
2888
|
+
}
|
|
2889
|
+
if (a.length !== b.length) {
|
|
2890
|
+
return false;
|
|
2891
|
+
}
|
|
2892
|
+
for (let i = 0; i < a.length; i++) {
|
|
2893
|
+
if (a[i].id !== b[i].id || a[i].name !== b[i].name || a[i].uri !== b[i].uri) {
|
|
2894
|
+
return false;
|
|
2895
|
+
}
|
|
2896
|
+
}
|
|
2897
|
+
return true;
|
|
2898
|
+
};
|
|
2843
2899
|
const isEqualVisibleModels = (a, b) => {
|
|
2844
2900
|
if (a === b) {
|
|
2845
2901
|
return true;
|
|
@@ -2856,7 +2912,7 @@ const isEqualVisibleModels = (a, b) => {
|
|
|
2856
2912
|
};
|
|
2857
2913
|
|
|
2858
2914
|
const isEqual = (oldState, newState) => {
|
|
2859
|
-
return oldState.addContextButtonEnabled === newState.addContextButtonEnabled && oldState.agentMode === newState.agentMode && oldState.agentModePickerOpen === newState.agentModePickerOpen && oldState.authEnabled === newState.authEnabled && oldState.authErrorMessage === newState.authErrorMessage &&
|
|
2915
|
+
return oldState.addContextButtonEnabled === newState.addContextButtonEnabled && oldState.agentMode === newState.agentMode && oldState.agentModePickerOpen === newState.agentModePickerOpen && oldState.authEnabled === newState.authEnabled && oldState.authErrorMessage === newState.authErrorMessage && isEqualComposerAttachments(oldState.composerAttachments, newState.composerAttachments) && oldState.composerDropActive === newState.composerDropActive && oldState.composerDropEnabled === newState.composerDropEnabled && oldState.composerValue === newState.composerValue && oldState.gitBranchPickerErrorMessage === newState.gitBranchPickerErrorMessage && oldState.gitBranchPickerOpen === newState.gitBranchPickerOpen && oldState.gitBranchPickerVisible === newState.gitBranchPickerVisible && isEqualGitBranches(oldState.gitBranches, newState.gitBranches) && 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 && oldState.openApiApiKeyInput === newState.openApiApiKeyInput && oldState.openRouterApiKeyInput === newState.openRouterApiKeyInput && isEqualProjectExpandedIds(oldState.projectExpandedIds, newState.projectExpandedIds) && isEqualProjects(oldState.projects, newState.projects) && 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.searchEnabled === newState.searchEnabled && oldState.searchFieldVisible === newState.searchFieldVisible && oldState.searchValue === newState.searchValue && 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.userName === newState.userName && oldState.userState === newState.userState && oldState.viewMode === newState.viewMode && oldState.voiceDictationEnabled === newState.voiceDictationEnabled;
|
|
2860
2916
|
};
|
|
2861
2917
|
|
|
2862
2918
|
const diffScrollTop = (oldState, newState) => {
|
|
@@ -2877,6 +2933,12 @@ const RenderIncremental = 11;
|
|
|
2877
2933
|
const RenderScrollTop = 12;
|
|
2878
2934
|
|
|
2879
2935
|
const diffValue = (oldState, newState) => {
|
|
2936
|
+
if (oldState.openApiApiKeyInput !== newState.openApiApiKeyInput) {
|
|
2937
|
+
return false;
|
|
2938
|
+
}
|
|
2939
|
+
if (oldState.openRouterApiKeyInput !== newState.openRouterApiKeyInput) {
|
|
2940
|
+
return false;
|
|
2941
|
+
}
|
|
2880
2942
|
return oldState.composerValue === newState.composerValue || newState.inputSource !== 'script';
|
|
2881
2943
|
};
|
|
2882
2944
|
|
|
@@ -2907,10 +2969,9 @@ const getAuthState = state => {
|
|
|
2907
2969
|
authAccessToken,
|
|
2908
2970
|
authEnabled,
|
|
2909
2971
|
authErrorMessage,
|
|
2910
|
-
authRefreshToken,
|
|
2911
|
-
authStatus,
|
|
2912
2972
|
backendUrl,
|
|
2913
2973
|
userName,
|
|
2974
|
+
userState,
|
|
2914
2975
|
userSubscriptionPlan,
|
|
2915
2976
|
userUsedTokens
|
|
2916
2977
|
} = state;
|
|
@@ -2918,10 +2979,9 @@ const getAuthState = state => {
|
|
|
2918
2979
|
authAccessToken,
|
|
2919
2980
|
authEnabled,
|
|
2920
2981
|
authErrorMessage,
|
|
2921
|
-
authRefreshToken,
|
|
2922
|
-
authStatus,
|
|
2923
2982
|
backendUrl,
|
|
2924
2983
|
userName,
|
|
2984
|
+
userState,
|
|
2925
2985
|
userSubscriptionPlan,
|
|
2926
2986
|
userUsedTokens
|
|
2927
2987
|
};
|
|
@@ -3257,10 +3317,6 @@ const getKeyBindings = () => {
|
|
|
3257
3317
|
command: 'Chat.chatInputHistoryDown',
|
|
3258
3318
|
key: DownArrow,
|
|
3259
3319
|
when: FocusChatInput
|
|
3260
|
-
}, {
|
|
3261
|
-
command: 'Chat.pasteInput',
|
|
3262
|
-
key: CtrlCmd | KeyV,
|
|
3263
|
-
when: FocusChatInput
|
|
3264
3320
|
}, {
|
|
3265
3321
|
command: 'Chat.chatInputHistoryUp',
|
|
3266
3322
|
key: UpArrow,
|
|
@@ -3387,9 +3443,11 @@ const ComposerAttachmentPreviewOverlay = 'composer-attachment-preview-overlay';
|
|
|
3387
3443
|
const AddContext = 'add-context';
|
|
3388
3444
|
const Dictate = 'dictate';
|
|
3389
3445
|
const CreatePullRequest$1 = 'create-pull-request';
|
|
3446
|
+
const GitBranchPickerToggle = 'git-branch-picker-toggle';
|
|
3447
|
+
const GitBranchPickerItemPrefix = 'git-branch-picker-item:';
|
|
3390
3448
|
const FocusAddAction = 'focus-add-action';
|
|
3391
|
-
const FocusOpenInVsCode = 'focus-open-in-vscode';
|
|
3392
3449
|
const FocusCommit = 'focus-commit';
|
|
3450
|
+
const FocusOpenInVsCode = 'focus-open-in-vscode';
|
|
3393
3451
|
const FocusOpenTerminal = 'focus-open-terminal';
|
|
3394
3452
|
const FocusShowDiff = 'focus-show-diff';
|
|
3395
3453
|
const Send = 'send';
|
|
@@ -3455,8 +3513,14 @@ const isRenameInputName = name => {
|
|
|
3455
3513
|
const getRenameIdFromInputName = name => {
|
|
3456
3514
|
return name.slice(RenamePrefix.length);
|
|
3457
3515
|
};
|
|
3458
|
-
const
|
|
3459
|
-
return `${
|
|
3516
|
+
const getGitBranchPickerItemInputName = branchName => {
|
|
3517
|
+
return `${GitBranchPickerItemPrefix}${branchName}`;
|
|
3518
|
+
};
|
|
3519
|
+
const isGitBranchPickerItemInputName = name => {
|
|
3520
|
+
return name.startsWith(GitBranchPickerItemPrefix);
|
|
3521
|
+
};
|
|
3522
|
+
const getGitBranchFromGitBranchPickerItemInputName = name => {
|
|
3523
|
+
return name.slice(GitBranchPickerItemPrefix.length);
|
|
3460
3524
|
};
|
|
3461
3525
|
const getComposerAttachmentInputName = attachmentId => {
|
|
3462
3526
|
return `${ComposerAttachmentPrefix}${attachmentId}`;
|
|
@@ -3818,6 +3882,236 @@ const openFolder = async () => {
|
|
|
3818
3882
|
}
|
|
3819
3883
|
};
|
|
3820
3884
|
|
|
3885
|
+
// cspell:ignore gitdir worktrees
|
|
3886
|
+
const FileTypeFile = 1;
|
|
3887
|
+
const FileTypeDirectory = 2;
|
|
3888
|
+
const slashAtEndRegex = /\/$/;
|
|
3889
|
+
const gitDirPointerRegex = /^gitdir:\s*(.+)$/m;
|
|
3890
|
+
const headRefRegex = /^ref:\s+refs\/heads\/(.+)$/m;
|
|
3891
|
+
const toGitUri = (baseUri, ...segments) => {
|
|
3892
|
+
const url = new URL(baseUri.endsWith('/') ? baseUri : `${baseUri}/`);
|
|
3893
|
+
for (const segment of segments) {
|
|
3894
|
+
url.pathname = `${url.pathname.replace(slashAtEndRegex, '')}/${segment.split('/').map(part => encodeURIComponent(part)).join('/')}`;
|
|
3895
|
+
}
|
|
3896
|
+
return url.toString();
|
|
3897
|
+
};
|
|
3898
|
+
const decodeFileContent = content => {
|
|
3899
|
+
if (typeof content === 'string') {
|
|
3900
|
+
return content;
|
|
3901
|
+
}
|
|
3902
|
+
if (content instanceof Uint8Array) {
|
|
3903
|
+
return new TextDecoder().decode(content);
|
|
3904
|
+
}
|
|
3905
|
+
if (Array.isArray(content)) {
|
|
3906
|
+
return new TextDecoder().decode(new Uint8Array(content));
|
|
3907
|
+
}
|
|
3908
|
+
return '';
|
|
3909
|
+
};
|
|
3910
|
+
const toFileSystemPath = uri => {
|
|
3911
|
+
if (!uri.startsWith('file://')) {
|
|
3912
|
+
return uri;
|
|
3913
|
+
}
|
|
3914
|
+
return decodeURIComponent(new URL(uri).pathname);
|
|
3915
|
+
};
|
|
3916
|
+
const getRelativePath = (fromPath, toPath) => {
|
|
3917
|
+
if (!fromPath.startsWith('/') || !toPath.startsWith('/')) {
|
|
3918
|
+
return toPath;
|
|
3919
|
+
}
|
|
3920
|
+
const fromParts = fromPath.split('/').filter(Boolean);
|
|
3921
|
+
const toParts = toPath.split('/').filter(Boolean);
|
|
3922
|
+
let commonPrefixLength = 0;
|
|
3923
|
+
while (commonPrefixLength < fromParts.length && commonPrefixLength < toParts.length && fromParts[commonPrefixLength] === toParts[commonPrefixLength]) {
|
|
3924
|
+
commonPrefixLength++;
|
|
3925
|
+
}
|
|
3926
|
+
const parentSegments = fromParts.slice(commonPrefixLength).map(() => '..');
|
|
3927
|
+
const childSegments = toParts.slice(commonPrefixLength);
|
|
3928
|
+
return [...parentSegments, ...childSegments].join('/') || '.';
|
|
3929
|
+
};
|
|
3930
|
+
const toFileSystemTarget = (workspaceUri, uri) => {
|
|
3931
|
+
const workspacePath = toFileSystemPath(workspaceUri);
|
|
3932
|
+
const fileSystemPath = toFileSystemPath(uri);
|
|
3933
|
+
if (!workspaceUri.startsWith('file://') || !uri.startsWith('file://')) {
|
|
3934
|
+
return fileSystemPath;
|
|
3935
|
+
}
|
|
3936
|
+
return getRelativePath(workspacePath, fileSystemPath);
|
|
3937
|
+
};
|
|
3938
|
+
const parseEntries = value => {
|
|
3939
|
+
if (!Array.isArray(value)) {
|
|
3940
|
+
return [];
|
|
3941
|
+
}
|
|
3942
|
+
return value.map(entry => {
|
|
3943
|
+
if (Array.isArray(entry) && typeof entry[0] === 'string' && typeof entry[1] === 'number') {
|
|
3944
|
+
return {
|
|
3945
|
+
name: entry[0],
|
|
3946
|
+
type: entry[1]
|
|
3947
|
+
};
|
|
3948
|
+
}
|
|
3949
|
+
if (entry && typeof entry === 'object' && typeof Reflect.get(entry, 'name') === 'string' && typeof Reflect.get(entry, 'type') === 'number') {
|
|
3950
|
+
return {
|
|
3951
|
+
name: Reflect.get(entry, 'name'),
|
|
3952
|
+
type: Reflect.get(entry, 'type')
|
|
3953
|
+
};
|
|
3954
|
+
}
|
|
3955
|
+
return undefined;
|
|
3956
|
+
}).filter(entry => !!entry);
|
|
3957
|
+
};
|
|
3958
|
+
const readDir = async (workspaceUri, uri) => {
|
|
3959
|
+
const result = await invoke('FileSystem.readDirWithFileTypes', toFileSystemTarget(workspaceUri, uri));
|
|
3960
|
+
return parseEntries(result);
|
|
3961
|
+
};
|
|
3962
|
+
const readTextFile = async (workspaceUri, uri) => {
|
|
3963
|
+
const result = await invoke('FileSystem.readFile', toFileSystemTarget(workspaceUri, uri));
|
|
3964
|
+
return decodeFileContent(result);
|
|
3965
|
+
};
|
|
3966
|
+
const getGitDirUri = async workspaceUri => {
|
|
3967
|
+
const gitUri = toGitUri(workspaceUri, '.git');
|
|
3968
|
+
try {
|
|
3969
|
+
await readTextFile(workspaceUri, toGitUri(gitUri, 'HEAD'));
|
|
3970
|
+
return gitUri;
|
|
3971
|
+
} catch {
|
|
3972
|
+
// Fall through to support worktrees/submodules where .git is a pointer file.
|
|
3973
|
+
}
|
|
3974
|
+
const gitPointer = await readTextFile(workspaceUri, gitUri);
|
|
3975
|
+
const match = gitDirPointerRegex.exec(gitPointer);
|
|
3976
|
+
if (!match) {
|
|
3977
|
+
return '';
|
|
3978
|
+
}
|
|
3979
|
+
return new URL(match[1].trim(), workspaceUri.endsWith('/') ? workspaceUri : `${workspaceUri}/`).toString();
|
|
3980
|
+
};
|
|
3981
|
+
const collectBranchNames = async (workspaceUri, refsHeadsUri, prefix, branches) => {
|
|
3982
|
+
const entries = await readDir(workspaceUri, refsHeadsUri);
|
|
3983
|
+
for (const entry of entries) {
|
|
3984
|
+
if (entry.type === FileTypeDirectory) {
|
|
3985
|
+
await collectBranchNames(workspaceUri, toGitUri(refsHeadsUri, entry.name), `${prefix}${entry.name}/`, branches);
|
|
3986
|
+
continue;
|
|
3987
|
+
}
|
|
3988
|
+
if (entry.type === FileTypeFile) {
|
|
3989
|
+
branches.add(`${prefix}${entry.name}`);
|
|
3990
|
+
}
|
|
3991
|
+
}
|
|
3992
|
+
};
|
|
3993
|
+
const parseCurrentBranch = headContent => {
|
|
3994
|
+
const match = headRefRegex.exec(headContent.trim());
|
|
3995
|
+
if (match) {
|
|
3996
|
+
return match[1].trim();
|
|
3997
|
+
}
|
|
3998
|
+
return '';
|
|
3999
|
+
};
|
|
4000
|
+
const hasGitRepository = async workspaceUri => {
|
|
4001
|
+
try {
|
|
4002
|
+
return Boolean(await getGitDirUri(workspaceUri));
|
|
4003
|
+
} catch {
|
|
4004
|
+
return false;
|
|
4005
|
+
}
|
|
4006
|
+
};
|
|
4007
|
+
const getGitBranches = async workspaceUri => {
|
|
4008
|
+
const gitDirUri = await getGitDirUri(workspaceUri);
|
|
4009
|
+
if (!gitDirUri) {
|
|
4010
|
+
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
4011
|
+
throw new globalThis.Error('Git repository not found.');
|
|
4012
|
+
}
|
|
4013
|
+
const branches = new Set();
|
|
4014
|
+
let currentBranch = '';
|
|
4015
|
+
try {
|
|
4016
|
+
const headContent = await readTextFile(workspaceUri, toGitUri(gitDirUri, 'HEAD'));
|
|
4017
|
+
currentBranch = parseCurrentBranch(headContent);
|
|
4018
|
+
if (currentBranch) {
|
|
4019
|
+
branches.add(currentBranch);
|
|
4020
|
+
}
|
|
4021
|
+
} catch {
|
|
4022
|
+
// Keep trying to discover branches from refs even if HEAD cannot be read.
|
|
4023
|
+
}
|
|
4024
|
+
try {
|
|
4025
|
+
await collectBranchNames(workspaceUri, toGitUri(gitDirUri, 'refs', 'heads'), '', branches);
|
|
4026
|
+
} catch {
|
|
4027
|
+
// Repositories without local refs should still open and surface any current branch we found.
|
|
4028
|
+
}
|
|
4029
|
+
if (branches.size === 0) {
|
|
4030
|
+
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
4031
|
+
throw new globalThis.Error('No local git branches found.');
|
|
4032
|
+
}
|
|
4033
|
+
return [...branches].toSorted((a, b) => a.localeCompare(b)).map(name => ({
|
|
4034
|
+
current: name === currentBranch,
|
|
4035
|
+
name
|
|
4036
|
+
}));
|
|
4037
|
+
};
|
|
4038
|
+
|
|
4039
|
+
const getSelectedSession = (sessions, selectedSessionId) => {
|
|
4040
|
+
return sessions.find(session => session.id === selectedSessionId);
|
|
4041
|
+
};
|
|
4042
|
+
|
|
4043
|
+
const getProjectUri$1 = (state, projectId) => {
|
|
4044
|
+
return state.projects.find(project => project.id === projectId)?.uri || '';
|
|
4045
|
+
};
|
|
4046
|
+
const getWorkspaceUri$1 = (state, session) => {
|
|
4047
|
+
if (session?.workspaceUri) {
|
|
4048
|
+
return session.workspaceUri;
|
|
4049
|
+
}
|
|
4050
|
+
return getProjectUri$1(state, session?.projectId || state.selectedProjectId);
|
|
4051
|
+
};
|
|
4052
|
+
|
|
4053
|
+
const withHiddenBranchPicker = state => {
|
|
4054
|
+
return {
|
|
4055
|
+
...state,
|
|
4056
|
+
gitBranches: [],
|
|
4057
|
+
gitBranchPickerErrorMessage: '',
|
|
4058
|
+
gitBranchPickerOpen: false,
|
|
4059
|
+
gitBranchPickerVisible: false
|
|
4060
|
+
};
|
|
4061
|
+
};
|
|
4062
|
+
const refreshGitBranchPickerVisibility = async state => {
|
|
4063
|
+
if (state.viewMode !== 'chat-focus') {
|
|
4064
|
+
return {
|
|
4065
|
+
...state,
|
|
4066
|
+
gitBranchPickerErrorMessage: '',
|
|
4067
|
+
gitBranchPickerOpen: false
|
|
4068
|
+
};
|
|
4069
|
+
}
|
|
4070
|
+
const selectedSession = getSelectedSession(state.sessions, state.selectedSessionId);
|
|
4071
|
+
const fallbackBranchName = selectedSession?.branchName || '';
|
|
4072
|
+
const workspaceUri = getWorkspaceUri$1(state, selectedSession);
|
|
4073
|
+
if (!workspaceUri) {
|
|
4074
|
+
return withHiddenBranchPicker(state);
|
|
4075
|
+
}
|
|
4076
|
+
const visible = await hasGitRepository(workspaceUri);
|
|
4077
|
+
if (!visible) {
|
|
4078
|
+
if (fallbackBranchName) {
|
|
4079
|
+
return {
|
|
4080
|
+
...state,
|
|
4081
|
+
gitBranches: [{
|
|
4082
|
+
current: true,
|
|
4083
|
+
name: fallbackBranchName
|
|
4084
|
+
}],
|
|
4085
|
+
gitBranchPickerVisible: true
|
|
4086
|
+
};
|
|
4087
|
+
}
|
|
4088
|
+
return withHiddenBranchPicker(state);
|
|
4089
|
+
}
|
|
4090
|
+
try {
|
|
4091
|
+
const gitBranches = await getGitBranches(workspaceUri);
|
|
4092
|
+
return {
|
|
4093
|
+
...state,
|
|
4094
|
+
gitBranches,
|
|
4095
|
+
gitBranchPickerVisible: true
|
|
4096
|
+
};
|
|
4097
|
+
} catch {
|
|
4098
|
+
if (fallbackBranchName) {
|
|
4099
|
+
return {
|
|
4100
|
+
...state,
|
|
4101
|
+
gitBranches: [{
|
|
4102
|
+
current: true,
|
|
4103
|
+
name: fallbackBranchName
|
|
4104
|
+
}],
|
|
4105
|
+
gitBranchPickerVisible: true
|
|
4106
|
+
};
|
|
4107
|
+
}
|
|
4108
|
+
return {
|
|
4109
|
+
...state,
|
|
4110
|
+
gitBranchPickerVisible: true
|
|
4111
|
+
};
|
|
4112
|
+
}
|
|
4113
|
+
};
|
|
4114
|
+
|
|
3821
4115
|
const selectProject = async (state, projectId) => {
|
|
3822
4116
|
const {
|
|
3823
4117
|
selectedProjectId,
|
|
@@ -3831,14 +4125,14 @@ const selectProject = async (state, projectId) => {
|
|
|
3831
4125
|
}
|
|
3832
4126
|
const visibleSessions = getVisibleSessions(sessions, projectId);
|
|
3833
4127
|
if (visibleSessions.length === 0) {
|
|
3834
|
-
return {
|
|
4128
|
+
return refreshGitBranchPickerVisibility({
|
|
3835
4129
|
...state,
|
|
3836
4130
|
composerAttachments: [],
|
|
3837
4131
|
composerAttachmentsHeight: 0,
|
|
3838
4132
|
selectedProjectId: projectId,
|
|
3839
4133
|
selectedSessionId: '',
|
|
3840
4134
|
viewMode: viewMode === 'chat-focus' ? 'chat-focus' : 'list'
|
|
3841
|
-
};
|
|
4135
|
+
});
|
|
3842
4136
|
}
|
|
3843
4137
|
const currentSessionVisible = visibleSessions.some(session => session.id === selectedSessionId);
|
|
3844
4138
|
const nextSelectedSessionId = currentSessionVisible ? selectedSessionId : visibleSessions[0].id;
|
|
@@ -3850,7 +4144,7 @@ const selectProject = async (state, projectId) => {
|
|
|
3850
4144
|
}
|
|
3851
4145
|
return loadedSession;
|
|
3852
4146
|
});
|
|
3853
|
-
return {
|
|
4147
|
+
return refreshGitBranchPickerVisibility({
|
|
3854
4148
|
...state,
|
|
3855
4149
|
composerAttachments,
|
|
3856
4150
|
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, width),
|
|
@@ -3858,7 +4152,7 @@ const selectProject = async (state, projectId) => {
|
|
|
3858
4152
|
selectedSessionId: nextSelectedSessionId,
|
|
3859
4153
|
sessions: hydratedSessions,
|
|
3860
4154
|
viewMode: viewMode === 'chat-focus' ? 'chat-focus' : 'detail'
|
|
3861
|
-
};
|
|
4155
|
+
});
|
|
3862
4156
|
};
|
|
3863
4157
|
|
|
3864
4158
|
const fileSchemeRegex = /^file:\/\//;
|
|
@@ -3993,6 +4287,148 @@ const handleClickCreatePullRequest = async state => {
|
|
|
3993
4287
|
};
|
|
3994
4288
|
};
|
|
3995
4289
|
|
|
4290
|
+
const trailingSlashesRegex$3 = /\/+$/;
|
|
4291
|
+
const trimTrailingSlashes = value => {
|
|
4292
|
+
return value.replace(trailingSlashesRegex$3, '');
|
|
4293
|
+
};
|
|
4294
|
+
|
|
4295
|
+
const getBackendAuthUrl = (backendUrl, path) => {
|
|
4296
|
+
return `${trimTrailingSlashes(backendUrl)}${path}`;
|
|
4297
|
+
};
|
|
4298
|
+
|
|
4299
|
+
const getBackendLoginUrl = backendUrl => {
|
|
4300
|
+
return getBackendAuthUrl(backendUrl, '/auth/login');
|
|
4301
|
+
};
|
|
4302
|
+
|
|
4303
|
+
const getLoggedOutBackendAuthState = (authErrorMessage = '') => {
|
|
4304
|
+
return {
|
|
4305
|
+
authAccessToken: '',
|
|
4306
|
+
authErrorMessage,
|
|
4307
|
+
userName: '',
|
|
4308
|
+
userState: 'loggedOut',
|
|
4309
|
+
userSubscriptionPlan: '',
|
|
4310
|
+
userUsedTokens: 0
|
|
4311
|
+
};
|
|
4312
|
+
};
|
|
4313
|
+
|
|
4314
|
+
const getBackendLogoutUrl = backendUrl => {
|
|
4315
|
+
return getBackendAuthUrl(backendUrl, '/auth/logout');
|
|
4316
|
+
};
|
|
4317
|
+
|
|
4318
|
+
const logoutFromBackend = async backendUrl => {
|
|
4319
|
+
if (!backendUrl) {
|
|
4320
|
+
return;
|
|
4321
|
+
}
|
|
4322
|
+
try {
|
|
4323
|
+
await fetch(getBackendLogoutUrl(backendUrl), {
|
|
4324
|
+
credentials: 'include',
|
|
4325
|
+
headers: {
|
|
4326
|
+
Accept: 'application/json'
|
|
4327
|
+
},
|
|
4328
|
+
method: 'POST'
|
|
4329
|
+
});
|
|
4330
|
+
} catch {
|
|
4331
|
+
// Ignore logout failures and still clear local auth state.
|
|
4332
|
+
}
|
|
4333
|
+
};
|
|
4334
|
+
|
|
4335
|
+
const getBackendRefreshUrl = backendUrl => {
|
|
4336
|
+
return getBackendAuthUrl(backendUrl, '/auth/refresh');
|
|
4337
|
+
};
|
|
4338
|
+
|
|
4339
|
+
const isObject$2 = value => {
|
|
4340
|
+
return !!value && typeof value === 'object';
|
|
4341
|
+
};
|
|
4342
|
+
|
|
4343
|
+
const isBackendAuthResponse = value => {
|
|
4344
|
+
return isObject$2(value);
|
|
4345
|
+
};
|
|
4346
|
+
|
|
4347
|
+
const getNumber = (value, fallback = 0) => {
|
|
4348
|
+
return typeof value === 'number' ? value : fallback;
|
|
4349
|
+
};
|
|
4350
|
+
|
|
4351
|
+
const getString = (value, fallback = '') => {
|
|
4352
|
+
return typeof value === 'string' ? value : fallback;
|
|
4353
|
+
};
|
|
4354
|
+
|
|
4355
|
+
const toBackendAuthState = value => {
|
|
4356
|
+
return {
|
|
4357
|
+
authAccessToken: getString(value.accessToken),
|
|
4358
|
+
authErrorMessage: getString(value.error),
|
|
4359
|
+
userName: getString(value.userName),
|
|
4360
|
+
userState: value.accessToken ? 'loggedIn' : 'loggedOut',
|
|
4361
|
+
userSubscriptionPlan: getString(value.subscriptionPlan),
|
|
4362
|
+
userUsedTokens: getNumber(value.usedTokens)
|
|
4363
|
+
};
|
|
4364
|
+
};
|
|
4365
|
+
|
|
4366
|
+
const parseBackendAuthResponse = value => {
|
|
4367
|
+
if (!isBackendAuthResponse(value)) {
|
|
4368
|
+
return getLoggedOutBackendAuthState('Backend returned an invalid authentication response.');
|
|
4369
|
+
}
|
|
4370
|
+
return toBackendAuthState(value);
|
|
4371
|
+
};
|
|
4372
|
+
|
|
4373
|
+
const syncBackendAuth = async backendUrl => {
|
|
4374
|
+
if (!backendUrl) {
|
|
4375
|
+
return getLoggedOutBackendAuthState('Backend URL is missing.');
|
|
4376
|
+
}
|
|
4377
|
+
try {
|
|
4378
|
+
const response = await fetch(getBackendRefreshUrl(backendUrl), {
|
|
4379
|
+
credentials: 'include',
|
|
4380
|
+
headers: {
|
|
4381
|
+
Accept: 'application/json'
|
|
4382
|
+
},
|
|
4383
|
+
method: 'POST'
|
|
4384
|
+
});
|
|
4385
|
+
if (response.status === 401 || response.status === 403) {
|
|
4386
|
+
return getLoggedOutBackendAuthState();
|
|
4387
|
+
}
|
|
4388
|
+
let payload = undefined;
|
|
4389
|
+
try {
|
|
4390
|
+
payload = await response.json();
|
|
4391
|
+
} catch {
|
|
4392
|
+
payload = undefined;
|
|
4393
|
+
}
|
|
4394
|
+
if (!response.ok) {
|
|
4395
|
+
const parsed = parseBackendAuthResponse(payload);
|
|
4396
|
+
return getLoggedOutBackendAuthState(parsed.authErrorMessage || 'Backend authentication failed.');
|
|
4397
|
+
}
|
|
4398
|
+
const parsed = parseBackendAuthResponse(payload);
|
|
4399
|
+
if (parsed.authErrorMessage) {
|
|
4400
|
+
return getLoggedOutBackendAuthState(parsed.authErrorMessage);
|
|
4401
|
+
}
|
|
4402
|
+
if (!parsed.authAccessToken) {
|
|
4403
|
+
return getLoggedOutBackendAuthState();
|
|
4404
|
+
}
|
|
4405
|
+
return parsed;
|
|
4406
|
+
} catch (error) {
|
|
4407
|
+
const authErrorMessage = error instanceof Error && error.message ? error.message : 'Backend authentication failed.';
|
|
4408
|
+
return getLoggedOutBackendAuthState(authErrorMessage);
|
|
4409
|
+
}
|
|
4410
|
+
};
|
|
4411
|
+
|
|
4412
|
+
const delay = async ms => {
|
|
4413
|
+
await new Promise(resolve => setTimeout(resolve, ms));
|
|
4414
|
+
};
|
|
4415
|
+
|
|
4416
|
+
const waitForBackendLogin = async (backendUrl, timeoutMs = 30_000, pollIntervalMs = 1000) => {
|
|
4417
|
+
const deadline = Date.now() + timeoutMs;
|
|
4418
|
+
let lastErrorMessage = '';
|
|
4419
|
+
while (Date.now() < deadline) {
|
|
4420
|
+
const authState = await syncBackendAuth(backendUrl);
|
|
4421
|
+
if (authState.userState === 'loggedIn') {
|
|
4422
|
+
return authState;
|
|
4423
|
+
}
|
|
4424
|
+
if (authState.authErrorMessage) {
|
|
4425
|
+
lastErrorMessage = authState.authErrorMessage;
|
|
4426
|
+
}
|
|
4427
|
+
await delay(pollIntervalMs);
|
|
4428
|
+
}
|
|
4429
|
+
return getLoggedOutBackendAuthState(lastErrorMessage);
|
|
4430
|
+
};
|
|
4431
|
+
|
|
3996
4432
|
let nextLoginResponse;
|
|
3997
4433
|
const setNextLoginResponse = response => {
|
|
3998
4434
|
nextLoginResponse = response;
|
|
@@ -4016,35 +4452,36 @@ const consumeNextLoginResponse = async () => {
|
|
|
4016
4452
|
return response.response;
|
|
4017
4453
|
};
|
|
4018
4454
|
|
|
4019
|
-
const get = async key => {
|
|
4020
|
-
return getPreference(key);
|
|
4021
|
-
};
|
|
4022
|
-
const update = async settings => {
|
|
4023
|
-
await invoke('Preferences.update', settings);
|
|
4024
|
-
};
|
|
4025
|
-
|
|
4026
|
-
const trailingSlashesRegex$3 = /\/+$/;
|
|
4027
4455
|
const isLoginResponse = value => {
|
|
4028
4456
|
if (!value || typeof value !== 'object') {
|
|
4029
4457
|
return false;
|
|
4030
4458
|
}
|
|
4031
4459
|
return true;
|
|
4032
4460
|
};
|
|
4033
|
-
const
|
|
4034
|
-
|
|
4461
|
+
const getLoggedInState = (state, response) => {
|
|
4462
|
+
const accessToken = typeof response.accessToken === 'string' ? response.accessToken : '';
|
|
4463
|
+
return {
|
|
4464
|
+
...state,
|
|
4465
|
+
authAccessToken: accessToken,
|
|
4466
|
+
authErrorMessage: '',
|
|
4467
|
+
userName: typeof response.userName === 'string' ? response.userName : state.userName,
|
|
4468
|
+
userState: accessToken ? 'loggedIn' : 'loggedOut',
|
|
4469
|
+
userSubscriptionPlan: typeof response.subscriptionPlan === 'string' ? response.subscriptionPlan : state.userSubscriptionPlan,
|
|
4470
|
+
userUsedTokens: typeof response.usedTokens === 'number' ? response.usedTokens : state.userUsedTokens
|
|
4471
|
+
};
|
|
4035
4472
|
};
|
|
4036
4473
|
const handleClickLogin = async state => {
|
|
4037
4474
|
if (!state.backendUrl) {
|
|
4038
4475
|
return {
|
|
4039
4476
|
...state,
|
|
4040
4477
|
authErrorMessage: 'Backend URL is missing.',
|
|
4041
|
-
|
|
4478
|
+
userState: 'loggedOut'
|
|
4042
4479
|
};
|
|
4043
4480
|
}
|
|
4044
4481
|
const signingInState = {
|
|
4045
4482
|
...state,
|
|
4046
4483
|
authErrorMessage: '',
|
|
4047
|
-
|
|
4484
|
+
userState: 'loggingIn'
|
|
4048
4485
|
};
|
|
4049
4486
|
if (state.uid) {
|
|
4050
4487
|
set(state.uid, state, signingInState);
|
|
@@ -4053,69 +4490,53 @@ const handleClickLogin = async state => {
|
|
|
4053
4490
|
let usedMockResponse = false;
|
|
4054
4491
|
try {
|
|
4055
4492
|
usedMockResponse = hasPendingMockLoginResponse();
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4493
|
+
if (usedMockResponse) {
|
|
4494
|
+
const response = await consumeNextLoginResponse();
|
|
4495
|
+
if (!isLoginResponse(response)) {
|
|
4496
|
+
return {
|
|
4497
|
+
...signingInState,
|
|
4498
|
+
authErrorMessage: 'Backend returned an invalid login response.',
|
|
4499
|
+
userState: 'loggedOut'
|
|
4500
|
+
};
|
|
4501
|
+
}
|
|
4502
|
+
if (typeof response.error === 'string' && response.error) {
|
|
4503
|
+
return {
|
|
4504
|
+
...signingInState,
|
|
4505
|
+
authErrorMessage: response.error,
|
|
4506
|
+
userState: 'loggedOut'
|
|
4507
|
+
};
|
|
4508
|
+
}
|
|
4509
|
+
return getLoggedInState(signingInState, response);
|
|
4070
4510
|
}
|
|
4071
|
-
|
|
4072
|
-
const
|
|
4073
|
-
await update({
|
|
4074
|
-
'secrets.chatBackendAccessToken': accessToken,
|
|
4075
|
-
'secrets.chatBackendRefreshToken': refreshToken
|
|
4076
|
-
});
|
|
4511
|
+
await invoke('Main.openUri', getBackendLoginUrl(state.backendUrl));
|
|
4512
|
+
const authState = await waitForBackendLogin(state.backendUrl);
|
|
4077
4513
|
return {
|
|
4078
4514
|
...signingInState,
|
|
4079
|
-
|
|
4080
|
-
authErrorMessage: '',
|
|
4081
|
-
authRefreshToken: refreshToken,
|
|
4082
|
-
authStatus: accessToken ? 'signed-in' : 'signed-out',
|
|
4083
|
-
userName: typeof response.userName === 'string' ? response.userName : state.userName,
|
|
4084
|
-
userSubscriptionPlan: typeof response.subscriptionPlan === 'string' ? response.subscriptionPlan : state.userSubscriptionPlan,
|
|
4085
|
-
userUsedTokens: typeof response.usedTokens === 'number' ? response.usedTokens : state.userUsedTokens
|
|
4515
|
+
...authState
|
|
4086
4516
|
};
|
|
4087
4517
|
} catch (error) {
|
|
4088
4518
|
const errorMessage = error instanceof Error && error.message ? error.message : 'Backend authentication failed.';
|
|
4089
|
-
if (!usedMockResponse) {
|
|
4090
|
-
await invoke('Main.openUri', `${trimTrailingSlashes(state.backendUrl)}/auth/login`);
|
|
4091
|
-
}
|
|
4092
4519
|
return {
|
|
4093
4520
|
...signingInState,
|
|
4094
|
-
|
|
4095
|
-
authStatus: 'signed-out'
|
|
4521
|
+
...getLoggedOutBackendAuthState(errorMessage)
|
|
4096
4522
|
};
|
|
4097
4523
|
}
|
|
4098
4524
|
};
|
|
4099
4525
|
|
|
4100
4526
|
const handleClickLogout = async state => {
|
|
4101
|
-
|
|
4102
|
-
await invoke('Auth.logout', state.backendUrl);
|
|
4103
|
-
} catch {
|
|
4104
|
-
// Ignore logout bridge errors and still clear local auth state.
|
|
4105
|
-
}
|
|
4106
|
-
await update({
|
|
4107
|
-
'secrets.chatBackendAccessToken': '',
|
|
4108
|
-
'secrets.chatBackendRefreshToken': ''
|
|
4109
|
-
});
|
|
4110
|
-
return {
|
|
4527
|
+
const loggingOutState = {
|
|
4111
4528
|
...state,
|
|
4112
|
-
authAccessToken: '',
|
|
4113
4529
|
authErrorMessage: '',
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4530
|
+
userState: 'loggingOut'
|
|
4531
|
+
};
|
|
4532
|
+
if (state.uid) {
|
|
4533
|
+
set(state.uid, state, loggingOutState);
|
|
4534
|
+
await invoke('Chat.rerender');
|
|
4535
|
+
}
|
|
4536
|
+
await logoutFromBackend(state.backendUrl);
|
|
4537
|
+
return {
|
|
4538
|
+
...loggingOutState,
|
|
4539
|
+
...getLoggedOutBackendAuthState()
|
|
4119
4540
|
};
|
|
4120
4541
|
};
|
|
4121
4542
|
|
|
@@ -4159,7 +4580,7 @@ const handleClickOpenRouterApiKeyWebsite = async state => {
|
|
|
4159
4580
|
};
|
|
4160
4581
|
|
|
4161
4582
|
const getAiResponse$1 = async options => {
|
|
4162
|
-
return invoke$
|
|
4583
|
+
return invoke$8('ChatCoordinator.getAiResponse', options);
|
|
4163
4584
|
};
|
|
4164
4585
|
|
|
4165
4586
|
const execute = async (name, rawArguments, options) => {
|
|
@@ -4440,10 +4861,6 @@ const getClientRequestIdHeader = () => {
|
|
|
4440
4861
|
};
|
|
4441
4862
|
};
|
|
4442
4863
|
|
|
4443
|
-
const delay = async ms => {
|
|
4444
|
-
await new Promise(resolve => setTimeout(resolve, ms));
|
|
4445
|
-
};
|
|
4446
|
-
|
|
4447
4864
|
const getMockAiResponse = async (userMessage, delayInMs) => {
|
|
4448
4865
|
await delay(delayInMs);
|
|
4449
4866
|
return `Mock AI response: I received "${userMessage}".`;
|
|
@@ -6815,1440 +7232,16 @@ const getAiResponse = async ({
|
|
|
6815
7232
|
};
|
|
6816
7233
|
|
|
6817
7234
|
const parseMessageContents = async rawMessages => {
|
|
6818
|
-
return invoke$7('ChatMessageParsing.parseMessageContents', rawMessages);
|
|
6819
|
-
};
|
|
6820
|
-
|
|
6821
|
-
const Actions = 'Actions';
|
|
6822
|
-
const Button = 'Button';
|
|
6823
|
-
const ButtonPrimary = 'ButtonPrimary';
|
|
6824
|
-
const ButtonSecondary = 'ButtonSecondary';
|
|
6825
|
-
const Chat = 'Chat';
|
|
6826
|
-
const ChatActions = 'ChatActions';
|
|
6827
|
-
const ChatAuthError = 'ChatAuthError';
|
|
6828
|
-
const ChatFocus = 'ChatFocus';
|
|
6829
|
-
const ChatFocusActions = 'ChatFocusActions';
|
|
6830
|
-
const ChatFocusHeader = 'ChatFocusHeader';
|
|
6831
|
-
const ChatFocusMainArea = 'ChatFocusMainArea';
|
|
6832
|
-
const ChatFocusProject = 'ChatFocusProject';
|
|
6833
|
-
const ChatHeader = 'ChatHeader';
|
|
6834
|
-
const ChatHeaderLabel = 'ChatHeaderLabel';
|
|
6835
|
-
const ChatInputBox = 'ChatInputBox';
|
|
6836
|
-
const ChatList = 'ChatList';
|
|
6837
|
-
const ChatListEmpty = 'ChatListEmpty';
|
|
6838
|
-
const ChatListItem = 'ChatListItem';
|
|
6839
|
-
const ChatListItemFocused = 'ChatListItemFocused';
|
|
6840
|
-
const ChatListItemLabel = 'ChatListItemLabel';
|
|
6841
|
-
const ChatListItemStatusFinished = 'ChatListItemStatusFinished';
|
|
6842
|
-
const ChatListItemStatusIcon = 'ChatListItemStatusIcon';
|
|
6843
|
-
const ChatListItemStatusInProgress = 'ChatListItemStatusInProgress';
|
|
6844
|
-
const ChatListItemStatusRow = 'ChatListItemStatusRow';
|
|
6845
|
-
const ChatListItemStatusStopped = 'ChatListItemStatusStopped';
|
|
6846
|
-
const ChatMessageContent = 'ChatMessageContent';
|
|
6847
|
-
const ChatMessageLink = 'ChatMessageLink';
|
|
6848
|
-
const ChatModelPicker = 'ChatModelPicker';
|
|
6849
|
-
const ChatModelPickerContainer = 'ChatModelPickerContainer';
|
|
6850
|
-
const ChatModelPickerHeader = 'ChatModelPickerHeader';
|
|
6851
|
-
const ChatModelPickerItem = 'ChatModelPickerItem';
|
|
6852
|
-
const ChatModelPickerItemLabel = 'ChatModelPickerItemLabel';
|
|
6853
|
-
const ChatModelPickerItemSelected = 'ChatModelPickerItemSelected';
|
|
6854
|
-
const ChatModelPickerItemUsageCost = 'ChatModelPickerItemUsageCost';
|
|
6855
|
-
const ChatModelPickerList = 'ChatModelPickerList';
|
|
6856
|
-
const ChatName = 'ChatName';
|
|
6857
|
-
const ChatOverlays = 'ChatOverlays';
|
|
6858
|
-
const ChatOrderedList = 'ChatOrderedList';
|
|
6859
|
-
const ChatOrderedListItem = 'ChatOrderedListItem';
|
|
6860
|
-
const ChatOrderedListItemContent = 'ChatOrderedListItemContent';
|
|
6861
|
-
const ChatOrderedListItemPrefix = 'ChatOrderedListItemPrefix';
|
|
6862
|
-
const ChatOrderedListMarker = 'ChatOrderedListMarker';
|
|
6863
|
-
const ChatComposerAttachment = 'ChatComposerAttachment';
|
|
6864
|
-
const ChatComposerAttachmentImage = 'ChatComposerAttachmentImage';
|
|
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';
|
|
6872
|
-
const ChatComposerAttachments = 'ChatComposerAttachments';
|
|
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';
|
|
6881
|
-
const ChatSendArea = 'ChatSendArea';
|
|
6882
|
-
const ChatSendAreaBottom = 'ChatSendAreaBottom';
|
|
6883
|
-
const ChatSendAreaContent = 'ChatSendAreaContent';
|
|
6884
|
-
const ChatSendAreaPrimaryControls = 'ChatSendAreaPrimaryControls';
|
|
6885
|
-
const ChatTableWrapper = 'ChatTableWrapper';
|
|
6886
|
-
const ChatTodoList = 'ChatTodoList';
|
|
6887
|
-
const ChatTodoListHeader = 'ChatTodoListHeader';
|
|
6888
|
-
const ChatTodoListItem = 'ChatTodoListItem';
|
|
6889
|
-
const ChatTodoListItemCompleted = 'ChatTodoListItemCompleted';
|
|
6890
|
-
const ChatTodoListItemInProgress = 'ChatTodoListItemInProgress';
|
|
6891
|
-
const ChatTodoListItems = 'ChatTodoListItems';
|
|
6892
|
-
const ChatTodoListItemTodo = 'ChatTodoListItemTodo';
|
|
6893
|
-
const ChatToolCallFileName = 'ChatToolCallFileName';
|
|
6894
|
-
const ChatToolCallQuestionOption = 'ChatToolCallQuestionOption';
|
|
6895
|
-
const ChatToolCallQuestionOptions = 'ChatToolCallQuestionOptions';
|
|
6896
|
-
const ChatToolCallQuestionText = 'ChatToolCallQuestionText';
|
|
6897
|
-
const ChatToolCallReadFileLink = 'ChatToolCallReadFileLink';
|
|
6898
|
-
const ChatToolCallRenderHtmlBody = 'ChatToolCallRenderHtmlBody';
|
|
6899
|
-
const ChatToolCallRenderHtmlContent = 'ChatToolCallRenderHtmlContent';
|
|
6900
|
-
const ChatToolCallRenderHtmlLabel = 'ChatToolCallRenderHtmlLabel';
|
|
6901
|
-
const ChatToolCalls = 'ChatToolCalls';
|
|
6902
|
-
const ChatToolCallsLabel = 'ChatToolCallsLabel';
|
|
6903
|
-
const ChatUnorderedList = 'ChatUnorderedList';
|
|
6904
|
-
const ChatUnorderedListItem = 'ChatUnorderedListItem';
|
|
6905
|
-
const ChatViewDropOverlay = 'ChatViewDropOverlay';
|
|
6906
|
-
const ChatViewDropOverlayActive = 'ChatViewDropOverlayActive';
|
|
6907
|
-
const ChatWelcomeMessage = 'ChatWelcomeMessage';
|
|
6908
|
-
const CustomSelectContainer = 'CustomSelectContainer';
|
|
6909
|
-
const CustomSelectPopOver = 'CustomSelectPopOver';
|
|
6910
|
-
const Deletion = 'Deletion';
|
|
6911
|
-
const Empty = '';
|
|
6912
|
-
const FileIcon = 'FileIcon';
|
|
6913
|
-
const IconButton = 'IconButton';
|
|
6914
|
-
const IconButtonDisabled = 'IconButtonDisabled';
|
|
6915
|
-
const ImageElement = 'ImageElement';
|
|
6916
|
-
const ImageErrorMessage = 'ImageErrorMessage';
|
|
6917
|
-
const InputBox = 'InputBox';
|
|
6918
|
-
const Insertion = 'Insertion';
|
|
6919
|
-
const Label = 'Label';
|
|
6920
|
-
const LabelDetail = 'LabelDetail';
|
|
6921
|
-
const Markdown = 'Markdown';
|
|
6922
|
-
const MarkdownMathBlock = 'MarkdownMathBlock';
|
|
6923
|
-
const MarkdownQuote = 'MarkdownQuote';
|
|
6924
|
-
const MarkdownTable = 'MarkdownTable';
|
|
6925
|
-
const MaskIcon = 'MaskIcon';
|
|
6926
|
-
const MaskIconAccount = 'MaskIconAccount';
|
|
6927
|
-
const MaskIconAdd = 'MaskIconAdd';
|
|
6928
|
-
const MaskIconArrowLeft = 'MaskIconArrowLeft';
|
|
6929
|
-
const MaskIconChevronDown = 'MaskIconChevronDown';
|
|
6930
|
-
const MaskIconChevronRight = 'MaskIconChevronRight';
|
|
6931
|
-
const MaskIconChevronUp = 'MaskIconChevronUp';
|
|
6932
|
-
const MaskIconClose = 'MaskIconClose';
|
|
6933
|
-
const MaskIconDebugPause = 'MaskIconDebugPause';
|
|
6934
|
-
const MaskIconLayoutPanelLeft = 'MaskIconLayoutPanelLeft';
|
|
6935
|
-
const MaskIconSearch = 'MaskIconSearch';
|
|
6936
|
-
const MaskIconSettingsGear = 'MaskIconSettingsGear';
|
|
6937
|
-
const MaskIconSignOut = 'MaskIconSignOut';
|
|
6938
|
-
const Message = 'Message';
|
|
6939
|
-
const MessageAssistant = 'MessageAssistant';
|
|
6940
|
-
const MessageUser = 'MessageUser';
|
|
6941
|
-
const MissingApiKeyForm = 'MissingApiKeyForm';
|
|
6942
|
-
const MultiLineInputBox = 'MultilineInputBox';
|
|
6943
|
-
const ProjectAddButton = 'ProjectAddButton';
|
|
6944
|
-
const ProjectList = 'ProjectList';
|
|
6945
|
-
const ProjectListChevron = 'ProjectListChevron';
|
|
6946
|
-
const ProjectListGroup = 'ProjectListGroup';
|
|
6947
|
-
const ProjectListItem = 'ProjectListItem';
|
|
6948
|
-
const ProjectListItemActions = 'ProjectListItemActions';
|
|
6949
|
-
const ProjectListItemAddChatButton = 'ProjectListItemAddChatButton';
|
|
6950
|
-
const ProjectListItemLabel = 'ProjectListItemLabel';
|
|
6951
|
-
const ProjectListItemSelected = 'ProjectListItemSelected';
|
|
6952
|
-
const ProjectSessionItem = 'ProjectSessionItem';
|
|
6953
|
-
const ProjectSessionItemLabel = 'ProjectSessionItemLabel';
|
|
6954
|
-
const ProjectSessionItemSelected = 'ProjectSessionItemSelected';
|
|
6955
|
-
const ProjectSidebar = 'ProjectSidebar';
|
|
6956
|
-
const SearchFieldContainer = 'SearchFieldContainer';
|
|
6957
|
-
const RunModePickerContainer = 'RunModePickerContainer';
|
|
6958
|
-
const RunModePickerPopOver = 'RunModePickerPopOver';
|
|
6959
|
-
const Select = 'Select';
|
|
6960
|
-
const SelectLabel = 'SelectLabel';
|
|
6961
|
-
const SendButtonDisabled = 'SendButtonDisabled';
|
|
6962
|
-
const SessionArchiveButton = 'SessionArchiveButton';
|
|
6963
|
-
const StrikeThrough = 'StrikeThrough';
|
|
6964
|
-
const TokenAttribute = 'TokenAttribute';
|
|
6965
|
-
const TokenComment = 'TokenComment';
|
|
6966
|
-
const TokenKeyword = 'TokenKeyword';
|
|
6967
|
-
const TokenNumber = 'TokenNumber';
|
|
6968
|
-
const TokenProperty = 'TokenProperty';
|
|
6969
|
-
const TokenString = 'TokenString';
|
|
6970
|
-
const TokenTag = 'TokenTag';
|
|
6971
|
-
const TokenUsageOverview = 'TokenUsageOverview';
|
|
6972
|
-
const TokenUsageRing = 'TokenUsageRing';
|
|
6973
|
-
const TokenUsageRingInner = 'TokenUsageRingInner';
|
|
6974
|
-
const TokenValue = 'TokenValue';
|
|
6975
|
-
const ToolCallName = 'ToolCallName';
|
|
6976
|
-
const Viewlet = 'Viewlet';
|
|
6977
|
-
|
|
6978
|
-
const jsRules = [{
|
|
6979
|
-
className: TokenComment,
|
|
6980
|
-
regex: /\/\/[^\n]*/
|
|
6981
|
-
}, {
|
|
6982
|
-
className: TokenComment,
|
|
6983
|
-
regex: /\/\*[\s\S]*?\*\//
|
|
6984
|
-
}, {
|
|
6985
|
-
className: TokenString,
|
|
6986
|
-
regex: /"[^"\\]*(?:\\.[^"\\]*)*"/
|
|
6987
|
-
}, {
|
|
6988
|
-
className: TokenString,
|
|
6989
|
-
regex: /'[^'\\]*(?:\\.[^'\\]*)*'/
|
|
6990
|
-
}, {
|
|
6991
|
-
className: TokenString,
|
|
6992
|
-
regex: /`[^`\\]*(?:\\.[^`\\]*)*`/
|
|
6993
|
-
}, {
|
|
6994
|
-
className: TokenNumber,
|
|
6995
|
-
regex: /\b\d+\.?\d*\b/
|
|
6996
|
-
}, {
|
|
6997
|
-
className: TokenKeyword,
|
|
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/
|
|
6999
|
-
}];
|
|
7000
|
-
const tsRules = [{
|
|
7001
|
-
className: TokenComment,
|
|
7002
|
-
regex: /\/\/[^\n]*/
|
|
7003
|
-
}, {
|
|
7004
|
-
className: TokenComment,
|
|
7005
|
-
regex: /\/\*[\s\S]*?\*\//
|
|
7006
|
-
}, {
|
|
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-]*/
|
|
7031
|
-
}, {
|
|
7032
|
-
className: TokenTag,
|
|
7033
|
-
regex: /\/?>/
|
|
7034
|
-
}, {
|
|
7035
|
-
className: TokenString,
|
|
7036
|
-
regex: /"[^"]*"/
|
|
7037
|
-
}, {
|
|
7038
|
-
className: TokenString,
|
|
7039
|
-
regex: /'[^']*'/
|
|
7040
|
-
}, {
|
|
7041
|
-
className: TokenAttribute,
|
|
7042
|
-
regex: /[a-zA-Z-]+(?=\s*=)/
|
|
7043
|
-
}];
|
|
7044
|
-
const cssRules = [{
|
|
7045
|
-
className: TokenComment,
|
|
7046
|
-
regex: /\/\*[\s\S]*?\*\//
|
|
7047
|
-
}, {
|
|
7048
|
-
className: TokenString,
|
|
7049
|
-
regex: /"[^"]*"/
|
|
7050
|
-
}, {
|
|
7051
|
-
className: TokenString,
|
|
7052
|
-
regex: /'[^']*'/
|
|
7053
|
-
}, {
|
|
7054
|
-
className: TokenValue,
|
|
7055
|
-
regex: /#[0-9a-fA-F]{3,8}/
|
|
7056
|
-
}, {
|
|
7057
|
-
className: TokenValue,
|
|
7058
|
-
regex: /\b\d+(?:\.\d+)?(?:px|em|rem|%|vh|vw|pt|s|ms|fr)?\b/
|
|
7059
|
-
}, {
|
|
7060
|
-
className: TokenProperty,
|
|
7061
|
-
regex: /[a-zA-Z-]+(?=\s*:)/
|
|
7062
|
-
}];
|
|
7063
|
-
const pythonRules = [{
|
|
7064
|
-
className: TokenComment,
|
|
7065
|
-
regex: /#[^\n]*/
|
|
7066
|
-
}, {
|
|
7067
|
-
className: TokenString,
|
|
7068
|
-
regex: /"[^"\\]*(?:\\.[^"\\]*)*"/
|
|
7069
|
-
}, {
|
|
7070
|
-
className: TokenString,
|
|
7071
|
-
regex: /'[^'\\]*(?:\\.[^'\\]*)*'/
|
|
7072
|
-
}, {
|
|
7073
|
-
className: TokenNumber,
|
|
7074
|
-
regex: /\b\d+\.?\d*\b/
|
|
7075
|
-
}, {
|
|
7076
|
-
className: TokenKeyword,
|
|
7077
|
-
regex: /\b(?:def|class|return|if|elif|else|for|while|in|import|from|as|with|try|except|finally|raise|lambda|yield|pass|break|continue|True|False|None|and|or|not|is)\b/
|
|
7078
|
-
}];
|
|
7079
|
-
const jsonRules = [{
|
|
7080
|
-
className: TokenProperty,
|
|
7081
|
-
regex: /"[^"\\]*(?:\\.[^"\\]*)*"(?=\s*:)/
|
|
7082
|
-
}, {
|
|
7083
|
-
className: TokenString,
|
|
7084
|
-
regex: /"[^"\\]*(?:\\.[^"\\]*)*"/
|
|
7085
|
-
}, {
|
|
7086
|
-
className: TokenNumber,
|
|
7087
|
-
regex: /-?\b\d+\.?\d*(?:[eE][+-]?\d+)?\b/
|
|
7088
|
-
}, {
|
|
7089
|
-
className: TokenKeyword,
|
|
7090
|
-
regex: /\b(?:true|false|null)\b/
|
|
7091
|
-
}];
|
|
7092
|
-
const tokenize = (code, rules) => {
|
|
7093
|
-
const tokens = [];
|
|
7094
|
-
let pos = 0;
|
|
7095
|
-
while (pos < code.length) {
|
|
7096
|
-
let matched = false;
|
|
7097
|
-
for (const rule of rules) {
|
|
7098
|
-
const match = rule.regex.exec(code.slice(pos));
|
|
7099
|
-
if (match && match.index === 0) {
|
|
7100
|
-
tokens.push({
|
|
7101
|
-
className: rule.className,
|
|
7102
|
-
text: match[0]
|
|
7103
|
-
});
|
|
7104
|
-
pos += match[0].length;
|
|
7105
|
-
matched = true;
|
|
7106
|
-
break;
|
|
7107
|
-
}
|
|
7108
|
-
}
|
|
7109
|
-
if (!matched) {
|
|
7110
|
-
const last = tokens.at(-1);
|
|
7111
|
-
if (last && last.className === '') {
|
|
7112
|
-
tokens.pop();
|
|
7113
|
-
tokens.push({
|
|
7114
|
-
className: '',
|
|
7115
|
-
text: last.text + code[pos]
|
|
7116
|
-
});
|
|
7117
|
-
} else {
|
|
7118
|
-
tokens.push({
|
|
7119
|
-
className: '',
|
|
7120
|
-
text: code[pos]
|
|
7121
|
-
});
|
|
7122
|
-
}
|
|
7123
|
-
pos++;
|
|
7124
|
-
}
|
|
7125
|
-
}
|
|
7126
|
-
return tokens;
|
|
7127
|
-
};
|
|
7128
|
-
const highlightCode = (code, language) => {
|
|
7129
|
-
if (!language) {
|
|
7130
|
-
return [{
|
|
7131
|
-
className: '',
|
|
7132
|
-
text: code
|
|
7133
|
-
}];
|
|
7134
|
-
}
|
|
7135
|
-
const normalized = language.toLowerCase();
|
|
7136
|
-
if (normalized === 'html') {
|
|
7137
|
-
return tokenize(code, htmlRules);
|
|
7138
|
-
}
|
|
7139
|
-
if (normalized === 'css') {
|
|
7140
|
-
return tokenize(code, cssRules);
|
|
7141
|
-
}
|
|
7142
|
-
if (normalized === 'js' || normalized === 'javascript') {
|
|
7143
|
-
return tokenize(code, jsRules);
|
|
7144
|
-
}
|
|
7145
|
-
if (normalized === 'ts' || normalized === 'typescript') {
|
|
7146
|
-
return tokenize(code, tsRules);
|
|
7147
|
-
}
|
|
7148
|
-
if (normalized === 'py' || normalized === 'python') {
|
|
7149
|
-
return tokenize(code, pythonRules);
|
|
7150
|
-
}
|
|
7151
|
-
if (normalized === 'json') {
|
|
7152
|
-
return tokenize(code, jsonRules);
|
|
7153
|
-
}
|
|
7154
|
-
return [{
|
|
7155
|
-
className: '',
|
|
7156
|
-
text: code
|
|
7157
|
-
}];
|
|
7158
|
-
};
|
|
7159
|
-
|
|
7160
|
-
const isAlphaNumeric = value => {
|
|
7161
|
-
if (!value) {
|
|
7162
|
-
return false;
|
|
7163
|
-
}
|
|
7164
|
-
const code = value.codePointAt(0) ?? 0;
|
|
7165
|
-
if (code >= 48 && code <= 57) {
|
|
7166
|
-
return true;
|
|
7167
|
-
}
|
|
7168
|
-
if (code >= 65 && code <= 90) {
|
|
7169
|
-
return true;
|
|
7170
|
-
}
|
|
7171
|
-
return code >= 97 && code <= 122;
|
|
7172
|
-
};
|
|
7173
|
-
const sanitizeLinkUrl = url => {
|
|
7174
|
-
const trimmedUrl = url.trim();
|
|
7175
|
-
const normalized = url.trim().toLowerCase();
|
|
7176
|
-
if (normalized.startsWith('http://') || normalized.startsWith('https://') || normalized.startsWith('file://') || normalized.startsWith('vscode-references://')) {
|
|
7177
|
-
return trimmedUrl;
|
|
7178
|
-
}
|
|
7179
|
-
if (!trimmedUrl || trimmedUrl.startsWith('#') || trimmedUrl.startsWith('?') || trimmedUrl.startsWith('/') || trimmedUrl.startsWith('\\')) {
|
|
7180
|
-
return '#';
|
|
7181
|
-
}
|
|
7182
|
-
if (trimmedUrl.includes('://') || trimmedUrl.includes(':')) {
|
|
7183
|
-
return '#';
|
|
7184
|
-
}
|
|
7185
|
-
if (isPathTraversalAttempt(trimmedUrl)) {
|
|
7186
|
-
return '#';
|
|
7187
|
-
}
|
|
7188
|
-
const normalizedPath = normalizeRelativePath(trimmedUrl);
|
|
7189
|
-
if (normalizedPath === '.') {
|
|
7190
|
-
return '#';
|
|
7191
|
-
}
|
|
7192
|
-
return `file:///workspace/${normalizedPath}`;
|
|
7193
|
-
};
|
|
7194
|
-
const sanitizeImageUrl = url => {
|
|
7195
|
-
const normalized = url.trim().toLowerCase();
|
|
7196
|
-
if (normalized.startsWith('http://') || normalized.startsWith('https://')) {
|
|
7197
|
-
return url;
|
|
7198
|
-
}
|
|
7199
|
-
return '#';
|
|
7200
|
-
};
|
|
7201
|
-
const isOpenBracket = value => {
|
|
7202
|
-
return value === '(' || value === '[' || value === '{';
|
|
7203
|
-
};
|
|
7204
|
-
const isCloseBracket = value => {
|
|
7205
|
-
return value === ')' || value === ']' || value === '}';
|
|
7206
|
-
};
|
|
7207
|
-
const findRawUrlEnd = (value, start) => {
|
|
7208
|
-
let index = start;
|
|
7209
|
-
while (index < value.length) {
|
|
7210
|
-
const current = value[index];
|
|
7211
|
-
if (current === ' ' || current === '\n' || current === '\r' || current === '\t' || current === '"' || current === "'" || current === '`' || current === '<' || current === '>') {
|
|
7212
|
-
break;
|
|
7213
|
-
}
|
|
7214
|
-
index++;
|
|
7215
|
-
}
|
|
7216
|
-
return index;
|
|
7217
|
-
};
|
|
7218
|
-
const trimRawUrlEnd = url => {
|
|
7219
|
-
let end = url.length;
|
|
7220
|
-
while (end > 0) {
|
|
7221
|
-
const current = url[end - 1];
|
|
7222
|
-
if (current === '.' || current === ',' || current === ':' || current === ';' || current === '!' || current === '?') {
|
|
7223
|
-
end--;
|
|
7224
|
-
continue;
|
|
7225
|
-
}
|
|
7226
|
-
if (isCloseBracket(current)) {
|
|
7227
|
-
const inner = url.slice(0, end - 1);
|
|
7228
|
-
let openCount = 0;
|
|
7229
|
-
let closeCount = 0;
|
|
7230
|
-
for (let i = 0; i < inner.length; i++) {
|
|
7231
|
-
if (isOpenBracket(inner[i])) {
|
|
7232
|
-
openCount++;
|
|
7233
|
-
} else if (isCloseBracket(inner[i])) {
|
|
7234
|
-
closeCount++;
|
|
7235
|
-
}
|
|
7236
|
-
}
|
|
7237
|
-
if (closeCount >= openCount) {
|
|
7238
|
-
end--;
|
|
7239
|
-
continue;
|
|
7240
|
-
}
|
|
7241
|
-
}
|
|
7242
|
-
break;
|
|
7243
|
-
}
|
|
7244
|
-
return url.slice(0, end);
|
|
7245
|
-
};
|
|
7246
|
-
const parseRawLinkToken = (value, start) => {
|
|
7247
|
-
if (!value.startsWith('https://', start) && !value.startsWith('http://', start)) {
|
|
7248
|
-
return undefined;
|
|
7249
|
-
}
|
|
7250
|
-
if (start >= 2 && value[start - 1] === '(' && value[start - 2] === ']') {
|
|
7251
|
-
return undefined;
|
|
7252
|
-
}
|
|
7253
|
-
const end = findRawUrlEnd(value, start);
|
|
7254
|
-
const rawUrl = value.slice(start, end);
|
|
7255
|
-
const href = trimRawUrlEnd(rawUrl);
|
|
7256
|
-
if (!href) {
|
|
7257
|
-
return undefined;
|
|
7258
|
-
}
|
|
7259
|
-
return {
|
|
7260
|
-
length: href.length,
|
|
7261
|
-
node: {
|
|
7262
|
-
href: sanitizeLinkUrl(href),
|
|
7263
|
-
text: href,
|
|
7264
|
-
type: 'link'
|
|
7265
|
-
}
|
|
7266
|
-
};
|
|
7267
|
-
};
|
|
7268
|
-
const parseLinkToken = (value, start) => {
|
|
7269
|
-
if (value[start] !== '[') {
|
|
7270
|
-
return undefined;
|
|
7271
|
-
}
|
|
7272
|
-
const textEnd = value.indexOf(']', start + 1);
|
|
7273
|
-
if (textEnd === -1) {
|
|
7274
|
-
return undefined;
|
|
7275
|
-
}
|
|
7276
|
-
if (value[textEnd + 1] !== '(') {
|
|
7277
|
-
return undefined;
|
|
7278
|
-
}
|
|
7279
|
-
let depth = 1;
|
|
7280
|
-
let index = textEnd + 2;
|
|
7281
|
-
while (index < value.length) {
|
|
7282
|
-
const current = value[index];
|
|
7283
|
-
if (current === '\n') {
|
|
7284
|
-
return undefined;
|
|
7285
|
-
}
|
|
7286
|
-
if (current === '(') {
|
|
7287
|
-
depth++;
|
|
7288
|
-
} else if (current === ')') {
|
|
7289
|
-
depth--;
|
|
7290
|
-
if (depth === 0) {
|
|
7291
|
-
const text = value.slice(start + 1, textEnd);
|
|
7292
|
-
const href = value.slice(textEnd + 2, index);
|
|
7293
|
-
if (!text || !href) {
|
|
7294
|
-
return undefined;
|
|
7295
|
-
}
|
|
7296
|
-
return {
|
|
7297
|
-
length: index - start + 1,
|
|
7298
|
-
node: {
|
|
7299
|
-
href: sanitizeLinkUrl(href),
|
|
7300
|
-
text,
|
|
7301
|
-
type: 'link'
|
|
7302
|
-
}
|
|
7303
|
-
};
|
|
7304
|
-
}
|
|
7305
|
-
}
|
|
7306
|
-
index++;
|
|
7307
|
-
}
|
|
7308
|
-
return undefined;
|
|
7309
|
-
};
|
|
7310
|
-
const parseImageToken = (value, start) => {
|
|
7311
|
-
if (value[start] !== '!' || value[start + 1] !== '[') {
|
|
7312
|
-
return undefined;
|
|
7313
|
-
}
|
|
7314
|
-
const textEnd = value.indexOf(']', start + 2);
|
|
7315
|
-
if (textEnd === -1) {
|
|
7316
|
-
return undefined;
|
|
7317
|
-
}
|
|
7318
|
-
if (value[textEnd + 1] !== '(') {
|
|
7319
|
-
return undefined;
|
|
7320
|
-
}
|
|
7321
|
-
let depth = 1;
|
|
7322
|
-
let index = textEnd + 2;
|
|
7323
|
-
while (index < value.length) {
|
|
7324
|
-
const current = value[index];
|
|
7325
|
-
if (current === '\n') {
|
|
7326
|
-
return undefined;
|
|
7327
|
-
}
|
|
7328
|
-
if (current === '(') {
|
|
7329
|
-
depth++;
|
|
7330
|
-
} else if (current === ')') {
|
|
7331
|
-
depth--;
|
|
7332
|
-
if (depth === 0) {
|
|
7333
|
-
const alt = value.slice(start + 2, textEnd);
|
|
7334
|
-
const src = value.slice(textEnd + 2, index);
|
|
7335
|
-
if (!src) {
|
|
7336
|
-
return undefined;
|
|
7337
|
-
}
|
|
7338
|
-
return {
|
|
7339
|
-
length: index - start + 1,
|
|
7340
|
-
node: {
|
|
7341
|
-
alt,
|
|
7342
|
-
src: sanitizeImageUrl(src),
|
|
7343
|
-
type: 'image'
|
|
7344
|
-
}
|
|
7345
|
-
};
|
|
7346
|
-
}
|
|
7347
|
-
}
|
|
7348
|
-
index++;
|
|
7349
|
-
}
|
|
7350
|
-
return undefined;
|
|
7351
|
-
};
|
|
7352
|
-
const parseBoldToken = (value, start) => {
|
|
7353
|
-
if (value[start] !== '*' || value[start + 1] !== '*') {
|
|
7354
|
-
return undefined;
|
|
7355
|
-
}
|
|
7356
|
-
const end = value.indexOf('**', start + 2);
|
|
7357
|
-
if (end === -1) {
|
|
7358
|
-
return undefined;
|
|
7359
|
-
}
|
|
7360
|
-
const text = value.slice(start + 2, end);
|
|
7361
|
-
if (!text || text.includes('\n')) {
|
|
7362
|
-
return undefined;
|
|
7363
|
-
}
|
|
7364
|
-
return {
|
|
7365
|
-
length: end - start + 2,
|
|
7366
|
-
node: {
|
|
7367
|
-
children: parseInlineNodes(text),
|
|
7368
|
-
type: 'bold'
|
|
7369
|
-
}
|
|
7370
|
-
};
|
|
7371
|
-
};
|
|
7372
|
-
const parseBoldItalicToken = (value, start) => {
|
|
7373
|
-
if (value[start] !== '*' || value[start + 1] !== '*' || value[start + 2] !== '*') {
|
|
7374
|
-
return undefined;
|
|
7375
|
-
}
|
|
7376
|
-
const end = value.indexOf('***', start + 3);
|
|
7377
|
-
if (end === -1) {
|
|
7378
|
-
return undefined;
|
|
7379
|
-
}
|
|
7380
|
-
const text = value.slice(start + 3, end);
|
|
7381
|
-
if (!text || text.includes('\n')) {
|
|
7382
|
-
return undefined;
|
|
7383
|
-
}
|
|
7384
|
-
return {
|
|
7385
|
-
length: end - start + 3,
|
|
7386
|
-
node: {
|
|
7387
|
-
children: [{
|
|
7388
|
-
children: parseInlineNodes(text),
|
|
7389
|
-
type: 'italic'
|
|
7390
|
-
}],
|
|
7391
|
-
type: 'bold'
|
|
7392
|
-
}
|
|
7393
|
-
};
|
|
7394
|
-
};
|
|
7395
|
-
const findItalicEnd = (value, start) => {
|
|
7396
|
-
let index = start + 1;
|
|
7397
|
-
while (index < value.length) {
|
|
7398
|
-
if (value[index] !== '*') {
|
|
7399
|
-
index++;
|
|
7400
|
-
continue;
|
|
7401
|
-
}
|
|
7402
|
-
if (value[index + 1] !== '*') {
|
|
7403
|
-
return index;
|
|
7404
|
-
}
|
|
7405
|
-
const boldEnd = value.indexOf('**', index + 2);
|
|
7406
|
-
if (boldEnd === -1) {
|
|
7407
|
-
return -1;
|
|
7408
|
-
}
|
|
7409
|
-
index = boldEnd + 2;
|
|
7410
|
-
}
|
|
7411
|
-
return -1;
|
|
7412
|
-
};
|
|
7413
|
-
const parseItalicToken = (value, start) => {
|
|
7414
|
-
if (value[start] !== '*' || value[start + 1] === '*') {
|
|
7415
|
-
return undefined;
|
|
7416
|
-
}
|
|
7417
|
-
const end = findItalicEnd(value, start);
|
|
7418
|
-
if (end === -1) {
|
|
7419
|
-
return undefined;
|
|
7420
|
-
}
|
|
7421
|
-
const text = value.slice(start + 1, end);
|
|
7422
|
-
if (!text) {
|
|
7423
|
-
return undefined;
|
|
7424
|
-
}
|
|
7425
|
-
return {
|
|
7426
|
-
length: end - start + 1,
|
|
7427
|
-
node: {
|
|
7428
|
-
children: parseInlineNodes(text),
|
|
7429
|
-
type: 'italic'
|
|
7430
|
-
}
|
|
7431
|
-
};
|
|
7432
|
-
};
|
|
7433
|
-
const parseStrikethroughToken = (value, start) => {
|
|
7434
|
-
if (value[start] !== '~' || value[start + 1] !== '~') {
|
|
7435
|
-
return undefined;
|
|
7436
|
-
}
|
|
7437
|
-
const end = value.indexOf('~~', start + 2);
|
|
7438
|
-
if (end === -1) {
|
|
7439
|
-
return undefined;
|
|
7440
|
-
}
|
|
7441
|
-
const text = value.slice(start + 2, end);
|
|
7442
|
-
if (!text || text.includes('\n')) {
|
|
7443
|
-
return undefined;
|
|
7444
|
-
}
|
|
7445
|
-
return {
|
|
7446
|
-
length: end - start + 2,
|
|
7447
|
-
node: {
|
|
7448
|
-
children: parseInlineNodes(text),
|
|
7449
|
-
type: 'strikethrough'
|
|
7450
|
-
}
|
|
7451
|
-
};
|
|
7452
|
-
};
|
|
7453
|
-
const parseInlineCodeToken = (value, start) => {
|
|
7454
|
-
if (value[start] !== '`') {
|
|
7455
|
-
return undefined;
|
|
7456
|
-
}
|
|
7457
|
-
const end = value.indexOf('`', start + 1);
|
|
7458
|
-
if (end === -1) {
|
|
7459
|
-
return undefined;
|
|
7460
|
-
}
|
|
7461
|
-
const codeText = value.slice(start + 1, end);
|
|
7462
|
-
if (!codeText || codeText.includes('\n')) {
|
|
7463
|
-
return undefined;
|
|
7464
|
-
}
|
|
7465
|
-
return {
|
|
7466
|
-
length: end - start + 1,
|
|
7467
|
-
node: {
|
|
7468
|
-
text: codeText,
|
|
7469
|
-
type: 'inline-code'
|
|
7470
|
-
}
|
|
7471
|
-
};
|
|
7472
|
-
};
|
|
7473
|
-
const parseMathToken = (value, start) => {
|
|
7474
|
-
if (value[start] !== '$') {
|
|
7475
|
-
return undefined;
|
|
7476
|
-
}
|
|
7477
|
-
const delimiterLength = value[start + 1] === '$' ? 2 : 1;
|
|
7478
|
-
const previous = value[start - 1];
|
|
7479
|
-
if (isAlphaNumeric(previous)) {
|
|
7480
|
-
return undefined;
|
|
7481
|
-
}
|
|
7482
|
-
const next = value[start + delimiterLength];
|
|
7483
|
-
if (!next || next === '.') {
|
|
7484
|
-
return undefined;
|
|
7485
|
-
}
|
|
7486
|
-
if (next === '(' && (value[start + delimiterLength + 1] === '"' || value[start + delimiterLength + 1] === "'")) {
|
|
7487
|
-
return undefined;
|
|
7488
|
-
}
|
|
7489
|
-
let index = start + delimiterLength;
|
|
7490
|
-
while (index < value.length) {
|
|
7491
|
-
if (value[index] === '\n') {
|
|
7492
|
-
return undefined;
|
|
7493
|
-
}
|
|
7494
|
-
const isClosed = delimiterLength === 2 ? value.startsWith('$$', index) : value[index] === '$';
|
|
7495
|
-
if (isClosed) {
|
|
7496
|
-
const body = value.slice(start + delimiterLength, index);
|
|
7497
|
-
const following = value[index + delimiterLength];
|
|
7498
|
-
if (!body || isAlphaNumeric(following)) {
|
|
7499
|
-
return undefined;
|
|
7500
|
-
}
|
|
7501
|
-
return {
|
|
7502
|
-
length: index - start + delimiterLength,
|
|
7503
|
-
node: {
|
|
7504
|
-
displayMode: delimiterLength === 2,
|
|
7505
|
-
text: body.trim(),
|
|
7506
|
-
type: 'math-inline'
|
|
7507
|
-
}
|
|
7508
|
-
};
|
|
7509
|
-
}
|
|
7510
|
-
if (value[index] === '\\') {
|
|
7511
|
-
index += 2;
|
|
7512
|
-
continue;
|
|
7513
|
-
}
|
|
7514
|
-
index++;
|
|
7515
|
-
}
|
|
7516
|
-
return undefined;
|
|
7517
|
-
};
|
|
7518
|
-
const parseInlineToken = (value, start) => {
|
|
7519
|
-
return parseImageToken(value, start) || parseLinkToken(value, start) || parseRawLinkToken(value, start) || parseBoldItalicToken(value, start) || parseBoldToken(value, start) || parseItalicToken(value, start) || parseLinkToken(value, start) || parseBoldItalicToken(value, start) || parseBoldToken(value, start) || parseItalicToken(value, start) || parseStrikethroughToken(value, start) || parseInlineCodeToken(value, start) || parseMathToken(value, start);
|
|
7520
|
-
};
|
|
7521
|
-
const parseInlineNodes = value => {
|
|
7522
|
-
const nodes = [];
|
|
7523
|
-
let textStart = 0;
|
|
7524
|
-
let index = 0;
|
|
7525
|
-
const pushText = end => {
|
|
7526
|
-
if (end <= textStart) {
|
|
7527
|
-
return;
|
|
7528
|
-
}
|
|
7529
|
-
nodes.push({
|
|
7530
|
-
text: value.slice(textStart, end),
|
|
7531
|
-
type: 'text'
|
|
7532
|
-
});
|
|
7533
|
-
};
|
|
7534
|
-
while (index < value.length) {
|
|
7535
|
-
const parsed = parseInlineToken(value, index);
|
|
7536
|
-
if (!parsed) {
|
|
7537
|
-
index++;
|
|
7538
|
-
continue;
|
|
7539
|
-
}
|
|
7540
|
-
pushText(index);
|
|
7541
|
-
nodes.push(parsed.node);
|
|
7542
|
-
index += parsed.length;
|
|
7543
|
-
textStart = index;
|
|
7544
|
-
}
|
|
7545
|
-
pushText(value.length);
|
|
7546
|
-
if (nodes.length === 0) {
|
|
7547
|
-
return [{
|
|
7548
|
-
text: value,
|
|
7549
|
-
type: 'text'
|
|
7550
|
-
}];
|
|
7551
|
-
}
|
|
7552
|
-
return nodes;
|
|
7553
|
-
};
|
|
7554
|
-
|
|
7555
|
-
const markdownMathBlockDelimiter = '$$';
|
|
7556
|
-
const escapedNewlineRegex = /\\r\\n|\\n/g;
|
|
7557
|
-
const lineBreakRegex = /\r?\n/;
|
|
7558
|
-
const tableDelimiterRegex = /\|\s*[-:]{3,}/;
|
|
7559
|
-
const inlineTableCellRegex = /\|\s+\|/g;
|
|
7560
|
-
const normalizeEscapedNewlines = value => {
|
|
7561
|
-
if (value.includes('\\n')) {
|
|
7562
|
-
return value.replaceAll(escapedNewlineRegex, '\n');
|
|
7563
|
-
}
|
|
7564
|
-
return value;
|
|
7565
|
-
};
|
|
7566
|
-
const normalizeInlineTables = value => {
|
|
7567
|
-
return value.split(lineBreakRegex).map(line => {
|
|
7568
|
-
if (!line.includes('|')) {
|
|
7569
|
-
return line;
|
|
7570
|
-
}
|
|
7571
|
-
if (!tableDelimiterRegex.test(line)) {
|
|
7572
|
-
return line;
|
|
7573
|
-
}
|
|
7574
|
-
return line.replaceAll(inlineTableCellRegex, '|\n|');
|
|
7575
|
-
}).join('\n');
|
|
7576
|
-
};
|
|
7577
|
-
const parseHeadingLine = line => {
|
|
7578
|
-
const trimmedStart = line.trimStart();
|
|
7579
|
-
let index = 0;
|
|
7580
|
-
while (index < trimmedStart.length && trimmedStart[index] === '#') {
|
|
7581
|
-
index++;
|
|
7582
|
-
}
|
|
7583
|
-
if (index === 0 || index > 6) {
|
|
7584
|
-
return undefined;
|
|
7585
|
-
}
|
|
7586
|
-
if (trimmedStart[index] !== ' ') {
|
|
7587
|
-
return undefined;
|
|
7588
|
-
}
|
|
7589
|
-
const text = trimmedStart.slice(index).trimStart();
|
|
7590
|
-
return {
|
|
7591
|
-
level: index,
|
|
7592
|
-
text
|
|
7593
|
-
};
|
|
7594
|
-
};
|
|
7595
|
-
const parseOrderedListItemLine = line => {
|
|
7596
|
-
let indentation = 0;
|
|
7597
|
-
while (indentation < line.length && line[indentation] === ' ') {
|
|
7598
|
-
indentation++;
|
|
7599
|
-
}
|
|
7600
|
-
let index = indentation;
|
|
7601
|
-
const firstDigit = index;
|
|
7602
|
-
while (index < line.length && line[index] >= '0' && line[index] <= '9') {
|
|
7603
|
-
index++;
|
|
7604
|
-
}
|
|
7605
|
-
if (index === firstDigit || line[index] !== '.') {
|
|
7606
|
-
return undefined;
|
|
7607
|
-
}
|
|
7608
|
-
index++;
|
|
7609
|
-
if (line[index] !== ' ') {
|
|
7610
|
-
return undefined;
|
|
7611
|
-
}
|
|
7612
|
-
while (index < line.length && line[index] === ' ') {
|
|
7613
|
-
index++;
|
|
7614
|
-
}
|
|
7615
|
-
return {
|
|
7616
|
-
indentation,
|
|
7617
|
-
text: line.slice(index)
|
|
7618
|
-
};
|
|
7619
|
-
};
|
|
7620
|
-
const parseUnorderedListItemLine = line => {
|
|
7621
|
-
let indentation = 0;
|
|
7622
|
-
while (indentation < line.length && line[indentation] === ' ') {
|
|
7623
|
-
indentation++;
|
|
7624
|
-
}
|
|
7625
|
-
const marker = line[indentation];
|
|
7626
|
-
if (marker !== '-' && marker !== '*') {
|
|
7627
|
-
return undefined;
|
|
7628
|
-
}
|
|
7629
|
-
let index = indentation + 1;
|
|
7630
|
-
if (line[index] !== ' ') {
|
|
7631
|
-
return undefined;
|
|
7632
|
-
}
|
|
7633
|
-
while (index < line.length && line[index] === ' ') {
|
|
7634
|
-
index++;
|
|
7635
|
-
}
|
|
7636
|
-
return {
|
|
7637
|
-
indentation,
|
|
7638
|
-
text: line.slice(index)
|
|
7639
|
-
};
|
|
7640
|
-
};
|
|
7641
|
-
const parseBlockQuoteLine = line => {
|
|
7642
|
-
const trimmedStart = line.trimStart();
|
|
7643
|
-
if (!trimmedStart.startsWith('>')) {
|
|
7644
|
-
return undefined;
|
|
7645
|
-
}
|
|
7646
|
-
const content = trimmedStart.slice(1);
|
|
7647
|
-
if (!content) {
|
|
7648
|
-
return '';
|
|
7649
|
-
}
|
|
7650
|
-
if (content.startsWith(' ')) {
|
|
7651
|
-
return content.slice(1);
|
|
7652
|
-
}
|
|
7653
|
-
return content;
|
|
7654
|
-
};
|
|
7655
|
-
const isThematicBreakLine = line => {
|
|
7656
|
-
const trimmedStart = line.trimStart();
|
|
7657
|
-
const leadingSpaces = line.length - trimmedStart.length;
|
|
7658
|
-
if (leadingSpaces > 3) {
|
|
7659
|
-
return false;
|
|
7660
|
-
}
|
|
7661
|
-
const trimmed = trimmedStart.trimEnd();
|
|
7662
|
-
if (!trimmed) {
|
|
7663
|
-
return false;
|
|
7664
|
-
}
|
|
7665
|
-
const marker = trimmed[0];
|
|
7666
|
-
if (marker !== '-' && marker !== '_' && marker !== '*') {
|
|
7667
|
-
return false;
|
|
7668
|
-
}
|
|
7669
|
-
let markerCount = 0;
|
|
7670
|
-
for (let i = 0; i < trimmed.length; i++) {
|
|
7671
|
-
const char = trimmed[i];
|
|
7672
|
-
if (char === marker) {
|
|
7673
|
-
markerCount++;
|
|
7674
|
-
continue;
|
|
7675
|
-
}
|
|
7676
|
-
if (char !== ' ') {
|
|
7677
|
-
return false;
|
|
7678
|
-
}
|
|
7679
|
-
}
|
|
7680
|
-
return markerCount >= 3;
|
|
7681
|
-
};
|
|
7682
|
-
const isTableRow = line => {
|
|
7683
|
-
const trimmed = line.trim();
|
|
7684
|
-
if (!trimmed.startsWith('|') || !trimmed.endsWith('|')) {
|
|
7685
|
-
return false;
|
|
7686
|
-
}
|
|
7687
|
-
return trimmed.length > 2;
|
|
7688
|
-
};
|
|
7689
|
-
const getTableCells = line => {
|
|
7690
|
-
const trimmed = line.trim();
|
|
7691
|
-
return trimmed.slice(1, -1).split('|').map(part => part.trim());
|
|
7692
|
-
};
|
|
7693
|
-
const scanBlockTokens = rawMessage => {
|
|
7694
|
-
const normalizedMessage = normalizeInlineTables(normalizeEscapedNewlines(rawMessage));
|
|
7695
|
-
const lines = normalizedMessage.split(lineBreakRegex);
|
|
7696
|
-
const tokens = [];
|
|
7697
|
-
for (let i = 0; i < lines.length; i++) {
|
|
7698
|
-
const line = lines[i];
|
|
7699
|
-
const trimmed = line.trim();
|
|
7700
|
-
if (!trimmed) {
|
|
7701
|
-
tokens.push({
|
|
7702
|
-
type: 'blank-line'
|
|
7703
|
-
});
|
|
7704
|
-
continue;
|
|
7705
|
-
}
|
|
7706
|
-
const blockQuoteLine = parseBlockQuoteLine(line);
|
|
7707
|
-
if (blockQuoteLine !== undefined) {
|
|
7708
|
-
tokens.push({
|
|
7709
|
-
text: blockQuoteLine,
|
|
7710
|
-
type: 'blockquote-line'
|
|
7711
|
-
});
|
|
7712
|
-
continue;
|
|
7713
|
-
}
|
|
7714
|
-
if (trimmed.startsWith('```')) {
|
|
7715
|
-
const language = trimmed.slice(3).trim();
|
|
7716
|
-
const codeLines = [];
|
|
7717
|
-
i++;
|
|
7718
|
-
while (i < lines.length && !lines[i].trim().startsWith('```')) {
|
|
7719
|
-
codeLines.push(lines[i]);
|
|
7720
|
-
i++;
|
|
7721
|
-
}
|
|
7722
|
-
if (language) {
|
|
7723
|
-
tokens.push({
|
|
7724
|
-
language,
|
|
7725
|
-
text: codeLines.join('\n'),
|
|
7726
|
-
type: 'code-block'
|
|
7727
|
-
});
|
|
7728
|
-
} else {
|
|
7729
|
-
tokens.push({
|
|
7730
|
-
text: codeLines.join('\n'),
|
|
7731
|
-
type: 'code-block'
|
|
7732
|
-
});
|
|
7733
|
-
}
|
|
7734
|
-
continue;
|
|
7735
|
-
}
|
|
7736
|
-
if (trimmed === markdownMathBlockDelimiter) {
|
|
7737
|
-
const endIndex = lines.findIndex((candidate, index) => {
|
|
7738
|
-
if (index <= i) {
|
|
7739
|
-
return false;
|
|
7740
|
-
}
|
|
7741
|
-
return candidate.trim() === markdownMathBlockDelimiter;
|
|
7742
|
-
});
|
|
7743
|
-
if (endIndex !== -1) {
|
|
7744
|
-
tokens.push({
|
|
7745
|
-
text: lines.slice(i + 1, endIndex).join('\n').trim(),
|
|
7746
|
-
type: 'math-block'
|
|
7747
|
-
});
|
|
7748
|
-
i = endIndex;
|
|
7749
|
-
continue;
|
|
7750
|
-
}
|
|
7751
|
-
}
|
|
7752
|
-
const heading = parseHeadingLine(line);
|
|
7753
|
-
if (heading) {
|
|
7754
|
-
tokens.push({
|
|
7755
|
-
level: heading.level,
|
|
7756
|
-
text: heading.text,
|
|
7757
|
-
type: 'heading-line'
|
|
7758
|
-
});
|
|
7759
|
-
continue;
|
|
7760
|
-
}
|
|
7761
|
-
if (isThematicBreakLine(line)) {
|
|
7762
|
-
tokens.push({
|
|
7763
|
-
type: 'thematic-break'
|
|
7764
|
-
});
|
|
7765
|
-
continue;
|
|
7766
|
-
}
|
|
7767
|
-
const ordered = parseOrderedListItemLine(line);
|
|
7768
|
-
if (ordered) {
|
|
7769
|
-
tokens.push({
|
|
7770
|
-
indentation: ordered.indentation,
|
|
7771
|
-
text: ordered.text,
|
|
7772
|
-
type: 'ordered-list-item-line'
|
|
7773
|
-
});
|
|
7774
|
-
continue;
|
|
7775
|
-
}
|
|
7776
|
-
const unordered = parseUnorderedListItemLine(line);
|
|
7777
|
-
if (unordered) {
|
|
7778
|
-
tokens.push({
|
|
7779
|
-
indentation: unordered.indentation,
|
|
7780
|
-
text: unordered.text,
|
|
7781
|
-
type: 'unordered-list-item-line'
|
|
7782
|
-
});
|
|
7783
|
-
continue;
|
|
7784
|
-
}
|
|
7785
|
-
if (isTableRow(line)) {
|
|
7786
|
-
tokens.push({
|
|
7787
|
-
cells: getTableCells(line),
|
|
7788
|
-
line,
|
|
7789
|
-
type: 'table-row-line'
|
|
7790
|
-
});
|
|
7791
|
-
continue;
|
|
7792
|
-
}
|
|
7793
|
-
tokens.push({
|
|
7794
|
-
text: line,
|
|
7795
|
-
type: 'paragraph-line'
|
|
7796
|
-
});
|
|
7797
|
-
}
|
|
7798
|
-
return tokens;
|
|
7799
|
-
};
|
|
7800
|
-
|
|
7801
|
-
const isTableSeparatorCell = value => {
|
|
7802
|
-
if (!value) {
|
|
7803
|
-
return false;
|
|
7804
|
-
}
|
|
7805
|
-
let index = 0;
|
|
7806
|
-
if (value[index] === ':') {
|
|
7807
|
-
index++;
|
|
7808
|
-
}
|
|
7809
|
-
let dashCount = 0;
|
|
7810
|
-
while (index < value.length && value[index] === '-') {
|
|
7811
|
-
dashCount++;
|
|
7812
|
-
index++;
|
|
7813
|
-
}
|
|
7814
|
-
if (dashCount < 3) {
|
|
7815
|
-
return false;
|
|
7816
|
-
}
|
|
7817
|
-
if (index < value.length && value[index] === ':') {
|
|
7818
|
-
index++;
|
|
7819
|
-
}
|
|
7820
|
-
return index === value.length;
|
|
7821
|
-
};
|
|
7822
|
-
const isTableSeparatorToken = (token, expectedColumns) => {
|
|
7823
|
-
if (!token || token.type !== 'table-row-line') {
|
|
7824
|
-
return false;
|
|
7825
|
-
}
|
|
7826
|
-
if (token.cells.length !== expectedColumns) {
|
|
7827
|
-
return false;
|
|
7828
|
-
}
|
|
7829
|
-
return token.cells.every(isTableSeparatorCell);
|
|
7830
|
-
};
|
|
7831
|
-
const toTableCell = value => {
|
|
7832
|
-
return {
|
|
7833
|
-
children: parseInlineNodes(value),
|
|
7834
|
-
type: 'table-cell'
|
|
7835
|
-
};
|
|
7836
|
-
};
|
|
7837
|
-
const toTableRow = token => {
|
|
7838
|
-
return {
|
|
7839
|
-
cells: token.cells.map(toTableCell),
|
|
7840
|
-
type: 'table-row'
|
|
7841
|
-
};
|
|
7842
|
-
};
|
|
7843
|
-
const getEmptyTextNode = () => {
|
|
7844
|
-
return [{
|
|
7845
|
-
children: [{
|
|
7846
|
-
text: '',
|
|
7847
|
-
type: 'text'
|
|
7848
|
-
}],
|
|
7849
|
-
type: 'text'
|
|
7850
|
-
}];
|
|
7851
|
-
};
|
|
7852
|
-
const parseBlockTokens = tokens => {
|
|
7853
|
-
if (tokens.length === 0) {
|
|
7854
|
-
return getEmptyTextNode();
|
|
7855
|
-
}
|
|
7856
|
-
const nodes = [];
|
|
7857
|
-
let paragraphLines = [];
|
|
7858
|
-
let listItems = [];
|
|
7859
|
-
let listType = '';
|
|
7860
|
-
let orderedListPathStack = [];
|
|
7861
|
-
let canContinueOrderedListItemParagraph = false;
|
|
7862
|
-
const createListItem = (text, index) => {
|
|
7863
|
-
return {
|
|
7864
|
-
children: parseInlineNodes(text),
|
|
7865
|
-
...(index === undefined ? {} : {
|
|
7866
|
-
index
|
|
7867
|
-
}),
|
|
7868
|
-
type: 'list-item'
|
|
7869
|
-
};
|
|
7870
|
-
};
|
|
7871
|
-
const getListItemAtPath = (items, path) => {
|
|
7872
|
-
let currentItems = items;
|
|
7873
|
-
let currentItem;
|
|
7874
|
-
for (const index of path) {
|
|
7875
|
-
currentItem = currentItems[index];
|
|
7876
|
-
if (!currentItem) {
|
|
7877
|
-
return undefined;
|
|
7878
|
-
}
|
|
7879
|
-
currentItems = currentItem.nestedItems || [];
|
|
7880
|
-
}
|
|
7881
|
-
return currentItem;
|
|
7882
|
-
};
|
|
7883
|
-
const appendNestedItemAtPath = (items, path, item, nestedListType) => {
|
|
7884
|
-
if (path.length === 0) {
|
|
7885
|
-
return [...items, item];
|
|
7886
|
-
}
|
|
7887
|
-
const [index, ...rest] = path;
|
|
7888
|
-
const current = items[index];
|
|
7889
|
-
if (!current) {
|
|
7890
|
-
return [...items];
|
|
7891
|
-
}
|
|
7892
|
-
const nextNestedItems = rest.length > 0 ? appendNestedItemAtPath(current.nestedItems || [], rest, item, nestedListType) : [...(current.nestedItems || []), item];
|
|
7893
|
-
const nextItem = {
|
|
7894
|
-
...current,
|
|
7895
|
-
nestedItems: nextNestedItems,
|
|
7896
|
-
nestedListType
|
|
7897
|
-
};
|
|
7898
|
-
return [...items.slice(0, index), nextItem, ...items.slice(index + 1)];
|
|
7899
|
-
};
|
|
7900
|
-
const appendInlineChildrenAtPath = (items, path, children) => {
|
|
7901
|
-
if (path.length === 0) {
|
|
7902
|
-
return [...items];
|
|
7903
|
-
}
|
|
7904
|
-
const [index, ...rest] = path;
|
|
7905
|
-
const current = items[index];
|
|
7906
|
-
if (!current) {
|
|
7907
|
-
return [...items];
|
|
7908
|
-
}
|
|
7909
|
-
const lineBreakNode = {
|
|
7910
|
-
text: '\n',
|
|
7911
|
-
type: 'text'
|
|
7912
|
-
};
|
|
7913
|
-
const nextChildren = [...current.children, lineBreakNode, ...children];
|
|
7914
|
-
const nextItem = rest.length > 0 ? {
|
|
7915
|
-
...current,
|
|
7916
|
-
nestedItems: appendInlineChildrenAtPath(current.nestedItems || [], rest, children)
|
|
7917
|
-
} : {
|
|
7918
|
-
...current,
|
|
7919
|
-
children: nextChildren
|
|
7920
|
-
};
|
|
7921
|
-
return [...items.slice(0, index), nextItem, ...items.slice(index + 1)];
|
|
7922
|
-
};
|
|
7923
|
-
const flushParagraph = () => {
|
|
7924
|
-
if (paragraphLines.length === 0) {
|
|
7925
|
-
return;
|
|
7926
|
-
}
|
|
7927
|
-
nodes.push({
|
|
7928
|
-
children: parseInlineNodes(paragraphLines.join('\n')),
|
|
7929
|
-
type: 'text'
|
|
7930
|
-
});
|
|
7931
|
-
paragraphLines = [];
|
|
7932
|
-
};
|
|
7933
|
-
const flushList = () => {
|
|
7934
|
-
if (listItems.length === 0) {
|
|
7935
|
-
return;
|
|
7936
|
-
}
|
|
7937
|
-
nodes.push({
|
|
7938
|
-
items: listItems,
|
|
7939
|
-
type: listType || 'ordered-list'
|
|
7940
|
-
});
|
|
7941
|
-
listItems = [];
|
|
7942
|
-
listType = '';
|
|
7943
|
-
orderedListPathStack = [];
|
|
7944
|
-
canContinueOrderedListItemParagraph = false;
|
|
7945
|
-
};
|
|
7946
|
-
for (let i = 0; i < tokens.length; i++) {
|
|
7947
|
-
const token = tokens[i];
|
|
7948
|
-
if (token.type === 'blank-line') {
|
|
7949
|
-
flushParagraph();
|
|
7950
|
-
canContinueOrderedListItemParagraph = false;
|
|
7951
|
-
continue;
|
|
7952
|
-
}
|
|
7953
|
-
if (token.type === 'code-block') {
|
|
7954
|
-
flushList();
|
|
7955
|
-
flushParagraph();
|
|
7956
|
-
if (token.language) {
|
|
7957
|
-
nodes.push({
|
|
7958
|
-
codeTokens: highlightCode(token.text, token.language),
|
|
7959
|
-
language: token.language,
|
|
7960
|
-
text: token.text,
|
|
7961
|
-
type: 'code-block'
|
|
7962
|
-
});
|
|
7963
|
-
} else {
|
|
7964
|
-
nodes.push({
|
|
7965
|
-
codeTokens: highlightCode(token.text, undefined),
|
|
7966
|
-
text: token.text,
|
|
7967
|
-
type: 'code-block'
|
|
7968
|
-
});
|
|
7969
|
-
}
|
|
7970
|
-
continue;
|
|
7971
|
-
}
|
|
7972
|
-
if (token.type === 'math-block') {
|
|
7973
|
-
flushList();
|
|
7974
|
-
flushParagraph();
|
|
7975
|
-
nodes.push({
|
|
7976
|
-
text: token.text,
|
|
7977
|
-
type: 'math-block'
|
|
7978
|
-
});
|
|
7979
|
-
continue;
|
|
7980
|
-
}
|
|
7981
|
-
if (token.type === 'thematic-break') {
|
|
7982
|
-
flushList();
|
|
7983
|
-
flushParagraph();
|
|
7984
|
-
nodes.push({
|
|
7985
|
-
type: 'thematic-break'
|
|
7986
|
-
});
|
|
7987
|
-
continue;
|
|
7988
|
-
}
|
|
7989
|
-
if (token.type === 'blockquote-line') {
|
|
7990
|
-
flushList();
|
|
7991
|
-
flushParagraph();
|
|
7992
|
-
const lines = [];
|
|
7993
|
-
while (i < tokens.length && tokens[i].type === 'blockquote-line') {
|
|
7994
|
-
const quoteToken = tokens[i];
|
|
7995
|
-
if (quoteToken.type === 'blockquote-line') {
|
|
7996
|
-
lines.push(quoteToken.text);
|
|
7997
|
-
}
|
|
7998
|
-
i++;
|
|
7999
|
-
}
|
|
8000
|
-
i--;
|
|
8001
|
-
nodes.push({
|
|
8002
|
-
children: parseBlockTokens(scanBlockTokens(lines.join('\n'))),
|
|
8003
|
-
type: 'blockquote'
|
|
8004
|
-
});
|
|
8005
|
-
continue;
|
|
8006
|
-
}
|
|
8007
|
-
if (token.type === 'table-row-line') {
|
|
8008
|
-
const expectedColumns = token.cells.length;
|
|
8009
|
-
if (isTableSeparatorToken(tokens[i + 1], expectedColumns)) {
|
|
8010
|
-
flushList();
|
|
8011
|
-
flushParagraph();
|
|
8012
|
-
const rows = [];
|
|
8013
|
-
i += 2;
|
|
8014
|
-
while (i < tokens.length && tokens[i].type === 'table-row-line') {
|
|
8015
|
-
const rowToken = tokens[i];
|
|
8016
|
-
if (rowToken.type !== 'table-row-line') {
|
|
8017
|
-
break;
|
|
8018
|
-
}
|
|
8019
|
-
if (rowToken.cells.length === expectedColumns) {
|
|
8020
|
-
rows.push(toTableRow(rowToken));
|
|
8021
|
-
}
|
|
8022
|
-
i++;
|
|
8023
|
-
}
|
|
8024
|
-
i--;
|
|
8025
|
-
nodes.push({
|
|
8026
|
-
headers: token.cells.map(toTableCell),
|
|
8027
|
-
rows,
|
|
8028
|
-
type: 'table'
|
|
8029
|
-
});
|
|
8030
|
-
continue;
|
|
8031
|
-
}
|
|
8032
|
-
flushList();
|
|
8033
|
-
paragraphLines.push(token.line);
|
|
8034
|
-
continue;
|
|
8035
|
-
}
|
|
8036
|
-
if (token.type === 'ordered-list-item-line') {
|
|
8037
|
-
if (listType === 'ordered-list' && listItems.length > 0 && token.indentation > 0 && orderedListPathStack.length > 0) {
|
|
8038
|
-
const parentEntry = orderedListPathStack.toReversed().find(entry => entry.indentation < token.indentation);
|
|
8039
|
-
if (parentEntry) {
|
|
8040
|
-
const parentItem = getListItemAtPath(listItems, parentEntry.path);
|
|
8041
|
-
if (parentItem) {
|
|
8042
|
-
const nextIndex = parentItem.nestedItems?.length || 0;
|
|
8043
|
-
const nextItem = createListItem(token.text, nextIndex + 1);
|
|
8044
|
-
listItems = appendNestedItemAtPath(listItems, parentEntry.path, nextItem, 'ordered-list');
|
|
8045
|
-
const nextPath = [...parentEntry.path, nextIndex];
|
|
8046
|
-
orderedListPathStack = [...orderedListPathStack.filter(entry => entry.indentation < token.indentation), {
|
|
8047
|
-
indentation: token.indentation,
|
|
8048
|
-
path: nextPath
|
|
8049
|
-
}];
|
|
8050
|
-
canContinueOrderedListItemParagraph = true;
|
|
8051
|
-
continue;
|
|
8052
|
-
}
|
|
8053
|
-
}
|
|
8054
|
-
}
|
|
8055
|
-
if (listType && listType !== 'ordered-list') {
|
|
8056
|
-
flushList();
|
|
8057
|
-
}
|
|
8058
|
-
flushParagraph();
|
|
8059
|
-
listType = 'ordered-list';
|
|
8060
|
-
const nextIndex = listItems.length;
|
|
8061
|
-
const nextItem = createListItem(token.text, nextIndex + 1);
|
|
8062
|
-
listItems.push(nextItem);
|
|
8063
|
-
orderedListPathStack = [...orderedListPathStack.filter(entry => entry.indentation < token.indentation), {
|
|
8064
|
-
indentation: token.indentation,
|
|
8065
|
-
path: [nextIndex]
|
|
8066
|
-
}];
|
|
8067
|
-
canContinueOrderedListItemParagraph = true;
|
|
8068
|
-
continue;
|
|
8069
|
-
}
|
|
8070
|
-
if (token.type === 'unordered-list-item-line') {
|
|
8071
|
-
if (listType === 'ordered-list' && listItems.length > 0 && token.indentation > 0 && orderedListPathStack.length > 0) {
|
|
8072
|
-
const parentEntry = orderedListPathStack.toReversed().find(entry => entry.indentation < token.indentation);
|
|
8073
|
-
if (parentEntry) {
|
|
8074
|
-
const nextItem = createListItem(token.text);
|
|
8075
|
-
listItems = appendNestedItemAtPath(listItems, parentEntry.path, nextItem, 'unordered-list');
|
|
8076
|
-
canContinueOrderedListItemParagraph = false;
|
|
8077
|
-
continue;
|
|
8078
|
-
}
|
|
8079
|
-
}
|
|
8080
|
-
if (listType && listType !== 'unordered-list') {
|
|
8081
|
-
flushList();
|
|
8082
|
-
}
|
|
8083
|
-
flushParagraph();
|
|
8084
|
-
listType = 'unordered-list';
|
|
8085
|
-
listItems.push(createListItem(token.text));
|
|
8086
|
-
canContinueOrderedListItemParagraph = false;
|
|
8087
|
-
continue;
|
|
8088
|
-
}
|
|
8089
|
-
if (token.type === 'heading-line') {
|
|
8090
|
-
flushList();
|
|
8091
|
-
flushParagraph();
|
|
8092
|
-
nodes.push({
|
|
8093
|
-
children: parseInlineNodes(token.text),
|
|
8094
|
-
level: token.level,
|
|
8095
|
-
type: 'heading'
|
|
8096
|
-
});
|
|
8097
|
-
continue;
|
|
8098
|
-
}
|
|
8099
|
-
if (token.type === 'paragraph-line' && listType === 'ordered-list' && listItems.length > 0 && canContinueOrderedListItemParagraph) {
|
|
8100
|
-
const currentPath = orderedListPathStack.at(-1)?.path;
|
|
8101
|
-
if (currentPath) {
|
|
8102
|
-
listItems = appendInlineChildrenAtPath(listItems, currentPath, parseInlineNodes(token.text));
|
|
8103
|
-
continue;
|
|
8104
|
-
}
|
|
8105
|
-
}
|
|
8106
|
-
flushList();
|
|
8107
|
-
paragraphLines.push(token.text);
|
|
8108
|
-
canContinueOrderedListItemParagraph = false;
|
|
8109
|
-
}
|
|
8110
|
-
flushList();
|
|
8111
|
-
flushParagraph();
|
|
8112
|
-
return nodes.length === 0 ? getEmptyTextNode() : nodes;
|
|
8113
|
-
};
|
|
8114
|
-
|
|
8115
|
-
const parseMessageContent = async rawMessage => {
|
|
8116
|
-
return parseBlockTokens(scanBlockTokens(rawMessage));
|
|
8117
|
-
};
|
|
8118
|
-
|
|
8119
|
-
const emptyMessageContent = [{
|
|
8120
|
-
children: [{
|
|
8121
|
-
text: '',
|
|
8122
|
-
type: 'text'
|
|
8123
|
-
}],
|
|
8124
|
-
type: 'text'
|
|
8125
|
-
}];
|
|
8126
|
-
const parseMathInline = async children => {
|
|
8127
|
-
const nextChildren = [];
|
|
8128
|
-
for (const child of children) {
|
|
8129
|
-
if (child.type === 'math-inline') {
|
|
8130
|
-
const dom = await getMathInlineDom(child);
|
|
8131
|
-
nextChildren.push({
|
|
8132
|
-
dom,
|
|
8133
|
-
type: 'math-inline-dom'
|
|
8134
|
-
});
|
|
8135
|
-
continue;
|
|
8136
|
-
}
|
|
8137
|
-
if (child.type === 'bold') {
|
|
8138
|
-
nextChildren.push({
|
|
8139
|
-
...child,
|
|
8140
|
-
children: await parseMathInline(child.children)
|
|
8141
|
-
});
|
|
8142
|
-
continue;
|
|
8143
|
-
}
|
|
8144
|
-
if (child.type === 'italic') {
|
|
8145
|
-
nextChildren.push({
|
|
8146
|
-
...child,
|
|
8147
|
-
children: await parseMathInline(child.children)
|
|
8148
|
-
});
|
|
8149
|
-
continue;
|
|
8150
|
-
}
|
|
8151
|
-
if (child.type === 'strikethrough') {
|
|
8152
|
-
nextChildren.push({
|
|
8153
|
-
...child,
|
|
8154
|
-
children: await parseMathInline(child.children)
|
|
8155
|
-
});
|
|
8156
|
-
continue;
|
|
8157
|
-
}
|
|
8158
|
-
nextChildren.push(child);
|
|
8159
|
-
}
|
|
8160
|
-
return nextChildren;
|
|
8161
|
-
};
|
|
8162
|
-
const parseMathListItem = async item => {
|
|
8163
|
-
const children = await parseMathInline(item.children);
|
|
8164
|
-
if (!item.nestedItems) {
|
|
8165
|
-
return {
|
|
8166
|
-
...item,
|
|
8167
|
-
children
|
|
8168
|
-
};
|
|
8169
|
-
}
|
|
8170
|
-
const nestedItems = [];
|
|
8171
|
-
for (const nestedItem of item.nestedItems) {
|
|
8172
|
-
nestedItems.push(await parseMathListItem(nestedItem));
|
|
8173
|
-
}
|
|
8174
|
-
return {
|
|
8175
|
-
...item,
|
|
8176
|
-
children,
|
|
8177
|
-
nestedItems
|
|
8178
|
-
};
|
|
8179
|
-
};
|
|
8180
|
-
const parseMathTableCell = async cell => {
|
|
8181
|
-
return {
|
|
8182
|
-
...cell,
|
|
8183
|
-
children: await parseMathInline(cell.children)
|
|
8184
|
-
};
|
|
8185
|
-
};
|
|
8186
|
-
const parseMathNode = async node => {
|
|
8187
|
-
if (node.type === 'math-block') {
|
|
8188
|
-
const dom = await getMathBlockDom(node);
|
|
8189
|
-
return {
|
|
8190
|
-
dom,
|
|
8191
|
-
type: 'math-block-dom'
|
|
8192
|
-
};
|
|
8193
|
-
}
|
|
8194
|
-
if (node.type === 'text' || node.type === 'heading') {
|
|
8195
|
-
return {
|
|
8196
|
-
...node,
|
|
8197
|
-
children: await parseMathInline(node.children)
|
|
8198
|
-
};
|
|
8199
|
-
}
|
|
8200
|
-
if (node.type === 'blockquote') {
|
|
8201
|
-
const children = [];
|
|
8202
|
-
for (const child of node.children) {
|
|
8203
|
-
children.push(await parseMathNode(child));
|
|
8204
|
-
}
|
|
8205
|
-
return {
|
|
8206
|
-
...node,
|
|
8207
|
-
children
|
|
8208
|
-
};
|
|
8209
|
-
}
|
|
8210
|
-
if (node.type === 'ordered-list' || node.type === 'unordered-list') {
|
|
8211
|
-
const items = [];
|
|
8212
|
-
for (const item of node.items) {
|
|
8213
|
-
items.push(await parseMathListItem(item));
|
|
8214
|
-
}
|
|
8215
|
-
return {
|
|
8216
|
-
...node,
|
|
8217
|
-
items
|
|
8218
|
-
};
|
|
8219
|
-
}
|
|
8220
|
-
if (node.type === 'table') {
|
|
8221
|
-
const headers = [];
|
|
8222
|
-
for (const header of node.headers) {
|
|
8223
|
-
headers.push(await parseMathTableCell(header));
|
|
8224
|
-
}
|
|
8225
|
-
const rows = [];
|
|
8226
|
-
for (const row of node.rows) {
|
|
8227
|
-
const cells = [];
|
|
8228
|
-
for (const cell of row.cells) {
|
|
8229
|
-
cells.push(await parseMathTableCell(cell));
|
|
8230
|
-
}
|
|
8231
|
-
rows.push({
|
|
8232
|
-
...row,
|
|
8233
|
-
cells
|
|
8234
|
-
});
|
|
8235
|
-
}
|
|
8236
|
-
return {
|
|
8237
|
-
...node,
|
|
8238
|
-
headers,
|
|
8239
|
-
rows
|
|
8240
|
-
};
|
|
8241
|
-
}
|
|
8242
|
-
return node;
|
|
8243
|
-
};
|
|
8244
|
-
const parseMessage = async rawMessage => {
|
|
8245
|
-
const parsedContent = await parseMessageContent(rawMessage);
|
|
8246
|
-
const nextParsedContent = [];
|
|
8247
|
-
for (const node of parsedContent) {
|
|
8248
|
-
nextParsedContent.push(await parseMathNode(node));
|
|
8249
|
-
}
|
|
8250
|
-
return nextParsedContent;
|
|
7235
|
+
return invoke$7('ChatMessageParsing.parseMessageContents', rawMessages);
|
|
8251
7236
|
};
|
|
7237
|
+
|
|
7238
|
+
const emptyMessageContent = [{
|
|
7239
|
+
children: [{
|
|
7240
|
+
text: '',
|
|
7241
|
+
type: 'text'
|
|
7242
|
+
}],
|
|
7243
|
+
type: 'text'
|
|
7244
|
+
}];
|
|
8252
7245
|
const getParsedMessageContent = (parsedMessages, messageId) => {
|
|
8253
7246
|
const parsedMessage = parsedMessages.find(item => item.id === messageId);
|
|
8254
7247
|
return parsedMessage?.parsedContent;
|
|
@@ -8280,20 +7273,10 @@ const copyParsedMessageContent = (parsedMessages, sourceMessageId, targetMessage
|
|
|
8280
7273
|
return setParsedMessageContent(parsedMessages, targetMessageId, parsedMessage.text, parsedMessage.parsedContent);
|
|
8281
7274
|
};
|
|
8282
7275
|
const parseAndStoreMessageContent = async (parsedMessages, message) => {
|
|
8283
|
-
|
|
8284
|
-
if (existingParsedMessage && existingParsedMessage.text === message.text) {
|
|
8285
|
-
return parsedMessages;
|
|
8286
|
-
}
|
|
8287
|
-
await Promise.resolve();
|
|
8288
|
-
const parsedContent = message.text === '' ? emptyMessageContent : await parseMessage(message.text);
|
|
8289
|
-
return setParsedMessageContent(parsedMessages, message.id, message.text, parsedContent);
|
|
7276
|
+
return parseAndStoreMessagesContentInWorker(parsedMessages, [message]);
|
|
8290
7277
|
};
|
|
8291
7278
|
const parseAndStoreMessagesContent = async (parsedMessages, messages) => {
|
|
8292
|
-
|
|
8293
|
-
for (const message of messages) {
|
|
8294
|
-
nextParsedMessages = await parseAndStoreMessageContent(nextParsedMessages, message);
|
|
8295
|
-
}
|
|
8296
|
-
return nextParsedMessages;
|
|
7279
|
+
return parseAndStoreMessagesContentInWorker(parsedMessages, messages);
|
|
8297
7280
|
};
|
|
8298
7281
|
const getMessagesNeedingParsing = (parsedMessages, messages) => {
|
|
8299
7282
|
return messages.filter(message => {
|
|
@@ -8314,16 +7297,17 @@ const parseAndStoreMessagesContentInWorker = async (parsedMessages, messages) =>
|
|
|
8314
7297
|
}
|
|
8315
7298
|
return nextParsedMessages;
|
|
8316
7299
|
};
|
|
8317
|
-
const parseAndStoreMessagesContentWithWorkerPreference = async (parsedMessages, messages, useChatMessageParsingWorker) => {
|
|
8318
|
-
if (useChatMessageParsingWorker) {
|
|
8319
|
-
return parseAndStoreMessagesContentInWorker(parsedMessages, messages);
|
|
8320
|
-
}
|
|
8321
|
-
return parseAndStoreMessagesContent(parsedMessages, messages);
|
|
8322
|
-
};
|
|
8323
7300
|
const getEmptyMessageContent = () => {
|
|
8324
7301
|
return emptyMessageContent;
|
|
8325
7302
|
};
|
|
8326
7303
|
|
|
7304
|
+
const get = async key => {
|
|
7305
|
+
return getPreference(key);
|
|
7306
|
+
};
|
|
7307
|
+
const update = async settings => {
|
|
7308
|
+
await invoke('Preferences.update', settings);
|
|
7309
|
+
};
|
|
7310
|
+
|
|
8327
7311
|
const setOpenApiApiKey = async (state, openApiApiKey, persist = true) => {
|
|
8328
7312
|
if (persist) {
|
|
8329
7313
|
await update({
|
|
@@ -8738,10 +7722,6 @@ const getNextHandleTextChunkState = (latestState, parsedMessages, sessions) => {
|
|
|
8738
7722
|
};
|
|
8739
7723
|
};
|
|
8740
7724
|
|
|
8741
|
-
const getSelectedSession = (sessions, selectedSessionId) => {
|
|
8742
|
-
return sessions.find(session => session.id === selectedSessionId);
|
|
8743
|
-
};
|
|
8744
|
-
|
|
8745
7725
|
const setAndRerenderHandleTextChunkState = async (uid, previousState, nextState) => {
|
|
8746
7726
|
set(uid, previousState, nextState);
|
|
8747
7727
|
// @ts-ignore
|
|
@@ -9040,6 +8020,11 @@ const withProvisionedBackgroundSession = async (state, session) => {
|
|
|
9040
8020
|
};
|
|
9041
8021
|
};
|
|
9042
8022
|
const handleSubmit = async state => {
|
|
8023
|
+
const authState = state.authEnabled && state.backendUrl ? await syncBackendAuth(state.backendUrl) : undefined;
|
|
8024
|
+
const effectiveState = authState ? {
|
|
8025
|
+
...state,
|
|
8026
|
+
...authState
|
|
8027
|
+
} : state;
|
|
9043
8028
|
const {
|
|
9044
8029
|
agentMode,
|
|
9045
8030
|
aiSessionTitleGenerationEnabled,
|
|
@@ -9073,22 +8058,22 @@ const handleSubmit = async state => {
|
|
|
9073
8058
|
useMockApi,
|
|
9074
8059
|
viewMode,
|
|
9075
8060
|
webSearchEnabled
|
|
9076
|
-
} =
|
|
8061
|
+
} = effectiveState;
|
|
9077
8062
|
const userText = composerValue.trim();
|
|
9078
8063
|
if (!userText) {
|
|
9079
|
-
return
|
|
8064
|
+
return effectiveState;
|
|
9080
8065
|
}
|
|
9081
8066
|
const slashCommand = getSlashCommand(userText);
|
|
9082
8067
|
if (slashCommand) {
|
|
9083
|
-
return executeSlashCommand(
|
|
8068
|
+
return executeSlashCommand(effectiveState, slashCommand);
|
|
9084
8069
|
}
|
|
9085
8070
|
const userTime = new Date().toLocaleTimeString([], {
|
|
9086
8071
|
hour: '2-digit',
|
|
9087
8072
|
minute: '2-digit'
|
|
9088
8073
|
});
|
|
9089
8074
|
const userMessageId = crypto.randomUUID();
|
|
9090
|
-
const composerAttachments =
|
|
9091
|
-
await clearComposerAttachments(
|
|
8075
|
+
const composerAttachments = effectiveState.composerAttachments.length > 0 ? effectiveState.composerAttachments : await getComposerAttachments(effectiveState.selectedSessionId);
|
|
8076
|
+
await clearComposerAttachments(effectiveState.selectedSessionId, composerAttachments.map(attachment => attachment.attachmentId));
|
|
9092
8077
|
const userMessage = {
|
|
9093
8078
|
...(composerAttachments.length > 0 ? {
|
|
9094
8079
|
attachments: composerAttachments
|
|
@@ -9112,7 +8097,7 @@ const handleSubmit = async state => {
|
|
|
9112
8097
|
};
|
|
9113
8098
|
let {
|
|
9114
8099
|
parsedMessages
|
|
9115
|
-
} =
|
|
8100
|
+
} = effectiveState;
|
|
9116
8101
|
parsedMessages = await parseAndStoreMessageContent(parsedMessages, userMessage);
|
|
9117
8102
|
parsedMessages = await parseAndStoreMessageContent(parsedMessages, inProgressAssistantMessage);
|
|
9118
8103
|
let workingSessions = sessions;
|
|
@@ -9146,10 +8131,10 @@ const handleSubmit = async state => {
|
|
|
9146
8131
|
const provisionedSession = await withProvisionedBackgroundSession(state, newSession);
|
|
9147
8132
|
await saveChatSession(provisionedSession);
|
|
9148
8133
|
optimisticState = withUpdatedMessageScrollTop(focusInput({
|
|
9149
|
-
...
|
|
8134
|
+
...effectiveState,
|
|
9150
8135
|
composerAttachments: [],
|
|
9151
8136
|
composerAttachmentsHeight: 0,
|
|
9152
|
-
composerHeight: getMinComposerHeightForState(
|
|
8137
|
+
composerHeight: getMinComposerHeightForState(effectiveState),
|
|
9153
8138
|
composerSelectionEnd: 0,
|
|
9154
8139
|
composerSelectionStart: 0,
|
|
9155
8140
|
composerValue: '',
|
|
@@ -9185,10 +8170,10 @@ const handleSubmit = async state => {
|
|
|
9185
8170
|
await saveChatSession(selectedSession);
|
|
9186
8171
|
}
|
|
9187
8172
|
optimisticState = withUpdatedMessageScrollTop(focusInput({
|
|
9188
|
-
...
|
|
8173
|
+
...effectiveState,
|
|
9189
8174
|
composerAttachments: [],
|
|
9190
8175
|
composerAttachmentsHeight: 0,
|
|
9191
|
-
composerHeight: getMinComposerHeightForState(
|
|
8176
|
+
composerHeight: getMinComposerHeightForState(effectiveState),
|
|
9192
8177
|
composerSelectionEnd: 0,
|
|
9193
8178
|
composerSelectionStart: 0,
|
|
9194
8179
|
composerValue: '',
|
|
@@ -9200,7 +8185,7 @@ const handleSubmit = async state => {
|
|
|
9200
8185
|
}));
|
|
9201
8186
|
optimisticState = withUpdatedChatInputHistory(optimisticState, userText);
|
|
9202
8187
|
}
|
|
9203
|
-
set(
|
|
8188
|
+
set(effectiveState.uid, effectiveState, optimisticState);
|
|
9204
8189
|
// @ts-ignore
|
|
9205
8190
|
await invoke('Chat.rerender');
|
|
9206
8191
|
let handleTextChunkState = {
|
|
@@ -9322,6 +8307,84 @@ const handleClickSend = async state => {
|
|
|
9322
8307
|
return handleSubmit(state);
|
|
9323
8308
|
};
|
|
9324
8309
|
|
|
8310
|
+
const SwitchGitBranch = 'Chat.switchGitBranch';
|
|
8311
|
+
const switchGitBranch = async ({
|
|
8312
|
+
assetDir,
|
|
8313
|
+
branchName,
|
|
8314
|
+
platform,
|
|
8315
|
+
workspaceUri
|
|
8316
|
+
}) => {
|
|
8317
|
+
await executeProvider({
|
|
8318
|
+
assetDir,
|
|
8319
|
+
event: `onCommand:${SwitchGitBranch}`,
|
|
8320
|
+
method: CommandExecute,
|
|
8321
|
+
noProviderFoundMessage: 'No git branch switch command found',
|
|
8322
|
+
params: [SwitchGitBranch, {
|
|
8323
|
+
branchName,
|
|
8324
|
+
workspaceUri
|
|
8325
|
+
}],
|
|
8326
|
+
platform
|
|
8327
|
+
});
|
|
8328
|
+
};
|
|
8329
|
+
|
|
8330
|
+
const getGitBranchSwitchErrorMessage = (branchName, error) => {
|
|
8331
|
+
if (error instanceof Error && error.message) {
|
|
8332
|
+
return `Failed to switch to branch "${branchName}". ${error.message}`;
|
|
8333
|
+
}
|
|
8334
|
+
return `Failed to switch to branch "${branchName}".`;
|
|
8335
|
+
};
|
|
8336
|
+
const handleGitBranchChange = async (state, branchName) => {
|
|
8337
|
+
if (!branchName) {
|
|
8338
|
+
return state;
|
|
8339
|
+
}
|
|
8340
|
+
const selectedSession = getSelectedSession(state.sessions, state.selectedSessionId);
|
|
8341
|
+
const workspaceUri = getWorkspaceUri$1(state, selectedSession);
|
|
8342
|
+
if (!workspaceUri) {
|
|
8343
|
+
return {
|
|
8344
|
+
...state,
|
|
8345
|
+
gitBranchPickerErrorMessage: 'No workspace is selected.',
|
|
8346
|
+
gitBranchPickerOpen: true
|
|
8347
|
+
};
|
|
8348
|
+
}
|
|
8349
|
+
try {
|
|
8350
|
+
await switchGitBranch({
|
|
8351
|
+
assetDir: state.assetDir,
|
|
8352
|
+
branchName,
|
|
8353
|
+
platform: state.platform,
|
|
8354
|
+
workspaceUri
|
|
8355
|
+
});
|
|
8356
|
+
const updatedSessions = state.sessions.map(session => {
|
|
8357
|
+
if (session.id !== state.selectedSessionId) {
|
|
8358
|
+
return session;
|
|
8359
|
+
}
|
|
8360
|
+
return {
|
|
8361
|
+
...session,
|
|
8362
|
+
branchName
|
|
8363
|
+
};
|
|
8364
|
+
});
|
|
8365
|
+
const updatedSelectedSession = updatedSessions.find(session => session.id === state.selectedSessionId);
|
|
8366
|
+
if (updatedSelectedSession) {
|
|
8367
|
+
await saveChatSession(updatedSelectedSession);
|
|
8368
|
+
}
|
|
8369
|
+
return {
|
|
8370
|
+
...state,
|
|
8371
|
+
gitBranches: state.gitBranches.map(branch => ({
|
|
8372
|
+
...branch,
|
|
8373
|
+
current: branch.name === branchName
|
|
8374
|
+
})),
|
|
8375
|
+
gitBranchPickerErrorMessage: '',
|
|
8376
|
+
gitBranchPickerOpen: false,
|
|
8377
|
+
sessions: updatedSessions
|
|
8378
|
+
};
|
|
8379
|
+
} catch (error) {
|
|
8380
|
+
return {
|
|
8381
|
+
...state,
|
|
8382
|
+
gitBranchPickerErrorMessage: getGitBranchSwitchErrorMessage(branchName, error),
|
|
8383
|
+
gitBranchPickerOpen: true
|
|
8384
|
+
};
|
|
8385
|
+
}
|
|
8386
|
+
};
|
|
8387
|
+
|
|
9325
8388
|
const setReasoningEffort = (state, reasoningEffort) => {
|
|
9326
8389
|
return {
|
|
9327
8390
|
...state,
|
|
@@ -9452,7 +8515,7 @@ const selectSession = async (state, id) => {
|
|
|
9452
8515
|
}
|
|
9453
8516
|
return loadedSession;
|
|
9454
8517
|
});
|
|
9455
|
-
return {
|
|
8518
|
+
return refreshGitBranchPickerVisibility({
|
|
9456
8519
|
...state,
|
|
9457
8520
|
composerAttachments,
|
|
9458
8521
|
composerAttachmentsHeight: getComposerAttachmentsHeight(composerAttachments, width),
|
|
@@ -9461,7 +8524,7 @@ const selectSession = async (state, id) => {
|
|
|
9461
8524
|
selectedSessionId: id,
|
|
9462
8525
|
sessions: hydratedSessions,
|
|
9463
8526
|
viewMode: viewMode === 'chat-focus' ? 'chat-focus' : 'detail'
|
|
9464
|
-
};
|
|
8527
|
+
});
|
|
9465
8528
|
};
|
|
9466
8529
|
|
|
9467
8530
|
const startRename = (state, id) => {
|
|
@@ -9491,15 +8554,17 @@ const toggleChatFocusMode = async state => {
|
|
|
9491
8554
|
if (viewMode === 'chat-focus') {
|
|
9492
8555
|
return {
|
|
9493
8556
|
...state,
|
|
8557
|
+
gitBranchPickerErrorMessage: '',
|
|
8558
|
+
gitBranchPickerOpen: false,
|
|
9494
8559
|
viewMode: lastNormalViewMode
|
|
9495
8560
|
};
|
|
9496
8561
|
}
|
|
9497
8562
|
if (viewMode === 'list' || viewMode === 'detail') {
|
|
9498
|
-
return {
|
|
8563
|
+
return refreshGitBranchPickerVisibility({
|
|
9499
8564
|
...state,
|
|
9500
8565
|
lastNormalViewMode: viewMode,
|
|
9501
8566
|
viewMode: 'chat-focus'
|
|
9502
|
-
};
|
|
8567
|
+
});
|
|
9503
8568
|
}
|
|
9504
8569
|
return state;
|
|
9505
8570
|
};
|
|
@@ -9629,6 +8694,11 @@ const handleClick = async (state, name, id = '', eventX = 0, eventY = 0) => {
|
|
|
9629
8694
|
visibleModels: state.models
|
|
9630
8695
|
};
|
|
9631
8696
|
}
|
|
8697
|
+
case isGitBranchPickerItemInputName(name):
|
|
8698
|
+
{
|
|
8699
|
+
const branchName = getGitBranchFromGitBranchPickerItemInputName(name);
|
|
8700
|
+
return handleGitBranchChange(state, branchName);
|
|
8701
|
+
}
|
|
9632
8702
|
case isAgentModePickerItemInputName(name):
|
|
9633
8703
|
{
|
|
9634
8704
|
const agentMode = getAgentModeFromAgentModePickerItemInputName(name);
|
|
@@ -9753,6 +8823,71 @@ const handleClickFileName = async (state, uri) => {
|
|
|
9753
8823
|
return state;
|
|
9754
8824
|
};
|
|
9755
8825
|
|
|
8826
|
+
const getBranchPickerErrorMessage = error => {
|
|
8827
|
+
if (error instanceof Error && error.message) {
|
|
8828
|
+
return error.message;
|
|
8829
|
+
}
|
|
8830
|
+
return 'Failed to load git branches.';
|
|
8831
|
+
};
|
|
8832
|
+
const openGitBranchPicker = async state => {
|
|
8833
|
+
const visibleState = await refreshGitBranchPickerVisibility(state);
|
|
8834
|
+
const selectedSession = getSelectedSession(visibleState.sessions, visibleState.selectedSessionId);
|
|
8835
|
+
const fallbackBranchName = selectedSession?.branchName || '';
|
|
8836
|
+
if (visibleState.viewMode !== 'chat-focus' || !visibleState.gitBranchPickerVisible && !fallbackBranchName) {
|
|
8837
|
+
return {
|
|
8838
|
+
...visibleState,
|
|
8839
|
+
gitBranchPickerOpen: false
|
|
8840
|
+
};
|
|
8841
|
+
}
|
|
8842
|
+
const workspaceUri = getWorkspaceUri$1(visibleState, selectedSession);
|
|
8843
|
+
if (!workspaceUri) {
|
|
8844
|
+
return {
|
|
8845
|
+
...visibleState,
|
|
8846
|
+
gitBranches: [],
|
|
8847
|
+
gitBranchPickerErrorMessage: 'No workspace is selected.',
|
|
8848
|
+
gitBranchPickerOpen: true
|
|
8849
|
+
};
|
|
8850
|
+
}
|
|
8851
|
+
try {
|
|
8852
|
+
const gitBranches = await getGitBranches(workspaceUri);
|
|
8853
|
+
return {
|
|
8854
|
+
...visibleState,
|
|
8855
|
+
agentModePickerOpen: false,
|
|
8856
|
+
gitBranches,
|
|
8857
|
+
gitBranchPickerErrorMessage: '',
|
|
8858
|
+
gitBranchPickerOpen: true,
|
|
8859
|
+
modelPickerOpen: false,
|
|
8860
|
+
modelPickerSearchValue: '',
|
|
8861
|
+
reasoningEffortPickerOpen: false,
|
|
8862
|
+
runModePickerOpen: false,
|
|
8863
|
+
visibleModels: visibleState.models
|
|
8864
|
+
};
|
|
8865
|
+
} catch (error) {
|
|
8866
|
+
return {
|
|
8867
|
+
...visibleState,
|
|
8868
|
+
agentModePickerOpen: false,
|
|
8869
|
+
gitBranches: fallbackBranchName ? [{
|
|
8870
|
+
current: true,
|
|
8871
|
+
name: fallbackBranchName
|
|
8872
|
+
}] : [],
|
|
8873
|
+
gitBranchPickerErrorMessage: getBranchPickerErrorMessage(error),
|
|
8874
|
+
gitBranchPickerOpen: true,
|
|
8875
|
+
modelPickerOpen: false,
|
|
8876
|
+
modelPickerSearchValue: '',
|
|
8877
|
+
reasoningEffortPickerOpen: false,
|
|
8878
|
+
runModePickerOpen: false,
|
|
8879
|
+
visibleModels: visibleState.models
|
|
8880
|
+
};
|
|
8881
|
+
}
|
|
8882
|
+
};
|
|
8883
|
+
|
|
8884
|
+
const handleClickGitBranchPickerToggle = async state => {
|
|
8885
|
+
if (state.gitBranchPickerOpen) {
|
|
8886
|
+
return closeGitBranchPicker(state);
|
|
8887
|
+
}
|
|
8888
|
+
return openGitBranchPicker(state);
|
|
8889
|
+
};
|
|
8890
|
+
|
|
9756
8891
|
const handleClickModelPickerList = async (state, eventY) => {
|
|
9757
8892
|
const {
|
|
9758
8893
|
height,
|
|
@@ -10615,19 +9750,6 @@ const getSavedSessions = savedState => {
|
|
|
10615
9750
|
return sessions;
|
|
10616
9751
|
};
|
|
10617
9752
|
|
|
10618
|
-
const getSavedSystemPrompt = savedState => {
|
|
10619
|
-
if (!isObject$1(savedState)) {
|
|
10620
|
-
return undefined;
|
|
10621
|
-
}
|
|
10622
|
-
const {
|
|
10623
|
-
systemPrompt
|
|
10624
|
-
} = savedState;
|
|
10625
|
-
if (typeof systemPrompt !== 'string') {
|
|
10626
|
-
return undefined;
|
|
10627
|
-
}
|
|
10628
|
-
return systemPrompt;
|
|
10629
|
-
};
|
|
10630
|
-
|
|
10631
9753
|
const getSavedViewMode = savedState => {
|
|
10632
9754
|
if (!isObject$1(savedState)) {
|
|
10633
9755
|
return undefined;
|
|
@@ -10659,24 +9781,6 @@ const loadAuthEnabled = async () => {
|
|
|
10659
9781
|
}
|
|
10660
9782
|
};
|
|
10661
9783
|
|
|
10662
|
-
const loadBackendAccessToken = async () => {
|
|
10663
|
-
try {
|
|
10664
|
-
const savedAccessToken = await get('secrets.chatBackendAccessToken');
|
|
10665
|
-
return typeof savedAccessToken === 'string' ? savedAccessToken : '';
|
|
10666
|
-
} catch {
|
|
10667
|
-
return '';
|
|
10668
|
-
}
|
|
10669
|
-
};
|
|
10670
|
-
|
|
10671
|
-
const loadBackendRefreshToken = async () => {
|
|
10672
|
-
try {
|
|
10673
|
-
const savedRefreshToken = await get('secrets.chatBackendRefreshToken');
|
|
10674
|
-
return typeof savedRefreshToken === 'string' ? savedRefreshToken : '';
|
|
10675
|
-
} catch {
|
|
10676
|
-
return '';
|
|
10677
|
-
}
|
|
10678
|
-
};
|
|
10679
|
-
|
|
10680
9784
|
const loadBackendUrl = async () => {
|
|
10681
9785
|
try {
|
|
10682
9786
|
const savedBackendUrl = await get('chat.backendUrl');
|
|
@@ -10820,15 +9924,6 @@ const loadUseChatMathWorker = async () => {
|
|
|
10820
9924
|
}
|
|
10821
9925
|
};
|
|
10822
9926
|
|
|
10823
|
-
const loadUseChatMessageParsingWorker = async () => {
|
|
10824
|
-
try {
|
|
10825
|
-
const savedUseChatMessageParsingWorker = await get('chatView.useChatMessageParsingWorker');
|
|
10826
|
-
return typeof savedUseChatMessageParsingWorker === 'boolean' ? savedUseChatMessageParsingWorker : false;
|
|
10827
|
-
} catch {
|
|
10828
|
-
return false;
|
|
10829
|
-
}
|
|
10830
|
-
};
|
|
10831
|
-
|
|
10832
9927
|
const loadUseChatNetworkWorkerForRequests = async () => {
|
|
10833
9928
|
try {
|
|
10834
9929
|
const savedUseChatNetworkWorkerForRequests = await get('chatView.useChatNetworkWorkerForRequests');
|
|
@@ -10857,12 +9952,10 @@ const loadVoiceDictationEnabled = async () => {
|
|
|
10857
9952
|
};
|
|
10858
9953
|
|
|
10859
9954
|
const loadPreferences = async () => {
|
|
10860
|
-
const [aiSessionTitleGenerationEnabled,
|
|
9955
|
+
const [aiSessionTitleGenerationEnabled, authEnabled, backendUrl, chatHistoryEnabled, composerDropEnabled, openApiApiKey, openRouterApiKey, emitStreamingFunctionCallEvents, reasoningPickerEnabled, scrollDownButtonEnabled, searchEnabled, streamingEnabled, todoListToolEnabled, toolEnablement, passIncludeObfuscation, useChatCoordinatorWorker, useChatMathWorker, useChatNetworkWorkerForRequests, useChatToolWorker, voiceDictationEnabled] = await Promise.all([loadAiSessionTitleGenerationEnabled(), loadAuthEnabled(), loadBackendUrl(), loadChatHistoryEnabled(), loadComposerDropEnabled(), loadOpenApiApiKey(), loadOpenRouterApiKey(), loadEmitStreamingFunctionCallEvents(), loadReasoningPickerEnabled(), loadScrollDownButtonEnabled(), loadSearchEnabled(), loadStreamingEnabled(), loadTodoListToolEnabled(), loadToolEnablement(), loadPassIncludeObfuscation(), loadUseChatCoordinatorWorker(), loadUseChatMathWorker(), loadUseChatNetworkWorkerForRequests(), loadUseChatToolWorker(), loadVoiceDictationEnabled()]);
|
|
10861
9956
|
return {
|
|
10862
9957
|
aiSessionTitleGenerationEnabled,
|
|
10863
|
-
authAccessToken,
|
|
10864
9958
|
authEnabled,
|
|
10865
|
-
authRefreshToken,
|
|
10866
9959
|
backendUrl,
|
|
10867
9960
|
chatHistoryEnabled,
|
|
10868
9961
|
composerDropEnabled,
|
|
@@ -10878,7 +9971,6 @@ const loadPreferences = async () => {
|
|
|
10878
9971
|
toolEnablement,
|
|
10879
9972
|
useChatCoordinatorWorker,
|
|
10880
9973
|
useChatMathWorker,
|
|
10881
|
-
useChatMessageParsingWorker,
|
|
10882
9974
|
useChatNetworkWorkerForRequests,
|
|
10883
9975
|
useChatToolWorker,
|
|
10884
9976
|
voiceDictationEnabled
|
|
@@ -10934,9 +10026,7 @@ const loadContent = async (state, savedState) => {
|
|
|
10934
10026
|
const [composerSelectionStart, composerSelectionEnd] = savedComposerSelection ?? [state.composerSelectionStart, state.composerSelectionEnd];
|
|
10935
10027
|
const {
|
|
10936
10028
|
aiSessionTitleGenerationEnabled,
|
|
10937
|
-
authAccessToken,
|
|
10938
10029
|
authEnabled,
|
|
10939
|
-
authRefreshToken,
|
|
10940
10030
|
backendUrl,
|
|
10941
10031
|
chatHistoryEnabled,
|
|
10942
10032
|
composerDropEnabled,
|
|
@@ -10952,11 +10042,11 @@ const loadContent = async (state, savedState) => {
|
|
|
10952
10042
|
toolEnablement,
|
|
10953
10043
|
useChatCoordinatorWorker,
|
|
10954
10044
|
useChatMathWorker,
|
|
10955
|
-
useChatMessageParsingWorker,
|
|
10956
10045
|
useChatNetworkWorkerForRequests,
|
|
10957
10046
|
useChatToolWorker,
|
|
10958
10047
|
voiceDictationEnabled
|
|
10959
10048
|
} = await loadPreferences();
|
|
10049
|
+
const authState = authEnabled && backendUrl ? await syncBackendAuth(backendUrl) : getLoggedOutBackendAuthState();
|
|
10960
10050
|
const legacySavedSessions = getSavedSessions(savedState);
|
|
10961
10051
|
const storedSessions = await listChatSessions();
|
|
10962
10052
|
let sessions = storedSessions;
|
|
@@ -10992,7 +10082,6 @@ const loadContent = async (state, savedState) => {
|
|
|
10992
10082
|
const projectExpandedIds = (savedProjectExpandedIds || state.projectExpandedIds).filter(id => projects.some(project => project.id === id));
|
|
10993
10083
|
const reasoningEffort = getSavedReasoningEffort(savedState) ?? state.reasoningEffort;
|
|
10994
10084
|
const selectedModelId = state.models.some(model => model.id === preferredModelId) ? preferredModelId : state.models[0]?.id || '';
|
|
10995
|
-
const systemPrompt = getSavedSystemPrompt(savedState) ?? state.systemPrompt;
|
|
10996
10085
|
const visibleModels = getVisibleModels(state.models, '');
|
|
10997
10086
|
const visibleSessions = getVisibleSessions(sessions, selectedProjectId);
|
|
10998
10087
|
const selectedSessionId = visibleSessions.some(session => session.id === preferredSessionId) ? preferredSessionId : visibleSessions[0]?.id || '';
|
|
@@ -11002,21 +10091,20 @@ const loadContent = async (state, savedState) => {
|
|
|
11002
10091
|
parsedMessages
|
|
11003
10092
|
} = state;
|
|
11004
10093
|
for (const session of sessions) {
|
|
11005
|
-
parsedMessages = await
|
|
10094
|
+
parsedMessages = await parseAndStoreMessagesContent(parsedMessages, session.messages);
|
|
11006
10095
|
}
|
|
11007
10096
|
const preferredViewMode = savedViewMode || state.viewMode;
|
|
11008
10097
|
const savedLastNormalViewMode = getSavedLastNormalViewMode(savedState);
|
|
11009
10098
|
const lastNormalViewMode = savedLastNormalViewMode || (preferredViewMode === 'detail' ? 'detail' : state.lastNormalViewMode);
|
|
11010
10099
|
const viewMode = sessions.length === 0 || !selectedSessionId ? 'list' : preferredViewMode;
|
|
11011
|
-
|
|
10100
|
+
const nextState = {
|
|
11012
10101
|
...state,
|
|
11013
10102
|
agentMode,
|
|
11014
10103
|
agentModePickerOpen: false,
|
|
11015
10104
|
aiSessionTitleGenerationEnabled,
|
|
11016
|
-
authAccessToken,
|
|
10105
|
+
authAccessToken: authState.authAccessToken,
|
|
11017
10106
|
authEnabled,
|
|
11018
|
-
|
|
11019
|
-
authStatus: authAccessToken ? 'signed-in' : 'signed-out',
|
|
10107
|
+
authErrorMessage: authState.authErrorMessage,
|
|
11020
10108
|
backendUrl,
|
|
11021
10109
|
chatHistoryEnabled,
|
|
11022
10110
|
chatListScrollTop,
|
|
@@ -11057,18 +10145,21 @@ const loadContent = async (state, savedState) => {
|
|
|
11057
10145
|
selectedSessionId,
|
|
11058
10146
|
sessions,
|
|
11059
10147
|
streamingEnabled,
|
|
11060
|
-
systemPrompt,
|
|
11061
10148
|
todoListToolEnabled,
|
|
11062
10149
|
toolEnablement,
|
|
11063
10150
|
useChatCoordinatorWorker,
|
|
11064
10151
|
useChatMathWorker,
|
|
11065
|
-
useChatMessageParsingWorker,
|
|
11066
10152
|
useChatNetworkWorkerForRequests,
|
|
11067
10153
|
useChatToolWorker,
|
|
10154
|
+
userName: authState.userName,
|
|
10155
|
+
userState: authState.userState,
|
|
10156
|
+
userSubscriptionPlan: authState.userSubscriptionPlan,
|
|
10157
|
+
userUsedTokens: authState.userUsedTokens,
|
|
11068
10158
|
viewMode,
|
|
11069
10159
|
visibleModels,
|
|
11070
10160
|
voiceDictationEnabled
|
|
11071
10161
|
};
|
|
10162
|
+
return refreshGitBranchPickerVisibility(nextState);
|
|
11072
10163
|
};
|
|
11073
10164
|
|
|
11074
10165
|
const isObject = value => {
|
|
@@ -11158,33 +10249,50 @@ const openMockProject = async (state, projectId, projectName, projectUri) => {
|
|
|
11158
10249
|
};
|
|
11159
10250
|
};
|
|
11160
10251
|
|
|
11161
|
-
const
|
|
10252
|
+
const applySessionOptions = (session, options) => {
|
|
10253
|
+
if (!options) {
|
|
10254
|
+
return session;
|
|
10255
|
+
}
|
|
10256
|
+
return {
|
|
10257
|
+
...session,
|
|
10258
|
+
...(options.branchName ? {
|
|
10259
|
+
branchName: options.branchName
|
|
10260
|
+
} : {}),
|
|
10261
|
+
...(options.projectId ? {
|
|
10262
|
+
projectId: options.projectId
|
|
10263
|
+
} : {}),
|
|
10264
|
+
...(options.workspaceUri ? {
|
|
10265
|
+
workspaceUri: options.workspaceUri
|
|
10266
|
+
} : {})
|
|
10267
|
+
};
|
|
10268
|
+
};
|
|
10269
|
+
const openMockSession = async (state, mockSessionId, mockChatMessages, options) => {
|
|
11162
10270
|
const {
|
|
11163
10271
|
sessions: currentSessions
|
|
11164
10272
|
} = state;
|
|
11165
10273
|
if (!mockSessionId) {
|
|
11166
10274
|
return state;
|
|
11167
10275
|
}
|
|
11168
|
-
const parsedMessages = await
|
|
10276
|
+
const parsedMessages = await parseAndStoreMessagesContent(state.parsedMessages, mockChatMessages);
|
|
11169
10277
|
const existingSession = currentSessions.find(session => session.id === mockSessionId);
|
|
11170
10278
|
const sessions = existingSession ? currentSessions.map(session => {
|
|
11171
10279
|
if (session.id !== mockSessionId) {
|
|
11172
10280
|
return session;
|
|
11173
10281
|
}
|
|
11174
|
-
return {
|
|
10282
|
+
return applySessionOptions({
|
|
11175
10283
|
...session,
|
|
11176
10284
|
messages: mockChatMessages
|
|
11177
|
-
};
|
|
11178
|
-
}) : [...currentSessions, {
|
|
10285
|
+
}, options);
|
|
10286
|
+
}) : [...currentSessions, applySessionOptions({
|
|
11179
10287
|
id: mockSessionId,
|
|
11180
10288
|
messages: mockChatMessages,
|
|
11181
10289
|
title: mockSessionId
|
|
11182
|
-
}];
|
|
10290
|
+
}, options)];
|
|
11183
10291
|
const selectedSession = sessions.find(session => session.id === mockSessionId);
|
|
11184
10292
|
if (selectedSession) {
|
|
11185
10293
|
await saveChatSession(selectedSession);
|
|
11186
10294
|
}
|
|
11187
|
-
return {
|
|
10295
|
+
return refreshGitBranchPickerVisibility({
|
|
11188
10296
|
...state,
|
|
11189
10297
|
composerAttachments: [],
|
|
11190
10298
|
composerAttachmentsHeight: 0,
|
|
@@ -11193,7 +10301,7 @@ const openMockSession = async (state, mockSessionId, mockChatMessages) => {
|
|
|
11193
10301
|
selectedSessionId: mockSessionId,
|
|
11194
10302
|
sessions,
|
|
11195
10303
|
viewMode: 'detail'
|
|
11196
|
-
};
|
|
10304
|
+
});
|
|
11197
10305
|
};
|
|
11198
10306
|
|
|
11199
10307
|
const pasteInput = async state => {
|
|
@@ -11306,6 +10414,10 @@ const getCss = (composerHeight, composerAttachmentsHeight, modelPickerHeight, li
|
|
|
11306
10414
|
color: var(--vscode-errorForeground, var(--vscode-foreground));
|
|
11307
10415
|
}
|
|
11308
10416
|
|
|
10417
|
+
.InputInvalid{
|
|
10418
|
+
border-color: var(--InputValidationErrorBorder, red);
|
|
10419
|
+
}
|
|
10420
|
+
|
|
11309
10421
|
.ChatComposerAttachmentTextFile{
|
|
11310
10422
|
border-color: var(--vscode-charts-green, var(--vscode-widget-border, var(--vscode-panel-border)));
|
|
11311
10423
|
}
|
|
@@ -11360,6 +10472,23 @@ const getCss = (composerHeight, composerAttachmentsHeight, modelPickerHeight, li
|
|
|
11360
10472
|
border-color: var(--vscode-charts-green, var(--vscode-widget-border, var(--vscode-panel-border)));
|
|
11361
10473
|
}
|
|
11362
10474
|
|
|
10475
|
+
.ChatImageMessageContent{
|
|
10476
|
+
padding: 6px;
|
|
10477
|
+
border: 1px solid var(--vscode-widget-border, var(--vscode-panel-border));
|
|
10478
|
+
border-radius: 12px;
|
|
10479
|
+
background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
|
|
10480
|
+
overflow: hidden;
|
|
10481
|
+
}
|
|
10482
|
+
|
|
10483
|
+
.ChatMessageImage{
|
|
10484
|
+
display: block;
|
|
10485
|
+
max-width: min(320px, 100%);
|
|
10486
|
+
max-height: min(320px, calc(100vh - 220px));
|
|
10487
|
+
border-radius: 8px;
|
|
10488
|
+
object-fit: contain;
|
|
10489
|
+
background: color-mix(in srgb, var(--vscode-editor-background) 88%, black);
|
|
10490
|
+
}
|
|
10491
|
+
|
|
11363
10492
|
.Chat{
|
|
11364
10493
|
position: relative;
|
|
11365
10494
|
}
|
|
@@ -11397,12 +10526,24 @@ const getCss = (composerHeight, composerAttachmentsHeight, modelPickerHeight, li
|
|
|
11397
10526
|
color: var(--vscode-errorForeground, var(--vscode-foreground));
|
|
11398
10527
|
}
|
|
11399
10528
|
|
|
11400
|
-
.
|
|
10529
|
+
.ChatSelect{
|
|
11401
10530
|
position: relative;
|
|
11402
10531
|
min-width: 0;
|
|
11403
10532
|
|
|
11404
10533
|
}
|
|
11405
10534
|
|
|
10535
|
+
.ChatModelPickerItem{
|
|
10536
|
+
display: flex;
|
|
10537
|
+
}
|
|
10538
|
+
|
|
10539
|
+
.ChatGitBranchPickerMessage{
|
|
10540
|
+
padding: 6px 8px;
|
|
10541
|
+
}
|
|
10542
|
+
|
|
10543
|
+
.ChatGitBranchPickerErrorMessage{
|
|
10544
|
+
color: var(--vscode-errorForeground, var(--vscode-foreground));
|
|
10545
|
+
}
|
|
10546
|
+
|
|
11406
10547
|
.RunModePickerContainer{
|
|
11407
10548
|
display: flex;
|
|
11408
10549
|
justify-content: flex-end;
|
|
@@ -11507,13 +10648,10 @@ const getCss = (composerHeight, composerAttachmentsHeight, modelPickerHeight, li
|
|
|
11507
10648
|
.ChatFocus .ChatMessages > .Message > .ChatMessageContent{
|
|
11508
10649
|
max-inline-size: 100%;
|
|
11509
10650
|
}
|
|
11510
|
-
|
|
11511
|
-
|
|
11512
10651
|
.Viewlet.Chat.ChatFocus{
|
|
11513
10652
|
display: flex !important;
|
|
11514
10653
|
min-width: 0;
|
|
11515
10654
|
}
|
|
11516
|
-
|
|
11517
10655
|
.ChatFocusMainArea{
|
|
11518
10656
|
display: flex;
|
|
11519
10657
|
flex: 1;
|
|
@@ -11526,6 +10664,84 @@ const getCss = (composerHeight, composerAttachmentsHeight, modelPickerHeight, li
|
|
|
11526
10664
|
min-height: 0;
|
|
11527
10665
|
}
|
|
11528
10666
|
|
|
10667
|
+
.ChatModelPickerList {
|
|
10668
|
+
display: flex;
|
|
10669
|
+
contain: content;
|
|
10670
|
+
}
|
|
10671
|
+
|
|
10672
|
+
|
|
10673
|
+
.ChatSelect:hover{
|
|
10674
|
+
background: var(--vscode-toolbar-hoverBackground, color-mix(in srgb, var(--vscode-editor-background) 80%, white));
|
|
10675
|
+
color: var(--vscode-foreground);
|
|
10676
|
+
}
|
|
10677
|
+
|
|
10678
|
+
.SelectLabel {
|
|
10679
|
+
width: auto;
|
|
10680
|
+
max-width: 100%;
|
|
10681
|
+
min-width: 0;
|
|
10682
|
+
overflow: hidden;
|
|
10683
|
+
white-space: nowrap;
|
|
10684
|
+
text-overflow: ellipsis;
|
|
10685
|
+
}
|
|
10686
|
+
|
|
10687
|
+
|
|
10688
|
+
.ChatSelect {
|
|
10689
|
+
display: flex;
|
|
10690
|
+
gap: 4px;
|
|
10691
|
+
border: none;
|
|
10692
|
+
border-radius: 4px;
|
|
10693
|
+
background: transparent;
|
|
10694
|
+
color: var(--vscode-descriptionForeground, var(--vscode-disabledForeground));
|
|
10695
|
+
padding: 0 !important;
|
|
10696
|
+
}
|
|
10697
|
+
|
|
10698
|
+
|
|
10699
|
+
|
|
10700
|
+
|
|
10701
|
+
|
|
10702
|
+
|
|
10703
|
+
|
|
10704
|
+
|
|
10705
|
+
|
|
10706
|
+
.SelectLabel {
|
|
10707
|
+
width: auto;
|
|
10708
|
+
overflow: hidden;
|
|
10709
|
+
white-space: nowrap;
|
|
10710
|
+
text-overflow: ellipsis;
|
|
10711
|
+
|
|
10712
|
+
}
|
|
10713
|
+
|
|
10714
|
+
|
|
10715
|
+
.ChatSelect .MaskIcon {
|
|
10716
|
+
|
|
10717
|
+
width: 10px;
|
|
10718
|
+
height: 10px;
|
|
10719
|
+
pointer-events: none;
|
|
10720
|
+
}
|
|
10721
|
+
|
|
10722
|
+
|
|
10723
|
+
.ChatModelPickerList {
|
|
10724
|
+
flex-direction: column;
|
|
10725
|
+
flex: 1;
|
|
10726
|
+
display: flex;
|
|
10727
|
+
contain: strict;
|
|
10728
|
+
|
|
10729
|
+
}
|
|
10730
|
+
|
|
10731
|
+
|
|
10732
|
+
.ChatModelPickerItem {
|
|
10733
|
+
contain: strict;
|
|
10734
|
+
flex-shrink:0; /* TODO why?? */
|
|
10735
|
+
}
|
|
10736
|
+
|
|
10737
|
+
|
|
10738
|
+
.ChatModelPickerHeader {
|
|
10739
|
+
height: 40px;
|
|
10740
|
+
contain: strict;
|
|
10741
|
+
|
|
10742
|
+
}
|
|
10743
|
+
|
|
10744
|
+
|
|
11529
10745
|
`;
|
|
11530
10746
|
return `${baseCss}
|
|
11531
10747
|
|
|
@@ -11618,6 +10834,160 @@ const renderFocusContext = (oldState, newState) => {
|
|
|
11618
10834
|
return [SetFocusContext, newState.uid, FocusChatInput];
|
|
11619
10835
|
};
|
|
11620
10836
|
|
|
10837
|
+
const Actions = 'Actions';
|
|
10838
|
+
const Button = 'Button';
|
|
10839
|
+
const ButtonPrimary = 'ButtonPrimary';
|
|
10840
|
+
const ButtonSecondary = 'ButtonSecondary';
|
|
10841
|
+
const Chat = 'Chat';
|
|
10842
|
+
const ChatActions = 'ChatActions';
|
|
10843
|
+
const ChatAuthError = 'ChatAuthError';
|
|
10844
|
+
const ChatFocus = 'ChatFocus';
|
|
10845
|
+
const ChatFocusActions = 'ChatFocusActions';
|
|
10846
|
+
const ChatFocusHeader = 'ChatFocusHeader';
|
|
10847
|
+
const ChatFocusMainArea = 'ChatFocusMainArea';
|
|
10848
|
+
const ChatFocusProject = 'ChatFocusProject';
|
|
10849
|
+
const ChatGitBranchPicker = 'ChatGitBranchPicker';
|
|
10850
|
+
const ChatGitBranchPickerErrorMessage = 'ChatGitBranchPickerErrorMessage';
|
|
10851
|
+
const ChatGitBranchPickerMessage = 'ChatGitBranchPickerMessage';
|
|
10852
|
+
const ChatHeader = 'ChatHeader';
|
|
10853
|
+
const ChatHeaderAuth = 'ChatHeaderAuth';
|
|
10854
|
+
const ChatHeaderAuthName = 'ChatHeaderAuthName';
|
|
10855
|
+
const ChatHeaderLabel = 'ChatHeaderLabel';
|
|
10856
|
+
const ChatInputBox = 'ChatInputBox';
|
|
10857
|
+
const ChatList = 'ChatList';
|
|
10858
|
+
const ChatListEmpty = 'ChatListEmpty';
|
|
10859
|
+
const ChatListItem = 'ChatListItem';
|
|
10860
|
+
const ChatListItemFocused = 'ChatListItemFocused';
|
|
10861
|
+
const ChatListItemLabel = 'ChatListItemLabel';
|
|
10862
|
+
const ChatListItemStatusFinished = 'ChatListItemStatusFinished';
|
|
10863
|
+
const ChatListItemStatusIcon = 'ChatListItemStatusIcon';
|
|
10864
|
+
const ChatListItemStatusInProgress = 'ChatListItemStatusInProgress';
|
|
10865
|
+
const ChatListItemStatusRow = 'ChatListItemStatusRow';
|
|
10866
|
+
const ChatListItemStatusStopped = 'ChatListItemStatusStopped';
|
|
10867
|
+
const ChatMessageContent = 'ChatMessageContent';
|
|
10868
|
+
const ChatImageMessageContent = 'ChatImageMessageContent';
|
|
10869
|
+
const ChatMessageLink = 'ChatMessageLink';
|
|
10870
|
+
const ChatModelPicker = 'ChatModelPicker';
|
|
10871
|
+
const ChatModelPickerContainer = 'ChatModelPickerContainer';
|
|
10872
|
+
const ChatModelPickerHeader = 'ChatModelPickerHeader';
|
|
10873
|
+
const ChatModelPickerItem = 'ChatModelPickerItem';
|
|
10874
|
+
const ChatModelPickerItemLabel = 'ChatModelPickerItemLabel';
|
|
10875
|
+
const ChatModelPickerItemSelected = 'ChatModelPickerItemSelected';
|
|
10876
|
+
const ChatModelPickerItemUsageCost = 'ChatModelPickerItemUsageCost';
|
|
10877
|
+
const ChatModelPickerList = 'ChatModelPickerList';
|
|
10878
|
+
const ChatName = 'ChatName';
|
|
10879
|
+
const ChatOverlays = 'ChatOverlays';
|
|
10880
|
+
const ChatOrderedList = 'ChatOrderedList';
|
|
10881
|
+
const ChatOrderedListItem = 'ChatOrderedListItem';
|
|
10882
|
+
const ChatOrderedListItemContent = 'ChatOrderedListItemContent';
|
|
10883
|
+
const ChatOrderedListItemPrefix = 'ChatOrderedListItemPrefix';
|
|
10884
|
+
const ChatOrderedListMarker = 'ChatOrderedListMarker';
|
|
10885
|
+
const ChatComposerAttachment = 'ChatComposerAttachment';
|
|
10886
|
+
const ChatComposerAttachmentImage = 'ChatComposerAttachmentImage';
|
|
10887
|
+
const ChatComposerAttachmentInvalidImage = 'ChatComposerAttachmentInvalidImage';
|
|
10888
|
+
const ChatComposerAttachmentLabel = 'ChatComposerAttachmentLabel';
|
|
10889
|
+
const ChatComposerAttachmentPreview = 'ChatComposerAttachmentPreview';
|
|
10890
|
+
const ChatComposerAttachmentPreviewOverlay = 'ChatComposerAttachmentPreviewOverlay';
|
|
10891
|
+
const ChatComposerAttachmentPreviewOverlayError = 'ChatComposerAttachmentPreviewOverlayError';
|
|
10892
|
+
const ChatComposerAttachmentPreviewOverlayImage = 'ChatComposerAttachmentPreviewOverlayImage';
|
|
10893
|
+
const ChatComposerAttachmentRemoveButton = 'ChatComposerAttachmentRemoveButton';
|
|
10894
|
+
const ChatComposerAttachments = 'ChatComposerAttachments';
|
|
10895
|
+
const ChatComposerAttachmentTextFile = 'ChatComposerAttachmentTextFile';
|
|
10896
|
+
const ChatAttachment = 'ChatAttachment';
|
|
10897
|
+
const ChatAttachmentImage = 'ChatAttachmentImage';
|
|
10898
|
+
const ChatAttachmentInvalidImage = 'ChatAttachmentInvalidImage';
|
|
10899
|
+
const ChatAttachmentLabel = 'ChatAttachmentLabel';
|
|
10900
|
+
const ChatAttachmentPreview = 'ChatAttachmentPreview';
|
|
10901
|
+
const ChatAttachments = 'ChatAttachments';
|
|
10902
|
+
const ChatAttachmentTextFile = 'ChatAttachmentTextFile';
|
|
10903
|
+
const ChatMessageImage = 'ChatMessageImage';
|
|
10904
|
+
const ChatSendArea = 'ChatSendArea';
|
|
10905
|
+
const ChatSendAreaBottom = 'ChatSendAreaBottom';
|
|
10906
|
+
const ChatSendAreaContent = 'ChatSendAreaContent';
|
|
10907
|
+
const ChatSendAreaPrimaryControls = 'ChatSendAreaPrimaryControls';
|
|
10908
|
+
const ChatSelect = 'ChatSelect';
|
|
10909
|
+
const ChatTableWrapper = 'ChatTableWrapper';
|
|
10910
|
+
const ChatTodoList = 'ChatTodoList';
|
|
10911
|
+
const ChatTodoListHeader = 'ChatTodoListHeader';
|
|
10912
|
+
const ChatTodoListItem = 'ChatTodoListItem';
|
|
10913
|
+
const ChatTodoListItemCompleted = 'ChatTodoListItemCompleted';
|
|
10914
|
+
const ChatTodoListItemInProgress = 'ChatTodoListItemInProgress';
|
|
10915
|
+
const ChatTodoListItems = 'ChatTodoListItems';
|
|
10916
|
+
const ChatTodoListItemTodo = 'ChatTodoListItemTodo';
|
|
10917
|
+
const ChatToolCallFileName = 'ChatToolCallFileName';
|
|
10918
|
+
const ChatToolCallQuestionOption = 'ChatToolCallQuestionOption';
|
|
10919
|
+
const ChatToolCallQuestionOptions = 'ChatToolCallQuestionOptions';
|
|
10920
|
+
const ChatToolCallQuestionText = 'ChatToolCallQuestionText';
|
|
10921
|
+
const ChatToolCallReadFileLink = 'ChatToolCallReadFileLink';
|
|
10922
|
+
const ChatToolCallRenderHtmlBody = 'ChatToolCallRenderHtmlBody';
|
|
10923
|
+
const ChatToolCallRenderHtmlContent = 'ChatToolCallRenderHtmlContent';
|
|
10924
|
+
const ChatToolCallRenderHtmlLabel = 'ChatToolCallRenderHtmlLabel';
|
|
10925
|
+
const ChatToolCalls = 'ChatToolCalls';
|
|
10926
|
+
const ChatToolCallsLabel = 'ChatToolCallsLabel';
|
|
10927
|
+
const ChatUnorderedList = 'ChatUnorderedList';
|
|
10928
|
+
const ChatUnorderedListItem = 'ChatUnorderedListItem';
|
|
10929
|
+
const ChatViewDropOverlay = 'ChatViewDropOverlay';
|
|
10930
|
+
const ChatViewDropOverlayActive = 'ChatViewDropOverlayActive';
|
|
10931
|
+
const ChatWelcomeMessage = 'ChatWelcomeMessage';
|
|
10932
|
+
const CustomSelectPopOver = 'CustomSelectPopOver';
|
|
10933
|
+
const Deletion = 'Deletion';
|
|
10934
|
+
const Empty = '';
|
|
10935
|
+
const FileIcon = 'FileIcon';
|
|
10936
|
+
const IconButton = 'IconButton';
|
|
10937
|
+
const IconButtonDisabled = 'IconButtonDisabled';
|
|
10938
|
+
const ImageElement = 'ImageElement';
|
|
10939
|
+
const ImageErrorMessage = 'ImageErrorMessage';
|
|
10940
|
+
const InputBox = 'InputBox';
|
|
10941
|
+
const InputInvalid = 'InputInvalid';
|
|
10942
|
+
const Insertion = 'Insertion';
|
|
10943
|
+
const Label = 'Label';
|
|
10944
|
+
const LabelDetail = 'LabelDetail';
|
|
10945
|
+
const Markdown = 'Markdown';
|
|
10946
|
+
const MarkdownMathBlock = 'MarkdownMathBlock';
|
|
10947
|
+
const MarkdownQuote = 'MarkdownQuote';
|
|
10948
|
+
const MarkdownTable = 'MarkdownTable';
|
|
10949
|
+
const MaskIcon = 'MaskIcon';
|
|
10950
|
+
const MaskIconAdd = 'MaskIconAdd';
|
|
10951
|
+
const MaskIconArrowLeft = 'MaskIconArrowLeft';
|
|
10952
|
+
const MaskIconChevronDown = 'MaskIconChevronDown';
|
|
10953
|
+
const MaskIconChevronRight = 'MaskIconChevronRight';
|
|
10954
|
+
const MaskIconChevronUp = 'MaskIconChevronUp';
|
|
10955
|
+
const MaskIconClose = 'MaskIconClose';
|
|
10956
|
+
const MaskIconDebugPause = 'MaskIconDebugPause';
|
|
10957
|
+
const MaskIconLayoutPanelLeft = 'MaskIconLayoutPanelLeft';
|
|
10958
|
+
const MaskIconSearch = 'MaskIconSearch';
|
|
10959
|
+
const MaskIconSettingsGear = 'MaskIconSettingsGear';
|
|
10960
|
+
const Message = 'Message';
|
|
10961
|
+
const MessageAssistant = 'MessageAssistant';
|
|
10962
|
+
const MessageUser = 'MessageUser';
|
|
10963
|
+
const MissingApiKeyForm = 'MissingApiKeyForm';
|
|
10964
|
+
const MultiLineInputBox = 'MultilineInputBox';
|
|
10965
|
+
const ProjectAddButton = 'ProjectAddButton';
|
|
10966
|
+
const ProjectList = 'ProjectList';
|
|
10967
|
+
const ProjectListChevron = 'ProjectListChevron';
|
|
10968
|
+
const ProjectListGroup = 'ProjectListGroup';
|
|
10969
|
+
const ProjectListItem = 'ProjectListItem';
|
|
10970
|
+
const ProjectListItemActions = 'ProjectListItemActions';
|
|
10971
|
+
const ProjectListItemAddChatButton = 'ProjectListItemAddChatButton';
|
|
10972
|
+
const ProjectListItemLabel = 'ProjectListItemLabel';
|
|
10973
|
+
const ProjectListItemSelected = 'ProjectListItemSelected';
|
|
10974
|
+
const ProjectSessionItem = 'ProjectSessionItem';
|
|
10975
|
+
const ProjectSessionItemLabel = 'ProjectSessionItemLabel';
|
|
10976
|
+
const ProjectSessionItemSelected = 'ProjectSessionItemSelected';
|
|
10977
|
+
const ProjectSidebar = 'ProjectSidebar';
|
|
10978
|
+
const SearchFieldContainer = 'SearchFieldContainer';
|
|
10979
|
+
const RunModePickerContainer = 'RunModePickerContainer';
|
|
10980
|
+
const RunModePickerPopOver = 'RunModePickerPopOver';
|
|
10981
|
+
const SelectLabel = 'SelectLabel';
|
|
10982
|
+
const SendButtonDisabled = 'SendButtonDisabled';
|
|
10983
|
+
const SessionArchiveButton = 'SessionArchiveButton';
|
|
10984
|
+
const StrikeThrough = 'StrikeThrough';
|
|
10985
|
+
const TokenUsageOverview = 'TokenUsageOverview';
|
|
10986
|
+
const TokenUsageRing = 'TokenUsageRing';
|
|
10987
|
+
const TokenUsageRingInner = 'TokenUsageRingInner';
|
|
10988
|
+
const ToolCallName = 'ToolCallName';
|
|
10989
|
+
const Viewlet = 'Viewlet';
|
|
10990
|
+
|
|
11621
10991
|
const HandleListContextMenu = 2;
|
|
11622
10992
|
const HandleFocus = 3;
|
|
11623
10993
|
const HandleInput = 4;
|
|
@@ -11670,7 +11040,8 @@ const HandlePointerUpModelPickerList = 55;
|
|
|
11670
11040
|
const HandleClickReasoningEffortPickerToggle = 56;
|
|
11671
11041
|
const HandleClickAgentModePickerToggle = 57;
|
|
11672
11042
|
const HandleContextMenuChatImageAttachment = 58;
|
|
11673
|
-
const
|
|
11043
|
+
const HandleClickGitBranchPickerToggle = 59;
|
|
11044
|
+
const HandleErrorComposerAttachmentPreviewOverlay = 60;
|
|
11674
11045
|
|
|
11675
11046
|
const getAddContextButtonDom = () => {
|
|
11676
11047
|
return [{
|
|
@@ -11685,12 +11056,23 @@ const getAddContextButtonDom = () => {
|
|
|
11685
11056
|
}];
|
|
11686
11057
|
};
|
|
11687
11058
|
|
|
11688
|
-
const getCustomSelectToggleVirtualDom = (label, name, open, onClick, title = label) => {
|
|
11059
|
+
const getCustomSelectToggleVirtualDom = (label, name, open, onClick, title = label, ariaLabel = title) => {
|
|
11060
|
+
const getChevronDom = expanded => {
|
|
11061
|
+
return {
|
|
11062
|
+
childCount: 0,
|
|
11063
|
+
className: mergeClassNames(MaskIcon, expanded ? MaskIconChevronUp : MaskIconChevronDown),
|
|
11064
|
+
name,
|
|
11065
|
+
role: None$1,
|
|
11066
|
+
type: Div
|
|
11067
|
+
};
|
|
11068
|
+
};
|
|
11689
11069
|
return [{
|
|
11690
11070
|
'aria-expanded': open ? 'true' : 'false',
|
|
11691
11071
|
'aria-haspopup': 'true',
|
|
11072
|
+
'aria-label': ariaLabel,
|
|
11073
|
+
ariaLabel,
|
|
11692
11074
|
childCount: 2,
|
|
11693
|
-
className:
|
|
11075
|
+
className: ChatSelect,
|
|
11694
11076
|
inputType: 'button',
|
|
11695
11077
|
name,
|
|
11696
11078
|
onClick,
|
|
@@ -11702,21 +11084,11 @@ const getCustomSelectToggleVirtualDom = (label, name, open, onClick, title = lab
|
|
|
11702
11084
|
name,
|
|
11703
11085
|
role: None$1,
|
|
11704
11086
|
type: Span
|
|
11705
|
-
}, text(label),
|
|
11706
|
-
childCount: 0,
|
|
11707
|
-
className: mergeClassNames(MaskIcon, open ? MaskIconChevronUp : MaskIconChevronDown),
|
|
11708
|
-
name,
|
|
11709
|
-
role: None$1,
|
|
11710
|
-
type: Div
|
|
11711
|
-
}];
|
|
11087
|
+
}, text(label), getChevronDom(open)];
|
|
11712
11088
|
};
|
|
11713
11089
|
|
|
11714
|
-
const getCustomSelectPickerToggleVirtualDom = (label, name, open, onClick, title = label,
|
|
11715
|
-
return
|
|
11716
|
-
childCount: containerChildCount,
|
|
11717
|
-
className: CustomSelectContainer,
|
|
11718
|
-
type: Div
|
|
11719
|
-
}, ...getCustomSelectToggleVirtualDom(label, name, open, onClick, title)];
|
|
11090
|
+
const getCustomSelectPickerToggleVirtualDom = (label, name, open, onClick, title = label, ariaLabel = title) => {
|
|
11091
|
+
return getCustomSelectToggleVirtualDom(label, name, open, onClick, title, ariaLabel);
|
|
11720
11092
|
};
|
|
11721
11093
|
|
|
11722
11094
|
const getAgentModePickerVirtualDom = (selectedAgentMode, agentModePickerOpen) => {
|
|
@@ -11726,7 +11098,8 @@ const getAgentModePickerVirtualDom = (selectedAgentMode, agentModePickerOpen) =>
|
|
|
11726
11098
|
const getChatModelPickerToggleVirtualDom = (models, selectedModelId, modelPickerOpen) => {
|
|
11727
11099
|
const selectedModel = models.find(model => model.id === selectedModelId);
|
|
11728
11100
|
const selectedModelLabel = selectedModel ? selectedModel.name : selectedModelId;
|
|
11729
|
-
|
|
11101
|
+
const pickModelLabel = pickModel(selectedModelLabel);
|
|
11102
|
+
return getCustomSelectPickerToggleVirtualDom(selectedModelLabel, ModelPickerToggle, modelPickerOpen, HandleClickModelPickerToggle, pickModelLabel, pickModelLabel);
|
|
11730
11103
|
};
|
|
11731
11104
|
|
|
11732
11105
|
const getCreatePullRequestButtonDom = () => {
|
|
@@ -11770,6 +11143,55 @@ const getCustomSelectOptionVirtualDom = (name, label, selected, detail = '') =>
|
|
|
11770
11143
|
}, text(detail)] : [])];
|
|
11771
11144
|
};
|
|
11772
11145
|
|
|
11146
|
+
const itemHeight = 28;
|
|
11147
|
+
const messageHeight = 32;
|
|
11148
|
+
const getCurrentBranchLabel = (gitBranches, fallbackBranchName) => {
|
|
11149
|
+
const currentBranch = gitBranches.find(branch => branch.current);
|
|
11150
|
+
if (currentBranch) {
|
|
11151
|
+
return currentBranch.name;
|
|
11152
|
+
}
|
|
11153
|
+
if (fallbackBranchName) {
|
|
11154
|
+
return fallbackBranchName;
|
|
11155
|
+
}
|
|
11156
|
+
return 'Branch';
|
|
11157
|
+
};
|
|
11158
|
+
const getBranchOptionsVirtualDom = gitBranches => {
|
|
11159
|
+
return gitBranches.flatMap(branch => {
|
|
11160
|
+
return getCustomSelectOptionVirtualDom(getGitBranchPickerItemInputName(branch.name), branch.name, branch.current, branch.current ? 'current' : '');
|
|
11161
|
+
});
|
|
11162
|
+
};
|
|
11163
|
+
const getBranchPickerMessageDom = (gitBranches, errorMessage) => {
|
|
11164
|
+
const message = errorMessage || (gitBranches.length === 0 ? 'No local git branches found.' : '');
|
|
11165
|
+
if (!message) {
|
|
11166
|
+
return [];
|
|
11167
|
+
}
|
|
11168
|
+
return [{
|
|
11169
|
+
childCount: 1,
|
|
11170
|
+
className: mergeClassNames(ChatGitBranchPickerMessage, errorMessage ? ChatGitBranchPickerErrorMessage : Empty),
|
|
11171
|
+
type: Div
|
|
11172
|
+
}, {
|
|
11173
|
+
text: message,
|
|
11174
|
+
type: Text
|
|
11175
|
+
}];
|
|
11176
|
+
};
|
|
11177
|
+
const getGitBranchPickerVirtualDom = (gitBranches, gitBranchPickerOpen, gitBranchPickerErrorMessage, fallbackBranchName) => {
|
|
11178
|
+
const label = getCurrentBranchLabel(gitBranches, fallbackBranchName);
|
|
11179
|
+
const branchOptions = getBranchOptionsVirtualDom(gitBranches);
|
|
11180
|
+
const messageDom = getBranchPickerMessageDom(gitBranches, gitBranchPickerErrorMessage);
|
|
11181
|
+
const showMessage = messageDom.length > 0;
|
|
11182
|
+
const popOverHeight = gitBranches.length * itemHeight + (showMessage ? messageHeight : 0);
|
|
11183
|
+
return [...getCustomSelectPickerToggleVirtualDom(label, GitBranchPickerToggle, gitBranchPickerOpen, HandleClickGitBranchPickerToggle, 'Switch branch', 'Switch branch'), ...(gitBranchPickerOpen ? [{
|
|
11184
|
+
childCount: (showMessage ? 1 : 0) + 1,
|
|
11185
|
+
className: mergeClassNames(ChatModelPicker, CustomSelectPopOver, ChatGitBranchPicker),
|
|
11186
|
+
style: `height: ${popOverHeight}px;`,
|
|
11187
|
+
type: Div
|
|
11188
|
+
}, ...messageDom, {
|
|
11189
|
+
childCount: branchOptions.length / 4,
|
|
11190
|
+
className: ChatModelPickerList,
|
|
11191
|
+
type: Ul
|
|
11192
|
+
}, ...branchOptions] : [])];
|
|
11193
|
+
};
|
|
11194
|
+
|
|
11773
11195
|
const reasoningEffortPickerHeight = reasoningEfforts.length * 28;
|
|
11774
11196
|
const getReasoningEffortOptionsVirtualDom = selectedReasoningEffort => {
|
|
11775
11197
|
return reasoningEfforts.flatMap(reasoningEffort => {
|
|
@@ -11779,7 +11201,7 @@ const getReasoningEffortOptionsVirtualDom = selectedReasoningEffort => {
|
|
|
11779
11201
|
});
|
|
11780
11202
|
};
|
|
11781
11203
|
const getReasoningEffortPickerVirtualDom = (selectedReasoningEffort, reasoningEffortPickerOpen) => {
|
|
11782
|
-
return [...getCustomSelectPickerToggleVirtualDom(getReasoningEffortLabel(selectedReasoningEffort), ReasoningEffortPickerToggle, reasoningEffortPickerOpen, HandleClickReasoningEffortPickerToggle, 'Reasoning',
|
|
11204
|
+
return [...getCustomSelectPickerToggleVirtualDom(getReasoningEffortLabel(selectedReasoningEffort), ReasoningEffortPickerToggle, reasoningEffortPickerOpen, HandleClickReasoningEffortPickerToggle, 'Reasoning', 'Reasoning'), ...(reasoningEffortPickerOpen ? [{
|
|
11783
11205
|
childCount: 1,
|
|
11784
11206
|
className: mergeClassNames(ChatModelPicker, CustomSelectPopOver),
|
|
11785
11207
|
style: `height: ${reasoningEffortPickerHeight}px;`,
|
|
@@ -11946,6 +11368,7 @@ const getComposerAttachmentClassName = displayType => {
|
|
|
11946
11368
|
};
|
|
11947
11369
|
const getComposerAttachmentRemoveButtonDom = attachment => {
|
|
11948
11370
|
return [{
|
|
11371
|
+
'aria-label': removeAttachment(),
|
|
11949
11372
|
buttonType: 'button',
|
|
11950
11373
|
childCount: 1,
|
|
11951
11374
|
className: ChatComposerAttachmentRemoveButton,
|
|
@@ -12017,12 +11440,13 @@ const getComposerTextAreaDom = () => {
|
|
|
12017
11440
|
type: TextArea
|
|
12018
11441
|
};
|
|
12019
11442
|
};
|
|
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) => {
|
|
11443
|
+
const getChatSendAreaDom = (composerValue, composerAttachments, agentMode, agentModePickerOpen, gitBranchPickerVisible, gitBranchPickerOpen, gitBranchPickerErrorMessage, gitBranches, fallbackBranchName, 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) => {
|
|
12021
11444
|
const isSendDisabled = composerValue.trim() === '';
|
|
12022
11445
|
const showAgentModePicker = hasSpaceForAgentModePicker;
|
|
11446
|
+
const showGitBranchPicker = gitBranchPickerVisible || Boolean(fallbackBranchName);
|
|
12023
11447
|
const showResponsiveRunModePicker = showRunMode && hasSpaceForRunModePicker;
|
|
12024
11448
|
const showScrollDownButton = scrollDownButtonEnabled && !messagesAutoScrollEnabled;
|
|
12025
|
-
const bottomControlsCount = 2 + (usageOverviewEnabled ? 1 : 0) + (addContextButtonEnabled ? 1 : 0) + (showCreatePullRequestButton ? 1 : 0) + (voiceDictationEnabled ? 1 : 0) + (showScrollDownButton ? 1 : 0);
|
|
11449
|
+
const bottomControlsCount = 2 + (usageOverviewEnabled ? 1 : 0) + (addContextButtonEnabled ? 1 : 0) + (showCreatePullRequestButton ? 1 : 0) + (showGitBranchPicker ? 1 : 0) + (voiceDictationEnabled ? 1 : 0) + (showScrollDownButton ? 1 : 0);
|
|
12026
11450
|
const primaryControlsCount = 1 + (showAgentModePicker ? 1 : 0) + (reasoningPickerEnabled ? 1 : 0) + (showResponsiveRunModePicker ? 1 : 0);
|
|
12027
11451
|
const hasTodoList = todoListToolEnabled && todoListItems.length > 0;
|
|
12028
11452
|
const hasComposerAttachments = composerAttachments.length > 0;
|
|
@@ -12046,7 +11470,62 @@ const getChatSendAreaDom = (composerValue, composerAttachments, agentMode, agent
|
|
|
12046
11470
|
className: ChatSendAreaPrimaryControls,
|
|
12047
11471
|
role: 'toolbar',
|
|
12048
11472
|
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)];
|
|
11473
|
+
}, ...(showAgentModePicker ? getAgentModePickerVirtualDom(agentMode, agentModePickerOpen) : []), ...getChatModelPickerToggleVirtualDom(models, selectedModelId, modelPickerOpen), ...(reasoningPickerEnabled ? getReasoningEffortPickerVirtualDom(reasoningEffort, reasoningEffortPickerOpen) : []), ...(showResponsiveRunModePicker ? getRunModePickerVirtualDom(runMode, runModePickerOpen) : []), ...(usageOverviewEnabled ? getUsageOverviewDom(tokensUsed, tokensMax) : []), ...(addContextButtonEnabled ? getAddContextButtonDom() : []), ...(showCreatePullRequestButton ? getCreatePullRequestButtonDom() : []), ...(showGitBranchPicker ? getGitBranchPickerVirtualDom(gitBranches, gitBranchPickerOpen, gitBranchPickerErrorMessage, fallbackBranchName) : []), ...(showScrollDownButton ? getScrollDownButtonDom() : []), ...getSendButtonDom(isSendDisabled, voiceDictationEnabled)];
|
|
11474
|
+
};
|
|
11475
|
+
|
|
11476
|
+
const authContainerStyle = 'align-items:center;display:flex;gap:8px;min-width:0;';
|
|
11477
|
+
const authNameStyle = 'max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;';
|
|
11478
|
+
const authButtonStyle = 'white-space:nowrap;';
|
|
11479
|
+
const getButtonLabel = (userState, isAuthenticated) => {
|
|
11480
|
+
if (userState === 'loggingIn') {
|
|
11481
|
+
return loggingInToBackend();
|
|
11482
|
+
}
|
|
11483
|
+
if (userState === 'loggingOut') {
|
|
11484
|
+
return loggingOutFromBackend();
|
|
11485
|
+
}
|
|
11486
|
+
return isAuthenticated ? logout() : login();
|
|
11487
|
+
};
|
|
11488
|
+
const getButtonTitle = (userState, isAuthenticated) => {
|
|
11489
|
+
if (userState === 'loggingIn') {
|
|
11490
|
+
return loggingInToBackend();
|
|
11491
|
+
}
|
|
11492
|
+
if (userState === 'loggingOut') {
|
|
11493
|
+
return loggingOutFromBackend();
|
|
11494
|
+
}
|
|
11495
|
+
return isAuthenticated ? logoutFromBackend$1() : loginToBackend();
|
|
11496
|
+
};
|
|
11497
|
+
const getChatHeaderAuthDom = (authEnabled = false, userState = 'loggedOut', userName = '') => {
|
|
11498
|
+
if (!authEnabled) {
|
|
11499
|
+
return [];
|
|
11500
|
+
}
|
|
11501
|
+
const isAuthenticated = userState === 'loggedIn' || userState === 'loggingOut';
|
|
11502
|
+
const buttonName = isAuthenticated ? Logout : Login;
|
|
11503
|
+
const buttonLabel = getButtonLabel(userState, isAuthenticated);
|
|
11504
|
+
const buttonTitle = getButtonTitle(userState, isAuthenticated);
|
|
11505
|
+
const isPending = userState === 'loggingIn' || userState === 'loggingOut';
|
|
11506
|
+
const displayName = userName || signedIn();
|
|
11507
|
+
return [{
|
|
11508
|
+
childCount: isAuthenticated ? 2 : 1,
|
|
11509
|
+
className: ChatHeaderAuth,
|
|
11510
|
+
style: authContainerStyle,
|
|
11511
|
+
type: Div
|
|
11512
|
+
}, ...(isAuthenticated ? [{
|
|
11513
|
+
childCount: 1,
|
|
11514
|
+
className: ChatHeaderAuthName,
|
|
11515
|
+
style: authNameStyle,
|
|
11516
|
+
title: displayName,
|
|
11517
|
+
type: Span
|
|
11518
|
+
}, text(displayName)] : []), {
|
|
11519
|
+
childCount: 1,
|
|
11520
|
+
className: mergeClassNames(Button, ButtonSecondary),
|
|
11521
|
+
disabled: isPending,
|
|
11522
|
+
inputType: 'button',
|
|
11523
|
+
name: buttonName,
|
|
11524
|
+
onClick: HandleClick,
|
|
11525
|
+
style: authButtonStyle,
|
|
11526
|
+
title: buttonTitle,
|
|
11527
|
+
type: Button$1
|
|
11528
|
+
}, text(buttonLabel)];
|
|
12050
11529
|
};
|
|
12051
11530
|
|
|
12052
11531
|
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;';
|
|
@@ -12067,15 +11546,15 @@ const getFocusHeaderActionButtonDom = (label, name) => {
|
|
|
12067
11546
|
type: Button$1
|
|
12068
11547
|
}, text(label)];
|
|
12069
11548
|
};
|
|
12070
|
-
const getChatHeaderDomFocusMode = (selectedSessionTitle, selectedProjectName) => {
|
|
11549
|
+
const getChatHeaderDomFocusMode = (selectedSessionTitle, selectedProjectName, authEnabled = false, userState = 'loggedOut', userName = '') => {
|
|
12071
11550
|
const items = [[addAction(), FocusAddAction], [openInVsCode(), FocusOpenInVsCode], [commit(), FocusCommit], [openTerminal(), FocusOpenTerminal], [showDiff(), FocusShowDiff]];
|
|
12072
11551
|
const hasProjectName = !!selectedProjectName;
|
|
12073
11552
|
return [{
|
|
12074
|
-
childCount: 2,
|
|
11553
|
+
childCount: 2 + (authEnabled ? 1 : 0),
|
|
12075
11554
|
className: ChatFocusHeader,
|
|
12076
11555
|
style: focusHeaderStyle,
|
|
12077
11556
|
type: Header
|
|
12078
|
-
}, {
|
|
11557
|
+
}, ...getChatHeaderAuthDom(authEnabled, userState, userName), {
|
|
12079
11558
|
childCount: hasProjectName ? 2 : 1,
|
|
12080
11559
|
className: ChatName,
|
|
12081
11560
|
style: focusHeaderMetaStyle,
|
|
@@ -12133,7 +11612,25 @@ const getUsageCostLabel = model => {
|
|
|
12133
11612
|
};
|
|
12134
11613
|
|
|
12135
11614
|
const getChatModelListItemVirtualDom = (model, selectedModelId) => {
|
|
12136
|
-
|
|
11615
|
+
const detail = getUsageCostLabel(model);
|
|
11616
|
+
const hasDetail = detail !== '';
|
|
11617
|
+
const selected = model.id === selectedModelId;
|
|
11618
|
+
const className = mergeClassNames(ChatModelPickerItem, selected ? ChatModelPickerItemSelected : '');
|
|
11619
|
+
return [{
|
|
11620
|
+
childCount: hasDetail ? 2 : 1,
|
|
11621
|
+
className,
|
|
11622
|
+
'data-id': model.id,
|
|
11623
|
+
role: 'option',
|
|
11624
|
+
type: Li
|
|
11625
|
+
}, {
|
|
11626
|
+
childCount: 1,
|
|
11627
|
+
className: ChatModelPickerItemLabel,
|
|
11628
|
+
type: Span
|
|
11629
|
+
}, text(getModelLabel(model)), ...(hasDetail ? [{
|
|
11630
|
+
childCount: 1,
|
|
11631
|
+
className: ChatModelPickerItemUsageCost,
|
|
11632
|
+
type: Span
|
|
11633
|
+
}, text(detail)] : [])];
|
|
12137
11634
|
};
|
|
12138
11635
|
|
|
12139
11636
|
const parentNode$2 = {
|
|
@@ -12156,6 +11653,7 @@ const getChatModelListVirtualDom = (visibleModels, selectedModelId) => {
|
|
|
12156
11653
|
onPointerDown: HandlePointerDownModelPickerList,
|
|
12157
11654
|
onPointerUp: HandlePointerUpModelPickerList,
|
|
12158
11655
|
onScroll: HandleModelPickerListScroll,
|
|
11656
|
+
role: 'listbox',
|
|
12159
11657
|
type: Ul
|
|
12160
11658
|
}, ...visibleModels.flatMap(model => getChatModelListItemVirtualDom(model, selectedModelId))];
|
|
12161
11659
|
};
|
|
@@ -12396,19 +11894,7 @@ const getBlockQuoteDom = (node, useChatMathWorker, getMessageNodeDom) => {
|
|
|
12396
11894
|
}, ...node.children.flatMap(child => getMessageNodeDom(child, useChatMathWorker))];
|
|
12397
11895
|
};
|
|
12398
11896
|
|
|
12399
|
-
const getTokenDom = token => {
|
|
12400
|
-
if (!token.className) {
|
|
12401
|
-
return [text(token.text)];
|
|
12402
|
-
}
|
|
12403
|
-
return [{
|
|
12404
|
-
childCount: 1,
|
|
12405
|
-
className: token.className,
|
|
12406
|
-
type: Span
|
|
12407
|
-
}, text(token.text)];
|
|
12408
|
-
};
|
|
12409
|
-
|
|
12410
11897
|
const getCodeBlockDom = node => {
|
|
12411
|
-
const tokenDom = node.codeTokens.flatMap(getTokenDom);
|
|
12412
11898
|
const languageAttribute = node.language ? {
|
|
12413
11899
|
'data-lang': node.language
|
|
12414
11900
|
} : {};
|
|
@@ -12417,10 +11903,10 @@ const getCodeBlockDom = node => {
|
|
|
12417
11903
|
type: Pre,
|
|
12418
11904
|
...languageAttribute
|
|
12419
11905
|
}, {
|
|
12420
|
-
childCount:
|
|
11906
|
+
childCount: 1,
|
|
12421
11907
|
type: Code,
|
|
12422
11908
|
...languageAttribute
|
|
12423
|
-
},
|
|
11909
|
+
}, text(node.text)];
|
|
12424
11910
|
};
|
|
12425
11911
|
|
|
12426
11912
|
const getHeadingElementType = level => {
|
|
@@ -12658,6 +12144,7 @@ const getMissingApiActionsDom = ({
|
|
|
12658
12144
|
};
|
|
12659
12145
|
const getMissingApiKeyDom = ({
|
|
12660
12146
|
getApiKeyText,
|
|
12147
|
+
inputClassName,
|
|
12661
12148
|
inputName,
|
|
12662
12149
|
inputPattern,
|
|
12663
12150
|
inputRequired = false,
|
|
@@ -12680,7 +12167,7 @@ const getMissingApiKeyDom = ({
|
|
|
12680
12167
|
autocomplete: 'off',
|
|
12681
12168
|
autocorrect: 'off',
|
|
12682
12169
|
childCount: 0,
|
|
12683
|
-
className: InputBox,
|
|
12170
|
+
className: inputClassName ? mergeClassNames(InputBox, inputClassName) : InputBox,
|
|
12684
12171
|
name: inputName,
|
|
12685
12172
|
onInput: HandleInput,
|
|
12686
12173
|
...(inputPattern ? {
|
|
@@ -12700,13 +12187,17 @@ const getMissingApiKeyDom = ({
|
|
|
12700
12187
|
})];
|
|
12701
12188
|
};
|
|
12702
12189
|
|
|
12703
|
-
const getMissingOpenApiApiKeyDom = (openApiApiKeyState = 'idle', openSettingsUrl = 'https://platform.openai.com/api-keys', inputPattern = '^sk-.+') => {
|
|
12190
|
+
const getMissingOpenApiApiKeyDom = (openApiApiKeyInput = '', openApiApiKeyState = 'idle', openSettingsUrl = 'https://platform.openai.com/api-keys', inputPattern = '^sk-.+') => {
|
|
12704
12191
|
const isSaving = openApiApiKeyState === 'saving';
|
|
12192
|
+
const isInvalid = openApiApiKeyInput !== '' && !new RegExp(inputPattern).test(openApiApiKeyInput);
|
|
12705
12193
|
return getMissingApiKeyDom({
|
|
12706
12194
|
getApiKeyText: getOpenApiApiKey(),
|
|
12195
|
+
...(isInvalid ? {
|
|
12196
|
+
inputClassName: InputInvalid
|
|
12197
|
+
} : {}),
|
|
12707
12198
|
inputName: OpenApiApiKeyInput,
|
|
12708
12199
|
inputPattern,
|
|
12709
|
-
inputRequired:
|
|
12200
|
+
inputRequired: false,
|
|
12710
12201
|
onSubmit: HandleMissingOpenAiApiKeyFormSubmit,
|
|
12711
12202
|
openSettingsButtonName: OpenOpenApiApiKeyWebsite,
|
|
12712
12203
|
openSettingsUrl,
|
|
@@ -13325,7 +12816,7 @@ const getElementType = tagName => {
|
|
|
13325
12816
|
case 'section':
|
|
13326
12817
|
return Section;
|
|
13327
12818
|
case 'select':
|
|
13328
|
-
return Select
|
|
12819
|
+
return Select;
|
|
13329
12820
|
case 'span':
|
|
13330
12821
|
return Span;
|
|
13331
12822
|
case 'strong':
|
|
@@ -13696,14 +13187,27 @@ const getChatAttachmentsDom = attachments => {
|
|
|
13696
13187
|
}];
|
|
13697
13188
|
})];
|
|
13698
13189
|
};
|
|
13699
|
-
const
|
|
13190
|
+
const getStandaloneImageAttachmentDom = attachment => {
|
|
13191
|
+
if (!attachment.previewSrc) {
|
|
13192
|
+
return getChatAttachmentsDom([attachment]);
|
|
13193
|
+
}
|
|
13194
|
+
return [{
|
|
13195
|
+
alt: attachment.name,
|
|
13196
|
+
childCount: 0,
|
|
13197
|
+
className: ChatMessageImage,
|
|
13198
|
+
src: attachment.previewSrc,
|
|
13199
|
+
type: Img
|
|
13200
|
+
}];
|
|
13201
|
+
};
|
|
13202
|
+
const getChatMessageDom = (message, parsedMessageContent, _openRouterApiKeyInput, openApiApiKeyInput = '', openApiApiKeyState = 'idle', openApiApiKeysSettingsUrl = 'https://platform.openai.com/api-keys', openApiApiKeyInputPattern = '^sk-.+', openRouterApiKeyState = 'idle', useChatMathWorker = false, standaloneImageAttachment) => {
|
|
13700
13203
|
const roleClassName = message.role === 'user' ? MessageUser : MessageAssistant;
|
|
13701
13204
|
const isOpenApiApiKeyMissingMessage = message.role === 'assistant' && message.text === openApiApiKeyRequiredMessage;
|
|
13702
13205
|
const isOpenRouterApiKeyMissingMessage = message.role === 'assistant' && message.text === openRouterApiKeyRequiredMessage;
|
|
13703
13206
|
const isOpenRouterRequestFailedMessage = message.role === 'assistant' && message.text === openRouterRequestFailedMessage;
|
|
13704
13207
|
const isOpenRouterTooManyRequestsMessage = message.role === 'assistant' && message.text.startsWith(openRouterTooManyRequestsMessage);
|
|
13705
|
-
const
|
|
13706
|
-
const
|
|
13208
|
+
const isStandaloneImageMessage = !!standaloneImageAttachment;
|
|
13209
|
+
const messageDom = isStandaloneImageMessage ? getStandaloneImageAttachmentDom(standaloneImageAttachment) : getMessageContentDom(parsedMessageContent, useChatMathWorker);
|
|
13210
|
+
const attachmentsDom = !isStandaloneImageMessage && message.role === 'user' ? getChatAttachmentsDom(message.attachments ?? []) : [];
|
|
13707
13211
|
const toolCallsDom = getToolCallsDom(message);
|
|
13708
13212
|
const toolCallsChildCount = toolCallsDom.length > 0 ? 1 : 0;
|
|
13709
13213
|
const messageDomChildCount = getTopLevelNodeCount(messageDom);
|
|
@@ -13715,9 +13219,9 @@ const getChatMessageDom = (message, parsedMessageContent, _openRouterApiKeyInput
|
|
|
13715
13219
|
type: Div
|
|
13716
13220
|
}, {
|
|
13717
13221
|
childCount: extraChildCount,
|
|
13718
|
-
className: ChatMessageContent,
|
|
13222
|
+
className: isStandaloneImageMessage ? mergeClassNames(ChatMessageContent, ChatImageMessageContent) : ChatMessageContent,
|
|
13719
13223
|
type: Div
|
|
13720
|
-
}, ...toolCallsDom, ...messageDom, ...attachmentsDom, ...(isOpenApiApiKeyMissingMessage ? getMissingOpenApiApiKeyDom(openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern) : []), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyState) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : []), ...(isOpenRouterTooManyRequestsMessage ? getOpenRouterTooManyRequestsDom() : [])];
|
|
13224
|
+
}, ...toolCallsDom, ...messageDom, ...attachmentsDom, ...(isOpenApiApiKeyMissingMessage ? getMissingOpenApiApiKeyDom(openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern) : []), ...(isOpenRouterApiKeyMissingMessage ? getMissingOpenRouterApiKeyDom(openRouterApiKeyState) : []), ...(isOpenRouterRequestFailedMessage ? getOpenRouterRequestFailedDom() : []), ...(isOpenRouterTooManyRequestsMessage ? getOpenRouterTooManyRequestsDom() : [])];
|
|
13721
13225
|
};
|
|
13722
13226
|
|
|
13723
13227
|
const parentNode$1 = {
|
|
@@ -13733,6 +13237,22 @@ const getEmptyMessagesDom = () => {
|
|
|
13733
13237
|
const hasMessageText = message => {
|
|
13734
13238
|
return message.text.trim().length > 0;
|
|
13735
13239
|
};
|
|
13240
|
+
const isImageAttachment = attachment => {
|
|
13241
|
+
return attachment.displayType === 'image';
|
|
13242
|
+
};
|
|
13243
|
+
const withAttachments = (message, attachments) => {
|
|
13244
|
+
const {
|
|
13245
|
+
attachments: _attachments,
|
|
13246
|
+
...messageWithoutAttachments
|
|
13247
|
+
} = message;
|
|
13248
|
+
if (attachments.length === 0) {
|
|
13249
|
+
return messageWithoutAttachments;
|
|
13250
|
+
}
|
|
13251
|
+
return {
|
|
13252
|
+
...messageWithoutAttachments,
|
|
13253
|
+
attachments
|
|
13254
|
+
};
|
|
13255
|
+
};
|
|
13736
13256
|
const getDisplayMessages = (messages, parsedMessages) => {
|
|
13737
13257
|
const displayMessages = [];
|
|
13738
13258
|
for (const message of messages) {
|
|
@@ -13740,6 +13260,30 @@ const getDisplayMessages = (messages, parsedMessages) => {
|
|
|
13740
13260
|
if (!parsedContent) {
|
|
13741
13261
|
continue;
|
|
13742
13262
|
}
|
|
13263
|
+
if (message.role === 'user') {
|
|
13264
|
+
const attachments = message.attachments ?? [];
|
|
13265
|
+
const imageAttachments = attachments.filter(isImageAttachment);
|
|
13266
|
+
if (imageAttachments.length > 0) {
|
|
13267
|
+
const nonImageAttachments = attachments.filter(attachment => !isImageAttachment(attachment));
|
|
13268
|
+
if (hasMessageText(message) || nonImageAttachments.length > 0) {
|
|
13269
|
+
displayMessages.push({
|
|
13270
|
+
message: withAttachments(message, nonImageAttachments),
|
|
13271
|
+
parsedContent: hasMessageText(message) ? parsedContent : getEmptyMessageContent()
|
|
13272
|
+
});
|
|
13273
|
+
}
|
|
13274
|
+
for (const attachment of imageAttachments) {
|
|
13275
|
+
displayMessages.push({
|
|
13276
|
+
message: {
|
|
13277
|
+
...withAttachments(message, [attachment]),
|
|
13278
|
+
text: ''
|
|
13279
|
+
},
|
|
13280
|
+
parsedContent: getEmptyMessageContent(),
|
|
13281
|
+
standaloneImageAttachment: attachment
|
|
13282
|
+
});
|
|
13283
|
+
}
|
|
13284
|
+
continue;
|
|
13285
|
+
}
|
|
13286
|
+
}
|
|
13743
13287
|
if (message.role !== 'assistant' || !message.toolCalls || message.toolCalls.length === 0) {
|
|
13744
13288
|
displayMessages.push({
|
|
13745
13289
|
message,
|
|
@@ -13795,7 +13339,7 @@ const getMessagesDom = (messages, parsedMessages, openRouterApiKeyInput, openApi
|
|
|
13795
13339
|
role: 'log',
|
|
13796
13340
|
scrollTop: messagesScrollTop,
|
|
13797
13341
|
type: Div
|
|
13798
|
-
}, ...displayMessages.flatMap(item => getChatMessageDom(item.message, item.parsedContent, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, useChatMathWorker))];
|
|
13342
|
+
}, ...displayMessages.flatMap(item => getChatMessageDom(item.message, item.parsedContent, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, useChatMathWorker, item.standaloneImageAttachment))];
|
|
13799
13343
|
};
|
|
13800
13344
|
|
|
13801
13345
|
const arrowLeft$1 = {
|
|
@@ -13909,7 +13453,6 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
13909
13453
|
agentModePickerOpen = false,
|
|
13910
13454
|
authEnabled = false,
|
|
13911
13455
|
authErrorMessage = '',
|
|
13912
|
-
authStatus = 'signed-out',
|
|
13913
13456
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
13914
13457
|
composerAttachmentPreviewOverlayError = false,
|
|
13915
13458
|
composerAttachments,
|
|
@@ -13920,6 +13463,10 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
13920
13463
|
composerHeight = 28,
|
|
13921
13464
|
composerLineHeight = 20,
|
|
13922
13465
|
composerValue,
|
|
13466
|
+
gitBranches,
|
|
13467
|
+
gitBranchPickerErrorMessage,
|
|
13468
|
+
gitBranchPickerOpen,
|
|
13469
|
+
gitBranchPickerVisible,
|
|
13923
13470
|
hasSpaceForAgentModePicker,
|
|
13924
13471
|
hasSpaceForRunModePicker,
|
|
13925
13472
|
messagesAutoScrollEnabled,
|
|
@@ -13954,14 +13501,15 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
13954
13501
|
tokensUsed,
|
|
13955
13502
|
usageOverviewEnabled,
|
|
13956
13503
|
useChatMathWorker = false,
|
|
13504
|
+
userName = '',
|
|
13505
|
+
userState = 'loggedOut',
|
|
13957
13506
|
visibleModels = models,
|
|
13958
13507
|
voiceDictationEnabled = false
|
|
13959
13508
|
}) => {
|
|
13960
13509
|
const selectedSession = sessions.find(session => session.id === selectedSessionId);
|
|
13961
|
-
const selectedProject = projects.find(project => project.id === selectedProjectId);
|
|
13962
|
-
const messages = selectedSession ? selectedSession.messages : [];
|
|
13963
13510
|
const selectedSessionTitle = selectedSession?.title || chatTitle();
|
|
13964
|
-
const selectedProjectName =
|
|
13511
|
+
const selectedProjectName = projects.find(project => project.id === selectedProjectId)?.name || '';
|
|
13512
|
+
const messages = selectedSession ? selectedSession.messages : [];
|
|
13965
13513
|
const showCreatePullRequestButton = canCreatePullRequest(selectedSession);
|
|
13966
13514
|
const isDropOverlayVisible = composerDropEnabled && composerDropActive;
|
|
13967
13515
|
const isComposerAttachmentPreviewOverlayVisible = !!composerAttachmentPreviewOverlayAttachmentId;
|
|
@@ -13980,7 +13528,7 @@ const getChatModeChatFocusVirtualDom = ({
|
|
|
13980
13528
|
childCount: 3,
|
|
13981
13529
|
className: ChatFocusMainArea,
|
|
13982
13530
|
type: Div
|
|
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({
|
|
13531
|
+
}, ...getChatHeaderDomFocusMode(selectedSessionTitle, selectedProjectName, authEnabled, userState, userName), ...getMessagesDom(messages, parsedMessages, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, messagesScrollTop, useChatMathWorker, true), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, gitBranchPickerVisible, gitBranchPickerOpen, gitBranchPickerErrorMessage, gitBranches, selectedSession?.branchName || '', hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton, voiceDictationEnabled, scrollDownButtonEnabled, messagesAutoScrollEnabled), ...getChatOverlaysVirtualDom({
|
|
13984
13532
|
agentMode,
|
|
13985
13533
|
agentModePickerVisible: isAgentModePickerVisible,
|
|
13986
13534
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
@@ -14033,31 +13581,8 @@ const getHeaderActionVirtualDom = item => {
|
|
|
14033
13581
|
}];
|
|
14034
13582
|
};
|
|
14035
13583
|
|
|
14036
|
-
const
|
|
14037
|
-
const isSigningIn = authStatus === 'signing-in';
|
|
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 {
|
|
14051
|
-
disabled: false,
|
|
14052
|
-
icon: mergeClassNames(MaskIcon, MaskIconSignOut),
|
|
14053
|
-
name: Logout,
|
|
14054
|
-
onClick: HandleClick,
|
|
14055
|
-
title: logoutFromBackend()
|
|
14056
|
-
};
|
|
14057
|
-
};
|
|
14058
|
-
const getChatHeaderActionsDom = (viewMode, authEnabled = false, authStatus = 'signed-out', searchEnabled = false) => {
|
|
13584
|
+
const getChatHeaderActionsDom = (viewMode, searchEnabled = false) => {
|
|
14059
13585
|
const toggleTitle = viewMode === 'chat-focus' ? normalChatMode() : chatFocusMode();
|
|
14060
|
-
const authAction = getAuthAction(authEnabled, authStatus);
|
|
14061
13586
|
const items = [{
|
|
14062
13587
|
icon: mergeClassNames(MaskIcon, MaskIconLayoutPanelLeft),
|
|
14063
13588
|
name: ToggleChatFocus,
|
|
@@ -14083,7 +13608,7 @@ const getChatHeaderActionsDom = (viewMode, authEnabled = false, authStatus = 'si
|
|
|
14083
13608
|
name: Settings,
|
|
14084
13609
|
onClick: HandleClickSettings,
|
|
14085
13610
|
title: settings()
|
|
14086
|
-
},
|
|
13611
|
+
}, {
|
|
14087
13612
|
icon: mergeClassNames(MaskIcon, MaskIconClose),
|
|
14088
13613
|
name: CloseChat,
|
|
14089
13614
|
onClick: HandleClickClose,
|
|
@@ -14108,14 +13633,14 @@ const getAuthErrorDom = (hasAuthError, authErrorMessage) => {
|
|
|
14108
13633
|
type: Span
|
|
14109
13634
|
}, text(authErrorMessage)];
|
|
14110
13635
|
};
|
|
14111
|
-
const getChatHeaderDomDetailMode = (selectedSessionTitle, authEnabled = false,
|
|
13636
|
+
const getChatHeaderDomDetailMode = (selectedSessionTitle, authEnabled = false, userState = 'loggedOut', userName = '', authErrorMessage = '') => {
|
|
14112
13637
|
const hasAuthError = authEnabled && !!authErrorMessage;
|
|
14113
13638
|
return [{
|
|
14114
|
-
childCount: hasAuthError ?
|
|
13639
|
+
childCount: 2 + (authEnabled ? 1 : 0) + (hasAuthError ? 1 : 0),
|
|
14115
13640
|
className: ChatHeader,
|
|
14116
13641
|
onContextMenu: HandleChatHeaderContextMenu,
|
|
14117
13642
|
type: Header
|
|
14118
|
-
}, {
|
|
13643
|
+
}, ...getChatHeaderAuthDom(authEnabled, userState, userName), {
|
|
14119
13644
|
childCount: 2,
|
|
14120
13645
|
className: ChatName,
|
|
14121
13646
|
type: Div
|
|
@@ -14123,7 +13648,7 @@ const getChatHeaderDomDetailMode = (selectedSessionTitle, authEnabled = false, a
|
|
|
14123
13648
|
childCount: 1,
|
|
14124
13649
|
className: ChatHeaderLabel,
|
|
14125
13650
|
type: H2
|
|
14126
|
-
}, text(selectedSessionTitle), ...getChatHeaderActionsDom('detail'
|
|
13651
|
+
}, text(selectedSessionTitle), ...getChatHeaderActionsDom('detail'), ...getAuthErrorDom(hasAuthError, authErrorMessage)];
|
|
14127
13652
|
};
|
|
14128
13653
|
|
|
14129
13654
|
const getChatModeDetailVirtualDom = ({
|
|
@@ -14132,7 +13657,6 @@ const getChatModeDetailVirtualDom = ({
|
|
|
14132
13657
|
agentModePickerOpen = false,
|
|
14133
13658
|
authEnabled = false,
|
|
14134
13659
|
authErrorMessage = '',
|
|
14135
|
-
authStatus = 'signed-out',
|
|
14136
13660
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14137
13661
|
composerAttachmentPreviewOverlayError = false,
|
|
14138
13662
|
composerAttachments,
|
|
@@ -14173,6 +13697,8 @@ const getChatModeDetailVirtualDom = ({
|
|
|
14173
13697
|
tokensUsed,
|
|
14174
13698
|
usageOverviewEnabled,
|
|
14175
13699
|
useChatMathWorker = false,
|
|
13700
|
+
userName = '',
|
|
13701
|
+
userState = 'loggedOut',
|
|
14176
13702
|
visibleModels = models,
|
|
14177
13703
|
voiceDictationEnabled = false
|
|
14178
13704
|
}) => {
|
|
@@ -14193,7 +13719,7 @@ const getChatModeDetailVirtualDom = ({
|
|
|
14193
13719
|
onDragEnter: HandleDragEnterChatView,
|
|
14194
13720
|
onDragOver: HandleDragOverChatView,
|
|
14195
13721
|
type: Div
|
|
14196
|
-
}, ...getChatHeaderDomDetailMode(selectedSessionTitle, authEnabled,
|
|
13722
|
+
}, ...getChatHeaderDomDetailMode(selectedSessionTitle, authEnabled, userState, userName, authErrorMessage), ...getMessagesDom(messages, parsedMessages, openRouterApiKeyInput, openApiApiKeyInput, openApiApiKeyState, openApiApiKeysSettingsUrl, openApiApiKeyInputPattern, openRouterApiKeyState, messagesScrollTop, useChatMathWorker), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, false, false, '', [], '', hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, showCreatePullRequestButton, voiceDictationEnabled, scrollDownButtonEnabled, messagesAutoScrollEnabled), ...getChatOverlaysVirtualDom({
|
|
14197
13723
|
agentMode,
|
|
14198
13724
|
agentModePickerVisible: isAgentModePickerVisible,
|
|
14199
13725
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
@@ -14229,20 +13755,20 @@ const getChatSearchDom = (hasSearchField, searchValue) => {
|
|
|
14229
13755
|
value: searchValue
|
|
14230
13756
|
}];
|
|
14231
13757
|
};
|
|
14232
|
-
const getChatHeaderListModeDom = (authEnabled = false,
|
|
13758
|
+
const getChatHeaderListModeDom = (authEnabled = false, userState = 'loggedOut', userName = '', authErrorMessage = '', searchEnabled = false, searchFieldVisible = false, searchValue = '') => {
|
|
14233
13759
|
const hasAuthError = authEnabled && !!authErrorMessage;
|
|
14234
13760
|
const hasSearchField = searchEnabled && searchFieldVisible;
|
|
14235
|
-
const headerChildCount = 2 + (hasAuthError ? 1 : 0) + (hasSearchField ? 1 : 0);
|
|
13761
|
+
const headerChildCount = 2 + (authEnabled ? 1 : 0) + (hasAuthError ? 1 : 0) + (hasSearchField ? 1 : 0);
|
|
14236
13762
|
return [{
|
|
14237
13763
|
childCount: headerChildCount,
|
|
14238
13764
|
className: ChatHeader,
|
|
14239
13765
|
onContextMenu: HandleChatHeaderContextMenu,
|
|
14240
13766
|
type: Header
|
|
14241
|
-
}, {
|
|
13767
|
+
}, ...getChatHeaderAuthDom(authEnabled, userState, userName), {
|
|
14242
13768
|
childCount: 1,
|
|
14243
13769
|
className: ChatHeaderLabel,
|
|
14244
13770
|
type: H2
|
|
14245
|
-
}, text(chats()), ...getChatHeaderActionsDom('list',
|
|
13771
|
+
}, text(chats()), ...getChatHeaderActionsDom('list', searchEnabled), ...getChatSearchDom(hasSearchField, searchValue), ...(hasAuthError ? [{
|
|
14246
13772
|
childCount: 1,
|
|
14247
13773
|
className: ChatAuthError,
|
|
14248
13774
|
type: Span
|
|
@@ -14288,7 +13814,7 @@ const getSessionDom = (session, focused = false) => {
|
|
|
14288
13814
|
type: Div
|
|
14289
13815
|
}, {
|
|
14290
13816
|
childCount: 0,
|
|
14291
|
-
className: `${ChatListItemStatusIcon}
|
|
13817
|
+
className: `${ChatListItemStatusIcon} ${sessionStatusClassName}`,
|
|
14292
13818
|
type: Div
|
|
14293
13819
|
}, {
|
|
14294
13820
|
childCount: 1,
|
|
@@ -14342,7 +13868,6 @@ const getChatModeListVirtualDom = ({
|
|
|
14342
13868
|
agentModePickerOpen = false,
|
|
14343
13869
|
authEnabled = false,
|
|
14344
13870
|
authErrorMessage = '',
|
|
14345
|
-
authStatus = 'signed-out',
|
|
14346
13871
|
chatListScrollTop = 0,
|
|
14347
13872
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14348
13873
|
composerAttachmentPreviewOverlayError = false,
|
|
@@ -14377,6 +13902,8 @@ const getChatModeListVirtualDom = ({
|
|
|
14377
13902
|
tokensMax,
|
|
14378
13903
|
tokensUsed,
|
|
14379
13904
|
usageOverviewEnabled,
|
|
13905
|
+
userName = '',
|
|
13906
|
+
userState = 'loggedOut',
|
|
14380
13907
|
visibleModels = models,
|
|
14381
13908
|
voiceDictationEnabled = false
|
|
14382
13909
|
}) => {
|
|
@@ -14395,7 +13922,7 @@ const getChatModeListVirtualDom = ({
|
|
|
14395
13922
|
onDragEnter: HandleDragEnterChatView,
|
|
14396
13923
|
onDragOver: HandleDragOverChatView,
|
|
14397
13924
|
type: Div
|
|
14398
|
-
}, ...getChatHeaderListModeDom(authEnabled,
|
|
13925
|
+
}, ...getChatHeaderListModeDom(authEnabled, userState, userName, authErrorMessage, searchEnabled, searchFieldVisible, searchValue), ...getChatListDom(visibleSessions, selectedSessionId, listFocusedIndex, chatListScrollTop), ...getChatSendAreaDom(composerValue, composerAttachments, agentMode, agentModePickerOpen, false, false, '', [], '', hasSpaceForAgentModePicker, modelPickerOpen, models, selectedModelId, reasoningPickerEnabled, reasoningEffort, reasoningEffortPickerOpen, usageOverviewEnabled, tokensUsed, tokensMax, addContextButtonEnabled, showRunMode, hasSpaceForRunModePicker, runMode, runModePickerOpen, todoListToolEnabled, todoListItems, false, voiceDictationEnabled), ...getChatOverlaysVirtualDom({
|
|
14399
13926
|
agentMode,
|
|
14400
13927
|
agentModePickerVisible: isAgentModePickerVisible,
|
|
14401
13928
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
@@ -14498,7 +14025,6 @@ const getChatVirtualDom = options => {
|
|
|
14498
14025
|
agentModePickerOpen = false,
|
|
14499
14026
|
authEnabled = false,
|
|
14500
14027
|
authErrorMessage = '',
|
|
14501
|
-
authStatus = 'signed-out',
|
|
14502
14028
|
chatListScrollTop,
|
|
14503
14029
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14504
14030
|
composerAttachmentPreviewOverlayError = false,
|
|
@@ -14510,6 +14036,10 @@ const getChatVirtualDom = options => {
|
|
|
14510
14036
|
composerHeight,
|
|
14511
14037
|
composerLineHeight,
|
|
14512
14038
|
composerValue,
|
|
14039
|
+
gitBranches = [],
|
|
14040
|
+
gitBranchPickerErrorMessage = '',
|
|
14041
|
+
gitBranchPickerOpen = false,
|
|
14042
|
+
gitBranchPickerVisible = false,
|
|
14513
14043
|
hasSpaceForAgentModePicker,
|
|
14514
14044
|
hasSpaceForRunModePicker,
|
|
14515
14045
|
listFocusedIndex = -1,
|
|
@@ -14547,6 +14077,8 @@ const getChatVirtualDom = options => {
|
|
|
14547
14077
|
tokensUsed,
|
|
14548
14078
|
usageOverviewEnabled,
|
|
14549
14079
|
useChatMathWorker = false,
|
|
14080
|
+
userName = '',
|
|
14081
|
+
userState = 'loggedOut',
|
|
14550
14082
|
viewMode,
|
|
14551
14083
|
visibleModels = models,
|
|
14552
14084
|
voiceDictationEnabled = false
|
|
@@ -14561,7 +14093,6 @@ const getChatVirtualDom = options => {
|
|
|
14561
14093
|
agentModePickerOpen,
|
|
14562
14094
|
authEnabled,
|
|
14563
14095
|
authErrorMessage,
|
|
14564
|
-
authStatus,
|
|
14565
14096
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14566
14097
|
composerAttachmentPreviewOverlayError,
|
|
14567
14098
|
composerAttachments,
|
|
@@ -14572,6 +14103,10 @@ const getChatVirtualDom = options => {
|
|
|
14572
14103
|
composerHeight,
|
|
14573
14104
|
composerLineHeight,
|
|
14574
14105
|
composerValue,
|
|
14106
|
+
gitBranches,
|
|
14107
|
+
gitBranchPickerErrorMessage,
|
|
14108
|
+
gitBranchPickerOpen,
|
|
14109
|
+
gitBranchPickerVisible,
|
|
14575
14110
|
hasSpaceForAgentModePicker,
|
|
14576
14111
|
hasSpaceForRunModePicker,
|
|
14577
14112
|
messagesAutoScrollEnabled,
|
|
@@ -14606,6 +14141,8 @@ const getChatVirtualDom = options => {
|
|
|
14606
14141
|
tokensUsed,
|
|
14607
14142
|
usageOverviewEnabled,
|
|
14608
14143
|
useChatMathWorker,
|
|
14144
|
+
userName,
|
|
14145
|
+
userState,
|
|
14609
14146
|
visibleModels,
|
|
14610
14147
|
voiceDictationEnabled
|
|
14611
14148
|
});
|
|
@@ -14616,7 +14153,6 @@ const getChatVirtualDom = options => {
|
|
|
14616
14153
|
agentModePickerOpen,
|
|
14617
14154
|
authEnabled,
|
|
14618
14155
|
authErrorMessage,
|
|
14619
|
-
authStatus,
|
|
14620
14156
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14621
14157
|
composerAttachmentPreviewOverlayError,
|
|
14622
14158
|
composerAttachments,
|
|
@@ -14657,6 +14193,8 @@ const getChatVirtualDom = options => {
|
|
|
14657
14193
|
tokensUsed,
|
|
14658
14194
|
usageOverviewEnabled,
|
|
14659
14195
|
useChatMathWorker,
|
|
14196
|
+
userName,
|
|
14197
|
+
userState,
|
|
14660
14198
|
visibleModels,
|
|
14661
14199
|
voiceDictationEnabled
|
|
14662
14200
|
});
|
|
@@ -14667,7 +14205,6 @@ const getChatVirtualDom = options => {
|
|
|
14667
14205
|
agentModePickerOpen,
|
|
14668
14206
|
authEnabled,
|
|
14669
14207
|
authErrorMessage,
|
|
14670
|
-
authStatus,
|
|
14671
14208
|
chatListScrollTop,
|
|
14672
14209
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14673
14210
|
composerAttachmentPreviewOverlayError,
|
|
@@ -14702,6 +14239,8 @@ const getChatVirtualDom = options => {
|
|
|
14702
14239
|
tokensMax,
|
|
14703
14240
|
tokensUsed,
|
|
14704
14241
|
usageOverviewEnabled,
|
|
14242
|
+
userName,
|
|
14243
|
+
userState,
|
|
14705
14244
|
visibleModels,
|
|
14706
14245
|
voiceDictationEnabled
|
|
14707
14246
|
});
|
|
@@ -14717,7 +14256,6 @@ const renderItems = (oldState, newState) => {
|
|
|
14717
14256
|
agentModePickerOpen,
|
|
14718
14257
|
authEnabled,
|
|
14719
14258
|
authErrorMessage,
|
|
14720
|
-
authStatus,
|
|
14721
14259
|
chatListScrollTop,
|
|
14722
14260
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14723
14261
|
composerAttachmentPreviewOverlayError,
|
|
@@ -14729,6 +14267,10 @@ const renderItems = (oldState, newState) => {
|
|
|
14729
14267
|
composerHeight,
|
|
14730
14268
|
composerLineHeight,
|
|
14731
14269
|
composerValue,
|
|
14270
|
+
gitBranches,
|
|
14271
|
+
gitBranchPickerErrorMessage,
|
|
14272
|
+
gitBranchPickerOpen,
|
|
14273
|
+
gitBranchPickerVisible,
|
|
14732
14274
|
hasSpaceForAgentModePicker,
|
|
14733
14275
|
hasSpaceForRunModePicker,
|
|
14734
14276
|
initial,
|
|
@@ -14768,6 +14310,8 @@ const renderItems = (oldState, newState) => {
|
|
|
14768
14310
|
uid,
|
|
14769
14311
|
usageOverviewEnabled,
|
|
14770
14312
|
useChatMathWorker,
|
|
14313
|
+
userName,
|
|
14314
|
+
userState,
|
|
14771
14315
|
viewMode,
|
|
14772
14316
|
visibleModels,
|
|
14773
14317
|
voiceDictationEnabled
|
|
@@ -14781,7 +14325,6 @@ const renderItems = (oldState, newState) => {
|
|
|
14781
14325
|
agentModePickerOpen,
|
|
14782
14326
|
authEnabled,
|
|
14783
14327
|
authErrorMessage,
|
|
14784
|
-
authStatus,
|
|
14785
14328
|
chatListScrollTop,
|
|
14786
14329
|
composerAttachmentPreviewOverlayAttachmentId,
|
|
14787
14330
|
composerAttachmentPreviewOverlayError,
|
|
@@ -14793,6 +14336,10 @@ const renderItems = (oldState, newState) => {
|
|
|
14793
14336
|
composerHeight,
|
|
14794
14337
|
composerLineHeight,
|
|
14795
14338
|
composerValue,
|
|
14339
|
+
gitBranches,
|
|
14340
|
+
gitBranchPickerErrorMessage,
|
|
14341
|
+
gitBranchPickerOpen,
|
|
14342
|
+
gitBranchPickerVisible,
|
|
14796
14343
|
hasSpaceForAgentModePicker,
|
|
14797
14344
|
hasSpaceForRunModePicker,
|
|
14798
14345
|
listFocusedIndex,
|
|
@@ -14830,6 +14377,8 @@ const renderItems = (oldState, newState) => {
|
|
|
14830
14377
|
tokensUsed,
|
|
14831
14378
|
usageOverviewEnabled,
|
|
14832
14379
|
useChatMathWorker,
|
|
14380
|
+
userName,
|
|
14381
|
+
userState,
|
|
14833
14382
|
viewMode,
|
|
14834
14383
|
visibleModels,
|
|
14835
14384
|
voiceDictationEnabled
|
|
@@ -14876,8 +14425,16 @@ const renderSelection = (oldState, newState) => {
|
|
|
14876
14425
|
const renderValue = (oldState, newState) => {
|
|
14877
14426
|
const {
|
|
14878
14427
|
composerValue,
|
|
14428
|
+
openApiApiKeyInput,
|
|
14429
|
+
openRouterApiKeyInput,
|
|
14879
14430
|
uid
|
|
14880
14431
|
} = newState;
|
|
14432
|
+
if (oldState.openApiApiKeyInput !== openApiApiKeyInput) {
|
|
14433
|
+
return [SetValueByName, uid, OpenApiApiKeyInput, openApiApiKeyInput];
|
|
14434
|
+
}
|
|
14435
|
+
if (oldState.openRouterApiKeyInput !== openRouterApiKeyInput) {
|
|
14436
|
+
return [SetValueByName, uid, OpenRouterApiKeyInput, openRouterApiKeyInput];
|
|
14437
|
+
}
|
|
14881
14438
|
return [SetValueByName, uid, Composer, composerValue];
|
|
14882
14439
|
};
|
|
14883
14440
|
|
|
@@ -14971,6 +14528,9 @@ const renderEventListeners = () => {
|
|
|
14971
14528
|
}, {
|
|
14972
14529
|
name: HandleClickAgentModePickerToggle,
|
|
14973
14530
|
params: ['openAgentModePicker']
|
|
14531
|
+
}, {
|
|
14532
|
+
name: HandleClickGitBranchPickerToggle,
|
|
14533
|
+
params: ['handleClickGitBranchPickerToggle']
|
|
14974
14534
|
}, {
|
|
14975
14535
|
name: HandleClickModelPickerOverlay,
|
|
14976
14536
|
params: ['handleClickModelPickerOverlay', DefaultPrevented]
|
|
@@ -15129,6 +14689,10 @@ const reset = async state => {
|
|
|
15129
14689
|
composerSelectionEnd: 0,
|
|
15130
14690
|
composerSelectionStart: 0,
|
|
15131
14691
|
composerValue: '',
|
|
14692
|
+
gitBranches: [],
|
|
14693
|
+
gitBranchPickerErrorMessage: '',
|
|
14694
|
+
gitBranchPickerOpen: false,
|
|
14695
|
+
gitBranchPickerVisible: false,
|
|
15132
14696
|
mockAiResponseDelay: 0,
|
|
15133
14697
|
modelPickerHeight: getModelPickerHeight(state.modelPickerHeaderHeight, state.models.length),
|
|
15134
14698
|
modelPickerListScrollTop: 0,
|
|
@@ -15208,7 +14772,6 @@ const saveState = state => {
|
|
|
15208
14772
|
selectedModelId,
|
|
15209
14773
|
selectedProjectId,
|
|
15210
14774
|
selectedSessionId,
|
|
15211
|
-
systemPrompt,
|
|
15212
14775
|
viewMode
|
|
15213
14776
|
} = state;
|
|
15214
14777
|
return {
|
|
@@ -15231,7 +14794,6 @@ const saveState = state => {
|
|
|
15231
14794
|
selectedModelId,
|
|
15232
14795
|
selectedProjectId,
|
|
15233
14796
|
selectedSessionId,
|
|
15234
|
-
systemPrompt,
|
|
15235
14797
|
viewMode
|
|
15236
14798
|
};
|
|
15237
14799
|
};
|
|
@@ -15246,7 +14808,13 @@ const setAddContextButtonEnabled = (state, addContextButtonEnabled) => {
|
|
|
15246
14808
|
const setAuthEnabled = (state, authEnabled) => {
|
|
15247
14809
|
return {
|
|
15248
14810
|
...state,
|
|
15249
|
-
authEnabled
|
|
14811
|
+
authAccessToken: authEnabled ? state.authAccessToken : '',
|
|
14812
|
+
authEnabled,
|
|
14813
|
+
authErrorMessage: authEnabled ? state.authErrorMessage : '',
|
|
14814
|
+
userName: authEnabled ? state.userName : '',
|
|
14815
|
+
userState: authEnabled ? state.userState : 'loggedOut',
|
|
14816
|
+
userSubscriptionPlan: authEnabled ? state.userSubscriptionPlan : '',
|
|
14817
|
+
userUsedTokens: authEnabled ? state.userUsedTokens : 0
|
|
15250
14818
|
};
|
|
15251
14819
|
};
|
|
15252
14820
|
|
|
@@ -15393,18 +14961,6 @@ const setUseChatMathWorker = async (state, useChatMathWorker, persist = true) =>
|
|
|
15393
14961
|
};
|
|
15394
14962
|
};
|
|
15395
14963
|
|
|
15396
|
-
const setUseChatMessageParsingWorker = async (state, useChatMessageParsingWorker, persist = true) => {
|
|
15397
|
-
if (persist) {
|
|
15398
|
-
await update({
|
|
15399
|
-
'chatView.useChatMessageParsingWorker': useChatMessageParsingWorker
|
|
15400
|
-
});
|
|
15401
|
-
}
|
|
15402
|
-
return {
|
|
15403
|
-
...state,
|
|
15404
|
-
useChatMessageParsingWorker
|
|
15405
|
-
};
|
|
15406
|
-
};
|
|
15407
|
-
|
|
15408
14964
|
const setUseChatNetworkWorkerForRequests = async (state, useChatNetworkWorkerForRequests, persist = true) => {
|
|
15409
14965
|
if (persist) {
|
|
15410
14966
|
await update({
|
|
@@ -15440,6 +14996,7 @@ const commandMap = {
|
|
|
15440
14996
|
'Chat.chatListFocusNext': wrapCommand(chatListFocusNext),
|
|
15441
14997
|
'Chat.chatListFocusPrevious': wrapCommand(chatListFocusPrevious),
|
|
15442
14998
|
'Chat.clearInput': wrapCommand(clearInput),
|
|
14999
|
+
'Chat.closeGitBranchPicker': wrapCommand(closeGitBranchPicker),
|
|
15443
15000
|
'Chat.copyInput': wrapCommand(copyInput),
|
|
15444
15001
|
'Chat.create': create,
|
|
15445
15002
|
'Chat.cutInput': wrapCommand(cutInput),
|
|
@@ -15468,6 +15025,7 @@ const commandMap = {
|
|
|
15468
15025
|
'Chat.handleClickDelete': wrapCommand(handleClickDelete),
|
|
15469
15026
|
'Chat.handleClickDictationButton': wrapCommand(handleClickDictationButton),
|
|
15470
15027
|
'Chat.handleClickFileName': wrapCommand(handleClickFileName),
|
|
15028
|
+
'Chat.handleClickGitBranchPickerToggle': wrapCommand(handleClickGitBranchPickerToggle),
|
|
15471
15029
|
'Chat.handleClickList': wrapCommand(handleClickList),
|
|
15472
15030
|
'Chat.handleClickModelPickerList': wrapCommand(handleClickModelPickerList),
|
|
15473
15031
|
'Chat.handleClickModelPickerListIndex': wrapCommand(handleClickModelPickerListIndex),
|
|
@@ -15519,6 +15077,7 @@ const commandMap = {
|
|
|
15519
15077
|
'Chat.mockOpenApiStreamPushChunk': wrapCommand(mockOpenApiStreamPushChunk),
|
|
15520
15078
|
'Chat.mockOpenApiStreamReset': wrapCommand(mockOpenApiStreamReset),
|
|
15521
15079
|
'Chat.openAgentModePicker': wrapCommand(openAgentModePicker),
|
|
15080
|
+
'Chat.openGitBranchPicker': wrapCommand(openGitBranchPicker),
|
|
15522
15081
|
'Chat.openMockProject': wrapCommand(openMockProject),
|
|
15523
15082
|
'Chat.openMockSession': wrapCommand(openMockSession),
|
|
15524
15083
|
'Chat.openModelPicker': wrapCommand(openModelPicker),
|
|
@@ -15553,7 +15112,6 @@ const commandMap = {
|
|
|
15553
15112
|
'Chat.setToolEnablement': wrapCommand(setToolEnablement),
|
|
15554
15113
|
'Chat.setUseChatCoordinatorWorker': wrapCommand(setUseChatCoordinatorWorker),
|
|
15555
15114
|
'Chat.setUseChatMathWorker': wrapCommand(setUseChatMathWorker),
|
|
15556
|
-
'Chat.setUseChatMessageParsingWorker': wrapCommand(setUseChatMessageParsingWorker),
|
|
15557
15115
|
'Chat.setUseChatNetworkWorkerForRequests': wrapCommand(setUseChatNetworkWorkerForRequests),
|
|
15558
15116
|
'Chat.showComposerAttachmentPreviewOverlay': wrapCommand(showComposerAttachmentPreviewOverlay),
|
|
15559
15117
|
'Chat.terminate': terminate,
|