diff --git a/extensions/anthropic-vertex/api.ts b/extensions/anthropic-vertex/api.ts index 7b37892df88..dd62cafba68 100644 --- a/extensions/anthropic-vertex/api.ts +++ b/extensions/anthropic-vertex/api.ts @@ -17,6 +17,13 @@ export { import { buildAnthropicVertexProvider } from "./provider-catalog.js"; import { hasAnthropicVertexAvailableAuth } from "./region.js"; +let streamRuntimeModulePromise: Promise | null = null; + +const loadStreamRuntimeModule = async () => { + streamRuntimeModulePromise ??= import("./stream-runtime.js"); + return await streamRuntimeModulePromise; +}; + export function mergeImplicitAnthropicVertexProvider(params: { existing?: ReturnType; implicit: ReturnType; @@ -50,7 +57,7 @@ export function createAnthropicVertexStreamFn( baseURL?: string, deps?: AnthropicVertexStreamDeps, ): StreamFn { - const streamFnPromise = import("./stream-runtime.js").then((runtime) => + const streamFnPromise = loadStreamRuntimeModule().then((runtime) => runtime.createAnthropicVertexStreamFn(projectId, region, baseURL, deps), ); return async (model, context, options) => { @@ -64,7 +71,7 @@ export function createAnthropicVertexStreamFnForModel( env: NodeJS.ProcessEnv = process.env, deps?: AnthropicVertexStreamDeps, ): StreamFn { - const streamFnPromise = import("./stream-runtime.js").then((runtime) => + const streamFnPromise = loadStreamRuntimeModule().then((runtime) => runtime.createAnthropicVertexStreamFnForModel(model, env, deps), ); return async (...args) => { diff --git a/extensions/codex/src/app-server/client-factory.ts b/extensions/codex/src/app-server/client-factory.ts index 8b042d8d4bf..6da1f219ea6 100644 --- a/extensions/codex/src/app-server/client-factory.ts +++ b/extensions/codex/src/app-server/client-factory.ts @@ -13,13 +13,20 @@ export type CodexAppServerClientFactory = ( config?: AuthProfileOrderConfig, ) => Promise; +let sharedClientModulePromise: Promise | null = null; + +const loadSharedClientModule = async () => { + sharedClientModulePromise ??= import("./shared-client.js"); + return await sharedClientModulePromise; +}; + export const defaultCodexAppServerClientFactory: CodexAppServerClientFactory = ( startOptions, authProfileId, agentDir, config, ) => - import("./shared-client.js").then(({ getSharedCodexAppServerClient }) => + loadSharedClientModule().then(({ getSharedCodexAppServerClient }) => getSharedCodexAppServerClient({ startOptions, authProfileId, agentDir, config }), ); @@ -29,6 +36,6 @@ export const defaultLeasedCodexAppServerClientFactory: CodexAppServerClientFacto agentDir, config, ) => - import("./shared-client.js").then(({ getLeasedSharedCodexAppServerClient }) => + loadSharedClientModule().then(({ getLeasedSharedCodexAppServerClient }) => getLeasedSharedCodexAppServerClient({ startOptions, authProfileId, agentDir, config }), );