Insomniac_360

Untitled

Sep 6th, 2026
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.48 KB | None | 0 0
  1. var e={retryAttempts:3,retryDelaySec:2,requestTimeoutSec:28,geminiBl:"boq_assistant-bard-web-server_20260831.15_p2",authUser:null,xsrfToken:null,defaultModel:"gemini-3.8-flash",apiKeys:["sk-gemini"],cookieString:null,sapisid:null,logRequests:!0,rateLimit:{enabled:!0,maxRequests:3e3,windowSec:60},fingerprintJitterMs:1500},t=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15","Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0","Mozilla/5.0 (Macintosh; Intel Mac OS X 14.5; rv:128.0) Gecko/20100101 Firefox/128.0","Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"],r=[35,30,8,10,7,5,3,2];var n=["en-US,en;q=0.9","en-US,en;q=0.9,zh-CN;q=0.8","en-GB,en;q=0.9","en-US,en;q=0.9,ja;q=0.8","en-US,en;q=0.9,ko;q=0.8","en-US,en;q=0.9,es;q=0.8"];var a=['"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"','"Not)A;Brand";v="99", "Google Chrome";v="126", "Chromium";v="126"','"Not)A;Brand";v="99", "Google Chrome";v="125", "Chromium";v="125"'],o=['"Windows"','"macOS"','"Linux"'];var i={"gemini-3.8-flash":{mode:1,think:4,desc:"Latest all-around model (Gemini 3.8 Flash)"},"gemini-3.8-flash-thinking":{mode:2,think:0,desc:"Gemini 3.8 Flash with deep thinking mode (~20k chars)"},"gemini-3.7-flash":{mode:1,think:4,desc:"Gemini 3.7 Flash"},"gemini-3.6-flash":{mode:1,think:4,desc:"All-around model (Gemini 3.6 Flash)"},"gemini-3.5-flash":{mode:1,think:4,desc:"Alias for gemini-3.6-flash (backend upgraded)"},"gemini-3.5-flash-thinking":{mode:2,think:0,desc:"Deep thinking mode, longest output (~20k chars)"},"gemini-3.1-pro":{mode:3,think:4,desc:"Pro model (requires cookie for real routing)"},"gemini-auto":{mode:4,think:4,desc:"Auto model selection"},"gemini-3.5-flash-thinking-lite":{mode:5,think:0,desc:"Dynamic thinking with adaptive depth"},"gemini-flash-lite":{mode:6,think:4,desc:"Lightweight fast model"}};function s(t,r,n){if(r=r||"INFO",n?n.logRequests:e.logRequests){var a=(new Date).toISOString().split("T")[1].split(".")[0];console.log("["+a+"] ["+r+"] "+t)}}function l(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}function c(e){var t=e||12;return l().replace(/-/g,"").substring(0,t)}function u(){return Math.floor(Date.now()/1e3)}function d(e){return e?Math.max(1,Math.ceil(e.length/4)):0}function m(e){var t=e.authUser;return null==t||""===t?"":"/u/"+t}function f(e,t,r,n){var a=new Array(80).fill(null);a[0]=[e,0,null,null,null,null,0],a[1]=["en"],a[2]=["","","",null,null,null,null,null,null,""],a[6]=[0],a[7]=1,a[10]=1,a[11]=0,a[17]=[[r]],a[18]=0,a[27]=1,a[30]=[4],a[41]=[2],a[53]=0,a[59]=l(),a[61]=[],a[68]=1,a[79]=t;var o=[null,JSON.stringify(a)],i=new URLSearchParams;return i.append("f.req",JSON.stringify(o)),n.xsrfToken&&i.append("at",n.xsrfToken),i.toString()}function h(e){var t=m(e),r=u()%1e6;return"https://gemini.google.com"+t+"/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate?bl="+e.geminiBl+"&hl=en&_reqid="+r+"&rt=c"}async function p(e){var i,s=m(e),l=function(){for(var e=0,n=0;n<r.length;n++)e+=r[n];for(var a=Math.random()*e,o=0,i=0;i<t.length;i++)if(a<(o+=r[i]))return t[i];return t[0]}(),c={"Content-Type":"application/x-www-form-urlencoded",Origin:"https://gemini.google.com",Referer:"https://gemini.google.com"+s+"/app","X-Same-Domain":"1","User-Agent":l,Accept:"*/*","Accept-Language":(i=Math.floor(Math.random()*n.length),n[i]),"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin"};return-1!==l.indexOf("Chrome")&&(c["Sec-Ch-Ua"]=function(){var e=Math.floor(Math.random()*a.length);return a[e]}(),c["Sec-Ch-Ua-Mobile"]="?0",c["Sec-Ch-Ua-Platform"]=function(){var e=Math.floor(Math.random()*o.length);return o[e]}()),s&&(c["X-Goog-AuthUser"]=String(e.authUser)),e.cookieString&&(c.Cookie=e.cookieString),e.sapisid&&(c.Authorization=await async function(e){var t=u(),r=t+" "+e+" https://gemini.google.com",n=(new TextEncoder).encode(r),a=await crypto.subtle.digest("SHA-1",n);return"SAPISIDHASH "+t+"_"+Array.from(new Uint8Array(a)).map((function(e){return e.toString(16).padStart(2,"0")})).join("")}(e.sapisid)),c}async function g(e,t,r,n){if(n.fingerprintJitterMs>0){var a=Math.random()*n.fingerprintJitterMs;await new Promise((function(e){setTimeout(e,a)}))}for(var o,i=f(e,t,r,n),l=await p(n),c=h(n),u=0;u<n.retryAttempts;u++)try{if(u>0&&(l=await p(n),n.fingerprintJitterMs>0)){var d=Math.random()*n.fingerprintJitterMs;await new Promise((function(e){setTimeout(e,d)}))}var m=new AbortController,g=setTimeout((function(){m.abort()}),1e3*n.requestTimeoutSec),v=await fetch(c,{method:"POST",headers:l,body:i,signal:m.signal});if(clearTimeout(g),405===v.status)throw new Error("HTTP 405: Method Not Allowed - BL version may be outdated, please update geminiBl");if(429===v.status){var y=parseInt(v.headers.get("Retry-After")||"5",10);if(s("Received 429 rate limit, waiting "+y+"s before retrying...","WARN",n),u<n.retryAttempts-1){await new Promise((function(e){setTimeout(e,1e3*y)}));continue}throw new Error("HTTP 429: Too Many Requests - please add a valid cookie or reduce request frequency")}if(403===v.status)throw new Error("HTTP 403: Forbidden - valid cookie authentication may be required");if(!v.ok){var S="";try{S=await v.text()}catch(e){S="Unable to read error message"}throw new Error("HTTP "+v.status+": "+S.substring(0,200))}return await v.text()}catch(e){if(o=e,u<n.retryAttempts-1){s("Retry "+(u+1)+"/"+n.retryAttempts+": "+e.message,"WARN",n);var x=n.retryDelaySec*Math.pow(2,u)*1e3;await new Promise((function(e){setTimeout(e,x)}))}}throw o}function v(e,t){return void 0===t&&(t=!0),e=e.replace(/```(?:python|javascript|text)\?code_(?:reference|stdout)&code_event_index=\d+\n[\s\S]*?```\n?/g,""),t?e.trim():e}function y(e){var t=e.match(/BardErrorInfo\s*\[(\d+)\]/);if(t)throw new Error("Gemini upstream rejected request: BardErrorInfo ["+t[1]+"]");for(var r=[],n=e.split("\n"),a=0;a<n.length;a++){var o=n[a];if(!(-1===o.indexOf('"wrb.fr"')||o.length<200))try{var i=JSON.parse(o)[0][2];if(!i||i.length<50)continue;var s=JSON.parse(i);if(Array.isArray(s)&&s.length>4&&s[4])for(var l=s[4],c=0;c<l.length;c++){var u=l[c];if(Array.isArray(u)&&u.length>1&&u[1]&&Array.isArray(u[1]))for(var d=u[1],m=0;m<d.length;m++){var f=d[m];"string"==typeof f&&f.length>0&&r.push(f)}}}catch(e){}}for(var h="",p=r.length-1;p>=0;p--)if(r[p].trim()){h=r[p];break}return v(h)}function S(e,t){var r=[];if(t&&t.length>0){for(var n=[],a=0;a<t.length;a++){var o=t[a],i="function"===o.type&&o.function||o;n.push({name:i.name||o.name||"",description:i.description||o.description||"",parameters:i.parameters||o.parameters||{}})}r.push('[System instruction]: You have access to tools. To call a tool, respond with:\n```tool_call\n{"name": "func_name", "arguments": {...}}\n```\nOnly use tool_call blocks when needed.\n\nAvailable tools:\n'+JSON.stringify(n,null,2))}for(var s=0;s<e.length;s++){var l=e[s],c=l.role||"user",u=l.content||"";if(Array.isArray(u)){for(var d=[],m=0;m<u.length;m++){var f=u[m];"text"!==f.type&&"input_text"!==f.type||d.push(f.text||"")}u=d.join(" ")}if("system"===c)r.push("[System instruction]: "+u);else if("assistant"===c)if(l.tool_calls&&l.tool_calls.length>0){for(var h=[],p=0;p<l.tool_calls.length;p++){i=l.tool_calls[p].function||{};h.push('```tool_call\n{"name": "'+i.name+'", "arguments": '+(i.arguments||"{}")+"}\n```")}r.push("[Assistant]: "+(u||"")+"\n"+h.join("\n"))}else r.push("[Assistant]: "+u);else"tool"===c?r.push("[Tool result for "+(l.name||"unknown")+"]: "+u):r.push(u||"")}return r.filter((function(e){return e})).join("\n\n")}function x(e){for(var t,r=[],n=/```tool_call\s*\n(.*?)\n```/gs;null!==(t=n.exec(e));)try{var a=JSON.parse(t[1].trim());r.push({id:"call_"+c(8),type:"function",function:{name:a.name,arguments:JSON.stringify(a.arguments||{})}})}catch(e){}return{cleanText:e.replace(n,"").trim(),toolCalls:r}}var T=new Map;function w(e,t){void 0===t&&(t=200);var r=JSON.stringify(e);return new Response(r,{status:t,headers:{"Content-Type":"application/json; charset=utf-8","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}function A(e){return new Response(e,{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}function k(e){var t=null,r=e;if(-1!==e.indexOf("@think=")){var n=e.split("@think=");if(r=n[0],t=parseInt(n[1],10),isNaN(t))return{error:"Invalid think parameter: "+n[1]}}var a=i[r];return a?{modelName:r,modelId:a.mode,thinkMode:null!==t?t:a.think,error:null}:{error:"Unknown model: "+r}}async function M(e,t,r){var n=k(t.model||r.defaultModel);if(n.error)return w({error:{message:n.error}},400);var a=n.modelName,o=n.modelId,i=n.thinkMode,l=t.tools||null,m=S(t.messages||[],l);if(!m.trim())return w({error:{message:"empty prompt"}},400);var T=!0===t.stream,M="chatcmpl-"+c(12);if(s("Chat: model="+a+", stream="+T+", tokens≈"+d(m),"INFO",r),!T||l)try{var _=y(await g(m,o,i,r)),O=null;if(l&&_){var I=x(_);_=I.cleanText,O=I.toolCalls.length>0?I.toolCalls:null}var N={role:"assistant",content:_||null};O&&(N.tool_calls=O);var R=O?"tool_calls":"stop";if(T){var E=new TextEncoder;return A(new ReadableStream({start:function(e){var t={id:M,object:"chat.completion.chunk",created:u(),model:a,choices:[{index:0,delta:N,finish_reason:R}]};e.enqueue(E.encode("data: "+JSON.stringify(t)+"\n\n")),e.enqueue(E.encode("data: [DONE]\n\n")),e.close()}}))}return w({id:M,object:"chat.completion",created:u(),model:a,choices:[{index:0,message:N,finish_reason:R}],usage:{prompt_tokens:d(m),completion_tokens:d(_),total_tokens:d(m+_)}})}catch(e){return s("Upstream error: "+e.message,"ERROR",r),w({error:{message:"upstream error: "+e.message}},502)}var C=new TextEncoder;return A(new ReadableStream({start:function(e){var t=null,n=!1,l=function(){t&&(clearInterval(t),t=null)},c=function(t){if(!n){l(),n=!0;try{e.enqueue(C.encode("data: "+JSON.stringify({id:M,object:"chat.completion.chunk",created:u(),model:a,choices:[{index:0,delta:{content:""},finish_reason:t||"stop"}]})+"\n\n")),e.enqueue(C.encode("data: [DONE]\n\n")),e.close()}catch(e){s("Failed to finish stream: "+e.message,"ERROR",r)}}};!async function(){try{e.enqueue(C.encode("data: "+JSON.stringify({id:M,object:"chat.completion.chunk",created:u(),model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})+"\n\n")),t=setInterval((function(){if(n)l();else try{e.enqueue(C.encode(": heartbeat\n\n"))}catch(e){l()}}),2e3);var d=f(m,o,i,r),g=await p(r),y=h(r),S=new AbortController,x=setTimeout((function(){S.abort()}),1e3*(r.requestTimeoutSec-2));try{var T=await fetch(y,{method:"POST",headers:g,body:d,signal:S.signal});if(clearTimeout(x),!T.ok){var w="";try{w=await T.text()}catch(e){w="Unable to read error message"}throw new Error("HTTP "+T.status+": "+w.substring(0,200))}for(var A=T.body.getReader(),k=new TextDecoder,_="",O="";;){var I=await A.read();if(I.done)break;if(-1!==(_+=k.decode(I.value,{stream:!0})).indexOf("BardErrorInfo")){var N=_.match(/BardErrorInfo\s*\[(\d+)\]/);if(N)throw new Error("Gemini upstream rejected request: BardErrorInfo ["+N[1]+"]")}var R=_.split("\n");_=R.pop()||"";for(var E=0;E<R.length;E++){var b=R[E];if(!(-1===b.indexOf('"wrb.fr"')||b.length<200))try{var q=JSON.parse(b)[0][2];if(!q||q.length<50)continue;var L=JSON.parse(q);if(Array.isArray(L)&&L.length>4&&L[4])for(var U=L[4],P=0;P<U.length;P++){var G=U[P];if(Array.isArray(G)&&G.length>1&&G[1]&&Array.isArray(G[1]))for(var D=G[1],J=0;J<D.length;J++){var j=D[J];if("string"==typeof j&&j.length>O.length){var F=v(j.slice(O.length),!1);F&&e.enqueue(C.encode("data: "+JSON.stringify({id:M,object:"chat.completion.chunk",created:u(),model:a,choices:[{index:0,delta:{content:F},finish_reason:null}]})+"\n\n")),O=j}}}}catch(e){}}}}finally{clearTimeout(x)}c("stop")}catch(t){s("Stream error: "+t.message,"ERROR",r);try{n||e.enqueue(C.encode("data: "+JSON.stringify({error:{message:t.message,type:"upstream_error"}})+"\n\n"))}catch(e){}c("error")}}()},cancel:function(){s("Client disconnected from stream","INFO",r)}}))}async function _(e,t,r,n){var a=new URL(e.url).pathname.match(/\/v1beta\/models\/([^:]+)/),o=a?a[1]:null;if(!o)return w({error:{message:"model not specified in path"}},400);var i=k(o);if(i.error)return w({error:{message:i.error}},400);var s=i.modelId,l=i.thinkMode,c=function(e){var t=[],r=e.systemInstruction;if(r&&r.parts){for(var n=[],a=0;a<r.parts.length;a++){var o=r.parts[a];o.text&&n.push(o.text)}var i=n.join(" ");i&&t.push("[System instruction]: "+i)}for(var s=e.contents||[],l=0;l<s.length;l++){for(var c=s[l],u=c.role||"user",d=[],m=c.parts||[],f=0;f<m.length;f++)m[f].text&&d.push(m[f].text);var h=d.join(" ");"model"===u?t.push("[Assistant]: "+h):t.push(h)}return t.filter((function(e){return e})).join("\n\n")}(t);if(!c.trim())return w({error:{message:"empty content"}},400);try{var u=y(await g(c,s,l,n)),m={candidates:[{content:{parts:[{text:u||""}],role:"model"},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:d(c),candidatesTokenCount:d(u),totalTokenCount:d(c+u)},modelVersion:o};return r?new Response("data: "+JSON.stringify(m)+"\n\n",{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","Access-Control-Allow-Origin":"*"}}):w(m)}catch(e){return w({error:{message:"upstream error: "+e.message}},502)}}export default{async fetch(t,r,n){if("OPTIONS"===t.method)return new Response(null,{status:204,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*","Access-Control-Max-Age":"86400"}});var a=function(t){var r={retryAttempts:e.retryAttempts,retryDelaySec:e.retryDelaySec,requestTimeoutSec:e.requestTimeoutSec,geminiBl:e.geminiBl,authUser:e.authUser,xsrfToken:e.xsrfToken,defaultModel:e.defaultModel,apiKeys:e.apiKeys,cookieString:e.cookieString,sapisid:e.sapisid,logRequests:e.logRequests,fingerprintJitterMs:e.fingerprintJitterMs,rateLimit:{enabled:e.rateLimit.enabled,maxRequests:e.rateLimit.maxRequests,windowSec:e.rateLimit.windowSec}};t.GEMINI_BL&&(r.geminiBl=t.GEMINI_BL),t.DEFAULT_MODEL&&(r.defaultModel=t.DEFAULT_MODEL),r.authUser=t.AUTH_USER||null,r.xsrfToken=t.XSRF_TOKEN||null;var n=(t.COOKIE_STRING||"").split("|").filter((function(e){return e.trim()})),a=(t.SAPISID||"").split("|").filter((function(e){return e.trim()}));if(n.length>0){var o=Math.floor(Math.random()*n.length);if(r.cookieString=n[o].trim(),a.length===n.length)r.sapisid=a[o].trim();else if(a.length>0){var i=Math.floor(Math.random()*a.length);r.sapisid=a[i].trim()}}else a.length>0&&(i=Math.floor(Math.random()*a.length),r.sapisid=a[i].trim());if(!r.sapisid&&r.cookieString){var s=r.cookieString.match(/SAPISID=([^;]+)/);s&&(r.sapisid=s[1].trim())}if(t.API_KEYS)try{r.apiKeys=JSON.parse(t.API_KEYS)}catch(e){console.error("[ERROR] Failed to parse API_KEYS: "+e.message+", using default value")}if(t.RETRY_ATTEMPTS){var l=parseInt(t.RETRY_ATTEMPTS,10);isNaN(l)||(r.retryAttempts=l)}if(t.RETRY_DELAY_SEC){var c=parseInt(t.RETRY_DELAY_SEC,10);isNaN(c)||(r.retryDelaySec=c)}if(t.REQUEST_TIMEOUT_SEC){var u=parseInt(t.REQUEST_TIMEOUT_SEC,10);isNaN(u)||(r.requestTimeoutSec=u)}if(t.FINGERPRINT_JITTER_MS){var d=parseInt(t.FINGERPRINT_JITTER_MS,10);isNaN(d)||(r.fingerprintJitterMs=d)}if(t.RATE_LIMIT_MAX){var m=parseInt(t.RATE_LIMIT_MAX,10);isNaN(m)||(r.rateLimit.maxRequests=m)}if(t.RATE_LIMIT_WINDOW){var f=parseInt(t.RATE_LIMIT_WINDOW,10);isNaN(f)||(r.rateLimit.windowSec=f)}return r}(r),o=new URL(t.url).pathname,l=t.method,m=t.headers.get("CF-Connecting-IP")||"0.0.0.0";if(!function(e,t){if(!t.rateLimit||!t.rateLimit.enabled)return!0;var r=Date.now(),n=1e3*t.rateLimit.windowSec,a="rl:"+e,o=(T.get(a)||[]).filter((function(e){return r-e<n}));return!(o.length>=t.rateLimit.maxRequests||(o.push(r),T.set(a,o),Math.random()<.05&&T.forEach((function(e,t){var a=e.filter((function(e){return r-e<n}));0===a.length?T.delete(t):T.set(t,a)})),0))}(m,a))return s("Rate limit exceeded: "+m,"WARN",a),w({error:{message:"Too many requests, please try again later",type:"rate_limit_exceeded"}},429);if(0===o.indexOf("/v1")&&!function(e,t){var r=t.apiKeys||[];if(0===r.length)return!0;var n=e.headers.get("Authorization")||"";if(0===n.indexOf("Bearer ")){var a=n.slice(7);if(-1!==r.indexOf(a))return!0}for(var o=["x-api-key","x-goog-api-key"],i=0;i<o.length;i++){var s=e.headers.get(o[i])||"";if(-1!==r.indexOf(s))return!0}var l=new URL(e.url).searchParams.get("key");return!(!l||-1===r.indexOf(l))}(t,a))return w({error:{message:"invalid api key"}},401);if("GET"===l){if("/"===o||"/health"===o)return w({status:"ok",version:"1.5.0-cf-multifingerprint",platform:"Cloudflare Workers",models:Object.keys(i),defaultModel:a.defaultModel});if("/v1/models"===o){for(var f=[],h=Object.keys(i),p=0;p<h.length;p++){var v=h[p],A=i[v];f.push({id:v,object:"model",created:17e8,owned_by:"google",description:A.desc})}return w({object:"list",data:f})}if("/v1beta/models"===o){for(var O=[],I=Object.keys(i),N=0;N<I.length;N++){var R=I[N],E=i[R];O.push({name:"models/"+R,displayName:R,description:E.desc,supportedGenerationMethods:["generateContent","streamGenerateContent"]})}return w({models:O})}return w({error:{message:"not found"}},404)}if("POST"===l){var C;try{C=await t.json()}catch(e){return w({error:{message:"invalid JSON"}},400)}return"/v1/chat/completions"===o?M(0,C,a):"/v1/responses"===o?async function(e,t,r){var n=k(t.model||r.defaultModel);if(n.error)return w({error:{message:n.error}},400);var a=n.modelName,o=n.modelId,i=n.thinkMode,s=[];t.instructions&&s.push({role:"system",content:t.instructions});var l=t.input||[];"string"==typeof l&&(l=[l]);for(var m=0;m<l.length;m++){var f=l[m];if("string"==typeof f)s.push({role:"user",content:f});else if("function_call_output"===f.type)s.push({role:"tool",tool_call_id:f.call_id,name:f.name,content:f.output});else{var h=f.content;if(Array.isArray(h)){for(var p=[],v=0;v<h.length;v++){var T=h[v];"output_text"===T.type&&p.push(T.text||"")}h=p.join(" ")}s.push({role:f.role||"user",content:h})}}var A=t.tools;if(A){for(var M=[],_=0;_<A.length;_++){var O=A[_];"function"!==O.type||O.function?M.push(O):M.push({type:"function",function:{name:O.name,description:O.description||"",parameters:O.parameters||{}}})}A=M}var I=S(s,A);if(!I.trim())return w({error:{message:"empty input"}},400);try{var N=y(await g(I,o,i,r)),R=null;if(A&&N){var E=x(N);N=E.cleanText,R=E.toolCalls.length>0?E.toolCalls:null}var C="resp_"+c(16),b="msg_"+c(12),q=[];if(R)for(var L=0;L<R.length;L++){var U=R[L];q.push({type:"function_call",id:U.id,call_id:U.id,name:U.function.name,arguments:U.function.arguments,status:"completed"})}return!N&&R||q.push({type:"message",id:b,role:"assistant",status:"completed",content:[{type:"output_text",text:N||"",annotations:[]}]}),w({id:C,object:"response",created_at:u(),status:"completed",model:a,output:q,usage:{input_tokens:d(I),output_tokens:d(N),total_tokens:d(I+N)}})}catch(e){return w({error:{message:"upstream error: "+e.message}},502)}}(0,C,a):-1!==o.indexOf(":streamGenerateContent")?_(t,C,!0,a):-1!==o.indexOf(":generateContent")?_(t,C,!1,a):0===o.indexOf("/v1/")?M(0,C,a):w({error:{message:"not found"}},404)}return w({error:{message:"method not allowed"}},405)}};
Advertisement
Add Comment
Please, Sign In to add comment