sliccy 5.73.2 → 5.73.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/ui/assets/account-store-DwSzwLW8.js +43 -0
  2. package/dist/ui/assets/account-store-DzwZMcTg.js +101 -0
  3. package/dist/ui/assets/{adobe-DES2cp-y.js → adobe-ChyPg00A.js} +1 -1
  4. package/dist/ui/assets/{adobe-DHUcvdyP.js → adobe-h2gWq2z2.js} +1 -1
  5. package/dist/ui/assets/anthropic-messages-BFic5zKY.js +39 -0
  6. package/dist/ui/assets/anthropic-messages-C8dDJE2X.js +39 -0
  7. package/dist/ui/assets/{apps-DJx3akpR.js → apps-C86xnKLs.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-D7xJ5VET.js → azure-openai-CjkdyGG4.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-C3DSYzL8.js → azure-openai-DMNa-Eup.js} +1 -1
  10. package/dist/ui/assets/azure-openai-responses-B_twhN44.js +1 -0
  11. package/dist/ui/assets/azure-openai-responses-CzG7X9qb.js +1 -0
  12. package/dist/ui/assets/bedrock-camp-BO4bvAKs.js +1 -0
  13. package/dist/ui/assets/{bedrock-camp-PMQ4Iu6f.js → bedrock-camp-CVignIdH.js} +1 -1
  14. package/dist/ui/assets/{cerebras-CnOHiorM.js → cerebras-B0gvSD27.js} +1 -1
  15. package/dist/ui/assets/{cerebras-EsczMAGe.js → cerebras-CvSC_Q2O.js} +1 -1
  16. package/dist/ui/assets/compat-aVSWLlYQ.js +2 -0
  17. package/dist/ui/assets/{connect-surface-BTk8oHjU.js → connect-surface-3UvT0SF3.js} +1 -1
  18. package/dist/ui/assets/constrained-sampling-DafcjXU6.js +1 -0
  19. package/dist/ui/assets/{context-compaction-CW5AQ9bv.js → context-compaction-_UkD06XB.js} +1 -1
  20. package/dist/ui/assets/{fs-C_SqCSvP.js → fs-DC3MEAD4.js} +2 -2
  21. package/dist/ui/assets/{fs-PoNPHaXB.js → fs-DgMOH-Zj.js} +1 -1
  22. package/dist/ui/assets/{github-DF16zQXQ.js → github-HKW-k0Oh.js} +1 -1
  23. package/dist/ui/assets/{github-copilot-DiGxn4oA.js → github-copilot-C7lsRXxS.js} +1 -1
  24. package/dist/ui/assets/{github-copilot-DeMLYZUN.js → github-copilot-CBv0T4_S.js} +1 -1
  25. package/dist/ui/assets/{github-DjE0FC03.js → github-mH266f8L.js} +2 -2
  26. package/dist/ui/assets/google-generative-ai-4YtIu_sJ.js +1 -0
  27. package/dist/ui/assets/google-generative-ai-DzD1vsXe.js +1 -0
  28. package/dist/ui/assets/google-shared-BAKd3aSn.js +371 -0
  29. package/dist/ui/assets/google-shared-CCLlnqMF.js +11 -0
  30. package/dist/ui/assets/google-vertex-8lUayXF0.js +1 -0
  31. package/dist/ui/assets/google-vertex-oQOD3HKr.js +1 -0
  32. package/dist/ui/assets/js-realm-worker-BIrkB9d8.js +48 -0
  33. package/dist/ui/assets/{kernel-worker-C-tryBGn.js → kernel-worker-CHs5yDJo.js} +589 -591
  34. package/dist/ui/assets/{legacy-api-aliases-CRTuRAqQ.js → legacy-api-aliases-IllWZ-uu.js} +1 -1
  35. package/dist/ui/assets/{legacy-api-aliases-CdGTJw-r.js → legacy-api-aliases-sqlB2uHc.js} +1 -1
  36. package/dist/ui/assets/{lick-ws-bridge-C3foeWDS.js → lick-ws-bridge-DbbdXQSp.js} +1 -1
  37. package/dist/ui/assets/{local-llm-CWi0ZprP.js → local-llm-DcKgaorK.js} +2 -2
  38. package/dist/ui/assets/{local-llm-Dq9HBaqe.js → local-llm-DpBDM1Dm.js} +1 -1
  39. package/dist/ui/assets/{main-BMElPt_b.js → main-CBUfGcTh.js} +3 -3
  40. package/dist/ui/assets/mistral-conversations-C57IiFrP.js +8 -0
  41. package/dist/ui/assets/mistral-conversations-CzEm7KNl.js +7 -0
  42. package/dist/ui/assets/{mount-CAFjW1QS.js → mount-BHqxxbwU.js} +1 -1
  43. package/dist/ui/assets/{mount-C7OeghLh.js → mount-BRSg0FIY.js} +2 -2
  44. package/dist/ui/assets/{mount-recovery-B8VdqP8T.js → mount-recovery-Beig7gzz.js} +1 -1
  45. package/dist/ui/assets/{new-session-BwNVjrlp.js → new-session-UPnjrqyz.js} +2 -2
  46. package/dist/ui/assets/oauth-bootstrap-DUaR-il_.js +2 -0
  47. package/dist/ui/assets/{openai-codex-D9LHZUcr.js → openai-codex-CZit4W_R.js} +1 -1
  48. package/dist/ui/assets/openai-codex-D0W343kX.js +1 -0
  49. package/dist/ui/assets/openai-codex-responses-DRR6raXn.js +7 -0
  50. package/dist/ui/assets/openai-codex-responses-DU5CHdDQ.js +7 -0
  51. package/dist/ui/assets/openai-completions-B9S6450Q.js +5 -0
  52. package/dist/ui/assets/openai-completions-DhKgaAgM.js +5 -0
  53. package/dist/ui/assets/openai-responses-C4_jiYtu.js +1 -0
  54. package/dist/ui/assets/openai-responses-DmKhLxzV.js +1 -0
  55. package/dist/ui/assets/openai-responses-shared-CiIL52L-.js +10 -0
  56. package/dist/ui/assets/openai-responses-shared-IJFiSqdz.js +10 -0
  57. package/dist/ui/assets/{openrouter-BmRdV9UY.js → openrouter-D4iz9RSI.js} +1 -1
  58. package/dist/ui/assets/{openrouter-BIvugNQ1.js → openrouter-XorTuzAh.js} +1 -1
  59. package/dist/ui/assets/openrouter-images-6_MxZkJZ.js +1 -0
  60. package/dist/ui/assets/openrouter-images-BixC5B6a.js +1 -0
  61. package/dist/ui/assets/{openrouter-models-DM9v24kQ.js → openrouter-models-Bu1Cy5AD.js} +1 -1
  62. package/dist/ui/assets/{openrouter-models-B8MWxzTa.js → openrouter-models-CfnkMx5-.js} +1 -1
  63. package/dist/ui/assets/{openrouter-oauth-lGTI8QBz.js → openrouter-oauth-BGOdgzqm.js} +1 -1
  64. package/dist/ui/assets/{openrouter-oauth-QExY6Qo3.js → openrouter-oauth-BLGBWXoP.js} +1 -1
  65. package/dist/ui/assets/openrouter.models-DS1_VkCm.js +1 -0
  66. package/dist/ui/assets/openrouter.models-HnnH-abS.js +1 -0
  67. package/dist/ui/assets/{panel-rpc-handlers-SvYz4p6A.js → panel-rpc-handlers-BPMsj1iE.js} +2 -2
  68. package/dist/ui/assets/{provider-dLnW_Qmu.js → provider-DZ7x1aM4.js} +1 -1
  69. package/dist/ui/assets/{provider-CDDFVleF.js → provider-YxK-lzhm.js} +2 -2
  70. package/dist/ui/assets/provider-retry-C8PJzY_l.js +1 -0
  71. package/dist/ui/assets/{provider-settings-BonXlQHx.js → provider-settings-CmJnFmK2.js} +1 -1
  72. package/dist/ui/assets/provider-settings-D6FC6-Ws.js +2 -0
  73. package/dist/ui/assets/{provider-store-access-CDUXoK9n.js → provider-store-access-Bqa_EvEK.js} +2 -2
  74. package/dist/ui/assets/provider-store-access-Dw2dlNIf.js +1 -0
  75. package/dist/ui/assets/{providers-BE5wq_hp.js → providers-7r6dA4ra.js} +1 -1
  76. package/dist/ui/assets/{providers-B8AC4r1K.js → providers-Bklgdp4G.js} +2 -2
  77. package/dist/ui/assets/quick-llm-BHegEzYY.js +1 -0
  78. package/dist/ui/assets/{session-freezer-jCi1eAnA.js → session-freezer-oYKtZTY0.js} +3 -3
  79. package/dist/ui/assets/{setup-sudo-CglheNlM.js → setup-sudo-DGrMEyR3.js} +2 -2
  80. package/dist/ui/assets/{skills-B6K9VVT7.js → skills-DkHenAsV.js} +1 -1
  81. package/dist/ui/assets/{store-Dpqwm0j1.js → store-DICK08O4.js} +1 -1
  82. package/dist/ui/assets/{sudo-Bfbjy3cy.js → sudo-9mYhdwPD.js} +1 -1
  83. package/dist/ui/assets/{upgrade-detection-DdRKki36.js → upgrade-detection-B8LfSgMb.js} +1 -1
  84. package/dist/ui/assets/{wc-extension-K9Yoj8xX.js → wc-extension-grYSDyJN.js} +2 -2
  85. package/dist/ui/assets/{wc-follower-BmFSgVpW.js → wc-follower-B6JesvuH.js} +3 -3
  86. package/dist/ui/assets/{wc-live-FQiVeP5H.js → wc-live-OHBNpb_A.js} +3 -3
  87. package/dist/ui/assets/{wc-nav-CPTHD9Gm.js → wc-nav-DcxqwpAS.js} +2 -2
  88. package/dist/ui/assets/{wc-onboarding-Du7r32Nc.js → wc-onboarding-t5pRxVjL.js} +2 -2
  89. package/dist/ui/assets/{wc-placeholder-qw9xzwIX.js → wc-placeholder-XW-qi_GD.js} +2 -2
  90. package/dist/ui/assets/{wc-settings-Dsqf_wFN.js → wc-settings-7Jj2UM15.js} +2 -2
  91. package/dist/ui/assets/{wc-shell-LFcAIFJQ.js → wc-shell-CoYCAmK-.js} +2 -2
  92. package/dist/ui/assets/{wc-sprinkles-CYSiEKaU.js → wc-sprinkles-CFaUt2sb.js} +2 -2
  93. package/dist/ui/assets/{wc-tray-Dg2nqNkH.js → wc-tray-C_yJiqov.js} +2 -2
  94. package/dist/ui/assets/xai-grok-CrEqywR8.js +1 -0
  95. package/dist/ui/assets/{xai-grok-D-owzioC.js → xai-grok-QulUPZS-.js} +1 -1
  96. package/dist/ui/index.html +10 -10
  97. package/dist/ui/packages/webapp/index.html +10 -10
  98. package/package.json +1 -1
  99. package/dist/ui/assets/account-store-1sWsdBXV.js +0 -38
  100. package/dist/ui/assets/account-store-DWKDZbQl.js +0 -94
  101. package/dist/ui/assets/amazon-bedrock-Cg62P8pR.json +0 -1
  102. package/dist/ui/assets/anthropic-4_qTN2Mu.json +0 -1
  103. package/dist/ui/assets/anthropic-messages-6XWFkWWy.js +0 -39
  104. package/dist/ui/assets/anthropic-messages-D42B1WVl.js +0 -39
  105. package/dist/ui/assets/azure-openai-responses-BvEv9lZE.js +0 -1
  106. package/dist/ui/assets/azure-openai-responses-DE9sINqp.json +0 -1
  107. package/dist/ui/assets/azure-openai-responses-DRSA640t.js +0 -1
  108. package/dist/ui/assets/bedrock-camp-D_7EbOFH.js +0 -1
  109. package/dist/ui/assets/cloudflare-ai-gateway-DDb7hKDm.json +0 -1
  110. package/dist/ui/assets/cloudflare-workers-ai-hYVOS3es.json +0 -1
  111. package/dist/ui/assets/compat-Spvv5tCW.js +0 -2
  112. package/dist/ui/assets/fireworks-B7kEGNCU.json +0 -1
  113. package/dist/ui/assets/github-copilot-K9C_HNHm.json +0 -1
  114. package/dist/ui/assets/google-F4XgvJ1y.json +0 -1
  115. package/dist/ui/assets/google-generative-ai-BqEHWDKc.js +0 -1
  116. package/dist/ui/assets/google-generative-ai-DOAY2Bef.js +0 -1
  117. package/dist/ui/assets/google-shared-2WQG4pNx.js +0 -11
  118. package/dist/ui/assets/google-shared-CGD-JGZx.js +0 -371
  119. package/dist/ui/assets/google-vertex-C-dQj0iH.js +0 -1
  120. package/dist/ui/assets/google-vertex-CiTExP0E.js +0 -1
  121. package/dist/ui/assets/huggingface-BjNadu0v.json +0 -1
  122. package/dist/ui/assets/js-realm-worker-BCzouR_m.js +0 -48
  123. package/dist/ui/assets/mistral-CLEcIOtP.json +0 -1
  124. package/dist/ui/assets/mistral-conversations-BIHTMTfL.js +0 -7
  125. package/dist/ui/assets/mistral-conversations-CFKNSaPt.js +0 -8
  126. package/dist/ui/assets/moonshotai-8QShYhhE.json +0 -1
  127. package/dist/ui/assets/moonshotai-cn-7hHZff5z.json +0 -1
  128. package/dist/ui/assets/nvidia-dA6GzUPm.json +0 -1
  129. package/dist/ui/assets/oauth-bootstrap-Bf7Ewk3g.js +0 -2
  130. package/dist/ui/assets/openai-BehvdaXx.json +0 -1
  131. package/dist/ui/assets/openai-codex-je7irmYi.js +0 -1
  132. package/dist/ui/assets/openai-codex-responses-B7cFMjWk.js +0 -7
  133. package/dist/ui/assets/openai-codex-responses-DqxoDEwc.js +0 -7
  134. package/dist/ui/assets/openai-completions-Z1aRkqWe.js +0 -5
  135. package/dist/ui/assets/openai-completions-o78dOizF.js +0 -5
  136. package/dist/ui/assets/openai-responses-SPfzkTJm.js +0 -1
  137. package/dist/ui/assets/openai-responses-shared-BHsJFKuB.js +0 -10
  138. package/dist/ui/assets/openai-responses-shared-Dg5Ojqlw.js +0 -10
  139. package/dist/ui/assets/openai-responses-xSdsW9lw.js +0 -1
  140. package/dist/ui/assets/opencode-4chvZrBR.json +0 -1
  141. package/dist/ui/assets/opencode-go-Chp1OOUx.json +0 -1
  142. package/dist/ui/assets/openrouter-ZLTwKIjA.json +0 -1
  143. package/dist/ui/assets/openrouter-images-BrQDTa3_.js +0 -1
  144. package/dist/ui/assets/openrouter-images-DtvjLeGK.js +0 -1
  145. package/dist/ui/assets/openrouter.models-Bi9GV7Zn.js +0 -1
  146. package/dist/ui/assets/openrouter.models-D41M1z_D.js +0 -1
  147. package/dist/ui/assets/provider-settings-BQ_ViD6o.js +0 -2
  148. package/dist/ui/assets/provider-store-access-B_M384kS.js +0 -1
  149. package/dist/ui/assets/quick-llm-j8Lw8DXh.js +0 -1
  150. package/dist/ui/assets/qwen-token-plan-BpxmzamU.json +0 -1
  151. package/dist/ui/assets/qwen-token-plan-cn-CPhDR0u_.json +0 -1
  152. package/dist/ui/assets/together-CYZ-lBBF.json +0 -1
  153. package/dist/ui/assets/vercel-ai-gateway-ZtkcQH_C.json +0 -1
  154. package/dist/ui/assets/xai-grok-BvvyCW-L.js +0 -1
@@ -0,0 +1,11 @@
1
+ import{i as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{t as n}from"./transform-messages-wECJwtH0.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{a as i}from"./constrained-sampling-DafcjXU6.js";var a=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),o=t((e=>{var t=a();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&(n.forever||n.retries===1/0),unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*Math.max(t.minTimeout,1)*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),s=t(((e,t)=>{t.exports=o()})),c=e(t(((e,t)=>{var n=s(),r=[`Failed to fetch`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`],i=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=Error(e),this.originalError.stack=this.stack),this.name=`AbortError`,this.message=e}},a=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e},o=e=>r.includes(e),c=(e,t)=>new Promise((r,s)=>{t={onFailedAttempt:()=>{},retries:10,...t};let c=n.operation(t);c.attempt(async n=>{try{r(await e(n))}catch(e){if(!(e instanceof Error)){s(TypeError(`Non-error was thrown: "${e}". You should only throw errors.`));return}if(e instanceof i)c.stop(),s(e.originalError);else if(e instanceof TypeError&&!o(e.message))c.stop(),s(e);else{a(e,n,t);try{await t.onFailedAttempt(e)}catch(e){s(e);return}c.retry(e)||s(c.mainError())}}})});t.exports=c,t.exports.default=c,t.exports.AbortError=i}))(),1),l=void 0,u=void 0;function d(){return{geminiUrl:l,vertexUrl:u}}function f(e,t,n,r){if(!e?.baseUrl){let e=d();return t?e.vertexUrl??n:e.geminiUrl??r}return e.baseUrl}var p=class{};function m(e,t){return e.replace(/\{([^}]+)\}/g,(e,n)=>{if(Object.prototype.hasOwnProperty.call(t,n)){let e=t[n];return e==null?``:String(e)}else throw Error(`Key '${n}' not found in valueMap.`)})}function h(e,t,n){for(let r=0;r<t.length-1;r++){let i=t[r];if(i.endsWith(`[]`)){let a=i.slice(0,-2);if(!(a in e))if(Array.isArray(n))e[a]=Array.from({length:n.length},()=>({}));else throw Error(`Value must be a list given an array path ${i}`);if(Array.isArray(e[a])){let i=e[a];if(Array.isArray(n))for(let e=0;e<i.length;e++){let a=i[e];h(a,t.slice(r+1),n[e])}else for(let e of i)h(e,t.slice(r+1),n)}return}else if(i.endsWith(`[0]`)){let a=i.slice(0,-3);a in e||(e[a]=[{}]);let o=e[a];h(o[0],t.slice(r+1),n);return}(!e[i]||typeof e[i]!=`object`)&&(e[i]={}),e=e[i]}let r=t[t.length-1],i=e[r];if(i!==void 0){if(!n||typeof n==`object`&&Object.keys(n).length===0||n===i)return;if(typeof i==`object`&&typeof n==`object`&&i!==null&&n!==null)Object.assign(i,n);else throw Error(`Cannot set value for an existing key. Key: ${r}`)}else r===`_self`&&typeof n==`object`&&n&&!Array.isArray(n)?Object.assign(e,n):e[r]=n}function g(e,t,n=void 0){try{if(t.length===1&&t[0]===`_self`)return e;for(let r=0;r<t.length;r++){if(typeof e!=`object`||!e)return n;let i=t[r];if(i.endsWith(`[]`)){let a=i.slice(0,-2);if(a in e){let i=e[a];return Array.isArray(i)?i.map(e=>g(e,t.slice(r+1),n)):n}else return n}else e=e[i]}return e}catch(e){if(e instanceof TypeError)return n;throw e}}function _(e,t){for(let[n,r]of Object.entries(t)){let t=n.split(`.`),i=r.split(`.`),a=new Set,o=-1;for(let e=0;e<t.length;e++)if(t[e]===`*`){o=e;break}if(o!==-1&&i.length>o)for(let e=o;e<i.length;e++){let t=i[e];t!==`*`&&!t.endsWith(`[]`)&&!t.endsWith(`[0]`)&&a.add(t)}v(e,t,i,0,a)}}function v(e,t,n,r,i){if(r>=t.length||typeof e!=`object`||!e)return;let a=t[r];if(a.endsWith(`[]`)){let o=a.slice(0,-2),s=e;if(o in s&&Array.isArray(s[o]))for(let e of s[o])v(e,t,n,r+1,i)}else if(a===`*`){if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,a=Object.keys(t).filter(e=>!e.startsWith(`_`)&&!i.has(e)),o={};for(let e of a)o[e]=t[e];for(let[e,i]of Object.entries(o)){let a=[];for(let t of n.slice(r))t===`*`?a.push(e):a.push(t);h(t,a,i)}for(let e of a)delete t[e]}}else{let o=e;a in o&&v(o[a],t,n,r+1,i)}}function y(e){if(typeof e!=`string`)throw Error(`fromImageBytes must be a string`);return e}function b(e){let t={},n=g(e,[`operationName`]);n!=null&&h(t,[`operationName`],n);let r=g(e,[`resourceName`]);return r!=null&&h(t,[`_url`,`resourceName`],r),t}function x(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`metadata`]);r!=null&&h(t,[`metadata`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);a!=null&&h(t,[`error`],a);let o=g(e,[`response`,`generateVideoResponse`]);return o!=null&&h(t,[`response`],C(o)),t}function S(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`metadata`]);r!=null&&h(t,[`metadata`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);a!=null&&h(t,[`error`],a);let o=g(e,[`response`]);return o!=null&&h(t,[`response`],w(o)),t}function C(e){let t={},n=g(e,[`generatedSamples`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>T(e))),h(t,[`generatedVideos`],e)}let r=g(e,[`raiMediaFilteredCount`]);r!=null&&h(t,[`raiMediaFilteredCount`],r);let i=g(e,[`raiMediaFilteredReasons`]);return i!=null&&h(t,[`raiMediaFilteredReasons`],i),t}function w(e){let t={},n=g(e,[`videos`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>E(e))),h(t,[`generatedVideos`],e)}let r=g(e,[`raiMediaFilteredCount`]);r!=null&&h(t,[`raiMediaFilteredCount`],r);let i=g(e,[`raiMediaFilteredReasons`]);return i!=null&&h(t,[`raiMediaFilteredReasons`],i),t}function T(e){let t={},n=g(e,[`video`]);return n!=null&&h(t,[`video`],ee(n)),t}function E(e){let t={},n=g(e,[`_self`]);return n!=null&&h(t,[`video`],te(n)),t}function D(e){let t={},n=g(e,[`operationName`]);return n!=null&&h(t,[`_url`,`operationName`],n),t}function O(e){let t={},n=g(e,[`operationName`]);return n!=null&&h(t,[`_url`,`operationName`],n),t}function k(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`metadata`]);r!=null&&h(t,[`metadata`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);a!=null&&h(t,[`error`],a);let o=g(e,[`response`]);return o!=null&&h(t,[`response`],A(o)),t}function A(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`parent`]);r!=null&&h(t,[`parent`],r);let i=g(e,[`documentName`]);return i!=null&&h(t,[`documentName`],i),t}function j(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`metadata`]);r!=null&&h(t,[`metadata`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);a!=null&&h(t,[`error`],a);let o=g(e,[`response`]);return o!=null&&h(t,[`response`],M(o)),t}function M(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`parent`]);r!=null&&h(t,[`parent`],r);let i=g(e,[`documentName`]);return i!=null&&h(t,[`documentName`],i),t}function ee(e){let t={},n=g(e,[`uri`]);n!=null&&h(t,[`uri`],n);let r=g(e,[`encodedVideo`]);r!=null&&h(t,[`videoBytes`],y(r));let i=g(e,[`encoding`]);return i!=null&&h(t,[`mimeType`],i),t}function te(e){let t={},n=g(e,[`gcsUri`]);n!=null&&h(t,[`uri`],n);let r=g(e,[`bytesBase64Encoded`]);r!=null&&h(t,[`videoBytes`],y(r));let i=g(e,[`mimeType`]);return i!=null&&h(t,[`mimeType`],i),t}var ne;(function(e){e.LANGUAGE_UNSPECIFIED=`LANGUAGE_UNSPECIFIED`,e.PYTHON=`PYTHON`})(ne||={});var re;(function(e){e.OUTCOME_UNSPECIFIED=`OUTCOME_UNSPECIFIED`,e.OUTCOME_OK=`OUTCOME_OK`,e.OUTCOME_FAILED=`OUTCOME_FAILED`,e.OUTCOME_DEADLINE_EXCEEDED=`OUTCOME_DEADLINE_EXCEEDED`})(re||={});var ie;(function(e){e.SCHEDULING_UNSPECIFIED=`SCHEDULING_UNSPECIFIED`,e.SILENT=`SILENT`,e.WHEN_IDLE=`WHEN_IDLE`,e.INTERRUPT=`INTERRUPT`})(ie||={});var N;(function(e){e.TYPE_UNSPECIFIED=`TYPE_UNSPECIFIED`,e.STRING=`STRING`,e.NUMBER=`NUMBER`,e.INTEGER=`INTEGER`,e.BOOLEAN=`BOOLEAN`,e.ARRAY=`ARRAY`,e.OBJECT=`OBJECT`,e.NULL=`NULL`})(N||={});var ae;(function(e){e.ENVIRONMENT_UNSPECIFIED=`ENVIRONMENT_UNSPECIFIED`,e.ENVIRONMENT_BROWSER=`ENVIRONMENT_BROWSER`})(ae||={});var oe;(function(e){e.AUTH_TYPE_UNSPECIFIED=`AUTH_TYPE_UNSPECIFIED`,e.NO_AUTH=`NO_AUTH`,e.API_KEY_AUTH=`API_KEY_AUTH`,e.HTTP_BASIC_AUTH=`HTTP_BASIC_AUTH`,e.GOOGLE_SERVICE_ACCOUNT_AUTH=`GOOGLE_SERVICE_ACCOUNT_AUTH`,e.OAUTH=`OAUTH`,e.OIDC_AUTH=`OIDC_AUTH`})(oe||={});var se;(function(e){e.HTTP_IN_UNSPECIFIED=`HTTP_IN_UNSPECIFIED`,e.HTTP_IN_QUERY=`HTTP_IN_QUERY`,e.HTTP_IN_HEADER=`HTTP_IN_HEADER`,e.HTTP_IN_PATH=`HTTP_IN_PATH`,e.HTTP_IN_BODY=`HTTP_IN_BODY`,e.HTTP_IN_COOKIE=`HTTP_IN_COOKIE`})(se||={});var ce;(function(e){e.API_SPEC_UNSPECIFIED=`API_SPEC_UNSPECIFIED`,e.SIMPLE_SEARCH=`SIMPLE_SEARCH`,e.ELASTIC_SEARCH=`ELASTIC_SEARCH`})(ce||={});var le;(function(e){e.PHISH_BLOCK_THRESHOLD_UNSPECIFIED=`PHISH_BLOCK_THRESHOLD_UNSPECIFIED`,e.BLOCK_LOW_AND_ABOVE=`BLOCK_LOW_AND_ABOVE`,e.BLOCK_MEDIUM_AND_ABOVE=`BLOCK_MEDIUM_AND_ABOVE`,e.BLOCK_HIGH_AND_ABOVE=`BLOCK_HIGH_AND_ABOVE`,e.BLOCK_HIGHER_AND_ABOVE=`BLOCK_HIGHER_AND_ABOVE`,e.BLOCK_VERY_HIGH_AND_ABOVE=`BLOCK_VERY_HIGH_AND_ABOVE`,e.BLOCK_ONLY_EXTREMELY_HIGH=`BLOCK_ONLY_EXTREMELY_HIGH`})(le||={});var ue;(function(e){e.UNSPECIFIED=`UNSPECIFIED`,e.BLOCKING=`BLOCKING`,e.NON_BLOCKING=`NON_BLOCKING`})(ue||={});var de;(function(e){e.MODE_UNSPECIFIED=`MODE_UNSPECIFIED`,e.MODE_DYNAMIC=`MODE_DYNAMIC`})(de||={});var fe;(function(e){e.MODE_UNSPECIFIED=`MODE_UNSPECIFIED`,e.AUTO=`AUTO`,e.ANY=`ANY`,e.NONE=`NONE`,e.VALIDATED=`VALIDATED`})(fe||={});var pe;(function(e){e.THINKING_LEVEL_UNSPECIFIED=`THINKING_LEVEL_UNSPECIFIED`,e.MINIMAL=`MINIMAL`,e.LOW=`LOW`,e.MEDIUM=`MEDIUM`,e.HIGH=`HIGH`})(pe||={});var me;(function(e){e.DONT_ALLOW=`DONT_ALLOW`,e.ALLOW_ADULT=`ALLOW_ADULT`,e.ALLOW_ALL=`ALLOW_ALL`})(me||={});var he;(function(e){e.PROMINENT_PEOPLE_UNSPECIFIED=`PROMINENT_PEOPLE_UNSPECIFIED`,e.ALLOW_PROMINENT_PEOPLE=`ALLOW_PROMINENT_PEOPLE`,e.BLOCK_PROMINENT_PEOPLE=`BLOCK_PROMINENT_PEOPLE`})(he||={});var ge;(function(e){e.HARM_CATEGORY_UNSPECIFIED=`HARM_CATEGORY_UNSPECIFIED`,e.HARM_CATEGORY_HARASSMENT=`HARM_CATEGORY_HARASSMENT`,e.HARM_CATEGORY_HATE_SPEECH=`HARM_CATEGORY_HATE_SPEECH`,e.HARM_CATEGORY_SEXUALLY_EXPLICIT=`HARM_CATEGORY_SEXUALLY_EXPLICIT`,e.HARM_CATEGORY_DANGEROUS_CONTENT=`HARM_CATEGORY_DANGEROUS_CONTENT`,e.HARM_CATEGORY_CIVIC_INTEGRITY=`HARM_CATEGORY_CIVIC_INTEGRITY`,e.HARM_CATEGORY_IMAGE_HATE=`HARM_CATEGORY_IMAGE_HATE`,e.HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT=`HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT`,e.HARM_CATEGORY_IMAGE_HARASSMENT=`HARM_CATEGORY_IMAGE_HARASSMENT`,e.HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT=`HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT`,e.HARM_CATEGORY_JAILBREAK=`HARM_CATEGORY_JAILBREAK`})(ge||={});var _e;(function(e){e.HARM_BLOCK_METHOD_UNSPECIFIED=`HARM_BLOCK_METHOD_UNSPECIFIED`,e.SEVERITY=`SEVERITY`,e.PROBABILITY=`PROBABILITY`})(_e||={});var ve;(function(e){e.HARM_BLOCK_THRESHOLD_UNSPECIFIED=`HARM_BLOCK_THRESHOLD_UNSPECIFIED`,e.BLOCK_LOW_AND_ABOVE=`BLOCK_LOW_AND_ABOVE`,e.BLOCK_MEDIUM_AND_ABOVE=`BLOCK_MEDIUM_AND_ABOVE`,e.BLOCK_ONLY_HIGH=`BLOCK_ONLY_HIGH`,e.BLOCK_NONE=`BLOCK_NONE`,e.OFF=`OFF`})(ve||={});var P;(function(e){e.FINISH_REASON_UNSPECIFIED=`FINISH_REASON_UNSPECIFIED`,e.STOP=`STOP`,e.MAX_TOKENS=`MAX_TOKENS`,e.SAFETY=`SAFETY`,e.RECITATION=`RECITATION`,e.LANGUAGE=`LANGUAGE`,e.OTHER=`OTHER`,e.BLOCKLIST=`BLOCKLIST`,e.PROHIBITED_CONTENT=`PROHIBITED_CONTENT`,e.SPII=`SPII`,e.MALFORMED_FUNCTION_CALL=`MALFORMED_FUNCTION_CALL`,e.IMAGE_SAFETY=`IMAGE_SAFETY`,e.UNEXPECTED_TOOL_CALL=`UNEXPECTED_TOOL_CALL`,e.IMAGE_PROHIBITED_CONTENT=`IMAGE_PROHIBITED_CONTENT`,e.NO_IMAGE=`NO_IMAGE`,e.IMAGE_RECITATION=`IMAGE_RECITATION`,e.IMAGE_OTHER=`IMAGE_OTHER`})(P||={});var ye;(function(e){e.HARM_PROBABILITY_UNSPECIFIED=`HARM_PROBABILITY_UNSPECIFIED`,e.NEGLIGIBLE=`NEGLIGIBLE`,e.LOW=`LOW`,e.MEDIUM=`MEDIUM`,e.HIGH=`HIGH`})(ye||={});var be;(function(e){e.HARM_SEVERITY_UNSPECIFIED=`HARM_SEVERITY_UNSPECIFIED`,e.HARM_SEVERITY_NEGLIGIBLE=`HARM_SEVERITY_NEGLIGIBLE`,e.HARM_SEVERITY_LOW=`HARM_SEVERITY_LOW`,e.HARM_SEVERITY_MEDIUM=`HARM_SEVERITY_MEDIUM`,e.HARM_SEVERITY_HIGH=`HARM_SEVERITY_HIGH`})(be||={});var xe;(function(e){e.URL_RETRIEVAL_STATUS_UNSPECIFIED=`URL_RETRIEVAL_STATUS_UNSPECIFIED`,e.URL_RETRIEVAL_STATUS_SUCCESS=`URL_RETRIEVAL_STATUS_SUCCESS`,e.URL_RETRIEVAL_STATUS_ERROR=`URL_RETRIEVAL_STATUS_ERROR`,e.URL_RETRIEVAL_STATUS_PAYWALL=`URL_RETRIEVAL_STATUS_PAYWALL`,e.URL_RETRIEVAL_STATUS_UNSAFE=`URL_RETRIEVAL_STATUS_UNSAFE`})(xe||={});var Se;(function(e){e.BLOCKED_REASON_UNSPECIFIED=`BLOCKED_REASON_UNSPECIFIED`,e.SAFETY=`SAFETY`,e.OTHER=`OTHER`,e.BLOCKLIST=`BLOCKLIST`,e.PROHIBITED_CONTENT=`PROHIBITED_CONTENT`,e.IMAGE_SAFETY=`IMAGE_SAFETY`,e.MODEL_ARMOR=`MODEL_ARMOR`,e.JAILBREAK=`JAILBREAK`})(Se||={});var Ce;(function(e){e.TRAFFIC_TYPE_UNSPECIFIED=`TRAFFIC_TYPE_UNSPECIFIED`,e.ON_DEMAND=`ON_DEMAND`,e.ON_DEMAND_PRIORITY=`ON_DEMAND_PRIORITY`,e.ON_DEMAND_FLEX=`ON_DEMAND_FLEX`,e.PROVISIONED_THROUGHPUT=`PROVISIONED_THROUGHPUT`})(Ce||={});var we;(function(e){e.MODALITY_UNSPECIFIED=`MODALITY_UNSPECIFIED`,e.TEXT=`TEXT`,e.IMAGE=`IMAGE`,e.AUDIO=`AUDIO`,e.VIDEO=`VIDEO`})(we||={});var Te;(function(e){e.MODEL_STAGE_UNSPECIFIED=`MODEL_STAGE_UNSPECIFIED`,e.UNSTABLE_EXPERIMENTAL=`UNSTABLE_EXPERIMENTAL`,e.EXPERIMENTAL=`EXPERIMENTAL`,e.PREVIEW=`PREVIEW`,e.STABLE=`STABLE`,e.LEGACY=`LEGACY`,e.DEPRECATED=`DEPRECATED`,e.RETIRED=`RETIRED`})(Te||={});var Ee;(function(e){e.MEDIA_RESOLUTION_UNSPECIFIED=`MEDIA_RESOLUTION_UNSPECIFIED`,e.MEDIA_RESOLUTION_LOW=`MEDIA_RESOLUTION_LOW`,e.MEDIA_RESOLUTION_MEDIUM=`MEDIA_RESOLUTION_MEDIUM`,e.MEDIA_RESOLUTION_HIGH=`MEDIA_RESOLUTION_HIGH`})(Ee||={});var De;(function(e){e.TUNING_MODE_UNSPECIFIED=`TUNING_MODE_UNSPECIFIED`,e.TUNING_MODE_FULL=`TUNING_MODE_FULL`,e.TUNING_MODE_PEFT_ADAPTER=`TUNING_MODE_PEFT_ADAPTER`})(De||={});var Oe;(function(e){e.ADAPTER_SIZE_UNSPECIFIED=`ADAPTER_SIZE_UNSPECIFIED`,e.ADAPTER_SIZE_ONE=`ADAPTER_SIZE_ONE`,e.ADAPTER_SIZE_TWO=`ADAPTER_SIZE_TWO`,e.ADAPTER_SIZE_FOUR=`ADAPTER_SIZE_FOUR`,e.ADAPTER_SIZE_EIGHT=`ADAPTER_SIZE_EIGHT`,e.ADAPTER_SIZE_SIXTEEN=`ADAPTER_SIZE_SIXTEEN`,e.ADAPTER_SIZE_THIRTY_TWO=`ADAPTER_SIZE_THIRTY_TWO`})(Oe||={});var ke;(function(e){e.JOB_STATE_UNSPECIFIED=`JOB_STATE_UNSPECIFIED`,e.JOB_STATE_QUEUED=`JOB_STATE_QUEUED`,e.JOB_STATE_PENDING=`JOB_STATE_PENDING`,e.JOB_STATE_RUNNING=`JOB_STATE_RUNNING`,e.JOB_STATE_SUCCEEDED=`JOB_STATE_SUCCEEDED`,e.JOB_STATE_FAILED=`JOB_STATE_FAILED`,e.JOB_STATE_CANCELLING=`JOB_STATE_CANCELLING`,e.JOB_STATE_CANCELLED=`JOB_STATE_CANCELLED`,e.JOB_STATE_PAUSED=`JOB_STATE_PAUSED`,e.JOB_STATE_EXPIRED=`JOB_STATE_EXPIRED`,e.JOB_STATE_UPDATING=`JOB_STATE_UPDATING`,e.JOB_STATE_PARTIALLY_SUCCEEDED=`JOB_STATE_PARTIALLY_SUCCEEDED`})(ke||={});var Ae;(function(e){e.TUNING_JOB_STATE_UNSPECIFIED=`TUNING_JOB_STATE_UNSPECIFIED`,e.TUNING_JOB_STATE_WAITING_FOR_QUOTA=`TUNING_JOB_STATE_WAITING_FOR_QUOTA`,e.TUNING_JOB_STATE_PROCESSING_DATASET=`TUNING_JOB_STATE_PROCESSING_DATASET`,e.TUNING_JOB_STATE_WAITING_FOR_CAPACITY=`TUNING_JOB_STATE_WAITING_FOR_CAPACITY`,e.TUNING_JOB_STATE_TUNING=`TUNING_JOB_STATE_TUNING`,e.TUNING_JOB_STATE_POST_PROCESSING=`TUNING_JOB_STATE_POST_PROCESSING`})(Ae||={});var je;(function(e){e.AGGREGATION_METRIC_UNSPECIFIED=`AGGREGATION_METRIC_UNSPECIFIED`,e.AVERAGE=`AVERAGE`,e.MODE=`MODE`,e.STANDARD_DEVIATION=`STANDARD_DEVIATION`,e.VARIANCE=`VARIANCE`,e.MINIMUM=`MINIMUM`,e.MAXIMUM=`MAXIMUM`,e.MEDIAN=`MEDIAN`,e.PERCENTILE_P90=`PERCENTILE_P90`,e.PERCENTILE_P95=`PERCENTILE_P95`,e.PERCENTILE_P99=`PERCENTILE_P99`})(je||={});var Me;(function(e){e.PAIRWISE_CHOICE_UNSPECIFIED=`PAIRWISE_CHOICE_UNSPECIFIED`,e.BASELINE=`BASELINE`,e.CANDIDATE=`CANDIDATE`,e.TIE=`TIE`})(Me||={});var Ne;(function(e){e.TUNING_TASK_UNSPECIFIED=`TUNING_TASK_UNSPECIFIED`,e.TUNING_TASK_I2V=`TUNING_TASK_I2V`,e.TUNING_TASK_T2V=`TUNING_TASK_T2V`,e.TUNING_TASK_R2V=`TUNING_TASK_R2V`})(Ne||={});var Pe;(function(e){e.STATE_UNSPECIFIED=`STATE_UNSPECIFIED`,e.STATE_PENDING=`STATE_PENDING`,e.STATE_ACTIVE=`STATE_ACTIVE`,e.STATE_FAILED=`STATE_FAILED`})(Pe||={});var Fe;(function(e){e.MEDIA_RESOLUTION_UNSPECIFIED=`MEDIA_RESOLUTION_UNSPECIFIED`,e.MEDIA_RESOLUTION_LOW=`MEDIA_RESOLUTION_LOW`,e.MEDIA_RESOLUTION_MEDIUM=`MEDIA_RESOLUTION_MEDIUM`,e.MEDIA_RESOLUTION_HIGH=`MEDIA_RESOLUTION_HIGH`,e.MEDIA_RESOLUTION_ULTRA_HIGH=`MEDIA_RESOLUTION_ULTRA_HIGH`})(Fe||={});var Ie;(function(e){e.TOOL_TYPE_UNSPECIFIED=`TOOL_TYPE_UNSPECIFIED`,e.GOOGLE_SEARCH_WEB=`GOOGLE_SEARCH_WEB`,e.GOOGLE_SEARCH_IMAGE=`GOOGLE_SEARCH_IMAGE`,e.URL_CONTEXT=`URL_CONTEXT`,e.GOOGLE_MAPS=`GOOGLE_MAPS`,e.FILE_SEARCH=`FILE_SEARCH`})(Ie||={});var Le;(function(e){e.COLLECTION=`COLLECTION`})(Le||={});var Re;(function(e){e.UNSPECIFIED=`unspecified`,e.FLEX=`flex`,e.STANDARD=`standard`,e.PRIORITY=`priority`})(Re||={});var ze;(function(e){e.FEATURE_SELECTION_PREFERENCE_UNSPECIFIED=`FEATURE_SELECTION_PREFERENCE_UNSPECIFIED`,e.PRIORITIZE_QUALITY=`PRIORITIZE_QUALITY`,e.BALANCED=`BALANCED`,e.PRIORITIZE_COST=`PRIORITIZE_COST`})(ze||={});var Be;(function(e){e.PREDICT=`PREDICT`,e.EMBED_CONTENT=`EMBED_CONTENT`})(Be||={});var Ve;(function(e){e.BLOCK_LOW_AND_ABOVE=`BLOCK_LOW_AND_ABOVE`,e.BLOCK_MEDIUM_AND_ABOVE=`BLOCK_MEDIUM_AND_ABOVE`,e.BLOCK_ONLY_HIGH=`BLOCK_ONLY_HIGH`,e.BLOCK_NONE=`BLOCK_NONE`})(Ve||={});var He;(function(e){e.auto=`auto`,e.en=`en`,e.ja=`ja`,e.ko=`ko`,e.hi=`hi`,e.zh=`zh`,e.pt=`pt`,e.es=`es`})(He||={});var Ue;(function(e){e.MASK_MODE_DEFAULT=`MASK_MODE_DEFAULT`,e.MASK_MODE_USER_PROVIDED=`MASK_MODE_USER_PROVIDED`,e.MASK_MODE_BACKGROUND=`MASK_MODE_BACKGROUND`,e.MASK_MODE_FOREGROUND=`MASK_MODE_FOREGROUND`,e.MASK_MODE_SEMANTIC=`MASK_MODE_SEMANTIC`})(Ue||={});var We;(function(e){e.CONTROL_TYPE_DEFAULT=`CONTROL_TYPE_DEFAULT`,e.CONTROL_TYPE_CANNY=`CONTROL_TYPE_CANNY`,e.CONTROL_TYPE_SCRIBBLE=`CONTROL_TYPE_SCRIBBLE`,e.CONTROL_TYPE_FACE_MESH=`CONTROL_TYPE_FACE_MESH`})(We||={});var Ge;(function(e){e.SUBJECT_TYPE_DEFAULT=`SUBJECT_TYPE_DEFAULT`,e.SUBJECT_TYPE_PERSON=`SUBJECT_TYPE_PERSON`,e.SUBJECT_TYPE_ANIMAL=`SUBJECT_TYPE_ANIMAL`,e.SUBJECT_TYPE_PRODUCT=`SUBJECT_TYPE_PRODUCT`})(Ge||={});var Ke;(function(e){e.EDIT_MODE_DEFAULT=`EDIT_MODE_DEFAULT`,e.EDIT_MODE_INPAINT_REMOVAL=`EDIT_MODE_INPAINT_REMOVAL`,e.EDIT_MODE_INPAINT_INSERTION=`EDIT_MODE_INPAINT_INSERTION`,e.EDIT_MODE_OUTPAINT=`EDIT_MODE_OUTPAINT`,e.EDIT_MODE_CONTROLLED_EDITING=`EDIT_MODE_CONTROLLED_EDITING`,e.EDIT_MODE_STYLE=`EDIT_MODE_STYLE`,e.EDIT_MODE_BGSWAP=`EDIT_MODE_BGSWAP`,e.EDIT_MODE_PRODUCT_IMAGE=`EDIT_MODE_PRODUCT_IMAGE`})(Ke||={});var qe;(function(e){e.FOREGROUND=`FOREGROUND`,e.BACKGROUND=`BACKGROUND`,e.PROMPT=`PROMPT`,e.SEMANTIC=`SEMANTIC`,e.INTERACTIVE=`INTERACTIVE`})(qe||={});var Je;(function(e){e.ASSET=`ASSET`,e.STYLE=`STYLE`})(Je||={});var Ye;(function(e){e.INSERT=`INSERT`,e.REMOVE=`REMOVE`,e.REMOVE_STATIC=`REMOVE_STATIC`,e.OUTPAINT=`OUTPAINT`})(Ye||={});var Xe;(function(e){e.OPTIMIZED=`OPTIMIZED`,e.LOSSLESS=`LOSSLESS`})(Xe||={});var Ze;(function(e){e.CROP=`CROP`,e.PAD=`PAD`})(Ze||={});var Qe;(function(e){e.SUPERVISED_FINE_TUNING=`SUPERVISED_FINE_TUNING`,e.PREFERENCE_TUNING=`PREFERENCE_TUNING`,e.DISTILLATION=`DISTILLATION`})(Qe||={});var $e;(function(e){e.STATE_UNSPECIFIED=`STATE_UNSPECIFIED`,e.PROCESSING=`PROCESSING`,e.ACTIVE=`ACTIVE`,e.FAILED=`FAILED`})($e||={});var et;(function(e){e.SOURCE_UNSPECIFIED=`SOURCE_UNSPECIFIED`,e.UPLOADED=`UPLOADED`,e.GENERATED=`GENERATED`,e.REGISTERED=`REGISTERED`})(et||={});var tt;(function(e){e.TURN_COMPLETE_REASON_UNSPECIFIED=`TURN_COMPLETE_REASON_UNSPECIFIED`,e.MALFORMED_FUNCTION_CALL=`MALFORMED_FUNCTION_CALL`,e.RESPONSE_REJECTED=`RESPONSE_REJECTED`,e.NEED_MORE_INPUT=`NEED_MORE_INPUT`,e.PROHIBITED_INPUT_CONTENT=`PROHIBITED_INPUT_CONTENT`,e.IMAGE_PROHIBITED_INPUT_CONTENT=`IMAGE_PROHIBITED_INPUT_CONTENT`,e.INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED=`INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED`,e.INPUT_IMAGE_CELEBRITY=`INPUT_IMAGE_CELEBRITY`,e.INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED=`INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED`,e.INPUT_TEXT_NCII_PROHIBITED=`INPUT_TEXT_NCII_PROHIBITED`,e.INPUT_OTHER=`INPUT_OTHER`,e.INPUT_IP_PROHIBITED=`INPUT_IP_PROHIBITED`,e.BLOCKLIST=`BLOCKLIST`,e.UNSAFE_PROMPT_FOR_IMAGE_GENERATION=`UNSAFE_PROMPT_FOR_IMAGE_GENERATION`,e.GENERATED_IMAGE_SAFETY=`GENERATED_IMAGE_SAFETY`,e.GENERATED_CONTENT_SAFETY=`GENERATED_CONTENT_SAFETY`,e.GENERATED_AUDIO_SAFETY=`GENERATED_AUDIO_SAFETY`,e.GENERATED_VIDEO_SAFETY=`GENERATED_VIDEO_SAFETY`,e.GENERATED_CONTENT_PROHIBITED=`GENERATED_CONTENT_PROHIBITED`,e.GENERATED_CONTENT_BLOCKLIST=`GENERATED_CONTENT_BLOCKLIST`,e.GENERATED_IMAGE_PROHIBITED=`GENERATED_IMAGE_PROHIBITED`,e.GENERATED_IMAGE_CELEBRITY=`GENERATED_IMAGE_CELEBRITY`,e.GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER=`GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER`,e.GENERATED_IMAGE_IDENTIFIABLE_PEOPLE=`GENERATED_IMAGE_IDENTIFIABLE_PEOPLE`,e.GENERATED_IMAGE_MINORS=`GENERATED_IMAGE_MINORS`,e.OUTPUT_IMAGE_IP_PROHIBITED=`OUTPUT_IMAGE_IP_PROHIBITED`,e.GENERATED_OTHER=`GENERATED_OTHER`,e.MAX_REGENERATION_REACHED=`MAX_REGENERATION_REACHED`})(tt||={});var nt;(function(e){e.MODALITY_UNSPECIFIED=`MODALITY_UNSPECIFIED`,e.TEXT=`TEXT`,e.IMAGE=`IMAGE`,e.VIDEO=`VIDEO`,e.AUDIO=`AUDIO`,e.DOCUMENT=`DOCUMENT`})(nt||={});var rt;(function(e){e.VAD_SIGNAL_TYPE_UNSPECIFIED=`VAD_SIGNAL_TYPE_UNSPECIFIED`,e.VAD_SIGNAL_TYPE_SOS=`VAD_SIGNAL_TYPE_SOS`,e.VAD_SIGNAL_TYPE_EOS=`VAD_SIGNAL_TYPE_EOS`})(rt||={});var it;(function(e){e.TYPE_UNSPECIFIED=`TYPE_UNSPECIFIED`,e.ACTIVITY_START=`ACTIVITY_START`,e.ACTIVITY_END=`ACTIVITY_END`})(it||={});var at;(function(e){e.START_SENSITIVITY_UNSPECIFIED=`START_SENSITIVITY_UNSPECIFIED`,e.START_SENSITIVITY_HIGH=`START_SENSITIVITY_HIGH`,e.START_SENSITIVITY_LOW=`START_SENSITIVITY_LOW`})(at||={});var ot;(function(e){e.END_SENSITIVITY_UNSPECIFIED=`END_SENSITIVITY_UNSPECIFIED`,e.END_SENSITIVITY_HIGH=`END_SENSITIVITY_HIGH`,e.END_SENSITIVITY_LOW=`END_SENSITIVITY_LOW`})(ot||={});var st;(function(e){e.ACTIVITY_HANDLING_UNSPECIFIED=`ACTIVITY_HANDLING_UNSPECIFIED`,e.START_OF_ACTIVITY_INTERRUPTS=`START_OF_ACTIVITY_INTERRUPTS`,e.NO_INTERRUPTION=`NO_INTERRUPTION`})(st||={});var ct;(function(e){e.TURN_COVERAGE_UNSPECIFIED=`TURN_COVERAGE_UNSPECIFIED`,e.TURN_INCLUDES_ONLY_ACTIVITY=`TURN_INCLUDES_ONLY_ACTIVITY`,e.TURN_INCLUDES_ALL_INPUT=`TURN_INCLUDES_ALL_INPUT`,e.TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO=`TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO`})(ct||={});var lt;(function(e){e.SCALE_UNSPECIFIED=`SCALE_UNSPECIFIED`,e.C_MAJOR_A_MINOR=`C_MAJOR_A_MINOR`,e.D_FLAT_MAJOR_B_FLAT_MINOR=`D_FLAT_MAJOR_B_FLAT_MINOR`,e.D_MAJOR_B_MINOR=`D_MAJOR_B_MINOR`,e.E_FLAT_MAJOR_C_MINOR=`E_FLAT_MAJOR_C_MINOR`,e.E_MAJOR_D_FLAT_MINOR=`E_MAJOR_D_FLAT_MINOR`,e.F_MAJOR_D_MINOR=`F_MAJOR_D_MINOR`,e.G_FLAT_MAJOR_E_FLAT_MINOR=`G_FLAT_MAJOR_E_FLAT_MINOR`,e.G_MAJOR_E_MINOR=`G_MAJOR_E_MINOR`,e.A_FLAT_MAJOR_F_MINOR=`A_FLAT_MAJOR_F_MINOR`,e.A_MAJOR_G_FLAT_MINOR=`A_MAJOR_G_FLAT_MINOR`,e.B_FLAT_MAJOR_G_MINOR=`B_FLAT_MAJOR_G_MINOR`,e.B_MAJOR_A_FLAT_MINOR=`B_MAJOR_A_FLAT_MINOR`})(lt||={});var ut;(function(e){e.MUSIC_GENERATION_MODE_UNSPECIFIED=`MUSIC_GENERATION_MODE_UNSPECIFIED`,e.QUALITY=`QUALITY`,e.DIVERSITY=`DIVERSITY`,e.VOCALIZATION=`VOCALIZATION`})(ut||={});var dt;(function(e){e.PLAYBACK_CONTROL_UNSPECIFIED=`PLAYBACK_CONTROL_UNSPECIFIED`,e.PLAY=`PLAY`,e.PAUSE=`PAUSE`,e.STOP=`STOP`,e.RESET_CONTEXT=`RESET_CONTEXT`})(dt||={});var ft=class{constructor(e){let t={};for(let n of e.headers.entries())t[n[0]]=n[1];this.headers=t,this.responseInternal=e}json(){return this.responseInternal.json()}},pt=class{get text(){if(this.candidates?.[0]?.content?.parts?.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 e=``,t=!1,n=[];for(let r of this.candidates?.[0]?.content?.parts??[]){for(let[e,t]of Object.entries(r))e!==`text`&&e!==`thought`&&e!==`thoughtSignature`&&(t!==null||t!==void 0)&&n.push(e);if(typeof r.text==`string`){if(typeof r.thought==`boolean`&&r.thought)continue;t=!0,e+=r.text}}return n.length>0&&console.warn(`there are non-text parts ${n} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`),t?e:void 0}get data(){if(this.candidates?.[0]?.content?.parts?.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 e=``,t=[];for(let n of this.candidates?.[0]?.content?.parts??[]){for(let[e,r]of Object.entries(n))e!==`inlineData`&&(r!==null||r!==void 0)&&t.push(e);n.inlineData&&typeof n.inlineData.data==`string`&&(e+=atob(n.inlineData.data))}return t.length>0&&console.warn(`there are non-data parts ${t} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),e.length>0?btoa(e):void 0}get functionCalls(){if(this.candidates?.[0]?.content?.parts?.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.`);let e=(this.candidates?.[0]?.content?.parts)?.filter(e=>e.functionCall).map(e=>e.functionCall).filter(e=>e!==void 0);if(e?.length!==0)return e}get executableCode(){if(this.candidates?.[0]?.content?.parts?.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.`);let e=(this.candidates?.[0]?.content?.parts)?.filter(e=>e.executableCode).map(e=>e.executableCode).filter(e=>e!==void 0);if(e?.length!==0)return e?.[0]?.code}get codeExecutionResult(){if(this.candidates?.[0]?.content?.parts?.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.`);let e=(this.candidates?.[0]?.content?.parts)?.filter(e=>e.codeExecutionResult).map(e=>e.codeExecutionResult).filter(e=>e!==void 0);if(e?.length!==0)return e?.[0]?.output}},mt=class{},ht=class{},gt=class{},_t=class{},vt=class{},yt=class{},bt=class{},xt=class{},St=class{},Ct=class{},wt=class e{_fromAPIResponse({apiResponse:t,_isVertexAI:n}){let r=new e,i,a=t;return i=n?S(a):x(a),Object.assign(r,i),r}},Tt=class{},Et=class{},Dt=class{},Ot=class{},kt=class{},At=class{},jt=class{},Mt=class e{_fromAPIResponse({apiResponse:t,_isVertexAI:n}){let r=new e,i=k(t);return Object.assign(r,i),r}},Nt=class{},Pt=class{},Ft=class{},It=class{},Lt=class{},Rt=class{get text(){let e=``,t=!1,n=[];for(let r of this.serverContent?.modelTurn?.parts??[]){for(let[e,t]of Object.entries(r))e!==`text`&&e!==`thought`&&t!==null&&n.push(e);if(typeof r.text==`string`){if(typeof r.thought==`boolean`&&r.thought)continue;t=!0,e+=r.text}}return n.length>0&&console.warn(`there are non-text parts ${n} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`),t?e:void 0}get data(){let e=``,t=[];for(let n of this.serverContent?.modelTurn?.parts??[]){for(let[e,r]of Object.entries(n))e!==`inlineData`&&r!==null&&t.push(e);n.inlineData&&typeof n.inlineData.data==`string`&&(e+=atob(n.inlineData.data))}return t.length>0&&console.warn(`there are non-data parts ${t} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),e.length>0?btoa(e):void 0}},zt=class{get audioChunk(){if(this.serverContent&&this.serverContent.audioChunks&&this.serverContent.audioChunks.length>0)return this.serverContent.audioChunks[0]}},Bt=class e{_fromAPIResponse({apiResponse:t,_isVertexAI:n}){let r=new e,i=j(t);return Object.assign(r,i),r}};function F(e,t){if(!t||typeof t!=`string`)throw Error(`model is required and must be a string`);if(t.includes(`..`)||t.includes(`?`)||t.includes(`&`))throw Error(`invalid model parameter`);if(e.isVertexAI()){if(t.startsWith(`publishers/`)||t.startsWith(`projects/`)||t.startsWith(`models/`))return t;if(t.indexOf(`/`)>=0){let e=t.split(`/`,2);return`publishers/${e[0]}/models/${e[1]}`}else return`publishers/google/models/${t}`}else if(t.startsWith(`models/`)||t.startsWith(`tunedModels/`))return t;else return`models/${t}`}function Vt(e,t){let n=F(e,t);return n?n.startsWith(`publishers/`)&&e.isVertexAI()?`projects/${e.getProject()}/locations/${e.getLocation()}/${n}`:n.startsWith(`models/`)&&e.isVertexAI()?`projects/${e.getProject()}/locations/${e.getLocation()}/publishers/google/${n}`:n:``}function Ht(e){return Array.isArray(e)?e.map(e=>Ut(e)):[Ut(e)]}function Ut(e){if(typeof e==`object`&&e)return e;throw Error(`Could not parse input as Blob. Unsupported blob type: ${typeof e}`)}function Wt(e){let t=Ut(e);if(t.mimeType&&t.mimeType.startsWith(`image/`))return t;throw Error(`Unsupported mime type: ${t.mimeType}`)}function Gt(e){let t=Ut(e);if(t.mimeType&&t.mimeType.startsWith(`audio/`))return t;throw Error(`Unsupported mime type: ${t.mimeType}`)}function Kt(e){if(e==null)throw Error(`PartUnion is required`);if(typeof e==`object`)return e;if(typeof e==`string`)return{text:e};throw Error(`Unsupported part type: ${typeof e}`)}function qt(e){if(e==null||Array.isArray(e)&&e.length===0)throw Error(`PartListUnion is required`);return Array.isArray(e)?e.map(e=>Kt(e)):[Kt(e)]}function Jt(e){return typeof e==`object`&&!!e&&`parts`in e&&Array.isArray(e.parts)}function Yt(e){return typeof e==`object`&&!!e&&`functionCall`in e}function Xt(e){return typeof e==`object`&&!!e&&`functionResponse`in e}function I(e){if(e==null)throw Error(`ContentUnion is required`);return Jt(e)?e:{role:`user`,parts:qt(e)}}function Zt(e,t){if(!t)return[];if(e.isVertexAI()&&Array.isArray(t))return t.flatMap(e=>{let t=I(e);return t.parts&&t.parts.length>0&&t.parts[0].text!==void 0?[t.parts[0].text]:[]});if(e.isVertexAI()){let e=I(t);return e.parts&&e.parts.length>0&&e.parts[0].text!==void 0?[e.parts[0].text]:[]}return Array.isArray(t)?t.map(e=>I(e)):[I(t)]}function L(e){if(e==null||Array.isArray(e)&&e.length===0)throw Error(`contents are required`);if(!Array.isArray(e)){if(Yt(e)||Xt(e))throw Error(`To specify functionCall or functionResponse parts, please wrap them in a Content object, specifying the role for them`);return[I(e)]}let t=[],n=[],r=Jt(e[0]);for(let i of e){let e=Jt(i);if(e!=r)throw 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(e)t.push(i);else if(Yt(i)||Xt(i))throw Error(`To specify functionCall or functionResponse parts, please wrap them, and any other parts, in Content objects as appropriate, specifying the role for them`);else n.push(i)}return r||t.push({role:`user`,parts:qt(n)}),t}function Qt(e,t){e.includes(`null`)&&(t.nullable=!0);let n=e.filter(e=>e!==`null`);if(n.length===1)t.type=Object.values(N).includes(n[0].toUpperCase())?n[0].toUpperCase():N.TYPE_UNSPECIFIED;else{t.anyOf=[];for(let e of n)t.anyOf.push({type:Object.values(N).includes(e.toUpperCase())?e.toUpperCase():N.TYPE_UNSPECIFIED})}}function R(e){let t={},n=[`items`],r=[`anyOf`],i=[`properties`];if(e.type&&e.anyOf)throw Error(`type and anyOf cannot be both populated.`);let a=e.anyOf;a!=null&&a.length==2&&(a[0].type===`null`?(t.nullable=!0,e=a[1]):a[1].type===`null`&&(t.nullable=!0,e=a[0])),e.type instanceof Array&&Qt(e.type,t);for(let[a,o]of Object.entries(e))if(o!=null)if(a==`type`){if(o===`null`)throw Error(`type: null can not be the only possible type for the field.`);if(o instanceof Array)continue;t.type=Object.values(N).includes(o.toUpperCase())?o.toUpperCase():N.TYPE_UNSPECIFIED}else if(n.includes(a))t[a]=R(o);else if(r.includes(a)){let e=[];for(let n of o){if(n.type==`null`){t.nullable=!0;continue}e.push(R(n))}t[a]=e}else if(i.includes(a)){let e={};for(let[t,n]of Object.entries(o))e[t]=R(n);t[a]=e}else{if(a===`additionalProperties`)continue;t[a]=o}return t}function $t(e){return R(e)}function en(e){if(typeof e==`object`)return e;if(typeof e==`string`)return{voiceConfig:{prebuiltVoiceConfig:{voiceName:e}}};throw Error(`Unsupported speechConfig type: ${typeof e}`)}function tn(e){if(`multiSpeakerVoiceConfig`in e)throw Error(`multiSpeakerVoiceConfig is not supported in the live API.`);return e}function nn(e){if(e.functionDeclarations)for(let t of e.functionDeclarations)t.parameters&&(Object.keys(t.parameters).includes(`$schema`)?t.parametersJsonSchema||(t.parametersJsonSchema=t.parameters,delete t.parameters):t.parameters=R(t.parameters)),t.response&&(Object.keys(t.response).includes(`$schema`)?t.responseJsonSchema||(t.responseJsonSchema=t.response,delete t.response):t.response=R(t.response));return e}function rn(e){if(e==null)throw Error(`tools is required`);if(!Array.isArray(e))throw Error(`tools is required and must be an array of Tools`);let t=[];for(let n of e)t.push(n);return t}function an(e,t,n,r=1){let i=!t.startsWith(`${n}/`)&&t.split(`/`).length===r;return e.isVertexAI()?t.startsWith(`projects/`)?t:t.startsWith(`locations/`)?`projects/${e.getProject()}/${t}`:t.startsWith(`${n}/`)?`projects/${e.getProject()}/locations/${e.getLocation()}/${t}`:i?`projects/${e.getProject()}/locations/${e.getLocation()}/${n}/${t}`:t:i?`${n}/${t}`:t}function z(e,t){if(typeof t!=`string`)throw Error(`name must be a string`);return an(e,t,`cachedContents`)}function on(e){switch(e){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 e}}function B(e){return y(e)}function sn(e){return typeof e==`object`&&!!e&&`name`in e}function cn(e){return typeof e==`object`&&!!e&&`video`in e}function ln(e){return typeof e==`object`&&!!e&&`uri`in e}function un(e){let t;if(sn(e)&&(t=e.name),!(ln(e)&&(t=e.uri,t===void 0))&&!(cn(e)&&(t=e.video?.uri,t===void 0))){if(typeof e==`string`&&(t=e),t===void 0)throw Error(`Could not extract file name from the provided input.`);if(t.startsWith(`https://`)){let e=t.split(`files/`)[1].match(/[a-z0-9]+/);if(e===null)throw Error(`Could not extract file name from URI ${t}`);t=e[0]}else t.startsWith(`files/`)&&(t=t.split(`files/`)[1]);return t}}function dn(e,t){let n;return n=e.isVertexAI()?t?`publishers/google/models`:`models`:t?`models`:`tunedModels`,n}function fn(e){for(let t of[`models`,`tunedModels`,`publisherModels`])if(pn(e,t))return e[t];return[]}function pn(e,t){return typeof e==`object`&&!!e&&t in e}function mn(e,t={}){let n=e,r={name:n.name,description:n.description,parametersJsonSchema:n.inputSchema};return n.outputSchema&&(r.responseJsonSchema=n.outputSchema),t.behavior&&(r.behavior=t.behavior),{functionDeclarations:[r]}}function hn(e,t={}){let n=[],r=new Set;for(let i of e){let e=i.name;if(r.has(e))throw Error(`Duplicate function name ${e} found in MCP tools. Please ensure function names are unique.`);r.add(e);let a=mn(i,t);a.functionDeclarations&&n.push(...a.functionDeclarations)}return{functionDeclarations:n}}function gn(e,t){let n;if(typeof t==`string`)if(e.isVertexAI())if(t.startsWith(`gs://`))n={format:`jsonl`,gcsUri:[t]};else if(t.startsWith(`bq://`))n={format:`bigquery`,bigqueryUri:t};else if(/^projects\/[^/]+\/locations\/[^/]+\/datasets\/[^/]+$/.test(t))n={format:`vertex-dataset`,vertexDatasetName:t};else throw Error(`Unsupported string source for Vertex AI: ${t}`);else if(t.startsWith(`files/`))n={fileName:t};else throw Error(`Unsupported string source for Gemini API: ${t}`);else if(Array.isArray(t)){if(e.isVertexAI())throw Error(`InlinedRequest[] is not supported in Vertex AI.`);n={inlinedRequests:t}}else n=t;let r=[n.gcsUri,n.bigqueryUri,n.vertexDatasetName].filter(Boolean).length,i=[n.inlinedRequests,n.fileName].filter(Boolean).length;if(e.isVertexAI()){if(i>0||r!==1)throw Error("Exactly one of `gcsUri`, `bigqueryUri`, or `vertexDatasetName` must be set for Vertex AI.")}else if(r>0||i!==1)throw Error("Exactly one of `inlinedRequests`, `fileName`, must be set for Gemini API.");return n}function _n(e){if(typeof e!=`string`)return e;let t=e;if(t.startsWith(`gs://`))return{format:`jsonl`,gcsUri:t};if(t.startsWith(`bq://`))return{format:`bigquery`,bigqueryUri:t};throw Error(`Unsupported destination: ${t}`)}function vn(e){if(typeof e!=`object`||!e)return{};let t=e,n=t.inlinedResponses;if(typeof n!=`object`||!n)return e;let r=n.inlinedResponses;if(!Array.isArray(r)||r.length===0)return e;let i=!1;for(let e of r){if(typeof e!=`object`||!e)continue;let t=e.response;if(!(typeof t!=`object`||!t)&&t.embedding!==void 0){i=!0;break}}return i&&(t.inlinedEmbedContentResponses=t.inlinedResponses,delete t.inlinedResponses),e}function yn(e,t){let n=t;if(!e.isVertexAI()){if(/batches\/[^/]+$/.test(n))return n.split(`/`).pop();throw Error(`Invalid batch job name: ${n}.`)}if(/^projects\/[^/]+\/locations\/[^/]+\/batchPredictionJobs\/[^/]+$/.test(n))return n.split(`/`).pop();if(/^\d+$/.test(n))return n;throw Error(`Invalid batch job name: ${n}.`)}function bn(e){let t=e;return t===`BATCH_STATE_UNSPECIFIED`?`JOB_STATE_UNSPECIFIED`:t===`BATCH_STATE_PENDING`?`JOB_STATE_PENDING`:t===`BATCH_STATE_RUNNING`?`JOB_STATE_RUNNING`:t===`BATCH_STATE_SUCCEEDED`?`JOB_STATE_SUCCEEDED`:t===`BATCH_STATE_FAILED`?`JOB_STATE_FAILED`:t===`BATCH_STATE_CANCELLED`?`JOB_STATE_CANCELLED`:t===`BATCH_STATE_EXPIRED`?`JOB_STATE_EXPIRED`:t}function xn(e){return e.includes(`gemini`)&&e!==`gemini-embedding-001`||e.includes(`maas`)}function Sn(e){let t={},n=g(e,[`apiKey`]);if(n!=null&&h(t,[`apiKey`],n),g(e,[`apiKeyConfig`])!==void 0)throw Error(`apiKeyConfig parameter is not supported in Gemini API.`);if(g(e,[`authType`])!==void 0)throw Error(`authType parameter is not supported in Gemini API.`);if(g(e,[`googleServiceAccountConfig`])!==void 0)throw Error(`googleServiceAccountConfig parameter is not supported in Gemini API.`);if(g(e,[`httpBasicAuthConfig`])!==void 0)throw Error(`httpBasicAuthConfig parameter is not supported in Gemini API.`);if(g(e,[`oauthConfig`])!==void 0)throw Error(`oauthConfig parameter is not supported in Gemini API.`);if(g(e,[`oidcConfig`])!==void 0)throw Error(`oidcConfig parameter is not supported in Gemini API.`);return t}function Cn(e){let t={},n=g(e,[`responsesFile`]);n!=null&&h(t,[`fileName`],n);let r=g(e,[`inlinedResponses`,`inlinedResponses`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>sr(e))),h(t,[`inlinedResponses`],e)}let i=g(e,[`inlinedEmbedContentResponses`,`inlinedResponses`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`inlinedEmbedContentResponses`],e)}return t}function wn(e){let t={},n=g(e,[`predictionsFormat`]);n!=null&&h(t,[`format`],n);let r=g(e,[`gcsDestination`,`outputUriPrefix`]);r!=null&&h(t,[`gcsUri`],r);let i=g(e,[`bigqueryDestination`,`outputUri`]);i!=null&&h(t,[`bigqueryUri`],i);let a=g(e,[`vertexMultimodalDatasetDestination`]);return a!=null&&h(t,[`vertexDataset`],vr(a)),t}function Tn(e){let t={},n=g(e,[`format`]);n!=null&&h(t,[`predictionsFormat`],n);let r=g(e,[`gcsUri`]);r!=null&&h(t,[`gcsDestination`,`outputUriPrefix`],r);let i=g(e,[`bigqueryUri`]);if(i!=null&&h(t,[`bigqueryDestination`,`outputUri`],i),g(e,[`fileName`])!==void 0)throw Error(`fileName parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`inlinedResponses`])!==void 0)throw Error(`inlinedResponses parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`inlinedEmbedContentResponses`])!==void 0)throw Error(`inlinedEmbedContentResponses parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let a=g(e,[`vertexDataset`]);return a!=null&&h(t,[`vertexMultimodalDatasetDestination`],yr(a)),t}function En(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`metadata`,`displayName`]);r!=null&&h(t,[`displayName`],r);let i=g(e,[`metadata`,`state`]);i!=null&&h(t,[`state`],bn(i));let a=g(e,[`metadata`,`createTime`]);a!=null&&h(t,[`createTime`],a);let o=g(e,[`metadata`,`endTime`]);o!=null&&h(t,[`endTime`],o);let s=g(e,[`metadata`,`updateTime`]);s!=null&&h(t,[`updateTime`],s);let c=g(e,[`metadata`,`model`]);c!=null&&h(t,[`model`],c);let l=g(e,[`metadata`,`output`]);return l!=null&&h(t,[`dest`],Cn(vn(l))),t}function Dn(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`displayName`]);r!=null&&h(t,[`displayName`],r);let i=g(e,[`state`]);i!=null&&h(t,[`state`],bn(i));let a=g(e,[`error`]);a!=null&&h(t,[`error`],a);let o=g(e,[`createTime`]);o!=null&&h(t,[`createTime`],o);let s=g(e,[`startTime`]);s!=null&&h(t,[`startTime`],s);let c=g(e,[`endTime`]);c!=null&&h(t,[`endTime`],c);let l=g(e,[`updateTime`]);l!=null&&h(t,[`updateTime`],l);let u=g(e,[`model`]);u!=null&&h(t,[`model`],u);let d=g(e,[`inputConfig`]);d!=null&&h(t,[`src`],On(d));let f=g(e,[`outputConfig`]);f!=null&&h(t,[`dest`],wn(vn(f)));let p=g(e,[`completionStats`]);p!=null&&h(t,[`completionStats`],p);let m=g(e,[`outputInfo`]);return m!=null&&h(t,[`outputInfo`],m),t}function On(e){let t={},n=g(e,[`instancesFormat`]);n!=null&&h(t,[`format`],n);let r=g(e,[`gcsSource`,`uris`]);r!=null&&h(t,[`gcsUri`],r);let i=g(e,[`bigquerySource`,`inputUri`]);i!=null&&h(t,[`bigqueryUri`],i);let a=g(e,[`vertexMultimodalDatasetSource`,`datasetName`]);return a!=null&&h(t,[`vertexDatasetName`],a),t}function kn(e,t){let n={};if(g(t,[`format`])!==void 0)throw Error(`format parameter is not supported in Gemini API.`);if(g(t,[`gcsUri`])!==void 0)throw Error(`gcsUri parameter is not supported in Gemini API.`);if(g(t,[`bigqueryUri`])!==void 0)throw Error(`bigqueryUri parameter is not supported in Gemini API.`);let r=g(t,[`fileName`]);r!=null&&h(n,[`fileName`],r);let i=g(t,[`inlinedRequests`]);if(i!=null){let t=i;Array.isArray(t)&&(t=t.map(t=>or(e,t))),h(n,[`requests`,`requests`],t)}if(g(t,[`vertexDatasetName`])!==void 0)throw Error(`vertexDatasetName parameter is not supported in Gemini API.`);return n}function An(e){let t={},n=g(e,[`format`]);n!=null&&h(t,[`instancesFormat`],n);let r=g(e,[`gcsUri`]);r!=null&&h(t,[`gcsSource`,`uris`],r);let i=g(e,[`bigqueryUri`]);if(i!=null&&h(t,[`bigquerySource`,`inputUri`],i),g(e,[`fileName`])!==void 0)throw Error(`fileName parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`inlinedRequests`])!==void 0)throw Error(`inlinedRequests parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let a=g(e,[`vertexDatasetName`]);return a!=null&&h(t,[`vertexMultimodalDatasetSource`,`datasetName`],a),t}function jn(e){let t={},n=g(e,[`data`]);if(n!=null&&h(t,[`data`],n),g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function Mn(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],yn(e,r)),n}function Nn(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],yn(e,r)),n}function Pn(e){let t={},n=g(e,[`content`]);n!=null&&h(t,[`content`],n);let r=g(e,[`citationMetadata`]);r!=null&&h(t,[`citationMetadata`],Fn(r));let i=g(e,[`tokenCount`]);i!=null&&h(t,[`tokenCount`],i);let a=g(e,[`finishReason`]);a!=null&&h(t,[`finishReason`],a);let o=g(e,[`groundingMetadata`]);o!=null&&h(t,[`groundingMetadata`],o);let s=g(e,[`avgLogprobs`]);s!=null&&h(t,[`avgLogprobs`],s);let c=g(e,[`index`]);c!=null&&h(t,[`index`],c);let l=g(e,[`logprobsResult`]);l!=null&&h(t,[`logprobsResult`],l);let u=g(e,[`safetyRatings`]);if(u!=null){let e=u;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`safetyRatings`],e)}let d=g(e,[`urlContextMetadata`]);return d!=null&&h(t,[`urlContextMetadata`],d),t}function Fn(e){let t={},n=g(e,[`citationSources`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`citations`],e)}return t}function In(e){let t={},n=g(e,[`parts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>mr(e))),h(t,[`parts`],e)}let r=g(e,[`role`]);return r!=null&&h(t,[`role`],r),t}function Ln(e,t){let n={},r=g(e,[`displayName`]);if(t!==void 0&&r!=null&&h(t,[`batch`,`displayName`],r),g(e,[`dest`])!==void 0)throw Error(`dest parameter is not supported in Gemini API.`);let i=g(e,[`webhookConfig`]);return t!==void 0&&i!=null&&h(t,[`batch`,`webhookConfig`],i),n}function Rn(e,t){let n={},r=g(e,[`displayName`]);t!==void 0&&r!=null&&h(t,[`displayName`],r);let i=g(e,[`dest`]);if(t!==void 0&&i!=null&&h(t,[`outputConfig`],Tn(_n(i))),g(e,[`webhookConfig`])!==void 0)throw Error(`webhookConfig parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return n}function zn(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`_url`,`model`],F(e,r));let i=g(t,[`src`]);i!=null&&h(n,[`batch`,`inputConfig`],kn(e,gn(e,i)));let a=g(t,[`config`]);return a!=null&&Ln(a,n),n}function Bn(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`model`],F(e,r));let i=g(t,[`src`]);i!=null&&h(n,[`inputConfig`],An(gn(e,i)));let a=g(t,[`config`]);return a!=null&&Rn(a,n),n}function Vn(e,t){let n={},r=g(e,[`displayName`]);return t!==void 0&&r!=null&&h(t,[`batch`,`displayName`],r),n}function Hn(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`_url`,`model`],F(e,r));let i=g(t,[`src`]);i!=null&&h(n,[`batch`,`inputConfig`],Yn(e,i));let a=g(t,[`config`]);return a!=null&&Vn(a,n),n}function Un(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],yn(e,r)),n}function Wn(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],yn(e,r)),n}function Gn(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`name`]);r!=null&&h(t,[`name`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);return a!=null&&h(t,[`error`],a),t}function Kn(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`name`]);r!=null&&h(t,[`name`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);return a!=null&&h(t,[`error`],a),t}function qn(e,t){let n={},r=g(t,[`contents`]);if(r!=null){let t=Zt(e,r);Array.isArray(t)&&(t=t.map(e=>e)),h(n,[`requests[]`,`request`,`content`],t)}let i=g(t,[`config`]);return i!=null&&(h(n,[`_self`],Jn(i,n)),_(n,{"requests[].*":`requests[].request.*`})),n}function Jn(e,t){let n={},r=g(e,[`taskType`]);t!==void 0&&r!=null&&h(t,[`requests[]`,`taskType`],r);let i=g(e,[`title`]);t!==void 0&&i!=null&&h(t,[`requests[]`,`title`],i);let a=g(e,[`outputDimensionality`]);if(t!==void 0&&a!=null&&h(t,[`requests[]`,`outputDimensionality`],a),g(e,[`mimeType`])!==void 0)throw Error(`mimeType parameter is not supported in Gemini API.`);if(g(e,[`autoTruncate`])!==void 0)throw Error(`autoTruncate parameter is not supported in Gemini API.`);if(g(e,[`documentOcr`])!==void 0)throw Error(`documentOcr parameter is not supported in Gemini API.`);if(g(e,[`audioTrackExtraction`])!==void 0)throw Error(`audioTrackExtraction parameter is not supported in Gemini API.`);return n}function Yn(e,t){let n={},r=g(t,[`fileName`]);r!=null&&h(n,[`file_name`],r);let i=g(t,[`inlinedRequests`]);return i!=null&&h(n,[`requests`],qn(e,i)),n}function Xn(e){let t={};if(g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let n=g(e,[`fileUri`]);n!=null&&h(t,[`fileUri`],n);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function Zn(e){let t={},n=g(e,[`id`]);n!=null&&h(t,[`id`],n);let r=g(e,[`args`]);r!=null&&h(t,[`args`],r);let i=g(e,[`name`]);if(i!=null&&h(t,[`name`],i),g(e,[`partialArgs`])!==void 0)throw Error(`partialArgs parameter is not supported in Gemini API.`);if(g(e,[`willContinue`])!==void 0)throw Error(`willContinue parameter is not supported in Gemini API.`);return t}function Qn(e){let t={},n=g(e,[`allowedFunctionNames`]);n!=null&&h(t,[`allowedFunctionNames`],n);let r=g(e,[`mode`]);if(r!=null&&h(t,[`mode`],r),g(e,[`streamFunctionCallArguments`])!==void 0)throw Error(`streamFunctionCallArguments parameter is not supported in Gemini API.`);return t}function $n(e,t,n){let r={},i=g(t,[`systemInstruction`]);n!==void 0&&i!=null&&h(n,[`systemInstruction`],In(I(i)));let a=g(t,[`temperature`]);a!=null&&h(r,[`temperature`],a);let o=g(t,[`topP`]);o!=null&&h(r,[`topP`],o);let s=g(t,[`topK`]);s!=null&&h(r,[`topK`],s);let c=g(t,[`candidateCount`]);c!=null&&h(r,[`candidateCount`],c);let l=g(t,[`maxOutputTokens`]);l!=null&&h(r,[`maxOutputTokens`],l);let u=g(t,[`stopSequences`]);u!=null&&h(r,[`stopSequences`],u);let d=g(t,[`responseLogprobs`]);d!=null&&h(r,[`responseLogprobs`],d);let f=g(t,[`logprobs`]);f!=null&&h(r,[`logprobs`],f);let p=g(t,[`presencePenalty`]);p!=null&&h(r,[`presencePenalty`],p);let m=g(t,[`frequencyPenalty`]);m!=null&&h(r,[`frequencyPenalty`],m);let _=g(t,[`seed`]);_!=null&&h(r,[`seed`],_);let v=g(t,[`responseMimeType`]);v!=null&&h(r,[`responseMimeType`],v);let y=g(t,[`responseSchema`]);y!=null&&h(r,[`responseSchema`],$t(y));let b=g(t,[`responseJsonSchema`]);if(b!=null&&h(r,[`responseJsonSchema`],b),g(t,[`routingConfig`])!==void 0)throw Error(`routingConfig parameter is not supported in Gemini API.`);if(g(t,[`modelSelectionConfig`])!==void 0)throw Error(`modelSelectionConfig parameter is not supported in Gemini API.`);let x=g(t,[`safetySettings`]);if(n!==void 0&&x!=null){let e=x;Array.isArray(e)&&(e=e.map(e=>hr(e))),h(n,[`safetySettings`],e)}let S=g(t,[`tools`]);if(n!==void 0&&S!=null){let e=rn(S);Array.isArray(e)&&(e=e.map(e=>_r(nn(e)))),h(n,[`tools`],e)}let C=g(t,[`toolConfig`]);if(n!==void 0&&C!=null&&h(n,[`toolConfig`],gr(C)),g(t,[`labels`])!==void 0)throw Error(`labels parameter is not supported in Gemini API.`);let w=g(t,[`cachedContent`]);n!==void 0&&w!=null&&h(n,[`cachedContent`],z(e,w));let T=g(t,[`responseModalities`]);T!=null&&h(r,[`responseModalities`],T);let E=g(t,[`mediaResolution`]);E!=null&&h(r,[`mediaResolution`],E);let D=g(t,[`speechConfig`]);if(D!=null&&h(r,[`speechConfig`],en(D)),g(t,[`audioTimestamp`])!==void 0)throw Error(`audioTimestamp parameter is not supported in Gemini API.`);let O=g(t,[`thinkingConfig`]);O!=null&&h(r,[`thinkingConfig`],O);let k=g(t,[`imageConfig`]);k!=null&&h(r,[`imageConfig`],ar(k));let A=g(t,[`enableEnhancedCivicAnswers`]);if(A!=null&&h(r,[`enableEnhancedCivicAnswers`],A),g(t,[`modelArmorConfig`])!==void 0)throw Error(`modelArmorConfig parameter is not supported in Gemini API.`);let j=g(t,[`serviceTier`]);return n!==void 0&&j!=null&&h(n,[`serviceTier`],j),r}function er(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`candidates`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>Pn(e))),h(t,[`candidates`],e)}let i=g(e,[`modelVersion`]);i!=null&&h(t,[`modelVersion`],i);let a=g(e,[`promptFeedback`]);a!=null&&h(t,[`promptFeedback`],a);let o=g(e,[`responseId`]);o!=null&&h(t,[`responseId`],o);let s=g(e,[`usageMetadata`]);s!=null&&h(t,[`usageMetadata`],s);let c=g(e,[`modelStatus`]);return c!=null&&h(t,[`modelStatus`],c),t}function tr(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],yn(e,r)),n}function nr(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],yn(e,r)),n}function rr(e){let t={},n=g(e,[`authConfig`]);n!=null&&h(t,[`authConfig`],Sn(n));let r=g(e,[`enableWidget`]);return r!=null&&h(t,[`enableWidget`],r),t}function ir(e){let t={},n=g(e,[`searchTypes`]);if(n!=null&&h(t,[`searchTypes`],n),g(e,[`blockingConfidence`])!==void 0)throw Error(`blockingConfidence parameter is not supported in Gemini API.`);if(g(e,[`excludeDomains`])!==void 0)throw Error(`excludeDomains parameter is not supported in Gemini API.`);let r=g(e,[`timeRangeFilter`]);return r!=null&&h(t,[`timeRangeFilter`],r),t}function ar(e){let t={},n=g(e,[`aspectRatio`]);n!=null&&h(t,[`aspectRatio`],n);let r=g(e,[`imageSize`]);if(r!=null&&h(t,[`imageSize`],r),g(e,[`personGeneration`])!==void 0)throw Error(`personGeneration parameter is not supported in Gemini API.`);if(g(e,[`prominentPeople`])!==void 0)throw Error(`prominentPeople parameter is not supported in Gemini API.`);if(g(e,[`outputMimeType`])!==void 0)throw Error(`outputMimeType parameter is not supported in Gemini API.`);if(g(e,[`outputCompressionQuality`])!==void 0)throw Error(`outputCompressionQuality parameter is not supported in Gemini API.`);if(g(e,[`imageOutputOptions`])!==void 0)throw Error(`imageOutputOptions parameter is not supported in Gemini API.`);return t}function or(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`request`,`model`],F(e,r));let i=g(t,[`contents`]);if(i!=null){let e=L(i);Array.isArray(e)&&(e=e.map(e=>In(e))),h(n,[`request`,`contents`],e)}let a=g(t,[`metadata`]);a!=null&&h(n,[`metadata`],a);let o=g(t,[`config`]);return o!=null&&h(n,[`request`,`generationConfig`],$n(e,o,g(n,[`request`],{}))),n}function sr(e){let t={},n=g(e,[`response`]);n!=null&&h(t,[`response`],er(n));let r=g(e,[`metadata`]);r!=null&&h(t,[`metadata`],r);let i=g(e,[`error`]);return i!=null&&h(t,[`error`],i),t}function cr(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);if(t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i),g(e,[`filter`])!==void 0)throw Error(`filter parameter is not supported in Gemini API.`);return n}function lr(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i);let a=g(e,[`filter`]);return t!==void 0&&a!=null&&h(t,[`_query`,`filter`],a),n}function ur(e){let t={},n=g(e,[`config`]);return n!=null&&cr(n,t),t}function dr(e){let t={},n=g(e,[`config`]);return n!=null&&lr(n,t),t}function fr(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`operations`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>En(e))),h(t,[`batchJobs`],e)}return t}function pr(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`batchPredictionJobs`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>Dn(e))),h(t,[`batchJobs`],e)}return t}function mr(e){let t={},n=g(e,[`mediaResolution`]);n!=null&&h(t,[`mediaResolution`],n);let r=g(e,[`codeExecutionResult`]);r!=null&&h(t,[`codeExecutionResult`],r);let i=g(e,[`executableCode`]);i!=null&&h(t,[`executableCode`],i);let a=g(e,[`fileData`]);a!=null&&h(t,[`fileData`],Xn(a));let o=g(e,[`functionCall`]);o!=null&&h(t,[`functionCall`],Zn(o));let s=g(e,[`functionResponse`]);s!=null&&h(t,[`functionResponse`],s);let c=g(e,[`inlineData`]);c!=null&&h(t,[`inlineData`],jn(c));let l=g(e,[`text`]);l!=null&&h(t,[`text`],l);let u=g(e,[`thought`]);u!=null&&h(t,[`thought`],u);let d=g(e,[`thoughtSignature`]);d!=null&&h(t,[`thoughtSignature`],d);let f=g(e,[`videoMetadata`]);f!=null&&h(t,[`videoMetadata`],f);let p=g(e,[`toolCall`]);p!=null&&h(t,[`toolCall`],p);let m=g(e,[`toolResponse`]);m!=null&&h(t,[`toolResponse`],m);let _=g(e,[`partMetadata`]);return _!=null&&h(t,[`partMetadata`],_),t}function hr(e){let t={},n=g(e,[`category`]);if(n!=null&&h(t,[`category`],n),g(e,[`method`])!==void 0)throw Error(`method parameter is not supported in Gemini API.`);let r=g(e,[`threshold`]);return r!=null&&h(t,[`threshold`],r),t}function gr(e){let t={},n=g(e,[`retrievalConfig`]);n!=null&&h(t,[`retrievalConfig`],n);let r=g(e,[`functionCallingConfig`]);r!=null&&h(t,[`functionCallingConfig`],Qn(r));let i=g(e,[`includeServerSideToolInvocations`]);return i!=null&&h(t,[`includeServerSideToolInvocations`],i),t}function _r(e){let t={};if(g(e,[`retrieval`])!==void 0)throw Error(`retrieval parameter is not supported in Gemini API.`);let n=g(e,[`computerUse`]);n!=null&&h(t,[`computerUse`],n);let r=g(e,[`fileSearch`]);r!=null&&h(t,[`fileSearch`],r);let i=g(e,[`googleSearch`]);i!=null&&h(t,[`googleSearch`],ir(i));let a=g(e,[`googleMaps`]);a!=null&&h(t,[`googleMaps`],rr(a));let o=g(e,[`codeExecution`]);if(o!=null&&h(t,[`codeExecution`],o),g(e,[`enterpriseWebSearch`])!==void 0)throw Error(`enterpriseWebSearch parameter is not supported in Gemini API.`);let s=g(e,[`functionDeclarations`]);if(s!=null){let e=s;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`functionDeclarations`],e)}let c=g(e,[`googleSearchRetrieval`]);if(c!=null&&h(t,[`googleSearchRetrieval`],c),g(e,[`parallelAiSearch`])!==void 0)throw Error(`parallelAiSearch parameter is not supported in Gemini API.`);let l=g(e,[`urlContext`]);l!=null&&h(t,[`urlContext`],l);let u=g(e,[`mcpServers`]);if(u!=null){let e=u;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`mcpServers`],e)}return t}function vr(e){let t={},n=g(e,[`bigqueryDestination`,`outputUri`]);n!=null&&h(t,[`bigqueryDestination`],n);let r=g(e,[`displayName`]);return r!=null&&h(t,[`displayName`],r),t}function yr(e){let t={},n=g(e,[`bigqueryDestination`]);n!=null&&h(t,[`bigqueryDestination`,`outputUri`],n);let r=g(e,[`displayName`]);return r!=null&&h(t,[`displayName`],r),t}var V;(function(e){e.PAGED_ITEM_BATCH_JOBS=`batchJobs`,e.PAGED_ITEM_MODELS=`models`,e.PAGED_ITEM_TUNING_JOBS=`tuningJobs`,e.PAGED_ITEM_FILES=`files`,e.PAGED_ITEM_CACHED_CONTENTS=`cachedContents`,e.PAGED_ITEM_FILE_SEARCH_STORES=`fileSearchStores`,e.PAGED_ITEM_DOCUMENTS=`documents`})(V||={});var H=class{constructor(e,t,n,r){this.pageInternal=[],this.paramsInternal={},this.requestInternal=t,this.init(e,n,r)}init(e,t,n){this.nameInternal=e,this.pageInternal=t[this.nameInternal]||[],this.sdkHttpResponseInternal=t?.sdkHttpResponse,this.idxInternal=0;let r={config:{}};r=!n||Object.keys(n).length===0?{config:{}}:typeof n==`object`?Object.assign({},n):n,r.config&&(r.config.pageToken=t.nextPageToken),this.paramsInternal=r,this.pageInternalSize=r.config?.pageSize??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};let 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 Error(`No more pages to fetch.`);let e=await this.requestInternal(this.params);return this.initNextPage(e),this.page}hasNextPage(){return this.params.config?.pageToken!==void 0}},br=class extends p{constructor(e){super(),this.apiClient=e,this.list=async(e={})=>new H(V.PAGED_ITEM_BATCH_JOBS,e=>this.listInternal(e),await this.listInternal(e),e),this.create=async e=>(this.apiClient.isVertexAI()&&(e.config=this.formatDestination(e.src,e.config)),this.createInternal(e)),this.createEmbeddings=async e=>{if(console.warn(`batches.createEmbeddings() is experimental and may change without notice.`),this.apiClient.isVertexAI())throw Error(`Gemini Enterprise Agent Platform (previously known as Vertex AI) does not support batches.createEmbeddings.`);return this.createEmbeddingsInternal(e)}}createInlinedGenerateContentRequest(e){let t=zn(this.apiClient,e),n=t._url,r=m(`{model}:batchGenerateContent`,n),i=t.batch.inputConfig.requests,a=i.requests,o=[];for(let e of a){let t=Object.assign({},e);if(t.systemInstruction){let e=t.systemInstruction;delete t.systemInstruction;let n=t.request;n.systemInstruction=e,t.request=n}o.push(t)}return i.requests=o,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){let n=t?Object.assign({},t):{},r=Date.now().toString();if(n.displayName||=`genaiBatchJob_${r}`,n.dest===void 0){let t=this.getGcsUri(e),i=this.getBigqueryUri(e);if(t)t.endsWith(`.jsonl`)?n.dest=`${t.slice(0,-6)}/dest`:n.dest=`${t}_dest_${r}`;else if(i)n.dest=`${i}_dest_${r}`;else throw Error(`Unsupported source for Gemini Enterprise Agent Platform (previously known as Vertex AI): No GCS or BigQuery URI found.`)}return n}async createInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Bn(this.apiClient,e);return n=m(`batchPredictionJobs`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>Dn(e))}else{let i=zn(this.apiClient,e);return n=m(`{model}:batchGenerateContent`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>En(e))}}async createEmbeddingsInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=Hn(this.apiClient,e);return n=m(`{model}:asyncBatchEmbedContent`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>En(e))}}async get(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=nr(this.apiClient,e);return n=m(`batchPredictionJobs/{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>Dn(e))}else{let i=tr(this.apiClient,e);return n=m(`batches/{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>En(e))}}async cancel(e){let t=``,n={};if(this.apiClient.isVertexAI()){let r=Nn(this.apiClient,e);t=m(`batchPredictionJobs/{name}:cancel`,r._url),n=r._query,delete r._url,delete r._query,await this.apiClient.request({path:t,queryParams:n,body:JSON.stringify(r),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal})}else{let r=Mn(this.apiClient,e);t=m(`batches/{name}:cancel`,r._url),n=r._query,delete r._url,delete r._query,await this.apiClient.request({path:t,queryParams:n,body:JSON.stringify(r),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal})}}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=dr(e);return n=m(`batchPredictionJobs`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=pr(e),n=new Lt;return Object.assign(n,t),n})}else{let i=ur(e);return n=m(`batches`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=fr(e),n=new Lt;return Object.assign(n,t),n})}}async delete(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Wn(this.apiClient,e);return n=m(`batchPredictionJobs/{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>Kn(e))}else{let i=Un(this.apiClient,e);return n=m(`batches/{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>Gn(e))}}};function xr(e){let t={},n=g(e,[`apiKey`]);if(n!=null&&h(t,[`apiKey`],n),g(e,[`apiKeyConfig`])!==void 0)throw Error(`apiKeyConfig parameter is not supported in Gemini API.`);if(g(e,[`authType`])!==void 0)throw Error(`authType parameter is not supported in Gemini API.`);if(g(e,[`googleServiceAccountConfig`])!==void 0)throw Error(`googleServiceAccountConfig parameter is not supported in Gemini API.`);if(g(e,[`httpBasicAuthConfig`])!==void 0)throw Error(`httpBasicAuthConfig parameter is not supported in Gemini API.`);if(g(e,[`oauthConfig`])!==void 0)throw Error(`oauthConfig parameter is not supported in Gemini API.`);if(g(e,[`oidcConfig`])!==void 0)throw Error(`oidcConfig parameter is not supported in Gemini API.`);return t}function Sr(e){let t={},n=g(e,[`data`]);if(n!=null&&h(t,[`data`],n),g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function Cr(e){let t={},n=g(e,[`parts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>qr(e))),h(t,[`parts`],e)}let r=g(e,[`role`]);return r!=null&&h(t,[`role`],r),t}function wr(e){let t={},n=g(e,[`parts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>Jr(e))),h(t,[`parts`],e)}let r=g(e,[`role`]);return r!=null&&h(t,[`role`],r),t}function Tr(e,t){let n={},r=g(e,[`ttl`]);t!==void 0&&r!=null&&h(t,[`ttl`],r);let i=g(e,[`expireTime`]);t!==void 0&&i!=null&&h(t,[`expireTime`],i);let a=g(e,[`displayName`]);t!==void 0&&a!=null&&h(t,[`displayName`],a);let o=g(e,[`contents`]);if(t!==void 0&&o!=null){let e=L(o);Array.isArray(e)&&(e=e.map(e=>Cr(e))),h(t,[`contents`],e)}let s=g(e,[`systemInstruction`]);t!==void 0&&s!=null&&h(t,[`systemInstruction`],Cr(I(s)));let c=g(e,[`tools`]);if(t!==void 0&&c!=null){let e=c;Array.isArray(e)&&(e=e.map(e=>Zr(e))),h(t,[`tools`],e)}let l=g(e,[`toolConfig`]);if(t!==void 0&&l!=null&&h(t,[`toolConfig`],Yr(l)),g(e,[`kmsKeyName`])!==void 0)throw Error(`kmsKeyName parameter is not supported in Gemini API.`);return n}function Er(e,t){let n={},r=g(e,[`ttl`]);t!==void 0&&r!=null&&h(t,[`ttl`],r);let i=g(e,[`expireTime`]);t!==void 0&&i!=null&&h(t,[`expireTime`],i);let a=g(e,[`displayName`]);t!==void 0&&a!=null&&h(t,[`displayName`],a);let o=g(e,[`contents`]);if(t!==void 0&&o!=null){let e=L(o);Array.isArray(e)&&(e=e.map(e=>wr(e))),h(t,[`contents`],e)}let s=g(e,[`systemInstruction`]);t!==void 0&&s!=null&&h(t,[`systemInstruction`],wr(I(s)));let c=g(e,[`tools`]);if(t!==void 0&&c!=null){let e=c;Array.isArray(e)&&(e=e.map(e=>Qr(e))),h(t,[`tools`],e)}let l=g(e,[`toolConfig`]);t!==void 0&&l!=null&&h(t,[`toolConfig`],Xr(l));let u=g(e,[`kmsKeyName`]);return t!==void 0&&u!=null&&h(t,[`encryption_spec`,`kmsKeyName`],u),n}function Dr(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`model`],Vt(e,r));let i=g(t,[`config`]);return i!=null&&Tr(i,n),n}function Or(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`model`],Vt(e,r));let i=g(t,[`config`]);return i!=null&&Er(i,n),n}function kr(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],z(e,r)),n}function Ar(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],z(e,r)),n}function jr(e){let t={},n=g(e,[`sdkHttpResponse`]);return n!=null&&h(t,[`sdkHttpResponse`],n),t}function Mr(e){let t={},n=g(e,[`sdkHttpResponse`]);return n!=null&&h(t,[`sdkHttpResponse`],n),t}function Nr(e){let t={};if(g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let n=g(e,[`fileUri`]);n!=null&&h(t,[`fileUri`],n);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function Pr(e){let t={},n=g(e,[`id`]);n!=null&&h(t,[`id`],n);let r=g(e,[`args`]);r!=null&&h(t,[`args`],r);let i=g(e,[`name`]);if(i!=null&&h(t,[`name`],i),g(e,[`partialArgs`])!==void 0)throw Error(`partialArgs parameter is not supported in Gemini API.`);if(g(e,[`willContinue`])!==void 0)throw Error(`willContinue parameter is not supported in Gemini API.`);return t}function Fr(e){let t={},n=g(e,[`allowedFunctionNames`]);n!=null&&h(t,[`allowedFunctionNames`],n);let r=g(e,[`mode`]);if(r!=null&&h(t,[`mode`],r),g(e,[`streamFunctionCallArguments`])!==void 0)throw Error(`streamFunctionCallArguments parameter is not supported in Gemini API.`);return t}function Ir(e){let t={},n=g(e,[`description`]);n!=null&&h(t,[`description`],n);let r=g(e,[`name`]);r!=null&&h(t,[`name`],r);let i=g(e,[`parameters`]);i!=null&&h(t,[`parameters`],i);let a=g(e,[`parametersJsonSchema`]);a!=null&&h(t,[`parametersJsonSchema`],a);let o=g(e,[`response`]);o!=null&&h(t,[`response`],o);let s=g(e,[`responseJsonSchema`]);if(s!=null&&h(t,[`responseJsonSchema`],s),g(e,[`behavior`])!==void 0)throw Error(`behavior parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function Lr(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],z(e,r)),n}function Rr(e,t){let n={},r=g(t,[`name`]);return r!=null&&h(n,[`_url`,`name`],z(e,r)),n}function zr(e){let t={},n=g(e,[`authConfig`]);n!=null&&h(t,[`authConfig`],xr(n));let r=g(e,[`enableWidget`]);return r!=null&&h(t,[`enableWidget`],r),t}function Br(e){let t={},n=g(e,[`searchTypes`]);if(n!=null&&h(t,[`searchTypes`],n),g(e,[`blockingConfidence`])!==void 0)throw Error(`blockingConfidence parameter is not supported in Gemini API.`);if(g(e,[`excludeDomains`])!==void 0)throw Error(`excludeDomains parameter is not supported in Gemini API.`);let r=g(e,[`timeRangeFilter`]);return r!=null&&h(t,[`timeRangeFilter`],r),t}function Vr(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);return t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i),n}function Hr(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);return t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i),n}function Ur(e){let t={},n=g(e,[`config`]);return n!=null&&Vr(n,t),t}function Wr(e){let t={},n=g(e,[`config`]);return n!=null&&Hr(n,t),t}function Gr(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`cachedContents`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`cachedContents`],e)}return t}function Kr(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`cachedContents`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`cachedContents`],e)}return t}function qr(e){let t={},n=g(e,[`mediaResolution`]);n!=null&&h(t,[`mediaResolution`],n);let r=g(e,[`codeExecutionResult`]);r!=null&&h(t,[`codeExecutionResult`],r);let i=g(e,[`executableCode`]);i!=null&&h(t,[`executableCode`],i);let a=g(e,[`fileData`]);a!=null&&h(t,[`fileData`],Nr(a));let o=g(e,[`functionCall`]);o!=null&&h(t,[`functionCall`],Pr(o));let s=g(e,[`functionResponse`]);s!=null&&h(t,[`functionResponse`],s);let c=g(e,[`inlineData`]);c!=null&&h(t,[`inlineData`],Sr(c));let l=g(e,[`text`]);l!=null&&h(t,[`text`],l);let u=g(e,[`thought`]);u!=null&&h(t,[`thought`],u);let d=g(e,[`thoughtSignature`]);d!=null&&h(t,[`thoughtSignature`],d);let f=g(e,[`videoMetadata`]);f!=null&&h(t,[`videoMetadata`],f);let p=g(e,[`toolCall`]);p!=null&&h(t,[`toolCall`],p);let m=g(e,[`toolResponse`]);m!=null&&h(t,[`toolResponse`],m);let _=g(e,[`partMetadata`]);return _!=null&&h(t,[`partMetadata`],_),t}function Jr(e){let t={},n=g(e,[`mediaResolution`]);n!=null&&h(t,[`mediaResolution`],n);let r=g(e,[`codeExecutionResult`]);r!=null&&h(t,[`codeExecutionResult`],r);let i=g(e,[`executableCode`]);i!=null&&h(t,[`executableCode`],i);let a=g(e,[`fileData`]);a!=null&&h(t,[`fileData`],a);let o=g(e,[`functionCall`]);o!=null&&h(t,[`functionCall`],o);let s=g(e,[`functionResponse`]);s!=null&&h(t,[`functionResponse`],s);let c=g(e,[`inlineData`]);c!=null&&h(t,[`inlineData`],c);let l=g(e,[`text`]);l!=null&&h(t,[`text`],l);let u=g(e,[`thought`]);u!=null&&h(t,[`thought`],u);let d=g(e,[`thoughtSignature`]);d!=null&&h(t,[`thoughtSignature`],d);let f=g(e,[`videoMetadata`]);if(f!=null&&h(t,[`videoMetadata`],f),g(e,[`toolCall`])!==void 0)throw Error(`toolCall parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`toolResponse`])!==void 0)throw Error(`toolResponse parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`partMetadata`])!==void 0)throw Error(`partMetadata parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function Yr(e){let t={},n=g(e,[`retrievalConfig`]);n!=null&&h(t,[`retrievalConfig`],n);let r=g(e,[`functionCallingConfig`]);r!=null&&h(t,[`functionCallingConfig`],Fr(r));let i=g(e,[`includeServerSideToolInvocations`]);return i!=null&&h(t,[`includeServerSideToolInvocations`],i),t}function Xr(e){let t={},n=g(e,[`retrievalConfig`]);n!=null&&h(t,[`retrievalConfig`],n);let r=g(e,[`functionCallingConfig`]);if(r!=null&&h(t,[`functionCallingConfig`],r),g(e,[`includeServerSideToolInvocations`])!==void 0)throw Error(`includeServerSideToolInvocations parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function Zr(e){let t={};if(g(e,[`retrieval`])!==void 0)throw Error(`retrieval parameter is not supported in Gemini API.`);let n=g(e,[`computerUse`]);n!=null&&h(t,[`computerUse`],n);let r=g(e,[`fileSearch`]);r!=null&&h(t,[`fileSearch`],r);let i=g(e,[`googleSearch`]);i!=null&&h(t,[`googleSearch`],Br(i));let a=g(e,[`googleMaps`]);a!=null&&h(t,[`googleMaps`],zr(a));let o=g(e,[`codeExecution`]);if(o!=null&&h(t,[`codeExecution`],o),g(e,[`enterpriseWebSearch`])!==void 0)throw Error(`enterpriseWebSearch parameter is not supported in Gemini API.`);let s=g(e,[`functionDeclarations`]);if(s!=null){let e=s;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`functionDeclarations`],e)}let c=g(e,[`googleSearchRetrieval`]);if(c!=null&&h(t,[`googleSearchRetrieval`],c),g(e,[`parallelAiSearch`])!==void 0)throw Error(`parallelAiSearch parameter is not supported in Gemini API.`);let l=g(e,[`urlContext`]);l!=null&&h(t,[`urlContext`],l);let u=g(e,[`mcpServers`]);if(u!=null){let e=u;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`mcpServers`],e)}return t}function Qr(e){let t={},n=g(e,[`retrieval`]);n!=null&&h(t,[`retrieval`],n);let r=g(e,[`computerUse`]);if(r!=null&&h(t,[`computerUse`],r),g(e,[`fileSearch`])!==void 0)throw Error(`fileSearch parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let i=g(e,[`googleSearch`]);i!=null&&h(t,[`googleSearch`],i);let a=g(e,[`googleMaps`]);a!=null&&h(t,[`googleMaps`],a);let o=g(e,[`codeExecution`]);o!=null&&h(t,[`codeExecution`],o);let s=g(e,[`enterpriseWebSearch`]);s!=null&&h(t,[`enterpriseWebSearch`],s);let c=g(e,[`functionDeclarations`]);if(c!=null){let e=c;Array.isArray(e)&&(e=e.map(e=>Ir(e))),h(t,[`functionDeclarations`],e)}let l=g(e,[`googleSearchRetrieval`]);l!=null&&h(t,[`googleSearchRetrieval`],l);let u=g(e,[`parallelAiSearch`]);u!=null&&h(t,[`parallelAiSearch`],u);let d=g(e,[`urlContext`]);if(d!=null&&h(t,[`urlContext`],d),g(e,[`mcpServers`])!==void 0)throw Error(`mcpServers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function $r(e,t){let n={},r=g(e,[`ttl`]);t!==void 0&&r!=null&&h(t,[`ttl`],r);let i=g(e,[`expireTime`]);return t!==void 0&&i!=null&&h(t,[`expireTime`],i),n}function ei(e,t){let n={},r=g(e,[`ttl`]);t!==void 0&&r!=null&&h(t,[`ttl`],r);let i=g(e,[`expireTime`]);return t!==void 0&&i!=null&&h(t,[`expireTime`],i),n}function ti(e,t){let n={},r=g(t,[`name`]);r!=null&&h(n,[`_url`,`name`],z(e,r));let i=g(t,[`config`]);return i!=null&&$r(i,n),n}function ni(e,t){let n={},r=g(t,[`name`]);r!=null&&h(n,[`_url`,`name`],z(e,r));let i=g(t,[`config`]);return i!=null&&ei(i,n),n}var ri=class extends p{constructor(e){super(),this.apiClient=e,this.list=async(e={})=>new H(V.PAGED_ITEM_CACHED_CONTENTS,e=>this.listInternal(e),await this.listInternal(e),e)}async create(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Or(this.apiClient,e);return n=m(`cachedContents`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}else{let i=Dr(this.apiClient,e);return n=m(`cachedContents`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async get(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Rr(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}else{let i=Lr(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async delete(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Ar(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Mr(e),n=new Dt;return Object.assign(n,t),n})}else{let i=kr(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=jr(e),n=new Dt;return Object.assign(n,t),n})}}async update(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=ni(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`PATCH`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}else{let i=ti(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`PATCH`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Wr(e);return n=m(`cachedContents`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Kr(e),n=new Ot;return Object.assign(n,t),n})}else{let i=Ur(e);return n=m(`cachedContents`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Gr(e),n=new Ot;return Object.assign(n,t),n})}}};function U(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ii(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function W(e){return this instanceof W?(this.v=e,this):new W(e)}function G(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),s(`next`),s(`throw`),s(`return`,o),i[Symbol.asyncIterator]=function(){return this},i;function o(e){return function(t){return Promise.resolve(t).then(e,d)}}function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||c(e,t)})},t&&(i[e]=t(i[e])))}function c(e,t){try{l(r[e](t))}catch(e){f(a[0][3],e)}}function l(e){e.value instanceof W?Promise.resolve(e.value.v).then(u,d):f(a[0][2],e)}function u(e){c(`next`,e)}function d(e){c(`throw`,e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}}function K(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof ii==`function`?ii(e):e[Symbol.iterator](),n={},r(`next`),r(`throw`),r(`return`),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise(function(r,a){n=e[t](n),i(r,a,n.done,n.value)})}}function i(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}}function ai(e){if(e.candidates==null||e.candidates.length===0)return!1;let t=e.candidates[0]?.content;return t!==void 0&&oi(t)}function oi(e){if(e.parts===void 0||e.parts.length===0)return!1;for(let t of e.parts)if(t===void 0||Object.keys(t).length===0)return!1;return!0}function si(e){if(e.length!==0){for(let t of e)if(t.role!==`user`&&t.role!==`model`)throw Error(`Role must be user or model, but got ${t.role}.`)}}function ci(e){if(e===void 0||e.length===0)return[];let t=[],n=e.length,r=0;for(;r<n;)if(e[r].role===`user`)t.push(e[r]),r++;else{let i=[],a=!0;for(;r<n&&e[r].role===`model`;)i.push(e[r]),a&&!oi(e[r])&&(a=!1),r++;a?t.push(...i):t.pop()}return t}var li=class{constructor(e,t){this.modelsModule=e,this.apiClient=t}create(e){return new ui(this.apiClient,this.modelsModule,e.model,e.config,structuredClone(e.history))}},ui=class{constructor(e,t,n,r={},i=[]){this.apiClient=e,this.modelsModule=t,this.model=n,this.config=r,this.history=i,this.sendPromise=Promise.resolve(),si(i)}async sendMessage(e){await this.sendPromise;let t=I(e.message),n=this.modelsModule.generateContent({model:this.model,contents:this.getHistory(!0).concat(t),config:e.config??this.config});return this.sendPromise=(async()=>{let e=await n,r=e.candidates?.[0]?.content,i=e.automaticFunctionCallingHistory,a=this.getHistory(!0).length,o=[];i!=null&&(o=i.slice(a)??[]);let s=r?[r]:[];this.recordHistory(t,s,o)})(),await this.sendPromise.catch(()=>{this.sendPromise=Promise.resolve()}),n}async sendMessageStream(e){await this.sendPromise;let t=I(e.message),n=this.modelsModule.generateContentStream({model:this.model,contents:this.getHistory(!0).concat(t),config:e.config??this.config});this.sendPromise=n.then(()=>void 0).catch(()=>void 0);let r=await n;return this.processStreamResponse(r,t)}getHistory(e=!1){let t=e?ci(this.history):this.history;return structuredClone(t)}processStreamResponse(e,t){return G(this,arguments,function*(){var n,r,i,a;let o=[];try{for(var s=!0,c=K(e),l;l=yield W(c.next()),n=l.done,!n;s=!0){a=l.value,s=!1;let e=a;if(ai(e)){let t=e.candidates?.[0]?.content;t!==void 0&&o.push(t)}yield yield W(e)}}catch(e){r={error:e}}finally{try{!s&&!n&&(i=c.return)&&(yield W(i.call(c)))}finally{if(r)throw r.error}}this.recordHistory(t,o)})}recordHistory(e,t,n){let r=[];t.length>0&&t.every(e=>e.role!==void 0)?r=t:r.push({role:`model`,parts:[]}),n&&n.length>0?this.history.push(...ci(n)):this.history.push(e),this.history.push(...r)}},di=class e extends Error{constructor(t){super(t.message),this.name=`ApiError`,this.status=t.status,Object.setPrototypeOf(this,e.prototype)}};function fi(e){let t={},n=g(e,[`file`]);return n!=null&&h(t,[`file`],n),t}function pi(e){let t={},n=g(e,[`sdkHttpResponse`]);return n!=null&&h(t,[`sdkHttpResponse`],n),t}function mi(e){let t={},n=g(e,[`name`]);return n!=null&&h(t,[`_url`,`file`],un(n)),t}function hi(e){let t={},n=g(e,[`sdkHttpResponse`]);return n!=null&&h(t,[`sdkHttpResponse`],n),t}function gi(e){let t={},n=g(e,[`name`]);return n!=null&&h(t,[`_url`,`file`],un(n)),t}function _i(e){let t={},n=g(e,[`uris`]);return n!=null&&h(t,[`uris`],n),t}function vi(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);return t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i),n}function yi(e){let t={},n=g(e,[`config`]);return n!=null&&vi(n,t),t}function bi(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`files`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`files`],e)}return t}function xi(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`files`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`files`],e)}return t}var Si=class extends p{constructor(e){super(),this.apiClient=e,this.list=async(e={})=>new H(V.PAGED_ITEM_FILES,e=>this.listInternal(e),await this.listInternal(e),e)}async upload(e){if(this.apiClient.isVertexAI())throw Error(`Gemini Enterprise Agent Platform (previously known as Vertex AI) does not support uploading files. You can share files through a GCS bucket.`);return this.apiClient.uploadFile(e.file,e.config).then(e=>e)}async download(e){await this.apiClient.downloadFile(e)}async registerFiles(e){throw Error(`registerFiles is only supported in Node.js environments.`)}async _registerFiles(e){return this.registerFilesInternal(e)}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=yi(e);return n=m(`files`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=bi(e),n=new Nt;return Object.assign(n,t),n})}}async createInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=fi(e);return n=m(`upload/v1beta/files`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=pi(e),n=new Pt;return Object.assign(n,t),n})}}async get(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=gi(e);return n=m(`files/{file}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async delete(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=mi(e);return n=m(`files/{file}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=hi(e),n=new Ft;return Object.assign(n,t),n})}}async registerFilesInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=_i(e);return n=m(`files:register`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=xi(e),n=new It;return Object.assign(n,t),n})}}};function Ci(e){let t={};if(g(e,[`languageCodes`])!==void 0)throw Error(`languageCodes parameter is not supported in Gemini API.`);return t}function wi(e){let t={},n=g(e,[`apiKey`]);if(n!=null&&h(t,[`apiKey`],n),g(e,[`apiKeyConfig`])!==void 0)throw Error(`apiKeyConfig parameter is not supported in Gemini API.`);if(g(e,[`authType`])!==void 0)throw Error(`authType parameter is not supported in Gemini API.`);if(g(e,[`googleServiceAccountConfig`])!==void 0)throw Error(`googleServiceAccountConfig parameter is not supported in Gemini API.`);if(g(e,[`httpBasicAuthConfig`])!==void 0)throw Error(`httpBasicAuthConfig parameter is not supported in Gemini API.`);if(g(e,[`oauthConfig`])!==void 0)throw Error(`oauthConfig parameter is not supported in Gemini API.`);if(g(e,[`oidcConfig`])!==void 0)throw Error(`oidcConfig parameter is not supported in Gemini API.`);return t}function Ti(e){let t={},n=g(e,[`data`]);if(n!=null&&h(t,[`data`],n),g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function Ei(e){let t={},n=g(e,[`parts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>Ui(e))),h(t,[`parts`],e)}let r=g(e,[`role`]);return r!=null&&h(t,[`role`],r),t}function Di(e){let t={},n=g(e,[`parts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>Wi(e))),h(t,[`parts`],e)}let r=g(e,[`role`]);return r!=null&&h(t,[`role`],r),t}function Oi(e){let t={};if(g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let n=g(e,[`fileUri`]);n!=null&&h(t,[`fileUri`],n);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function ki(e){let t={},n=g(e,[`id`]);n!=null&&h(t,[`id`],n);let r=g(e,[`args`]);r!=null&&h(t,[`args`],r);let i=g(e,[`name`]);if(i!=null&&h(t,[`name`],i),g(e,[`partialArgs`])!==void 0)throw Error(`partialArgs parameter is not supported in Gemini API.`);if(g(e,[`willContinue`])!==void 0)throw Error(`willContinue parameter is not supported in Gemini API.`);return t}function Ai(e){let t={},n=g(e,[`description`]);n!=null&&h(t,[`description`],n);let r=g(e,[`name`]);r!=null&&h(t,[`name`],r);let i=g(e,[`parameters`]);i!=null&&h(t,[`parameters`],i);let a=g(e,[`parametersJsonSchema`]);a!=null&&h(t,[`parametersJsonSchema`],a);let o=g(e,[`response`]);o!=null&&h(t,[`response`],o);let s=g(e,[`responseJsonSchema`]);if(s!=null&&h(t,[`responseJsonSchema`],s),g(e,[`behavior`])!==void 0)throw Error(`behavior parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function ji(e){let t={},n=g(e,[`modelSelectionConfig`]);n!=null&&h(t,[`modelConfig`],n);let r=g(e,[`responseJsonSchema`]);r!=null&&h(t,[`responseJsonSchema`],r);let i=g(e,[`audioTimestamp`]);i!=null&&h(t,[`audioTimestamp`],i);let a=g(e,[`candidateCount`]);a!=null&&h(t,[`candidateCount`],a);let o=g(e,[`enableAffectiveDialog`]);o!=null&&h(t,[`enableAffectiveDialog`],o);let s=g(e,[`frequencyPenalty`]);s!=null&&h(t,[`frequencyPenalty`],s);let c=g(e,[`logprobs`]);c!=null&&h(t,[`logprobs`],c);let l=g(e,[`maxOutputTokens`]);l!=null&&h(t,[`maxOutputTokens`],l);let u=g(e,[`mediaResolution`]);u!=null&&h(t,[`mediaResolution`],u);let d=g(e,[`presencePenalty`]);d!=null&&h(t,[`presencePenalty`],d);let f=g(e,[`responseLogprobs`]);f!=null&&h(t,[`responseLogprobs`],f);let p=g(e,[`responseMimeType`]);p!=null&&h(t,[`responseMimeType`],p);let m=g(e,[`responseModalities`]);m!=null&&h(t,[`responseModalities`],m);let _=g(e,[`responseSchema`]);_!=null&&h(t,[`responseSchema`],_);let v=g(e,[`routingConfig`]);v!=null&&h(t,[`routingConfig`],v);let y=g(e,[`seed`]);y!=null&&h(t,[`seed`],y);let b=g(e,[`speechConfig`]);b!=null&&h(t,[`speechConfig`],b);let x=g(e,[`stopSequences`]);x!=null&&h(t,[`stopSequences`],x);let S=g(e,[`temperature`]);S!=null&&h(t,[`temperature`],S);let C=g(e,[`thinkingConfig`]);C!=null&&h(t,[`thinkingConfig`],C);let w=g(e,[`topK`]);w!=null&&h(t,[`topK`],w);let T=g(e,[`topP`]);if(T!=null&&h(t,[`topP`],T),g(e,[`enableEnhancedCivicAnswers`])!==void 0)throw Error(`enableEnhancedCivicAnswers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function Mi(e){let t={},n=g(e,[`authConfig`]);n!=null&&h(t,[`authConfig`],wi(n));let r=g(e,[`enableWidget`]);return r!=null&&h(t,[`enableWidget`],r),t}function Ni(e){let t={},n=g(e,[`searchTypes`]);if(n!=null&&h(t,[`searchTypes`],n),g(e,[`blockingConfidence`])!==void 0)throw Error(`blockingConfidence parameter is not supported in Gemini API.`);if(g(e,[`excludeDomains`])!==void 0)throw Error(`excludeDomains parameter is not supported in Gemini API.`);let r=g(e,[`timeRangeFilter`]);return r!=null&&h(t,[`timeRangeFilter`],r),t}function Pi(e,t){let n={},r=g(e,[`generationConfig`]);t!==void 0&&r!=null&&h(t,[`setup`,`generationConfig`],r);let i=g(e,[`responseModalities`]);t!==void 0&&i!=null&&h(t,[`setup`,`generationConfig`,`responseModalities`],i);let a=g(e,[`temperature`]);t!==void 0&&a!=null&&h(t,[`setup`,`generationConfig`,`temperature`],a);let o=g(e,[`topP`]);t!==void 0&&o!=null&&h(t,[`setup`,`generationConfig`,`topP`],o);let s=g(e,[`topK`]);t!==void 0&&s!=null&&h(t,[`setup`,`generationConfig`,`topK`],s);let c=g(e,[`maxOutputTokens`]);t!==void 0&&c!=null&&h(t,[`setup`,`generationConfig`,`maxOutputTokens`],c);let l=g(e,[`mediaResolution`]);t!==void 0&&l!=null&&h(t,[`setup`,`generationConfig`,`mediaResolution`],l);let u=g(e,[`seed`]);t!==void 0&&u!=null&&h(t,[`setup`,`generationConfig`,`seed`],u);let d=g(e,[`speechConfig`]);t!==void 0&&d!=null&&h(t,[`setup`,`generationConfig`,`speechConfig`],tn(d));let f=g(e,[`thinkingConfig`]);t!==void 0&&f!=null&&h(t,[`setup`,`generationConfig`,`thinkingConfig`],f);let p=g(e,[`enableAffectiveDialog`]);t!==void 0&&p!=null&&h(t,[`setup`,`generationConfig`,`enableAffectiveDialog`],p);let m=g(e,[`systemInstruction`]);t!==void 0&&m!=null&&h(t,[`setup`,`systemInstruction`],Ei(I(m)));let _=g(e,[`tools`]);if(t!==void 0&&_!=null){let e=rn(_);Array.isArray(e)&&(e=e.map(e=>qi(nn(e)))),h(t,[`setup`,`tools`],e)}let v=g(e,[`sessionResumption`]);t!==void 0&&v!=null&&h(t,[`setup`,`sessionResumption`],Ki(v));let y=g(e,[`inputAudioTranscription`]);t!==void 0&&y!=null&&h(t,[`setup`,`inputAudioTranscription`],Ci(y));let b=g(e,[`outputAudioTranscription`]);t!==void 0&&b!=null&&h(t,[`setup`,`outputAudioTranscription`],Ci(b));let x=g(e,[`realtimeInputConfig`]);t!==void 0&&x!=null&&h(t,[`setup`,`realtimeInputConfig`],x);let S=g(e,[`contextWindowCompression`]);t!==void 0&&S!=null&&h(t,[`setup`,`contextWindowCompression`],S);let C=g(e,[`proactivity`]);if(t!==void 0&&C!=null&&h(t,[`setup`,`proactivity`],C),g(e,[`explicitVadSignal`])!==void 0)throw Error(`explicitVadSignal parameter is not supported in Gemini API.`);let w=g(e,[`avatarConfig`]);t!==void 0&&w!=null&&h(t,[`setup`,`avatarConfig`],w);let T=g(e,[`safetySettings`]);if(t!==void 0&&T!=null){let e=T;Array.isArray(e)&&(e=e.map(e=>Gi(e))),h(t,[`setup`,`safetySettings`],e)}return n}function Fi(e,t){let n={},r=g(e,[`generationConfig`]);t!==void 0&&r!=null&&h(t,[`setup`,`generationConfig`],ji(r));let i=g(e,[`responseModalities`]);t!==void 0&&i!=null&&h(t,[`setup`,`generationConfig`,`responseModalities`],i);let a=g(e,[`temperature`]);t!==void 0&&a!=null&&h(t,[`setup`,`generationConfig`,`temperature`],a);let o=g(e,[`topP`]);t!==void 0&&o!=null&&h(t,[`setup`,`generationConfig`,`topP`],o);let s=g(e,[`topK`]);t!==void 0&&s!=null&&h(t,[`setup`,`generationConfig`,`topK`],s);let c=g(e,[`maxOutputTokens`]);t!==void 0&&c!=null&&h(t,[`setup`,`generationConfig`,`maxOutputTokens`],c);let l=g(e,[`mediaResolution`]);t!==void 0&&l!=null&&h(t,[`setup`,`generationConfig`,`mediaResolution`],l);let u=g(e,[`seed`]);t!==void 0&&u!=null&&h(t,[`setup`,`generationConfig`,`seed`],u);let d=g(e,[`speechConfig`]);t!==void 0&&d!=null&&h(t,[`setup`,`generationConfig`,`speechConfig`],tn(d));let f=g(e,[`thinkingConfig`]);t!==void 0&&f!=null&&h(t,[`setup`,`generationConfig`,`thinkingConfig`],f);let p=g(e,[`enableAffectiveDialog`]);t!==void 0&&p!=null&&h(t,[`setup`,`generationConfig`,`enableAffectiveDialog`],p);let m=g(e,[`systemInstruction`]);t!==void 0&&m!=null&&h(t,[`setup`,`systemInstruction`],Di(I(m)));let _=g(e,[`tools`]);if(t!==void 0&&_!=null){let e=rn(_);Array.isArray(e)&&(e=e.map(e=>Ji(nn(e)))),h(t,[`setup`,`tools`],e)}let v=g(e,[`sessionResumption`]);t!==void 0&&v!=null&&h(t,[`setup`,`sessionResumption`],v);let y=g(e,[`inputAudioTranscription`]);t!==void 0&&y!=null&&h(t,[`setup`,`inputAudioTranscription`],y);let b=g(e,[`outputAudioTranscription`]);t!==void 0&&b!=null&&h(t,[`setup`,`outputAudioTranscription`],b);let x=g(e,[`realtimeInputConfig`]);t!==void 0&&x!=null&&h(t,[`setup`,`realtimeInputConfig`],x);let S=g(e,[`contextWindowCompression`]);t!==void 0&&S!=null&&h(t,[`setup`,`contextWindowCompression`],S);let C=g(e,[`proactivity`]);t!==void 0&&C!=null&&h(t,[`setup`,`proactivity`],C);let w=g(e,[`explicitVadSignal`]);t!==void 0&&w!=null&&h(t,[`setup`,`explicitVadSignal`],w);let T=g(e,[`avatarConfig`]);t!==void 0&&T!=null&&h(t,[`setup`,`avatarConfig`],T);let E=g(e,[`safetySettings`]);if(t!==void 0&&E!=null){let e=E;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`setup`,`safetySettings`],e)}return n}function Ii(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`setup`,`model`],F(e,r));let i=g(t,[`config`]);return i!=null&&h(n,[`config`],Pi(i,n)),n}function Li(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`setup`,`model`],F(e,r));let i=g(t,[`config`]);return i!=null&&h(n,[`config`],Fi(i,n)),n}function Ri(e){let t={},n=g(e,[`musicGenerationConfig`]);return n!=null&&h(t,[`musicGenerationConfig`],n),t}function zi(e){let t={},n=g(e,[`weightedPrompts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`weightedPrompts`],e)}return t}function Bi(e){let t={},n=g(e,[`media`]);if(n!=null){let e=Ht(n);Array.isArray(e)&&(e=e.map(e=>Ti(e))),h(t,[`mediaChunks`],e)}let r=g(e,[`audio`]);r!=null&&h(t,[`audio`],Ti(Gt(r)));let i=g(e,[`audioStreamEnd`]);i!=null&&h(t,[`audioStreamEnd`],i);let a=g(e,[`video`]);a!=null&&h(t,[`video`],Ti(Wt(a)));let o=g(e,[`text`]);o!=null&&h(t,[`text`],o);let s=g(e,[`activityStart`]);s!=null&&h(t,[`activityStart`],s);let c=g(e,[`activityEnd`]);return c!=null&&h(t,[`activityEnd`],c),t}function Vi(e){let t={},n=g(e,[`media`]);if(n!=null){let e=Ht(n);Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`mediaChunks`],e)}let r=g(e,[`audio`]);r!=null&&h(t,[`audio`],Gt(r));let i=g(e,[`audioStreamEnd`]);i!=null&&h(t,[`audioStreamEnd`],i);let a=g(e,[`video`]);a!=null&&h(t,[`video`],Wt(a));let o=g(e,[`text`]);o!=null&&h(t,[`text`],o);let s=g(e,[`activityStart`]);s!=null&&h(t,[`activityStart`],s);let c=g(e,[`activityEnd`]);return c!=null&&h(t,[`activityEnd`],c),t}function Hi(e){let t={},n=g(e,[`setupComplete`]);n!=null&&h(t,[`setupComplete`],n);let r=g(e,[`serverContent`]);r!=null&&h(t,[`serverContent`],r);let i=g(e,[`toolCall`]);i!=null&&h(t,[`toolCall`],i);let a=g(e,[`toolCallCancellation`]);a!=null&&h(t,[`toolCallCancellation`],a);let o=g(e,[`usageMetadata`]);o!=null&&h(t,[`usageMetadata`],Yi(o));let s=g(e,[`goAway`]);s!=null&&h(t,[`goAway`],s);let c=g(e,[`sessionResumptionUpdate`]);c!=null&&h(t,[`sessionResumptionUpdate`],c);let l=g(e,[`voiceActivityDetectionSignal`]);l!=null&&h(t,[`voiceActivityDetectionSignal`],l);let u=g(e,[`voiceActivity`]);return u!=null&&h(t,[`voiceActivity`],Xi(u)),t}function Ui(e){let t={},n=g(e,[`mediaResolution`]);n!=null&&h(t,[`mediaResolution`],n);let r=g(e,[`codeExecutionResult`]);r!=null&&h(t,[`codeExecutionResult`],r);let i=g(e,[`executableCode`]);i!=null&&h(t,[`executableCode`],i);let a=g(e,[`fileData`]);a!=null&&h(t,[`fileData`],Oi(a));let o=g(e,[`functionCall`]);o!=null&&h(t,[`functionCall`],ki(o));let s=g(e,[`functionResponse`]);s!=null&&h(t,[`functionResponse`],s);let c=g(e,[`inlineData`]);c!=null&&h(t,[`inlineData`],Ti(c));let l=g(e,[`text`]);l!=null&&h(t,[`text`],l);let u=g(e,[`thought`]);u!=null&&h(t,[`thought`],u);let d=g(e,[`thoughtSignature`]);d!=null&&h(t,[`thoughtSignature`],d);let f=g(e,[`videoMetadata`]);f!=null&&h(t,[`videoMetadata`],f);let p=g(e,[`toolCall`]);p!=null&&h(t,[`toolCall`],p);let m=g(e,[`toolResponse`]);m!=null&&h(t,[`toolResponse`],m);let _=g(e,[`partMetadata`]);return _!=null&&h(t,[`partMetadata`],_),t}function Wi(e){let t={},n=g(e,[`mediaResolution`]);n!=null&&h(t,[`mediaResolution`],n);let r=g(e,[`codeExecutionResult`]);r!=null&&h(t,[`codeExecutionResult`],r);let i=g(e,[`executableCode`]);i!=null&&h(t,[`executableCode`],i);let a=g(e,[`fileData`]);a!=null&&h(t,[`fileData`],a);let o=g(e,[`functionCall`]);o!=null&&h(t,[`functionCall`],o);let s=g(e,[`functionResponse`]);s!=null&&h(t,[`functionResponse`],s);let c=g(e,[`inlineData`]);c!=null&&h(t,[`inlineData`],c);let l=g(e,[`text`]);l!=null&&h(t,[`text`],l);let u=g(e,[`thought`]);u!=null&&h(t,[`thought`],u);let d=g(e,[`thoughtSignature`]);d!=null&&h(t,[`thoughtSignature`],d);let f=g(e,[`videoMetadata`]);if(f!=null&&h(t,[`videoMetadata`],f),g(e,[`toolCall`])!==void 0)throw Error(`toolCall parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`toolResponse`])!==void 0)throw Error(`toolResponse parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`partMetadata`])!==void 0)throw Error(`partMetadata parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function Gi(e){let t={},n=g(e,[`category`]);if(n!=null&&h(t,[`category`],n),g(e,[`method`])!==void 0)throw Error(`method parameter is not supported in Gemini API.`);let r=g(e,[`threshold`]);return r!=null&&h(t,[`threshold`],r),t}function Ki(e){let t={},n=g(e,[`handle`]);if(n!=null&&h(t,[`handle`],n),g(e,[`transparent`])!==void 0)throw Error(`transparent parameter is not supported in Gemini API.`);return t}function qi(e){let t={};if(g(e,[`retrieval`])!==void 0)throw Error(`retrieval parameter is not supported in Gemini API.`);let n=g(e,[`computerUse`]);n!=null&&h(t,[`computerUse`],n);let r=g(e,[`fileSearch`]);r!=null&&h(t,[`fileSearch`],r);let i=g(e,[`googleSearch`]);i!=null&&h(t,[`googleSearch`],Ni(i));let a=g(e,[`googleMaps`]);a!=null&&h(t,[`googleMaps`],Mi(a));let o=g(e,[`codeExecution`]);if(o!=null&&h(t,[`codeExecution`],o),g(e,[`enterpriseWebSearch`])!==void 0)throw Error(`enterpriseWebSearch parameter is not supported in Gemini API.`);let s=g(e,[`functionDeclarations`]);if(s!=null){let e=s;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`functionDeclarations`],e)}let c=g(e,[`googleSearchRetrieval`]);if(c!=null&&h(t,[`googleSearchRetrieval`],c),g(e,[`parallelAiSearch`])!==void 0)throw Error(`parallelAiSearch parameter is not supported in Gemini API.`);let l=g(e,[`urlContext`]);l!=null&&h(t,[`urlContext`],l);let u=g(e,[`mcpServers`]);if(u!=null){let e=u;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`mcpServers`],e)}return t}function Ji(e){let t={},n=g(e,[`retrieval`]);n!=null&&h(t,[`retrieval`],n);let r=g(e,[`computerUse`]);if(r!=null&&h(t,[`computerUse`],r),g(e,[`fileSearch`])!==void 0)throw Error(`fileSearch parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let i=g(e,[`googleSearch`]);i!=null&&h(t,[`googleSearch`],i);let a=g(e,[`googleMaps`]);a!=null&&h(t,[`googleMaps`],a);let o=g(e,[`codeExecution`]);o!=null&&h(t,[`codeExecution`],o);let s=g(e,[`enterpriseWebSearch`]);s!=null&&h(t,[`enterpriseWebSearch`],s);let c=g(e,[`functionDeclarations`]);if(c!=null){let e=c;Array.isArray(e)&&(e=e.map(e=>Ai(e))),h(t,[`functionDeclarations`],e)}let l=g(e,[`googleSearchRetrieval`]);l!=null&&h(t,[`googleSearchRetrieval`],l);let u=g(e,[`parallelAiSearch`]);u!=null&&h(t,[`parallelAiSearch`],u);let d=g(e,[`urlContext`]);if(d!=null&&h(t,[`urlContext`],d),g(e,[`mcpServers`])!==void 0)throw Error(`mcpServers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return t}function Yi(e){let t={},n=g(e,[`promptTokenCount`]);n!=null&&h(t,[`promptTokenCount`],n);let r=g(e,[`cachedContentTokenCount`]);r!=null&&h(t,[`cachedContentTokenCount`],r);let i=g(e,[`candidatesTokenCount`]);i!=null&&h(t,[`responseTokenCount`],i);let a=g(e,[`toolUsePromptTokenCount`]);a!=null&&h(t,[`toolUsePromptTokenCount`],a);let o=g(e,[`thoughtsTokenCount`]);o!=null&&h(t,[`thoughtsTokenCount`],o);let s=g(e,[`totalTokenCount`]);s!=null&&h(t,[`totalTokenCount`],s);let c=g(e,[`promptTokensDetails`]);if(c!=null){let e=c;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`promptTokensDetails`],e)}let l=g(e,[`cacheTokensDetails`]);if(l!=null){let e=l;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`cacheTokensDetails`],e)}let u=g(e,[`candidatesTokensDetails`]);if(u!=null){let e=u;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`responseTokensDetails`],e)}let d=g(e,[`toolUsePromptTokensDetails`]);if(d!=null){let e=d;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`toolUsePromptTokensDetails`],e)}let f=g(e,[`trafficType`]);return f!=null&&h(t,[`trafficType`],f),t}function Xi(e){let t={},n=g(e,[`type`]);return n!=null&&h(t,[`voiceActivityType`],n),t}function Zi(e,t){let n={},r=g(e,[`apiKey`]);if(r!=null&&h(n,[`apiKey`],r),g(e,[`apiKeyConfig`])!==void 0)throw Error(`apiKeyConfig parameter is not supported in Gemini API.`);if(g(e,[`authType`])!==void 0)throw Error(`authType parameter is not supported in Gemini API.`);if(g(e,[`googleServiceAccountConfig`])!==void 0)throw Error(`googleServiceAccountConfig parameter is not supported in Gemini API.`);if(g(e,[`httpBasicAuthConfig`])!==void 0)throw Error(`httpBasicAuthConfig parameter is not supported in Gemini API.`);if(g(e,[`oauthConfig`])!==void 0)throw Error(`oauthConfig parameter is not supported in Gemini API.`);if(g(e,[`oidcConfig`])!==void 0)throw Error(`oidcConfig parameter is not supported in Gemini API.`);return n}function Qi(e,t){let n={},r=g(e,[`data`]);if(r!=null&&h(n,[`data`],r),g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let i=g(e,[`mimeType`]);return i!=null&&h(n,[`mimeType`],i),n}function $i(e,t){let n={},r=g(e,[`content`]);r!=null&&h(n,[`content`],r);let i=g(e,[`citationMetadata`]);i!=null&&h(n,[`citationMetadata`],ea(i));let a=g(e,[`tokenCount`]);a!=null&&h(n,[`tokenCount`],a);let o=g(e,[`finishReason`]);o!=null&&h(n,[`finishReason`],o);let s=g(e,[`groundingMetadata`]);s!=null&&h(n,[`groundingMetadata`],s);let c=g(e,[`avgLogprobs`]);c!=null&&h(n,[`avgLogprobs`],c);let l=g(e,[`index`]);l!=null&&h(n,[`index`],l);let u=g(e,[`logprobsResult`]);u!=null&&h(n,[`logprobsResult`],u);let d=g(e,[`safetyRatings`]);if(d!=null){let e=d;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`safetyRatings`],e)}let f=g(e,[`urlContextMetadata`]);return f!=null&&h(n,[`urlContextMetadata`],f),n}function ea(e,t){let n={},r=g(e,[`citationSources`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`citations`],e)}return n}function ta(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`contents`]);if(a!=null){let e=L(a);Array.isArray(e)&&(e=e.map(e=>oa(e))),h(r,[`contents`],e)}return r}function na(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`tokensInfo`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`tokensInfo`],e)}return n}function ra(e,t){let n={},r=g(e,[`values`]);r!=null&&h(n,[`values`],r);let i=g(e,[`statistics`]);return i!=null&&h(n,[`statistics`],ia(i)),n}function ia(e,t){let n={},r=g(e,[`truncated`]);r!=null&&h(n,[`truncated`],r);let i=g(e,[`token_count`]);return i!=null&&h(n,[`tokenCount`],i),n}function aa(e,t){let n={},r=g(e,[`parts`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>To(e))),h(n,[`parts`],e)}let i=g(e,[`role`]);return i!=null&&h(n,[`role`],i),n}function oa(e,t){let n={},r=g(e,[`parts`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>Eo(e))),h(n,[`parts`],e)}let i=g(e,[`role`]);return i!=null&&h(n,[`role`],i),n}function sa(e,t){let n={},r=g(e,[`controlType`]);r!=null&&h(n,[`controlType`],r);let i=g(e,[`enableControlImageComputation`]);return i!=null&&h(n,[`computeControl`],i),n}function ca(e,t){let n={};if(g(e,[`systemInstruction`])!==void 0)throw Error(`systemInstruction parameter is not supported in Gemini API.`);if(g(e,[`tools`])!==void 0)throw Error(`tools parameter is not supported in Gemini API.`);if(g(e,[`generationConfig`])!==void 0)throw Error(`generationConfig parameter is not supported in Gemini API.`);return n}function la(e,t,n){let r={},i=g(e,[`systemInstruction`]);t!==void 0&&i!=null&&h(t,[`systemInstruction`],oa(I(i)));let a=g(e,[`tools`]);if(t!==void 0&&a!=null){let e=a;Array.isArray(e)&&(e=e.map(e=>Wo(e))),h(t,[`tools`],e)}let o=g(e,[`generationConfig`]);return t!==void 0&&o!=null&&h(t,[`generationConfig`],ao(o)),r}function ua(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`contents`]);if(a!=null){let e=L(a);Array.isArray(e)&&(e=e.map(e=>aa(e))),h(r,[`contents`],e)}let o=g(t,[`config`]);return o!=null&&ca(o),r}function da(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`contents`]);if(a!=null){let e=L(a);Array.isArray(e)&&(e=e.map(e=>oa(e))),h(r,[`contents`],e)}let o=g(t,[`config`]);return o!=null&&la(o,r),r}function fa(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`totalTokens`]);i!=null&&h(n,[`totalTokens`],i);let a=g(e,[`cachedContentTokenCount`]);return a!=null&&h(n,[`cachedContentTokenCount`],a),n}function pa(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`totalTokens`]);return i!=null&&h(n,[`totalTokens`],i),n}function ma(e,t,n){let r={},i=g(t,[`model`]);return i!=null&&h(r,[`_url`,`name`],F(e,i)),r}function ha(e,t,n){let r={},i=g(t,[`model`]);return i!=null&&h(r,[`_url`,`name`],F(e,i)),r}function ga(e,t){let n={},r=g(e,[`sdkHttpResponse`]);return r!=null&&h(n,[`sdkHttpResponse`],r),n}function _a(e,t){let n={},r=g(e,[`sdkHttpResponse`]);return r!=null&&h(n,[`sdkHttpResponse`],r),n}function va(e,t,n){let r={},i=g(e,[`outputGcsUri`]);t!==void 0&&i!=null&&h(t,[`parameters`,`storageUri`],i);let a=g(e,[`negativePrompt`]);t!==void 0&&a!=null&&h(t,[`parameters`,`negativePrompt`],a);let o=g(e,[`numberOfImages`]);t!==void 0&&o!=null&&h(t,[`parameters`,`sampleCount`],o);let s=g(e,[`aspectRatio`]);t!==void 0&&s!=null&&h(t,[`parameters`,`aspectRatio`],s);let c=g(e,[`guidanceScale`]);t!==void 0&&c!=null&&h(t,[`parameters`,`guidanceScale`],c);let l=g(e,[`seed`]);t!==void 0&&l!=null&&h(t,[`parameters`,`seed`],l);let u=g(e,[`safetyFilterLevel`]);t!==void 0&&u!=null&&h(t,[`parameters`,`safetySetting`],u);let d=g(e,[`personGeneration`]);t!==void 0&&d!=null&&h(t,[`parameters`,`personGeneration`],d);let f=g(e,[`includeSafetyAttributes`]);t!==void 0&&f!=null&&h(t,[`parameters`,`includeSafetyAttributes`],f);let p=g(e,[`includeRaiReason`]);t!==void 0&&p!=null&&h(t,[`parameters`,`includeRaiReason`],p);let m=g(e,[`language`]);t!==void 0&&m!=null&&h(t,[`parameters`,`language`],m);let _=g(e,[`outputMimeType`]);t!==void 0&&_!=null&&h(t,[`parameters`,`outputOptions`,`mimeType`],_);let v=g(e,[`outputCompressionQuality`]);t!==void 0&&v!=null&&h(t,[`parameters`,`outputOptions`,`compressionQuality`],v);let y=g(e,[`addWatermark`]);t!==void 0&&y!=null&&h(t,[`parameters`,`addWatermark`],y);let b=g(e,[`labels`]);t!==void 0&&b!=null&&h(t,[`labels`],b);let x=g(e,[`editMode`]);t!==void 0&&x!=null&&h(t,[`parameters`,`editMode`],x);let S=g(e,[`baseSteps`]);return t!==void 0&&S!=null&&h(t,[`parameters`,`editConfig`,`baseSteps`],S),r}function ya(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`prompt`]);a!=null&&h(r,[`instances[0]`,`prompt`],a);let o=g(t,[`referenceImages`]);if(o!=null){let e=o;Array.isArray(e)&&(e=e.map(e=>Mo(e))),h(r,[`instances[0]`,`referenceImages`],e)}let s=g(t,[`config`]);return s!=null&&va(s,r),r}function ba(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`predictions`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>to(e))),h(n,[`generatedImages`],e)}return n}function xa(e,t,n){let r={},i=g(e,[`taskType`]);t!==void 0&&i!=null&&h(t,[`requests[]`,`taskType`],i);let a=g(e,[`title`]);t!==void 0&&a!=null&&h(t,[`requests[]`,`title`],a);let o=g(e,[`outputDimensionality`]);if(t!==void 0&&o!=null&&h(t,[`requests[]`,`outputDimensionality`],o),g(e,[`mimeType`])!==void 0)throw Error(`mimeType parameter is not supported in Gemini API.`);if(g(e,[`autoTruncate`])!==void 0)throw Error(`autoTruncate parameter is not supported in Gemini API.`);if(g(e,[`documentOcr`])!==void 0)throw Error(`documentOcr parameter is not supported in Gemini API.`);if(g(e,[`audioTrackExtraction`])!==void 0)throw Error(`audioTrackExtraction parameter is not supported in Gemini API.`);return r}function Sa(e,t,n){let r={},i=g(n,[`embeddingApiType`]);if(i===void 0&&(i=`PREDICT`),i===`PREDICT`){let n=g(e,[`taskType`]);t!==void 0&&n!=null&&h(t,[`instances[]`,`task_type`],n)}else if(i===`EMBED_CONTENT`){let n=g(e,[`taskType`]);t!==void 0&&n!=null&&h(t,[`embedContentConfig`,`taskType`],n)}let a=g(n,[`embeddingApiType`]);if(a===void 0&&(a=`PREDICT`),a===`PREDICT`){let n=g(e,[`title`]);t!==void 0&&n!=null&&h(t,[`instances[]`,`title`],n)}else if(a===`EMBED_CONTENT`){let n=g(e,[`title`]);t!==void 0&&n!=null&&h(t,[`embedContentConfig`,`title`],n)}let o=g(n,[`embeddingApiType`]);if(o===void 0&&(o=`PREDICT`),o===`PREDICT`){let n=g(e,[`outputDimensionality`]);t!==void 0&&n!=null&&h(t,[`parameters`,`outputDimensionality`],n)}else if(o===`EMBED_CONTENT`){let n=g(e,[`outputDimensionality`]);t!==void 0&&n!=null&&h(t,[`embedContentConfig`,`outputDimensionality`],n)}let s=g(n,[`embeddingApiType`]);if(s===void 0&&(s=`PREDICT`),s===`PREDICT`){let n=g(e,[`mimeType`]);t!==void 0&&n!=null&&h(t,[`instances[]`,`mimeType`],n)}let c=g(n,[`embeddingApiType`]);if(c===void 0&&(c=`PREDICT`),c===`PREDICT`){let n=g(e,[`autoTruncate`]);t!==void 0&&n!=null&&h(t,[`parameters`,`autoTruncate`],n)}else if(c===`EMBED_CONTENT`){let n=g(e,[`autoTruncate`]);t!==void 0&&n!=null&&h(t,[`embedContentConfig`,`autoTruncate`],n)}let l=g(n,[`embeddingApiType`]);if(l===void 0&&(l=`PREDICT`),l===`EMBED_CONTENT`){let n=g(e,[`documentOcr`]);t!==void 0&&n!=null&&h(t,[`embedContentConfig`,`documentOcr`],n)}let u=g(n,[`embeddingApiType`]);if(u===void 0&&(u=`PREDICT`),u===`EMBED_CONTENT`){let n=g(e,[`audioTrackExtraction`]);t!==void 0&&n!=null&&h(t,[`embedContentConfig`,`audioTrackExtraction`],n)}return r}function Ca(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`contents`]);if(a!=null){let t=Zt(e,a);Array.isArray(t)&&(t=t.map(e=>e)),h(r,[`requests[]`,`content`],t)}let o=g(t,[`content`]);o!=null&&aa(I(o));let s=g(t,[`config`]);s!=null&&xa(s,r);let c=g(t,[`model`]);return c!==void 0&&h(r,[`requests[]`,`model`],F(e,c)),r}function wa(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(n,[`embeddingApiType`]);if(a===void 0&&(a=`PREDICT`),a===`PREDICT`){let n=g(t,[`contents`]);if(n!=null){let t=Zt(e,n);Array.isArray(t)&&(t=t.map(e=>e)),h(r,[`instances[]`,`content`],t)}}let o=g(n,[`embeddingApiType`]);if(o===void 0&&(o=`PREDICT`),o===`EMBED_CONTENT`){let e=g(t,[`content`]);e!=null&&h(r,[`content`],oa(I(e)))}let s=g(t,[`config`]);return s!=null&&Sa(s,r,n),r}function Ta(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`embeddings`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`embeddings`],e)}let a=g(e,[`metadata`]);return a!=null&&h(n,[`metadata`],a),n}function Ea(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`predictions[]`,`embeddings`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>ra(e))),h(n,[`embeddings`],e)}let a=g(e,[`metadata`]);if(a!=null&&h(n,[`metadata`],a),t&&g(t,[`embeddingApiType`])===`EMBED_CONTENT`){let t=g(e,[`embedding`]),r=g(e,[`usageMetadata`]),i=g(e,[`truncated`]);if(t){let e={};r&&r.promptTokenCount&&(e.tokenCount=r.promptTokenCount),i&&(e.truncated=i),t.statistics=e,h(n,[`embeddings`],[t])}}return n}function Da(e,t){let n={},r=g(e,[`endpoint`]);r!=null&&h(n,[`name`],r);let i=g(e,[`deployedModelId`]);return i!=null&&h(n,[`deployedModelId`],i),n}function Oa(e,t){let n={};if(g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let r=g(e,[`fileUri`]);r!=null&&h(n,[`fileUri`],r);let i=g(e,[`mimeType`]);return i!=null&&h(n,[`mimeType`],i),n}function ka(e,t){let n={},r=g(e,[`id`]);r!=null&&h(n,[`id`],r);let i=g(e,[`args`]);i!=null&&h(n,[`args`],i);let a=g(e,[`name`]);if(a!=null&&h(n,[`name`],a),g(e,[`partialArgs`])!==void 0)throw Error(`partialArgs parameter is not supported in Gemini API.`);if(g(e,[`willContinue`])!==void 0)throw Error(`willContinue parameter is not supported in Gemini API.`);return n}function Aa(e,t){let n={},r=g(e,[`allowedFunctionNames`]);r!=null&&h(n,[`allowedFunctionNames`],r);let i=g(e,[`mode`]);if(i!=null&&h(n,[`mode`],i),g(e,[`streamFunctionCallArguments`])!==void 0)throw Error(`streamFunctionCallArguments parameter is not supported in Gemini API.`);return n}function ja(e,t){let n={},r=g(e,[`description`]);r!=null&&h(n,[`description`],r);let i=g(e,[`name`]);i!=null&&h(n,[`name`],i);let a=g(e,[`parameters`]);a!=null&&h(n,[`parameters`],a);let o=g(e,[`parametersJsonSchema`]);o!=null&&h(n,[`parametersJsonSchema`],o);let s=g(e,[`response`]);s!=null&&h(n,[`response`],s);let c=g(e,[`responseJsonSchema`]);if(c!=null&&h(n,[`responseJsonSchema`],c),g(e,[`behavior`])!==void 0)throw Error(`behavior parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return n}function Ma(e,t,n,r){let i={},a=g(t,[`systemInstruction`]);n!==void 0&&a!=null&&h(n,[`systemInstruction`],aa(I(a)));let o=g(t,[`temperature`]);o!=null&&h(i,[`temperature`],o);let s=g(t,[`topP`]);s!=null&&h(i,[`topP`],s);let c=g(t,[`topK`]);c!=null&&h(i,[`topK`],c);let l=g(t,[`candidateCount`]);l!=null&&h(i,[`candidateCount`],l);let u=g(t,[`maxOutputTokens`]);u!=null&&h(i,[`maxOutputTokens`],u);let d=g(t,[`stopSequences`]);d!=null&&h(i,[`stopSequences`],d);let f=g(t,[`responseLogprobs`]);f!=null&&h(i,[`responseLogprobs`],f);let p=g(t,[`logprobs`]);p!=null&&h(i,[`logprobs`],p);let m=g(t,[`presencePenalty`]);m!=null&&h(i,[`presencePenalty`],m);let _=g(t,[`frequencyPenalty`]);_!=null&&h(i,[`frequencyPenalty`],_);let v=g(t,[`seed`]);v!=null&&h(i,[`seed`],v);let y=g(t,[`responseMimeType`]);y!=null&&h(i,[`responseMimeType`],y);let b=g(t,[`responseSchema`]);b!=null&&h(i,[`responseSchema`],$t(b));let x=g(t,[`responseJsonSchema`]);if(x!=null&&h(i,[`responseJsonSchema`],x),g(t,[`routingConfig`])!==void 0)throw Error(`routingConfig parameter is not supported in Gemini API.`);if(g(t,[`modelSelectionConfig`])!==void 0)throw Error(`modelSelectionConfig parameter is not supported in Gemini API.`);let S=g(t,[`safetySettings`]);if(n!==void 0&&S!=null){let e=S;Array.isArray(e)&&(e=e.map(e=>Fo(e))),h(n,[`safetySettings`],e)}let C=g(t,[`tools`]);if(n!==void 0&&C!=null){let e=rn(C);Array.isArray(e)&&(e=e.map(e=>Uo(nn(e)))),h(n,[`tools`],e)}let w=g(t,[`toolConfig`]);if(n!==void 0&&w!=null&&h(n,[`toolConfig`],Vo(w)),g(t,[`labels`])!==void 0)throw Error(`labels parameter is not supported in Gemini API.`);let T=g(t,[`cachedContent`]);n!==void 0&&T!=null&&h(n,[`cachedContent`],z(e,T));let E=g(t,[`responseModalities`]);E!=null&&h(i,[`responseModalities`],E);let D=g(t,[`mediaResolution`]);D!=null&&h(i,[`mediaResolution`],D);let O=g(t,[`speechConfig`]);if(O!=null&&h(i,[`speechConfig`],en(O)),g(t,[`audioTimestamp`])!==void 0)throw Error(`audioTimestamp parameter is not supported in Gemini API.`);let k=g(t,[`thinkingConfig`]);k!=null&&h(i,[`thinkingConfig`],k);let A=g(t,[`imageConfig`]);A!=null&&h(i,[`imageConfig`],uo(A));let j=g(t,[`enableEnhancedCivicAnswers`]);if(j!=null&&h(i,[`enableEnhancedCivicAnswers`],j),g(t,[`modelArmorConfig`])!==void 0)throw Error(`modelArmorConfig parameter is not supported in Gemini API.`);let M=g(t,[`serviceTier`]);return n!==void 0&&M!=null&&h(n,[`serviceTier`],M),i}function Na(e,t,n,r){let i={},a=g(t,[`systemInstruction`]);n!==void 0&&a!=null&&h(n,[`systemInstruction`],oa(I(a)));let o=g(t,[`temperature`]);o!=null&&h(i,[`temperature`],o);let s=g(t,[`topP`]);s!=null&&h(i,[`topP`],s);let c=g(t,[`topK`]);c!=null&&h(i,[`topK`],c);let l=g(t,[`candidateCount`]);l!=null&&h(i,[`candidateCount`],l);let u=g(t,[`maxOutputTokens`]);u!=null&&h(i,[`maxOutputTokens`],u);let d=g(t,[`stopSequences`]);d!=null&&h(i,[`stopSequences`],d);let f=g(t,[`responseLogprobs`]);f!=null&&h(i,[`responseLogprobs`],f);let p=g(t,[`logprobs`]);p!=null&&h(i,[`logprobs`],p);let m=g(t,[`presencePenalty`]);m!=null&&h(i,[`presencePenalty`],m);let _=g(t,[`frequencyPenalty`]);_!=null&&h(i,[`frequencyPenalty`],_);let v=g(t,[`seed`]);v!=null&&h(i,[`seed`],v);let y=g(t,[`responseMimeType`]);y!=null&&h(i,[`responseMimeType`],y);let b=g(t,[`responseSchema`]);b!=null&&h(i,[`responseSchema`],$t(b));let x=g(t,[`responseJsonSchema`]);x!=null&&h(i,[`responseJsonSchema`],x);let S=g(t,[`routingConfig`]);S!=null&&h(i,[`routingConfig`],S);let C=g(t,[`modelSelectionConfig`]);C!=null&&h(i,[`modelConfig`],C);let w=g(t,[`safetySettings`]);if(n!==void 0&&w!=null){let e=w;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`safetySettings`],e)}let T=g(t,[`tools`]);if(n!==void 0&&T!=null){let e=rn(T);Array.isArray(e)&&(e=e.map(e=>Wo(nn(e)))),h(n,[`tools`],e)}let E=g(t,[`toolConfig`]);n!==void 0&&E!=null&&h(n,[`toolConfig`],Ho(E));let D=g(t,[`labels`]);n!==void 0&&D!=null&&h(n,[`labels`],D);let O=g(t,[`cachedContent`]);n!==void 0&&O!=null&&h(n,[`cachedContent`],z(e,O));let k=g(t,[`responseModalities`]);k!=null&&h(i,[`responseModalities`],k);let A=g(t,[`mediaResolution`]);A!=null&&h(i,[`mediaResolution`],A);let j=g(t,[`speechConfig`]);j!=null&&h(i,[`speechConfig`],en(j));let M=g(t,[`audioTimestamp`]);M!=null&&h(i,[`audioTimestamp`],M);let ee=g(t,[`thinkingConfig`]);ee!=null&&h(i,[`thinkingConfig`],ee);let te=g(t,[`imageConfig`]);if(te!=null&&h(i,[`imageConfig`],fo(te)),g(t,[`enableEnhancedCivicAnswers`])!==void 0)throw Error(`enableEnhancedCivicAnswers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let ne=g(t,[`modelArmorConfig`]);n!==void 0&&ne!=null&&h(n,[`modelArmorConfig`],ne);let re=g(t,[`serviceTier`]);return n!==void 0&&re!=null&&h(n,[`serviceTier`],re),i}function Pa(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`contents`]);if(a!=null){let e=L(a);Array.isArray(e)&&(e=e.map(e=>aa(e))),h(r,[`contents`],e)}let o=g(t,[`config`]);return o!=null&&h(r,[`generationConfig`],Ma(e,o,r)),r}function Fa(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`contents`]);if(a!=null){let e=L(a);Array.isArray(e)&&(e=e.map(e=>oa(e))),h(r,[`contents`],e)}let o=g(t,[`config`]);return o!=null&&h(r,[`generationConfig`],Na(e,o,r)),r}function Ia(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`candidates`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>$i(e))),h(n,[`candidates`],e)}let a=g(e,[`modelVersion`]);a!=null&&h(n,[`modelVersion`],a);let o=g(e,[`promptFeedback`]);o!=null&&h(n,[`promptFeedback`],o);let s=g(e,[`responseId`]);s!=null&&h(n,[`responseId`],s);let c=g(e,[`usageMetadata`]);c!=null&&h(n,[`usageMetadata`],c);let l=g(e,[`modelStatus`]);return l!=null&&h(n,[`modelStatus`],l),n}function La(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`candidates`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`candidates`],e)}let a=g(e,[`createTime`]);a!=null&&h(n,[`createTime`],a);let o=g(e,[`modelVersion`]);o!=null&&h(n,[`modelVersion`],o);let s=g(e,[`promptFeedback`]);s!=null&&h(n,[`promptFeedback`],s);let c=g(e,[`responseId`]);c!=null&&h(n,[`responseId`],c);let l=g(e,[`usageMetadata`]);return l!=null&&h(n,[`usageMetadata`],l),n}function Ra(e,t,n){let r={};if(g(e,[`outputGcsUri`])!==void 0)throw Error(`outputGcsUri parameter is not supported in Gemini API.`);if(g(e,[`negativePrompt`])!==void 0)throw Error(`negativePrompt parameter is not supported in Gemini API.`);let i=g(e,[`numberOfImages`]);t!==void 0&&i!=null&&h(t,[`parameters`,`sampleCount`],i);let a=g(e,[`aspectRatio`]);t!==void 0&&a!=null&&h(t,[`parameters`,`aspectRatio`],a);let o=g(e,[`guidanceScale`]);if(t!==void 0&&o!=null&&h(t,[`parameters`,`guidanceScale`],o),g(e,[`seed`])!==void 0)throw Error(`seed parameter is not supported in Gemini API.`);let s=g(e,[`safetyFilterLevel`]);t!==void 0&&s!=null&&h(t,[`parameters`,`safetySetting`],s);let c=g(e,[`personGeneration`]);t!==void 0&&c!=null&&h(t,[`parameters`,`personGeneration`],c);let l=g(e,[`includeSafetyAttributes`]);t!==void 0&&l!=null&&h(t,[`parameters`,`includeSafetyAttributes`],l);let u=g(e,[`includeRaiReason`]);t!==void 0&&u!=null&&h(t,[`parameters`,`includeRaiReason`],u);let d=g(e,[`language`]);t!==void 0&&d!=null&&h(t,[`parameters`,`language`],d);let f=g(e,[`outputMimeType`]);t!==void 0&&f!=null&&h(t,[`parameters`,`outputOptions`,`mimeType`],f);let p=g(e,[`outputCompressionQuality`]);if(t!==void 0&&p!=null&&h(t,[`parameters`,`outputOptions`,`compressionQuality`],p),g(e,[`addWatermark`])!==void 0)throw Error(`addWatermark parameter is not supported in Gemini API.`);if(g(e,[`labels`])!==void 0)throw Error(`labels parameter is not supported in Gemini API.`);let m=g(e,[`imageSize`]);if(t!==void 0&&m!=null&&h(t,[`parameters`,`sampleImageSize`],m),g(e,[`enhancePrompt`])!==void 0)throw Error(`enhancePrompt parameter is not supported in Gemini API.`);return r}function za(e,t,n){let r={},i=g(e,[`outputGcsUri`]);t!==void 0&&i!=null&&h(t,[`parameters`,`storageUri`],i);let a=g(e,[`negativePrompt`]);t!==void 0&&a!=null&&h(t,[`parameters`,`negativePrompt`],a);let o=g(e,[`numberOfImages`]);t!==void 0&&o!=null&&h(t,[`parameters`,`sampleCount`],o);let s=g(e,[`aspectRatio`]);t!==void 0&&s!=null&&h(t,[`parameters`,`aspectRatio`],s);let c=g(e,[`guidanceScale`]);t!==void 0&&c!=null&&h(t,[`parameters`,`guidanceScale`],c);let l=g(e,[`seed`]);t!==void 0&&l!=null&&h(t,[`parameters`,`seed`],l);let u=g(e,[`safetyFilterLevel`]);t!==void 0&&u!=null&&h(t,[`parameters`,`safetySetting`],u);let d=g(e,[`personGeneration`]);t!==void 0&&d!=null&&h(t,[`parameters`,`personGeneration`],d);let f=g(e,[`includeSafetyAttributes`]);t!==void 0&&f!=null&&h(t,[`parameters`,`includeSafetyAttributes`],f);let p=g(e,[`includeRaiReason`]);t!==void 0&&p!=null&&h(t,[`parameters`,`includeRaiReason`],p);let m=g(e,[`language`]);t!==void 0&&m!=null&&h(t,[`parameters`,`language`],m);let _=g(e,[`outputMimeType`]);t!==void 0&&_!=null&&h(t,[`parameters`,`outputOptions`,`mimeType`],_);let v=g(e,[`outputCompressionQuality`]);t!==void 0&&v!=null&&h(t,[`parameters`,`outputOptions`,`compressionQuality`],v);let y=g(e,[`addWatermark`]);t!==void 0&&y!=null&&h(t,[`parameters`,`addWatermark`],y);let b=g(e,[`labels`]);t!==void 0&&b!=null&&h(t,[`labels`],b);let x=g(e,[`imageSize`]);t!==void 0&&x!=null&&h(t,[`parameters`,`sampleImageSize`],x);let S=g(e,[`enhancePrompt`]);return t!==void 0&&S!=null&&h(t,[`parameters`,`enhancePrompt`],S),r}function Ba(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`prompt`]);a!=null&&h(r,[`instances[0]`,`prompt`],a);let o=g(t,[`config`]);return o!=null&&Ra(o,r),r}function Va(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`prompt`]);a!=null&&h(r,[`instances[0]`,`prompt`],a);let o=g(t,[`config`]);return o!=null&&za(o,r),r}function Ha(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`predictions`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>eo(e))),h(n,[`generatedImages`],e)}let a=g(e,[`positivePromptSafetyAttributes`]);return a!=null&&h(n,[`positivePromptSafetyAttributes`],No(a)),n}function Ua(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`predictions`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>to(e))),h(n,[`generatedImages`],e)}let a=g(e,[`positivePromptSafetyAttributes`]);return a!=null&&h(n,[`positivePromptSafetyAttributes`],Po(a)),n}function Wa(e,t,n){let r={},i=g(e,[`numberOfVideos`]);if(t!==void 0&&i!=null&&h(t,[`parameters`,`sampleCount`],i),g(e,[`outputGcsUri`])!==void 0)throw Error(`outputGcsUri parameter is not supported in Gemini API.`);if(g(e,[`fps`])!==void 0)throw Error(`fps parameter is not supported in Gemini API.`);let a=g(e,[`durationSeconds`]);if(t!==void 0&&a!=null&&h(t,[`parameters`,`durationSeconds`],a),g(e,[`seed`])!==void 0)throw Error(`seed parameter is not supported in Gemini API.`);let o=g(e,[`aspectRatio`]);t!==void 0&&o!=null&&h(t,[`parameters`,`aspectRatio`],o);let s=g(e,[`resolution`]);t!==void 0&&s!=null&&h(t,[`parameters`,`resolution`],s);let c=g(e,[`personGeneration`]);if(t!==void 0&&c!=null&&h(t,[`parameters`,`personGeneration`],c),g(e,[`pubsubTopic`])!==void 0)throw Error(`pubsubTopic parameter is not supported in Gemini API.`);let l=g(e,[`negativePrompt`]);t!==void 0&&l!=null&&h(t,[`parameters`,`negativePrompt`],l);let u=g(e,[`enhancePrompt`]);if(t!==void 0&&u!=null&&h(t,[`parameters`,`enhancePrompt`],u),g(e,[`generateAudio`])!==void 0)throw Error(`generateAudio parameter is not supported in Gemini API.`);let d=g(e,[`lastFrame`]);t!==void 0&&d!=null&&h(t,[`instances[0]`,`lastFrame`],ho(d));let f=g(e,[`referenceImages`]);if(t!==void 0&&f!=null){let e=f;Array.isArray(e)&&(e=e.map(e=>rs(e))),h(t,[`instances[0]`,`referenceImages`],e)}if(g(e,[`mask`])!==void 0)throw Error(`mask parameter is not supported in Gemini API.`);if(g(e,[`compressionQuality`])!==void 0)throw Error(`compressionQuality parameter is not supported in Gemini API.`);if(g(e,[`labels`])!==void 0)throw Error(`labels parameter is not supported in Gemini API.`);let p=g(e,[`webhookConfig`]);if(t!==void 0&&p!=null&&h(t,[`webhookConfig`],p),g(e,[`resizeMode`])!==void 0)throw Error(`resizeMode parameter is not supported in Gemini API.`);return r}function Ga(e,t,n){let r={},i=g(e,[`numberOfVideos`]);t!==void 0&&i!=null&&h(t,[`parameters`,`sampleCount`],i);let a=g(e,[`outputGcsUri`]);t!==void 0&&a!=null&&h(t,[`parameters`,`storageUri`],a);let o=g(e,[`fps`]);t!==void 0&&o!=null&&h(t,[`parameters`,`fps`],o);let s=g(e,[`durationSeconds`]);t!==void 0&&s!=null&&h(t,[`parameters`,`durationSeconds`],s);let c=g(e,[`seed`]);t!==void 0&&c!=null&&h(t,[`parameters`,`seed`],c);let l=g(e,[`aspectRatio`]);t!==void 0&&l!=null&&h(t,[`parameters`,`aspectRatio`],l);let u=g(e,[`resolution`]);t!==void 0&&u!=null&&h(t,[`parameters`,`resolution`],u);let d=g(e,[`personGeneration`]);t!==void 0&&d!=null&&h(t,[`parameters`,`personGeneration`],d);let f=g(e,[`pubsubTopic`]);t!==void 0&&f!=null&&h(t,[`parameters`,`pubsubTopic`],f);let p=g(e,[`negativePrompt`]);t!==void 0&&p!=null&&h(t,[`parameters`,`negativePrompt`],p);let m=g(e,[`enhancePrompt`]);t!==void 0&&m!=null&&h(t,[`parameters`,`enhancePrompt`],m);let _=g(e,[`generateAudio`]);t!==void 0&&_!=null&&h(t,[`parameters`,`generateAudio`],_);let v=g(e,[`lastFrame`]);t!==void 0&&v!=null&&h(t,[`instances[0]`,`lastFrame`],q(v));let y=g(e,[`referenceImages`]);if(t!==void 0&&y!=null){let e=y;Array.isArray(e)&&(e=e.map(e=>is(e))),h(t,[`instances[0]`,`referenceImages`],e)}let b=g(e,[`mask`]);t!==void 0&&b!=null&&h(t,[`instances[0]`,`mask`],ns(b));let x=g(e,[`compressionQuality`]);t!==void 0&&x!=null&&h(t,[`parameters`,`compressionQuality`],x);let S=g(e,[`labels`]);if(t!==void 0&&S!=null&&h(t,[`labels`],S),g(e,[`webhookConfig`])!==void 0)throw Error(`webhookConfig parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let C=g(e,[`resizeMode`]);return t!==void 0&&C!=null&&h(t,[`parameters`,`resizeMode`],C),r}function Ka(e,t){let n={},r=g(e,[`name`]);r!=null&&h(n,[`name`],r);let i=g(e,[`metadata`]);i!=null&&h(n,[`metadata`],i);let a=g(e,[`done`]);a!=null&&h(n,[`done`],a);let o=g(e,[`error`]);o!=null&&h(n,[`error`],o);let s=g(e,[`response`,`generateVideoResponse`]);return s!=null&&h(n,[`response`],Xa(s)),n}function qa(e,t){let n={},r=g(e,[`name`]);r!=null&&h(n,[`name`],r);let i=g(e,[`metadata`]);i!=null&&h(n,[`metadata`],i);let a=g(e,[`done`]);a!=null&&h(n,[`done`],a);let o=g(e,[`error`]);o!=null&&h(n,[`error`],o);let s=g(e,[`response`]);return s!=null&&h(n,[`response`],Za(s)),n}function Ja(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`prompt`]);a!=null&&h(r,[`instances[0]`,`prompt`],a);let o=g(t,[`image`]);o!=null&&h(r,[`instances[0]`,`image`],ho(o));let s=g(t,[`video`]);s!=null&&h(r,[`instances[0]`,`video`],as(s));let c=g(t,[`source`]);c!=null&&Qa(c,r);let l=g(t,[`config`]);return l!=null&&Wa(l,r),r}function Ya(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`prompt`]);a!=null&&h(r,[`instances[0]`,`prompt`],a);let o=g(t,[`image`]);o!=null&&h(r,[`instances[0]`,`image`],q(o));let s=g(t,[`video`]);s!=null&&h(r,[`instances[0]`,`video`],os(s));let c=g(t,[`source`]);c!=null&&$a(c,r);let l=g(t,[`config`]);return l!=null&&Ga(l,r),r}function Xa(e,t){let n={},r=g(e,[`generatedSamples`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>ro(e))),h(n,[`generatedVideos`],e)}let i=g(e,[`raiMediaFilteredCount`]);i!=null&&h(n,[`raiMediaFilteredCount`],i);let a=g(e,[`raiMediaFilteredReasons`]);return a!=null&&h(n,[`raiMediaFilteredReasons`],a),n}function Za(e,t){let n={},r=g(e,[`videos`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>io(e))),h(n,[`generatedVideos`],e)}let i=g(e,[`raiMediaFilteredCount`]);i!=null&&h(n,[`raiMediaFilteredCount`],i);let a=g(e,[`raiMediaFilteredReasons`]);return a!=null&&h(n,[`raiMediaFilteredReasons`],a),n}function Qa(e,t,n){let r={},i=g(e,[`prompt`]);t!==void 0&&i!=null&&h(t,[`instances[0]`,`prompt`],i);let a=g(e,[`image`]);t!==void 0&&a!=null&&h(t,[`instances[0]`,`image`],ho(a));let o=g(e,[`video`]);return t!==void 0&&o!=null&&h(t,[`instances[0]`,`video`],as(o)),r}function $a(e,t,n){let r={},i=g(e,[`prompt`]);t!==void 0&&i!=null&&h(t,[`instances[0]`,`prompt`],i);let a=g(e,[`image`]);t!==void 0&&a!=null&&h(t,[`instances[0]`,`image`],q(a));let o=g(e,[`video`]);return t!==void 0&&o!=null&&h(t,[`instances[0]`,`video`],os(o)),r}function eo(e,t){let n={},r=g(e,[`_self`]);r!=null&&h(n,[`image`],po(r));let i=g(e,[`raiFilteredReason`]);i!=null&&h(n,[`raiFilteredReason`],i);let a=g(e,[`_self`]);return a!=null&&h(n,[`safetyAttributes`],No(a)),n}function to(e,t){let n={},r=g(e,[`_self`]);r!=null&&h(n,[`image`],mo(r));let i=g(e,[`raiFilteredReason`]);i!=null&&h(n,[`raiFilteredReason`],i);let a=g(e,[`_self`]);a!=null&&h(n,[`safetyAttributes`],Po(a));let o=g(e,[`prompt`]);return o!=null&&h(n,[`enhancedPrompt`],o),n}function no(e,t){let n={},r=g(e,[`_self`]);r!=null&&h(n,[`mask`],mo(r));let i=g(e,[`labels`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`labels`],e)}return n}function ro(e,t){let n={},r=g(e,[`video`]);return r!=null&&h(n,[`video`],es(r)),n}function io(e,t){let n={},r=g(e,[`_self`]);return r!=null&&h(n,[`video`],ts(r)),n}function ao(e,t){let n={},r=g(e,[`modelSelectionConfig`]);r!=null&&h(n,[`modelConfig`],r);let i=g(e,[`responseJsonSchema`]);i!=null&&h(n,[`responseJsonSchema`],i);let a=g(e,[`audioTimestamp`]);a!=null&&h(n,[`audioTimestamp`],a);let o=g(e,[`candidateCount`]);o!=null&&h(n,[`candidateCount`],o);let s=g(e,[`enableAffectiveDialog`]);s!=null&&h(n,[`enableAffectiveDialog`],s);let c=g(e,[`frequencyPenalty`]);c!=null&&h(n,[`frequencyPenalty`],c);let l=g(e,[`logprobs`]);l!=null&&h(n,[`logprobs`],l);let u=g(e,[`maxOutputTokens`]);u!=null&&h(n,[`maxOutputTokens`],u);let d=g(e,[`mediaResolution`]);d!=null&&h(n,[`mediaResolution`],d);let f=g(e,[`presencePenalty`]);f!=null&&h(n,[`presencePenalty`],f);let p=g(e,[`responseLogprobs`]);p!=null&&h(n,[`responseLogprobs`],p);let m=g(e,[`responseMimeType`]);m!=null&&h(n,[`responseMimeType`],m);let _=g(e,[`responseModalities`]);_!=null&&h(n,[`responseModalities`],_);let v=g(e,[`responseSchema`]);v!=null&&h(n,[`responseSchema`],v);let y=g(e,[`routingConfig`]);y!=null&&h(n,[`routingConfig`],y);let b=g(e,[`seed`]);b!=null&&h(n,[`seed`],b);let x=g(e,[`speechConfig`]);x!=null&&h(n,[`speechConfig`],x);let S=g(e,[`stopSequences`]);S!=null&&h(n,[`stopSequences`],S);let C=g(e,[`temperature`]);C!=null&&h(n,[`temperature`],C);let w=g(e,[`thinkingConfig`]);w!=null&&h(n,[`thinkingConfig`],w);let T=g(e,[`topK`]);T!=null&&h(n,[`topK`],T);let E=g(e,[`topP`]);if(E!=null&&h(n,[`topP`],E),g(e,[`enableEnhancedCivicAnswers`])!==void 0)throw Error(`enableEnhancedCivicAnswers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return n}function oo(e,t,n){let r={},i=g(t,[`model`]);return i!=null&&h(r,[`_url`,`name`],F(e,i)),r}function so(e,t,n){let r={},i=g(t,[`model`]);return i!=null&&h(r,[`_url`,`name`],F(e,i)),r}function co(e,t){let n={},r=g(e,[`authConfig`]);r!=null&&h(n,[`authConfig`],Zi(r));let i=g(e,[`enableWidget`]);return i!=null&&h(n,[`enableWidget`],i),n}function lo(e,t){let n={},r=g(e,[`searchTypes`]);if(r!=null&&h(n,[`searchTypes`],r),g(e,[`blockingConfidence`])!==void 0)throw Error(`blockingConfidence parameter is not supported in Gemini API.`);if(g(e,[`excludeDomains`])!==void 0)throw Error(`excludeDomains parameter is not supported in Gemini API.`);let i=g(e,[`timeRangeFilter`]);return i!=null&&h(n,[`timeRangeFilter`],i),n}function uo(e,t){let n={},r=g(e,[`aspectRatio`]);r!=null&&h(n,[`aspectRatio`],r);let i=g(e,[`imageSize`]);if(i!=null&&h(n,[`imageSize`],i),g(e,[`personGeneration`])!==void 0)throw Error(`personGeneration parameter is not supported in Gemini API.`);if(g(e,[`prominentPeople`])!==void 0)throw Error(`prominentPeople parameter is not supported in Gemini API.`);if(g(e,[`outputMimeType`])!==void 0)throw Error(`outputMimeType parameter is not supported in Gemini API.`);if(g(e,[`outputCompressionQuality`])!==void 0)throw Error(`outputCompressionQuality parameter is not supported in Gemini API.`);if(g(e,[`imageOutputOptions`])!==void 0)throw Error(`imageOutputOptions parameter is not supported in Gemini API.`);return n}function fo(e,t){let n={},r=g(e,[`aspectRatio`]);r!=null&&h(n,[`aspectRatio`],r);let i=g(e,[`imageSize`]);i!=null&&h(n,[`imageSize`],i);let a=g(e,[`personGeneration`]);a!=null&&h(n,[`personGeneration`],a);let o=g(e,[`prominentPeople`]);o!=null&&h(n,[`prominentPeople`],o);let s=g(e,[`outputMimeType`]);s!=null&&h(n,[`imageOutputOptions`,`mimeType`],s);let c=g(e,[`outputCompressionQuality`]);c!=null&&h(n,[`imageOutputOptions`,`compressionQuality`],c);let l=g(e,[`imageOutputOptions`]);return l!=null&&h(n,[`imageOutputOptions`],l),n}function po(e,t){let n={},r=g(e,[`bytesBase64Encoded`]);r!=null&&h(n,[`imageBytes`],B(r));let i=g(e,[`mimeType`]);return i!=null&&h(n,[`mimeType`],i),n}function mo(e,t){let n={},r=g(e,[`gcsUri`]);r!=null&&h(n,[`gcsUri`],r);let i=g(e,[`bytesBase64Encoded`]);i!=null&&h(n,[`imageBytes`],B(i));let a=g(e,[`mimeType`]);return a!=null&&h(n,[`mimeType`],a),n}function ho(e,t){let n={};if(g(e,[`gcsUri`])!==void 0)throw Error(`gcsUri parameter is not supported in Gemini API.`);let r=g(e,[`imageBytes`]);r!=null&&h(n,[`bytesBase64Encoded`],B(r));let i=g(e,[`mimeType`]);return i!=null&&h(n,[`mimeType`],i),n}function q(e,t){let n={},r=g(e,[`gcsUri`]);r!=null&&h(n,[`gcsUri`],r);let i=g(e,[`imageBytes`]);i!=null&&h(n,[`bytesBase64Encoded`],B(i));let a=g(e,[`mimeType`]);return a!=null&&h(n,[`mimeType`],a),n}function go(e,t,n,r){let i={},a=g(t,[`pageSize`]);n!==void 0&&a!=null&&h(n,[`_query`,`pageSize`],a);let o=g(t,[`pageToken`]);n!==void 0&&o!=null&&h(n,[`_query`,`pageToken`],o);let s=g(t,[`filter`]);n!==void 0&&s!=null&&h(n,[`_query`,`filter`],s);let c=g(t,[`queryBase`]);return n!==void 0&&c!=null&&h(n,[`_url`,`models_url`],dn(e,c)),i}function _o(e,t,n,r){let i={},a=g(t,[`pageSize`]);n!==void 0&&a!=null&&h(n,[`_query`,`pageSize`],a);let o=g(t,[`pageToken`]);n!==void 0&&o!=null&&h(n,[`_query`,`pageToken`],o);let s=g(t,[`filter`]);n!==void 0&&s!=null&&h(n,[`_query`,`filter`],s);let c=g(t,[`queryBase`]);return n!==void 0&&c!=null&&h(n,[`_url`,`models_url`],dn(e,c)),i}function vo(e,t,n){let r={},i=g(t,[`config`]);return i!=null&&go(e,i,r),r}function yo(e,t,n){let r={},i=g(t,[`config`]);return i!=null&&_o(e,i,r),r}function bo(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`nextPageToken`]);i!=null&&h(n,[`nextPageToken`],i);let a=g(e,[`_self`]);if(a!=null){let e=fn(a);Array.isArray(e)&&(e=e.map(e=>Co(e))),h(n,[`models`],e)}return n}function xo(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`nextPageToken`]);i!=null&&h(n,[`nextPageToken`],i);let a=g(e,[`_self`]);if(a!=null){let e=fn(a);Array.isArray(e)&&(e=e.map(e=>wo(e))),h(n,[`models`],e)}return n}function So(e,t){let n={},r=g(e,[`maskMode`]);r!=null&&h(n,[`maskMode`],r);let i=g(e,[`segmentationClasses`]);i!=null&&h(n,[`maskClasses`],i);let a=g(e,[`maskDilation`]);return a!=null&&h(n,[`dilation`],a),n}function Co(e,t){let n={},r=g(e,[`name`]);r!=null&&h(n,[`name`],r);let i=g(e,[`displayName`]);i!=null&&h(n,[`displayName`],i);let a=g(e,[`description`]);a!=null&&h(n,[`description`],a);let o=g(e,[`version`]);o!=null&&h(n,[`version`],o);let s=g(e,[`_self`]);s!=null&&h(n,[`tunedModelInfo`],Go(s));let c=g(e,[`inputTokenLimit`]);c!=null&&h(n,[`inputTokenLimit`],c);let l=g(e,[`outputTokenLimit`]);l!=null&&h(n,[`outputTokenLimit`],l);let u=g(e,[`supportedGenerationMethods`]);u!=null&&h(n,[`supportedActions`],u);let d=g(e,[`temperature`]);d!=null&&h(n,[`temperature`],d);let f=g(e,[`maxTemperature`]);f!=null&&h(n,[`maxTemperature`],f);let p=g(e,[`topP`]);p!=null&&h(n,[`topP`],p);let m=g(e,[`topK`]);m!=null&&h(n,[`topK`],m);let _=g(e,[`thinking`]);return _!=null&&h(n,[`thinking`],_),n}function wo(e,t){let n={},r=g(e,[`name`]);r!=null&&h(n,[`name`],r);let i=g(e,[`displayName`]);i!=null&&h(n,[`displayName`],i);let a=g(e,[`description`]);a!=null&&h(n,[`description`],a);let o=g(e,[`versionId`]);o!=null&&h(n,[`version`],o);let s=g(e,[`deployedModels`]);if(s!=null){let e=s;Array.isArray(e)&&(e=e.map(e=>Da(e))),h(n,[`endpoints`],e)}let c=g(e,[`labels`]);c!=null&&h(n,[`labels`],c);let l=g(e,[`_self`]);l!=null&&h(n,[`tunedModelInfo`],Ko(l));let u=g(e,[`defaultCheckpointId`]);u!=null&&h(n,[`defaultCheckpointId`],u);let d=g(e,[`checkpoints`]);if(d!=null){let e=d;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`checkpoints`],e)}return n}function To(e,t){let n={},r=g(e,[`mediaResolution`]);r!=null&&h(n,[`mediaResolution`],r);let i=g(e,[`codeExecutionResult`]);i!=null&&h(n,[`codeExecutionResult`],i);let a=g(e,[`executableCode`]);a!=null&&h(n,[`executableCode`],a);let o=g(e,[`fileData`]);o!=null&&h(n,[`fileData`],Oa(o));let s=g(e,[`functionCall`]);s!=null&&h(n,[`functionCall`],ka(s));let c=g(e,[`functionResponse`]);c!=null&&h(n,[`functionResponse`],c);let l=g(e,[`inlineData`]);l!=null&&h(n,[`inlineData`],Qi(l));let u=g(e,[`text`]);u!=null&&h(n,[`text`],u);let d=g(e,[`thought`]);d!=null&&h(n,[`thought`],d);let f=g(e,[`thoughtSignature`]);f!=null&&h(n,[`thoughtSignature`],f);let p=g(e,[`videoMetadata`]);p!=null&&h(n,[`videoMetadata`],p);let m=g(e,[`toolCall`]);m!=null&&h(n,[`toolCall`],m);let _=g(e,[`toolResponse`]);_!=null&&h(n,[`toolResponse`],_);let v=g(e,[`partMetadata`]);return v!=null&&h(n,[`partMetadata`],v),n}function Eo(e,t){let n={},r=g(e,[`mediaResolution`]);r!=null&&h(n,[`mediaResolution`],r);let i=g(e,[`codeExecutionResult`]);i!=null&&h(n,[`codeExecutionResult`],i);let a=g(e,[`executableCode`]);a!=null&&h(n,[`executableCode`],a);let o=g(e,[`fileData`]);o!=null&&h(n,[`fileData`],o);let s=g(e,[`functionCall`]);s!=null&&h(n,[`functionCall`],s);let c=g(e,[`functionResponse`]);c!=null&&h(n,[`functionResponse`],c);let l=g(e,[`inlineData`]);l!=null&&h(n,[`inlineData`],l);let u=g(e,[`text`]);u!=null&&h(n,[`text`],u);let d=g(e,[`thought`]);d!=null&&h(n,[`thought`],d);let f=g(e,[`thoughtSignature`]);f!=null&&h(n,[`thoughtSignature`],f);let p=g(e,[`videoMetadata`]);if(p!=null&&h(n,[`videoMetadata`],p),g(e,[`toolCall`])!==void 0)throw Error(`toolCall parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`toolResponse`])!==void 0)throw Error(`toolResponse parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);if(g(e,[`partMetadata`])!==void 0)throw Error(`partMetadata parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return n}function Do(e,t){let n={},r=g(e,[`productImage`]);return r!=null&&h(n,[`image`],q(r)),n}function Oo(e,t,n){let r={},i=g(e,[`numberOfImages`]);t!==void 0&&i!=null&&h(t,[`parameters`,`sampleCount`],i);let a=g(e,[`baseSteps`]);t!==void 0&&a!=null&&h(t,[`parameters`,`baseSteps`],a);let o=g(e,[`outputGcsUri`]);t!==void 0&&o!=null&&h(t,[`parameters`,`storageUri`],o);let s=g(e,[`seed`]);t!==void 0&&s!=null&&h(t,[`parameters`,`seed`],s);let c=g(e,[`safetyFilterLevel`]);t!==void 0&&c!=null&&h(t,[`parameters`,`safetySetting`],c);let l=g(e,[`personGeneration`]);t!==void 0&&l!=null&&h(t,[`parameters`,`personGeneration`],l);let u=g(e,[`addWatermark`]);t!==void 0&&u!=null&&h(t,[`parameters`,`addWatermark`],u);let d=g(e,[`outputMimeType`]);t!==void 0&&d!=null&&h(t,[`parameters`,`outputOptions`,`mimeType`],d);let f=g(e,[`outputCompressionQuality`]);t!==void 0&&f!=null&&h(t,[`parameters`,`outputOptions`,`compressionQuality`],f);let p=g(e,[`enhancePrompt`]);t!==void 0&&p!=null&&h(t,[`parameters`,`enhancePrompt`],p);let m=g(e,[`labels`]);return t!==void 0&&m!=null&&h(t,[`labels`],m),r}function ko(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`source`]);a!=null&&jo(a,r);let o=g(t,[`config`]);return o!=null&&Oo(o,r),r}function Ao(e,t){let n={},r=g(e,[`predictions`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>to(e))),h(n,[`generatedImages`],e)}return n}function jo(e,t,n){let r={},i=g(e,[`prompt`]);t!==void 0&&i!=null&&h(t,[`instances[0]`,`prompt`],i);let a=g(e,[`personImage`]);t!==void 0&&a!=null&&h(t,[`instances[0]`,`personImage`,`image`],q(a));let o=g(e,[`productImages`]);if(t!==void 0&&o!=null){let e=o;Array.isArray(e)&&(e=e.map(e=>Do(e))),h(t,[`instances[0]`,`productImages`],e)}return r}function Mo(e,t){let n={},r=g(e,[`referenceImage`]);r!=null&&h(n,[`referenceImage`],q(r));let i=g(e,[`referenceId`]);i!=null&&h(n,[`referenceId`],i);let a=g(e,[`referenceType`]);a!=null&&h(n,[`referenceType`],a);let o=g(e,[`maskImageConfig`]);o!=null&&h(n,[`maskImageConfig`],So(o));let s=g(e,[`controlImageConfig`]);s!=null&&h(n,[`controlImageConfig`],sa(s));let c=g(e,[`styleImageConfig`]);c!=null&&h(n,[`styleImageConfig`],c);let l=g(e,[`subjectImageConfig`]);return l!=null&&h(n,[`subjectImageConfig`],l),n}function No(e,t){let n={},r=g(e,[`safetyAttributes`,`categories`]);r!=null&&h(n,[`categories`],r);let i=g(e,[`safetyAttributes`,`scores`]);i!=null&&h(n,[`scores`],i);let a=g(e,[`contentType`]);return a!=null&&h(n,[`contentType`],a),n}function Po(e,t){let n={},r=g(e,[`safetyAttributes`,`categories`]);r!=null&&h(n,[`categories`],r);let i=g(e,[`safetyAttributes`,`scores`]);i!=null&&h(n,[`scores`],i);let a=g(e,[`contentType`]);return a!=null&&h(n,[`contentType`],a),n}function Fo(e,t){let n={},r=g(e,[`category`]);if(r!=null&&h(n,[`category`],r),g(e,[`method`])!==void 0)throw Error(`method parameter is not supported in Gemini API.`);let i=g(e,[`threshold`]);return i!=null&&h(n,[`threshold`],i),n}function Io(e,t){let n={},r=g(e,[`image`]);return r!=null&&h(n,[`image`],q(r)),n}function Lo(e,t,n){let r={},i=g(e,[`mode`]);t!==void 0&&i!=null&&h(t,[`parameters`,`mode`],i);let a=g(e,[`maxPredictions`]);t!==void 0&&a!=null&&h(t,[`parameters`,`maxPredictions`],a);let o=g(e,[`confidenceThreshold`]);t!==void 0&&o!=null&&h(t,[`parameters`,`confidenceThreshold`],o);let s=g(e,[`maskDilation`]);t!==void 0&&s!=null&&h(t,[`parameters`,`maskDilation`],s);let c=g(e,[`binaryColorThreshold`]);t!==void 0&&c!=null&&h(t,[`parameters`,`binaryColorThreshold`],c);let l=g(e,[`labels`]);return t!==void 0&&l!=null&&h(t,[`labels`],l),r}function Ro(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`source`]);a!=null&&Bo(a,r);let o=g(t,[`config`]);return o!=null&&Lo(o,r),r}function zo(e,t){let n={},r=g(e,[`predictions`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>no(e))),h(n,[`generatedMasks`],e)}return n}function Bo(e,t,n){let r={},i=g(e,[`prompt`]);t!==void 0&&i!=null&&h(t,[`instances[0]`,`prompt`],i);let a=g(e,[`image`]);t!==void 0&&a!=null&&h(t,[`instances[0]`,`image`],q(a));let o=g(e,[`scribbleImage`]);return t!==void 0&&o!=null&&h(t,[`instances[0]`,`scribble`],Io(o)),r}function Vo(e,t){let n={},r=g(e,[`retrievalConfig`]);r!=null&&h(n,[`retrievalConfig`],r);let i=g(e,[`functionCallingConfig`]);i!=null&&h(n,[`functionCallingConfig`],Aa(i));let a=g(e,[`includeServerSideToolInvocations`]);return a!=null&&h(n,[`includeServerSideToolInvocations`],a),n}function Ho(e,t){let n={},r=g(e,[`retrievalConfig`]);r!=null&&h(n,[`retrievalConfig`],r);let i=g(e,[`functionCallingConfig`]);if(i!=null&&h(n,[`functionCallingConfig`],i),g(e,[`includeServerSideToolInvocations`])!==void 0)throw Error(`includeServerSideToolInvocations parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return n}function Uo(e,t){let n={};if(g(e,[`retrieval`])!==void 0)throw Error(`retrieval parameter is not supported in Gemini API.`);let r=g(e,[`computerUse`]);r!=null&&h(n,[`computerUse`],r);let i=g(e,[`fileSearch`]);i!=null&&h(n,[`fileSearch`],i);let a=g(e,[`googleSearch`]);a!=null&&h(n,[`googleSearch`],lo(a));let o=g(e,[`googleMaps`]);o!=null&&h(n,[`googleMaps`],co(o));let s=g(e,[`codeExecution`]);if(s!=null&&h(n,[`codeExecution`],s),g(e,[`enterpriseWebSearch`])!==void 0)throw Error(`enterpriseWebSearch parameter is not supported in Gemini API.`);let c=g(e,[`functionDeclarations`]);if(c!=null){let e=c;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`functionDeclarations`],e)}let l=g(e,[`googleSearchRetrieval`]);if(l!=null&&h(n,[`googleSearchRetrieval`],l),g(e,[`parallelAiSearch`])!==void 0)throw Error(`parallelAiSearch parameter is not supported in Gemini API.`);let u=g(e,[`urlContext`]);u!=null&&h(n,[`urlContext`],u);let d=g(e,[`mcpServers`]);if(d!=null){let e=d;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`mcpServers`],e)}return n}function Wo(e,t){let n={},r=g(e,[`retrieval`]);r!=null&&h(n,[`retrieval`],r);let i=g(e,[`computerUse`]);if(i!=null&&h(n,[`computerUse`],i),g(e,[`fileSearch`])!==void 0)throw Error(`fileSearch parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);let a=g(e,[`googleSearch`]);a!=null&&h(n,[`googleSearch`],a);let o=g(e,[`googleMaps`]);o!=null&&h(n,[`googleMaps`],o);let s=g(e,[`codeExecution`]);s!=null&&h(n,[`codeExecution`],s);let c=g(e,[`enterpriseWebSearch`]);c!=null&&h(n,[`enterpriseWebSearch`],c);let l=g(e,[`functionDeclarations`]);if(l!=null){let e=l;Array.isArray(e)&&(e=e.map(e=>ja(e))),h(n,[`functionDeclarations`],e)}let u=g(e,[`googleSearchRetrieval`]);u!=null&&h(n,[`googleSearchRetrieval`],u);let d=g(e,[`parallelAiSearch`]);d!=null&&h(n,[`parallelAiSearch`],d);let f=g(e,[`urlContext`]);if(f!=null&&h(n,[`urlContext`],f),g(e,[`mcpServers`])!==void 0)throw Error(`mcpServers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return n}function Go(e,t){let n={},r=g(e,[`baseModel`]);r!=null&&h(n,[`baseModel`],r);let i=g(e,[`createTime`]);i!=null&&h(n,[`createTime`],i);let a=g(e,[`updateTime`]);return a!=null&&h(n,[`updateTime`],a),n}function Ko(e,t){let n={},r=g(e,[`labels`,`google-vertex-llm-tuning-base-model-id`]);r!=null&&h(n,[`baseModel`],r);let i=g(e,[`createTime`]);i!=null&&h(n,[`createTime`],i);let a=g(e,[`updateTime`]);return a!=null&&h(n,[`updateTime`],a),n}function qo(e,t,n){let r={},i=g(e,[`displayName`]);t!==void 0&&i!=null&&h(t,[`displayName`],i);let a=g(e,[`description`]);t!==void 0&&a!=null&&h(t,[`description`],a);let o=g(e,[`defaultCheckpointId`]);return t!==void 0&&o!=null&&h(t,[`defaultCheckpointId`],o),r}function Jo(e,t,n){let r={},i=g(e,[`displayName`]);t!==void 0&&i!=null&&h(t,[`displayName`],i);let a=g(e,[`description`]);t!==void 0&&a!=null&&h(t,[`description`],a);let o=g(e,[`defaultCheckpointId`]);return t!==void 0&&o!=null&&h(t,[`defaultCheckpointId`],o),r}function Yo(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`name`],F(e,i));let a=g(t,[`config`]);return a!=null&&qo(a,r),r}function Xo(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`config`]);return a!=null&&Jo(a,r),r}function Zo(e,t,n){let r={},i=g(e,[`outputGcsUri`]);t!==void 0&&i!=null&&h(t,[`parameters`,`storageUri`],i);let a=g(e,[`safetyFilterLevel`]);t!==void 0&&a!=null&&h(t,[`parameters`,`safetySetting`],a);let o=g(e,[`personGeneration`]);t!==void 0&&o!=null&&h(t,[`parameters`,`personGeneration`],o);let s=g(e,[`includeRaiReason`]);t!==void 0&&s!=null&&h(t,[`parameters`,`includeRaiReason`],s);let c=g(e,[`outputMimeType`]);t!==void 0&&c!=null&&h(t,[`parameters`,`outputOptions`,`mimeType`],c);let l=g(e,[`outputCompressionQuality`]);t!==void 0&&l!=null&&h(t,[`parameters`,`outputOptions`,`compressionQuality`],l);let u=g(e,[`enhanceInputImage`]);t!==void 0&&u!=null&&h(t,[`parameters`,`upscaleConfig`,`enhanceInputImage`],u);let d=g(e,[`imagePreservationFactor`]);t!==void 0&&d!=null&&h(t,[`parameters`,`upscaleConfig`,`imagePreservationFactor`],d);let f=g(e,[`labels`]);t!==void 0&&f!=null&&h(t,[`labels`],f);let p=g(e,[`numberOfImages`]);t!==void 0&&p!=null&&h(t,[`parameters`,`sampleCount`],p);let m=g(e,[`mode`]);return t!==void 0&&m!=null&&h(t,[`parameters`,`mode`],m),r}function Qo(e,t,n){let r={},i=g(t,[`model`]);i!=null&&h(r,[`_url`,`model`],F(e,i));let a=g(t,[`image`]);a!=null&&h(r,[`instances[0]`,`image`],q(a));let o=g(t,[`upscaleFactor`]);o!=null&&h(r,[`parameters`,`upscaleConfig`,`upscaleFactor`],o);let s=g(t,[`config`]);return s!=null&&Zo(s,r),r}function $o(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`predictions`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>to(e))),h(n,[`generatedImages`],e)}return n}function es(e,t){let n={},r=g(e,[`uri`]);r!=null&&h(n,[`uri`],r);let i=g(e,[`encodedVideo`]);i!=null&&h(n,[`videoBytes`],B(i));let a=g(e,[`encoding`]);return a!=null&&h(n,[`mimeType`],a),n}function ts(e,t){let n={},r=g(e,[`gcsUri`]);r!=null&&h(n,[`uri`],r);let i=g(e,[`bytesBase64Encoded`]);i!=null&&h(n,[`videoBytes`],B(i));let a=g(e,[`mimeType`]);return a!=null&&h(n,[`mimeType`],a),n}function ns(e,t){let n={},r=g(e,[`image`]);r!=null&&h(n,[`_self`],q(r));let i=g(e,[`maskMode`]);return i!=null&&h(n,[`maskMode`],i),n}function rs(e,t){let n={},r=g(e,[`image`]);r!=null&&h(n,[`image`],ho(r));let i=g(e,[`referenceType`]);return i!=null&&h(n,[`referenceType`],i),n}function is(e,t){let n={},r=g(e,[`image`]);r!=null&&h(n,[`image`],q(r));let i=g(e,[`referenceType`]);return i!=null&&h(n,[`referenceType`],i),n}function as(e,t){let n={},r=g(e,[`uri`]);r!=null&&h(n,[`uri`],r);let i=g(e,[`videoBytes`]);i!=null&&h(n,[`encodedVideo`],B(i));let a=g(e,[`mimeType`]);return a!=null&&h(n,[`encoding`],a),n}function os(e,t){let n={},r=g(e,[`uri`]);r!=null&&h(n,[`gcsUri`],r);let i=g(e,[`videoBytes`]);i!=null&&h(n,[`bytesBase64Encoded`],B(i));let a=g(e,[`mimeType`]);return a!=null&&h(n,[`mimeType`],a),n}function ss(e,t,n){let r={},i=g(t,[`displayName`]);n!==void 0&&i!=null&&h(n,[`displayName`],i);let a=g(t,[`embeddingModel`]);return n!==void 0&&a!=null&&h(n,[`embeddingModel`],F(e,a)),r}function cs(e,t){let n={},r=g(t,[`config`]);return r!=null&&ss(e,r,n),n}function ls(e,t){let n={},r=g(e,[`force`]);return t!==void 0&&r!=null&&h(t,[`_query`,`force`],r),n}function us(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`_url`,`name`],n);let r=g(e,[`config`]);return r!=null&&ls(r,t),t}function ds(e){let t={},n=g(e,[`name`]);return n!=null&&h(t,[`_url`,`name`],n),t}function fs(e,t){let n={},r=g(e,[`customMetadata`]);if(t!==void 0&&r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`customMetadata`],e)}let i=g(e,[`chunkingConfig`]);return t!==void 0&&i!=null&&h(t,[`chunkingConfig`],i),n}function ps(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`name`],n);let r=g(e,[`metadata`]);r!=null&&h(t,[`metadata`],r);let i=g(e,[`done`]);i!=null&&h(t,[`done`],i);let a=g(e,[`error`]);a!=null&&h(t,[`error`],a);let o=g(e,[`response`]);return o!=null&&h(t,[`response`],hs(o)),t}function ms(e){let t={},n=g(e,[`fileSearchStoreName`]);n!=null&&h(t,[`_url`,`file_search_store_name`],n);let r=g(e,[`fileName`]);r!=null&&h(t,[`fileName`],r);let i=g(e,[`config`]);return i!=null&&fs(i,t),t}function hs(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`parent`]);r!=null&&h(t,[`parent`],r);let i=g(e,[`documentName`]);return i!=null&&h(t,[`documentName`],i),t}function gs(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);return t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i),n}function _s(e){let t={},n=g(e,[`config`]);return n!=null&&gs(n,t),t}function vs(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`fileSearchStores`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`fileSearchStores`],e)}return t}function ys(e,t){let n={},r=g(e,[`mimeType`]);t!==void 0&&r!=null&&h(t,[`mimeType`],r);let i=g(e,[`displayName`]);t!==void 0&&i!=null&&h(t,[`displayName`],i);let a=g(e,[`customMetadata`]);if(t!==void 0&&a!=null){let e=a;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`customMetadata`],e)}let o=g(e,[`chunkingConfig`]);return t!==void 0&&o!=null&&h(t,[`chunkingConfig`],o),n}function bs(e){let t={},n=g(e,[`fileSearchStoreName`]);n!=null&&h(t,[`_url`,`file_search_store_name`],n);let r=g(e,[`config`]);return r!=null&&ys(r,t),t}function xs(e){let t={},n=g(e,[`sdkHttpResponse`]);return n!=null&&h(t,[`sdkHttpResponse`],n),t}var Ss=`Content-Type`,Cs=`X-Server-Timeout`,ws=`User-Agent`,Ts=`x-goog-api-client`,Es=`google-genai-sdk/1.52.0`,Ds=`v1beta1`,Os=`v1beta`,ks=new Set([`us`,`eu`]),As=5,js=[408,429,500,502,503,504],Ms=class{constructor(e){this.clientOptions=Object.assign({},e),this.customBaseUrl=e.httpOptions?.baseUrl,this.clientOptions.vertexai&&(this.clientOptions.project&&this.clientOptions.location?this.clientOptions.apiKey=void 0:this.clientOptions.apiKey&&(this.clientOptions.project=void 0,this.clientOptions.location=void 0));let t={};if(this.clientOptions.vertexai){if(!this.clientOptions.location&&!this.clientOptions.apiKey&&!this.customBaseUrl&&(this.clientOptions.location=`global`),!(this.clientOptions.project&&this.clientOptions.location||this.clientOptions.apiKey)&&!this.customBaseUrl)throw Error(`Authentication is not set up. Please provide either a project and location, or an API key, or a custom base URL.`);let n=e.project&&e.location||!!e.apiKey;this.customBaseUrl&&!n?(t.baseUrl=this.customBaseUrl,this.clientOptions.project=void 0,this.clientOptions.location=void 0):this.clientOptions.apiKey||this.clientOptions.location===`global`?t.baseUrl=`https://aiplatform.googleapis.com/`:this.clientOptions.project&&this.clientOptions.location&&ks.has(this.clientOptions.location)?t.baseUrl=`https://aiplatform.${this.clientOptions.location}.rep.googleapis.com/`:this.clientOptions.project&&this.clientOptions.location&&(t.baseUrl=`https://${this.clientOptions.location}-aiplatform.googleapis.com/`),t.apiVersion=this.clientOptions.apiVersion??Ds}else this.clientOptions.apiKey||console.warn(`API key should be set when using the Gemini API.`),t.apiVersion=this.clientOptions.apiVersion??Os,t.baseUrl=`https://generativelanguage.googleapis.com/`;t.headers=this.getDefaultHeaders(),this.clientOptions.httpOptions=t,e.httpOptions&&(this.clientOptions.httpOptions=this.patchHttpOptions(t,e.httpOptions))}isVertexAI(){return this.clientOptions.vertexai??!1}getProject(){return this.clientOptions.project}getLocation(){return this.clientOptions.location}getCustomBaseUrl(){return this.customBaseUrl}async getAuthHeaders(){let e=new Headers;return await this.clientOptions.auth.addAuthHeaders(e),e}getApiVersion(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.apiVersion!==void 0)return this.clientOptions.httpOptions.apiVersion;throw Error(`API version is not set.`)}getBaseUrl(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.baseUrl!==void 0)return this.clientOptions.httpOptions.baseUrl;throw 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 Error(`Headers are not set.`)}getRequestUrlInternal(e){if(!e||e.baseUrl===void 0||e.apiVersion===void 0)throw Error(`HTTP options are not correctly set.`);let t=[e.baseUrl.endsWith(`/`)?e.baseUrl.slice(0,-1):e.baseUrl];return e.apiVersion&&e.apiVersion!==``&&t.push(e.apiVersion),t.join(`/`)}getBaseResourcePath(){return`projects/${this.clientOptions.project}/locations/${this.clientOptions.location}`}getApiKey(){return this.clientOptions.apiKey}getWebsocketBaseUrl(){let 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 Error(`HTTP options are not correctly set.`)}constructUrl(e,t,n){let r=[this.getRequestUrlInternal(t)];return n&&r.push(this.getBaseResourcePath()),e!==``&&r.push(e),new URL(`${r.join(`/`)}`)}shouldPrependVertexProjectPath(e,t){return!(t.baseUrl&&t.baseUrlResourceScope===Le.COLLECTION||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));let n=this.shouldPrependVertexProjectPath(e,t),r=this.constructUrl(e.path,t,n);if(e.queryParams)for(let[t,n]of Object.entries(e.queryParams))r.searchParams.append(t,String(n));let i={};if(e.httpMethod===`GET`){if(e.body&&e.body!==`{}`)throw Error(`Request body should be empty for GET request, but got non empty request body`)}else i.body=e.body;return i=await this.includeExtraHttpOptionsToRequestInit(i,t,r.toString(),e.abortSignal),this.unaryApiCall(r,i,e.httpMethod)}patchHttpOptions(e,t){let n=JSON.parse(JSON.stringify(e));for(let[e,r]of Object.entries(t))typeof r==`object`?n[e]=Object.assign(Object.assign({},n[e]),r):r!==void 0&&(n[e]=r);return n}async requestStream(e){let t=this.clientOptions.httpOptions;e.httpOptions&&(t=this.patchHttpOptions(this.clientOptions.httpOptions,e.httpOptions));let n=this.shouldPrependVertexProjectPath(e,t),r=this.constructUrl(e.path,t,n);(!r.searchParams.has(`alt`)||r.searchParams.get(`alt`)!==`sse`)&&r.searchParams.set(`alt`,`sse`);let i={};return i.body=e.body,i=await this.includeExtraHttpOptionsToRequestInit(i,t,r.toString(),e.abortSignal),this.streamApiCall(r,i,e.httpMethod)}async includeExtraHttpOptionsToRequestInit(e,t,n,r){if(t&&t.timeout||r){let n=new AbortController,i=n.signal;if(t.timeout&&t?.timeout>0){let e=setTimeout(()=>n.abort(),t.timeout);e&&typeof e.unref==`function`&&e.unref()}r&&r.addEventListener(`abort`,()=>{n.abort()}),e.signal=i}return t&&t.extraBody!==null&&Ps(e,t.extraBody),e.headers=await this.getHeadersInternal(t,n),e}async unaryApiCall(e,t,n){return this.apiCall(e.toString(),Object.assign(Object.assign({},t),{method:n})).then(async e=>(await Ns(e),new ft(e))).catch(e=>{throw e instanceof Error?e:Error(JSON.stringify(e))})}async streamApiCall(e,t,n){return this.apiCall(e.toString(),Object.assign(Object.assign({},t),{method:n})).then(async e=>(await Ns(e),this.processStreamResponse(e))).catch(e=>{throw e instanceof Error?e:Error(JSON.stringify(e))})}processStreamResponse(e){return G(this,arguments,function*(){let t=(e?.body)?.getReader(),n=new TextDecoder(`utf-8`);if(!t)throw Error(`Response body is empty`);try{let r=``,i=[`
2
+
3
+ `,`\r\r`,`\r
4
+ \r
5
+ `];for(;;){let{done:a,value:o}=yield W(t.read());if(a){if(r.trim().length>0)throw Error(`Incomplete JSON segment at the end`);break}let s=n.decode(o,{stream:!0});try{let e=JSON.parse(s);if(`error`in e){let t=JSON.parse(JSON.stringify(e.error)),n=t.status,r=t.code,i=`got status: ${n}. ${JSON.stringify(e)}`;if(r>=400&&r<600)throw new di({message:i,status:r})}}catch(e){if(e.name===`ApiError`)throw e}r+=s;let c=-1,l=0;for(;;){c=-1,l=0;for(let e of i){let t=r.indexOf(e);t!==-1&&(c===-1||t<c)&&(c=t,l=e.length)}if(c===-1)break;let t=r.substring(0,c);r=r.substring(c+l);let n=t.trim();if(n.startsWith(`data:`)){let t=n.substring(5).trim();try{yield yield W(new ft(new Response(t,{headers:e?.headers,status:e?.status,statusText:e?.statusText})))}catch(e){throw Error(`exception parsing stream chunk ${t}. ${e}`)}}}}}finally{t.releaseLock()}})}async apiCall(e,t){if(!this.clientOptions.httpOptions||!this.clientOptions.httpOptions.retryOptions)return fetch(e,t);let n=this.clientOptions.httpOptions.retryOptions;return(0,c.default)(async()=>{let n=await fetch(e,t);if(n.ok)return n;throw js.includes(n.status)?Error(`Retryable HTTP Error: ${n.statusText}`):new c.AbortError(`Non-retryable exception ${n.statusText} sending request`)},{retries:(n.attempts??As)-1})}getDefaultHeaders(){let e={},t=Es+` `+this.clientOptions.userAgentExtra;return e[ws]=t,e[Ts]=t,e[Ss]=`application/json`,e}async getHeadersInternal(e,t){let n=new Headers;if(e&&e.headers){for(let[t,r]of Object.entries(e.headers))n.append(t,r);e.timeout&&e.timeout>0&&n.append(Cs,String(Math.ceil(e.timeout/1e3)))}return await this.clientOptions.auth.addAuthHeaders(n,t),n}getFileName(e){let t=``;return typeof e==`string`&&(t=e.replace(/[/\\]+$/,``),t=t.split(/[/\\]/).pop()??``),t}async uploadFile(e,t){let n={};t!=null&&(n.mimeType=t.mimeType,n.name=t.name,n.displayName=t.displayName),n.name&&!n.name.startsWith(`files/`)&&(n.name=`files/${n.name}`);let r=this.clientOptions.uploader,i=await r.stat(e);n.sizeBytes=String(i.size);let a=t?.mimeType??i.type;if(a===void 0||a===``)throw Error(`Can not determine mimeType. Please provide mimeType in the config.`);n.mimeType=a;let o={file:n},s=this.getFileName(e),c=m(`upload/v1beta/files`,o._url),l=await this.fetchUploadUrl(c,n.sizeBytes,n.mimeType,s,o,t?.httpOptions);return r.upload(e,l,this)}async uploadFileToFileSearchStore(e,t,n){let r=this.clientOptions.uploader,i=await r.stat(t),a=String(i.size),o=n?.mimeType??i.type;if(o===void 0||o===``)throw Error(`Can not determine mimeType. Please provide mimeType in the config.`);let s=`upload/v1beta/${e}:uploadToFileSearchStore`,c=this.getFileName(t),l={};n!=null&&ys(n,l);let u=await this.fetchUploadUrl(s,a,o,c,l,n?.httpOptions);return r.uploadToFileSearchStore(t,u,this)}async downloadFile(e){await this.clientOptions.downloader.download(e,this)}async fetchUploadUrl(e,t,n,r,i,a){let o={};o=a||{apiVersion:``,headers:Object.assign({"Content-Type":`application/json`,"X-Goog-Upload-Protocol":`resumable`,"X-Goog-Upload-Command":`start`,"X-Goog-Upload-Header-Content-Length":`${t}`,"X-Goog-Upload-Header-Content-Type":`${n}`},r?{"X-Goog-Upload-File-Name":r}:{})};let s=await this.request({path:e,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:o});if(!s||!s?.headers)throw Error(`Server did not return an HttpResponse or the returned HttpResponse did not have headers.`);let c=s?.headers?.[`x-goog-upload-url`];if(c===void 0)throw Error(`Failed to get upload url. Server did not return the x-google-upload-url in the headers`);return c}};async function Ns(e){if(e===void 0)throw Error(`response is undefined`);if(!e.ok){let t=e.status,n;n=e.headers.get(`content-type`)?.includes(`application/json`)?await e.json():{error:{message:await e.text(),code:e.status,status:e.statusText}};let r=JSON.stringify(n);throw t>=400&&t<600?new di({message:r,status:t}):Error(r)}}function Ps(e,t){if(!t||Object.keys(t).length===0)return;if(e.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 n={};if(typeof e.body==`string`&&e.body.length>0)try{let t=JSON.parse(e.body);if(typeof t==`object`&&t&&!Array.isArray(t))n=t;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 r(e,t){let n=Object.assign({},e);for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let i=t[e],a=n[e];i&&typeof i==`object`&&!Array.isArray(i)&&a&&typeof a==`object`&&!Array.isArray(a)?n[e]=r(a,i):(a&&i&&typeof a!=typeof i&&console.warn(`includeExtraBodyToRequestInit:deepMerge: Type mismatch for key "${e}". Original type: ${typeof a}, New type: ${typeof i}. Overwriting.`),n[e]=i)}return n}let i=r(n,t);e.body=JSON.stringify(i)}var Fs=`mcp_used/unknown`,Is=!1;function Ls(e){for(let t of e)if(zs(t)||typeof t==`object`&&`inputSchema`in t)return!0;return Is}function Rs(e){e[Ts]=((e[Ts]??``)+` ${Fs}`).trimStart()}function zs(e){return typeof e==`object`&&!!e&&e instanceof Vs}function Bs(e){return G(this,arguments,function*(e,t=100){let n,r=0;for(;r<t;){let t=yield W(e.listTools({cursor:n}));for(let e of t.tools)yield yield W(e),r++;if(!t.nextCursor)break;n=t.nextCursor}})}var Vs=class e{constructor(e=[],t){this.mcpTools=[],this.functionNameToMcpClient={},this.mcpClients=e,this.config=t}static create(t,n){return new e(t,n)}async initialize(){var e,t,n,r;if(this.mcpTools.length>0)return;let i={},a=[];for(let l of this.mcpClients)try{for(var o=!0,s=(t=void 0,K(Bs(l))),c;c=await s.next(),e=c.done,!e;o=!0){r=c.value,o=!1;let e=r;a.push(e);let t=e.name;if(i[t])throw Error(`Duplicate function name ${t} found in MCP tools. Please ensure function names are unique.`);i[t]=l}}catch(e){t={error:e}}finally{try{!o&&!e&&(n=s.return)&&await n.call(s)}finally{if(t)throw t.error}}this.mcpTools=a,this.functionNameToMcpClient=i}async tool(){return await this.initialize(),hn(this.mcpTools,this.config)}async callTool(e){await this.initialize();let t=[];for(let n of e)if(n.name in this.functionNameToMcpClient){let e=this.functionNameToMcpClient[n.name],r;this.config.timeout&&(r={timeout:this.config.timeout});let i=await e.callTool({name:n.name,arguments:n.args},void 0,r);t.push({functionResponse:{name:n.name,response:i.isError?{error:i}:i}})}return t}};async function Hs(e,t,n){let r=new zt,i;i=n.data instanceof Blob?JSON.parse(await n.data.text()):JSON.parse(n.data),Object.assign(r,i),t(r)}var Us=class{constructor(e,t,n){this.apiClient=e,this.auth=t,this.webSocketFactory=n}async connect(e){if(this.apiClient.isVertexAI())throw Error(`Live music is not supported for Vertex AI.`);console.warn(`Live music generation is experimental and may change in future versions.`);let t=this.apiClient.getWebsocketBaseUrl(),n=this.apiClient.getApiVersion(),r=Ks(this.apiClient.getDefaultHeaders()),i=`${t}/ws/google.ai.generativelanguage.${n}.GenerativeService.BidiGenerateMusic?key=${this.apiClient.getApiKey()}`,a=()=>{},o=new Promise(e=>{a=e}),s=e.callbacks,c=function(){a({})},l=this.apiClient,u={onopen:c,onmessage:e=>{Hs(l,s.onmessage,e)},onerror:s?.onerror??function(e){},onclose:s?.onclose??function(e){}},d=this.webSocketFactory.create(i,Gs(r),u);d.connect(),await o;let f={setup:{model:F(this.apiClient,e.model)}};return d.send(JSON.stringify(f)),new Ws(d,this.apiClient)}},Ws=class{constructor(e,t){this.conn=e,this.apiClient=t}async setWeightedPrompts(e){if(!e.weightedPrompts||Object.keys(e.weightedPrompts).length===0)throw Error(`Weighted prompts must be set and contain at least one entry.`);let t=zi(e);this.conn.send(JSON.stringify({clientContent:t}))}async setMusicGenerationConfig(e){e.musicGenerationConfig||={};let t=Ri(e);this.conn.send(JSON.stringify(t))}sendPlaybackControl(e){let t={playbackControl:e};this.conn.send(JSON.stringify(t))}play(){this.sendPlaybackControl(dt.PLAY)}pause(){this.sendPlaybackControl(dt.PAUSE)}stop(){this.sendPlaybackControl(dt.STOP)}resetContext(){this.sendPlaybackControl(dt.RESET_CONTEXT)}close(){this.conn.close()}};function Gs(e){let t={};return e.forEach((e,n)=>{t[n]=e}),t}function Ks(e){let t=new Headers;for(let[n,r]of Object.entries(e))t.append(n,r);return t}var qs="FunctionResponse request must have an `id` field from the response of a ToolCall.FunctionalCalls in Google AI.";async function Js(e,t,n){let r=new Rt,i;i=n.data instanceof Blob?await n.data.text():n.data instanceof ArrayBuffer?new TextDecoder().decode(n.data):n.data;let a=JSON.parse(i);if(e.isVertexAI()){let e=Hi(a);Object.assign(r,e)}else Object.assign(r,a);t(r)}var Ys=class{constructor(e,t,n){this.apiClient=e,this.auth=t,this.webSocketFactory=n,this.music=new Us(this.apiClient,this.auth,this.webSocketFactory)}async connect(e){if(e.config&&e.config.httpOptions)throw Error(`The Live module does not support httpOptions at request-level in LiveConnectConfig yet. Please use the client-level httpOptions configuration instead.`);let t=this.apiClient.getWebsocketBaseUrl(),n=this.apiClient.getApiVersion(),r,i=this.apiClient.getHeaders();e.config&&e.config.tools&&Ls(e.config.tools)&&Rs(i);let a=$s(i);if(this.apiClient.isVertexAI()){let e=this.apiClient.getProject(),i=this.apiClient.getLocation(),o=this.apiClient.getApiKey(),s=!!e&&!!i||!!o;this.apiClient.getCustomBaseUrl()&&!s?r=t:(r=`${t}/ws/google.cloud.aiplatform.${n}.LlmBidiService/BidiGenerateContent`,await this.auth.addAuthHeaders(a,r))}else{let e=this.apiClient.getApiKey(),i=`BidiGenerateContent`,a=`key`;e?.startsWith(`auth_tokens/`)&&(console.warn(`Warning: Ephemeral token support is experimental and may change in future versions.`),n!==`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.`),i=`BidiGenerateContentConstrained`,a=`access_token`),r=`${t}/ws/google.ai.generativelanguage.${n}.GenerativeService.${i}?${a}=${e}`}let o=()=>{},s=new Promise(e=>{o=e}),c=e.callbacks,l=function(){var e;(e=c?.onopen)==null||e.call(c),o({})},u=this.apiClient,d={onopen:l,onmessage:e=>{Js(u,c.onmessage,e)},onerror:c?.onerror??function(e){},onclose:c?.onclose??function(e){}},f=this.webSocketFactory.create(r,Qs(a),d);f.connect(),await s;let p=F(this.apiClient,e.model);if(this.apiClient.isVertexAI()&&p.startsWith(`publishers/`)){let e=this.apiClient.getProject(),t=this.apiClient.getLocation();e&&t&&(p=`projects/${e}/locations/${t}/`+p)}let m={};this.apiClient.isVertexAI()&&e.config?.responseModalities===void 0&&(e.config===void 0?e.config={responseModalities:[we.AUDIO]}:e.config.responseModalities=[we.AUDIO]),e.config?.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).");let h=e.config?.tools??[],g=[];for(let e of h)if(this.isCallableTool(e)){let t=e;g.push(await t.tool())}else g.push(e);g.length>0&&(e.config.tools=g);let _={model:p,config:e.config,callbacks:e.callbacks};return m=this.apiClient.isVertexAI()?Li(this.apiClient,_):Ii(this.apiClient,_),delete m.config,f.send(JSON.stringify(m)),new Zs(f,this.apiClient)}isCallableTool(e){return`callTool`in e&&typeof e.callTool==`function`}},Xs={turnComplete:!0},Zs=class{constructor(e,t){this.conn=e,this.apiClient=t}tLiveClientContent(e,t){if(t.turns!==null&&t.turns!==void 0){let n=[];try{n=L(t.turns),e.isVertexAI()||(n=n.map(e=>aa(e)))}catch{throw Error(`Failed to parse client content "turns", type: '${typeof t.turns}'`)}return{clientContent:{turns:n,turnComplete:t.turnComplete}}}return{clientContent:{turnComplete:t.turnComplete}}}tLiveClienttToolResponse(e,t){let n=[];if(t.functionResponses==null||(n=Array.isArray(t.functionResponses)?t.functionResponses:[t.functionResponses],n.length===0))throw Error(`functionResponses is required.`);for(let t of n){if(typeof t!=`object`||!t||!(`name`in t)||!(`response`in t))throw Error(`Could not parse function response, type '${typeof t}'.`);if(!e.isVertexAI()&&!(`id`in t))throw Error(qs)}return{toolResponse:{functionResponses:n}}}sendClientContent(e){e=Object.assign(Object.assign({},Xs),e);let t=this.tLiveClientContent(this.apiClient,e);this.conn.send(JSON.stringify(t))}sendRealtimeInput(e){let t={};t=this.apiClient.isVertexAI()?{realtimeInput:Vi(e)}:{realtimeInput:Bi(e)},this.conn.send(JSON.stringify(t))}sendToolResponse(e){if(e.functionResponses==null)throw Error(`Tool response parameters are required.`);let t=this.tLiveClienttToolResponse(this.apiClient,e);this.conn.send(JSON.stringify(t))}close(){this.conn.close()}};function Qs(e){let t={};return e.forEach((e,n)=>{t[n]=e}),t}function $s(e){let t=new Headers;for(let[n,r]of Object.entries(e))t.append(n,r);return t}var ec=10;function tc(e){if(e?.automaticFunctionCalling?.disable)return!0;let t=!1;for(let n of e?.tools??[])if(nc(n)){t=!0;break}if(!t)return!0;let n=e?.automaticFunctionCalling?.maximumRemoteCalls;return n&&(n<0||!Number.isInteger(n))||n==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:`,n),!0):!1}function nc(e){return`callTool`in e&&typeof e.callTool==`function`}function rc(e){return(e.config?.tools)?.some(e=>nc(e))??!1}function ic(e){let t=[];return e?.config?.tools&&e.config.tools.forEach((e,n)=>{if(nc(e))return;let r=e;r.functionDeclarations&&r.functionDeclarations.length>0&&t.push(n)}),t}function ac(e){return!e?.automaticFunctionCalling?.ignoreCallHistory}var oc=class extends p{constructor(e){super(),this.apiClient=e,this.embedContent=async e=>{if(!this.apiClient.isVertexAI())return e.model.includes(`gemini-embedding-2`)&&(e.contents=L(e.contents)),await this.embedContentInternal(e);if(e.model.includes(`gemini`)&&e.model!==`gemini-embedding-001`||e.model.includes(`maas`)){let t=L(e.contents);if(t.length>1)throw Error(`The embedContent API for this model only supports one content at a time.`);let n=Object.assign(Object.assign({},e),{content:t[0],embeddingApiType:Be.EMBED_CONTENT});return await this.embedContentInternal(n)}else{let t=Object.assign(Object.assign({},e),{embeddingApiType:Be.PREDICT});return await this.embedContentInternal(t)}},this.generateContent=async e=>{let t=await this.processParamsMaybeAddMcpUsage(e);if(this.maybeMoveToResponseJsonSchem(e),!rc(e)||tc(e.config))return await this.generateContentInternal(t);let n=ic(e);if(n.length>0){let e=n.map(e=>`tools[${e}]`).join(`, `);throw Error(`Automatic function calling with CallableTools (or MCP objects) and basic FunctionDeclarations is not yet supported. Incompatible tools found at ${e}.`)}let r,i,a=L(t.contents),o=t.config?.automaticFunctionCalling?.maximumRemoteCalls??ec,s=0;for(;s<o&&(r=await this.generateContentInternal(t),!(!r.functionCalls||r.functionCalls.length===0));){let n=r.candidates[0].content,o=[];for(let t of e.config?.tools??[])if(nc(t)){let e=await t.callTool(r.functionCalls);o.push(...e)}s++,i={role:`user`,parts:o},t.contents=L(t.contents),t.contents.push(n),t.contents.push(i),ac(t.config)&&(a.push(n),a.push(i))}return ac(t.config)&&(r.automaticFunctionCallingHistory=a),r},this.generateContentStream=async e=>{if(this.maybeMoveToResponseJsonSchem(e),tc(e.config)){let t=await this.processParamsMaybeAddMcpUsage(e);return await this.generateContentStreamInternal(t)}let t=ic(e);if(t.length>0){let e=t.map(e=>`tools[${e}]`).join(`, `);throw Error(`Incompatible tools found at ${e}. Automatic function calling with CallableTools (or MCP objects) and basic FunctionDeclarations" is not yet supported.`)}let n=e?.config?.toolConfig?.functionCallingConfig?.streamFunctionCallArguments,r=e?.config?.automaticFunctionCalling?.disable;if(n&&!r)throw Error(`Running in streaming mode with 'streamFunctionCallArguments' enabled, this feature is not compatible with automatic function calling (AFC). Please set 'config.automaticFunctionCalling.disable' to true to disable AFC or leave 'config.toolConfig.functionCallingConfig.streamFunctionCallArguments' to be undefined or set to false to disable streaming function call arguments feature.`);return await this.processAfcStream(e)},this.generateImages=async e=>await this.generateImagesInternal(e).then(e=>{let t,n=[];if(e?.generatedImages)for(let r of e.generatedImages)r&&r?.safetyAttributes&&r?.safetyAttributes?.contentType===`Positive Prompt`?t=r?.safetyAttributes:n.push(r);let r;return r=t?{generatedImages:n,positivePromptSafetyAttributes:t,sdkHttpResponse:e.sdkHttpResponse}:{generatedImages:n,sdkHttpResponse:e.sdkHttpResponse},r}),this.list=async e=>{let t={config:Object.assign(Object.assign({},{queryBase:!0}),e?.config)};if(this.apiClient.isVertexAI()&&!t.config.queryBase){if(t.config?.filter)throw Error(`Filtering tuned models list for Gemini Enterprise Agent Platform (previously known as Vertex AI) is not currently supported`);t.config.filter=`labels.tune-type:*`}return new H(V.PAGED_ITEM_MODELS,e=>this.listInternal(e),await this.listInternal(t),t)},this.editImage=async e=>{let t={model:e.model,prompt:e.prompt,referenceImages:[],config:e.config};return e.referenceImages&&e.referenceImages&&(t.referenceImages=e.referenceImages.map(e=>e.toReferenceImageAPI())),await this.editImageInternal(t)},this.upscaleImage=async e=>{let t={numberOfImages:1,mode:`upscale`};e.config&&(t=Object.assign(Object.assign({},t),e.config));let n={model:e.model,image:e.image,upscaleFactor:e.upscaleFactor,config:t};return await this.upscaleImageInternal(n)},this.generateVideos=async e=>{if((e.prompt||e.image||e.video)&&e.source)throw Error(`Source and prompt/image/video are mutually exclusive. Please only use source.`);return this.apiClient.isVertexAI()||(e.video?.uri&&e.video?.videoBytes?e.video={uri:e.video.uri,mimeType:e.video.mimeType}:e.source?.video?.uri&&e.source?.video?.videoBytes&&(e.source.video={uri:e.source.video.uri,mimeType:e.source.video.mimeType})),await this.generateVideosInternal(e)}}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){let t=e.config?.tools;if(!t)return e;let n=await Promise.all(t.map(async e=>nc(e)?await e.tool():e)),r={model:e.model,contents:e.contents,config:Object.assign(Object.assign({},e.config),{tools:n})};if(r.config.tools=n,e.config&&e.config.tools&&Ls(e.config.tools)){let t=e.config.httpOptions?.headers??{},n=Object.assign({},t);Object.keys(n).length===0&&(n=this.apiClient.getDefaultHeaders()),Rs(n),r.config.httpOptions=Object.assign(Object.assign({},e.config.httpOptions),{headers:n})}return r}async initAfcToolsMap(e){let t=new Map;for(let n of e.config?.tools??[])if(nc(n)){let e=n,r=await e.tool();for(let n of r.functionDeclarations??[]){if(!n.name)throw Error(`Function declaration name is required.`);if(t.has(n.name))throw Error(`Duplicate tool declaration name: ${n.name}`);t.set(n.name,e)}}return t}async processAfcStream(e){let t=e.config?.automaticFunctionCalling?.maximumRemoteCalls??ec,n=!1,r=0,i=await this.initAfcToolsMap(e);return(function(e,i,a){return G(this,arguments,function*(){for(var o,s,c,l;r<t;){n&&=(r++,!1);let p=yield W(e.processParamsMaybeAddMcpUsage(a)),m=yield W(e.generateContentStreamInternal(p)),h=[],g=[];try{for(var u=!0,d=(s=void 0,K(m)),f;f=yield W(d.next()),o=f.done,!o;u=!0){l=f.value,u=!1;let e=l;if(yield yield W(e),e.candidates&&e.candidates[0]?.content){g.push(e.candidates[0].content);for(let n of e.candidates[0].content.parts??[])if(r<t&&n.functionCall){if(!n.functionCall.name)throw Error(`Function call name was not returned by the model.`);if(i.has(n.functionCall.name)){let e=yield W(i.get(n.functionCall.name).callTool([n.functionCall]));h.push(...e)}else throw Error(`Automatic function calling was requested, but not all the tools the model used implement the CallableTool interface. Available tools: ${i.keys()}, mising tool: ${n.functionCall.name}`)}}}}catch(e){s={error:e}}finally{try{!u&&!o&&(c=d.return)&&(yield W(c.call(d)))}finally{if(s)throw s.error}}if(h.length>0){n=!0;let e=new pt;e.candidates=[{content:{role:`user`,parts:h}}],yield yield W(e);let t=[];t.push(...g),t.push({role:`user`,parts:h}),a.contents=L(a.contents).concat(t)}else break}})})(this,i,e)}async generateContentInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Fa(this.apiClient,e);return n=m(`{model}:generateContent`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=La(e),n=new pt;return Object.assign(n,t),n})}else{let i=Pa(this.apiClient,e);return n=m(`{model}:generateContent`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Ia(e),n=new pt;return Object.assign(n,t),n})}}async generateContentStreamInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Fa(this.apiClient,e);return n=m(`{model}:streamGenerateContent?alt=sse`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.requestStream({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}),t.then(function(t){return G(this,arguments,function*(){var n,r,i,a;try{for(var o=!0,s=K(t),c;c=yield W(s.next()),n=c.done,!n;o=!0){a=c.value,o=!1;let t=a,n=La(yield W(t.json()),e);n.sdkHttpResponse={headers:t.headers};let r=new pt;Object.assign(r,n),yield yield W(r)}}catch(e){r={error:e}}finally{try{!o&&!n&&(i=s.return)&&(yield W(i.call(s)))}finally{if(r)throw r.error}}})})}else{let i=Pa(this.apiClient,e);return n=m(`{model}:streamGenerateContent?alt=sse`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.requestStream({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}),t.then(function(t){return G(this,arguments,function*(){var n,r,i,a;try{for(var o=!0,s=K(t),c;c=yield W(s.next()),n=c.done,!n;o=!0){a=c.value,o=!1;let t=a,n=Ia(yield W(t.json()),e);n.sdkHttpResponse={headers:t.headers};let r=new pt;Object.assign(r,n),yield yield W(r)}}catch(e){r={error:e}}finally{try{!o&&!n&&(i=s.return)&&(yield W(i.call(s)))}finally{if(r)throw r.error}}})})}}async embedContentInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=wa(this.apiClient,e,e);return n=m(xn(e.model)?`{model}:embedContent`:`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(t=>{let n=Ea(t,e),r=new mt;return Object.assign(r,n),r})}else{let i=Ca(this.apiClient,e);return n=m(`{model}:batchEmbedContents`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Ta(e),n=new mt;return Object.assign(n,t),n})}}async generateImagesInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Va(this.apiClient,e);return n=m(`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Ua(e),n=new ht;return Object.assign(n,t),n})}else{let i=Ba(this.apiClient,e);return n=m(`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=Ha(e),n=new ht;return Object.assign(n,t),n})}}async editImageInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=ya(this.apiClient,e);return n=m(`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=ba(e),n=new gt;return Object.assign(n,t),n})}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async upscaleImageInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Qo(this.apiClient,e);return n=m(`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=$o(e),n=new _t;return Object.assign(n,t),n})}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async recontextImage(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=ko(this.apiClient,e);return n=m(`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=Ao(e),n=new vt;return Object.assign(n,t),n})}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async segmentImage(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Ro(this.apiClient,e);return n=m(`{model}:predict`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=zo(e),n=new yt;return Object.assign(n,t),n})}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async get(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=so(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>wo(e))}else{let i=oo(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>Co(e))}}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=yo(this.apiClient,e);return n=m(`{models_url}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=xo(e),n=new bt;return Object.assign(n,t),n})}else{let i=vo(this.apiClient,e);return n=m(`{models_url}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=bo(e),n=new bt;return Object.assign(n,t),n})}}async update(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Xo(this.apiClient,e);return n=m(`{model}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`PATCH`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>wo(e))}else{let i=Yo(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`PATCH`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>Co(e))}}async delete(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=ha(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=_a(e),n=new xt;return Object.assign(n,t),n})}else{let i=ma(this.apiClient,e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=ga(e),n=new xt;return Object.assign(n,t),n})}}async countTokens(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=da(this.apiClient,e);return n=m(`{model}:countTokens`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=pa(e),n=new St;return Object.assign(n,t),n})}else{let i=ua(this.apiClient,e);return n=m(`{model}:countTokens`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=fa(e),n=new St;return Object.assign(n,t),n})}}async computeTokens(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=ta(this.apiClient,e);return n=m(`{model}:computeTokens`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=na(e),n=new Ct;return Object.assign(n,t),n})}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async generateVideosInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=Ya(this.apiClient,e);return n=m(`{model}:predictLongRunning`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=qa(e),n=new wt;return Object.assign(n,t),n})}else{let i=Ja(this.apiClient,e);return n=m(`{model}:predictLongRunning`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=Ka(e),n=new wt;return Object.assign(n,t),n})}}},sc=class extends p{constructor(e){super(),this.apiClient=e}async getVideosOperation(e){let t=e.operation,n=e.config;if(t.name===void 0||t.name===``)throw Error(`Operation name is required.`);if(this.apiClient.isVertexAI()){let e=t.name.split(`/operations/`)[0],r;n&&`httpOptions`in n&&(r=n.httpOptions);let i=await this.fetchPredictVideosOperationInternal({operationName:t.name,resourceName:e,config:{httpOptions:r}});return t._fromAPIResponse({apiResponse:i,_isVertexAI:!0})}else{let e=await this.getVideosOperationInternal({operationName:t.name,config:n});return t._fromAPIResponse({apiResponse:e,_isVertexAI:!1})}}async get(e){let t=e.operation,n=e.config;if(t.name===void 0||t.name===``)throw Error(`Operation name is required.`);if(this.apiClient.isVertexAI()){let e=t.name.split(`/operations/`)[0],r;n&&`httpOptions`in n&&(r=n.httpOptions);let i=await this.fetchPredictVideosOperationInternal({operationName:t.name,resourceName:e,config:{httpOptions:r}});return t._fromAPIResponse({apiResponse:i,_isVertexAI:!0})}else{let e=await this.getVideosOperationInternal({operationName:t.name,config:n});return t._fromAPIResponse({apiResponse:e,_isVertexAI:!1})}}async getVideosOperationInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=O(e);return n=m(`{operationName}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t}else{let i=D(e);return n=m(`{operationName}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t}}async fetchPredictVideosOperationInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=b(e);return n=m(`{resourceName}:fetchPredictOperation`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}};function cc(e){let t={};if(g(e,[`languageCodes`])!==void 0)throw Error(`languageCodes parameter is not supported in Gemini API.`);return t}function lc(e){let t={},n=g(e,[`apiKey`]);if(n!=null&&h(t,[`apiKey`],n),g(e,[`apiKeyConfig`])!==void 0)throw Error(`apiKeyConfig parameter is not supported in Gemini API.`);if(g(e,[`authType`])!==void 0)throw Error(`authType parameter is not supported in Gemini API.`);if(g(e,[`googleServiceAccountConfig`])!==void 0)throw Error(`googleServiceAccountConfig parameter is not supported in Gemini API.`);if(g(e,[`httpBasicAuthConfig`])!==void 0)throw Error(`httpBasicAuthConfig parameter is not supported in Gemini API.`);if(g(e,[`oauthConfig`])!==void 0)throw Error(`oauthConfig parameter is not supported in Gemini API.`);if(g(e,[`oidcConfig`])!==void 0)throw Error(`oidcConfig parameter is not supported in Gemini API.`);return t}function uc(e){let t={},n=g(e,[`data`]);if(n!=null&&h(t,[`data`],n),g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function dc(e){let t={},n=g(e,[`parts`]);if(n!=null){let e=n;Array.isArray(e)&&(e=e.map(e=>bc(e))),h(t,[`parts`],e)}let r=g(e,[`role`]);return r!=null&&h(t,[`role`],r),t}function fc(e,t,n){let r={},i=g(t,[`expireTime`]);n!==void 0&&i!=null&&h(n,[`expireTime`],i);let a=g(t,[`newSessionExpireTime`]);n!==void 0&&a!=null&&h(n,[`newSessionExpireTime`],a);let o=g(t,[`uses`]);n!==void 0&&o!=null&&h(n,[`uses`],o);let s=g(t,[`liveConnectConstraints`]);n!==void 0&&s!=null&&h(n,[`bidiGenerateContentSetup`],yc(e,s));let c=g(t,[`lockAdditionalFields`]);return n!==void 0&&c!=null&&h(n,[`fieldMask`],c),r}function pc(e,t){let n={},r=g(t,[`config`]);return r!=null&&h(n,[`config`],fc(e,r,n)),n}function mc(e){let t={};if(g(e,[`displayName`])!==void 0)throw Error(`displayName parameter is not supported in Gemini API.`);let n=g(e,[`fileUri`]);n!=null&&h(t,[`fileUri`],n);let r=g(e,[`mimeType`]);return r!=null&&h(t,[`mimeType`],r),t}function hc(e){let t={},n=g(e,[`id`]);n!=null&&h(t,[`id`],n);let r=g(e,[`args`]);r!=null&&h(t,[`args`],r);let i=g(e,[`name`]);if(i!=null&&h(t,[`name`],i),g(e,[`partialArgs`])!==void 0)throw Error(`partialArgs parameter is not supported in Gemini API.`);if(g(e,[`willContinue`])!==void 0)throw Error(`willContinue parameter is not supported in Gemini API.`);return t}function gc(e){let t={},n=g(e,[`authConfig`]);n!=null&&h(t,[`authConfig`],lc(n));let r=g(e,[`enableWidget`]);return r!=null&&h(t,[`enableWidget`],r),t}function _c(e){let t={},n=g(e,[`searchTypes`]);if(n!=null&&h(t,[`searchTypes`],n),g(e,[`blockingConfidence`])!==void 0)throw Error(`blockingConfidence parameter is not supported in Gemini API.`);if(g(e,[`excludeDomains`])!==void 0)throw Error(`excludeDomains parameter is not supported in Gemini API.`);let r=g(e,[`timeRangeFilter`]);return r!=null&&h(t,[`timeRangeFilter`],r),t}function vc(e,t){let n={},r=g(e,[`generationConfig`]);t!==void 0&&r!=null&&h(t,[`setup`,`generationConfig`],r);let i=g(e,[`responseModalities`]);t!==void 0&&i!=null&&h(t,[`setup`,`generationConfig`,`responseModalities`],i);let a=g(e,[`temperature`]);t!==void 0&&a!=null&&h(t,[`setup`,`generationConfig`,`temperature`],a);let o=g(e,[`topP`]);t!==void 0&&o!=null&&h(t,[`setup`,`generationConfig`,`topP`],o);let s=g(e,[`topK`]);t!==void 0&&s!=null&&h(t,[`setup`,`generationConfig`,`topK`],s);let c=g(e,[`maxOutputTokens`]);t!==void 0&&c!=null&&h(t,[`setup`,`generationConfig`,`maxOutputTokens`],c);let l=g(e,[`mediaResolution`]);t!==void 0&&l!=null&&h(t,[`setup`,`generationConfig`,`mediaResolution`],l);let u=g(e,[`seed`]);t!==void 0&&u!=null&&h(t,[`setup`,`generationConfig`,`seed`],u);let d=g(e,[`speechConfig`]);t!==void 0&&d!=null&&h(t,[`setup`,`generationConfig`,`speechConfig`],tn(d));let f=g(e,[`thinkingConfig`]);t!==void 0&&f!=null&&h(t,[`setup`,`generationConfig`,`thinkingConfig`],f);let p=g(e,[`enableAffectiveDialog`]);t!==void 0&&p!=null&&h(t,[`setup`,`generationConfig`,`enableAffectiveDialog`],p);let m=g(e,[`systemInstruction`]);t!==void 0&&m!=null&&h(t,[`setup`,`systemInstruction`],dc(I(m)));let _=g(e,[`tools`]);if(t!==void 0&&_!=null){let e=rn(_);Array.isArray(e)&&(e=e.map(e=>Cc(nn(e)))),h(t,[`setup`,`tools`],e)}let v=g(e,[`sessionResumption`]);t!==void 0&&v!=null&&h(t,[`setup`,`sessionResumption`],Sc(v));let y=g(e,[`inputAudioTranscription`]);t!==void 0&&y!=null&&h(t,[`setup`,`inputAudioTranscription`],cc(y));let b=g(e,[`outputAudioTranscription`]);t!==void 0&&b!=null&&h(t,[`setup`,`outputAudioTranscription`],cc(b));let x=g(e,[`realtimeInputConfig`]);t!==void 0&&x!=null&&h(t,[`setup`,`realtimeInputConfig`],x);let S=g(e,[`contextWindowCompression`]);t!==void 0&&S!=null&&h(t,[`setup`,`contextWindowCompression`],S);let C=g(e,[`proactivity`]);if(t!==void 0&&C!=null&&h(t,[`setup`,`proactivity`],C),g(e,[`explicitVadSignal`])!==void 0)throw Error(`explicitVadSignal parameter is not supported in Gemini API.`);let w=g(e,[`avatarConfig`]);t!==void 0&&w!=null&&h(t,[`setup`,`avatarConfig`],w);let T=g(e,[`safetySettings`]);if(t!==void 0&&T!=null){let e=T;Array.isArray(e)&&(e=e.map(e=>xc(e))),h(t,[`setup`,`safetySettings`],e)}return n}function yc(e,t){let n={},r=g(t,[`model`]);r!=null&&h(n,[`setup`,`model`],F(e,r));let i=g(t,[`config`]);return i!=null&&h(n,[`config`],vc(i,n)),n}function bc(e){let t={},n=g(e,[`mediaResolution`]);n!=null&&h(t,[`mediaResolution`],n);let r=g(e,[`codeExecutionResult`]);r!=null&&h(t,[`codeExecutionResult`],r);let i=g(e,[`executableCode`]);i!=null&&h(t,[`executableCode`],i);let a=g(e,[`fileData`]);a!=null&&h(t,[`fileData`],mc(a));let o=g(e,[`functionCall`]);o!=null&&h(t,[`functionCall`],hc(o));let s=g(e,[`functionResponse`]);s!=null&&h(t,[`functionResponse`],s);let c=g(e,[`inlineData`]);c!=null&&h(t,[`inlineData`],uc(c));let l=g(e,[`text`]);l!=null&&h(t,[`text`],l);let u=g(e,[`thought`]);u!=null&&h(t,[`thought`],u);let d=g(e,[`thoughtSignature`]);d!=null&&h(t,[`thoughtSignature`],d);let f=g(e,[`videoMetadata`]);f!=null&&h(t,[`videoMetadata`],f);let p=g(e,[`toolCall`]);p!=null&&h(t,[`toolCall`],p);let m=g(e,[`toolResponse`]);m!=null&&h(t,[`toolResponse`],m);let _=g(e,[`partMetadata`]);return _!=null&&h(t,[`partMetadata`],_),t}function xc(e){let t={},n=g(e,[`category`]);if(n!=null&&h(t,[`category`],n),g(e,[`method`])!==void 0)throw Error(`method parameter is not supported in Gemini API.`);let r=g(e,[`threshold`]);return r!=null&&h(t,[`threshold`],r),t}function Sc(e){let t={},n=g(e,[`handle`]);if(n!=null&&h(t,[`handle`],n),g(e,[`transparent`])!==void 0)throw Error(`transparent parameter is not supported in Gemini API.`);return t}function Cc(e){let t={};if(g(e,[`retrieval`])!==void 0)throw Error(`retrieval parameter is not supported in Gemini API.`);let n=g(e,[`computerUse`]);n!=null&&h(t,[`computerUse`],n);let r=g(e,[`fileSearch`]);r!=null&&h(t,[`fileSearch`],r);let i=g(e,[`googleSearch`]);i!=null&&h(t,[`googleSearch`],_c(i));let a=g(e,[`googleMaps`]);a!=null&&h(t,[`googleMaps`],gc(a));let o=g(e,[`codeExecution`]);if(o!=null&&h(t,[`codeExecution`],o),g(e,[`enterpriseWebSearch`])!==void 0)throw Error(`enterpriseWebSearch parameter is not supported in Gemini API.`);let s=g(e,[`functionDeclarations`]);if(s!=null){let e=s;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`functionDeclarations`],e)}let c=g(e,[`googleSearchRetrieval`]);if(c!=null&&h(t,[`googleSearchRetrieval`],c),g(e,[`parallelAiSearch`])!==void 0)throw Error(`parallelAiSearch parameter is not supported in Gemini API.`);let l=g(e,[`urlContext`]);l!=null&&h(t,[`urlContext`],l);let u=g(e,[`mcpServers`]);if(u!=null){let e=u;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`mcpServers`],e)}return t}function wc(e){let t=[];for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let r=e[n];if(typeof r==`object`&&r&&Object.keys(r).length>0){let e=Object.keys(r).map(e=>`${n}.${e}`);t.push(...e)}else t.push(n)}return t.join(`,`)}function Tc(e,t){let n=null,r=e.bidiGenerateContentSetup;if(typeof r==`object`&&r&&`setup`in r){let t=r.setup;typeof t==`object`&&t?(e.bidiGenerateContentSetup=t,n=t):delete e.bidiGenerateContentSetup}else r!==void 0&&delete e.bidiGenerateContentSetup;let i=e.fieldMask;if(n){let r=wc(n);if(Array.isArray(t?.lockAdditionalFields)&&t?.lockAdditionalFields.length===0)r?e.fieldMask=r:delete e.fieldMask;else if(t?.lockAdditionalFields&&t.lockAdditionalFields.length>0&&i!==null&&Array.isArray(i)&&i.length>0){let t=[`temperature`,`topK`,`topP`,`maxOutputTokens`,`responseModalities`,`seed`,`speechConfig`],n=[];i.length>0&&(n=i.map(e=>t.includes(e)?`generationConfig.${e}`:e));let a=[];r&&a.push(r),n.length>0&&a.push(...n),a.length>0?e.fieldMask=a.join(`,`):delete e.fieldMask}else delete e.fieldMask}else i!==null&&Array.isArray(i)&&i.length>0?e.fieldMask=i.join(`,`):delete e.fieldMask;return e}var Ec=class extends p{constructor(e){super(),this.apiClient=e}async create(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`The client.tokens.create method is only supported by the Gemini Developer API.`);{let i=pc(this.apiClient,e);n=m(`auth_tokens`,i._url),r=i._query,delete i.config,delete i._url,delete i._query;let a=Tc(i,e.config);return t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(a),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}};function Dc(e,t){let n={},r=g(e,[`force`]);return t!==void 0&&r!=null&&h(t,[`_query`,`force`],r),n}function Oc(e){let t={},n=g(e,[`name`]);n!=null&&h(t,[`_url`,`name`],n);let r=g(e,[`config`]);return r!=null&&Dc(r,t),t}function kc(e){let t={},n=g(e,[`name`]);return n!=null&&h(t,[`_url`,`name`],n),t}function Ac(e,t){let n={},r=g(e,[`pageSize`]);t!==void 0&&r!=null&&h(t,[`_query`,`pageSize`],r);let i=g(e,[`pageToken`]);return t!==void 0&&i!=null&&h(t,[`_query`,`pageToken`],i),n}function jc(e){let t={},n=g(e,[`parent`]);n!=null&&h(t,[`_url`,`parent`],n);let r=g(e,[`config`]);return r!=null&&Ac(r,t),t}function Mc(e){let t={},n=g(e,[`sdkHttpResponse`]);n!=null&&h(t,[`sdkHttpResponse`],n);let r=g(e,[`nextPageToken`]);r!=null&&h(t,[`nextPageToken`],r);let i=g(e,[`documents`]);if(i!=null){let e=i;Array.isArray(e)&&(e=e.map(e=>e)),h(t,[`documents`],e)}return t}var Nc=class extends p{constructor(e){super(),this.apiClient=e,this.list=async e=>new H(V.PAGED_ITEM_DOCUMENTS,t=>this.listInternal({parent:e.parent,config:t.config}),await this.listInternal(e),e)}async get(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=kc(e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async delete(e){let t=``,n={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let r=Oc(e);t=m(`{name}`,r._url),n=r._query,delete r._url,delete r._query,await this.apiClient.request({path:t,queryParams:n,body:JSON.stringify(r),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal})}}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=jc(e);return n=m(`{parent}/documents`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=Mc(e),n=new kt;return Object.assign(n,t),n})}}},Pc=class extends p{constructor(e,t=new Nc(e)){super(),this.apiClient=e,this.documents=t,this.list=async(e={})=>new H(V.PAGED_ITEM_FILE_SEARCH_STORES,e=>this.listInternal(e),await this.listInternal(e),e)}async uploadToFileSearchStore(e){if(this.apiClient.isVertexAI())throw Error(`Gemini Enterprise Agent Platform (previously known as Vertex AI) does not support uploading files to a file search store.`);return this.apiClient.uploadFileToFileSearchStore(e.fileSearchStoreName,e.file,e.config)}async downloadMedia(e,t){if(this.apiClient.isVertexAI())throw Error(`This method is only supported in the Gemini Developer client.`);let n=new URL(e,`http://dummy.com`),r=n.pathname;if(r.startsWith(`/`)&&(r=r.slice(1)),!r.includes(`/media/`))throw Error(`Invalid uri format: ${e}. Expected to contain /media/`);let i={};n.searchParams.forEach((e,t)=>{i[t]=e}),i.alt=`media`;let a=Object.assign({},t?.httpOptions),o=await this.apiClient.request({path:r,httpMethod:`GET`,queryParams:i,httpOptions:a});if(o instanceof ft){let e=await o.responseInternal.arrayBuffer();return new Uint8Array(e)}else throw Error(`Unexpected response type from downloadMedia`)}async create(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=cs(this.apiClient,e);return n=m(`fileSearchStores`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async get(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=ds(e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>e)}}async delete(e){let t=``,n={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let r=us(e);t=m(`{name}`,r._url),n=r._query,delete r._url,delete r._query,await this.apiClient.request({path:t,queryParams:n,body:JSON.stringify(r),httpMethod:`DELETE`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal})}}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=_s(e);return n=m(`fileSearchStores`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=vs(e),n=new At;return Object.assign(n,t),n})}}async uploadToFileSearchStoreInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=bs(e);return n=m(`upload/v1beta/{file_search_store_name}:uploadToFileSearchStore`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=xs(e),n=new jt;return Object.assign(n,t),n})}}async importFile(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=ms(e);return n=m(`{file_search_store_name}:importFile`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json()),t.then(e=>{let t=ps(e),n=new Mt;return Object.assign(n,t),n})}}},Fc=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return Fc=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))},Ic=()=>Fc();function Lc(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var Rc=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)},J=class extends Error{},Y=class e extends J{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.error=n}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new Bc({message:r,cause:Rc(n)});let a=n;return t===400?new Hc(t,a,r,i):t===401?new Uc(t,a,r,i):t===403?new Wc(t,a,r,i):t===404?new Gc(t,a,r,i):t===409?new Kc(t,a,r,i):t===422?new qc(t,a,r,i):t===429?new Jc(t,a,r,i):t>=500?new Yc(t,a,r,i):new e(t,a,r,i)}},zc=class extends Y{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},Bc=class extends Y{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},Vc=class extends Bc{constructor({message:e}={}){super({message:e??`Request timed out.`})}},Hc=class extends Y{},Uc=class extends Y{},Wc=class extends Y{},Gc=class extends Y{},Kc=class extends Y{},qc=class extends Y{},Jc=class extends Y{},Yc=class extends Y{},Xc=/^[a-z][a-z0-9+.-]*:/i,Zc=e=>Xc.test(e),Qc=e=>(Qc=Array.isArray,Qc(e)),$c=Qc;function el(e){if(!e)return!0;for(let t in e)return!1;return!0}function tl(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var nl=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new J(`${e} must be an integer`);if(t<0)throw new J(`${e} must be a positive integer`);return t},rl=e=>{try{return JSON.parse(e)}catch{return}},il=e=>new Promise(t=>setTimeout(t,e));function al(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new GeminiNextGenAPIClient({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function ol(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function sl(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return ol({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.call(t)}})}function cl(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function ll(e){var t;if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await(t=e[Symbol.asyncIterator]()).return?.call(t);return}let n=e.getReader(),r=n.cancel();n.releaseLock(),await r}var ul=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)});function dl(e){return Object.entries(e).filter(([e,t])=>t!==void 0).map(([e,t])=>{if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(t===null)return`${encodeURIComponent(e)}=`;throw new J(`Cannot stringify type ${typeof t}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join(`&`)}var fl=`0.0.1`,pl=()=>{if(typeof File>`u`){let{process:e}=globalThis,t=typeof e?.versions?.node==`string`&&parseInt(e.versions.node.split(`.`))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":``))}};function ml(e,t,n){return pl(),new File(e,t??`unknown_file`,n)}function hl(e){return(typeof e==`object`&&!!e&&(`name`in e&&e.name&&String(e.name)||`url`in e&&e.url&&String(e.url)||`filename`in e&&e.filename&&String(e.filename)||`path`in e&&e.path&&String(e.path))||``).split(/[\\/]/).pop()||void 0}var gl=e=>typeof e==`object`&&!!e&&typeof e[Symbol.asyncIterator]==`function`,_l=e=>typeof e==`object`&&!!e&&typeof e.size==`number`&&typeof e.type==`string`&&typeof e.text==`function`&&typeof e.slice==`function`&&typeof e.arrayBuffer==`function`,vl=e=>typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.lastModified==`number`&&_l(e),yl=e=>typeof e==`object`&&!!e&&typeof e.url==`string`&&typeof e.blob==`function`;async function bl(e,t,n){if(pl(),e=await e,vl(e))return e instanceof File?e:ml([await e.arrayBuffer()],e.name);if(yl(e)){let r=await e.blob();return t||=new URL(e.url).pathname.split(/[\\/]/).pop(),ml(await xl(r),t,n)}let r=await xl(e);if(t||=hl(e),!n?.type){let e=r.find(e=>typeof e==`object`&&`type`in e&&e.type);typeof e==`string`&&(n=Object.assign(Object.assign({},n),{type:e}))}return ml(r,t,n)}async function xl(e){var t,n,r,i;let a=[];if(typeof e==`string`||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)a.push(e);else if(_l(e))a.push(e instanceof Blob?e:await e.arrayBuffer());else if(gl(e))try{for(var o=!0,s=K(e),c;c=await s.next(),t=c.done,!t;o=!0){i=c.value,o=!1;let e=i;a.push(...await xl(e))}}catch(e){n={error:e}}finally{try{!o&&!t&&(r=s.return)&&await r.call(s)}finally{if(n)throw n.error}}else{let t=e?.constructor?.name;throw Error(`Unexpected data type: ${typeof e}${t?`; constructor: ${t}`:``}${Sl(e)}`)}return a}function Sl(e){return typeof e!=`object`||!e?``:`; props: [${Object.getOwnPropertyNames(e).map(e=>`"${e}"`).join(`, `)}]`}var Cl=class{constructor(e){this._client=e}};Cl._key=[];function wl(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Tl=Object.freeze(Object.create(null)),X=((e=wl)=>(function(t,...n){if(t.length===1)return t[0];let r=!1,i=[],a=t.reduce((t,a,o)=>{/[?#]/.test(a)&&(r=!0);let s=n[o],c=(r?encodeURIComponent:e)(``+s);return o!==n.length&&(s==null||typeof s==`object`&&s.toString===Object.getPrototypeOf(Object.getPrototypeOf(s.hasOwnProperty??Tl)??Tl)?.toString)&&(c=s+``,i.push({start:t.length+a.length,length:c.length,error:`Value of type ${Object.prototype.toString.call(s).slice(8,-1)} is not a valid path parameter`})),t+a+(o===n.length?``:c)},``),o=a.split(/[?#]/,1)[0],s=/(^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=s.exec(o))!==null;){let e=c[0].startsWith(`/`),t=+!!e,n=e?c[0].slice(1):c[0];i.push({start:c.index+t,length:n.length,error:`Value "${n}" can\'t be safely passed as a path parameter`})}if(i.sort((e,t)=>e.start-t.start),i.length>0){let e=0,t=i.reduce((t,n)=>{let r=` `.repeat(n.start-e),i=`^`.repeat(n.length);return e=n.start+n.length,t+r+i},``);throw new J(`Path parameters result in path with invalid segments:\n${i.map(e=>e.error).join(`
6
+ `)}\n${a}\n${t}`)}return a}))(wl),El=class extends Cl{create(e,t){let{api_version:n=this._client.apiVersion}=e,r=U(e,[`api_version`]);if(`model`in r&&`agent_config`in r)throw new J("Invalid request: specified `model` and `agent_config`. If specifying `model`, use `generation_config`.");if(`agent`in r&&`generation_config`in r)throw new J("Invalid request: specified `agent` and `generation_config`. If specifying `agent`, use `agent_config`.");return this._client.post(X`/${n}/interactions`,Object.assign(Object.assign({body:r},t),{stream:e.stream??!1}))}delete(e,t={},n){let{api_version:r=this._client.apiVersion}=t??{};return this._client.delete(X`/${r}/interactions/${e}`,n)}cancel(e,t={},n){let{api_version:r=this._client.apiVersion}=t??{};return this._client.post(X`/${r}/interactions/${e}/cancel`,n)}get(e,t={},n){let r=t??{},{api_version:i=this._client.apiVersion}=r,a=U(r,[`api_version`]);return this._client.get(X`/${i}/interactions/${e}`,Object.assign(Object.assign({query:a},n),{stream:t?.stream??!1}))}};El._key=Object.freeze([`interactions`]);var Dl=class extends El{},Ol=class extends Cl{create(e,t){let{api_version:n=this._client.apiVersion}=e,r=U(e,[`api_version`]);return this._client.post(X`/${n}/webhooks`,Object.assign({body:r},t))}update(e,t={},n){let r=t??{},{api_version:i=this._client.apiVersion,update_mask:a}=r,o=U(r,[`api_version`,`update_mask`]);return this._client.patch(X`/${i}/webhooks/${e}`,Object.assign({query:{update_mask:a},body:o},n))}list(e={},t){let n=e??{},{api_version:r=this._client.apiVersion}=n,i=U(n,[`api_version`]);return this._client.get(X`/${r}/webhooks`,Object.assign({query:i},t))}delete(e,t={},n){let{api_version:r=this._client.apiVersion}=t??{};return this._client.delete(X`/${r}/webhooks/${e}`,n)}get(e,t={},n){let{api_version:r=this._client.apiVersion}=t??{};return this._client.get(X`/${r}/webhooks/${e}`,n)}ping(e,t=void 0,n){let{api_version:r=this._client.apiVersion,body:i}=t??{};return this._client.post(X`/${r}/webhooks/${e}:ping`,Object.assign({body:i},n))}rotateSigningSecret(e,t={},n){let r=t??{},{api_version:i=this._client.apiVersion}=r,a=U(r,[`api_version`]);return this._client.post(X`/${i}/webhooks/${e}:rotateSigningSecret`,Object.assign({body:a},n))}};Ol._key=Object.freeze([`webhooks`]);var kl=class extends Ol{};function Al(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}var jl;function Ml(e){let t;return(jl??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}var Nl;function Pl(e){let t;return(Nl??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var Fl=class{constructor(){this.buffer=new Uint8Array,this.carriageReturnIndex=null,this.searchIndex=0}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?Ml(e):e;this.buffer=Al([this.buffer,t]);let n=[],r;for(;(r=Il(this.buffer,this.carriageReturnIndex??this.searchIndex))!=null;){if(r.carriage&&this.carriageReturnIndex==null){this.carriageReturnIndex=r.index;continue}if(this.carriageReturnIndex!=null&&(r.index!==this.carriageReturnIndex+1||r.carriage)){n.push(Pl(this.buffer.subarray(0,this.carriageReturnIndex-1))),this.buffer=this.buffer.subarray(this.carriageReturnIndex),this.carriageReturnIndex=null,this.searchIndex=0;continue}let e=this.carriageReturnIndex===null?r.preceding:r.preceding-1,t=Pl(this.buffer.subarray(0,e));n.push(t),this.buffer=this.buffer.subarray(r.index),this.carriageReturnIndex=null,this.searchIndex=0}return this.searchIndex=Math.max(0,this.buffer.length-1),n}flush(){return this.buffer.length?this.decode(`
7
+ `):[]}};Fl.NEWLINE_CHARS=new Set([`
8
+ `,`\r`]),Fl.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Il(e,t){let n=t??0,r=e.indexOf(10,n),i=e.indexOf(13,n);if(r===-1&&i===-1)return null;let a;return a=r!==-1&&i!==-1?Math.min(r,i):r===-1?i:r,e[a]===10?{preceding:a,index:a+1,carriage:!1}:{preceding:a,index:a+1,carriage:!0}}var Ll={off:0,error:200,warn:300,info:400,debug:500},Rl=(e,t,n)=>{if(e){if(tl(Ll,e))return e;Z(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Ll))}`)}};function zl(){}function Bl(e,t,n){return!t||Ll[e]>Ll[n]?zl:t[e].bind(t)}var Vl={error:zl,warn:zl,info:zl,debug:zl},Hl=new WeakMap;function Z(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return Vl;let r=Hl.get(t);if(r&&r[0]===n)return r[1];let i={error:Bl(`error`,t,n),warn:Bl(`warn`,t,n),info:Bl(`info`,t,n),debug:Bl(`debug`,t,n)};return Hl.set(t,[n,i]),i}var Q=e=>(e.options&&(e.options=Object.assign({},e.options),delete e.options.headers),e.headers&&=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`x-goog-api-key`||e.toLowerCase()===`authorization`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t])),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e),Ul=class e{constructor(e,t,n){this.iterator=e,this.controller=t,this.client=n}static fromSSEResponse(t,n,r){let i=!1,a=r?Z(r):console;function o(){return G(this,arguments,function*(){var e,r,o,s;if(i)throw new J("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let c=!1;try{try{for(var l=!0,u=K(Wl(t,n)),d;d=yield W(u.next()),e=d.done,!e;l=!0){s=d.value,l=!1;let e=s;if(!c)if(e.data.startsWith(`[DONE]`)){c=!0;continue}else try{yield yield W(JSON.parse(e.data))}catch(t){throw a.error(`Could not parse message into JSON:`,e.data),a.error(`From chunk:`,e.raw),t}}}catch(e){r={error:e}}finally{try{!l&&!e&&(o=u.return)&&(yield W(o.call(u)))}finally{if(r)throw r.error}}c=!0}catch(e){if(Lc(e))return yield W(void 0);throw e}finally{c||n.abort()}})}return new e(o,n,r)}static fromReadableStream(t,n,r){let i=!1;function a(){return G(this,arguments,function*(){var e,n,r,i;let a=new Fl,o=cl(t);try{for(var s=!0,c=K(o),l;l=yield W(c.next()),e=l.done,!e;s=!0){i=l.value,s=!1;let e=i;for(let t of a.decode(e))yield yield W(t)}}catch(e){n={error:e}}finally{try{!s&&!e&&(r=c.return)&&(yield W(r.call(c)))}finally{if(n)throw n.error}}for(let e of a.flush())yield yield W(e)})}function o(){return G(this,arguments,function*(){var e,t,r,o;if(i)throw new J("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let s=!1;try{try{for(var c=!0,l=K(a()),u;u=yield W(l.next()),e=u.done,!e;c=!0){o=u.value,c=!1;let e=o;s||e&&(yield yield W(JSON.parse(e)))}}catch(e){t={error:e}}finally{try{!c&&!e&&(r=l.return)&&(yield W(r.call(l)))}finally{if(t)throw t.error}}s=!0}catch(e){if(Lc(e))return yield W(void 0);throw e}finally{s||n.abort()}})}return new e(o,n,r)}[Symbol.asyncIterator](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,this.client),new e(()=>i(n),this.controller,this.client)]}toReadableStream(){let e=this,t;return ol({async start(){t=e[Symbol.asyncIterator]()},async pull(e){try{let{value:n,done:r}=await t.next();if(r)return e.close();let i=Ml(JSON.stringify(n)+`
9
+ `);e.enqueue(i)}catch(t){e.error(t)}},async cancel(){await t.return?.call(t)}})}};function Wl(e,t){return G(this,arguments,function*(){var n,r,i,a;if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new J(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new J(`Attempted to iterate over a response with no body`);let o=new Kl,s=new Fl,c=cl(e.body);try{for(var l=!0,u=K(Gl(c)),d;d=yield W(u.next()),n=d.done,!n;l=!0){a=d.value,l=!1;let e=a;for(let t of s.decode(e)){let e=o.decode(t);e&&(yield yield W(e))}}}catch(e){r={error:e}}finally{try{!l&&!n&&(i=u.return)&&(yield W(i.call(u)))}finally{if(r)throw r.error}}for(let e of s.flush()){let t=o.decode(e);t&&(yield yield W(t))}})}function Gl(e){return G(this,arguments,function*(){var t,n,r,i;try{for(var a=!0,o=K(e),s;s=yield W(o.next()),t=s.done,!t;a=!0){i=s.value,a=!1;let e=i;e!=null&&(yield yield W(e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?Ml(e):e))}}catch(e){n={error:e}}finally{try{!a&&!t&&(r=o.return)&&(yield W(r.call(o)))}finally{if(n)throw n.error}}})}var Kl=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
10
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],e}if(this.chunks.push(e),e.startsWith(`:`))return null;let[t,n,r]=ql(e,`:`);return r.startsWith(` `)&&(r=r.substring(1)),t===`event`?this.event=r:t===`data`&&this.data.push(r),null}};function ql(e,t){let n=e.indexOf(t);return n===-1?[e,``,``]:[e.substring(0,n),t,e.substring(n+t.length)]}async function Jl(e,t){let{response:n,requestLogID:r,retryOfRequestLogID:i,startTime:a}=t,o=await(async()=>{if(t.options.stream)return Z(e).debug(`response`,n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e):Ul.fromSSEResponse(n,t.controller,e);if(n.status===204)return null;if(t.options.__binaryResponse)return n;let r=(n.headers.get(`content-type`)?.split(`;`)[0])?.trim();return r?.includes(`application/json`)||r?.endsWith(`+json`)?n.headers.get(`content-length`)===`0`?void 0:await n.json():await n.text()})();return Z(e).debug(`[${r}] response parsed`,Q({retryOfRequestLogID:i,url:n.url,status:n.status,body:o,durationMs:Date.now()-a})),o}var Yl=class e extends Promise{constructor(e,t,n=Jl){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=n,this.client=e}_thenUnwrap(t){return new e(this.client,this.responsePromise,async(e,n)=>t(await this.parseResponse(e,n),n))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t}}parse(){return this.parsedPromise||=this.responsePromise.then(e=>this.parseResponse(this.client,e)),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}},Xl=Symbol(`brand.privateNullableHeaders`);function*Zl(e){if(!e)return;if(Xl in e){let{values:t,nulls:n}=e;yield*t.entries();for(let e of n)yield[e,null];return}let t=!1,n;e instanceof Headers?n=e.entries():$c(e)?n=e:(t=!0,n=Object.entries(e??{}));for(let e of n){let n=e[0];if(typeof n!=`string`)throw TypeError(`expected header name to be a string`);let r=$c(e[1])?e[1]:[e[1]],i=!1;for(let e of r)e!==void 0&&(t&&!i&&(i=!0,yield[n,null]),yield[n,e])}}var Ql=e=>{let t=new Headers,n=new Set;for(let r of e){let e=new Set;for(let[i,a]of Zl(r)){let r=i.toLowerCase();e.has(r)||(t.delete(i),e.add(r)),a===null?(t.delete(i),n.add(r)):(t.append(i,a),n.delete(r))}}return{[Xl]:!0,values:t,nulls:n}},$l=e=>{var t;if(globalThis.process!==void 0)return{}[e]?.trim()||void 0;if(globalThis.Deno!==void 0)return(((t=globalThis.Deno.env)?.get)?.call(t,e))?.trim()||void 0},eu,tu=class e{constructor(t){var{baseURL:n=$l(`GEMINI_NEXT_GEN_API_BASE_URL`),apiKey:r=$l(`GEMINI_API_KEY`)??null,apiVersion:i=`v1beta`}=t,a=U(t,[`baseURL`,`apiKey`,`apiVersion`]);let o=Object.assign(Object.assign({apiKey:r,apiVersion:i},a),{baseURL:n||`https://generativelanguage.googleapis.com`});this.baseURL=o.baseURL,this.timeout=o.timeout??e.DEFAULT_TIMEOUT,this.logger=o.logger??console;let s=`warn`;this.logLevel=s,this.logLevel=Rl(o.logLevel,`ClientOptions.logLevel`,this)??Rl($l(`GEMINI_NEXT_GEN_API_LOG`),`process.env['GEMINI_NEXT_GEN_API_LOG']`,this)??s,this.fetchOptions=o.fetchOptions,this.maxRetries=o.maxRetries??2,this.fetch=o.fetch??al(),this.encoder=ul,this._options=o,this.apiKey=r,this.apiVersion=i,this.clientAdapter=o.clientAdapter}withOptions(e){return new this.constructor(Object.assign(Object.assign(Object.assign({},this._options),{baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,apiVersion:this.apiVersion}),e))}baseURLOverridden(){return this.baseURL!==`https://generativelanguage.googleapis.com`}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){if(!(e.has(`authorization`)||e.has(`x-goog-api-key`))&&!(this.apiKey&&e.get(`x-goog-api-key`))&&!t.has(`x-goog-api-key`))throw Error(`Could not resolve authentication method. Expected the apiKey to be set. Or for the "x-goog-api-key" headers to be explicitly omitted`)}async authHeaders(e){let t=Ql([e.headers]);if(!(t.values.has(`authorization`)||t.values.has(`x-goog-api-key`))){if(this.apiKey)return Ql([{"x-goog-api-key":this.apiKey}]);if(this.clientAdapter&&this.clientAdapter.isVertexAI())return Ql([await this.clientAdapter.getAuthHeaders()])}}stringifyQuery(e){return dl(e)}getUserAgent(){return`${this.constructor.name}/JS ${fl}`}defaultIdempotencyKey(){return`stainless-node-retry-${Ic()}`}makeStatusError(e,t,n,r){return Y.generate(e,t,n,r)}buildURL(e,t,n){let r=!this.baseURLOverridden()&&n||this.baseURL,i=Zc(e)?new URL(e):new URL(r+(r.endsWith(`/`)&&e.startsWith(`/`)?e.slice(1):e)),a=this.defaultQuery(),o=Object.fromEntries(i.searchParams);return(!el(a)||!el(o))&&(t=Object.assign(Object.assign(Object.assign({},o),a),t)),typeof t==`object`&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}async prepareOptions(e){if(this.clientAdapter&&this.clientAdapter.isVertexAI()&&!e.path.startsWith(`/${this.apiVersion}/projects/`)){let t=e.path.slice(this.apiVersion.length+1);e.path=`/${this.apiVersion}/projects/${this.clientAdapter.getProject()}/locations/${this.clientAdapter.getLocation()}${t}`}}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest(`get`,e,t)}post(e,t){return this.methodRequest(`post`,e,t)}patch(e,t){return this.methodRequest(`patch`,e,t)}put(e,t){return this.methodRequest(`put`,e,t)}delete(e,t){return this.methodRequest(`delete`,e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(n=>Object.assign({method:e,path:t},n)))}request(e,t=null){return new Yl(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let r=await e,i=r.maxRetries??this.maxRetries;t??=i,await this.prepareOptions(r);let{req:a,url:o,timeout:s}=await this.buildRequest(r,{retryCount:i-t});await this.prepareRequest(a,{url:o,options:r});let c=`log_`+(Math.random()*(1<<24)|0).toString(16).padStart(6,`0`),l=n===void 0?``:`, retryOf: ${n}`,u=Date.now();if(Z(this).debug(`[${c}] sending request`,Q({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:a.headers})),r.signal?.aborted)throw new zc;let d=new AbortController,f=await this.fetchWithTimeout(o,a,s,d).catch(Rc),p=Date.now();if(f instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new zc;let i=Lc(f)||/timed? ?out/i.test(String(f)+(`cause`in f?String(f.cause):``));if(t)return Z(this).info(`[${c}] connection ${i?`timed out`:`failed`} - ${e}`),Z(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (${e})`,Q({retryOfRequestLogID:n,url:o,durationMs:p-u,message:f.message})),this.retryRequest(r,t,n??c);throw Z(this).info(`[${c}] connection ${i?`timed out`:`failed`} - error; no more retries left`),Z(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (error; no more retries left)`,Q({retryOfRequestLogID:n,url:o,durationMs:p-u,message:f.message})),i?new Vc:new Bc({cause:f})}let m=`[${c}${l}] ${a.method} ${o} ${f.ok?`succeeded`:`failed`} with status ${f.status} in ${p-u}ms`;if(!f.ok){let e=await this.shouldRetry(f);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await ll(f.body),Z(this).info(`${m} - ${e}`),Z(this).debug(`[${c}] response error (${e})`,Q({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:p-u})),this.retryRequest(r,t,n??c,f.headers)}let i=e?`error; no more retries left`:`error; not retryable`;Z(this).info(`${m} - ${i}`);let a=await f.text().catch(e=>Rc(e).message),o=rl(a),s=o?void 0:a;throw Z(this).debug(`[${c}] response error (${i})`,Q({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,message:s,durationMs:Date.now()-u})),this.makeStatusError(f.status,o,s,f.headers)}return Z(this).info(m),Z(this).debug(`[${c}] response start`,Q({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:p-u})),{response:f,options:r,controller:d,requestLogID:c,retryOfRequestLogID:n,startTime:u}}async fetchWithTimeout(e,t,n,r){let i=t||{},{signal:a,method:o}=i,s=U(i,[`signal`,`method`]),c=this._makeAbort(r);a&&a.addEventListener(`abort`,c,{once:!0});let l=setTimeout(c,n),u=globalThis.ReadableStream&&s.body instanceof globalThis.ReadableStream||typeof s.body==`object`&&s.body!==null&&Symbol.asyncIterator in s.body,d=Object.assign(Object.assign(Object.assign({signal:r.signal},u?{duplex:`half`}:{}),{method:`GET`}),s);o&&(d.method=o.toUpperCase());try{return await this.fetch.call(void 0,e,d)}finally{clearTimeout(l)}}async shouldRetry(e){let t=e.headers.get(`x-should-retry`);return t===`true`?!0:t===`false`?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let i,a=r?.get(`retry-after-ms`);if(a){let e=parseFloat(a);Number.isNaN(e)||(i=e)}let o=r?.get(`retry-after`);if(o&&!i){let e=parseFloat(o);i=Number.isNaN(e)?Date.parse(o)-Date.now():e*1e3}if(i===void 0){let n=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,n)}return await il(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let n=t-e;return Math.min(.5*2**n,8)*(1-Math.random()*.25)*1e3}async buildRequest(e,{retryCount:t=0}={}){let n=Object.assign({},e),{method:r,path:i,query:a,defaultBaseURL:o}=n,s=this.buildURL(i,a,o);`timeout`in n&&nl(`timeout`,n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l}=this.buildBody({options:n}),u=await this.buildHeaders({options:e,method:r,bodyHeaders:c,retryCount:t});return{req:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({method:r,headers:u},n.signal&&{signal:n.signal}),globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:`half`}),l&&{body:l}),this.fetchOptions??{}),n.fetchOptions??{}),url:s,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let i={};this.idempotencyHeader&&t!==`get`&&(e.idempotencyKey||=this.defaultIdempotencyKey(),i[this.idempotencyHeader]=e.idempotencyKey);let a=await this.authHeaders(e),o=Ql([i,{Accept:`application/json`,"User-Agent":this.getUserAgent()},this._options.defaultHeaders,n,e.headers,a]);return this.validateHeaders(o),o.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=Ql([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e==`string`&&n.values.has(`content-type`)||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e==`object`&&(Symbol.asyncIterator in e||Symbol.iterator in e&&`next`in e&&typeof e.next==`function`)?{bodyHeaders:void 0,body:sl(e)}:typeof e==`object`&&n.values.get(`content-type`)===`application/x-www-form-urlencoded`?{bodyHeaders:{"content-type":`application/x-www-form-urlencoded`},body:this.stringifyQuery(e)}:this.encoder({body:e,headers:n})}};tu.DEFAULT_TIMEOUT=6e4;var $=class extends tu{constructor(){super(...arguments),this.interactions=new Dl(this),this.webhooks=new kl(this)}};eu=$,$.GeminiNextGenAPIClient=eu,$.GeminiNextGenAPIClientError=J,$.APIError=Y,$.APIConnectionError=Bc,$.APIConnectionTimeoutError=Vc,$.APIUserAbortError=zc,$.NotFoundError=Gc,$.ConflictError=Kc,$.RateLimitError=Jc,$.BadRequestError=Hc,$.AuthenticationError=Uc,$.InternalServerError=Yc,$.PermissionDeniedError=Wc,$.UnprocessableEntityError=qc,$.toFile=bl,$.Interactions=Dl,$.Webhooks=kl;function nu(e,t){let n={},r=g(e,[`name`]);return r!=null&&h(n,[`_url`,`name`],r),n}function ru(e,t){let n={},r=g(e,[`name`]);return r!=null&&h(n,[`_url`,`name`],r),n}function iu(e,t){let n={},r=g(e,[`sdkHttpResponse`]);return r!=null&&h(n,[`sdkHttpResponse`],r),n}function au(e,t){let n={},r=g(e,[`sdkHttpResponse`]);return r!=null&&h(n,[`sdkHttpResponse`],r),n}function ou(e,t,n){let r={};if(g(e,[`validationDataset`])!==void 0)throw Error(`validationDataset parameter is not supported in Gemini API.`);let i=g(e,[`tunedModelDisplayName`]);if(t!==void 0&&i!=null&&h(t,[`displayName`],i),g(e,[`description`])!==void 0)throw Error(`description parameter is not supported in Gemini API.`);let a=g(e,[`epochCount`]);t!==void 0&&a!=null&&h(t,[`tuningTask`,`hyperparameters`,`epochCount`],a);let o=g(e,[`learningRateMultiplier`]);if(o!=null&&h(r,[`tuningTask`,`hyperparameters`,`learningRateMultiplier`],o),g(e,[`exportLastCheckpointOnly`])!==void 0)throw Error(`exportLastCheckpointOnly parameter is not supported in Gemini API.`);if(g(e,[`preTunedModelCheckpointId`])!==void 0)throw Error(`preTunedModelCheckpointId parameter is not supported in Gemini API.`);if(g(e,[`adapterSize`])!==void 0)throw Error(`adapterSize parameter is not supported in Gemini API.`);if(g(e,[`tuningMode`])!==void 0)throw Error(`tuningMode parameter is not supported in Gemini API.`);if(g(e,[`customBaseModel`])!==void 0)throw Error(`customBaseModel parameter is not supported in Gemini API.`);let s=g(e,[`batchSize`]);t!==void 0&&s!=null&&h(t,[`tuningTask`,`hyperparameters`,`batchSize`],s);let c=g(e,[`learningRate`]);if(t!==void 0&&c!=null&&h(t,[`tuningTask`,`hyperparameters`,`learningRate`],c),g(e,[`labels`])!==void 0)throw Error(`labels parameter is not supported in Gemini API.`);if(g(e,[`beta`])!==void 0)throw Error(`beta parameter is not supported in Gemini API.`);if(g(e,[`baseTeacherModel`])!==void 0)throw Error(`baseTeacherModel parameter is not supported in Gemini API.`);if(g(e,[`tunedTeacherModelSource`])!==void 0)throw Error(`tunedTeacherModelSource parameter is not supported in Gemini API.`);if(g(e,[`sftLossWeightMultiplier`])!==void 0)throw Error(`sftLossWeightMultiplier parameter is not supported in Gemini API.`);if(g(e,[`outputUri`])!==void 0)throw Error(`outputUri parameter is not supported in Gemini API.`);if(g(e,[`encryptionSpec`])!==void 0)throw Error(`encryptionSpec parameter is not supported in Gemini API.`);return r}function su(e,t,n){let r={},i=g(n,[`config`,`method`]);if(i===void 0&&(i=`SUPERVISED_FINE_TUNING`),i===`SUPERVISED_FINE_TUNING`){let n=g(e,[`validationDataset`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`],xu(n))}else if(i===`PREFERENCE_TUNING`){let n=g(e,[`validationDataset`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`],xu(n))}else if(i===`DISTILLATION`){let n=g(e,[`validationDataset`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`],xu(n))}let a=g(e,[`tunedModelDisplayName`]);t!==void 0&&a!=null&&h(t,[`tunedModelDisplayName`],a);let o=g(e,[`description`]);t!==void 0&&o!=null&&h(t,[`description`],o);let s=g(n,[`config`,`method`]);if(s===void 0&&(s=`SUPERVISED_FINE_TUNING`),s===`SUPERVISED_FINE_TUNING`){let n=g(e,[`epochCount`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`hyperParameters`,`epochCount`],n)}else if(s===`PREFERENCE_TUNING`){let n=g(e,[`epochCount`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`,`hyperParameters`,`epochCount`],n)}else if(s===`DISTILLATION`){let n=g(e,[`epochCount`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`hyperParameters`,`epochCount`],n)}let c=g(n,[`config`,`method`]);if(c===void 0&&(c=`SUPERVISED_FINE_TUNING`),c===`SUPERVISED_FINE_TUNING`){let n=g(e,[`learningRateMultiplier`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`hyperParameters`,`learningRateMultiplier`],n)}else if(c===`PREFERENCE_TUNING`){let n=g(e,[`learningRateMultiplier`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`,`hyperParameters`,`learningRateMultiplier`],n)}else if(c===`DISTILLATION`){let n=g(e,[`learningRateMultiplier`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`hyperParameters`,`learningRateMultiplier`],n)}let l=g(n,[`config`,`method`]);if(l===void 0&&(l=`SUPERVISED_FINE_TUNING`),l===`SUPERVISED_FINE_TUNING`){let n=g(e,[`exportLastCheckpointOnly`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`exportLastCheckpointOnly`],n)}else if(l===`PREFERENCE_TUNING`){let n=g(e,[`exportLastCheckpointOnly`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`,`exportLastCheckpointOnly`],n)}else if(l===`DISTILLATION`){let n=g(e,[`exportLastCheckpointOnly`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`exportLastCheckpointOnly`],n)}let u=g(n,[`config`,`method`]);if(u===void 0&&(u=`SUPERVISED_FINE_TUNING`),u===`SUPERVISED_FINE_TUNING`){let n=g(e,[`adapterSize`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`hyperParameters`,`adapterSize`],n)}else if(u===`PREFERENCE_TUNING`){let n=g(e,[`adapterSize`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`,`hyperParameters`,`adapterSize`],n)}else if(u===`DISTILLATION`){let n=g(e,[`adapterSize`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`hyperParameters`,`adapterSize`],n)}let d=g(n,[`config`,`method`]);if(d===void 0&&(d=`SUPERVISED_FINE_TUNING`),d===`SUPERVISED_FINE_TUNING`){let n=g(e,[`tuningMode`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`tuningMode`],n)}else if(d===`DISTILLATION`){let n=g(e,[`tuningMode`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`tuningMode`],n)}let f=g(e,[`customBaseModel`]);t!==void 0&&f!=null&&h(t,[`customBaseModel`],f);let p=g(n,[`config`,`method`]);if(p===void 0&&(p=`SUPERVISED_FINE_TUNING`),p===`SUPERVISED_FINE_TUNING`){let n=g(e,[`batchSize`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`hyperParameters`,`batchSize`],n)}else if(p===`DISTILLATION`){let n=g(e,[`batchSize`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`hyperParameters`,`batchSize`],n)}let m=g(n,[`config`,`method`]);if(m===void 0&&(m=`SUPERVISED_FINE_TUNING`),m===`SUPERVISED_FINE_TUNING`){let n=g(e,[`learningRate`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`hyperParameters`,`learningRate`],n)}else if(m===`DISTILLATION`){let n=g(e,[`learningRate`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`hyperParameters`,`learningRate`],n)}let _=g(e,[`labels`]);t!==void 0&&_!=null&&h(t,[`labels`],_);let v=g(e,[`beta`]);t!==void 0&&v!=null&&h(t,[`preferenceOptimizationSpec`,`hyperParameters`,`beta`],v);let y=g(e,[`baseTeacherModel`]);t!==void 0&&y!=null&&h(t,[`distillationSpec`,`baseTeacherModel`],y);let b=g(e,[`tunedTeacherModelSource`]);t!==void 0&&b!=null&&h(t,[`distillationSpec`,`tunedTeacherModelSource`],b);let x=g(e,[`sftLossWeightMultiplier`]);t!==void 0&&x!=null&&h(t,[`distillationSpec`,`hyperParameters`,`sftLossWeightMultiplier`],x);let S=g(e,[`outputUri`]);t!==void 0&&S!=null&&h(t,[`outputUri`],S);let C=g(e,[`encryptionSpec`]);return t!==void 0&&C!=null&&h(t,[`encryptionSpec`],C),r}function cu(e,t){let n={},r=g(e,[`baseModel`]);r!=null&&h(n,[`baseModel`],r);let i=g(e,[`preTunedModel`]);i!=null&&h(n,[`preTunedModel`],i);let a=g(e,[`trainingDataset`]);a!=null&&gu(a);let o=g(e,[`config`]);return o!=null&&ou(o,n),n}function lu(e,t){let n={},r=g(e,[`baseModel`]);r!=null&&h(n,[`baseModel`],r);let i=g(e,[`preTunedModel`]);i!=null&&h(n,[`preTunedModel`],i);let a=g(e,[`trainingDataset`]);a!=null&&_u(a,n,t);let o=g(e,[`config`]);return o!=null&&su(o,n,t),n}function uu(e,t){let n={},r=g(e,[`name`]);return r!=null&&h(n,[`_url`,`name`],r),n}function du(e,t){let n={},r=g(e,[`name`]);return r!=null&&h(n,[`_url`,`name`],r),n}function fu(e,t,n){let r={},i=g(e,[`pageSize`]);t!==void 0&&i!=null&&h(t,[`_query`,`pageSize`],i);let a=g(e,[`pageToken`]);t!==void 0&&a!=null&&h(t,[`_query`,`pageToken`],a);let o=g(e,[`filter`]);return t!==void 0&&o!=null&&h(t,[`_query`,`filter`],o),r}function pu(e,t){let n={},r=g(e,[`config`]);return r!=null&&fu(r,n),n}function mu(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`nextPageToken`]);i!=null&&h(n,[`nextPageToken`],i);let a=g(e,[`tuningJobs`]);if(a!=null){let e=a;Array.isArray(e)&&(e=e.map(e=>yu(e))),h(n,[`tuningJobs`],e)}return n}function hu(e,t){let n={},r=g(e,[`name`]);r!=null&&h(n,[`model`],r);let i=g(e,[`name`]);return i!=null&&h(n,[`endpoint`],i),n}function gu(e,t){let n={};if(g(e,[`gcsUri`])!==void 0)throw Error(`gcsUri parameter is not supported in Gemini API.`);if(g(e,[`vertexDatasetResource`])!==void 0)throw Error(`vertexDatasetResource parameter is not supported in Gemini API.`);let r=g(e,[`examples`]);if(r!=null){let e=r;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`examples`,`examples`],e)}return n}function _u(e,t,n){let r={},i=g(n,[`config`,`method`]);if(i===void 0&&(i=`SUPERVISED_FINE_TUNING`),i===`SUPERVISED_FINE_TUNING`){let n=g(e,[`gcsUri`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`trainingDatasetUri`],n)}else if(i===`PREFERENCE_TUNING`){let n=g(e,[`gcsUri`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`,`trainingDatasetUri`],n)}else if(i===`DISTILLATION`){let n=g(e,[`gcsUri`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`promptDatasetUri`],n)}let a=g(n,[`config`,`method`]);if(a===void 0&&(a=`SUPERVISED_FINE_TUNING`),a===`SUPERVISED_FINE_TUNING`){let n=g(e,[`vertexDatasetResource`]);t!==void 0&&n!=null&&h(t,[`supervisedTuningSpec`,`trainingDatasetUri`],n)}else if(a===`PREFERENCE_TUNING`){let n=g(e,[`vertexDatasetResource`]);t!==void 0&&n!=null&&h(t,[`preferenceOptimizationSpec`,`trainingDatasetUri`],n)}else if(a===`DISTILLATION`){let n=g(e,[`vertexDatasetResource`]);t!==void 0&&n!=null&&h(t,[`distillationSpec`,`promptDatasetUri`],n)}if(g(e,[`examples`])!==void 0)throw Error(`examples parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).`);return r}function vu(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`name`]);i!=null&&h(n,[`name`],i);let a=g(e,[`state`]);a!=null&&h(n,[`state`],on(a));let o=g(e,[`createTime`]);o!=null&&h(n,[`createTime`],o);let s=g(e,[`tuningTask`,`startTime`]);s!=null&&h(n,[`startTime`],s);let c=g(e,[`tuningTask`,`completeTime`]);c!=null&&h(n,[`endTime`],c);let l=g(e,[`updateTime`]);l!=null&&h(n,[`updateTime`],l);let u=g(e,[`description`]);u!=null&&h(n,[`description`],u);let d=g(e,[`baseModel`]);d!=null&&h(n,[`baseModel`],d);let f=g(e,[`_self`]);return f!=null&&h(n,[`tunedModel`],hu(f)),n}function yu(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`name`]);i!=null&&h(n,[`name`],i);let a=g(e,[`state`]);a!=null&&h(n,[`state`],on(a));let o=g(e,[`createTime`]);o!=null&&h(n,[`createTime`],o);let s=g(e,[`startTime`]);s!=null&&h(n,[`startTime`],s);let c=g(e,[`endTime`]);c!=null&&h(n,[`endTime`],c);let l=g(e,[`updateTime`]);l!=null&&h(n,[`updateTime`],l);let u=g(e,[`error`]);u!=null&&h(n,[`error`],u);let d=g(e,[`description`]);d!=null&&h(n,[`description`],d);let f=g(e,[`baseModel`]);f!=null&&h(n,[`baseModel`],f);let p=g(e,[`tunedModel`]);p!=null&&h(n,[`tunedModel`],p);let m=g(e,[`preTunedModel`]);m!=null&&h(n,[`preTunedModel`],m);let _=g(e,[`supervisedTuningSpec`]);_!=null&&h(n,[`supervisedTuningSpec`],_);let v=g(e,[`preferenceOptimizationSpec`]);v!=null&&h(n,[`preferenceOptimizationSpec`],v);let y=g(e,[`distillationSpec`]);y!=null&&h(n,[`distillationSpec`],y);let b=g(e,[`tuningDataStats`]);b!=null&&h(n,[`tuningDataStats`],b);let x=g(e,[`encryptionSpec`]);x!=null&&h(n,[`encryptionSpec`],x);let S=g(e,[`partnerModelTuningSpec`]);S!=null&&h(n,[`partnerModelTuningSpec`],S);let C=g(e,[`customBaseModel`]);C!=null&&h(n,[`customBaseModel`],C);let w=g(e,[`evaluateDatasetRuns`]);if(w!=null){let e=w;Array.isArray(e)&&(e=e.map(e=>e)),h(n,[`evaluateDatasetRuns`],e)}let T=g(e,[`experiment`]);T!=null&&h(n,[`experiment`],T);let E=g(e,[`fullFineTuningSpec`]);E!=null&&h(n,[`fullFineTuningSpec`],E);let D=g(e,[`labels`]);D!=null&&h(n,[`labels`],D);let O=g(e,[`outputUri`]);O!=null&&h(n,[`outputUri`],O);let k=g(e,[`pipelineJob`]);k!=null&&h(n,[`pipelineJob`],k);let A=g(e,[`serviceAccount`]);A!=null&&h(n,[`serviceAccount`],A);let j=g(e,[`tunedModelDisplayName`]);j!=null&&h(n,[`tunedModelDisplayName`],j);let M=g(e,[`tuningJobState`]);M!=null&&h(n,[`tuningJobState`],M);let ee=g(e,[`veoTuningSpec`]);ee!=null&&h(n,[`veoTuningSpec`],ee);let te=g(e,[`distillationSamplingSpec`]);te!=null&&h(n,[`distillationSamplingSpec`],te);let ne=g(e,[`tuningJobMetadata`]);return ne!=null&&h(n,[`tuningJobMetadata`],ne),n}function bu(e,t){let n={},r=g(e,[`sdkHttpResponse`]);r!=null&&h(n,[`sdkHttpResponse`],r);let i=g(e,[`name`]);i!=null&&h(n,[`name`],i);let a=g(e,[`metadata`]);a!=null&&h(n,[`metadata`],a);let o=g(e,[`done`]);o!=null&&h(n,[`done`],o);let s=g(e,[`error`]);return s!=null&&h(n,[`error`],s),n}function xu(e,t){let n={},r=g(e,[`gcsUri`]);r!=null&&h(n,[`validationDatasetUri`],r);let i=g(e,[`vertexDatasetResource`]);return i!=null&&h(n,[`validationDatasetUri`],i),n}var Su=class extends p{constructor(e){super(),this.apiClient=e,this.list=async(e={})=>new H(V.PAGED_ITEM_TUNING_JOBS,e=>this.listInternal(e),await this.listInternal(e),e),this.get=async e=>await this.getInternal(e),this.tune=async e=>{if(this.apiClient.isVertexAI())if(e.baseModel.startsWith(`projects/`)){let t={tunedModelName:e.baseModel};e.config?.preTunedModelCheckpointId&&(t.checkpointId=e.config.preTunedModelCheckpointId);let n=Object.assign(Object.assign({},e),{preTunedModel:t});return n.baseModel=void 0,await this.tuneInternal(n)}else{let t=Object.assign({},e);return await this.tuneInternal(t)}else{let t=Object.assign({},e),n=await this.tuneMldevInternal(t),r=``;return n.metadata!==void 0&&n.metadata.tunedModel!==void 0?r=n.metadata.tunedModel:n.name!==void 0&&n.name.includes(`/operations/`)&&(r=n.name.split(`/operations/`)[0]),{name:r,state:ke.JOB_STATE_QUEUED}}}}async getInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=du(e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>yu(e))}else{let i=uu(e);return n=m(`{name}`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>vu(e))}}async listInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=pu(e);return n=m(`tuningJobs`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`GET`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=mu(e),n=new Tt;return Object.assign(n,t),n})}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async cancel(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=ru(e);return n=m(`{name}:cancel`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=au(e),n=new Et;return Object.assign(n,t),n})}else{let i=nu(e);return n=m(`{name}:cancel`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>{let t=iu(e),n=new Et;return Object.assign(n,t),n})}}async tuneInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI()){let i=lu(e,e);return n=m(`tuningJobs`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>yu(e))}else throw Error(`This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).`)}async tuneMldevInternal(e){let t,n=``,r={};if(this.apiClient.isVertexAI())throw Error(`This method is only supported by the Gemini Developer API.`);{let i=cu(e);return n=m(`tunedModels`,i._url),r=i._query,delete i._url,delete i._query,t=this.apiClient.request({path:n,queryParams:r,body:JSON.stringify(i),httpMethod:`POST`,httpOptions:e.config?.httpOptions,abortSignal:e.config?.abortSignal}).then(e=>e.json().then(t=>{let n=t;return n.sdkHttpResponse={headers:e.headers},n})),t.then(e=>bu(e))}}},Cu=class{async download(e,t){throw Error(`Download to file is not supported in the browser, please use a browser compliant download like an <a> tag.`)}},wu=1024*1024*8,Tu=3,Eu=1e3,Du=2,Ou=`x-goog-upload-status`;async function ku(e,t,n,r){let i=await ju(e,t,n,r),a=await i?.json();if(i?.headers?.[Ou]!==`final`)throw Error(`Failed to upload file: Upload status is not finalized.`);return a.file}async function Au(e,t,n,r){let i=await ju(e,t,n,r),a=await i?.json();if(i?.headers?.[Ou]!==`final`)throw Error(`Failed to upload file: Upload status is not finalized.`);let o=j(a),s=new Bt;return Object.assign(s,o),s}async function ju(e,t,n,r){let i=t,a=r?.baseUrl||n.clientOptions.httpOptions?.baseUrl;if(a){let e=new URL(a),n=new URL(t);n.protocol=e.protocol,n.host=e.host,n.port=e.port,i=n.toString()}let o=0,s=0,c=new ft(new Response),l=`upload`;for(o=e.size;s<o;){let t=Math.min(wu,o-s),a=e.slice(s,s+t);s+t>=o&&(l+=`, finalize`);let u=0,d=Eu;for(;u<Tu;){let e=Object.assign(Object.assign({},r?.headers||{}),{"X-Goog-Upload-Command":l,"X-Goog-Upload-Offset":String(s),"Content-Length":String(t)});if(c=await n.request({path:``,body:a,httpMethod:`POST`,httpOptions:Object.assign(Object.assign({},r),{apiVersion:``,baseUrl:i,headers:e})}),c?.headers?.[Ou])break;u++,await Nu(d),d*=Du}if(s+=t,c?.headers?.[Ou]!==`active`)break;if(o<=s)throw Error(`All content has been uploaded, but the upload status is not finalized.`)}return c}async function Mu(e){return{size:e.size,type:e.type}}function Nu(e){return new Promise(t=>setTimeout(t,e))}var Pu=class{async upload(e,t,n,r){if(typeof e==`string`)throw Error(`File path is not supported in browser uploader.`);return await ku(e,t,n,r)}async uploadToFileSearchStore(e,t,n,r){if(typeof e==`string`)throw Error(`File path is not supported in browser uploader.`);return await Au(e,t,n,r)}async stat(e){if(typeof e==`string`)throw Error(`File path is not supported in browser uploader.`);return await Mu(e)}},Fu=class{create(e,t,n){return new Iu(e,t,n)}},Iu=class{constructor(e,t,n){this.url=e,this.headers=t,this.callbacks=n}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 Error(`WebSocket is not connected`);this.ws.send(e)}close(){if(this.ws===void 0)throw Error(`WebSocket is not connected`);this.ws.close()}},Lu=`x-goog-api-key`,Ru=class{constructor(e){this.apiKey=e}async addAuthHeaders(e,t){if(e.get(Lu)===null){if(this.apiKey.startsWith(`auth_tokens/`))throw Error(`Ephemeral tokens are only supported by the live API.`);if(!this.apiKey)throw Error(`API key is missing. Please provide a valid API key.`);e.append(Lu,this.apiKey)}}},zu=class{getNextGenClient(){let e=this.httpOptions;if(this._nextGenClient===void 0){let e=this.httpOptions;this._nextGenClient=new $({baseURL:this.apiClient.getBaseUrl(),apiKey:this.apiKey,apiVersion:this.apiClient.getApiVersion(),clientAdapter:this.apiClient,defaultHeaders:this.apiClient.getDefaultHeaders(),timeout:e?.timeout,maxRetries:e?.retryOptions?.attempts})}return e?.extraBody&&console.warn(`GoogleGenAI.interactions: Client level httpOptions.extraBody is not supported by the interactions client and will be ignored.`),this._nextGenClient}get interactions(){return this._interactions===void 0?(console.warn(`GoogleGenAI.interactions: Interactions usage is experimental and may change in future versions.`),this._interactions=this.getNextGenClient().interactions,this._interactions):this._interactions}get webhooks(){return this._webhooks===void 0&&(this._webhooks=this.getNextGenClient().webhooks),this._webhooks}constructor(e){if(e.apiKey==null)throw Error(`An API Key must be set when running in a browser`);if(e.project||e.location)throw Error(`Vertex AI project based authentication is not supported on browser runtimes. Please do not provide a project or location.`);this.vertexai=e.vertexai??!1,this.apiKey=e.apiKey;let t=f(e.httpOptions,e.vertexai,void 0,void 0);t&&(e.httpOptions?e.httpOptions.baseUrl=t:e.httpOptions={baseUrl:t}),this.apiVersion=e.apiVersion,this.httpOptions=e.httpOptions;let n=new Ru(this.apiKey);this.apiClient=new Ms({auth:n,apiVersion:this.apiVersion,apiKey:this.apiKey,vertexai:this.vertexai,httpOptions:this.httpOptions,userAgentExtra:`gl-node/web`,uploader:new Pu,downloader:new Cu}),this.models=new oc(this.apiClient),this.live=new Ys(this.apiClient,n,new Fu),this.batches=new br(this.apiClient),this.chats=new li(this.models,this.apiClient),this.caches=new ri(this.apiClient),this.files=new Si(this.apiClient),this.operations=new sc(this.apiClient),this.authTokens=new Ec(this.apiClient),this.tunings=new Su(this.apiClient),this.fileSearchStores=new Pc(this.apiClient)}};function Bu(e){return e.thought===!0}function Vu(e,t){return typeof t==`string`&&t.length>0?t:e}var Hu=/^[A-Za-z0-9+/]+={0,2}$/;function Uu(e){return!e||e.length%4!=0?!1:Hu.test(e)}function Wu(e,t){return e&&Uu(t)?t:void 0}function Gu(e){return e.startsWith(`claude-`)||e.startsWith(`gpt-oss-`)}function Ku(e){let t=e.toLowerCase().match(/^gemini(?:-live)?-(\d+)/);if(t)return Number.parseInt(t[1],10)}function qu(e){let t=Ku(e);return t===void 0||t>=3}function Ju(e,t){let i=[],a=n(t.messages,e,t=>Gu(e.id)?t.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64):t);for(let t of a)if(t.role===`user`)if(typeof t.content==`string`)i.push({role:`user`,parts:[{text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{text:r(e.text)}:{inlineData:{mimeType:e.mimeType,data:e.data}});if(e.length===0)continue;i.push({role:`user`,parts:e})}else if(t.role===`assistant`){let n=[],a=t.provider===e.provider&&t.model===e.id;for(let i of t.content)if(i.type===`text`){if(!i.text||i.text.trim()===``)continue;let e=Wu(a,i.textSignature);n.push({text:r(i.text),...e&&{thoughtSignature:e}})}else if(i.type===`thinking`){if(!i.thinking||i.thinking.trim()===``)continue;if(a){let e=Wu(a,i.thinkingSignature);n.push({thought:!0,text:r(i.thinking),...e&&{thoughtSignature:e}})}else n.push({text:r(i.thinking)})}else if(i.type===`toolCall`){let t=Wu(a,i.thoughtSignature),r={functionCall:{name:i.name,args:i.arguments??{},...Gu(e.id)?{id:i.id}:{}},...t&&{thoughtSignature:t}};n.push(r)}if(n.length===0)continue;i.push({role:`model`,parts:n})}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
11
+ `),a=e.input.includes(`image`)?t.content.filter(e=>e.type===`image`):[],o=n.length>0,s=a.length>0,c=qu(e.id),l=o?r(n):s?`(see attached image)`:``,u=a.map(e=>({inlineData:{mimeType:e.mimeType,data:e.data}})),d=Gu(e.id),f={functionResponse:{name:t.toolName,response:t.isError?{error:l}:{output:l},...s&&c&&{parts:u},...d?{id:t.toolCallId}:{}}},p=i[i.length-1];p?.role===`user`&&p.parts?.some(e=>e.functionResponse)?p.parts.push(f):i.push({role:`user`,parts:[f]}),s&&!c&&i.push({role:`user`,parts:[{text:`Tool result image:`},...u]})}return i}var Yu=new Set([`$schema`,`$id`,`$anchor`,`$dynamicAnchor`,`$vocabulary`,`$comment`,`$defs`,`definitions`]);function Xu(e){if(typeof e!=`object`||!e||Array.isArray(e))return e;let t={};for(let[n,r]of Object.entries(e))Yu.has(n)||(t[n]=Xu(r));return t}function Zu(e,t=!1){if(e.length!==0)return[{functionDeclarations:e.map(e=>({name:e.name,description:e.description,...t?{parameters:Xu(e.parameters)}:{parametersJsonSchema:e.parameters}}))}]}function Qu(e){let t=Ku(e);return t!==void 0&&t>=3}function $u(e){switch(e){case`auto`:return fe.AUTO;case`none`:return fe.NONE;case`any`:return fe.ANY;default:return fe.AUTO}}function ed(e,t,n){let r=e.some(e=>i(e,n)===!0);return t===`none`||t===`any`?$u(t):r?fe.VALIDATED:t?$u(t):void 0}function td(e){switch(e){case P.STOP:return`stop`;case P.MAX_TOKENS:return`length`;case P.BLOCKLIST:case P.PROHIBITED_CONTENT:case P.SPII:case P.SAFETY:case P.IMAGE_SAFETY:case P.IMAGE_PROHIBITED_CONTENT:case P.IMAGE_RECITATION:case P.IMAGE_OTHER:case P.RECITATION:case P.FINISH_REASON_UNSPECIFIED:case P.OTHER:case P.LANGUAGE:case P.MALFORMED_FUNCTION_CALL:case P.UNEXPECTED_TOOL_CALL:case P.NO_IMAGE:return`error`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{ed as a,zu as c,td as i,Le as l,Zu as n,Vu as o,Bu as r,Qu as s,Ju as t,pe as u};