From ac64f8b3ccd0d0fb25b7543c21e1b71a521e41d0 Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Sat, 17 Oct 2026 20:01:57 -0700 Subject: [PATCH 1/2] perf(permission): defer the grok responses import off reactor boot --- src/auth/codex/constants.ts | 26 ++++++++++++++----- src/auth/xai/constants.ts | 22 ++++++++++++---- src/permission/reactor-authorize.ts | 5 +++- src/provider/grok-responses-id.ts | 1 + src/provider/grok-responses.ts | 2 +- src/session/runtime-core-import.test.ts | 34 +++++++++++++++++++++++++ src/subagent/provider-family.ts | 2 +- 7 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 src/provider/grok-responses-id.ts create mode 100644 src/session/runtime-core-import.test.ts diff --git a/src/auth/codex/constants.ts b/src/auth/codex/constants.ts index b81fab440..acf803c0a 100644 --- a/src/auth/codex/constants.ts +++ b/src/auth/codex/constants.ts @@ -1,11 +1,25 @@ +import { createRequire } from "node:module"; +import { fileURLToPath, pathToFileURL } from "node:url"; import { callbackTargetFor } from "@corbits/oauth-core"; -import { codexOAuthConfig } from "@corbits/codex-provider"; -export { - CODEX_BASE_URL, - CODEX_REDIRECT_URI, - CODEX_RESPONSES_PATH, -} from "@corbits/codex-provider"; +const require = createRequire(import.meta.url); +const packageIndex = pathToFileURL(require.resolve("@corbits/codex-provider")); +const codexConstants = require( + fileURLToPath(new URL("./constants.js", packageIndex)), +) as { + CODEX_BASE_URL: string; + CODEX_REDIRECT_URI: string; + CODEX_RESPONSES_PATH: string; +}; +const { codexOAuthConfig } = require( + fileURLToPath(new URL("./oauth.js", packageIndex)), +) as { + codexOAuthConfig: Parameters[0]; +}; + +export const CODEX_BASE_URL = codexConstants.CODEX_BASE_URL; +export const CODEX_REDIRECT_URI = codexConstants.CODEX_REDIRECT_URI; +export const CODEX_RESPONSES_PATH = codexConstants.CODEX_RESPONSES_PATH; const callbackTarget = callbackTargetFor(codexOAuthConfig); export const CODEX_CALLBACK_HOST = callbackTarget.host; diff --git a/src/auth/xai/constants.ts b/src/auth/xai/constants.ts index e8ad3b3fd..809082e86 100644 --- a/src/auth/xai/constants.ts +++ b/src/auth/xai/constants.ts @@ -1,9 +1,21 @@ +import { createRequire } from "node:module"; +import { fileURLToPath, pathToFileURL } from "node:url"; import { callbackTargetFor } from "@corbits/oauth-core"; -import { - XAI_DEFAULT_MODELS as VENDOR_XAI_DEFAULT_MODELS, - XAI_OAUTH_PROXY_BASE_URL as XAI_BASE_URL, - xaiOAuthConfig, -} from "@corbits/xai-provider"; + +const require = createRequire(import.meta.url); +const packageIndex = pathToFileURL(require.resolve("@corbits/xai-provider")); +const { + XAI_DEFAULT_MODELS: VENDOR_XAI_DEFAULT_MODELS, + XAI_OAUTH_PROXY_BASE_URL: XAI_BASE_URL, +} = require(fileURLToPath(new URL("./constants.js", packageIndex))) as { + XAI_DEFAULT_MODELS: readonly string[]; + XAI_OAUTH_PROXY_BASE_URL: string; +}; +const { xaiOAuthConfig } = require( + fileURLToPath(new URL("./oauth.js", packageIndex)), +) as { + xaiOAuthConfig: Parameters[0]; +}; export { XAI_BASE_URL }; diff --git a/src/permission/reactor-authorize.ts b/src/permission/reactor-authorize.ts index f1e5666e6..3f44afdd8 100644 --- a/src/permission/reactor-authorize.ts +++ b/src/permission/reactor-authorize.ts @@ -14,7 +14,10 @@ import { getLogger } from "@intx/log"; import { LOG_NAMESPACE_ROOT } from "../branding.js"; -import { ToolCall, type ToolCall as ToolCallType } from "@intx/types/runtime"; +import { + ToolCall, + type ToolCall as ToolCallType, +} from "@intx/types/runtime-core"; import { type } from "arktype"; import type { AuthzCallResult } from "@intx/inference"; diff --git a/src/provider/grok-responses-id.ts b/src/provider/grok-responses-id.ts new file mode 100644 index 000000000..2b31e5547 --- /dev/null +++ b/src/provider/grok-responses-id.ts @@ -0,0 +1 @@ +export const GROK_RESPONSES_PROVIDER = "grok-responses"; diff --git a/src/provider/grok-responses.ts b/src/provider/grok-responses.ts index 590be89dd..271135da6 100644 --- a/src/provider/grok-responses.ts +++ b/src/provider/grok-responses.ts @@ -2,7 +2,7 @@ import { responsesAdapterFactory } from "@corbits/openai-responses"; import { XAI_USER_ID_OPTION, xaiResponsesQuirks } from "@corbits/xai-provider"; import type { AdapterFactory } from "@intx/inference"; -export const GROK_RESPONSES_PROVIDER = "grok-responses"; +export { GROK_RESPONSES_PROVIDER } from "./grok-responses-id.js"; export const GROK_USER_ID_OPTION = "grokUserId"; export const GROK_SESSION_ID_OPTION = "grokSessionId"; diff --git a/src/session/runtime-core-import.test.ts b/src/session/runtime-core-import.test.ts new file mode 100644 index 000000000..2a78ee6f8 --- /dev/null +++ b/src/session/runtime-core-import.test.ts @@ -0,0 +1,34 @@ +import { describe, expect, test } from "bun:test"; +import { spawnSync } from "node:child_process"; +import { fileURLToPath } from "node:url"; + +const repoRoot = fileURLToPath(new URL("../..", import.meta.url)); + +function probeImport(specifier: string): number | null { + const script = ` + import { mock } from "bun:test"; + mock.module("@intx/types/inference-events", () => { + throw new Error("evaluated-inference-events"); + }); + await import(${JSON.stringify(specifier)}); + `; + const result = spawnSync("bun", ["-e", script], { + cwd: repoRoot, + encoding: "utf8", + }); + if ( + result.status !== 0 && + !`${result.stderr}${result.stdout}`.includes("evaluated-inference-events") + ) { + throw new Error( + `probe of ${specifier} failed without evaluated-inference-events:\n${result.stderr}\n${result.stdout}`, + ); + } + return result.status; +} + +describe("runtime-core import boundary", () => { + test("importing reactor-authorize does not evaluate inference-events", () => { + expect(probeImport("./src/permission/reactor-authorize.ts")).toBe(0); + }); +}); diff --git a/src/subagent/provider-family.ts b/src/subagent/provider-family.ts index 7fa687215..04f9f42a8 100644 --- a/src/subagent/provider-family.ts +++ b/src/subagent/provider-family.ts @@ -1,4 +1,4 @@ -import { GROK_RESPONSES_PROVIDER } from "../provider/grok-responses.js"; +import { GROK_RESPONSES_PROVIDER } from "../provider/grok-responses-id.js"; import { isXaiProviderName } from "../config/xai-providers.js"; import { isCodexProviderName } from "../config/codex-providers.js"; import { isDeepSeekModel } from "../provider/deepseek-v4-effort.js"; From d2f2d6ce4eb3296c6c2425a9027c2f499f4f7d1f Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Sat, 17 Oct 2026 20:29:25 -0700 Subject: [PATCH 2/2] perf(permission): keep reactor boot off the inference-event union --- src/auth/codex/constants.ts | 26 ++++++-------------------- src/auth/xai/constants.ts | 22 +++++----------------- src/provider/grok-responses-id.ts | 1 - src/provider/grok-responses.ts | 2 +- src/subagent/provider-family.ts | 20 +++++++++++++++++--- 5 files changed, 29 insertions(+), 42 deletions(-) delete mode 100644 src/provider/grok-responses-id.ts diff --git a/src/auth/codex/constants.ts b/src/auth/codex/constants.ts index acf803c0a..b81fab440 100644 --- a/src/auth/codex/constants.ts +++ b/src/auth/codex/constants.ts @@ -1,25 +1,11 @@ -import { createRequire } from "node:module"; -import { fileURLToPath, pathToFileURL } from "node:url"; import { callbackTargetFor } from "@corbits/oauth-core"; +import { codexOAuthConfig } from "@corbits/codex-provider"; -const require = createRequire(import.meta.url); -const packageIndex = pathToFileURL(require.resolve("@corbits/codex-provider")); -const codexConstants = require( - fileURLToPath(new URL("./constants.js", packageIndex)), -) as { - CODEX_BASE_URL: string; - CODEX_REDIRECT_URI: string; - CODEX_RESPONSES_PATH: string; -}; -const { codexOAuthConfig } = require( - fileURLToPath(new URL("./oauth.js", packageIndex)), -) as { - codexOAuthConfig: Parameters[0]; -}; - -export const CODEX_BASE_URL = codexConstants.CODEX_BASE_URL; -export const CODEX_REDIRECT_URI = codexConstants.CODEX_REDIRECT_URI; -export const CODEX_RESPONSES_PATH = codexConstants.CODEX_RESPONSES_PATH; +export { + CODEX_BASE_URL, + CODEX_REDIRECT_URI, + CODEX_RESPONSES_PATH, +} from "@corbits/codex-provider"; const callbackTarget = callbackTargetFor(codexOAuthConfig); export const CODEX_CALLBACK_HOST = callbackTarget.host; diff --git a/src/auth/xai/constants.ts b/src/auth/xai/constants.ts index 809082e86..e8ad3b3fd 100644 --- a/src/auth/xai/constants.ts +++ b/src/auth/xai/constants.ts @@ -1,21 +1,9 @@ -import { createRequire } from "node:module"; -import { fileURLToPath, pathToFileURL } from "node:url"; import { callbackTargetFor } from "@corbits/oauth-core"; - -const require = createRequire(import.meta.url); -const packageIndex = pathToFileURL(require.resolve("@corbits/xai-provider")); -const { - XAI_DEFAULT_MODELS: VENDOR_XAI_DEFAULT_MODELS, - XAI_OAUTH_PROXY_BASE_URL: XAI_BASE_URL, -} = require(fileURLToPath(new URL("./constants.js", packageIndex))) as { - XAI_DEFAULT_MODELS: readonly string[]; - XAI_OAUTH_PROXY_BASE_URL: string; -}; -const { xaiOAuthConfig } = require( - fileURLToPath(new URL("./oauth.js", packageIndex)), -) as { - xaiOAuthConfig: Parameters[0]; -}; +import { + XAI_DEFAULT_MODELS as VENDOR_XAI_DEFAULT_MODELS, + XAI_OAUTH_PROXY_BASE_URL as XAI_BASE_URL, + xaiOAuthConfig, +} from "@corbits/xai-provider"; export { XAI_BASE_URL }; diff --git a/src/provider/grok-responses-id.ts b/src/provider/grok-responses-id.ts deleted file mode 100644 index 2b31e5547..000000000 --- a/src/provider/grok-responses-id.ts +++ /dev/null @@ -1 +0,0 @@ -export const GROK_RESPONSES_PROVIDER = "grok-responses"; diff --git a/src/provider/grok-responses.ts b/src/provider/grok-responses.ts index 271135da6..590be89dd 100644 --- a/src/provider/grok-responses.ts +++ b/src/provider/grok-responses.ts @@ -2,7 +2,7 @@ import { responsesAdapterFactory } from "@corbits/openai-responses"; import { XAI_USER_ID_OPTION, xaiResponsesQuirks } from "@corbits/xai-provider"; import type { AdapterFactory } from "@intx/inference"; -export { GROK_RESPONSES_PROVIDER } from "./grok-responses-id.js"; +export const GROK_RESPONSES_PROVIDER = "grok-responses"; export const GROK_USER_ID_OPTION = "grokUserId"; export const GROK_SESSION_ID_OPTION = "grokSessionId"; diff --git a/src/subagent/provider-family.ts b/src/subagent/provider-family.ts index 04f9f42a8..0f30a49e2 100644 --- a/src/subagent/provider-family.ts +++ b/src/subagent/provider-family.ts @@ -1,8 +1,22 @@ -import { GROK_RESPONSES_PROVIDER } from "../provider/grok-responses-id.js"; -import { isXaiProviderName } from "../config/xai-providers.js"; -import { isCodexProviderName } from "../config/codex-providers.js"; import { isDeepSeekModel } from "../provider/deepseek-v4-effort.js"; +/** Wire id for the Grok Responses adapter. Duplicated in grok-responses.ts so + * this module does not load @corbits/openai-responses at reactor boot. */ +const GROK_RESPONSES_PROVIDER = "grok-responses"; + +/** Prefixes owned by config/xai-providers.ts and config/codex-providers.ts. + * Inlined so a name check does not evaluate those modules' provider barrels. */ +const XAI_PROVIDER_PREFIX = "xai/"; +const CODEX_PROVIDER_PREFIX = "codex/"; + +function isXaiProviderName(name: string): boolean { + return name.startsWith(XAI_PROVIDER_PREFIX); +} + +function isCodexProviderName(name: string): boolean { + return name.startsWith(CODEX_PROVIDER_PREFIX); +} + /** True when the leaf inference path is xAI / Grok. For small prompt * residuals only. */ export function isXaiGrokLeafProvider(input: {