UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

40 lines (39 loc) • 1.47 kB
import { l as normalizeOptionalString } from "./string-coerce-1VuiLaaR.mjs"; import { a as asOptionalRecord } from "./record-coerce-TIsquoVR.mjs"; import "./string-coerce-runtime-50qKeWeL.mjs"; import { n as OPENAI_CODEX_RESPONSES_BASE_URL } from "./base-url-BUR_8zW8.mjs"; //#region extensions/openai/model-service-tiers.ts /** Only authenticated remote rows may supply this private observation, never fallback seeds. */ function readOpenAICodexServiceTiers(rows) { return rows.flatMap((row) => { const record = asOptionalRecord(row); const modelId = normalizeOptionalString(record?.slug) ?? normalizeOptionalString(record?.id); const tiers = record?.service_tiers; if (!modelId || !Array.isArray(tiers)) return []; const serviceTiers = []; for (const tier of tiers) { const id = normalizeOptionalString(asOptionalRecord(tier)?.id); if (!id) return []; serviceTiers.push(id); } return [{ modelId, runtimeId: "codex", api: "openai-chatgpt-responses", baseUrl: OPENAI_CODEX_RESPONSES_BASE_URL, serviceTiers: [...new Set(serviceTiers)] }]; }); } function projectOpenAICatalog(catalog, profileId) { const scopedProfileId = profileId?.trim(); return { providers: { openai: catalog.provider }, ...catalog.outcome ? { outcomes: [scopedProfileId ? { ...catalog.outcome, profileId: scopedProfileId } : catalog.outcome] } : {} }; } //#endregion export { readOpenAICodexServiceTiers as n, projectOpenAICatalog as t };