UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

35 lines (34 loc) 1.57 kB
import { N as sanitizeGoogleThinkingPayload, u as createPayloadPatchStreamWrapper } from "./provider-stream-shared-DakgNCd0.js"; import { a as buildProviderReplayFamilyHooks } from "./provider-model-shared-fX-Ywqb3.js"; import { r as buildProviderToolCompatFamilyHooks } from "./provider-tools-D4EQoyQM.js"; import { r as stripGoogleProviderPrefix } from "./model-id-CAmKILzd.js"; import { i as resolveGoogleThinkingProfile } from "./provider-policy-BjaZN4xs.js"; import "./thinking-api-BLlQ_vt2.js"; //#region extensions/google/provider-hooks.ts function classifyGoogleFailoverCode(code) { switch (code?.trim().toUpperCase()) { case "UNAVAILABLE": return "overloaded"; case "DEADLINE_EXCEEDED": return "timeout"; case "INTERNAL": return "server_error"; default: return; } } function wrapGoogleThinkingStream(ctx) { return createPayloadPatchStreamWrapper(ctx.streamFn, ({ payload, model }) => { if (model.api !== "google-generative-ai" && model.api !== "google-vertex") return; sanitizeGoogleThinkingPayload({ payload, modelId: stripGoogleProviderPrefix(model.id).replace(/^models\//u, ""), thinkingLevel: ctx.thinkingLevel }); }); } const GOOGLE_GEMINI_PROVIDER_HOOKS = { ...buildProviderReplayFamilyHooks({ family: "google-gemini" }), ...buildProviderToolCompatFamilyHooks("gemini"), resolveThinkingProfile: (context) => resolveGoogleThinkingProfile(context), wrapStreamFn: wrapGoogleThinkingStream, classifyFailoverReason: ({ code }) => classifyGoogleFailoverCode(code) }; //#endregion export { GOOGLE_GEMINI_PROVIDER_HOOKS as t };