@@ -67,6 +67,11 @@ const schemaBase = z.object({
6767 CLOUDFLARE_API_TOKEN : nonEmptyString ,
6868 /** AI Gateway "id" is the gateway name you create in Cloudflare. */
6969 CLOUDFLARE_AI_GATEWAY_ID : nonEmptyString ,
70+ /**
71+ * Optional embedding-specific AI Gateway id.
72+ * Falls back to `CLOUDFLARE_AI_GATEWAY_ID` when omitted.
73+ */
74+ CLOUDFLARE_AI_EMBEDDING_GATEWAY_ID : z . string ( ) . trim ( ) . optional ( ) ,
7075 /**
7176 * AI Gateway authenticated gateway token (used as `cf-aig-authorization`).
7277 */
@@ -154,7 +159,11 @@ type BaseEnvInput = z.input<typeof schemaBase>
154159
155160export type Env = Omit <
156161 BaseEnv ,
157- 'PORT' | 'MOCKS' | 'DATABASE_PATH' | 'FLY_MACHINE_ID'
162+ | 'PORT'
163+ | 'MOCKS'
164+ | 'DATABASE_PATH'
165+ | 'FLY_MACHINE_ID'
166+ | 'CLOUDFLARE_AI_EMBEDDING_GATEWAY_ID'
158167> & {
159168 PORT : number
160169 MOCKS : boolean
@@ -173,6 +182,11 @@ export type Env = Omit<
173182 * Used to format generated Call Kent transcripts into readable paragraphs.
174183 */
175184 CLOUDFLARE_AI_CALL_KENT_TRANSCRIPT_FORMAT_MODEL : string
185+ /**
186+ * Embeddings can be routed through a separate gateway (for example, with
187+ * guardrails disabled) without affecting other AI routes.
188+ */
189+ CLOUDFLARE_AI_EMBEDDING_GATEWAY_ID : string
176190 /** Derived from CLOUDFLARE_ACCOUNT_ID when not explicitly set. */
177191 R2_ENDPOINT : string
178192}
@@ -241,6 +255,9 @@ export function getEnv(): Env {
241255 allowedActionOrigins : computeAllowedActionOrigins ( values ) ,
242256 FLY_MACHINE_ID : values . FLY_MACHINE_ID ?? 'unknown' ,
243257 R2_ENDPOINT : derivedR2Endpoint ,
258+ CLOUDFLARE_AI_EMBEDDING_GATEWAY_ID :
259+ values . CLOUDFLARE_AI_EMBEDDING_GATEWAY_ID ||
260+ values . CLOUDFLARE_AI_GATEWAY_ID ,
244261 CLOUDFLARE_AI_CALL_KENT_METADATA_MODEL :
245262 values . CLOUDFLARE_AI_CALL_KENT_METADATA_MODEL ??
246263 values . CLOUDFLARE_AI_TEXT_MODEL ,
0 commit comments