26 lines
872 B
TypeScript
26 lines
872 B
TypeScript
import type { OpenClawConfig } from "../../config/config.js";
|
|
import { normalizeAccountId } from "../../routing/session-key.js";
|
|
|
|
const MB = 1024 * 1024;
|
|
|
|
export function resolveChannelMediaMaxBytes(params: {
|
|
cfg: OpenClawConfig;
|
|
// Channel-specific config lives under different keys; keep this helper generic
|
|
// so shared plugin helpers don't need channel-id branching.
|
|
resolveChannelLimitMb: (params: { cfg: OpenClawConfig; accountId: string }) => number | undefined;
|
|
accountId?: string | null;
|
|
}): number | undefined {
|
|
const accountId = normalizeAccountId(params.accountId);
|
|
const channelLimit = params.resolveChannelLimitMb({
|
|
cfg: params.cfg,
|
|
accountId,
|
|
});
|
|
if (channelLimit) {
|
|
return channelLimit * MB;
|
|
}
|
|
if (params.cfg.agents?.defaults?.mediaMaxMb) {
|
|
return params.cfg.agents.defaults.mediaMaxMb * MB;
|
|
}
|
|
return undefined;
|
|
}
|