/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */let yt,Tt;function Ct(){return{geminiUrl:yt,vertexUrl:Tt}}function _t(n,e,t,o){var r,l;if(!n?.baseUrl){const a=Ct();return e?(r=a.vertexUrl)!==null&&r!==void 0?r:t:(l=a.geminiUrl)!==null&&l!==void 0?l:o}return n.baseUrl}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class Y{}function T(n,e){const t=/\{([^}]+)\}/g;return n.replace(t,(o,r)=>{if(Object.prototype.hasOwnProperty.call(e,r)){const l=e[r];return l!=null?String(l):""}else throw new Error(`Key '${r}' not found in valueMap.`)})}function s(n,e,t){for(let l=0;l({}));else throw new Error(`Value must be a list given an array path ${a}`);if(Array.isArray(n[d])){const f=n[d];if(Array.isArray(t))for(let u=0;ui(d,e.slice(o+1),t)):t}else return t}else n=n[r]}return n}catch(o){if(o instanceof TypeError)return t;throw o}}function Et(n,e){for(const[t,o]of Object.entries(e)){const r=t.split("."),l=o.split("."),a=new Set;let d=-1;for(let f=0;fd)for(let f=d;f=e.length||typeof n!="object"||n===null)return;const l=e[o];if(l.endsWith("[]")){const a=l.slice(0,-2),d=n;if(a in d&&Array.isArray(d[a]))for(const f of d[a])fe(f,e,t,o+1,r)}else if(l==="*"){if(typeof n=="object"&&n!==null&&!Array.isArray(n)){const a=n,d=Object.keys(a).filter(u=>!u.startsWith("_")&&!r.has(u)),f={};for(const u of d)f[u]=a[u];for(const[u,c]of Object.entries(f)){const p=[];for(const m of t.slice(o))m==="*"?p.push(u):p.push(m);s(a,p,c)}for(const u of d)delete a[u]}}else{const a=n;l in a&&fe(a[l],e,t,o+1,r)}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function _e(n){if(typeof n!="string")throw new Error("fromImageBytes must be a string");return n}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function It(n){const e={},t=i(n,["operationName"]);t!=null&&s(e,["operationName"],t);const o=i(n,["resourceName"]);return o!=null&&s(e,["_url","resourceName"],o),e}function vt(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response","generateVideoResponse"]);return a!=null&&s(e,["response"],St(a)),e}function At(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response"]);return a!=null&&s(e,["response"],Rt(a)),e}function St(n){const e={},t=i(n,["generatedSamples"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Mt(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Rt(n){const e={},t=i(n,["videos"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Pt(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Mt(n){const e={},t=i(n,["video"]);return t!=null&&s(e,["video"],Dt(t)),e}function Pt(n){const e={},t=i(n,["_self"]);return t!=null&&s(e,["video"],xt(t)),e}function Nt(n){const e={},t=i(n,["operationName"]);return t!=null&&s(e,["_url","operationName"],t),e}function wt(n){const e={},t=i(n,["operationName"]);return t!=null&&s(e,["_url","operationName"],t),e}function Dt(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["uri"],t);const o=i(n,["encodedVideo"]);o!=null&&s(e,["videoBytes"],_e(o));const r=i(n,["encoding"]);return r!=null&&s(e,["mimeType"],r),e}function xt(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["uri"],t);const o=i(n,["bytesBase64Encoded"]);o!=null&&s(e,["videoBytes"],_e(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */var Pe;(function(n){n.OUTCOME_UNSPECIFIED="OUTCOME_UNSPECIFIED",n.OUTCOME_OK="OUTCOME_OK",n.OUTCOME_FAILED="OUTCOME_FAILED",n.OUTCOME_DEADLINE_EXCEEDED="OUTCOME_DEADLINE_EXCEEDED"})(Pe||(Pe={}));var Ne;(function(n){n.LANGUAGE_UNSPECIFIED="LANGUAGE_UNSPECIFIED",n.PYTHON="PYTHON"})(Ne||(Ne={}));var we;(function(n){n.SCHEDULING_UNSPECIFIED="SCHEDULING_UNSPECIFIED",n.SILENT="SILENT",n.WHEN_IDLE="WHEN_IDLE",n.INTERRUPT="INTERRUPT"})(we||(we={}));var H;(function(n){n.TYPE_UNSPECIFIED="TYPE_UNSPECIFIED",n.STRING="STRING",n.NUMBER="NUMBER",n.INTEGER="INTEGER",n.BOOLEAN="BOOLEAN",n.ARRAY="ARRAY",n.OBJECT="OBJECT",n.NULL="NULL"})(H||(H={}));var De;(function(n){n.HARM_CATEGORY_UNSPECIFIED="HARM_CATEGORY_UNSPECIFIED",n.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",n.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",n.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",n.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT",n.HARM_CATEGORY_CIVIC_INTEGRITY="HARM_CATEGORY_CIVIC_INTEGRITY",n.HARM_CATEGORY_IMAGE_HATE="HARM_CATEGORY_IMAGE_HATE",n.HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT="HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT",n.HARM_CATEGORY_IMAGE_HARASSMENT="HARM_CATEGORY_IMAGE_HARASSMENT",n.HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT="HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT",n.HARM_CATEGORY_JAILBREAK="HARM_CATEGORY_JAILBREAK"})(De||(De={}));var xe;(function(n){n.HARM_BLOCK_METHOD_UNSPECIFIED="HARM_BLOCK_METHOD_UNSPECIFIED",n.SEVERITY="SEVERITY",n.PROBABILITY="PROBABILITY"})(xe||(xe={}));var Ue;(function(n){n.HARM_BLOCK_THRESHOLD_UNSPECIFIED="HARM_BLOCK_THRESHOLD_UNSPECIFIED",n.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",n.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",n.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",n.BLOCK_NONE="BLOCK_NONE",n.OFF="OFF"})(Ue||(Ue={}));var ke;(function(n){n.MODE_UNSPECIFIED="MODE_UNSPECIFIED",n.MODE_DYNAMIC="MODE_DYNAMIC"})(ke||(ke={}));var Le;(function(n){n.AUTH_TYPE_UNSPECIFIED="AUTH_TYPE_UNSPECIFIED",n.NO_AUTH="NO_AUTH",n.API_KEY_AUTH="API_KEY_AUTH",n.HTTP_BASIC_AUTH="HTTP_BASIC_AUTH",n.GOOGLE_SERVICE_ACCOUNT_AUTH="GOOGLE_SERVICE_ACCOUNT_AUTH",n.OAUTH="OAUTH",n.OIDC_AUTH="OIDC_AUTH"})(Le||(Le={}));var Ve;(function(n){n.API_SPEC_UNSPECIFIED="API_SPEC_UNSPECIFIED",n.SIMPLE_SEARCH="SIMPLE_SEARCH",n.ELASTIC_SEARCH="ELASTIC_SEARCH"})(Ve||(Ve={}));var Fe;(function(n){n.URL_RETRIEVAL_STATUS_UNSPECIFIED="URL_RETRIEVAL_STATUS_UNSPECIFIED",n.URL_RETRIEVAL_STATUS_SUCCESS="URL_RETRIEVAL_STATUS_SUCCESS",n.URL_RETRIEVAL_STATUS_ERROR="URL_RETRIEVAL_STATUS_ERROR",n.URL_RETRIEVAL_STATUS_PAYWALL="URL_RETRIEVAL_STATUS_PAYWALL",n.URL_RETRIEVAL_STATUS_UNSAFE="URL_RETRIEVAL_STATUS_UNSAFE"})(Fe||(Fe={}));var qe;(function(n){n.FINISH_REASON_UNSPECIFIED="FINISH_REASON_UNSPECIFIED",n.STOP="STOP",n.MAX_TOKENS="MAX_TOKENS",n.SAFETY="SAFETY",n.RECITATION="RECITATION",n.LANGUAGE="LANGUAGE",n.OTHER="OTHER",n.BLOCKLIST="BLOCKLIST",n.PROHIBITED_CONTENT="PROHIBITED_CONTENT",n.SPII="SPII",n.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",n.IMAGE_SAFETY="IMAGE_SAFETY",n.UNEXPECTED_TOOL_CALL="UNEXPECTED_TOOL_CALL",n.IMAGE_PROHIBITED_CONTENT="IMAGE_PROHIBITED_CONTENT",n.NO_IMAGE="NO_IMAGE"})(qe||(qe={}));var Ge;(function(n){n.HARM_PROBABILITY_UNSPECIFIED="HARM_PROBABILITY_UNSPECIFIED",n.NEGLIGIBLE="NEGLIGIBLE",n.LOW="LOW",n.MEDIUM="MEDIUM",n.HIGH="HIGH"})(Ge||(Ge={}));var He;(function(n){n.HARM_SEVERITY_UNSPECIFIED="HARM_SEVERITY_UNSPECIFIED",n.HARM_SEVERITY_NEGLIGIBLE="HARM_SEVERITY_NEGLIGIBLE",n.HARM_SEVERITY_LOW="HARM_SEVERITY_LOW",n.HARM_SEVERITY_MEDIUM="HARM_SEVERITY_MEDIUM",n.HARM_SEVERITY_HIGH="HARM_SEVERITY_HIGH"})(He||(He={}));var Be;(function(n){n.BLOCKED_REASON_UNSPECIFIED="BLOCKED_REASON_UNSPECIFIED",n.SAFETY="SAFETY",n.OTHER="OTHER",n.BLOCKLIST="BLOCKLIST",n.PROHIBITED_CONTENT="PROHIBITED_CONTENT",n.IMAGE_SAFETY="IMAGE_SAFETY",n.MODEL_ARMOR="MODEL_ARMOR",n.JAILBREAK="JAILBREAK"})(Be||(Be={}));var Je;(function(n){n.TRAFFIC_TYPE_UNSPECIFIED="TRAFFIC_TYPE_UNSPECIFIED",n.ON_DEMAND="ON_DEMAND",n.PROVISIONED_THROUGHPUT="PROVISIONED_THROUGHPUT"})(Je||(Je={}));var te;(function(n){n.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",n.TEXT="TEXT",n.IMAGE="IMAGE",n.AUDIO="AUDIO"})(te||(te={}));var Ye;(function(n){n.MEDIA_RESOLUTION_UNSPECIFIED="MEDIA_RESOLUTION_UNSPECIFIED",n.MEDIA_RESOLUTION_LOW="MEDIA_RESOLUTION_LOW",n.MEDIA_RESOLUTION_MEDIUM="MEDIA_RESOLUTION_MEDIUM",n.MEDIA_RESOLUTION_HIGH="MEDIA_RESOLUTION_HIGH"})(Ye||(Ye={}));var ce;(function(n){n.JOB_STATE_UNSPECIFIED="JOB_STATE_UNSPECIFIED",n.JOB_STATE_QUEUED="JOB_STATE_QUEUED",n.JOB_STATE_PENDING="JOB_STATE_PENDING",n.JOB_STATE_RUNNING="JOB_STATE_RUNNING",n.JOB_STATE_SUCCEEDED="JOB_STATE_SUCCEEDED",n.JOB_STATE_FAILED="JOB_STATE_FAILED",n.JOB_STATE_CANCELLING="JOB_STATE_CANCELLING",n.JOB_STATE_CANCELLED="JOB_STATE_CANCELLED",n.JOB_STATE_PAUSED="JOB_STATE_PAUSED",n.JOB_STATE_EXPIRED="JOB_STATE_EXPIRED",n.JOB_STATE_UPDATING="JOB_STATE_UPDATING",n.JOB_STATE_PARTIALLY_SUCCEEDED="JOB_STATE_PARTIALLY_SUCCEEDED"})(ce||(ce={}));var $e;(function(n){n.TUNING_MODE_UNSPECIFIED="TUNING_MODE_UNSPECIFIED",n.TUNING_MODE_FULL="TUNING_MODE_FULL",n.TUNING_MODE_PEFT_ADAPTER="TUNING_MODE_PEFT_ADAPTER"})($e||($e={}));var We;(function(n){n.ADAPTER_SIZE_UNSPECIFIED="ADAPTER_SIZE_UNSPECIFIED",n.ADAPTER_SIZE_ONE="ADAPTER_SIZE_ONE",n.ADAPTER_SIZE_TWO="ADAPTER_SIZE_TWO",n.ADAPTER_SIZE_FOUR="ADAPTER_SIZE_FOUR",n.ADAPTER_SIZE_EIGHT="ADAPTER_SIZE_EIGHT",n.ADAPTER_SIZE_SIXTEEN="ADAPTER_SIZE_SIXTEEN",n.ADAPTER_SIZE_THIRTY_TWO="ADAPTER_SIZE_THIRTY_TWO"})(We||(We={}));var Ke;(function(n){n.TUNING_TASK_UNSPECIFIED="TUNING_TASK_UNSPECIFIED",n.TUNING_TASK_I2V="TUNING_TASK_I2V",n.TUNING_TASK_T2V="TUNING_TASK_T2V"})(Ke||(Ke={}));var ze;(function(n){n.FEATURE_SELECTION_PREFERENCE_UNSPECIFIED="FEATURE_SELECTION_PREFERENCE_UNSPECIFIED",n.PRIORITIZE_QUALITY="PRIORITIZE_QUALITY",n.BALANCED="BALANCED",n.PRIORITIZE_COST="PRIORITIZE_COST"})(ze||(ze={}));var Xe;(function(n){n.UNSPECIFIED="UNSPECIFIED",n.BLOCKING="BLOCKING",n.NON_BLOCKING="NON_BLOCKING"})(Xe||(Xe={}));var Qe;(function(n){n.MODE_UNSPECIFIED="MODE_UNSPECIFIED",n.MODE_DYNAMIC="MODE_DYNAMIC"})(Qe||(Qe={}));var be;(function(n){n.ENVIRONMENT_UNSPECIFIED="ENVIRONMENT_UNSPECIFIED",n.ENVIRONMENT_BROWSER="ENVIRONMENT_BROWSER"})(be||(be={}));var Ze;(function(n){n.MODE_UNSPECIFIED="MODE_UNSPECIFIED",n.AUTO="AUTO",n.ANY="ANY",n.NONE="NONE",n.VALIDATED="VALIDATED"})(Ze||(Ze={}));var Oe;(function(n){n.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",n.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",n.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",n.BLOCK_NONE="BLOCK_NONE"})(Oe||(Oe={}));var je;(function(n){n.DONT_ALLOW="DONT_ALLOW",n.ALLOW_ADULT="ALLOW_ADULT",n.ALLOW_ALL="ALLOW_ALL"})(je||(je={}));var en;(function(n){n.auto="auto",n.en="en",n.ja="ja",n.ko="ko",n.hi="hi",n.zh="zh",n.pt="pt",n.es="es"})(en||(en={}));var nn;(function(n){n.MASK_MODE_DEFAULT="MASK_MODE_DEFAULT",n.MASK_MODE_USER_PROVIDED="MASK_MODE_USER_PROVIDED",n.MASK_MODE_BACKGROUND="MASK_MODE_BACKGROUND",n.MASK_MODE_FOREGROUND="MASK_MODE_FOREGROUND",n.MASK_MODE_SEMANTIC="MASK_MODE_SEMANTIC"})(nn||(nn={}));var tn;(function(n){n.CONTROL_TYPE_DEFAULT="CONTROL_TYPE_DEFAULT",n.CONTROL_TYPE_CANNY="CONTROL_TYPE_CANNY",n.CONTROL_TYPE_SCRIBBLE="CONTROL_TYPE_SCRIBBLE",n.CONTROL_TYPE_FACE_MESH="CONTROL_TYPE_FACE_MESH"})(tn||(tn={}));var on;(function(n){n.SUBJECT_TYPE_DEFAULT="SUBJECT_TYPE_DEFAULT",n.SUBJECT_TYPE_PERSON="SUBJECT_TYPE_PERSON",n.SUBJECT_TYPE_ANIMAL="SUBJECT_TYPE_ANIMAL",n.SUBJECT_TYPE_PRODUCT="SUBJECT_TYPE_PRODUCT"})(on||(on={}));var sn;(function(n){n.EDIT_MODE_DEFAULT="EDIT_MODE_DEFAULT",n.EDIT_MODE_INPAINT_REMOVAL="EDIT_MODE_INPAINT_REMOVAL",n.EDIT_MODE_INPAINT_INSERTION="EDIT_MODE_INPAINT_INSERTION",n.EDIT_MODE_OUTPAINT="EDIT_MODE_OUTPAINT",n.EDIT_MODE_CONTROLLED_EDITING="EDIT_MODE_CONTROLLED_EDITING",n.EDIT_MODE_STYLE="EDIT_MODE_STYLE",n.EDIT_MODE_BGSWAP="EDIT_MODE_BGSWAP",n.EDIT_MODE_PRODUCT_IMAGE="EDIT_MODE_PRODUCT_IMAGE"})(sn||(sn={}));var rn;(function(n){n.FOREGROUND="FOREGROUND",n.BACKGROUND="BACKGROUND",n.PROMPT="PROMPT",n.SEMANTIC="SEMANTIC",n.INTERACTIVE="INTERACTIVE"})(rn||(rn={}));var ln;(function(n){n.ASSET="ASSET",n.STYLE="STYLE"})(ln||(ln={}));var an;(function(n){n.INSERT="INSERT",n.REMOVE="REMOVE",n.REMOVE_STATIC="REMOVE_STATIC",n.OUTPAINT="OUTPAINT"})(an||(an={}));var un;(function(n){n.OPTIMIZED="OPTIMIZED",n.LOSSLESS="LOSSLESS"})(un||(un={}));var dn;(function(n){n.STATE_UNSPECIFIED="STATE_UNSPECIFIED",n.PROCESSING="PROCESSING",n.ACTIVE="ACTIVE",n.FAILED="FAILED"})(dn||(dn={}));var fn;(function(n){n.SOURCE_UNSPECIFIED="SOURCE_UNSPECIFIED",n.UPLOADED="UPLOADED",n.GENERATED="GENERATED"})(fn||(fn={}));var cn;(function(n){n.TURN_COMPLETE_REASON_UNSPECIFIED="TURN_COMPLETE_REASON_UNSPECIFIED",n.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",n.RESPONSE_REJECTED="RESPONSE_REJECTED",n.NEED_MORE_INPUT="NEED_MORE_INPUT"})(cn||(cn={}));var pn;(function(n){n.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",n.TEXT="TEXT",n.IMAGE="IMAGE",n.VIDEO="VIDEO",n.AUDIO="AUDIO",n.DOCUMENT="DOCUMENT"})(pn||(pn={}));var mn;(function(n){n.START_SENSITIVITY_UNSPECIFIED="START_SENSITIVITY_UNSPECIFIED",n.START_SENSITIVITY_HIGH="START_SENSITIVITY_HIGH",n.START_SENSITIVITY_LOW="START_SENSITIVITY_LOW"})(mn||(mn={}));var hn;(function(n){n.END_SENSITIVITY_UNSPECIFIED="END_SENSITIVITY_UNSPECIFIED",n.END_SENSITIVITY_HIGH="END_SENSITIVITY_HIGH",n.END_SENSITIVITY_LOW="END_SENSITIVITY_LOW"})(hn||(hn={}));var gn;(function(n){n.ACTIVITY_HANDLING_UNSPECIFIED="ACTIVITY_HANDLING_UNSPECIFIED",n.START_OF_ACTIVITY_INTERRUPTS="START_OF_ACTIVITY_INTERRUPTS",n.NO_INTERRUPTION="NO_INTERRUPTION"})(gn||(gn={}));var yn;(function(n){n.TURN_COVERAGE_UNSPECIFIED="TURN_COVERAGE_UNSPECIFIED",n.TURN_INCLUDES_ONLY_ACTIVITY="TURN_INCLUDES_ONLY_ACTIVITY",n.TURN_INCLUDES_ALL_INPUT="TURN_INCLUDES_ALL_INPUT"})(yn||(yn={}));var Tn;(function(n){n.SCALE_UNSPECIFIED="SCALE_UNSPECIFIED",n.C_MAJOR_A_MINOR="C_MAJOR_A_MINOR",n.D_FLAT_MAJOR_B_FLAT_MINOR="D_FLAT_MAJOR_B_FLAT_MINOR",n.D_MAJOR_B_MINOR="D_MAJOR_B_MINOR",n.E_FLAT_MAJOR_C_MINOR="E_FLAT_MAJOR_C_MINOR",n.E_MAJOR_D_FLAT_MINOR="E_MAJOR_D_FLAT_MINOR",n.F_MAJOR_D_MINOR="F_MAJOR_D_MINOR",n.G_FLAT_MAJOR_E_FLAT_MINOR="G_FLAT_MAJOR_E_FLAT_MINOR",n.G_MAJOR_E_MINOR="G_MAJOR_E_MINOR",n.A_FLAT_MAJOR_F_MINOR="A_FLAT_MAJOR_F_MINOR",n.A_MAJOR_G_FLAT_MINOR="A_MAJOR_G_FLAT_MINOR",n.B_FLAT_MAJOR_G_MINOR="B_FLAT_MAJOR_G_MINOR",n.B_MAJOR_A_FLAT_MINOR="B_MAJOR_A_FLAT_MINOR"})(Tn||(Tn={}));var Cn;(function(n){n.MUSIC_GENERATION_MODE_UNSPECIFIED="MUSIC_GENERATION_MODE_UNSPECIFIED",n.QUALITY="QUALITY",n.DIVERSITY="DIVERSITY",n.VOCALIZATION="VOCALIZATION"})(Cn||(Cn={}));var $;(function(n){n.PLAYBACK_CONTROL_UNSPECIFIED="PLAYBACK_CONTROL_UNSPECIFIED",n.PLAY="PLAY",n.PAUSE="PAUSE",n.STOP="STOP",n.RESET_CONTEXT="RESET_CONTEXT"})($||($={}));class pe{constructor(e){const t={};for(const o of e.headers.entries())t[o[0]]=o[1];this.headers=t,this.responseInternal=e}json(){return this.responseInternal.json()}}class Z{get text(){var e,t,o,r,l,a,d,f;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning text from the first one.");let u="",c=!1;const p=[];for(const m of(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)!==null&&f!==void 0?f:[]){for(const[h,g]of Object.entries(m))h!=="text"&&h!=="thought"&&(g!==null||g!==void 0)&&p.push(h);if(typeof m.text=="string"){if(typeof m.thought=="boolean"&&m.thought)continue;c=!0,u+=m.text}}return p.length>0&&console.warn(`there are non-text parts ${p} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`),c?u:void 0}get data(){var e,t,o,r,l,a,d,f;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning data from the first one.");let u="";const c=[];for(const p of(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)!==null&&f!==void 0?f:[]){for(const[m,h]of Object.entries(p))m!=="inlineData"&&(h!==null||h!==void 0)&&c.push(m);p.inlineData&&typeof p.inlineData.data=="string"&&(u+=atob(p.inlineData.data))}return c.length>0&&console.warn(`there are non-data parts ${c} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),u.length>0?btoa(u):void 0}get functionCalls(){var e,t,o,r,l,a,d,f;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning function calls from the first one.");const u=(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)===null||f===void 0?void 0:f.filter(c=>c.functionCall).map(c=>c.functionCall).filter(c=>c!==void 0);if(u?.length!==0)return u}get executableCode(){var e,t,o,r,l,a,d,f,u;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning executable code from the first one.");const c=(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)===null||f===void 0?void 0:f.filter(p=>p.executableCode).map(p=>p.executableCode).filter(p=>p!==void 0);if(c?.length!==0)return(u=c?.[0])===null||u===void 0?void 0:u.code}get codeExecutionResult(){var e,t,o,r,l,a,d,f,u;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning code execution result from the first one.");const c=(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)===null||f===void 0?void 0:f.filter(p=>p.codeExecutionResult).map(p=>p.codeExecutionResult).filter(p=>p!==void 0);if(c?.length!==0)return(u=c?.[0])===null||u===void 0?void 0:u.output}}class _n{}class En{}class Ut{}class kt{}class Lt{}class Vt{}class In{}class vn{}class An{}class Ft{}class oe{_fromAPIResponse({apiResponse:e,isVertexAI:t}){const o=new oe;let r;const l=e;return t?r=At(l):r=vt(l),Object.assign(o,r),o}}class Sn{}class Rn{}class Mn{}class qt{}class Gt{}class Ht{}class Pn{}class Bt{get text(){var e,t,o;let r="",l=!1;const a=[];for(const d of(o=(t=(e=this.serverContent)===null||e===void 0?void 0:e.modelTurn)===null||t===void 0?void 0:t.parts)!==null&&o!==void 0?o:[]){for(const[f,u]of Object.entries(d))f!=="text"&&f!=="thought"&&u!==null&&a.push(f);if(typeof d.text=="string"){if(typeof d.thought=="boolean"&&d.thought)continue;l=!0,r+=d.text}}return a.length>0&&console.warn(`there are non-text parts ${a} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`),l?r:void 0}get data(){var e,t,o;let r="";const l=[];for(const a of(o=(t=(e=this.serverContent)===null||e===void 0?void 0:e.modelTurn)===null||t===void 0?void 0:t.parts)!==null&&o!==void 0?o:[]){for(const[d,f]of Object.entries(a))d!=="inlineData"&&f!==null&&l.push(d);a.inlineData&&typeof a.inlineData.data=="string"&&(r+=atob(a.inlineData.data))}return l.length>0&&console.warn(`there are non-data parts ${l} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),r.length>0?btoa(r):void 0}}class Jt{get audioChunk(){if(this.serverContent&&this.serverContent.audioChunks&&this.serverContent.audioChunks.length>0)return this.serverContent.audioChunks[0]}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function P(n,e){if(!e||typeof e!="string")throw new Error("model is required and must be a string");if(n.isVertexAI()){if(e.startsWith("publishers/")||e.startsWith("projects/")||e.startsWith("models/"))return e;if(e.indexOf("/")>=0){const t=e.split("/",2);return`publishers/${t[0]}/models/${t[1]}`}else return`publishers/google/models/${e}`}else return e.startsWith("models/")||e.startsWith("tunedModels/")?e:`models/${e}`}function Kn(n,e){const t=P(n,e);return t?t.startsWith("publishers/")&&n.isVertexAI()?`projects/${n.getProject()}/locations/${n.getLocation()}/${t}`:t.startsWith("models/")&&n.isVertexAI()?`projects/${n.getProject()}/locations/${n.getLocation()}/publishers/google/${t}`:t:""}function zn(n){return Array.isArray(n)?n.map(e=>ie(e)):[ie(n)]}function ie(n){if(typeof n=="object"&&n!==null)return n;throw new Error(`Could not parse input as Blob. Unsupported blob type: ${typeof n}`)}function Xn(n){const e=ie(n);if(e.mimeType&&e.mimeType.startsWith("image/"))return e;throw new Error(`Unsupported mime type: ${e.mimeType}`)}function Qn(n){const e=ie(n);if(e.mimeType&&e.mimeType.startsWith("audio/"))return e;throw new Error(`Unsupported mime type: ${e.mimeType}`)}function Nn(n){if(n==null)throw new Error("PartUnion is required");if(typeof n=="object")return n;if(typeof n=="string")return{text:n};throw new Error(`Unsupported part type: ${typeof n}`)}function bn(n){if(n==null||Array.isArray(n)&&n.length===0)throw new Error("PartListUnion is required");return Array.isArray(n)?n.map(e=>Nn(e)):[Nn(n)]}function me(n){return n!=null&&typeof n=="object"&&"parts"in n&&Array.isArray(n.parts)}function wn(n){return n!=null&&typeof n=="object"&&"functionCall"in n}function Dn(n){return n!=null&&typeof n=="object"&&"functionResponse"in n}function U(n){if(n==null)throw new Error("ContentUnion is required");return me(n)?n:{role:"user",parts:bn(n)}}function Ee(n,e){if(!e)return[];if(n.isVertexAI()&&Array.isArray(e))return e.flatMap(t=>{const o=U(t);return o.parts&&o.parts.length>0&&o.parts[0].text!==void 0?[o.parts[0].text]:[]});if(n.isVertexAI()){const t=U(e);return t.parts&&t.parts.length>0&&t.parts[0].text!==void 0?[t.parts[0].text]:[]}return Array.isArray(e)?e.map(t=>U(t)):[U(e)]}function L(n){if(n==null||Array.isArray(n)&&n.length===0)throw new Error("contents are required");if(!Array.isArray(n)){if(wn(n)||Dn(n))throw new Error("To specify functionCall or functionResponse parts, please wrap them in a Content object, specifying the role for them");return[U(n)]}const e=[],t=[],o=me(n[0]);for(const r of n){const l=me(r);if(l!=o)throw new Error("Mixing Content and Parts is not supported, please group the parts into a the appropriate Content objects and specify the roles for them");if(l)e.push(r);else{if(wn(r)||Dn(r))throw new Error("To specify functionCall or functionResponse parts, please wrap them, and any other parts, in Content objects as appropriate, specifying the role for them");t.push(r)}}return o||e.push({role:"user",parts:bn(t)}),e}function Yt(n,e){n.includes("null")&&(e.nullable=!0);const t=n.filter(o=>o!=="null");if(t.length===1)e.type=Object.values(H).includes(t[0].toUpperCase())?t[0].toUpperCase():H.TYPE_UNSPECIFIED;else{e.anyOf=[];for(const o of t)e.anyOf.push({type:Object.values(H).includes(o.toUpperCase())?o.toUpperCase():H.TYPE_UNSPECIFIED})}}function W(n){const e={},t=["items"],o=["anyOf"],r=["properties"];if(n.type&&n.anyOf)throw new Error("type and anyOf cannot be both populated.");const l=n.anyOf;l!=null&&l.length==2&&(l[0].type==="null"?(e.nullable=!0,n=l[1]):l[1].type==="null"&&(e.nullable=!0,n=l[0])),n.type instanceof Array&&Yt(n.type,e);for(const[a,d]of Object.entries(n))if(d!=null)if(a=="type"){if(d==="null")throw new Error("type: null can not be the only possible type for the field.");if(d instanceof Array)continue;e.type=Object.values(H).includes(d.toUpperCase())?d.toUpperCase():H.TYPE_UNSPECIFIED}else if(t.includes(a))e[a]=W(d);else if(o.includes(a)){const f=[];for(const u of d){if(u.type=="null"){e.nullable=!0;continue}f.push(W(u))}e[a]=f}else if(r.includes(a)){const f={};for(const[u,c]of Object.entries(d))f[u]=W(c);e[a]=f}else{if(a==="additionalProperties")continue;e[a]=d}return e}function Ie(n){return W(n)}function ve(n){if(typeof n=="object")return n;if(typeof n=="string")return{voiceConfig:{prebuiltVoiceConfig:{voiceName:n}}};throw new Error(`Unsupported speechConfig type: ${typeof n}`)}function Ae(n){if("multiSpeakerVoiceConfig"in n)throw new Error("multiSpeakerVoiceConfig is not supported in the live API.");return n}function X(n){if(n.functionDeclarations)for(const e of n.functionDeclarations)e.parameters&&(Object.keys(e.parameters).includes("$schema")?e.parametersJsonSchema||(e.parametersJsonSchema=e.parameters,delete e.parameters):e.parameters=W(e.parameters)),e.response&&(Object.keys(e.response).includes("$schema")?e.responseJsonSchema||(e.responseJsonSchema=e.response,delete e.response):e.response=W(e.response));return n}function Q(n){if(n==null)throw new Error("tools is required");if(!Array.isArray(n))throw new Error("tools is required and must be an array of Tools");const e=[];for(const t of n)e.push(t);return e}function $t(n,e,t,o=1){const r=!e.startsWith(`${t}/`)&&e.split("/").length===o;return n.isVertexAI()?e.startsWith("projects/")?e:e.startsWith("locations/")?`projects/${n.getProject()}/${e}`:e.startsWith(`${t}/`)?`projects/${n.getProject()}/locations/${n.getLocation()}/${e}`:r?`projects/${n.getProject()}/locations/${n.getLocation()}/${t}/${e}`:e:r?`${t}/${e}`:e}function G(n,e){if(typeof e!="string")throw new Error("name must be a string");return $t(n,e,"cachedContents")}function Zn(n){switch(n){case"STATE_UNSPECIFIED":return"JOB_STATE_UNSPECIFIED";case"CREATING":return"JOB_STATE_RUNNING";case"ACTIVE":return"JOB_STATE_SUCCEEDED";case"FAILED":return"JOB_STATE_FAILED";default:return n}}function B(n){return _e(n)}function Wt(n){return n!=null&&typeof n=="object"&&"name"in n}function Kt(n){return n!=null&&typeof n=="object"&&"video"in n}function zt(n){return n!=null&&typeof n=="object"&&"uri"in n}function On(n){var e;let t;if(Wt(n)&&(t=n.name),!(zt(n)&&(t=n.uri,t===void 0))&&!(Kt(n)&&(t=(e=n.video)===null||e===void 0?void 0:e.uri,t===void 0))){if(typeof n=="string"&&(t=n),t===void 0)throw new Error("Could not extract file name from the provided input.");if(t.startsWith("https://")){const r=t.split("files/")[1].match(/[a-z0-9]+/);if(r===null)throw new Error(`Could not extract file name from URI ${t}`);t=r[0]}else t.startsWith("files/")&&(t=t.split("files/")[1]);return t}}function jn(n,e){let t;return n.isVertexAI()?t=e?"publishers/google/models":"models":t=e?"models":"tunedModels",t}function et(n){for(const e of["models","tunedModels","publisherModels"])if(Xt(n,e))return n[e];return[]}function Xt(n,e){return n!==null&&typeof n=="object"&&e in n}function Qt(n,e={}){const t=n,o={name:t.name,description:t.description,parametersJsonSchema:t.inputSchema};return t.outputSchema&&(o.responseJsonSchema=t.outputSchema),e.behavior&&(o.behavior=e.behavior),{functionDeclarations:[o]}}function bt(n,e={}){const t=[],o=new Set;for(const r of n){const l=r.name;if(o.has(l))throw new Error(`Duplicate function name ${l} found in MCP tools. Please ensure function names are unique.`);o.add(l);const a=Qt(r,e);a.functionDeclarations&&t.push(...a.functionDeclarations)}return{functionDeclarations:t}}function nt(n,e){let t;if(typeof e=="string")if(n.isVertexAI())if(e.startsWith("gs://"))t={format:"jsonl",gcsUri:[e]};else if(e.startsWith("bq://"))t={format:"bigquery",bigqueryUri:e};else throw new Error(`Unsupported string source for Vertex AI: ${e}`);else if(e.startsWith("files/"))t={fileName:e};else throw new Error(`Unsupported string source for Gemini API: ${e}`);else if(Array.isArray(e)){if(n.isVertexAI())throw new Error("InlinedRequest[] is not supported in Vertex AI.");t={inlinedRequests:e}}else t=e;const o=[t.gcsUri,t.bigqueryUri].filter(Boolean).length,r=[t.inlinedRequests,t.fileName].filter(Boolean).length;if(n.isVertexAI()){if(r>0||o!==1)throw new Error("Exactly one of `gcsUri` or `bigqueryUri` must be set for Vertex AI.")}else if(o>0||r!==1)throw new Error("Exactly one of `inlinedRequests`, `fileName`, must be set for Gemini API.");return t}function Zt(n){if(typeof n!="string")return n;const e=n;if(e.startsWith("gs://"))return{format:"jsonl",gcsUri:e};if(e.startsWith("bq://"))return{format:"bigquery",bigqueryUri:e};throw new Error(`Unsupported destination: ${e}`)}function tt(n){if(typeof n!="object"||n===null)return{};const e=n,t=e.inlinedResponses;if(typeof t!="object"||t===null)return n;const r=t.inlinedResponses;if(!Array.isArray(r)||r.length===0)return n;let l=!1;for(const a of r){if(typeof a!="object"||a===null)continue;const f=a.response;if(typeof f!="object"||f===null)continue;if(f.embedding!==void 0){l=!0;break}}return l&&(e.inlinedEmbedContentResponses=e.inlinedResponses,delete e.inlinedResponses),n}function b(n,e){const t=e;if(!n.isVertexAI()){if(/batches\/[^/]+$/.test(t))return t.split("/").pop();throw new Error(`Invalid batch job name: ${t}.`)}if(/^projects\/[^/]+\/locations\/[^/]+\/batchPredictionJobs\/[^/]+$/.test(t))return t.split("/").pop();if(/^\d+$/.test(t))return t;throw new Error(`Invalid batch job name: ${t}.`)}function ot(n){const e=n;return e==="BATCH_STATE_UNSPECIFIED"?"JOB_STATE_UNSPECIFIED":e==="BATCH_STATE_PENDING"?"JOB_STATE_PENDING":e==="BATCH_STATE_RUNNING"?"JOB_STATE_RUNNING":e==="BATCH_STATE_SUCCEEDED"?"JOB_STATE_SUCCEEDED":e==="BATCH_STATE_FAILED"?"JOB_STATE_FAILED":e==="BATCH_STATE_CANCELLED"?"JOB_STATE_CANCELLED":e==="BATCH_STATE_EXPIRED"?"JOB_STATE_EXPIRED":e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function Ot(n){const e={},t=i(n,["responsesFile"]);t!=null&&s(e,["fileName"],t);const o=i(n,["inlinedResponses","inlinedResponses"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>wo(a))),s(e,["inlinedResponses"],l)}const r=i(n,["inlinedEmbedContentResponses","inlinedResponses"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["inlinedEmbedContentResponses"],l)}return e}function jt(n){const e={},t=i(n,["predictionsFormat"]);t!=null&&s(e,["format"],t);const o=i(n,["gcsDestination","outputUriPrefix"]);o!=null&&s(e,["gcsUri"],o);const r=i(n,["bigqueryDestination","outputUri"]);return r!=null&&s(e,["bigqueryUri"],r),e}function eo(n){const e={},t=i(n,["format"]);t!=null&&s(e,["predictionsFormat"],t);const o=i(n,["gcsUri"]);o!=null&&s(e,["gcsDestination","outputUriPrefix"],o);const r=i(n,["bigqueryUri"]);if(r!=null&&s(e,["bigqueryDestination","outputUri"],r),i(n,["fileName"])!==void 0)throw new Error("fileName parameter is not supported in Vertex AI.");if(i(n,["inlinedResponses"])!==void 0)throw new Error("inlinedResponses parameter is not supported in Vertex AI.");if(i(n,["inlinedEmbedContentResponses"])!==void 0)throw new Error("inlinedEmbedContentResponses parameter is not supported in Vertex AI.");return e}function ee(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata","displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["metadata","state"]);r!=null&&s(e,["state"],ot(r));const l=i(n,["metadata","createTime"]);l!=null&&s(e,["createTime"],l);const a=i(n,["metadata","endTime"]);a!=null&&s(e,["endTime"],a);const d=i(n,["metadata","updateTime"]);d!=null&&s(e,["updateTime"],d);const f=i(n,["metadata","model"]);f!=null&&s(e,["model"],f);const u=i(n,["metadata","output"]);return u!=null&&s(e,["dest"],Ot(tt(u))),e}function he(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["state"]);r!=null&&s(e,["state"],ot(r));const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["createTime"]);a!=null&&s(e,["createTime"],a);const d=i(n,["startTime"]);d!=null&&s(e,["startTime"],d);const f=i(n,["endTime"]);f!=null&&s(e,["endTime"],f);const u=i(n,["updateTime"]);u!=null&&s(e,["updateTime"],u);const c=i(n,["model"]);c!=null&&s(e,["model"],c);const p=i(n,["inputConfig"]);p!=null&&s(e,["src"],no(p));const m=i(n,["outputConfig"]);return m!=null&&s(e,["dest"],jt(tt(m))),e}function no(n){const e={},t=i(n,["instancesFormat"]);t!=null&&s(e,["format"],t);const o=i(n,["gcsSource","uris"]);o!=null&&s(e,["gcsUri"],o);const r=i(n,["bigquerySource","inputUri"]);return r!=null&&s(e,["bigqueryUri"],r),e}function to(n,e){const t={};if(i(e,["format"])!==void 0)throw new Error("format parameter is not supported in Gemini API.");if(i(e,["gcsUri"])!==void 0)throw new Error("gcsUri parameter is not supported in Gemini API.");if(i(e,["bigqueryUri"])!==void 0)throw new Error("bigqueryUri parameter is not supported in Gemini API.");const o=i(e,["fileName"]);o!=null&&s(t,["fileName"],o);const r=i(e,["inlinedRequests"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>No(n,a))),s(t,["requests","requests"],l)}return t}function oo(n){const e={},t=i(n,["format"]);t!=null&&s(e,["instancesFormat"],t);const o=i(n,["gcsUri"]);o!=null&&s(e,["gcsSource","uris"],o);const r=i(n,["bigqueryUri"]);if(r!=null&&s(e,["bigquerySource","inputUri"],r),i(n,["fileName"])!==void 0)throw new Error("fileName parameter is not supported in Vertex AI.");if(i(n,["inlinedRequests"])!==void 0)throw new Error("inlinedRequests parameter is not supported in Vertex AI.");return e}function io(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function so(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function ro(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function lo(n){const e={},t=i(n,["content"]);t!=null&&s(e,["content"],t);const o=i(n,["citationMetadata"]);o!=null&&s(e,["citationMetadata"],ao(o));const r=i(n,["tokenCount"]);r!=null&&s(e,["tokenCount"],r);const l=i(n,["finishReason"]);l!=null&&s(e,["finishReason"],l);const a=i(n,["urlContextMetadata"]);a!=null&&s(e,["urlContextMetadata"],a);const d=i(n,["avgLogprobs"]);d!=null&&s(e,["avgLogprobs"],d);const f=i(n,["groundingMetadata"]);f!=null&&s(e,["groundingMetadata"],f);const u=i(n,["index"]);u!=null&&s(e,["index"],u);const c=i(n,["logprobsResult"]);c!=null&&s(e,["logprobsResult"],c);const p=i(n,["safetyRatings"]);if(p!=null){let m=p;Array.isArray(m)&&(m=m.map(h=>h)),s(e,["safetyRatings"],m)}return e}function ao(n){const e={},t=i(n,["citationSources"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["citations"],o)}return e}function it(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>Fo(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function uo(n,e){const t={},o=i(n,["displayName"]);if(e!==void 0&&o!=null&&s(e,["batch","displayName"],o),i(n,["dest"])!==void 0)throw new Error("dest parameter is not supported in Gemini API.");return t}function fo(n,e){const t={},o=i(n,["displayName"]);e!==void 0&&o!=null&&s(e,["displayName"],o);const r=i(n,["dest"]);return e!==void 0&&r!=null&&s(e,["outputConfig"],eo(Zt(r))),t}function xn(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["src"]);r!=null&&s(t,["batch","inputConfig"],to(n,nt(n,r)));const l=i(e,["config"]);return l!=null&&uo(l,t),t}function co(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["model"],P(n,o));const r=i(e,["src"]);r!=null&&s(t,["inputConfig"],oo(nt(n,r)));const l=i(e,["config"]);return l!=null&&fo(l,t),t}function po(n,e){const t={},o=i(n,["displayName"]);return e!==void 0&&o!=null&&s(e,["batch","displayName"],o),t}function mo(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["src"]);r!=null&&s(t,["batch","inputConfig"],Eo(n,r));const l=i(e,["config"]);return l!=null&&po(l,t),t}function ho(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function go(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function yo(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);return l!=null&&s(e,["error"],l),e}function To(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);return l!=null&&s(e,["error"],l),e}function Co(n,e){const t={},o=i(e,["contents"]);if(o!=null){let l=Ee(n,o);Array.isArray(l)&&(l=l.map(a=>a)),s(t,["requests[]","request","content"],l)}const r=i(e,["config"]);return r!=null&&(s(t,["_self"],_o(r,t)),Et(t,{"requests[].*":"requests[].request.*"})),t}function _o(n,e){const t={},o=i(n,["taskType"]);e!==void 0&&o!=null&&s(e,["requests[]","taskType"],o);const r=i(n,["title"]);e!==void 0&&r!=null&&s(e,["requests[]","title"],r);const l=i(n,["outputDimensionality"]);if(e!==void 0&&l!=null&&s(e,["requests[]","outputDimensionality"],l),i(n,["mimeType"])!==void 0)throw new Error("mimeType parameter is not supported in Gemini API.");if(i(n,["autoTruncate"])!==void 0)throw new Error("autoTruncate parameter is not supported in Gemini API.");return t}function Eo(n,e){const t={},o=i(e,["fileName"]);o!=null&&s(t,["file_name"],o);const r=i(e,["inlinedRequests"]);return r!=null&&s(t,["requests"],Co(n,r)),t}function Io(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function vo(n,e,t){const o={},r=i(e,["systemInstruction"]);t!==void 0&&r!=null&&s(t,["systemInstruction"],it(U(r)));const l=i(e,["temperature"]);l!=null&&s(o,["temperature"],l);const a=i(e,["topP"]);a!=null&&s(o,["topP"],a);const d=i(e,["topK"]);d!=null&&s(o,["topK"],d);const f=i(e,["candidateCount"]);f!=null&&s(o,["candidateCount"],f);const u=i(e,["maxOutputTokens"]);u!=null&&s(o,["maxOutputTokens"],u);const c=i(e,["stopSequences"]);c!=null&&s(o,["stopSequences"],c);const p=i(e,["responseLogprobs"]);p!=null&&s(o,["responseLogprobs"],p);const m=i(e,["logprobs"]);m!=null&&s(o,["logprobs"],m);const h=i(e,["presencePenalty"]);h!=null&&s(o,["presencePenalty"],h);const g=i(e,["frequencyPenalty"]);g!=null&&s(o,["frequencyPenalty"],g);const y=i(e,["seed"]);y!=null&&s(o,["seed"],y);const _=i(e,["responseMimeType"]);_!=null&&s(o,["responseMimeType"],_);const I=i(e,["responseSchema"]);I!=null&&s(o,["responseSchema"],Ie(I));const E=i(e,["responseJsonSchema"]);if(E!=null&&s(o,["responseJsonSchema"],E),i(e,["routingConfig"])!==void 0)throw new Error("routingConfig parameter is not supported in Gemini API.");if(i(e,["modelSelectionConfig"])!==void 0)throw new Error("modelSelectionConfig parameter is not supported in Gemini API.");const C=i(e,["safetySettings"]);if(t!==void 0&&C!=null){let D=C;Array.isArray(D)&&(D=D.map(F=>qo(F))),s(t,["safetySettings"],D)}const v=i(e,["tools"]);if(t!==void 0&&v!=null){let D=Q(v);Array.isArray(D)&&(D=D.map(F=>Go(X(F)))),s(t,["tools"],D)}const S=i(e,["toolConfig"]);if(t!==void 0&&S!=null&&s(t,["toolConfig"],S),i(e,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");const R=i(e,["cachedContent"]);t!==void 0&&R!=null&&s(t,["cachedContent"],G(n,R));const M=i(e,["responseModalities"]);M!=null&&s(o,["responseModalities"],M);const x=i(e,["mediaResolution"]);x!=null&&s(o,["mediaResolution"],x);const A=i(e,["speechConfig"]);if(A!=null&&s(o,["speechConfig"],ve(A)),i(e,["audioTimestamp"])!==void 0)throw new Error("audioTimestamp parameter is not supported in Gemini API.");const N=i(e,["thinkingConfig"]);N!=null&&s(o,["thinkingConfig"],N);const k=i(e,["imageConfig"]);return k!=null&&s(o,["imageConfig"],k),o}function Ao(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["candidates"]);if(o!=null){let f=o;Array.isArray(f)&&(f=f.map(u=>lo(u))),s(e,["candidates"],f)}const r=i(n,["modelVersion"]);r!=null&&s(e,["modelVersion"],r);const l=i(n,["promptFeedback"]);l!=null&&s(e,["promptFeedback"],l);const a=i(n,["responseId"]);a!=null&&s(e,["responseId"],a);const d=i(n,["usageMetadata"]);return d!=null&&s(e,["usageMetadata"],d),e}function So(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function Ro(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function Mo(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function Po(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function No(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["request","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let d=L(r);Array.isArray(d)&&(d=d.map(f=>it(f))),s(t,["request","contents"],d)}const l=i(e,["metadata"]);l!=null&&s(t,["metadata"],l);const a=i(e,["config"]);return a!=null&&s(t,["request","generationConfig"],vo(n,a,i(t,["request"],{}))),t}function wo(n){const e={},t=i(n,["response"]);t!=null&&s(e,["response"],Ao(t));const o=i(n,["error"]);return o!=null&&s(e,["error"],o),e}function Do(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);if(e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),i(n,["filter"])!==void 0)throw new Error("filter parameter is not supported in Gemini API.");return t}function xo(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);e!==void 0&&r!=null&&s(e,["_query","pageToken"],r);const l=i(n,["filter"]);return e!==void 0&&l!=null&&s(e,["_query","filter"],l),t}function Uo(n){const e={},t=i(n,["config"]);return t!=null&&Do(t,e),e}function ko(n){const e={},t=i(n,["config"]);return t!=null&&xo(t,e),e}function Lo(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["operations"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>ee(a))),s(e,["batchJobs"],l)}return e}function Vo(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["batchPredictionJobs"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>he(a))),s(e,["batchJobs"],l)}return e}function Fo(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],io(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],Io(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function qo(n){const e={};if(i(n,["method"])!==void 0)throw new Error("method parameter is not supported in Gemini API.");const t=i(n,["category"]);t!=null&&s(e,["category"],t);const o=i(n,["threshold"]);return o!=null&&s(e,["threshold"],o),e}function Go(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],Po(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],Mo(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */var J;(function(n){n.PAGED_ITEM_BATCH_JOBS="batchJobs",n.PAGED_ITEM_MODELS="models",n.PAGED_ITEM_TUNING_JOBS="tuningJobs",n.PAGED_ITEM_FILES="files",n.PAGED_ITEM_CACHED_CONTENTS="cachedContents"})(J||(J={}));class j{constructor(e,t,o,r){this.pageInternal=[],this.paramsInternal={},this.requestInternal=t,this.init(e,o,r)}init(e,t,o){var r,l;this.nameInternal=e,this.pageInternal=t[this.nameInternal]||[],this.sdkHttpResponseInternal=t?.sdkHttpResponse,this.idxInternal=0;let a={config:{}};!o||Object.keys(o).length===0?a={config:{}}:typeof o=="object"?a=Object.assign({},o):a=o,a.config&&(a.config.pageToken=t.nextPageToken),this.paramsInternal=a,this.pageInternalSize=(l=(r=a.config)===null||r===void 0?void 0:r.pageSize)!==null&&l!==void 0?l:this.pageInternal.length}initNextPage(e){this.init(this.nameInternal,e,this.paramsInternal)}get page(){return this.pageInternal}get name(){return this.nameInternal}get pageSize(){return this.pageInternalSize}get sdkHttpResponse(){return this.sdkHttpResponseInternal}get params(){return this.paramsInternal}get pageLength(){return this.pageInternal.length}getItem(e){return this.pageInternal[e]}[Symbol.asyncIterator](){return{next:async()=>{if(this.idxInternal>=this.pageLength)if(this.hasNextPage())await this.nextPage();else return{value:void 0,done:!0};const e=this.getItem(this.idxInternal);return this.idxInternal+=1,{value:e,done:!1}},return:async()=>({value:void 0,done:!0})}}async nextPage(){if(!this.hasNextPage())throw new Error("No more pages to fetch.");const e=await this.requestInternal(this.params);return this.initNextPage(e),this.page}hasNextPage(){var e;return((e=this.params.config)===null||e===void 0?void 0:e.pageToken)!==void 0}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class Ho extends Y{constructor(e){super(),this.apiClient=e,this.create=async t=>(this.apiClient.isVertexAI()&&(t.config=this.formatDestination(t.src,t.config)),this.createInternal(t)),this.createEmbeddings=async t=>{if(console.warn("batches.createEmbeddings() is experimental and may change without notice."),this.apiClient.isVertexAI())throw new Error("Vertex AI does not support batches.createEmbeddings.");return this.createEmbeddingsInternal(t)},this.list=async(t={})=>new j(J.PAGED_ITEM_BATCH_JOBS,o=>this.listInternal(o),await this.listInternal(t),t)}createInlinedGenerateContentRequest(e){const t=xn(this.apiClient,e),o=t._url,r=T("{model}:batchGenerateContent",o),d=t.batch.inputConfig.requests,f=d.requests,u=[];for(const c of f){const p=Object.assign({},c);if(p.systemInstruction){const m=p.systemInstruction;delete p.systemInstruction;const h=p.request;h.systemInstruction=m,p.request=h}u.push(p)}return d.requests=u,delete t.config,delete t._url,delete t._query,{path:r,body:t}}getGcsUri(e){if(typeof e=="string")return e.startsWith("gs://")?e:void 0;if(!Array.isArray(e)&&e.gcsUri&&e.gcsUri.length>0)return e.gcsUri[0]}getBigqueryUri(e){if(typeof e=="string")return e.startsWith("bq://")?e:void 0;if(!Array.isArray(e))return e.bigqueryUri}formatDestination(e,t){const o=t?Object.assign({},t):{},r=Date.now().toString();if(o.displayName||(o.displayName=`genaiBatchJob_${r}`),o.dest===void 0){const l=this.getGcsUri(e),a=this.getBigqueryUri(e);if(l)l.endsWith(".jsonl")?o.dest=`${l.slice(0,-6)}/dest`:o.dest=`${l}_dest_${r}`;else if(a)o.dest=`${a}_dest_${r}`;else throw new Error("Unsupported source for Vertex AI: No GCS or BigQuery URI found.")}return o}async createInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=co(this.apiClient,e);return d=T("batchPredictionJobs",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>he(c))}else{const u=xn(this.apiClient,e);return d=T("{model}:batchGenerateContent",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ee(c))}}async createEmbeddingsInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=mo(this.apiClient,e);return l=T("{model}:asyncBatchEmbedContent",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>ee(f))}}async get(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Ro(this.apiClient,e);return d=T("batchPredictionJobs/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>he(c))}else{const u=So(this.apiClient,e);return d=T("batches/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ee(c))}}async cancel(e){var t,o,r,l;let a="",d={};if(this.apiClient.isVertexAI()){const f=ro(this.apiClient,e);a=T("batchPredictionJobs/{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal})}else{const f=so(this.apiClient,e);a=T("batches/{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal})}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=ko(e);return d=T("batchPredictionJobs",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Vo(c),m=new Pn;return Object.assign(m,p),m})}else{const u=Uo(e);return d=T("batches",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Lo(c),m=new Pn;return Object.assign(m,p),m})}}async delete(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=go(this.apiClient,e);return d=T("batchPredictionJobs/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>To(c))}else{const u=ho(this.apiClient,e);return d=T("batches/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>yo(c))}}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function Bo(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Un(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>ai(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function Jo(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);e!==void 0&&r!=null&&s(e,["expireTime"],r);const l=i(n,["displayName"]);e!==void 0&&l!=null&&s(e,["displayName"],l);const a=i(n,["contents"]);if(e!==void 0&&a!=null){let c=L(a);Array.isArray(c)&&(c=c.map(p=>Un(p))),s(e,["contents"],c)}const d=i(n,["systemInstruction"]);e!==void 0&&d!=null&&s(e,["systemInstruction"],Un(U(d)));const f=i(n,["tools"]);if(e!==void 0&&f!=null){let c=f;Array.isArray(c)&&(c=c.map(p=>ui(p))),s(e,["tools"],c)}const u=i(n,["toolConfig"]);if(e!==void 0&&u!=null&&s(e,["toolConfig"],u),i(n,["kmsKeyName"])!==void 0)throw new Error("kmsKeyName parameter is not supported in Gemini API.");return t}function Yo(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);e!==void 0&&r!=null&&s(e,["expireTime"],r);const l=i(n,["displayName"]);e!==void 0&&l!=null&&s(e,["displayName"],l);const a=i(n,["contents"]);if(e!==void 0&&a!=null){let p=L(a);Array.isArray(p)&&(p=p.map(m=>m)),s(e,["contents"],p)}const d=i(n,["systemInstruction"]);e!==void 0&&d!=null&&s(e,["systemInstruction"],U(d));const f=i(n,["tools"]);if(e!==void 0&&f!=null){let p=f;Array.isArray(p)&&(p=p.map(m=>di(m))),s(e,["tools"],p)}const u=i(n,["toolConfig"]);e!==void 0&&u!=null&&s(e,["toolConfig"],u);const c=i(n,["kmsKeyName"]);return e!==void 0&&c!=null&&s(e,["encryption_spec","kmsKeyName"],c),t}function $o(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["model"],Kn(n,o));const r=i(e,["config"]);return r!=null&&Jo(r,t),t}function Wo(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["model"],Kn(n,o));const r=i(e,["config"]);return r!=null&&Yo(r,t),t}function Ko(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function zo(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function Xo(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function Qo(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function bo(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Zo(n){const e={};if(i(n,["behavior"])!==void 0)throw new Error("behavior parameter is not supported in Vertex AI.");const t=i(n,["description"]);t!=null&&s(e,["description"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["parameters"]);r!=null&&s(e,["parameters"],r);const l=i(n,["parametersJsonSchema"]);l!=null&&s(e,["parametersJsonSchema"],l);const a=i(n,["response"]);a!=null&&s(e,["response"],a);const d=i(n,["responseJsonSchema"]);return d!=null&&s(e,["responseJsonSchema"],d),e}function Oo(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function jo(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function ei(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function ni(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function ti(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);return e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),t}function oi(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);return e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),t}function ii(n){const e={},t=i(n,["config"]);return t!=null&&ti(t,e),e}function si(n){const e={},t=i(n,["config"]);return t!=null&&oi(t,e),e}function ri(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["cachedContents"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["cachedContents"],l)}return e}function li(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["cachedContents"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["cachedContents"],l)}return e}function ai(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],Bo(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],bo(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function ui(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],ni(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],ei(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}function di(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let p=t;Array.isArray(p)&&(p=p.map(m=>Zo(m))),s(e,["functionDeclarations"],p)}const o=i(n,["retrieval"]);o!=null&&s(e,["retrieval"],o);const r=i(n,["googleSearch"]);r!=null&&s(e,["googleSearch"],r);const l=i(n,["googleSearchRetrieval"]);l!=null&&s(e,["googleSearchRetrieval"],l);const a=i(n,["enterpriseWebSearch"]);a!=null&&s(e,["enterpriseWebSearch"],a);const d=i(n,["googleMaps"]);d!=null&&s(e,["googleMaps"],d);const f=i(n,["urlContext"]);f!=null&&s(e,["urlContext"],f);const u=i(n,["computerUse"]);u!=null&&s(e,["computerUse"],u);const c=i(n,["codeExecution"]);return c!=null&&s(e,["codeExecution"],c),e}function fi(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);return e!==void 0&&r!=null&&s(e,["expireTime"],r),t}function ci(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);return e!==void 0&&r!=null&&s(e,["expireTime"],r),t}function pi(n,e){const t={},o=i(e,["name"]);o!=null&&s(t,["_url","name"],G(n,o));const r=i(e,["config"]);return r!=null&&fi(r,t),t}function mi(n,e){const t={},o=i(e,["name"]);o!=null&&s(t,["_url","name"],G(n,o));const r=i(e,["config"]);return r!=null&&ci(r,t),t}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class hi extends Y{constructor(e){super(),this.apiClient=e,this.list=async(t={})=>new j(J.PAGED_ITEM_CACHED_CONTENTS,o=>this.listInternal(o),await this.listInternal(t),t)}async create(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Wo(this.apiClient,e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>c)}else{const u=$o(this.apiClient,e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>c)}}async get(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=jo(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>c)}else{const u=Oo(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>c)}}async delete(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=zo(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Qo(c),m=new Rn;return Object.assign(m,p),m})}else{const u=Ko(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Xo(c),m=new Rn;return Object.assign(m,p),m})}}async update(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=mi(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>c)}else{const u=pi(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>c)}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=si(e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=li(c),m=new Mn;return Object.assign(m,p),m})}else{const u=ii(e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=ri(c),m=new Mn;return Object.assign(m,p),m})}}}function kn(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],o=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&o>=n.length&&(n=void 0),{value:n&&n[o++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(n){return this instanceof w?(this.v=n,this):new w(n)}function K(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=t.apply(n,e||[]),r,l=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),d("next"),d("throw"),d("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(h){return function(g){return Promise.resolve(g).then(h,p)}}function d(h,g){o[h]&&(r[h]=function(y){return new Promise(function(_,I){l.push([h,y,_,I])>1||f(h,y)})},g&&(r[h]=g(r[h])))}function f(h,g){try{u(o[h](g))}catch(y){m(l[0][3],y)}}function u(h){h.value instanceof w?Promise.resolve(h.value.v).then(c,p):m(l[0][2],h)}function c(h){f("next",h)}function p(h){f("throw",h)}function m(h,g){h(g),l.shift(),l.length&&f(l[0][0],l[0][1])}}function O(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof kn=="function"?kn(n):n[Symbol.iterator](),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(l){t[l]=n[l]&&function(a){return new Promise(function(d,f){a=n[l](a),r(d,f,a.done,a.value)})}}function r(l,a,d,f){Promise.resolve(f).then(function(u){l({value:u,done:d})},a)}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function gi(n){var e;if(n.candidates==null||n.candidates.length===0)return!1;const t=(e=n.candidates[0])===null||e===void 0?void 0:e.content;return t===void 0?!1:st(t)}function st(n){if(n.parts===void 0||n.parts.length===0)return!1;for(const e of n.parts)if(e===void 0||Object.keys(e).length===0)return!1;return!0}function yi(n){if(n.length!==0){for(const e of n)if(e.role!=="user"&&e.role!=="model")throw new Error(`Role must be user or model, but got ${e.role}.`)}}function Ln(n){if(n===void 0||n.length===0)return[];const e=[],t=n.length;let o=0;for(;o{var l,a,d;const f=await r,u=(a=(l=f.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content,c=f.automaticFunctionCallingHistory,p=this.getHistory(!0).length;let m=[];c!=null&&(m=(d=c.slice(p))!==null&&d!==void 0?d:[]);const h=u?[u]:[];this.recordHistory(o,h,m)})(),await this.sendPromise.catch(()=>{this.sendPromise=Promise.resolve()}),r}async sendMessageStream(e){var t;await this.sendPromise;const o=U(e.message),r=this.modelsModule.generateContentStream({model:this.model,contents:this.getHistory(!0).concat(o),config:(t=e.config)!==null&&t!==void 0?t:this.config});this.sendPromise=r.then(()=>{}).catch(()=>{});const l=await r;return this.processStreamResponse(l,o)}getHistory(e=!1){const t=e?Ln(this.history):this.history;return structuredClone(t)}processStreamResponse(e,t){var o,r;return K(this,arguments,function*(){var a,d,f,u;const c=[];try{for(var p=!0,m=O(e),h;h=yield w(m.next()),a=h.done,!a;p=!0){u=h.value,p=!1;const g=u;if(gi(g)){const y=(r=(o=g.candidates)===null||o===void 0?void 0:o[0])===null||r===void 0?void 0:r.content;y!==void 0&&c.push(y)}yield yield w(g)}}catch(g){d={error:g}}finally{try{!p&&!a&&(f=m.return)&&(yield w(f.call(m)))}finally{if(d)throw d.error}}this.recordHistory(t,c)})}recordHistory(e,t,o){let r=[];t.length>0&&t.every(l=>l.role!==void 0)?r=t:r.push({role:"model",parts:[]}),o&&o.length>0?this.history.push(...Ln(o)):this.history.push(e),this.history.push(...r)}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class se extends Error{constructor(e){super(e.message),this.name="ApiError",this.status=e.status,Object.setPrototypeOf(this,se.prototype)}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function _i(n){const e={},t=i(n,["file"]);return t!=null&&s(e,["file"],t),e}function Ei(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function Ii(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","file"],On(t)),e}function vi(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function Ai(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","file"],On(t)),e}function Si(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);return e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),t}function Ri(n){const e={},t=i(n,["config"]);return t!=null&&Si(t,e),e}function Mi(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["files"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["files"],l)}return e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class Pi extends Y{constructor(e){super(),this.apiClient=e,this.list=async(t={})=>new j(J.PAGED_ITEM_FILES,o=>this.listInternal(o),await this.listInternal(t),t)}async upload(e){if(this.apiClient.isVertexAI())throw new Error("Vertex AI does not support uploading files. You can share files through a GCS bucket.");return this.apiClient.uploadFile(e.file,e.config).then(t=>t)}async download(e){await this.apiClient.downloadFile(e)}async listInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Ri(e);return l=T("files",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=Mi(f),c=new qt;return Object.assign(c,u),c})}}async createInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=_i(e);return l=T("upload/v1beta/files",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>{const u=Ei(f),c=new Gt;return Object.assign(c,u),c})}}async get(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Ai(e);return l=T("files/{file}",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>f)}}async delete(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Ii(e);return l=T("files/{file}",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=vi(f),c=new Ht;return Object.assign(c,u),c})}}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function ne(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Ni(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>$i(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function wi(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Di(n){const e={};if(i(n,["behavior"])!==void 0)throw new Error("behavior parameter is not supported in Vertex AI.");const t=i(n,["description"]);t!=null&&s(e,["description"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["parameters"]);r!=null&&s(e,["parameters"],r);const l=i(n,["parametersJsonSchema"]);l!=null&&s(e,["parametersJsonSchema"],l);const a=i(n,["response"]);a!=null&&s(e,["response"],a);const d=i(n,["responseJsonSchema"]);return d!=null&&s(e,["responseJsonSchema"],d),e}function xi(n){const e={},t=i(n,["modelSelectionConfig"]);t!=null&&s(e,["modelConfig"],t);const o=i(n,["audioTimestamp"]);o!=null&&s(e,["audioTimestamp"],o);const r=i(n,["candidateCount"]);r!=null&&s(e,["candidateCount"],r);const l=i(n,["enableAffectiveDialog"]);l!=null&&s(e,["enableAffectiveDialog"],l);const a=i(n,["frequencyPenalty"]);a!=null&&s(e,["frequencyPenalty"],a);const d=i(n,["logprobs"]);d!=null&&s(e,["logprobs"],d);const f=i(n,["maxOutputTokens"]);f!=null&&s(e,["maxOutputTokens"],f);const u=i(n,["mediaResolution"]);u!=null&&s(e,["mediaResolution"],u);const c=i(n,["presencePenalty"]);c!=null&&s(e,["presencePenalty"],c);const p=i(n,["responseJsonSchema"]);p!=null&&s(e,["responseJsonSchema"],p);const m=i(n,["responseLogprobs"]);m!=null&&s(e,["responseLogprobs"],m);const h=i(n,["responseMimeType"]);h!=null&&s(e,["responseMimeType"],h);const g=i(n,["responseModalities"]);g!=null&&s(e,["responseModalities"],g);const y=i(n,["responseSchema"]);y!=null&&s(e,["responseSchema"],y);const _=i(n,["routingConfig"]);_!=null&&s(e,["routingConfig"],_);const I=i(n,["seed"]);I!=null&&s(e,["seed"],I);const E=i(n,["speechConfig"]);E!=null&&s(e,["speechConfig"],rt(E));const C=i(n,["stopSequences"]);C!=null&&s(e,["stopSequences"],C);const v=i(n,["temperature"]);v!=null&&s(e,["temperature"],v);const S=i(n,["thinkingConfig"]);S!=null&&s(e,["thinkingConfig"],S);const R=i(n,["topK"]);R!=null&&s(e,["topK"],R);const M=i(n,["topP"]);if(M!=null&&s(e,["topP"],M),i(n,["enableEnhancedCivicAnswers"])!==void 0)throw new Error("enableEnhancedCivicAnswers parameter is not supported in Vertex AI.");return e}function Ui(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function ki(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function Li(n,e){const t={},o=i(n,["generationConfig"]);e!==void 0&&o!=null&&s(e,["setup","generationConfig"],o);const r=i(n,["responseModalities"]);e!==void 0&&r!=null&&s(e,["setup","generationConfig","responseModalities"],r);const l=i(n,["temperature"]);e!==void 0&&l!=null&&s(e,["setup","generationConfig","temperature"],l);const a=i(n,["topP"]);e!==void 0&&a!=null&&s(e,["setup","generationConfig","topP"],a);const d=i(n,["topK"]);e!==void 0&&d!=null&&s(e,["setup","generationConfig","topK"],d);const f=i(n,["maxOutputTokens"]);e!==void 0&&f!=null&&s(e,["setup","generationConfig","maxOutputTokens"],f);const u=i(n,["mediaResolution"]);e!==void 0&&u!=null&&s(e,["setup","generationConfig","mediaResolution"],u);const c=i(n,["seed"]);e!==void 0&&c!=null&&s(e,["setup","generationConfig","seed"],c);const p=i(n,["speechConfig"]);e!==void 0&&p!=null&&s(e,["setup","generationConfig","speechConfig"],Ae(p));const m=i(n,["thinkingConfig"]);e!==void 0&&m!=null&&s(e,["setup","generationConfig","thinkingConfig"],m);const h=i(n,["enableAffectiveDialog"]);e!==void 0&&h!=null&&s(e,["setup","generationConfig","enableAffectiveDialog"],h);const g=i(n,["systemInstruction"]);e!==void 0&&g!=null&&s(e,["setup","systemInstruction"],Ni(U(g)));const y=i(n,["tools"]);if(e!==void 0&&y!=null){let R=Q(y);Array.isArray(R)&&(R=R.map(M=>Ki(X(M)))),s(e,["setup","tools"],R)}const _=i(n,["sessionResumption"]);e!==void 0&&_!=null&&s(e,["setup","sessionResumption"],Wi(_));const I=i(n,["inputAudioTranscription"]);e!==void 0&&I!=null&&s(e,["setup","inputAudioTranscription"],I);const E=i(n,["outputAudioTranscription"]);e!==void 0&&E!=null&&s(e,["setup","outputAudioTranscription"],E);const C=i(n,["realtimeInputConfig"]);e!==void 0&&C!=null&&s(e,["setup","realtimeInputConfig"],C);const v=i(n,["contextWindowCompression"]);e!==void 0&&v!=null&&s(e,["setup","contextWindowCompression"],v);const S=i(n,["proactivity"]);return e!==void 0&&S!=null&&s(e,["setup","proactivity"],S),t}function Vi(n,e){const t={},o=i(n,["generationConfig"]);e!==void 0&&o!=null&&s(e,["setup","generationConfig"],xi(o));const r=i(n,["responseModalities"]);e!==void 0&&r!=null&&s(e,["setup","generationConfig","responseModalities"],r);const l=i(n,["temperature"]);e!==void 0&&l!=null&&s(e,["setup","generationConfig","temperature"],l);const a=i(n,["topP"]);e!==void 0&&a!=null&&s(e,["setup","generationConfig","topP"],a);const d=i(n,["topK"]);e!==void 0&&d!=null&&s(e,["setup","generationConfig","topK"],d);const f=i(n,["maxOutputTokens"]);e!==void 0&&f!=null&&s(e,["setup","generationConfig","maxOutputTokens"],f);const u=i(n,["mediaResolution"]);e!==void 0&&u!=null&&s(e,["setup","generationConfig","mediaResolution"],u);const c=i(n,["seed"]);e!==void 0&&c!=null&&s(e,["setup","generationConfig","seed"],c);const p=i(n,["speechConfig"]);e!==void 0&&p!=null&&s(e,["setup","generationConfig","speechConfig"],rt(Ae(p)));const m=i(n,["thinkingConfig"]);e!==void 0&&m!=null&&s(e,["setup","generationConfig","thinkingConfig"],m);const h=i(n,["enableAffectiveDialog"]);e!==void 0&&h!=null&&s(e,["setup","generationConfig","enableAffectiveDialog"],h);const g=i(n,["systemInstruction"]);e!==void 0&&g!=null&&s(e,["setup","systemInstruction"],U(g));const y=i(n,["tools"]);if(e!==void 0&&y!=null){let R=Q(y);Array.isArray(R)&&(R=R.map(M=>zi(X(M)))),s(e,["setup","tools"],R)}const _=i(n,["sessionResumption"]);e!==void 0&&_!=null&&s(e,["setup","sessionResumption"],_);const I=i(n,["inputAudioTranscription"]);e!==void 0&&I!=null&&s(e,["setup","inputAudioTranscription"],I);const E=i(n,["outputAudioTranscription"]);e!==void 0&&E!=null&&s(e,["setup","outputAudioTranscription"],E);const C=i(n,["realtimeInputConfig"]);e!==void 0&&C!=null&&s(e,["setup","realtimeInputConfig"],C);const v=i(n,["contextWindowCompression"]);e!==void 0&&v!=null&&s(e,["setup","contextWindowCompression"],v);const S=i(n,["proactivity"]);return e!==void 0&&S!=null&&s(e,["setup","proactivity"],S),t}function Fi(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["setup","model"],P(n,o));const r=i(e,["config"]);return r!=null&&s(t,["config"],Li(r,t)),t}function qi(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["setup","model"],P(n,o));const r=i(e,["config"]);return r!=null&&s(t,["config"],Vi(r,t)),t}function Gi(n){const e={},t=i(n,["musicGenerationConfig"]);return t!=null&&s(e,["musicGenerationConfig"],t),e}function Hi(n){const e={},t=i(n,["weightedPrompts"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["weightedPrompts"],o)}return e}function Bi(n){const e={},t=i(n,["media"]);if(t!=null){let u=zn(t);Array.isArray(u)&&(u=u.map(c=>ne(c))),s(e,["mediaChunks"],u)}const o=i(n,["audio"]);o!=null&&s(e,["audio"],ne(Qn(o)));const r=i(n,["audioStreamEnd"]);r!=null&&s(e,["audioStreamEnd"],r);const l=i(n,["video"]);l!=null&&s(e,["video"],ne(Xn(l)));const a=i(n,["text"]);a!=null&&s(e,["text"],a);const d=i(n,["activityStart"]);d!=null&&s(e,["activityStart"],d);const f=i(n,["activityEnd"]);return f!=null&&s(e,["activityEnd"],f),e}function Ji(n){const e={},t=i(n,["media"]);if(t!=null){let u=zn(t);Array.isArray(u)&&(u=u.map(c=>c)),s(e,["mediaChunks"],u)}const o=i(n,["audio"]);o!=null&&s(e,["audio"],Qn(o));const r=i(n,["audioStreamEnd"]);r!=null&&s(e,["audioStreamEnd"],r);const l=i(n,["video"]);l!=null&&s(e,["video"],Xn(l));const a=i(n,["text"]);a!=null&&s(e,["text"],a);const d=i(n,["activityStart"]);d!=null&&s(e,["activityStart"],d);const f=i(n,["activityEnd"]);return f!=null&&s(e,["activityEnd"],f),e}function Yi(n){const e={},t=i(n,["setupComplete"]);t!=null&&s(e,["setupComplete"],t);const o=i(n,["serverContent"]);o!=null&&s(e,["serverContent"],o);const r=i(n,["toolCall"]);r!=null&&s(e,["toolCall"],r);const l=i(n,["toolCallCancellation"]);l!=null&&s(e,["toolCallCancellation"],l);const a=i(n,["usageMetadata"]);a!=null&&s(e,["usageMetadata"],Xi(a));const d=i(n,["goAway"]);d!=null&&s(e,["goAway"],d);const f=i(n,["sessionResumptionUpdate"]);return f!=null&&s(e,["sessionResumptionUpdate"],f),e}function $i(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],ne(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],wi(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function Wi(n){const e={},t=i(n,["handle"]);if(t!=null&&s(e,["handle"],t),i(n,["transparent"])!==void 0)throw new Error("transparent parameter is not supported in Gemini API.");return e}function rt(n){const e={},t=i(n,["voiceConfig"]);if(t!=null&&s(e,["voiceConfig"],t),i(n,["multiSpeakerVoiceConfig"])!==void 0)throw new Error("multiSpeakerVoiceConfig parameter is not supported in Vertex AI.");const o=i(n,["languageCode"]);return o!=null&&s(e,["languageCode"],o),e}function Ki(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],ki(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],Ui(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}function zi(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let p=t;Array.isArray(p)&&(p=p.map(m=>Di(m))),s(e,["functionDeclarations"],p)}const o=i(n,["retrieval"]);o!=null&&s(e,["retrieval"],o);const r=i(n,["googleSearch"]);r!=null&&s(e,["googleSearch"],r);const l=i(n,["googleSearchRetrieval"]);l!=null&&s(e,["googleSearchRetrieval"],l);const a=i(n,["enterpriseWebSearch"]);a!=null&&s(e,["enterpriseWebSearch"],a);const d=i(n,["googleMaps"]);d!=null&&s(e,["googleMaps"],d);const f=i(n,["urlContext"]);f!=null&&s(e,["urlContext"],f);const u=i(n,["computerUse"]);u!=null&&s(e,["computerUse"],u);const c=i(n,["codeExecution"]);return c!=null&&s(e,["codeExecution"],c),e}function Xi(n){const e={},t=i(n,["promptTokenCount"]);t!=null&&s(e,["promptTokenCount"],t);const o=i(n,["cachedContentTokenCount"]);o!=null&&s(e,["cachedContentTokenCount"],o);const r=i(n,["candidatesTokenCount"]);r!=null&&s(e,["responseTokenCount"],r);const l=i(n,["toolUsePromptTokenCount"]);l!=null&&s(e,["toolUsePromptTokenCount"],l);const a=i(n,["thoughtsTokenCount"]);a!=null&&s(e,["thoughtsTokenCount"],a);const d=i(n,["totalTokenCount"]);d!=null&&s(e,["totalTokenCount"],d);const f=i(n,["promptTokensDetails"]);if(f!=null){let h=f;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["promptTokensDetails"],h)}const u=i(n,["cacheTokensDetails"]);if(u!=null){let h=u;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["cacheTokensDetails"],h)}const c=i(n,["candidatesTokensDetails"]);if(c!=null){let h=c;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["responseTokensDetails"],h)}const p=i(n,["toolUsePromptTokensDetails"]);if(p!=null){let h=p;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["toolUsePromptTokensDetails"],h)}const m=i(n,["trafficType"]);return m!=null&&s(e,["trafficType"],m),e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function Qi(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function bi(n){const e={},t=i(n,["content"]);t!=null&&s(e,["content"],t);const o=i(n,["citationMetadata"]);o!=null&&s(e,["citationMetadata"],Zi(o));const r=i(n,["tokenCount"]);r!=null&&s(e,["tokenCount"],r);const l=i(n,["finishReason"]);l!=null&&s(e,["finishReason"],l);const a=i(n,["urlContextMetadata"]);a!=null&&s(e,["urlContextMetadata"],a);const d=i(n,["avgLogprobs"]);d!=null&&s(e,["avgLogprobs"],d);const f=i(n,["groundingMetadata"]);f!=null&&s(e,["groundingMetadata"],f);const u=i(n,["index"]);u!=null&&s(e,["index"],u);const c=i(n,["logprobsResult"]);c!=null&&s(e,["logprobsResult"],c);const p=i(n,["safetyRatings"]);if(p!=null){let m=p;Array.isArray(m)&&(m=m.map(h=>h)),s(e,["safetyRatings"],m)}return e}function Zi(n){const e={},t=i(n,["citationSources"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["citations"],o)}return e}function Oi(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let l=L(r);Array.isArray(l)&&(l=l.map(a=>a)),s(t,["contents"],l)}return t}function ji(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["tokensInfo"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>l)),s(e,["tokensInfo"],r)}return e}function es(n){const e={},t=i(n,["values"]);t!=null&&s(e,["values"],t);const o=i(n,["statistics"]);return o!=null&&s(e,["statistics"],ns(o)),e}function ns(n){const e={},t=i(n,["truncated"]);t!=null&&s(e,["truncated"],t);const o=i(n,["token_count"]);return o!=null&&s(e,["tokenCount"],o),e}function re(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>rr(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function ts(n){const e={},t=i(n,["controlType"]);t!=null&&s(e,["controlType"],t);const o=i(n,["enableControlImageComputation"]);return o!=null&&s(e,["computeControl"],o),e}function os(n){const e={};if(i(n,["systemInstruction"])!==void 0)throw new Error("systemInstruction parameter is not supported in Gemini API.");if(i(n,["tools"])!==void 0)throw new Error("tools parameter is not supported in Gemini API.");if(i(n,["generationConfig"])!==void 0)throw new Error("generationConfig parameter is not supported in Gemini API.");return e}function is(n,e){const t={},o=i(n,["systemInstruction"]);e!==void 0&&o!=null&&s(e,["systemInstruction"],U(o));const r=i(n,["tools"]);if(e!==void 0&&r!=null){let a=r;Array.isArray(a)&&(a=a.map(d=>ft(d))),s(e,["tools"],a)}const l=i(n,["generationConfig"]);return e!==void 0&&l!=null&&s(e,["generationConfig"],zs(l)),t}function ss(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>re(d))),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&os(l),t}function rs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>d)),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&is(l,t),t}function ls(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["totalTokens"]);o!=null&&s(e,["totalTokens"],o);const r=i(n,["cachedContentTokenCount"]);return r!=null&&s(e,["cachedContentTokenCount"],r),e}function as(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["totalTokens"]);return o!=null&&s(e,["totalTokens"],o),e}function us(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function ds(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function fs(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function cs(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function ps(n,e){const t={},o=i(n,["outputGcsUri"]);e!==void 0&&o!=null&&s(e,["parameters","storageUri"],o);const r=i(n,["negativePrompt"]);e!==void 0&&r!=null&&s(e,["parameters","negativePrompt"],r);const l=i(n,["numberOfImages"]);e!==void 0&&l!=null&&s(e,["parameters","sampleCount"],l);const a=i(n,["aspectRatio"]);e!==void 0&&a!=null&&s(e,["parameters","aspectRatio"],a);const d=i(n,["guidanceScale"]);e!==void 0&&d!=null&&s(e,["parameters","guidanceScale"],d);const f=i(n,["seed"]);e!==void 0&&f!=null&&s(e,["parameters","seed"],f);const u=i(n,["safetyFilterLevel"]);e!==void 0&&u!=null&&s(e,["parameters","safetySetting"],u);const c=i(n,["personGeneration"]);e!==void 0&&c!=null&&s(e,["parameters","personGeneration"],c);const p=i(n,["includeSafetyAttributes"]);e!==void 0&&p!=null&&s(e,["parameters","includeSafetyAttributes"],p);const m=i(n,["includeRaiReason"]);e!==void 0&&m!=null&&s(e,["parameters","includeRaiReason"],m);const h=i(n,["language"]);e!==void 0&&h!=null&&s(e,["parameters","language"],h);const g=i(n,["outputMimeType"]);e!==void 0&&g!=null&&s(e,["parameters","outputOptions","mimeType"],g);const y=i(n,["outputCompressionQuality"]);e!==void 0&&y!=null&&s(e,["parameters","outputOptions","compressionQuality"],y);const _=i(n,["addWatermark"]);e!==void 0&&_!=null&&s(e,["parameters","addWatermark"],_);const I=i(n,["labels"]);e!==void 0&&I!=null&&s(e,["labels"],I);const E=i(n,["editMode"]);e!==void 0&&E!=null&&s(e,["parameters","editMode"],E);const C=i(n,["baseSteps"]);return e!==void 0&&C!=null&&s(e,["parameters","editConfig","baseSteps"],C),t}function ms(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["referenceImages"]);if(l!=null){let d=l;Array.isArray(d)&&(d=d.map(f=>cr(f))),s(t,["instances[0]","referenceImages"],d)}const a=i(e,["config"]);return a!=null&&ps(a,t),t}function hs(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>le(l))),s(e,["generatedImages"],r)}return e}function gs(n,e){const t={},o=i(n,["taskType"]);e!==void 0&&o!=null&&s(e,["requests[]","taskType"],o);const r=i(n,["title"]);e!==void 0&&r!=null&&s(e,["requests[]","title"],r);const l=i(n,["outputDimensionality"]);if(e!==void 0&&l!=null&&s(e,["requests[]","outputDimensionality"],l),i(n,["mimeType"])!==void 0)throw new Error("mimeType parameter is not supported in Gemini API.");if(i(n,["autoTruncate"])!==void 0)throw new Error("autoTruncate parameter is not supported in Gemini API.");return t}function ys(n,e){const t={},o=i(n,["taskType"]);e!==void 0&&o!=null&&s(e,["instances[]","task_type"],o);const r=i(n,["title"]);e!==void 0&&r!=null&&s(e,["instances[]","title"],r);const l=i(n,["outputDimensionality"]);e!==void 0&&l!=null&&s(e,["parameters","outputDimensionality"],l);const a=i(n,["mimeType"]);e!==void 0&&a!=null&&s(e,["instances[]","mimeType"],a);const d=i(n,["autoTruncate"]);return e!==void 0&&d!=null&&s(e,["parameters","autoTruncate"],d),t}function Ts(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let d=Ee(n,r);Array.isArray(d)&&(d=d.map(f=>f)),s(t,["requests[]","content"],d)}const l=i(e,["config"]);l!=null&&gs(l,t);const a=i(e,["model"]);return a!==void 0&&s(t,["requests[]","model"],P(n,a)),t}function Cs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=Ee(n,r);Array.isArray(a)&&(a=a.map(d=>d)),s(t,["instances[]","content"],a)}const l=i(e,["config"]);return l!=null&&ys(l,t),t}function _s(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["embeddings"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["embeddings"],l)}const r=i(n,["metadata"]);return r!=null&&s(e,["metadata"],r),e}function Es(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions[]","embeddings"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>es(a))),s(e,["embeddings"],l)}const r=i(n,["metadata"]);return r!=null&&s(e,["metadata"],r),e}function Is(n){const e={},t=i(n,["endpoint"]);t!=null&&s(e,["name"],t);const o=i(n,["deployedModelId"]);return o!=null&&s(e,["deployedModelId"],o),e}function vs(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function As(n){const e={};if(i(n,["behavior"])!==void 0)throw new Error("behavior parameter is not supported in Vertex AI.");const t=i(n,["description"]);t!=null&&s(e,["description"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["parameters"]);r!=null&&s(e,["parameters"],r);const l=i(n,["parametersJsonSchema"]);l!=null&&s(e,["parametersJsonSchema"],l);const a=i(n,["response"]);a!=null&&s(e,["response"],a);const d=i(n,["responseJsonSchema"]);return d!=null&&s(e,["responseJsonSchema"],d),e}function Ss(n,e,t){const o={},r=i(e,["systemInstruction"]);t!==void 0&&r!=null&&s(t,["systemInstruction"],re(U(r)));const l=i(e,["temperature"]);l!=null&&s(o,["temperature"],l);const a=i(e,["topP"]);a!=null&&s(o,["topP"],a);const d=i(e,["topK"]);d!=null&&s(o,["topK"],d);const f=i(e,["candidateCount"]);f!=null&&s(o,["candidateCount"],f);const u=i(e,["maxOutputTokens"]);u!=null&&s(o,["maxOutputTokens"],u);const c=i(e,["stopSequences"]);c!=null&&s(o,["stopSequences"],c);const p=i(e,["responseLogprobs"]);p!=null&&s(o,["responseLogprobs"],p);const m=i(e,["logprobs"]);m!=null&&s(o,["logprobs"],m);const h=i(e,["presencePenalty"]);h!=null&&s(o,["presencePenalty"],h);const g=i(e,["frequencyPenalty"]);g!=null&&s(o,["frequencyPenalty"],g);const y=i(e,["seed"]);y!=null&&s(o,["seed"],y);const _=i(e,["responseMimeType"]);_!=null&&s(o,["responseMimeType"],_);const I=i(e,["responseSchema"]);I!=null&&s(o,["responseSchema"],Ie(I));const E=i(e,["responseJsonSchema"]);if(E!=null&&s(o,["responseJsonSchema"],E),i(e,["routingConfig"])!==void 0)throw new Error("routingConfig parameter is not supported in Gemini API.");if(i(e,["modelSelectionConfig"])!==void 0)throw new Error("modelSelectionConfig parameter is not supported in Gemini API.");const C=i(e,["safetySettings"]);if(t!==void 0&&C!=null){let D=C;Array.isArray(D)&&(D=D.map(F=>pr(F))),s(t,["safetySettings"],D)}const v=i(e,["tools"]);if(t!==void 0&&v!=null){let D=Q(v);Array.isArray(D)&&(D=D.map(F=>Cr(X(F)))),s(t,["tools"],D)}const S=i(e,["toolConfig"]);if(t!==void 0&&S!=null&&s(t,["toolConfig"],S),i(e,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");const R=i(e,["cachedContent"]);t!==void 0&&R!=null&&s(t,["cachedContent"],G(n,R));const M=i(e,["responseModalities"]);M!=null&&s(o,["responseModalities"],M);const x=i(e,["mediaResolution"]);x!=null&&s(o,["mediaResolution"],x);const A=i(e,["speechConfig"]);if(A!=null&&s(o,["speechConfig"],ve(A)),i(e,["audioTimestamp"])!==void 0)throw new Error("audioTimestamp parameter is not supported in Gemini API.");const N=i(e,["thinkingConfig"]);N!=null&&s(o,["thinkingConfig"],N);const k=i(e,["imageConfig"]);return k!=null&&s(o,["imageConfig"],k),o}function Rs(n,e,t){const o={},r=i(e,["systemInstruction"]);t!==void 0&&r!=null&&s(t,["systemInstruction"],U(r));const l=i(e,["temperature"]);l!=null&&s(o,["temperature"],l);const a=i(e,["topP"]);a!=null&&s(o,["topP"],a);const d=i(e,["topK"]);d!=null&&s(o,["topK"],d);const f=i(e,["candidateCount"]);f!=null&&s(o,["candidateCount"],f);const u=i(e,["maxOutputTokens"]);u!=null&&s(o,["maxOutputTokens"],u);const c=i(e,["stopSequences"]);c!=null&&s(o,["stopSequences"],c);const p=i(e,["responseLogprobs"]);p!=null&&s(o,["responseLogprobs"],p);const m=i(e,["logprobs"]);m!=null&&s(o,["logprobs"],m);const h=i(e,["presencePenalty"]);h!=null&&s(o,["presencePenalty"],h);const g=i(e,["frequencyPenalty"]);g!=null&&s(o,["frequencyPenalty"],g);const y=i(e,["seed"]);y!=null&&s(o,["seed"],y);const _=i(e,["responseMimeType"]);_!=null&&s(o,["responseMimeType"],_);const I=i(e,["responseSchema"]);I!=null&&s(o,["responseSchema"],Ie(I));const E=i(e,["responseJsonSchema"]);E!=null&&s(o,["responseJsonSchema"],E);const C=i(e,["routingConfig"]);C!=null&&s(o,["routingConfig"],C);const v=i(e,["modelSelectionConfig"]);v!=null&&s(o,["modelConfig"],v);const S=i(e,["safetySettings"]);if(t!==void 0&&S!=null){let q=S;Array.isArray(q)&&(q=q.map(ue=>ue)),s(t,["safetySettings"],q)}const R=i(e,["tools"]);if(t!==void 0&&R!=null){let q=Q(R);Array.isArray(q)&&(q=q.map(ue=>ft(X(ue)))),s(t,["tools"],q)}const M=i(e,["toolConfig"]);t!==void 0&&M!=null&&s(t,["toolConfig"],M);const x=i(e,["labels"]);t!==void 0&&x!=null&&s(t,["labels"],x);const A=i(e,["cachedContent"]);t!==void 0&&A!=null&&s(t,["cachedContent"],G(n,A));const N=i(e,["responseModalities"]);N!=null&&s(o,["responseModalities"],N);const k=i(e,["mediaResolution"]);k!=null&&s(o,["mediaResolution"],k);const D=i(e,["speechConfig"]);D!=null&&s(o,["speechConfig"],dt(ve(D)));const F=i(e,["audioTimestamp"]);F!=null&&s(o,["audioTimestamp"],F);const Re=i(e,["thinkingConfig"]);Re!=null&&s(o,["thinkingConfig"],Re);const Me=i(e,["imageConfig"]);return Me!=null&&s(o,["imageConfig"],Me),o}function Vn(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>re(d))),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&s(t,["generationConfig"],Ss(n,l,t)),t}function Fn(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>d)),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&s(t,["generationConfig"],Rs(n,l,t)),t}function qn(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["candidates"]);if(o!=null){let f=o;Array.isArray(f)&&(f=f.map(u=>bi(u))),s(e,["candidates"],f)}const r=i(n,["modelVersion"]);r!=null&&s(e,["modelVersion"],r);const l=i(n,["promptFeedback"]);l!=null&&s(e,["promptFeedback"],l);const a=i(n,["responseId"]);a!=null&&s(e,["responseId"],a);const d=i(n,["usageMetadata"]);return d!=null&&s(e,["usageMetadata"],d),e}function Gn(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["candidates"]);if(o!=null){let u=o;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["candidates"],u)}const r=i(n,["createTime"]);r!=null&&s(e,["createTime"],r);const l=i(n,["modelVersion"]);l!=null&&s(e,["modelVersion"],l);const a=i(n,["promptFeedback"]);a!=null&&s(e,["promptFeedback"],a);const d=i(n,["responseId"]);d!=null&&s(e,["responseId"],d);const f=i(n,["usageMetadata"]);return f!=null&&s(e,["usageMetadata"],f),e}function Ms(n,e){const t={};if(i(n,["outputGcsUri"])!==void 0)throw new Error("outputGcsUri parameter is not supported in Gemini API.");if(i(n,["negativePrompt"])!==void 0)throw new Error("negativePrompt parameter is not supported in Gemini API.");const o=i(n,["numberOfImages"]);e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o);const r=i(n,["aspectRatio"]);e!==void 0&&r!=null&&s(e,["parameters","aspectRatio"],r);const l=i(n,["guidanceScale"]);if(e!==void 0&&l!=null&&s(e,["parameters","guidanceScale"],l),i(n,["seed"])!==void 0)throw new Error("seed parameter is not supported in Gemini API.");const a=i(n,["safetyFilterLevel"]);e!==void 0&&a!=null&&s(e,["parameters","safetySetting"],a);const d=i(n,["personGeneration"]);e!==void 0&&d!=null&&s(e,["parameters","personGeneration"],d);const f=i(n,["includeSafetyAttributes"]);e!==void 0&&f!=null&&s(e,["parameters","includeSafetyAttributes"],f);const u=i(n,["includeRaiReason"]);e!==void 0&&u!=null&&s(e,["parameters","includeRaiReason"],u);const c=i(n,["language"]);e!==void 0&&c!=null&&s(e,["parameters","language"],c);const p=i(n,["outputMimeType"]);e!==void 0&&p!=null&&s(e,["parameters","outputOptions","mimeType"],p);const m=i(n,["outputCompressionQuality"]);if(e!==void 0&&m!=null&&s(e,["parameters","outputOptions","compressionQuality"],m),i(n,["addWatermark"])!==void 0)throw new Error("addWatermark parameter is not supported in Gemini API.");if(i(n,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");const h=i(n,["imageSize"]);if(e!==void 0&&h!=null&&s(e,["parameters","sampleImageSize"],h),i(n,["enhancePrompt"])!==void 0)throw new Error("enhancePrompt parameter is not supported in Gemini API.");return t}function Ps(n,e){const t={},o=i(n,["outputGcsUri"]);e!==void 0&&o!=null&&s(e,["parameters","storageUri"],o);const r=i(n,["negativePrompt"]);e!==void 0&&r!=null&&s(e,["parameters","negativePrompt"],r);const l=i(n,["numberOfImages"]);e!==void 0&&l!=null&&s(e,["parameters","sampleCount"],l);const a=i(n,["aspectRatio"]);e!==void 0&&a!=null&&s(e,["parameters","aspectRatio"],a);const d=i(n,["guidanceScale"]);e!==void 0&&d!=null&&s(e,["parameters","guidanceScale"],d);const f=i(n,["seed"]);e!==void 0&&f!=null&&s(e,["parameters","seed"],f);const u=i(n,["safetyFilterLevel"]);e!==void 0&&u!=null&&s(e,["parameters","safetySetting"],u);const c=i(n,["personGeneration"]);e!==void 0&&c!=null&&s(e,["parameters","personGeneration"],c);const p=i(n,["includeSafetyAttributes"]);e!==void 0&&p!=null&&s(e,["parameters","includeSafetyAttributes"],p);const m=i(n,["includeRaiReason"]);e!==void 0&&m!=null&&s(e,["parameters","includeRaiReason"],m);const h=i(n,["language"]);e!==void 0&&h!=null&&s(e,["parameters","language"],h);const g=i(n,["outputMimeType"]);e!==void 0&&g!=null&&s(e,["parameters","outputOptions","mimeType"],g);const y=i(n,["outputCompressionQuality"]);e!==void 0&&y!=null&&s(e,["parameters","outputOptions","compressionQuality"],y);const _=i(n,["addWatermark"]);e!==void 0&&_!=null&&s(e,["parameters","addWatermark"],_);const I=i(n,["labels"]);e!==void 0&&I!=null&&s(e,["labels"],I);const E=i(n,["imageSize"]);e!==void 0&&E!=null&&s(e,["parameters","sampleImageSize"],E);const C=i(n,["enhancePrompt"]);return e!==void 0&&C!=null&&s(e,["parameters","enhancePrompt"],C),t}function Ns(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["config"]);return l!=null&&Ms(l,t),t}function ws(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["config"]);return l!=null&&Ps(l,t),t}function Ds(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>Ys(a))),s(e,["generatedImages"],l)}const r=i(n,["positivePromptSafetyAttributes"]);return r!=null&&s(e,["positivePromptSafetyAttributes"],at(r)),e}function xs(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>le(a))),s(e,["generatedImages"],l)}const r=i(n,["positivePromptSafetyAttributes"]);return r!=null&&s(e,["positivePromptSafetyAttributes"],ut(r)),e}function Us(n,e){const t={},o=i(n,["numberOfVideos"]);if(e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o),i(n,["outputGcsUri"])!==void 0)throw new Error("outputGcsUri parameter is not supported in Gemini API.");if(i(n,["fps"])!==void 0)throw new Error("fps parameter is not supported in Gemini API.");const r=i(n,["durationSeconds"]);if(e!==void 0&&r!=null&&s(e,["parameters","durationSeconds"],r),i(n,["seed"])!==void 0)throw new Error("seed parameter is not supported in Gemini API.");const l=i(n,["aspectRatio"]);e!==void 0&&l!=null&&s(e,["parameters","aspectRatio"],l);const a=i(n,["resolution"]);e!==void 0&&a!=null&&s(e,["parameters","resolution"],a);const d=i(n,["personGeneration"]);if(e!==void 0&&d!=null&&s(e,["parameters","personGeneration"],d),i(n,["pubsubTopic"])!==void 0)throw new Error("pubsubTopic parameter is not supported in Gemini API.");const f=i(n,["negativePrompt"]);e!==void 0&&f!=null&&s(e,["parameters","negativePrompt"],f);const u=i(n,["enhancePrompt"]);if(e!==void 0&&u!=null&&s(e,["parameters","enhancePrompt"],u),i(n,["generateAudio"])!==void 0)throw new Error("generateAudio parameter is not supported in Gemini API.");const c=i(n,["lastFrame"]);e!==void 0&&c!=null&&s(e,["instances[0]","lastFrame"],ae(c));const p=i(n,["referenceImages"]);if(e!==void 0&&p!=null){let m=p;Array.isArray(m)&&(m=m.map(h=>xr(h))),s(e,["instances[0]","referenceImages"],m)}if(i(n,["mask"])!==void 0)throw new Error("mask parameter is not supported in Gemini API.");if(i(n,["compressionQuality"])!==void 0)throw new Error("compressionQuality parameter is not supported in Gemini API.");return t}function ks(n,e){const t={},o=i(n,["numberOfVideos"]);e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o);const r=i(n,["outputGcsUri"]);e!==void 0&&r!=null&&s(e,["parameters","storageUri"],r);const l=i(n,["fps"]);e!==void 0&&l!=null&&s(e,["parameters","fps"],l);const a=i(n,["durationSeconds"]);e!==void 0&&a!=null&&s(e,["parameters","durationSeconds"],a);const d=i(n,["seed"]);e!==void 0&&d!=null&&s(e,["parameters","seed"],d);const f=i(n,["aspectRatio"]);e!==void 0&&f!=null&&s(e,["parameters","aspectRatio"],f);const u=i(n,["resolution"]);e!==void 0&&u!=null&&s(e,["parameters","resolution"],u);const c=i(n,["personGeneration"]);e!==void 0&&c!=null&&s(e,["parameters","personGeneration"],c);const p=i(n,["pubsubTopic"]);e!==void 0&&p!=null&&s(e,["parameters","pubsubTopic"],p);const m=i(n,["negativePrompt"]);e!==void 0&&m!=null&&s(e,["parameters","negativePrompt"],m);const h=i(n,["enhancePrompt"]);e!==void 0&&h!=null&&s(e,["parameters","enhancePrompt"],h);const g=i(n,["generateAudio"]);e!==void 0&&g!=null&&s(e,["parameters","generateAudio"],g);const y=i(n,["lastFrame"]);e!==void 0&&y!=null&&s(e,["instances[0]","lastFrame"],V(y));const _=i(n,["referenceImages"]);if(e!==void 0&&_!=null){let C=_;Array.isArray(C)&&(C=C.map(v=>Ur(v))),s(e,["instances[0]","referenceImages"],C)}const I=i(n,["mask"]);e!==void 0&&I!=null&&s(e,["instances[0]","mask"],Dr(I));const E=i(n,["compressionQuality"]);return e!==void 0&&E!=null&&s(e,["parameters","compressionQuality"],E),t}function Ls(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response","generateVideoResponse"]);return a!=null&&s(e,["response"],Gs(a)),e}function Vs(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response"]);return a!=null&&s(e,["response"],Hs(a)),e}function Fs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["image"]);l!=null&&s(t,["instances[0]","image"],ae(l));const a=i(e,["video"]);a!=null&&s(t,["instances[0]","video"],ct(a));const d=i(e,["source"]);d!=null&&Bs(d,t);const f=i(e,["config"]);return f!=null&&Us(f,t),t}function qs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["image"]);l!=null&&s(t,["instances[0]","image"],V(l));const a=i(e,["video"]);a!=null&&s(t,["instances[0]","video"],pt(a));const d=i(e,["source"]);d!=null&&Js(d,t);const f=i(e,["config"]);return f!=null&&ks(f,t),t}function Gs(n){const e={},t=i(n,["generatedSamples"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Ws(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Hs(n){const e={},t=i(n,["videos"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Ks(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Bs(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["image"]);e!==void 0&&r!=null&&s(e,["instances[0]","image"],ae(r));const l=i(n,["video"]);return e!==void 0&&l!=null&&s(e,["instances[0]","video"],ct(l)),t}function Js(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["image"]);e!==void 0&&r!=null&&s(e,["instances[0]","image"],V(r));const l=i(n,["video"]);return e!==void 0&&l!=null&&s(e,["instances[0]","video"],pt(l)),t}function Ys(n){const e={},t=i(n,["_self"]);t!=null&&s(e,["image"],Os(t));const o=i(n,["raiFilteredReason"]);o!=null&&s(e,["raiFilteredReason"],o);const r=i(n,["_self"]);return r!=null&&s(e,["safetyAttributes"],at(r)),e}function le(n){const e={},t=i(n,["_self"]);t!=null&&s(e,["image"],lt(t));const o=i(n,["raiFilteredReason"]);o!=null&&s(e,["raiFilteredReason"],o);const r=i(n,["_self"]);r!=null&&s(e,["safetyAttributes"],ut(r));const l=i(n,["prompt"]);return l!=null&&s(e,["enhancedPrompt"],l),e}function $s(n){const e={},t=i(n,["_self"]);t!=null&&s(e,["mask"],lt(t));const o=i(n,["labels"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>l)),s(e,["labels"],r)}return e}function Ws(n){const e={},t=i(n,["video"]);return t!=null&&s(e,["video"],Nr(t)),e}function Ks(n){const e={},t=i(n,["_self"]);return t!=null&&s(e,["video"],wr(t)),e}function zs(n){const e={},t=i(n,["modelSelectionConfig"]);t!=null&&s(e,["modelConfig"],t);const o=i(n,["audioTimestamp"]);o!=null&&s(e,["audioTimestamp"],o);const r=i(n,["candidateCount"]);r!=null&&s(e,["candidateCount"],r);const l=i(n,["enableAffectiveDialog"]);l!=null&&s(e,["enableAffectiveDialog"],l);const a=i(n,["frequencyPenalty"]);a!=null&&s(e,["frequencyPenalty"],a);const d=i(n,["logprobs"]);d!=null&&s(e,["logprobs"],d);const f=i(n,["maxOutputTokens"]);f!=null&&s(e,["maxOutputTokens"],f);const u=i(n,["mediaResolution"]);u!=null&&s(e,["mediaResolution"],u);const c=i(n,["presencePenalty"]);c!=null&&s(e,["presencePenalty"],c);const p=i(n,["responseJsonSchema"]);p!=null&&s(e,["responseJsonSchema"],p);const m=i(n,["responseLogprobs"]);m!=null&&s(e,["responseLogprobs"],m);const h=i(n,["responseMimeType"]);h!=null&&s(e,["responseMimeType"],h);const g=i(n,["responseModalities"]);g!=null&&s(e,["responseModalities"],g);const y=i(n,["responseSchema"]);y!=null&&s(e,["responseSchema"],y);const _=i(n,["routingConfig"]);_!=null&&s(e,["routingConfig"],_);const I=i(n,["seed"]);I!=null&&s(e,["seed"],I);const E=i(n,["speechConfig"]);E!=null&&s(e,["speechConfig"],dt(E));const C=i(n,["stopSequences"]);C!=null&&s(e,["stopSequences"],C);const v=i(n,["temperature"]);v!=null&&s(e,["temperature"],v);const S=i(n,["thinkingConfig"]);S!=null&&s(e,["thinkingConfig"],S);const R=i(n,["topK"]);R!=null&&s(e,["topK"],R);const M=i(n,["topP"]);if(M!=null&&s(e,["topP"],M),i(n,["enableEnhancedCivicAnswers"])!==void 0)throw new Error("enableEnhancedCivicAnswers parameter is not supported in Vertex AI.");return e}function Xs(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function Qs(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function bs(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function Zs(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function Os(n){const e={},t=i(n,["bytesBase64Encoded"]);t!=null&&s(e,["imageBytes"],B(t));const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function lt(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["gcsUri"],t);const o=i(n,["bytesBase64Encoded"]);o!=null&&s(e,["imageBytes"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}function ae(n){const e={};if(i(n,["gcsUri"])!==void 0)throw new Error("gcsUri parameter is not supported in Gemini API.");const t=i(n,["imageBytes"]);t!=null&&s(e,["bytesBase64Encoded"],B(t));const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function V(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["gcsUri"],t);const o=i(n,["imageBytes"]);o!=null&&s(e,["bytesBase64Encoded"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}function js(n,e,t){const o={},r=i(e,["pageSize"]);t!==void 0&&r!=null&&s(t,["_query","pageSize"],r);const l=i(e,["pageToken"]);t!==void 0&&l!=null&&s(t,["_query","pageToken"],l);const a=i(e,["filter"]);t!==void 0&&a!=null&&s(t,["_query","filter"],a);const d=i(e,["queryBase"]);return t!==void 0&&d!=null&&s(t,["_url","models_url"],jn(n,d)),o}function er(n,e,t){const o={},r=i(e,["pageSize"]);t!==void 0&&r!=null&&s(t,["_query","pageSize"],r);const l=i(e,["pageToken"]);t!==void 0&&l!=null&&s(t,["_query","pageToken"],l);const a=i(e,["filter"]);t!==void 0&&a!=null&&s(t,["_query","filter"],a);const d=i(e,["queryBase"]);return t!==void 0&&d!=null&&s(t,["_url","models_url"],jn(n,d)),o}function nr(n,e){const t={},o=i(e,["config"]);return o!=null&&js(n,o,t),t}function tr(n,e){const t={},o=i(e,["config"]);return o!=null&&er(n,o,t),t}function or(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["_self"]);if(r!=null){let l=et(r);Array.isArray(l)&&(l=l.map(a=>ge(a))),s(e,["models"],l)}return e}function ir(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["_self"]);if(r!=null){let l=et(r);Array.isArray(l)&&(l=l.map(a=>ye(a))),s(e,["models"],l)}return e}function sr(n){const e={},t=i(n,["maskMode"]);t!=null&&s(e,["maskMode"],t);const o=i(n,["segmentationClasses"]);o!=null&&s(e,["maskClasses"],o);const r=i(n,["maskDilation"]);return r!=null&&s(e,["dilation"],r),e}function ge(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);r!=null&&s(e,["description"],r);const l=i(n,["version"]);l!=null&&s(e,["version"],l);const a=i(n,["_self"]);a!=null&&s(e,["tunedModelInfo"],_r(a));const d=i(n,["inputTokenLimit"]);d!=null&&s(e,["inputTokenLimit"],d);const f=i(n,["outputTokenLimit"]);f!=null&&s(e,["outputTokenLimit"],f);const u=i(n,["supportedGenerationMethods"]);return u!=null&&s(e,["supportedActions"],u),e}function ye(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);r!=null&&s(e,["description"],r);const l=i(n,["versionId"]);l!=null&&s(e,["version"],l);const a=i(n,["deployedModels"]);if(a!=null){let p=a;Array.isArray(p)&&(p=p.map(m=>Is(m))),s(e,["endpoints"],p)}const d=i(n,["labels"]);d!=null&&s(e,["labels"],d);const f=i(n,["_self"]);f!=null&&s(e,["tunedModelInfo"],Er(f));const u=i(n,["defaultCheckpointId"]);u!=null&&s(e,["defaultCheckpointId"],u);const c=i(n,["checkpoints"]);if(c!=null){let p=c;Array.isArray(p)&&(p=p.map(m=>m)),s(e,["checkpoints"],p)}return e}function rr(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],Qi(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],vs(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function lr(n){const e={},t=i(n,["productImage"]);return t!=null&&s(e,["image"],V(t)),e}function ar(n,e){const t={},o=i(n,["numberOfImages"]);e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o);const r=i(n,["baseSteps"]);e!==void 0&&r!=null&&s(e,["parameters","editConfig","baseSteps"],r);const l=i(n,["outputGcsUri"]);e!==void 0&&l!=null&&s(e,["parameters","storageUri"],l);const a=i(n,["seed"]);e!==void 0&&a!=null&&s(e,["parameters","seed"],a);const d=i(n,["safetyFilterLevel"]);e!==void 0&&d!=null&&s(e,["parameters","safetySetting"],d);const f=i(n,["personGeneration"]);e!==void 0&&f!=null&&s(e,["parameters","personGeneration"],f);const u=i(n,["addWatermark"]);e!==void 0&&u!=null&&s(e,["parameters","addWatermark"],u);const c=i(n,["outputMimeType"]);e!==void 0&&c!=null&&s(e,["parameters","outputOptions","mimeType"],c);const p=i(n,["outputCompressionQuality"]);e!==void 0&&p!=null&&s(e,["parameters","outputOptions","compressionQuality"],p);const m=i(n,["enhancePrompt"]);e!==void 0&&m!=null&&s(e,["parameters","enhancePrompt"],m);const h=i(n,["labels"]);return e!==void 0&&h!=null&&s(e,["labels"],h),t}function ur(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["source"]);r!=null&&fr(r,t);const l=i(e,["config"]);return l!=null&&ar(l,t),t}function dr(n){const e={},t=i(n,["predictions"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>le(r))),s(e,["generatedImages"],o)}return e}function fr(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["personImage"]);e!==void 0&&r!=null&&s(e,["instances[0]","personImage","image"],V(r));const l=i(n,["productImages"]);if(e!==void 0&&l!=null){let a=l;Array.isArray(a)&&(a=a.map(d=>lr(d))),s(e,["instances[0]","productImages"],a)}return t}function cr(n){const e={},t=i(n,["referenceImage"]);t!=null&&s(e,["referenceImage"],V(t));const o=i(n,["referenceId"]);o!=null&&s(e,["referenceId"],o);const r=i(n,["referenceType"]);r!=null&&s(e,["referenceType"],r);const l=i(n,["maskImageConfig"]);l!=null&&s(e,["maskImageConfig"],sr(l));const a=i(n,["controlImageConfig"]);a!=null&&s(e,["controlImageConfig"],ts(a));const d=i(n,["styleImageConfig"]);d!=null&&s(e,["styleImageConfig"],d);const f=i(n,["subjectImageConfig"]);return f!=null&&s(e,["subjectImageConfig"],f),e}function at(n){const e={},t=i(n,["safetyAttributes","categories"]);t!=null&&s(e,["categories"],t);const o=i(n,["safetyAttributes","scores"]);o!=null&&s(e,["scores"],o);const r=i(n,["contentType"]);return r!=null&&s(e,["contentType"],r),e}function ut(n){const e={},t=i(n,["safetyAttributes","categories"]);t!=null&&s(e,["categories"],t);const o=i(n,["safetyAttributes","scores"]);o!=null&&s(e,["scores"],o);const r=i(n,["contentType"]);return r!=null&&s(e,["contentType"],r),e}function pr(n){const e={};if(i(n,["method"])!==void 0)throw new Error("method parameter is not supported in Gemini API.");const t=i(n,["category"]);t!=null&&s(e,["category"],t);const o=i(n,["threshold"]);return o!=null&&s(e,["threshold"],o),e}function mr(n){const e={},t=i(n,["image"]);return t!=null&&s(e,["image"],V(t)),e}function hr(n,e){const t={},o=i(n,["mode"]);e!==void 0&&o!=null&&s(e,["parameters","mode"],o);const r=i(n,["maxPredictions"]);e!==void 0&&r!=null&&s(e,["parameters","maxPredictions"],r);const l=i(n,["confidenceThreshold"]);e!==void 0&&l!=null&&s(e,["parameters","confidenceThreshold"],l);const a=i(n,["maskDilation"]);e!==void 0&&a!=null&&s(e,["parameters","maskDilation"],a);const d=i(n,["binaryColorThreshold"]);e!==void 0&&d!=null&&s(e,["parameters","binaryColorThreshold"],d);const f=i(n,["labels"]);return e!==void 0&&f!=null&&s(e,["labels"],f),t}function gr(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["source"]);r!=null&&Tr(r,t);const l=i(e,["config"]);return l!=null&&hr(l,t),t}function yr(n){const e={},t=i(n,["predictions"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>$s(r))),s(e,["generatedMasks"],o)}return e}function Tr(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["image"]);e!==void 0&&r!=null&&s(e,["instances[0]","image"],V(r));const l=i(n,["scribbleImage"]);return e!==void 0&&l!=null&&s(e,["instances[0]","scribble"],mr(l)),t}function dt(n){const e={},t=i(n,["voiceConfig"]);if(t!=null&&s(e,["voiceConfig"],t),i(n,["multiSpeakerVoiceConfig"])!==void 0)throw new Error("multiSpeakerVoiceConfig parameter is not supported in Vertex AI.");const o=i(n,["languageCode"]);return o!=null&&s(e,["languageCode"],o),e}function Cr(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],Zs(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],bs(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}function ft(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let p=t;Array.isArray(p)&&(p=p.map(m=>As(m))),s(e,["functionDeclarations"],p)}const o=i(n,["retrieval"]);o!=null&&s(e,["retrieval"],o);const r=i(n,["googleSearch"]);r!=null&&s(e,["googleSearch"],r);const l=i(n,["googleSearchRetrieval"]);l!=null&&s(e,["googleSearchRetrieval"],l);const a=i(n,["enterpriseWebSearch"]);a!=null&&s(e,["enterpriseWebSearch"],a);const d=i(n,["googleMaps"]);d!=null&&s(e,["googleMaps"],d);const f=i(n,["urlContext"]);f!=null&&s(e,["urlContext"],f);const u=i(n,["computerUse"]);u!=null&&s(e,["computerUse"],u);const c=i(n,["codeExecution"]);return c!=null&&s(e,["codeExecution"],c),e}function _r(n){const e={},t=i(n,["baseModel"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["createTime"]);o!=null&&s(e,["createTime"],o);const r=i(n,["updateTime"]);return r!=null&&s(e,["updateTime"],r),e}function Er(n){const e={},t=i(n,["labels","google-vertex-llm-tuning-base-model-id"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["createTime"]);o!=null&&s(e,["createTime"],o);const r=i(n,["updateTime"]);return r!=null&&s(e,["updateTime"],r),e}function Ir(n,e){const t={},o=i(n,["displayName"]);e!==void 0&&o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);e!==void 0&&r!=null&&s(e,["description"],r);const l=i(n,["defaultCheckpointId"]);return e!==void 0&&l!=null&&s(e,["defaultCheckpointId"],l),t}function vr(n,e){const t={},o=i(n,["displayName"]);e!==void 0&&o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);e!==void 0&&r!=null&&s(e,["description"],r);const l=i(n,["defaultCheckpointId"]);return e!==void 0&&l!=null&&s(e,["defaultCheckpointId"],l),t}function Ar(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","name"],P(n,o));const r=i(e,["config"]);return r!=null&&Ir(r,t),t}function Sr(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["config"]);return r!=null&&vr(r,t),t}function Rr(n,e){const t={},o=i(n,["outputGcsUri"]);e!==void 0&&o!=null&&s(e,["parameters","storageUri"],o);const r=i(n,["includeRaiReason"]);e!==void 0&&r!=null&&s(e,["parameters","includeRaiReason"],r);const l=i(n,["outputMimeType"]);e!==void 0&&l!=null&&s(e,["parameters","outputOptions","mimeType"],l);const a=i(n,["outputCompressionQuality"]);e!==void 0&&a!=null&&s(e,["parameters","outputOptions","compressionQuality"],a);const d=i(n,["enhanceInputImage"]);e!==void 0&&d!=null&&s(e,["parameters","upscaleConfig","enhanceInputImage"],d);const f=i(n,["imagePreservationFactor"]);e!==void 0&&f!=null&&s(e,["parameters","upscaleConfig","imagePreservationFactor"],f);const u=i(n,["labels"]);e!==void 0&&u!=null&&s(e,["labels"],u);const c=i(n,["numberOfImages"]);e!==void 0&&c!=null&&s(e,["parameters","sampleCount"],c);const p=i(n,["mode"]);return e!==void 0&&p!=null&&s(e,["parameters","mode"],p),t}function Mr(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["image"]);r!=null&&s(t,["instances[0]","image"],V(r));const l=i(e,["upscaleFactor"]);l!=null&&s(t,["parameters","upscaleConfig","upscaleFactor"],l);const a=i(e,["config"]);return a!=null&&Rr(a,t),t}function Pr(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>le(l))),s(e,["generatedImages"],r)}return e}function Nr(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["uri"],t);const o=i(n,["encodedVideo"]);o!=null&&s(e,["videoBytes"],B(o));const r=i(n,["encoding"]);return r!=null&&s(e,["mimeType"],r),e}function wr(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["uri"],t);const o=i(n,["bytesBase64Encoded"]);o!=null&&s(e,["videoBytes"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}function Dr(n){const e={},t=i(n,["image"]);t!=null&&s(e,["_self"],V(t));const o=i(n,["maskMode"]);return o!=null&&s(e,["maskMode"],o),e}function xr(n){const e={},t=i(n,["image"]);t!=null&&s(e,["image"],ae(t));const o=i(n,["referenceType"]);return o!=null&&s(e,["referenceType"],o),e}function Ur(n){const e={},t=i(n,["image"]);t!=null&&s(e,["image"],V(t));const o=i(n,["referenceType"]);return o!=null&&s(e,["referenceType"],o),e}function ct(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["uri"],t);const o=i(n,["videoBytes"]);o!=null&&s(e,["encodedVideo"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["encoding"],r),e}function pt(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["gcsUri"],t);const o=i(n,["videoBytes"]);o!=null&&s(e,["bytesBase64Encoded"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */const kr="Content-Type",Lr="X-Server-Timeout",Vr="User-Agent",Te="x-goog-api-client",Fr="1.26.0",qr=`google-genai-sdk/${Fr}`,Gr="v1beta1",Hr="v1beta",Hn=/^\s*data: (.*)(?:\n\n|\r\r|\r\n\r\n)/;class Br{constructor(e){var t,o;this.clientOptions=Object.assign(Object.assign({},e),{project:e.project,location:e.location,apiKey:e.apiKey,vertexai:e.vertexai});const r={};this.clientOptions.vertexai?(r.apiVersion=(t=this.clientOptions.apiVersion)!==null&&t!==void 0?t:Gr,r.baseUrl=this.baseUrlFromProjectLocation(),this.normalizeAuthParameters()):(r.apiVersion=(o=this.clientOptions.apiVersion)!==null&&o!==void 0?o:Hr,r.baseUrl="https://generativelanguage.googleapis.com/"),r.headers=this.getDefaultHeaders(),this.clientOptions.httpOptions=r,e.httpOptions&&(this.clientOptions.httpOptions=this.patchHttpOptions(r,e.httpOptions))}baseUrlFromProjectLocation(){return this.clientOptions.project&&this.clientOptions.location&&this.clientOptions.location!=="global"?`https://${this.clientOptions.location}-aiplatform.googleapis.com/`:"https://aiplatform.googleapis.com/"}normalizeAuthParameters(){if(this.clientOptions.project&&this.clientOptions.location){this.clientOptions.apiKey=void 0;return}this.clientOptions.project=void 0,this.clientOptions.location=void 0}isVertexAI(){var e;return(e=this.clientOptions.vertexai)!==null&&e!==void 0?e:!1}getProject(){return this.clientOptions.project}getLocation(){return this.clientOptions.location}getApiVersion(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.apiVersion!==void 0)return this.clientOptions.httpOptions.apiVersion;throw new Error("API version is not set.")}getBaseUrl(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.baseUrl!==void 0)return this.clientOptions.httpOptions.baseUrl;throw new Error("Base URL is not set.")}getRequestUrl(){return this.getRequestUrlInternal(this.clientOptions.httpOptions)}getHeaders(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.headers!==void 0)return this.clientOptions.httpOptions.headers;throw new Error("Headers are not set.")}getRequestUrlInternal(e){if(!e||e.baseUrl===void 0||e.apiVersion===void 0)throw new Error("HTTP options are not correctly set.");const o=[e.baseUrl.endsWith("/")?e.baseUrl.slice(0,-1):e.baseUrl];return e.apiVersion&&e.apiVersion!==""&&o.push(e.apiVersion),o.join("/")}getBaseResourcePath(){return`projects/${this.clientOptions.project}/locations/${this.clientOptions.location}`}getApiKey(){return this.clientOptions.apiKey}getWebsocketBaseUrl(){const e=this.getBaseUrl(),t=new URL(e);return t.protocol=t.protocol=="http:"?"ws":"wss",t.toString()}setBaseUrl(e){if(this.clientOptions.httpOptions)this.clientOptions.httpOptions.baseUrl=e;else throw new Error("HTTP options are not correctly set.")}constructUrl(e,t,o){const r=[this.getRequestUrlInternal(t)];return o&&r.push(this.getBaseResourcePath()),e!==""&&r.push(e),new URL(`${r.join("/")}`)}shouldPrependVertexProjectPath(e){return!(this.clientOptions.apiKey||!this.clientOptions.vertexai||e.path.startsWith("projects/")||e.httpMethod==="GET"&&e.path.startsWith("publishers/google/models"))}async request(e){let t=this.clientOptions.httpOptions;e.httpOptions&&(t=this.patchHttpOptions(this.clientOptions.httpOptions,e.httpOptions));const o=this.shouldPrependVertexProjectPath(e),r=this.constructUrl(e.path,t,o);if(e.queryParams)for(const[a,d]of Object.entries(e.queryParams))r.searchParams.append(a,String(d));let l={};if(e.httpMethod==="GET"){if(e.body&&e.body!=="{}")throw new Error("Request body should be empty for GET request, but got non empty request body")}else l.body=e.body;return l=await this.includeExtraHttpOptionsToRequestInit(l,t,e.abortSignal),this.unaryApiCall(r,l,e.httpMethod)}patchHttpOptions(e,t){const o=JSON.parse(JSON.stringify(e));for(const[r,l]of Object.entries(t))typeof l=="object"?o[r]=Object.assign(Object.assign({},o[r]),l):l!==void 0&&(o[r]=l);return o}async requestStream(e){let t=this.clientOptions.httpOptions;e.httpOptions&&(t=this.patchHttpOptions(this.clientOptions.httpOptions,e.httpOptions));const o=this.shouldPrependVertexProjectPath(e),r=this.constructUrl(e.path,t,o);(!r.searchParams.has("alt")||r.searchParams.get("alt")!=="sse")&&r.searchParams.set("alt","sse");let l={};return l.body=e.body,l=await this.includeExtraHttpOptionsToRequestInit(l,t,e.abortSignal),this.streamApiCall(r,l,e.httpMethod)}async includeExtraHttpOptionsToRequestInit(e,t,o){if(t&&t.timeout||o){const r=new AbortController,l=r.signal;if(t.timeout&&t?.timeout>0){const a=setTimeout(()=>r.abort(),t.timeout);a&&typeof a.unref=="function"&&a.unref()}o&&o.addEventListener("abort",()=>{r.abort()}),e.signal=l}return t&&t.extraBody!==null&&Jr(e,t.extraBody),e.headers=await this.getHeadersInternal(t),e}async unaryApiCall(e,t,o){return this.apiCall(e.toString(),Object.assign(Object.assign({},t),{method:o})).then(async r=>(await Bn(r),new pe(r))).catch(r=>{throw r instanceof Error?r:new Error(JSON.stringify(r))})}async streamApiCall(e,t,o){return this.apiCall(e.toString(),Object.assign(Object.assign({},t),{method:o})).then(async r=>(await Bn(r),this.processStreamResponse(r))).catch(r=>{throw r instanceof Error?r:new Error(JSON.stringify(r))})}processStreamResponse(e){var t;return K(this,arguments,function*(){const r=(t=e?.body)===null||t===void 0?void 0:t.getReader(),l=new TextDecoder("utf-8");if(!r)throw new Error("Response body is empty");try{let a="";for(;;){const{done:d,value:f}=yield w(r.read());if(d){if(a.trim().length>0)throw new Error("Incomplete JSON segment at the end");break}const u=l.decode(f,{stream:!0});try{const p=JSON.parse(u);if("error"in p){const m=JSON.parse(JSON.stringify(p.error)),h=m.status,g=m.code,y=`got status: ${h}. ${JSON.stringify(p)}`;if(g>=400&&g<600)throw new se({message:y,status:g})}}catch(p){if(p.name==="ApiError")throw p}a+=u;let c=a.match(Hn);for(;c;){const p=c[1];try{const m=new Response(p,{headers:e?.headers,status:e?.status,statusText:e?.statusText});yield yield w(new pe(m)),a=a.slice(c[0].length),c=a.match(Hn)}catch(m){throw new Error(`exception parsing stream chunk ${p}. ${m}`)}}}}finally{r.releaseLock()}})}async apiCall(e,t){return fetch(e,t).catch(o=>{throw new Error(`exception ${o} sending request`)})}getDefaultHeaders(){const e={},t=qr+" "+this.clientOptions.userAgentExtra;return e[Vr]=t,e[Te]=t,e[kr]="application/json",e}async getHeadersInternal(e){const t=new Headers;if(e&&e.headers){for(const[o,r]of Object.entries(e.headers))t.append(o,r);e.timeout&&e.timeout>0&&t.append(Lr,String(Math.ceil(e.timeout/1e3)))}return await this.clientOptions.auth.addAuthHeaders(t),t}async uploadFile(e,t){var o;const r={};t!=null&&(r.mimeType=t.mimeType,r.name=t.name,r.displayName=t.displayName),r.name&&!r.name.startsWith("files/")&&(r.name=`files/${r.name}`);const l=this.clientOptions.uploader,a=await l.stat(e);r.sizeBytes=String(a.size);const d=(o=t?.mimeType)!==null&&o!==void 0?o:a.type;if(d===void 0||d==="")throw new Error("Can not determine mimeType. Please provide mimeType in the config.");r.mimeType=d;const f=await this.fetchUploadUrl(r,t);return l.upload(e,f,this)}async downloadFile(e){await this.clientOptions.downloader.download(e,this)}async fetchUploadUrl(e,t){var o;let r={};t?.httpOptions?r=t.httpOptions:r={apiVersion:"",headers:{"Content-Type":"application/json","X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${e.sizeBytes}`,"X-Goog-Upload-Header-Content-Type":`${e.mimeType}`}};const l={file:e},a=await this.request({path:T("upload/v1beta/files",l._url),body:JSON.stringify(l),httpMethod:"POST",httpOptions:r});if(!a||!a?.headers)throw new Error("Server did not return an HttpResponse or the returned HttpResponse did not have headers.");const d=(o=a?.headers)===null||o===void 0?void 0:o["x-goog-upload-url"];if(d===void 0)throw new Error("Failed to get upload url. Server did not return the x-google-upload-url in the headers");return d}}async function Bn(n){var e;if(n===void 0)throw new Error("response is undefined");if(!n.ok){const t=n.status;let o;!((e=n.headers.get("content-type"))===null||e===void 0)&&e.includes("application/json")?o=await n.json():o={error:{message:await n.text(),code:n.status,status:n.statusText}};const r=JSON.stringify(o);throw t>=400&&t<600?new se({message:r,status:t}):new Error(r)}}function Jr(n,e){if(!e||Object.keys(e).length===0)return;if(n.body instanceof Blob){console.warn("includeExtraBodyToRequestInit: extraBody provided but current request body is a Blob. extraBody will be ignored as merging is not supported for Blob bodies.");return}let t={};if(typeof n.body=="string"&&n.body.length>0)try{const l=JSON.parse(n.body);if(typeof l=="object"&&l!==null&&!Array.isArray(l))t=l;else{console.warn("includeExtraBodyToRequestInit: Original request body is valid JSON but not a non-array object. Skip applying extraBody to the request body.");return}}catch{console.warn("includeExtraBodyToRequestInit: Original request body is not valid JSON. Skip applying extraBody to the request body.");return}function o(l,a){const d=Object.assign({},l);for(const f in a)if(Object.prototype.hasOwnProperty.call(a,f)){const u=a[f],c=d[f];u&&typeof u=="object"&&!Array.isArray(u)&&c&&typeof c=="object"&&!Array.isArray(c)?d[f]=o(c,u):(c&&u&&typeof c!=typeof u&&console.warn(`includeExtraBodyToRequestInit:deepMerge: Type mismatch for key "${f}". Original type: ${typeof c}, New type: ${typeof u}. Overwriting.`),d[f]=u)}return d}const r=o(t,e);n.body=JSON.stringify(r)}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */const Yr="mcp_used/unknown";let $r=!1;function mt(n){for(const e of n)if(Wr(e)||typeof e=="object"&&"inputSchema"in e)return!0;return $r}function ht(n){var e;const t=(e=n[Te])!==null&&e!==void 0?e:"";n[Te]=(t+` ${Yr}`).trimStart()}function Wr(n){return n!==null&&typeof n=="object"&&n instanceof Se}function Kr(n,e=100){return K(this,arguments,function*(){let o,r=0;for(;r0)return;const l={},a=[];for(const c of this.mcpClients)try{for(var d=!0,f=(t=void 0,O(Kr(c))),u;u=await f.next(),e=u.done,!e;d=!0){r=u.value,d=!1;const p=r;a.push(p);const m=p.name;if(l[m])throw new Error(`Duplicate function name ${m} found in MCP tools. Please ensure function names are unique.`);l[m]=c}}catch(p){t={error:p}}finally{try{!d&&!e&&(o=f.return)&&await o.call(f)}finally{if(t)throw t.error}}this.mcpTools=a,this.functionNameToMcpClient=l}async tool(){return await this.initialize(),bt(this.mcpTools,this.config)}async callTool(e){await this.initialize();const t=[];for(const o of e)if(o.name in this.functionNameToMcpClient){const r=this.functionNameToMcpClient[o.name];let l;this.config.timeout&&(l={timeout:this.config.timeout});const a=await r.callTool({name:o.name,arguments:o.args},void 0,l);t.push({functionResponse:{name:o.name,response:a.isError?{error:a}:a}})}return t}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */async function zr(n,e,t){const o=new Jt;let r;t.data instanceof Blob?r=JSON.parse(await t.data.text()):r=JSON.parse(t.data),Object.assign(o,r),e(o)}class Xr{constructor(e,t,o){this.apiClient=e,this.auth=t,this.webSocketFactory=o}async connect(e){var t,o;if(this.apiClient.isVertexAI())throw new Error("Live music is not supported for Vertex AI.");console.warn("Live music generation is experimental and may change in future versions.");const r=this.apiClient.getWebsocketBaseUrl(),l=this.apiClient.getApiVersion(),a=Zr(this.apiClient.getDefaultHeaders()),d=this.apiClient.getApiKey(),f=`${r}/ws/google.ai.generativelanguage.${l}.GenerativeService.BidiGenerateMusic?key=${d}`;let u=()=>{};const c=new Promise(C=>{u=C}),p=e.callbacks,m=function(){u({})},h=this.apiClient,g={onopen:m,onmessage:C=>{zr(h,p.onmessage,C)},onerror:(t=p?.onerror)!==null&&t!==void 0?t:function(C){},onclose:(o=p?.onclose)!==null&&o!==void 0?o:function(C){}},y=this.webSocketFactory.create(f,br(a),g);y.connect(),await c;const E={setup:{model:P(this.apiClient,e.model)}};return y.send(JSON.stringify(E)),new Qr(y,this.apiClient)}}class Qr{constructor(e,t){this.conn=e,this.apiClient=t}async setWeightedPrompts(e){if(!e.weightedPrompts||Object.keys(e.weightedPrompts).length===0)throw new Error("Weighted prompts must be set and contain at least one entry.");const t=Hi(e);this.conn.send(JSON.stringify({clientContent:t}))}async setMusicGenerationConfig(e){e.musicGenerationConfig||(e.musicGenerationConfig={});const t=Gi(e);this.conn.send(JSON.stringify(t))}sendPlaybackControl(e){const t={playbackControl:e};this.conn.send(JSON.stringify(t))}play(){this.sendPlaybackControl($.PLAY)}pause(){this.sendPlaybackControl($.PAUSE)}stop(){this.sendPlaybackControl($.STOP)}resetContext(){this.sendPlaybackControl($.RESET_CONTEXT)}close(){this.conn.close()}}function br(n){const e={};return n.forEach((t,o)=>{e[o]=t}),e}function Zr(n){const e=new Headers;for(const[t,o]of Object.entries(n))e.append(t,o);return e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */const Or="FunctionResponse request must have an `id` field from the response of a ToolCall.FunctionalCalls in Google AI.";async function jr(n,e,t){const o=new Bt;let r;t.data instanceof Blob?r=await t.data.text():t.data instanceof ArrayBuffer?r=new TextDecoder().decode(t.data):r=t.data;const l=JSON.parse(r);if(n.isVertexAI()){const a=Yi(l);Object.assign(o,a)}else Object.assign(o,l);e(o)}class el{constructor(e,t,o){this.apiClient=e,this.auth=t,this.webSocketFactory=o,this.music=new Xr(this.apiClient,this.auth,this.webSocketFactory)}async connect(e){var t,o,r,l,a,d;if(e.config&&e.config.httpOptions)throw new Error("The Live module does not support httpOptions at request-level in LiveConnectConfig yet. Please use the client-level httpOptions configuration instead.");const f=this.apiClient.getWebsocketBaseUrl(),u=this.apiClient.getApiVersion();let c;const p=this.apiClient.getHeaders();e.config&&e.config.tools&&mt(e.config.tools)&&ht(p);const m=il(p);if(this.apiClient.isVertexAI())c=`${f}/ws/google.cloud.aiplatform.${u}.LlmBidiService/BidiGenerateContent`,await this.auth.addAuthHeaders(m);else{const A=this.apiClient.getApiKey();let N="BidiGenerateContent",k="key";A?.startsWith("auth_tokens/")&&(console.warn("Warning: Ephemeral token support is experimental and may change in future versions."),u!=="v1alpha"&&console.warn("Warning: The SDK's ephemeral token support is in v1alpha only. Please use const ai = new GoogleGenAI({apiKey: token.name, httpOptions: { apiVersion: 'v1alpha' }}); before session connection."),N="BidiGenerateContentConstrained",k="access_token"),c=`${f}/ws/google.ai.generativelanguage.${u}.GenerativeService.${N}?${k}=${A}`}let h=()=>{};const g=new Promise(A=>{h=A}),y=e.callbacks,_=function(){var A;(A=y?.onopen)===null||A===void 0||A.call(y),h({})},I=this.apiClient,E={onopen:_,onmessage:A=>{jr(I,y.onmessage,A)},onerror:(t=y?.onerror)!==null&&t!==void 0?t:function(A){},onclose:(o=y?.onclose)!==null&&o!==void 0?o:function(A){}},C=this.webSocketFactory.create(c,ol(m),E);C.connect(),await g;let v=P(this.apiClient,e.model);if(this.apiClient.isVertexAI()&&v.startsWith("publishers/")){const A=this.apiClient.getProject(),N=this.apiClient.getLocation();v=`projects/${A}/locations/${N}/`+v}let S={};this.apiClient.isVertexAI()&&((r=e.config)===null||r===void 0?void 0:r.responseModalities)===void 0&&(e.config===void 0?e.config={responseModalities:[te.AUDIO]}:e.config.responseModalities=[te.AUDIO]),!((l=e.config)===null||l===void 0)&&l.generationConfig&&console.warn("Setting `LiveConnectConfig.generation_config` is deprecated, please set the fields on `LiveConnectConfig` directly. This will become an error in a future version (not before Q3 2025).");const R=(d=(a=e.config)===null||a===void 0?void 0:a.tools)!==null&&d!==void 0?d:[],M=[];for(const A of R)if(this.isCallableTool(A)){const N=A;M.push(await N.tool())}else M.push(A);M.length>0&&(e.config.tools=M);const x={model:v,config:e.config,callbacks:e.callbacks};return this.apiClient.isVertexAI()?S=qi(this.apiClient,x):S=Fi(this.apiClient,x),delete S.config,C.send(JSON.stringify(S)),new tl(C,this.apiClient)}isCallableTool(e){return"callTool"in e&&typeof e.callTool=="function"}}const nl={turnComplete:!0};class tl{constructor(e,t){this.conn=e,this.apiClient=t}tLiveClientContent(e,t){if(t.turns!==null&&t.turns!==void 0){let o=[];try{o=L(t.turns),e.isVertexAI()||(o=o.map(r=>re(r)))}catch{throw new Error(`Failed to parse client content "turns", type: '${typeof t.turns}'`)}return{clientContent:{turns:o,turnComplete:t.turnComplete}}}return{clientContent:{turnComplete:t.turnComplete}}}tLiveClienttToolResponse(e,t){let o=[];if(t.functionResponses==null)throw new Error("functionResponses is required.");if(Array.isArray(t.functionResponses)?o=t.functionResponses:o=[t.functionResponses],o.length===0)throw new Error("functionResponses is required.");for(const l of o){if(typeof l!="object"||l===null||!("name"in l)||!("response"in l))throw new Error(`Could not parse function response, type '${typeof l}'.`);if(!e.isVertexAI()&&!("id"in l))throw new Error(Or)}return{toolResponse:{functionResponses:o}}}sendClientContent(e){e=Object.assign(Object.assign({},nl),e);const t=this.tLiveClientContent(this.apiClient,e);this.conn.send(JSON.stringify(t))}sendRealtimeInput(e){let t={};this.apiClient.isVertexAI()?t={realtimeInput:Ji(e)}:t={realtimeInput:Bi(e)},this.conn.send(JSON.stringify(t))}sendToolResponse(e){if(e.functionResponses==null)throw new Error("Tool response parameters are required.");const t=this.tLiveClienttToolResponse(this.apiClient,e);this.conn.send(JSON.stringify(t))}close(){this.conn.close()}}function ol(n){const e={};return n.forEach((t,o)=>{e[o]=t}),e}function il(n){const e=new Headers;for(const[t,o]of Object.entries(n))e.append(t,o);return e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */const Jn=10;function Yn(n){var e,t,o;if(!((e=n?.automaticFunctionCalling)===null||e===void 0)&&e.disable)return!0;let r=!1;for(const a of(t=n?.tools)!==null&&t!==void 0?t:[])if(z(a)){r=!0;break}if(!r)return!0;const l=(o=n?.automaticFunctionCalling)===null||o===void 0?void 0:o.maximumRemoteCalls;return l&&(l<0||!Number.isInteger(l))||l==0?(console.warn("Invalid maximumRemoteCalls value provided for automatic function calling. Disabled automatic function calling. Please provide a valid integer value greater than 0. maximumRemoteCalls provided:",l),!0):!1}function z(n){return"callTool"in n&&typeof n.callTool=="function"}function sl(n){var e,t,o;return(o=(t=(e=n.config)===null||e===void 0?void 0:e.tools)===null||t===void 0?void 0:t.some(r=>z(r)))!==null&&o!==void 0?o:!1}function rl(n){var e,t,o;return(o=(t=(e=n.config)===null||e===void 0?void 0:e.tools)===null||t===void 0?void 0:t.some(r=>!z(r)))!==null&&o!==void 0?o:!1}function $n(n){var e;return!(!((e=n?.automaticFunctionCalling)===null||e===void 0)&&e.ignoreCallHistory)}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class ll extends Y{constructor(e){super(),this.apiClient=e,this.generateContent=async t=>{var o,r,l,a,d;const f=await this.processParamsMaybeAddMcpUsage(t);if(this.maybeMoveToResponseJsonSchem(t),!sl(t)||Yn(t.config))return await this.generateContentInternal(f);if(rl(t))throw new Error("Automatic function calling with CallableTools and Tools is not yet supported.");let u,c;const p=L(f.contents),m=(l=(r=(o=f.config)===null||o===void 0?void 0:o.automaticFunctionCalling)===null||r===void 0?void 0:r.maximumRemoteCalls)!==null&&l!==void 0?l:Jn;let h=0;for(;h{if(this.maybeMoveToResponseJsonSchem(t),Yn(t.config)){const o=await this.processParamsMaybeAddMcpUsage(t);return await this.generateContentStreamInternal(o)}else return await this.processAfcStream(t)},this.generateImages=async t=>await this.generateImagesInternal(t).then(o=>{var r;let l;const a=[];if(o?.generatedImages)for(const f of o.generatedImages)f&&f?.safetyAttributes&&((r=f?.safetyAttributes)===null||r===void 0?void 0:r.contentType)==="Positive Prompt"?l=f?.safetyAttributes:a.push(f);let d;return l?d={generatedImages:a,positivePromptSafetyAttributes:l,sdkHttpResponse:o.sdkHttpResponse}:d={generatedImages:a,sdkHttpResponse:o.sdkHttpResponse},d}),this.list=async t=>{var o;const a={config:Object.assign(Object.assign({},{queryBase:!0}),t?.config)};if(this.apiClient.isVertexAI()&&!a.config.queryBase){if(!((o=a.config)===null||o===void 0)&&o.filter)throw new Error("Filtering tuned models list for Vertex AI is not currently supported");a.config.filter="labels.tune-type:*"}return new j(J.PAGED_ITEM_MODELS,d=>this.listInternal(d),await this.listInternal(a),a)},this.editImage=async t=>{const o={model:t.model,prompt:t.prompt,referenceImages:[],config:t.config};return t.referenceImages&&t.referenceImages&&(o.referenceImages=t.referenceImages.map(r=>r.toReferenceImageAPI())),await this.editImageInternal(o)},this.upscaleImage=async t=>{let o={numberOfImages:1,mode:"upscale"};t.config&&(o=Object.assign(Object.assign({},o),t.config));const r={model:t.model,image:t.image,upscaleFactor:t.upscaleFactor,config:o};return await this.upscaleImageInternal(r)},this.generateVideos=async t=>{var o,r,l,a,d,f;if((t.prompt||t.image||t.video)&&t.source)throw new Error("Source and prompt/image/video are mutually exclusive. Please only use source.");return this.apiClient.isVertexAI()||(!((o=t.video)===null||o===void 0)&&o.uri&&(!((r=t.video)===null||r===void 0)&&r.videoBytes)?t.video={uri:t.video.uri,mimeType:t.video.mimeType}:!((a=(l=t.source)===null||l===void 0?void 0:l.video)===null||a===void 0)&&a.uri&&(!((f=(d=t.source)===null||d===void 0?void 0:d.video)===null||f===void 0)&&f.videoBytes)&&(t.source.video={uri:t.source.video.uri,mimeType:t.source.video.mimeType})),await this.generateVideosInternal(t)}}maybeMoveToResponseJsonSchem(e){e.config&&e.config.responseSchema&&(e.config.responseJsonSchema||Object.keys(e.config.responseSchema).includes("$schema")&&(e.config.responseJsonSchema=e.config.responseSchema,delete e.config.responseSchema))}async processParamsMaybeAddMcpUsage(e){var t,o,r;const l=(t=e.config)===null||t===void 0?void 0:t.tools;if(!l)return e;const a=await Promise.all(l.map(async f=>z(f)?await f.tool():f)),d={model:e.model,contents:e.contents,config:Object.assign(Object.assign({},e.config),{tools:a})};if(d.config.tools=a,e.config&&e.config.tools&&mt(e.config.tools)){const f=(r=(o=e.config.httpOptions)===null||o===void 0?void 0:o.headers)!==null&&r!==void 0?r:{};let u=Object.assign({},f);Object.keys(u).length===0&&(u=this.apiClient.getDefaultHeaders()),ht(u),d.config.httpOptions=Object.assign(Object.assign({},e.config.httpOptions),{headers:u})}return d}async initAfcToolsMap(e){var t,o,r;const l=new Map;for(const a of(o=(t=e.config)===null||t===void 0?void 0:t.tools)!==null&&o!==void 0?o:[])if(z(a)){const d=a,f=await d.tool();for(const u of(r=f.functionDeclarations)!==null&&r!==void 0?r:[]){if(!u.name)throw new Error("Function declaration name is required.");if(l.has(u.name))throw new Error(`Duplicate tool declaration name: ${u.name}`);l.set(u.name,d)}}return l}async processAfcStream(e){var t,o,r;const l=(r=(o=(t=e.config)===null||t===void 0?void 0:t.automaticFunctionCalling)===null||o===void 0?void 0:o.maximumRemoteCalls)!==null&&r!==void 0?r:Jn;let a=!1,d=0;const f=await this.initAfcToolsMap(e);return(function(u,c,p){var m,h;return K(this,arguments,function*(){for(var g,y,_,I;d0){a=!0;const A=new Z;A.candidates=[{content:{role:"user",parts:M}}],yield yield w(A);const N=[];N.push(...x),N.push({role:"user",parts:M});const k=L(p.contents).concat(N);p.contents=k}else break}})})(this,f,e)}async generateContentInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Fn(this.apiClient,e);return d=T("{model}:generateContent",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Gn(c),m=new Z;return Object.assign(m,p),m})}else{const u=Vn(this.apiClient,e);return d=T("{model}:generateContent",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=qn(c),m=new Z;return Object.assign(m,p),m})}}async generateContentStreamInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Fn(this.apiClient,e);return d=T("{model}:streamGenerateContent?alt=sse",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.requestStream({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}),a.then(function(p){return K(this,arguments,function*(){var m,h,g,y;try{for(var _=!0,I=O(p),E;E=yield w(I.next()),m=E.done,!m;_=!0){y=E.value,_=!1;const C=y,v=Gn(yield w(C.json()));v.sdkHttpResponse={headers:C.headers};const S=new Z;Object.assign(S,v),yield yield w(S)}}catch(C){h={error:C}}finally{try{!_&&!m&&(g=I.return)&&(yield w(g.call(I)))}finally{if(h)throw h.error}}})})}else{const u=Vn(this.apiClient,e);return d=T("{model}:streamGenerateContent?alt=sse",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.requestStream({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}),a.then(function(p){return K(this,arguments,function*(){var m,h,g,y;try{for(var _=!0,I=O(p),E;E=yield w(I.next()),m=E.done,!m;_=!0){y=E.value,_=!1;const C=y,v=qn(yield w(C.json()));v.sdkHttpResponse={headers:C.headers};const S=new Z;Object.assign(S,v),yield yield w(S)}}catch(C){h={error:C}}finally{try{!_&&!m&&(g=I.return)&&(yield w(g.call(I)))}finally{if(h)throw h.error}}})})}}async embedContent(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Cs(this.apiClient,e);return d=T("{model}:predict",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Es(c),m=new _n;return Object.assign(m,p),m})}else{const u=Ts(this.apiClient,e);return d=T("{model}:batchEmbedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=_s(c),m=new _n;return Object.assign(m,p),m})}}async generateImagesInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=ws(this.apiClient,e);return d=T("{model}:predict",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=xs(c),m=new En;return Object.assign(m,p),m})}else{const u=Ns(this.apiClient,e);return d=T("{model}:predict",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Ds(c),m=new En;return Object.assign(m,p),m})}}async editImageInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=ms(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=hs(f),c=new Ut;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async upscaleImageInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=Mr(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=Pr(f),c=new kt;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async recontextImage(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=ur(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>{const u=dr(f),c=new Lt;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async segmentImage(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=gr(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>{const u=yr(f),c=new Vt;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async get(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Qs(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>ye(c))}else{const u=Xs(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ge(c))}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=tr(this.apiClient,e);return d=T("{models_url}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=ir(c),m=new In;return Object.assign(m,p),m})}else{const u=nr(this.apiClient,e);return d=T("{models_url}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=or(c),m=new In;return Object.assign(m,p),m})}}async update(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Sr(this.apiClient,e);return d=T("{model}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>ye(c))}else{const u=Ar(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ge(c))}}async delete(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=ds(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=cs(c),m=new vn;return Object.assign(m,p),m})}else{const u=us(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=fs(c),m=new vn;return Object.assign(m,p),m})}}async countTokens(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=rs(this.apiClient,e);return d=T("{model}:countTokens",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=as(c),m=new An;return Object.assign(m,p),m})}else{const u=ss(this.apiClient,e);return d=T("{model}:countTokens",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=ls(c),m=new An;return Object.assign(m,p),m})}}async computeTokens(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=Oi(this.apiClient,e);return l=T("{model}:computeTokens",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=ji(f),c=new Ft;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async generateVideosInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=qs(this.apiClient,e);return d=T("{model}:predictLongRunning",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>{const p=Vs(c),m=new oe;return Object.assign(m,p),m})}else{const u=Fs(this.apiClient,e);return d=T("{model}:predictLongRunning",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>{const p=Ls(c),m=new oe;return Object.assign(m,p),m})}}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class al extends Y{constructor(e){super(),this.apiClient=e}async getVideosOperation(e){const t=e.operation,o=e.config;if(t.name===void 0||t.name==="")throw new Error("Operation name is required.");if(this.apiClient.isVertexAI()){const r=t.name.split("/operations/")[0];let l;o&&"httpOptions"in o&&(l=o.httpOptions);const a=await this.fetchPredictVideosOperationInternal({operationName:t.name,resourceName:r,config:{httpOptions:l}});return t._fromAPIResponse({apiResponse:a,isVertexAI:!0})}else{const r=await this.getVideosOperationInternal({operationName:t.name,config:o});return t._fromAPIResponse({apiResponse:r,isVertexAI:!1})}}async get(e){const t=e.operation,o=e.config;if(t.name===void 0||t.name==="")throw new Error("Operation name is required.");if(this.apiClient.isVertexAI()){const r=t.name.split("/operations/")[0];let l;o&&"httpOptions"in o&&(l=o.httpOptions);const a=await this.fetchPredictVideosOperationInternal({operationName:t.name,resourceName:r,config:{httpOptions:l}});return t._fromAPIResponse({apiResponse:a,isVertexAI:!0})}else{const r=await this.getVideosOperationInternal({operationName:t.name,config:o});return t._fromAPIResponse({apiResponse:r,isVertexAI:!1})}}async getVideosOperationInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=wt(e);return d=T("{operationName}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a}else{const u=Nt(e);return d=T("{operationName}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a}}async fetchPredictVideosOperationInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=It(e);return l=T("{resourceName}:fetchPredictOperation",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r}else throw new Error("This method is only supported by the Vertex AI.")}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function ul(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function dl(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>Tl(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function fl(n,e,t){const o={},r=i(e,["expireTime"]);t!==void 0&&r!=null&&s(t,["expireTime"],r);const l=i(e,["newSessionExpireTime"]);t!==void 0&&l!=null&&s(t,["newSessionExpireTime"],l);const a=i(e,["uses"]);t!==void 0&&a!=null&&s(t,["uses"],a);const d=i(e,["liveConnectConstraints"]);t!==void 0&&d!=null&&s(t,["bidiGenerateContentSetup"],yl(n,d));const f=i(e,["lockAdditionalFields"]);return t!==void 0&&f!=null&&s(t,["fieldMask"],f),o}function cl(n,e){const t={},o=i(e,["config"]);return o!=null&&s(t,["config"],fl(n,o,t)),t}function pl(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function ml(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function hl(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function gl(n,e){const t={},o=i(n,["generationConfig"]);e!==void 0&&o!=null&&s(e,["setup","generationConfig"],o);const r=i(n,["responseModalities"]);e!==void 0&&r!=null&&s(e,["setup","generationConfig","responseModalities"],r);const l=i(n,["temperature"]);e!==void 0&&l!=null&&s(e,["setup","generationConfig","temperature"],l);const a=i(n,["topP"]);e!==void 0&&a!=null&&s(e,["setup","generationConfig","topP"],a);const d=i(n,["topK"]);e!==void 0&&d!=null&&s(e,["setup","generationConfig","topK"],d);const f=i(n,["maxOutputTokens"]);e!==void 0&&f!=null&&s(e,["setup","generationConfig","maxOutputTokens"],f);const u=i(n,["mediaResolution"]);e!==void 0&&u!=null&&s(e,["setup","generationConfig","mediaResolution"],u);const c=i(n,["seed"]);e!==void 0&&c!=null&&s(e,["setup","generationConfig","seed"],c);const p=i(n,["speechConfig"]);e!==void 0&&p!=null&&s(e,["setup","generationConfig","speechConfig"],Ae(p));const m=i(n,["thinkingConfig"]);e!==void 0&&m!=null&&s(e,["setup","generationConfig","thinkingConfig"],m);const h=i(n,["enableAffectiveDialog"]);e!==void 0&&h!=null&&s(e,["setup","generationConfig","enableAffectiveDialog"],h);const g=i(n,["systemInstruction"]);e!==void 0&&g!=null&&s(e,["setup","systemInstruction"],dl(U(g)));const y=i(n,["tools"]);if(e!==void 0&&y!=null){let R=Q(y);Array.isArray(R)&&(R=R.map(M=>_l(X(M)))),s(e,["setup","tools"],R)}const _=i(n,["sessionResumption"]);e!==void 0&&_!=null&&s(e,["setup","sessionResumption"],Cl(_));const I=i(n,["inputAudioTranscription"]);e!==void 0&&I!=null&&s(e,["setup","inputAudioTranscription"],I);const E=i(n,["outputAudioTranscription"]);e!==void 0&&E!=null&&s(e,["setup","outputAudioTranscription"],E);const C=i(n,["realtimeInputConfig"]);e!==void 0&&C!=null&&s(e,["setup","realtimeInputConfig"],C);const v=i(n,["contextWindowCompression"]);e!==void 0&&v!=null&&s(e,["setup","contextWindowCompression"],v);const S=i(n,["proactivity"]);return e!==void 0&&S!=null&&s(e,["setup","proactivity"],S),t}function yl(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["setup","model"],P(n,o));const r=i(e,["config"]);return r!=null&&s(t,["config"],gl(r,t)),t}function Tl(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],ul(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],pl(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function Cl(n){const e={},t=i(n,["handle"]);if(t!=null&&s(e,["handle"],t),i(n,["transparent"])!==void 0)throw new Error("transparent parameter is not supported in Gemini API.");return e}function _l(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],hl(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],ml(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function El(n){const e=[];for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)){const o=n[t];if(typeof o=="object"&&o!=null&&Object.keys(o).length>0){const r=Object.keys(o).map(l=>`${t}.${l}`);e.push(...r)}else e.push(t)}return e.join(",")}function Il(n,e){let t=null;const o=n.bidiGenerateContentSetup;if(typeof o=="object"&&o!==null&&"setup"in o){const l=o.setup;typeof l=="object"&&l!==null?(n.bidiGenerateContentSetup=l,t=l):delete n.bidiGenerateContentSetup}else o!==void 0&&delete n.bidiGenerateContentSetup;const r=n.fieldMask;if(t){const l=El(t);if(Array.isArray(e?.lockAdditionalFields)&&e?.lockAdditionalFields.length===0)l?n.fieldMask=l:delete n.fieldMask;else if(e?.lockAdditionalFields&&e.lockAdditionalFields.length>0&&r!==null&&Array.isArray(r)&&r.length>0){const a=["temperature","topK","topP","maxOutputTokens","responseModalities","seed","speechConfig"];let d=[];r.length>0&&(d=r.map(u=>a.includes(u)?`generationConfig.${u}`:u));const f=[];l&&f.push(l),d.length>0&&f.push(...d),f.length>0?n.fieldMask=f.join(","):delete n.fieldMask}else delete n.fieldMask}else r!==null&&Array.isArray(r)&&r.length>0?n.fieldMask=r.join(","):delete n.fieldMask;return n}class vl extends Y{constructor(e){super(),this.apiClient=e}async create(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("The client.tokens.create method is only supported by the Gemini Developer API.");{const d=cl(this.apiClient,e);l=T("auth_tokens",d._url),a=d._query,delete d.config,delete d._url,delete d._query;const f=Il(d,e.config);return r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(u=>u.json()),r.then(u=>u)}}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */function Al(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function Sl(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function Rl(n,e){const t={};if(i(n,["validationDataset"])!==void 0)throw new Error("validationDataset parameter is not supported in Gemini API.");const o=i(n,["tunedModelDisplayName"]);if(e!==void 0&&o!=null&&s(e,["displayName"],o),i(n,["description"])!==void 0)throw new Error("description parameter is not supported in Gemini API.");const r=i(n,["epochCount"]);e!==void 0&&r!=null&&s(e,["tuningTask","hyperparameters","epochCount"],r);const l=i(n,["learningRateMultiplier"]);if(l!=null&&s(t,["tuningTask","hyperparameters","learningRateMultiplier"],l),i(n,["exportLastCheckpointOnly"])!==void 0)throw new Error("exportLastCheckpointOnly parameter is not supported in Gemini API.");if(i(n,["preTunedModelCheckpointId"])!==void 0)throw new Error("preTunedModelCheckpointId parameter is not supported in Gemini API.");if(i(n,["adapterSize"])!==void 0)throw new Error("adapterSize parameter is not supported in Gemini API.");const a=i(n,["batchSize"]);e!==void 0&&a!=null&&s(e,["tuningTask","hyperparameters","batchSize"],a);const d=i(n,["learningRate"]);if(e!==void 0&&d!=null&&s(e,["tuningTask","hyperparameters","learningRate"],d),i(n,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");return t}function Ml(n,e){const t={},o=i(n,["validationDataset"]);e!==void 0&&o!=null&&s(e,["supervisedTuningSpec"],Jl(o,t));const r=i(n,["tunedModelDisplayName"]);e!==void 0&&r!=null&&s(e,["tunedModelDisplayName"],r);const l=i(n,["description"]);e!==void 0&&l!=null&&s(e,["description"],l);const a=i(n,["epochCount"]);e!==void 0&&a!=null&&s(e,["supervisedTuningSpec","hyperParameters","epochCount"],a);const d=i(n,["learningRateMultiplier"]);e!==void 0&&d!=null&&s(e,["supervisedTuningSpec","hyperParameters","learningRateMultiplier"],d);const f=i(n,["exportLastCheckpointOnly"]);e!==void 0&&f!=null&&s(e,["supervisedTuningSpec","exportLastCheckpointOnly"],f);const u=i(n,["adapterSize"]);if(e!==void 0&&u!=null&&s(e,["supervisedTuningSpec","hyperParameters","adapterSize"],u),i(n,["batchSize"])!==void 0)throw new Error("batchSize parameter is not supported in Vertex AI.");if(i(n,["learningRate"])!==void 0)throw new Error("learningRate parameter is not supported in Vertex AI.");const c=i(n,["labels"]);return e!==void 0&&c!=null&&s(e,["labels"],c),t}function Pl(n){const e={},t=i(n,["baseModel"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["preTunedModel"]);o!=null&&s(e,["preTunedModel"],o);const r=i(n,["trainingDataset"]);r!=null&&s(e,["tuningTask","trainingData"],Gl(r));const l=i(n,["config"]);return l!=null&&Rl(l,e),e}function Nl(n){const e={},t=i(n,["baseModel"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["preTunedModel"]);o!=null&&s(e,["preTunedModel"],o);const r=i(n,["trainingDataset"]);r!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],Hl(r,e));const l=i(n,["config"]);return l!=null&&Ml(l,e),e}function wl(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function Dl(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function xl(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);e!==void 0&&r!=null&&s(e,["_query","pageToken"],r);const l=i(n,["filter"]);return e!==void 0&&l!=null&&s(e,["_query","filter"],l),t}function Ul(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);e!==void 0&&r!=null&&s(e,["_query","pageToken"],r);const l=i(n,["filter"]);return e!==void 0&&l!=null&&s(e,["_query","filter"],l),t}function kl(n){const e={},t=i(n,["config"]);return t!=null&&xl(t,e),e}function Ll(n){const e={},t=i(n,["config"]);return t!=null&&Ul(t,e),e}function Vl(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["tunedModels"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>gt(a))),s(e,["tuningJobs"],l)}return e}function Fl(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["tuningJobs"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>Ce(a))),s(e,["tuningJobs"],l)}return e}function ql(n){const e={},t=i(n,["name"]);t!=null&&s(e,["model"],t);const o=i(n,["name"]);return o!=null&&s(e,["endpoint"],o),e}function Gl(n){const e={};if(i(n,["gcsUri"])!==void 0)throw new Error("gcsUri parameter is not supported in Gemini API.");if(i(n,["vertexDatasetResource"])!==void 0)throw new Error("vertexDatasetResource parameter is not supported in Gemini API.");const t=i(n,["examples"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["examples","examples"],o)}return e}function Hl(n,e){const t={},o=i(n,["gcsUri"]);e!==void 0&&o!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],o);const r=i(n,["vertexDatasetResource"]);if(e!==void 0&&r!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],r),i(n,["examples"])!==void 0)throw new Error("examples parameter is not supported in Vertex AI.");return t}function gt(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["state"]);r!=null&&s(e,["state"],Zn(r));const l=i(n,["createTime"]);l!=null&&s(e,["createTime"],l);const a=i(n,["tuningTask","startTime"]);a!=null&&s(e,["startTime"],a);const d=i(n,["tuningTask","completeTime"]);d!=null&&s(e,["endTime"],d);const f=i(n,["updateTime"]);f!=null&&s(e,["updateTime"],f);const u=i(n,["description"]);u!=null&&s(e,["description"],u);const c=i(n,["baseModel"]);c!=null&&s(e,["baseModel"],c);const p=i(n,["_self"]);return p!=null&&s(e,["tunedModel"],ql(p)),e}function Ce(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["state"]);r!=null&&s(e,["state"],Zn(r));const l=i(n,["createTime"]);l!=null&&s(e,["createTime"],l);const a=i(n,["startTime"]);a!=null&&s(e,["startTime"],a);const d=i(n,["endTime"]);d!=null&&s(e,["endTime"],d);const f=i(n,["updateTime"]);f!=null&&s(e,["updateTime"],f);const u=i(n,["error"]);u!=null&&s(e,["error"],u);const c=i(n,["description"]);c!=null&&s(e,["description"],c);const p=i(n,["baseModel"]);p!=null&&s(e,["baseModel"],p);const m=i(n,["tunedModel"]);m!=null&&s(e,["tunedModel"],m);const h=i(n,["preTunedModel"]);h!=null&&s(e,["preTunedModel"],h);const g=i(n,["supervisedTuningSpec"]);g!=null&&s(e,["supervisedTuningSpec"],g);const y=i(n,["tuningDataStats"]);y!=null&&s(e,["tuningDataStats"],y);const _=i(n,["encryptionSpec"]);_!=null&&s(e,["encryptionSpec"],_);const I=i(n,["partnerModelTuningSpec"]);I!=null&&s(e,["partnerModelTuningSpec"],I);const E=i(n,["customBaseModel"]);E!=null&&s(e,["customBaseModel"],E);const C=i(n,["experiment"]);C!=null&&s(e,["experiment"],C);const v=i(n,["labels"]);v!=null&&s(e,["labels"],v);const S=i(n,["outputUri"]);S!=null&&s(e,["outputUri"],S);const R=i(n,["pipelineJob"]);R!=null&&s(e,["pipelineJob"],R);const M=i(n,["serviceAccount"]);M!=null&&s(e,["serviceAccount"],M);const x=i(n,["tunedModelDisplayName"]);x!=null&&s(e,["tunedModelDisplayName"],x);const A=i(n,["veoTuningSpec"]);return A!=null&&s(e,["veoTuningSpec"],A),e}function Bl(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["metadata"]);r!=null&&s(e,["metadata"],r);const l=i(n,["done"]);l!=null&&s(e,["done"],l);const a=i(n,["error"]);return a!=null&&s(e,["error"],a),e}function Jl(n,e){const t={},o=i(n,["gcsUri"]);o!=null&&s(t,["validationDatasetUri"],o);const r=i(n,["vertexDatasetResource"]);return e!==void 0&&r!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],r),t}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class Yl extends Y{constructor(e){super(),this.apiClient=e,this.get=async t=>await this.getInternal(t),this.list=async(t={})=>new j(J.PAGED_ITEM_TUNING_JOBS,o=>this.listInternal(o),await this.listInternal(t),t),this.tune=async t=>{var o;if(this.apiClient.isVertexAI())if(t.baseModel.startsWith("projects/")){const r={tunedModelName:t.baseModel};!((o=t.config)===null||o===void 0)&&o.preTunedModelCheckpointId&&(r.checkpointId=t.config.preTunedModelCheckpointId);const l=Object.assign(Object.assign({},t),{preTunedModel:r});return l.baseModel=void 0,await this.tuneInternal(l)}else{const r=Object.assign({},t);return await this.tuneInternal(r)}else{const r=Object.assign({},t),l=await this.tuneMldevInternal(r);let a="";return l.metadata!==void 0&&l.metadata.tunedModel!==void 0?a=l.metadata.tunedModel:l.name!==void 0&&l.name.includes("/operations/")&&(a=l.name.split("/operations/")[0]),{name:a,state:ce.JOB_STATE_QUEUED}}}}async getInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Dl(e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>Ce(c))}else{const u=wl(e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>gt(c))}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Ll(e);return d=T("tuningJobs",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Fl(c),m=new Sn;return Object.assign(m,p),m})}else{const u=kl(e);return d=T("tunedModels",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Vl(c),m=new Sn;return Object.assign(m,p),m})}}async cancel(e){var t,o,r,l;let a="",d={};if(this.apiClient.isVertexAI()){const f=Sl(e);a=T("{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal})}else{const f=Al(e);a=T("{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal})}}async tuneInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=Nl(e);return l=T("tuningJobs",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>Ce(f))}else throw new Error("This method is only supported by the Vertex AI.")}async tuneMldevInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Pl(e);return l=T("tunedModels",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>Bl(f))}}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class $l{async download(e,t){throw new Error("Download to file is not supported in the browser, please use a browser compliant download like an tag.")}}const Wl=1024*1024*8,Kl=3,zl=1e3,Xl=2,de="x-goog-upload-status";async function Ql(n,e,t){var o,r,l;let a=0,d=0,f=new pe(new Response),u="upload";for(a=n.size;d=a&&(u+=", finalize");let h=0,g=zl;for(;hsetTimeout(e,n))}class Ol{async upload(e,t,o){if(typeof e=="string")throw new Error("File path is not supported in browser uploader.");return await Ql(e,t,o)}async stat(e){if(typeof e=="string")throw new Error("File path is not supported in browser uploader.");return await bl(e)}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */class jl{create(e,t,o){return new ea(e,t,o)}}class ea{constructor(e,t,o){this.url=e,this.headers=t,this.callbacks=o}connect(){this.ws=new WebSocket(this.url),this.ws.onopen=this.callbacks.onopen,this.ws.onerror=this.callbacks.onerror,this.ws.onclose=this.callbacks.onclose,this.ws.onmessage=this.callbacks.onmessage}send(e){if(this.ws===void 0)throw new Error("WebSocket is not connected");this.ws.send(e)}close(){if(this.ws===void 0)throw new Error("WebSocket is not connected");this.ws.close()}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */const Wn="x-goog-api-key";class na{constructor(e){this.apiKey=e}async addAuthHeaders(e){if(e.get(Wn)===null){if(this.apiKey.startsWith("auth_tokens/"))throw new Error("Ephemeral tokens are only supported by the live API.");if(!this.apiKey)throw new Error("API key is missing. Please provide a valid API key.");e.append(Wn,this.apiKey)}}}/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */const ta="gl-node/";class oa{constructor(e){var t;if(e.apiKey==null)throw new Error("An API Key must be set when running in a browser");if(e.project||e.location)throw new Error("Vertex AI project based authentication is not supported on browser runtimes. Please do not provide a project or location.");this.vertexai=(t=e.vertexai)!==null&&t!==void 0?t:!1,this.apiKey=e.apiKey;const o=_t(e.httpOptions,e.vertexai,void 0,void 0);o&&(e.httpOptions?e.httpOptions.baseUrl=o:e.httpOptions={baseUrl:o}),this.apiVersion=e.apiVersion;const r=new na(this.apiKey);this.apiClient=new Br({auth:r,apiVersion:this.apiVersion,apiKey:this.apiKey,vertexai:this.vertexai,httpOptions:e.httpOptions,userAgentExtra:ta+"web",uploader:new Ol,downloader:new $l}),this.models=new ll(this.apiClient),this.live=new el(this.apiClient,r,new jl),this.batches=new Ho(this.apiClient),this.chats=new Ti(this.models,this.apiClient),this.caches=new hi(this.apiClient),this.files=new Pi(this.apiClient),this.operations=new al(this.apiClient),this.authTokens=new vl(this.apiClient),this.tunings=new Yl(this.apiClient)}}export{oa as G,te as M,H as T}; //# sourceMappingURL=@google-CcUHq7Ay.js.map