Fix webview in dev mode (#7044)

This commit is contained in:
Chris Estreich 2025-08-12 22:40:00 -10:00 committed by GitHub
parent 9ffc2b0a36
commit 962df868bd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 33 additions and 47 deletions

View file

@ -16,7 +16,7 @@
},
"webview-ui": {
"entry": ["src/index.tsx"],
"project": ["src/**/*.{ts,tsx}"]
"project": ["src/**/*.{ts,tsx}", "../src/shared/*.ts"]
},
"packages/{build,cloud,evals,ipc,telemetry,types}": {
"project": ["src/**/*.ts"]

3
pnpm-lock.yaml generated
View file

@ -896,9 +896,6 @@ importers:
'@radix-ui/react-tooltip':
specifier: ^1.1.8
version: 1.2.6(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@roo-code/cloud':
specifier: ^0.13.0
version: 0.13.0
'@roo-code/types':
specifier: workspace:^
version: link:../packages/types

View file

@ -14,13 +14,6 @@ const config = {
npmPath: "npm",
watchCommand: "pnpm build:development:watch",
},
{
name: "@roo-code/cloud",
sourcePath: "../Roo-Code-Cloud/packages/sdk",
targetPath: "webview-ui/node_modules/@roo-code/cloud",
npmPath: "npm",
watchCommand: "pnpm build:development:watch",
},
],
}

8
src/shared/cloud.ts Normal file
View file

@ -0,0 +1,8 @@
import { CloudUserInfo, OrganizationAllowList, ShareVisibility } from "@roo-code/cloud"
export type { CloudUserInfo, OrganizationAllowList, ShareVisibility }
export const ORGANIZATION_ALLOW_ALL: OrganizationAllowList = {
allowAll: true,
providers: {},
} as const

View file

@ -29,7 +29,6 @@
"@radix-ui/react-slider": "^1.2.3",
"@radix-ui/react-slot": "^1.1.2",
"@radix-ui/react-tooltip": "^1.1.8",
"@roo-code/cloud": "^0.13.0",
"@roo-code/types": "workspace:^",
"@tailwindcss/vite": "^4.0.0",
"@tanstack/react-query": "^5.68.0",

View file

@ -1,18 +0,0 @@
/**
* Minimal mock for the vscode module.
* Used in tests to prevent module resolution errors.
* The actual vscode API is only available in VS Code extension contexts.
*/
export const window = {
showInformationMessage: vi.fn(),
showErrorMessage: vi.fn(),
}
export const env = {
openExternal: vi.fn(),
}
export const Uri = {
parse: vi.fn((uri: string) => ({ toString: () => uri })),
}

View file

@ -2,7 +2,8 @@ import { useEffect, useRef } from "react"
import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"
import { TelemetryEventName } from "@roo-code/types"
import type { CloudUserInfo } from "@roo-code/cloud"
import type { CloudUserInfo } from "@roo/cloud"
import { useAppTranslation } from "@src/i18n/TranslationContext"
import { useExtensionState } from "@src/context/ExtensionStateContext"

View file

@ -3,7 +3,8 @@ import { useTranslation } from "react-i18next"
import { SquareArrowOutUpRightIcon } from "lucide-react"
import { type HistoryItem, TelemetryEventName } from "@roo-code/types"
import type { ShareVisibility } from "@roo-code/cloud"
import type { ShareVisibility } from "@roo/cloud"
import { vscode } from "@/utils/vscode"
import { telemetryClient } from "@/utils/TelemetryClient"

View file

@ -3,7 +3,8 @@ import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
import { AlertTriangle } from "lucide-react"
import type { ProviderSettingsEntry } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { useAppTranslation } from "@/i18n/TranslationContext"
import {

View file

@ -4,7 +4,8 @@ import { Trans } from "react-i18next"
import { ChevronsUpDown, Check, X } from "lucide-react"
import type { ProviderSettings, ModelInfo } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { useAppTranslation } from "@src/i18n/TranslationContext"
import { useSelectedModel } from "@/components/ui/hooks/useSelectedModel"

View file

@ -2,8 +2,8 @@ import { useCallback } from "react"
import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
import { type ProviderSettings, glamaDefaultModelId } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import type { RouterModels } from "@roo/api"
import { useAppTranslation } from "@src/i18n/TranslationContext"

View file

@ -2,7 +2,8 @@ import { useCallback } from "react"
import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
import { type ProviderSettings, ioIntelligenceDefaultModelId, ioIntelligenceModels } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { useAppTranslation } from "@src/i18n/TranslationContext"
import { VSCodeButtonLink } from "@src/components/common/VSCodeButtonLink"

View file

@ -2,8 +2,8 @@ import { useCallback, useState, useEffect, useRef } from "react"
import { VSCodeTextField, VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react"
import { type ProviderSettings, litellmDefaultModelId } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { RouterName } from "@roo/api"
import { ExtensionMessage } from "@roo/ExtensionMessage"

View file

@ -10,8 +10,8 @@ import {
azureOpenAiDefaultApiVersion,
openAiModelInfoSaneDefaults,
} from "@roo-code/types"
import { type OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { ExtensionMessage } from "@roo/ExtensionMessage"
import { useAppTranslation } from "@src/i18n/TranslationContext"

View file

@ -4,8 +4,8 @@ import { Checkbox } from "vscrui"
import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
import { type ProviderSettings, openRouterDefaultModelId } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import type { RouterModels } from "@roo/api"
import { useAppTranslation } from "@src/i18n/TranslationContext"

View file

@ -2,8 +2,8 @@ import { useCallback, useEffect, useState } from "react"
import { VSCodeCheckbox, VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
import { type ProviderSettings, requestyDefaultModelId } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import type { RouterModels } from "@roo/api"
import { vscode } from "@src/utils/vscode"

View file

@ -3,8 +3,8 @@ import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
import { useQueryClient } from "@tanstack/react-query"
import { type ProviderSettings, unboundDefaultModelId } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import type { RouterModels } from "@roo/api"
import { useAppTranslation } from "@src/i18n/TranslationContext"

View file

@ -1,5 +1,6 @@
import type { ModelInfo } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { filterProviders, filterModels } from "../organizationFilters"

View file

@ -1,5 +1,6 @@
import type { ProviderName, ModelInfo } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
export const filterProviders = (
providers: Array<{ value: string; label: string }>,

View file

@ -7,7 +7,8 @@ import {
type ModeConfig,
type ExperimentId,
} from "@roo-code/types"
import { type OrganizationAllowList, ORGANIZATION_ALLOW_ALL } from "@roo-code/cloud"
import { type OrganizationAllowList, ORGANIZATION_ALLOW_ALL } from "@roo/cloud"
import { ExtensionMessage, ExtensionState, MarketplaceInstalledMetadata, Command } from "@roo/ExtensionMessage"
import { findLastIndex } from "@roo/array"

View file

@ -1,6 +1,6 @@
import type { ProviderSettings } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { RouterModels } from "@roo/api"
import { getModelValidationError, validateApiConfigurationExcludingModelErrors } from "../validate"

View file

@ -1,8 +1,8 @@
import i18next from "i18next"
import type { ProviderSettings } from "@roo-code/types"
import type { OrganizationAllowList } from "@roo-code/cloud"
import type { OrganizationAllowList } from "@roo/cloud"
import { isRouterName, RouterModels } from "@roo/api"
export function validateApiConfiguration(

View file

@ -100,7 +100,6 @@ export default defineConfig(({ mode }) => {
// Ensure source maps are properly included in the build
minify: mode === "production" ? "esbuild" : false,
rollupOptions: {
external: ["vscode"],
output: {
entryFileNames: `assets/[name].js`,
chunkFileNames: (chunkInfo) => {