UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

31 lines (30 loc) 2.07 kB
import { i as asOptionalObjectRecord } from "./record-coerce-DItp3I4t.js"; import { n as normalizeAccountId } from "./account-id-CETVCrTz.js"; import { n as resolveNormalizedAccountEntry } from "./account-lookup-CvFhSs3G.js"; import { a as maxBytesForKind } from "./constants-DUxuqQz8.js"; import { t as MEDIA_MAX_BYTES } from "./store-Ph57PZ9P.js"; //#region src/media/configured-max-bytes.ts const MB = 1048576; /** Returns the configured media cap, falling back to the media-core per-kind default. */ function resolveGeneratedMediaMaxBytes(cfg, kind) { const configured = cfg?.agents?.defaults?.mediaMaxMb; return typeof configured === "number" && Number.isFinite(configured) && configured > 0 ? Math.floor(configured * MB) : maxBytesForKind(kind); } /** Reads channel/account media caps from raw channel config without requiring typed account schemas. */ function resolveChannelAccountMediaMaxMb(params) { const channelId = params.channel?.trim(); const accountId = params.accountId?.trim(); const channelCfg = channelId ? params.cfg.channels?.[channelId] : void 0; const channelObj = asOptionalObjectRecord(channelCfg); const channelMediaMax = typeof channelObj?.mediaMaxMb === "number" ? channelObj.mediaMaxMb : void 0; const accountsObj = asOptionalObjectRecord(channelObj?.accounts); const accountMediaMax = (accountId ? asOptionalObjectRecord(resolveNormalizedAccountEntry(accountsObj, accountId, normalizeAccountId)) : void 0)?.mediaMaxMb; return (typeof accountMediaMax === "number" ? accountMediaMax : void 0) ?? channelMediaMax; } /** Resolves the byte cap for staging an outbound reply's media: channel/account, then agent default. */ function resolveOutboundMediaMaxBytes(params) { const limitMb = resolveChannelAccountMediaMaxMb(params) ?? params.cfg.agents?.defaults?.mediaMaxMb; return typeof limitMb === "number" && Number.isFinite(limitMb) && limitMb > 0 ? Math.floor(limitMb * MB) : MEDIA_MAX_BYTES; } //#endregion export { resolveGeneratedMediaMaxBytes as n, resolveOutboundMediaMaxBytes as r, resolveChannelAccountMediaMaxMb as t };