From a608d0955286640a6c15aa93c0cb5bd0e18c9529 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 15 Mar 2026 23:23:50 -0700 Subject: [PATCH] Status: lazy-load summary session helpers --- src/commands/status.summary.runtime.ts | 2 ++ src/commands/status.summary.ts | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 src/commands/status.summary.runtime.ts diff --git a/src/commands/status.summary.runtime.ts b/src/commands/status.summary.runtime.ts new file mode 100644 index 00000000000..df1ae881d4f --- /dev/null +++ b/src/commands/status.summary.runtime.ts @@ -0,0 +1,2 @@ +export { resolveContextTokensForModel } from "../agents/context.js"; +export { classifySessionKey, resolveSessionModelRef } from "../gateway/session-utils.js"; diff --git a/src/commands/status.summary.ts b/src/commands/status.summary.ts index 3d151c64772..bc2c7b4c205 100644 --- a/src/commands/status.summary.ts +++ b/src/commands/status.summary.ts @@ -1,4 +1,3 @@ -import { resolveContextTokensForModel } from "../agents/context.js"; import { DEFAULT_CONTEXT_TOKENS, DEFAULT_MODEL, DEFAULT_PROVIDER } from "../agents/defaults.js"; import { resolveConfiguredModelRef } from "../agents/model-selection.js"; import { hasPotentialConfiguredChannels } from "../channels/config-presence.js"; @@ -12,7 +11,6 @@ import { type SessionEntry, } from "../config/sessions.js"; import { listGatewayAgentsBasic } from "../gateway/agent-list.js"; -import { classifySessionKey, resolveSessionModelRef } from "../gateway/session-utils.js"; import { resolveHeartbeatSummaryForAgent } from "../infra/heartbeat-summary.js"; import { peekSystemEvents } from "../infra/system-events.js"; import { parseAgentSessionKey } from "../routing/session-key.js"; @@ -21,6 +19,9 @@ import type { HeartbeatStatus, SessionStatus, StatusSummary } from "./status.typ let channelSummaryModulePromise: Promise | undefined; let linkChannelModulePromise: Promise | undefined; +let statusSummaryRuntimeModulePromise: + | Promise + | undefined; function loadChannelSummaryModule() { channelSummaryModulePromise ??= import("../infra/channel-summary.js"); @@ -32,6 +33,11 @@ function loadLinkChannelModule() { return linkChannelModulePromise; } +function loadStatusSummaryRuntimeModule() { + statusSummaryRuntimeModulePromise ??= import("./status.summary.runtime.js"); + return statusSummaryRuntimeModulePromise; +} + const buildFlags = (entry?: SessionEntry): string[] => { if (!entry) { return []; @@ -97,6 +103,8 @@ export async function getStatusSummary( } = {}, ): Promise { const { includeSensitive = true } = options; + const { classifySessionKey, resolveContextTokensForModel, resolveSessionModelRef } = + await loadStatusSummaryRuntimeModule(); const cfg = options.config ?? loadConfig(); const needsChannelPlugins = hasPotentialConfiguredChannels(cfg); const linkContext = needsChannelPlugins