mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-06 13:43:35 +00:00
perf: defer realtime smoke live imports (#100002)
This commit is contained in:
committed by
GitHub
parent
ba7b5db74c
commit
e643828af6
@@ -3,10 +3,6 @@ import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
||||
import { tmpdir } from "node:os";
|
||||
import path from "node:path";
|
||||
import { pathToFileURL } from "node:url";
|
||||
import { GoogleGenAI, Modality } from "@google/genai";
|
||||
import { chromium, type Browser } from "playwright";
|
||||
import { createServer } from "vite";
|
||||
import { buildOpenAIRealtimeVoiceProvider } from "../../extensions/openai/realtime-voice-provider.ts";
|
||||
import { readBoundedResponseText } from "../lib/bounded-response.ts";
|
||||
import {
|
||||
parseStrictIntegerOption,
|
||||
@@ -30,6 +26,10 @@ type RealtimeSmokeCliOptions = {
|
||||
help: boolean;
|
||||
};
|
||||
|
||||
// Keep live stacks behind their owning smoke paths so help and safety helpers stay lightweight.
|
||||
type Browser = import("playwright").Browser;
|
||||
type ViteDevServer = Awaited<ReturnType<(typeof import("vite"))["createServer"]>>;
|
||||
|
||||
type SmokeResult = {
|
||||
name: string;
|
||||
ok: boolean;
|
||||
@@ -269,6 +269,8 @@ async function createOpenAIClientSecret(
|
||||
}
|
||||
|
||||
async function smokeOpenAIBackendBridge(apiKey: string): Promise<SmokeResult> {
|
||||
const { buildOpenAIRealtimeVoiceProvider } =
|
||||
await import("../../extensions/openai/realtime-voice-provider.ts");
|
||||
const provider = buildOpenAIRealtimeVoiceProvider();
|
||||
const events: string[] = [];
|
||||
const bridge = provider.createBridge({
|
||||
@@ -445,6 +447,7 @@ async function smokeOpenAIWebRtc(browser: Browser, apiKey: string): Promise<Smok
|
||||
}
|
||||
|
||||
async function createGoogleLiveToken(apiKey: string): Promise<string> {
|
||||
const { GoogleGenAI, Modality } = await import("@google/genai");
|
||||
const ai = new GoogleGenAI({
|
||||
apiKey,
|
||||
httpOptions: { apiVersion: "v1alpha" },
|
||||
@@ -574,9 +577,10 @@ async function smokeGoogleLiveBrowserWs(browser: Browser, apiKey: string): Promi
|
||||
}
|
||||
|
||||
async function smokeGatewayRelayBrowser(browser: Browser): Promise<SmokeResult> {
|
||||
let server: Awaited<ReturnType<typeof createServer>> | undefined;
|
||||
let server: ViteDevServer | undefined;
|
||||
const dir = await mkdtemp(path.join(tmpdir(), "openclaw-realtime-talk-"));
|
||||
try {
|
||||
const { createServer } = await import("vite");
|
||||
const repoRoot = process.cwd().replaceAll("\\", "/");
|
||||
const relayModulePath = JSON.stringify(
|
||||
`/@fs/${repoRoot}/ui/src/ui/chat/realtime-talk-gateway-relay.ts`,
|
||||
@@ -766,6 +770,7 @@ async function main(argv = process.argv.slice(2)): Promise<void> {
|
||||
console.log(usage());
|
||||
return;
|
||||
}
|
||||
const { chromium } = await import("playwright");
|
||||
const openAIKey = getEnv("OPENAI_API_KEY");
|
||||
const googleKey = getEnv("GEMINI_API_KEY") ?? getEnv("GOOGLE_API_KEY");
|
||||
const browser = await chromium.launch({
|
||||
|
||||
Reference in New Issue
Block a user