UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

91 lines (90 loc) 5.47 kB
import { s as normalizeSortedUniqueStringEntries } from "./string-normalization-WNUDCpXX.js"; import { a as getResolvedLoggerSettings } from "./logger-Brhy0cvC.js"; import "./agent-scope-MrLta7Pq.js"; import { c as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-config-CgCYpZfK.js"; import { n as DEFAULT_MODEL, r as DEFAULT_PROVIDER } from "./defaults-mDjiWzE5.js"; import "./logging-CvNAh8ZC.js"; import { g as resolveConfiguredModelRef, r as buildConfiguredModelCatalog } from "./model-selection-shared-b32cUYts.js"; import { i as modelKey, r as legacyModelKey } from "./model-selection-normalize-roKDxQ9_.js"; import { t as resolveThinkingDefault } from "./model-thinking-default-dIc9T64G.js"; import { t as collectEnabledInsecureOrDangerousFlagsFromCurrentSnapshot } from "./dangerous-config-flags-current-BDtKyYpY.js"; import { t as resolveFastModeState } from "./fast-mode-CmAyxTkZ.js"; import chalk from "chalk"; //#region src/gateway/server-startup-log.ts /** Emit startup summary lines after Gateway bind and plugin loading complete. */ async function logGatewayStartup(params) { const { provider: agentProvider, model: agentModel } = resolveConfiguredModelRef({ cfg: params.cfg, defaultProvider: DEFAULT_PROVIDER, defaultModel: DEFAULT_MODEL }); const modelRef = `${agentProvider}/${agentModel}`; const modelDetails = formatAgentModelStartupDetails({ cfg: params.cfg, provider: agentProvider, model: agentModel }); params.log.info(`agent model: ${modelRef} (${modelDetails})`, { consoleMessage: `agent model: ${chalk.whiteBright(modelRef)} (${modelDetails})` }); const startupDurationMs = typeof params.startupStartedAt === "number" ? Date.now() - params.startupStartedAt : null; const startupDurationLabel = startupDurationMs == null ? null : `${(startupDurationMs / 1e3).toFixed(1)}s`; params.log.info(`http server listening (${formatReadyDetails(params.loadedPluginIds, startupDurationLabel)})`); params.log.info(`log file: ${getResolvedLoggerSettings().file}`); if (params.isNixMode) params.log.info("gateway: running in Nix mode (config managed externally)"); const enabledDangerousFlags = collectEnabledInsecureOrDangerousFlagsFromCurrentSnapshot(params.cfg) ?? (await import("./dangerous-config-flags-C8rkEw3D.js")).collectEnabledInsecureOrDangerousFlags(params.cfg); if (enabledDangerousFlags.length > 0) { const warning = `security warning: dangerous config flags enabled: ${enabledDangerousFlags.join(", ")}. Run \`openclaw security audit\`.`; params.log.warn(warning); } } /** Normalize model thinking values that are useful in the compact startup log. */ function normalizeStartupThinkLevel(value) { return value === "off" || value === "minimal" || value === "low" || value === "medium" || value === "high" || value === "xhigh" || value === "adaptive" || value === "max" ? value : void 0; } /** Resolve explicit thinking overrides from agent defaults and per-model config. */ function resolveExplicitStartupThinking(params) { const models = params.cfg.agents?.defaults?.models; const canonicalKey = modelKey(params.provider, params.model); const legacyKey = legacyModelKey(params.provider, params.model); return normalizeStartupThinkLevel(params.defaultAgentThinking) ?? normalizeStartupThinkLevel(models?.[canonicalKey]?.params?.thinking) ?? normalizeStartupThinkLevel(legacyKey ? models?.[legacyKey]?.params?.thinking : void 0) ?? normalizeStartupThinkLevel(params.cfg.agents?.defaults?.thinkingDefault); } /** True when a configured catalog entry disables reasoning for the startup model. */ function isConfiguredReasoningDisabled(params) { return params.catalog.some((entry) => entry.provider === params.provider && entry.id === params.model && entry.reasoning === false); } /** Format model thinking and fast-mode details for the Gateway startup banner. */ function formatAgentModelStartupDetails(params) { const configuredCatalog = buildConfiguredModelCatalog({ cfg: params.cfg }); const defaultAgentId = resolveDefaultAgentId(params.cfg); const defaultAgentConfig = resolveAgentConfig(params.cfg, defaultAgentId); const explicitThinking = resolveExplicitStartupThinking({ cfg: params.cfg, provider: params.provider, model: params.model, defaultAgentThinking: defaultAgentConfig?.thinkingDefault }); const resolvedThinking = explicitThinking ?? resolveThinkingDefault({ cfg: params.cfg, provider: params.provider, model: params.model, catalog: configuredCatalog }); return `thinking=${explicitThinking ?? (isConfiguredReasoningDisabled({ catalog: configuredCatalog, provider: params.provider, model: params.model }) ? "off" : resolvedThinking === "off" ? "medium" : resolvedThinking)}, fast=${resolveFastModeState({ cfg: params.cfg, provider: params.provider, model: params.model, agentId: defaultAgentId }).enabled ? "on" : "off"}`; } /** Format plugin count/list and optional startup duration for the ready log line. */ function formatReadyDetails(loadedPluginIds, startupDurationLabel) { const pluginIds = normalizeSortedUniqueStringEntries(loadedPluginIds); const pluginSummary = pluginIds.length === 0 ? "0 plugins" : `${pluginIds.length} ${pluginIds.length === 1 ? "plugin" : "plugins"}: ${pluginIds.join(", ")}`; if (!startupDurationLabel) return pluginSummary; return pluginIds.length === 0 ? `${pluginSummary}, ${startupDurationLabel}` : `${pluginSummary}; ${startupDurationLabel}`; } //#endregion export { logGatewayStartup };