alchemylab-opencode 2.0.3 → 2.0.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.
- package/dist/{anthropic-ND6UHXWL.js → anthropic-FVULF7C3.js} +1 -1
- package/dist/{app-runtime-ZWWQ4JTM.js → app-runtime-LDQWNGWP.js} +1 -1
- package/dist/{chunk-IQSFXWDQ.js → chunk-2JE3QYG6.js} +1 -1
- package/dist/{chunk-6MAPFAXY.js → chunk-4GJE6OMN.js} +1 -1
- package/dist/{chunk-AUB2TEYJ.js → chunk-5BLZCAU6.js} +1 -1
- package/dist/{chunk-XSKT4AXR.js → chunk-B74WSFN4.js} +3 -3
- package/dist/{chunk-2XWBNI3L.js → chunk-DADVNQTM.js} +80 -80
- package/dist/{chunk-RIA6SDOY.js → chunk-DWEYXIQI.js} +3 -3
- package/dist/{chunk-L3CE2Y3L.js → chunk-FOHYZ7MJ.js} +1 -1
- package/dist/{chunk-WL33KE3H.js → chunk-G7PFO5HG.js} +3 -3
- package/dist/{chunk-DGJQZN2Q.js → chunk-NGT6LCW6.js} +1 -1
- package/dist/{chunk-DZ6G4VSD.js → chunk-OT2YNR56.js} +1 -1
- package/dist/{chunk-WZ4237YY.js → chunk-OUVSKG2H.js} +1 -1
- package/dist/{chunk-F5PY52BY.js → chunk-UPEPL4I2.js} +1 -1
- package/dist/{code-mode-H3HRSD24.js → code-mode-YYOGD36U.js} +1 -1
- package/dist/{dist-KGNO5AP7.js → dist-KM5HCPZX.js} +1 -1
- package/dist/{dist-WZJ3LNRG.js → dist-YUH4RKR5.js} +1 -1
- package/dist/{dist-es-RZ25XEH6.js → dist-es-6PLFRCS4.js} +1 -1
- package/dist/{dist-es-EVVG3KDV.js → dist-es-G5UIJOU7.js} +2 -2
- package/dist/{dist-es-DHCTZZ2E.js → dist-es-HYIIGUNX.js} +1 -1
- package/dist/{dist-es-CH2YKBKX.js → dist-es-LSR2QCFZ.js} +1 -1
- package/dist/{dist-es-HRCONNGK.js → dist-es-W5GYOX6F.js} +1 -1
- package/dist/run.js +1 -1
- package/dist/serve.js +1 -1
- package/dist/{server-XRUYBM7W.js → server-LVIHYOCY.js} +3 -3
- package/dist/{session-4BXV4JJH.js → session-6OPJNJMK.js} +1 -1
- package/dist/{src-QJHT5SCV.js → src-3NCXEROI.js} +1 -1
- package/dist/{worktree-B2LROS2B.js → worktree-32M5MTFE.js} +1 -1
- package/package.json +1 -1
- /package/dist/{dist-LOXU6IEM.js → dist-CYBRID2F.js} +0 -0
- /package/dist/{lib-7VH6D2QJ.js → lib-ZP7Q6A3E.js} +0 -0
- /package/dist/{mime-types-GSWEOYZ5.js → mime-types-46EO4HOZ.js} +0 -0
- /package/dist/{signin-DKBWDEYP.js → signin-OCIW23YM.js} +0 -0
- /package/dist/{src-JODD73WX.js → src-LXWGIUZH.js} +0 -0
- /package/dist/{src-SMM4U63G.js → src-YAAFIGTW.js} +0 -0
- /package/dist/{sso-oidc-S3P64MCY.js → sso-oidc-OMMKINFE.js} +0 -0
- /package/dist/{sts-RG44NMOQ.js → sts-MWK22JIX.js} +0 -0
- /package/dist/{token-2V62AM3G.js → token-QPO3OAGS.js} +0 -0
- /package/dist/{token-util-VXONHEUD.js → token-util-YGPCEEPO.js} +0 -0
|
@@ -15,7 +15,7 @@ import { dirname as __alchemyDirname } from 'node:path';
|
|
|
15
15
|
const __alchemy_filename = __alchemyFileURLToPath(import.meta.url);
|
|
16
16
|
const __alchemy_dirname = __alchemyDirname(__alchemy_filename);
|
|
17
17
|
|
|
18
|
-
import{A as zh,B as t1,C as b8,D as E8,E as S8,F as _8,G as r1,H as n1,I as i1,J as gd,L as yd,M as Gh,N as Nt,P as Wh,a as o_,c as __,f as Re,i as vs,k as ni,l as xu,n as Ph,o as Mn,p as N_,q as m8,r as g8,s as on,t as ws,u as Vh,v as bu,w as e1,x as y8,y as x8,z as md}from"./chunk-
|
|
18
|
+
import{A as zh,B as t1,C as b8,D as E8,E as S8,F as _8,G as r1,H as n1,I as i1,J as gd,L as yd,M as Gh,N as Nt,P as Wh,a as o_,c as __,f as Re,i as vs,k as ni,l as xu,n as Ph,o as Mn,p as N_,q as m8,r as g8,s as on,t as ws,u as Vh,v as bu,w as e1,x as y8,y as x8,z as md}from"./chunk-B74WSFN4.js";import{c as s1}from"./chunk-GW3ZRKAI.js";import{R as Q_,a as pd,d as hd,e as sn,f as fr,p as Hh}from"./chunk-FOHYZ7MJ.js";import{A as Fi,C as k_,D as gu,Da as Dt,Ea as qh,Fa as ii,H as ld,La as Fh,Ma as si,Pa as j_,Qa as U_,Ra as $_,Sa as jh,Ta as H_,Ua as B_,V as yu,Va as V_,W as dd,Wa as z_,Xa as G_,Y as A_,Ya as W_,Z as fd,Za as Uh,_ as Nh,_a as En,b as mu,c as Io,eb as K_,fb as J_,h as w_,ha as I_,hb as Y_,i as Co,ib as X_,k as T_,kb as $h,ma as P_,mb as Po,na as L_,oa as M_,pa as Do,qa as Lh,ra as Ar,sa as Mh,ta as ji,u as R_,ua as qn,va as No,wa as q_,xa as F_,y as _s,z as kr}from"./chunk-DWEYXIQI.js";import{a as Bh,b as Z_}from"./chunk-QD24DLUD.js";import{d as h8}from"./chunk-NDI67DRG.js";import{b as C_,k as D_}from"./chunk-WKZYINC7.js";import{d as Ss}from"./chunk-TK5R7QUN.js";import{a as p8,c as bn,d as Oo,e as v_,f as Kt}from"./chunk-R2GWBJEP.js";import{$a as a_,Ae as Wt,Fa as wo,Fb as l_,Hb as Ro,Ib as d_,Jb as Oh,Ka as s_,Kb as nn,La as $e,Lb as f_,Ma as Rr,Pa as ti,Pb as p_,Qb as Ce,Sb as ko,Uc as g_,Vc as Ao,Wc as y_,ad as Dh,bd as ud,c as e_,cc as Ih,cd as He,da as rd,ed as lt,gd as cd,ge as Ct,ha as Lr,hc as h_,he as x_,ia as nd,ib as u_,ie as b_,ja as ue,ka as i_,kb as To,ke as E_,la as Mr,lb as xn,le as S_,ma as id,mb as _t,na as qi,nb as ut,nc as m_,oa as St,ob as c_,oc as ad,pa as It,pc as ye,q as Li,qa as vo,qb as ri,qc as f8,r as r_,sa as sd,tb as Ah,ua as Rh,uc as Ch,va as kh,vb as od,x as pu,ya as Tr,za as Ln}from"./chunk-7XX6TY62.js";import{g as O_}from"./chunk-UCLPBO4I.js";import{c as fu,h as Mi,q as n_}from"./chunk-VWLJXTZ5.js";import{Bf as g,Cf as rn,Ej as hu,Hf as QS,Ig as ZS,Ma as XS,Tc as Z,Z as YS,aa as Ot,bb as Oe,bi as _o,dc as So,jd as dr,nb as lr,pj as E,ti as t_,zd as td}from"./chunk-ELPXQ32J.js";import{a as i,b as le,d as L,e as me,g as ed}from"./chunk-2MRHL4B2.js";var F1=L((wde,q1)=>{"use strict";function Uq(e){var t=new e,r=t;function n(){var o=t;return o.next?t=o.next:(t=new e,r=t),o.next=null,o}i(n,"get");function s(o){r.next=o,r=o}return i(s,"release"),{get:n,release:s}}i(Uq,"reusify");q1.exports=Uq});var U1=L((Rde,qm)=>{"use strict";var $q=F1();function j1(e,t,r){if(typeof e=="function"&&(r=t,t=e,e=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var n=$q(Hq),s=null,o=null,a=0,u=null,c={push:S,drain:qr,saturated:qr,pause:d,paused:!1,get concurrency(){return r},set concurrency(C){if(!(C>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=C,!c.paused)for(;s&&a<r;)a++,v()},running:l,resume:f,idle:h,length:p,getQueue:m,unshift:y,empty:qr,kill:T,killAndDrain:x,error:k,abort:b};return c;function l(){return a}function d(){c.paused=!0}function p(){for(var C=s,R=0;C;)C=C.next,R++;return R}function m(){for(var C=s,R=[];C;)R.push(C.value),C=C.next;return R}function f(){if(c.paused){if(c.paused=!1,s===null){a++,v();return}for(;s&&a<r;)a++,v()}}function h(){return a===0&&c.length()===0}function S(C,R){var A=n.get();A.context=e,A.release=v,A.value=C,A.callback=R||qr,A.errorHandler=u,a>=r||c.paused?o?(o.next=A,o=A):(s=A,o=A,c.saturated()):(a++,t.call(e,A.value,A.worked))}function y(C,R){var A=n.get();A.context=e,A.release=v,A.value=C,A.callback=R||qr,A.errorHandler=u,a>=r||c.paused?s?(A.next=s,s=A):(s=A,o=A,c.saturated()):(a++,t.call(e,A.value,A.worked))}function v(C){C&&n.release(C);var R=s;R&&a<=r?c.paused?a--:(o===s&&(o=null),s=R.next,R.next=null,t.call(e,R.value,R.worked),o===null&&c.empty()):--a===0&&c.drain()}function T(){s=null,o=null,c.drain=qr}function x(){s=null,o=null,c.drain(),c.drain=qr}function b(){var C=s;for(s=null,o=null;C;){var R=C.next,A=C.callback,N=C.errorHandler,D=C.value,O=C.context;C.value=null,C.callback=qr,C.errorHandler=null,N&&N(new Error("abort"),D),A.call(O,new Error("abort")),C.release(C),C=R}c.drain=qr}function k(C){u=C}}i(j1,"fastqueue");function qr(){}i(qr,"noop");function Hq(){this.value=null,this.callback=qr,this.next=null,this.release=qr,this.context=null,this.errorHandler=null;var e=this;this.worked=i(function(r,n){var s=e.callback,o=e.errorHandler,a=e.value;e.value=null,e.callback=qr,e.errorHandler&&o(r,a),s.call(e.context,r,n),e.release(e)},"worked")}i(Hq,"Task");function Bq(e,t,r){typeof e=="function"&&(r=t,t=e,e=null);function n(d,p){t.call(this,d).then(function(m){p(null,m)},p)}i(n,"asyncWrapper");var s=j1(e,n,r),o=s.push,a=s.unshift;return s.push=u,s.unshift=c,s.drained=l,s;function u(d){var p=new Promise(function(m,f){o(d,function(h,S){if(h){f(h);return}m(S)})});return p.catch(qr),p}i(u,"push");function c(d){var p=new Promise(function(m,f){a(d,function(h,S){if(h){f(h);return}m(S)})});return p.catch(qr),p}i(c,"unshift");function l(){var d=new Promise(function(p){process.nextTick(function(){if(s.idle())p();else{var m=s.drain;s.drain=function(){typeof m=="function"&&m(),p(),s.drain=m}}})});return d}i(l,"drained")}i(Bq,"queueAsPromised");qm.exports=j1;qm.exports.promise=Bq});var Fm=L((Ade,Ou)=>{"use strict";var{format:Vq}=le("node:util");function zq(){return`${this.name} [${this.code}]: ${this.message}`}i(zq,"toString");var Td=Symbol.for("fastify-error-generic");function Mo(e,t,r=500,n=Error,s=Mo.captureStackTrace){let o=e===Td;if(o&&(e="FST_ERR"),!e)throw new Error("Fastify error code must not be empty");if(!t)throw new Error("Fastify error message must not be empty");e=e.toUpperCase(),!r&&(r=void 0);let a=Symbol.for(`fastify-error ${e}`);function u(...c){if(!new.target)return new u(...c);this.code=e,this.name="FastifyError",this.statusCode=r;let l=c.length-1;l!==-1&&c[l]&&typeof c[l]=="object"&&"cause"in c[l]&&(this.cause=c.pop().cause),this.message=Vq(t,...c),Error.stackTraceLimit&&s&&Error.captureStackTrace(this,u)}return i(u,"FastifyError"),u.prototype=Object.create(n.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0},[Td]:{value:!0,enumerable:!1,writable:!1,configurable:!1},[a]:{value:!0,enumerable:!1,writable:!1,configurable:!1}}),o?Object.defineProperty(u,Symbol.hasInstance,{value(c){return c&&c[Td]},configurable:!1,writable:!1,enumerable:!1}):Object.defineProperty(u,Symbol.hasInstance,{value(c){return c&&c[a]},configurable:!1,writable:!1,enumerable:!1}),u.prototype[Symbol.toStringTag]="Error",u.prototype.toString=zq,u}i(Mo,"createError");Mo.captureStackTrace=!0;var Gq=Mo(Td,"Fastify Error",500,Error);Ou.exports=Mo;Ou.exports.FastifyError=Gq;Ou.exports.default=Mo;Ou.exports.createError=Mo});var Rd=L((Ide,$1)=>{"use strict";var{createError:Hi}=Fm();$1.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:Hi("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:Hi("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:Hi("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:Hi("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:Hi("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:Hi("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:Hi("AVV_ERR_READY_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise"),AVV_ERR_PLUGIN_EXEC_TIMEOUT:Hi("AVV_ERR_PLUGIN_EXEC_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise")}});var qo=L((Cde,H1)=>{"use strict";var Wq=Symbol("avvio.Boot"),Kq=Symbol("isOnCloseHandler"),Jq=Symbol("avvio.ThenifyDoNotWrap"),Yq=Symbol("avvio.TimeTree.untrackNode"),Xq=Symbol("avvio.TimeTree.trackNode"),Qq=Symbol("avvio.TimeTree.getParent"),Zq=Symbol("avvio.TimeTree.getNode"),eF=Symbol("avvio.TimeTree.addNode"),tF=Symbol.for("plugin-meta");H1.exports={kAvvio:Wq,kIsOnCloseHandler:Kq,kThenifyDoNotWrap:Jq,kUntrackNode:Yq,kTrackNode:Xq,kGetParent:Qq,kGetNode:Zq,kAddNode:eF,kPluginMeta:tF}});var J1=L((Dde,K1)=>{"use strict";var{kUntrackNode:B1,kTrackNode:jm,kGetParent:V1,kGetNode:z1,kAddNode:G1}=qo(),Um=class{static{i(this,"TimeTree")}constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[jm](t){this.tableId.set(t.id,t),this.tableLabel.has(t.label)?this.tableLabel.get(t.label).push(t):this.tableLabel.set(t.label,[t])}[B1](t){this.tableId.delete(t.id);let r=this.tableLabel.get(t.label);r.pop(),r.length===0&&this.tableLabel.delete(t.label)}[V1](t){if(t===null)return null;if(this.tableLabel.has(t)){let r=this.tableLabel.get(t);return r[r.length-1]}else return null}[z1](t){return this.tableId.get(t)}[G1](t,r,n){let s=this[V1](t);if(s===null)return this.root={parent:null,id:"root",label:r,nodes:[],start:n,stop:null,diff:-1},this[jm](this.root),this.root.id;let a=`${r}-${Math.random()}`,u={parent:t,id:a,label:r,nodes:[],start:n,stop:null,diff:-1};return s.nodes.push(u),this[jm](u),a}start(t,r,n=Date.now()){return this[G1](t,r,n)}stop(t,r=Date.now()){let n=this[z1](t);n&&(n.stop=r,n.diff=n.stop-n.start||0,this[B1](n))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return W1(this.toJSON())}};function W1(e,t=""){let r=t,n=e.nodes.length,s=n-1;r+=`${e.label} ${e.diff} ms
|
|
19
19
|
`;for(let o=0;o<n;++o){let a=e.nodes[o],u=t+(o===s?" ":"\u2502 ");r+=t,r+=o===s?"\u2514\u2500":"\u251C\u2500",r+=a.nodes.length===0?"\u2500 ":"\u252C ",r+=W1(a,u).slice(t.length+2)}return r}i(W1,"prettyPrintTimeTree");K1.exports={TimeTree:Um}});var kd=L((Pde,Y1)=>{"use strict";var{debuglog:rF}=le("node:util"),nF=rF("avvio");Y1.exports={debug:nF}});var Q1=L((Lde,X1)=>{"use strict";function iF(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}i(iF,"createPromise");X1.exports={createPromise:iF}});var tv=L((qde,ev)=>{"use strict";var{kPluginMeta:Z1}=qo();function sF(e,t){return e[Z1]?.name?e[Z1].name:t?.name?t.name:e.name?e.name:e.toString().split(`
|
|
20
20
|
`).slice(0,2).map(r=>r.trim()).join(" -- ")}i(sF,"getPluginName");ev.exports={getPluginName:sF}});var Ad=L((jde,rv)=>{"use strict";function oF(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}i(oF,"isPromiseLike");rv.exports={isPromiseLike:oF}});var iv=L(($de,nv)=>{"use strict";var{EventEmitter:aF}=le("node:events"),{inherits:uF}=le("node:util"),{debug:rr}=kd(),{createPromise:cF}=Q1(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:lF}=Rd(),{getPluginName:dF}=tv(),{isPromiseLike:fF}=Ad();function Fo(e,t,r,n,s){this.queue=e,this.func=t,this.options=r,this.isAfter=n,this.timeout=s,this.started=!1,this.name=dF(t,r),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}i(Fo,"Plugin");uF(Fo,aF);Fo.prototype.exec=function(e,t){rr("exec",this.name),this.server=e;let r=this.func,n=this.name,s=!1;this.options=typeof this.options=="function"?this.options(this.server):this.options;let o=null,a=i(c=>{if(s){rr("loading complete",n);return}this._error=c,rr(c?"exec errored":"exec completed",n),s=!0,o&&clearTimeout(o),t(c)},"done");this.timeout>0&&(rr("setting up timeout",n,this.timeout),o=setTimeout(function(){rr("timed out",n),o=null;let c=new lF(n);c.fn=r,a(c)},this.timeout)),this.started=!0,this.startTime=Date.now(),this.emit("start",this.server?this.server.name:null,this.name,Date.now());let u=r(this.server,this.options,a);fF(u)?(rr("exec: resolving promise",n),u.then(()=>process.nextTick(a),c=>process.nextTick(a,c))):r.length<3&&a()};Fo.prototype.loadedSoFar=function(){if(rr("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=i(()=>{this.server.after((r,n)=>{this._error=r,this.queue.pause(),this._promise&&(r?(rr("rejecting promise",this.name,r),this._promise.reject(r)):(rr("resolving promise",this.name),this._promise.resolve()),this._promise=null),process.nextTick(n,r)}),this.queue.resume()},"setup"),t;return this._promise?t=Promise.resolve():(this._promise=cF(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Fo.prototype.enqueue=function(e,t){rr("enqueue",this.name,e.name),this.emit("enqueue",this.server?this.server.name:null,this.name,Date.now()),this.queue.push(e,t)};Fo.prototype.finish=function(e,t){rr("finish",this.name,e);let r=i(()=>{this.loaded||(rr("loaded",this.name),this.emit("loaded",this.server?this.server.name:null,this.name,Date.now()),this.loaded=!0,t(e))},"done");if(e){this._promise&&(this._promise.reject(e),this._promise=null),r();return}let n=i(()=>{if(rr("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let s=i(()=>{rr("wrap"),queueMicrotask(n)},"wrap");this._promise.resolve(),this._promise.promise.then(s,s),this._promise=null}else r();else rr("delayed",this.name),this.queue.drain=()=>{rr("drain",this.name),this.queue.drain=pF,queueMicrotask(n)}},"check");queueMicrotask(n),this.queue.resume()};function pF(){}i(pF,"noop");nv.exports={Plugin:Fo}});var ov=L((Bde,sv)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:$m}=Rd();function hF(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new $m("array"):e===null?new $m("null"):new $m(typeof e)}i(hF,"validatePlugin");sv.exports={validatePlugin:hF}});var uv=L((zde,av)=>{"use strict";function mF(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}i(mF,"isBundledOrTypescriptPlugin");av.exports={isBundledOrTypescriptPlugin:mF}});var dv=L((Wde,lv)=>{"use strict";var{debug:cv}=kd(),{kThenifyDoNotWrap:Hm}=qo();function gF(){if(this.booted){cv("thenify returning undefined because we are already booted");return}if(this[Hm]){this[Hm]=!1;return}return cv("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[Hm]=!0,e(this._server)),t)}i(gF,"thenify");lv.exports={thenify:gF}});var pv=L((Jde,fv)=>{"use strict";var{isPromiseLike:yF}=Ad(),{kAvvio:xF}=qo();function bF(e,t,r){let n;try{n=e.apply(e,t)}catch(s){r&&process.nextTick(r,s);return}yF(n)&&!n[xF]?n.then(()=>process.nextTick(r),s=>process.nextTick(r,s)):r&&process.nextTick(r)}i(bF,"executeWithThenable");fv.exports={executeWithThenable:bF}});var _v=L((Xde,Sv)=>{"use strict";var Od=U1(),EF=le("node:events").EventEmitter,SF=le("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:Iu,AVV_ERR_CALLBACK_NOT_FN:jo,AVV_ERR_ROOT_PLG_BOOTED:_F,AVV_ERR_READY_TIMEOUT:vF,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:wF}=Rd(),{kAvvio:gv,kIsOnCloseHandler:yv}=qo(),{TimeTree:TF}=J1(),{Plugin:xv}=iv(),{debug:Uo}=kd(),{validatePlugin:RF}=ov(),{isBundledOrTypescriptPlugin:kF}=uv(),{isPromiseLike:AF}=Ad(),{thenify:bv}=dv(),{executeWithThenable:hv}=pv();function $t(e,t,r){if(typeof e=="function"&&arguments.length===1&&(r=e,t={},e=null),typeof t=="function"&&(r=t,t={}),t=t||{},t.autostart=t.autostart!==!1,t.timeout=Number(t.timeout)||0,t.expose=t.expose||{},!new.target)return new $t(e,t,r);this._server=e||this,this._opts=t,e&&this._expose(),this._current=[],this._error=null,this._lastUsed=null,this.setMaxListeners(0),r&&this.once("start",r),this.started=!1,this.booted=!1,this.pluginTree=new TF,this._readyQ=Od(this,Ev,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=mv},this._closeQ=Od(this,IF,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=mv},this._doStart=null;let n=this;this._root=new xv(Od(this,this._loadPluginNextTick,1),i(function(o,a,u){n._doStart=u,a.autostart&&n.start()},"root"),t,!1,0),this._trackPluginLoading(this._root),this._loadPlugin(this._root,s=>{Uo("root plugin ready");try{this.emit("preReady"),this._root=null}catch(o){s=s||this._error||o}if(s){if(this._error=s,this._readyQ.length()===0)throw s}else this.booted=!0;this._readyQ.resume()})}i($t,"Boot");SF($t,EF);"asyncDispose"in Symbol&&($t.prototype[Symbol.asyncDispose]=function(){return new Promise((e,t)=>{this.close(r=>{if(r)return t(r);e()})})});$t.prototype.start=function(){return this.started=!0,process.nextTick(this._doStart),this};$t.prototype.override=function(e,t,r){return e};$t.prototype[gv]=!0;$t.prototype.use=function(e,t){return this._lastUsed=this._addPlugin(e,t,!1),this};$t.prototype._loadRegistered=function(){let e=this._current[0];return!this.started&&!this.booted&&process.nextTick(()=>this._root.queue.resume()),e?e.loadedSoFar():Promise.resolve()};Object.defineProperty($t.prototype,"then",{get:bv});$t.prototype._addPlugin=function(e,t,r){if(kF(e)&&(e=e.default),RF(e),t=t||{},this.booted)throw new _F;let n=this._current[0],s=this._opts.timeout;if(!n.loaded&&n.timeout>0){let a=Date.now()-n.startTime;s=n.timeout-(a+3)}let o=new xv(Od(this,this._loadPluginNextTick,1),e,t,r,s);if(this._trackPluginLoading(o),n.loaded)throw new Error(o.name,n.name);return n.enqueue(o,a=>{a&&(this._error=a)}),o};$t.prototype._expose=i(function(){let t=this,r=t._server,{use:n="use",after:s="after",ready:o="ready",onClose:a="onClose",close:u="close"}=this._opts.expose;if(r[n])throw new Iu(n,"use");if(r[n]=function(c,l){return t.use(c,l),this},r[s])throw new Iu(s,"after");if(r[s]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(Bm(c,this)),this)},r[o])throw new Iu(o,"ready");if(r[o]=function(c){if(c&&typeof c!="function")throw new jo(o,typeof c);return t.ready(c?Bm(c,this):void 0)},r[a])throw new Iu(a,"onClose");if(r[a]=function(c){if(typeof c!="function")throw new jo(a,typeof c);return t.onClose(CF(c,this)),this},r[u])throw new Iu(u,"close");if(r[u]=function(c){if(c&&typeof c!="function")throw new jo(u,typeof c);return c?(t.close(Bm(c,this)),this):t.close()},r.then)throw new wF("then");Object.defineProperty(r,"then",{get:bv.bind(t)}),r[gv]=!0},"_expose");$t.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(r,n,s){Ev.call(this,e,s)}return i(t,"_after"),this};$t.prototype.onClose=function(e){if(typeof e!="function")throw new jo("onClose",typeof e);return e[yv]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};$t.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new jo("close",typeof e)}else t=new Promise(function(r,n){e=i(function(s){if(s)return n(s);r()},"func")});return this.ready(()=>{this._error=null,this._closeQ.push(e),process.nextTick(this._closeQ.resume.bind(this._closeQ))}),t};$t.prototype.ready=function(e){if(e){if(typeof e!="function")throw new jo("ready",typeof e);this._readyQ.push(e),queueMicrotask(this.start.bind(this));return}return new Promise((t,r)=>{this._readyQ.push(s),this.start();let n=this._current[0].server;function s(o,a,u){o?r(o):t(n),process.nextTick(u)}i(s,"readyPromiseCB")})};$t.prototype._trackPluginLoading=function(e){let t=this._current[0]?.name||null;e.once("start",(r,n,s)=>{let o=this.pluginTree.start(t||null,n,s);e.once("loaded",(a,u,c)=>{this.pluginTree.stop(o,c)})})};$t.prototype.prettyPrint=function(){return this.pluginTree.prettyPrint()};$t.prototype.toJSON=function(){return this.pluginTree.toJSON()};$t.prototype._loadPlugin=function(e,t){let r=this;if(AF(e.func)){e.func.then(a=>{typeof a.default=="function"&&(a=a.default),e.func=a,this._loadPlugin(e,t)},t);return}let n=r._current[0];if(r._current.unshift(e),r._error&&!e.isAfter){Uo("skipping loading of plugin as instance errored and it is not an after",e.name),process.nextTick(o);return}let s=n?.server||r._server;if(!e.isAfter)try{s=r.override(s,e.func,e.options)}catch(a){return Uo("override errored",e.name),o(a)}e.exec(s,o);function o(a){e.finish(a,u=>{r._current.shift(),t(u)})}i(o,"execCallback")};$t.prototype._loadPluginNextTick=function(e,t){process.nextTick(this._loadPlugin.bind(this),e,t)};function mv(){}i(mv,"noop");function Ev(e,t){let r=this._server,n=this._error;if(this._error=null,e.length===0)this._error=n,hv(e,[],t);else if(e.length===1)hv(e,[n],t);else if(this._opts.timeout===0){let s=i(o=>{this._error=o,t(this._error)},"wrapCb");e.length===2?e(n,s):e(n,r,s)}else OF.call(this,e,n,r,t)}i(Ev,"callWithCbOrNextTick");function OF(e,t,r,n){let s=e.unwrappedName??e.name;Uo("setting up ready timeout",s,this._opts.timeout);let o=setTimeout(()=>{Uo("timed out",s),o=null;let u=new vF(s);u.fn=e,this._error=u,n(u)},this._opts.timeout);e.length===2?e(t,a.bind(this)):e(t,r,a.bind(this));function a(u){o&&(clearTimeout(o),this._error=u,n(this._error))}i(a,"timeoutCb")}i(OF,"timeoutCall");function IF(e,t){let r=this._server,n=e[yv];if(e.length===0||e.length===1){let s;n?s=e(r):s=e(this._error),s&&typeof s.then=="function"?(Uo("resolving close/onClose promise"),s.then(()=>process.nextTick(t),o=>process.nextTick(t,o))):process.nextTick(t)}else e.length===2?e(n?r:this._error,t):n?e(r,t):e(this._error,r,t)}i(IF,"closeWithCbOrNextTick");function CF(e,t){return r.bind(t);function r(n,s){let o;e.length===0?(o=e(),o?.then?o.then(function(){process.nextTick(s)},s):process.nextTick(s)):e.length===1?(o=e(this),o?.then?o.then(function(){process.nextTick(s)},s):process.nextTick(s)):e(this,s)}}i(CF,"encapsulateTwoParam");function Bm(e,t){let r=n.bind(t);return r.unwrappedName=e.name,r;function n(s,o){let a;e?e.length===0?(a=e(),a?.then?a.then(function(){process.nextTick(o,s)},o):process.nextTick(o,s)):e.length===1?(a=e(s),a?.then?a.then(function(){process.nextTick(o)},o):process.nextTick(o)):e.length===2?e(s,o):e(s,this,o):process.nextTick(o)}i(n,"_encapsulateThreeParam")}i(Bm,"encapsulateThreeParam");Sv.exports=$t});var zt=L((Zde,vv)=>{"use strict";var DF={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};vv.exports=DF});var Tv=L((efe,Id)=>{"use strict";var{format:Vm}=le("node:util");function NF(e){return wv({...e,name:"DeprecationWarning"})}i(NF,"createDeprecation");function wv({name:e,code:t,message:r,unlimited:n=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!r)throw new Error("Warning message must not be empty");if(typeof n!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let s={[e]:function(a,u,c){o.emitted===!0&&o.unlimited!==!0||(o.emitted=!0,process.emitWarning(o.format(a,u,c),o.name,o.code))}};n&&(s={[e]:function(a,u,c){o.emitted=!0,process.emitWarning(o.format(a,u,c),o.name,o.code)}});let o=s[e];return o.emitted=!1,o.message=r,o.unlimited=n,o.code=t,o.format=function(a,u,c){let l;return a&&u&&c?l=Vm(r,a,u,c):a&&u?l=Vm(r,a,u):a?l=Vm(r,a):l=r,l},o}i(wv,"createWarning");var zm={createWarning:wv,createDeprecation:NF};Id.exports=zm;Id.exports.default=zm;Id.exports.processWarning=zm});var $o=L((rfe,Rv)=>{"use strict";var{createWarning:Cu}=Tv(),PF=Cu({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),LF=Cu({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),MF=Cu({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),qF=Cu({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),FF=Cu({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});Rv.exports={FSTWRN001:PF,FSTWRN003:LF,FSTWRN004:MF,FSTSEC001:qF,FSTDEP022:FF}});var Jt=L((nfe,Cd)=>{"use strict";var Y=Fm(),Os={FST_ERR_NOT_FOUND:Y("FST_ERR_NOT_FOUND","Not Found",404),FST_ERR_OPTIONS_NOT_OBJ:Y("FST_ERR_OPTIONS_NOT_OBJ","Options must be an object",500,TypeError),FST_ERR_QSP_NOT_FN:Y("FST_ERR_QSP_NOT_FN","querystringParser option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:Y("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN","schemaController.bucket option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:Y("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN","schemaErrorFormatter option should be a non async function. Instead got '%s'.",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:Y("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ","ajv.customOptions option should be an object, instead got '%s'",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:Y("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR","ajv.plugins option should be an array, instead got '%s'",500,TypeError),FST_ERR_VALIDATION:Y("FST_ERR_VALIDATION","%s",400),FST_ERR_LISTEN_OPTIONS_INVALID:Y("FST_ERR_LISTEN_OPTIONS_INVALID","Invalid listen options: '%s'",500,TypeError),FST_ERR_ERROR_HANDLER_NOT_FN:Y("FST_ERR_ERROR_HANDLER_NOT_FN","Error Handler must be a function",500,TypeError),FST_ERR_ERROR_HANDLER_ALREADY_SET:Y("FST_ERR_ERROR_HANDLER_ALREADY_SET","Error Handler already set in this scope. Set 'allowErrorHandlerOverride: true' to allow overriding.",500,TypeError),FST_ERR_CTP_ALREADY_PRESENT:Y("FST_ERR_CTP_ALREADY_PRESENT","Content type parser '%s' already present."),FST_ERR_CTP_INVALID_TYPE:Y("FST_ERR_CTP_INVALID_TYPE","The content type should be a string or a RegExp",500,TypeError),FST_ERR_CTP_EMPTY_TYPE:Y("FST_ERR_CTP_EMPTY_TYPE","The content type cannot be an empty string",500,TypeError),FST_ERR_CTP_INVALID_HANDLER:Y("FST_ERR_CTP_INVALID_HANDLER","The content type handler should be a function",500,TypeError),FST_ERR_CTP_INVALID_PARSE_TYPE:Y("FST_ERR_CTP_INVALID_PARSE_TYPE","The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.",500,TypeError),FST_ERR_CTP_BODY_TOO_LARGE:Y("FST_ERR_CTP_BODY_TOO_LARGE","Request body is too large",413,RangeError),FST_ERR_CTP_INVALID_MEDIA_TYPE:Y("FST_ERR_CTP_INVALID_MEDIA_TYPE","Unsupported Media Type",415),FST_ERR_CTP_INVALID_CONTENT_LENGTH:Y("FST_ERR_CTP_INVALID_CONTENT_LENGTH","Request body size did not match Content-Length",400,RangeError),FST_ERR_CTP_EMPTY_JSON_BODY:Y("FST_ERR_CTP_EMPTY_JSON_BODY","Body cannot be empty when content-type is set to 'application/json'",400),FST_ERR_CTP_INVALID_JSON_BODY:Y("FST_ERR_CTP_INVALID_JSON_BODY","Body is not valid JSON but content-type is set to 'application/json'",400),FST_ERR_CTP_INSTANCE_ALREADY_STARTED:Y("FST_ERR_CTP_INSTANCE_ALREADY_STARTED",'Cannot call "%s" when fastify instance is already started!',400),FST_ERR_DEC_ALREADY_PRESENT:Y("FST_ERR_DEC_ALREADY_PRESENT","The decorator '%s' has already been added!"),FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:Y("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE","The dependencies of decorator '%s' must be of type Array.",500,TypeError),FST_ERR_DEC_MISSING_DEPENDENCY:Y("FST_ERR_DEC_MISSING_DEPENDENCY","The decorator is missing dependency '%s'."),FST_ERR_DEC_AFTER_START:Y("FST_ERR_DEC_AFTER_START","The decorator '%s' has been added after start!"),FST_ERR_DEC_REFERENCE_TYPE:Y("FST_ERR_DEC_REFERENCE_TYPE","The decorator '%s' of type '%s' is a reference type. Use the { getter, setter } interface instead."),FST_ERR_DEC_UNDECLARED:Y("FST_ERR_DEC_UNDECLARED","No decorator '%s' has been declared on %s."),FST_ERR_HOOK_INVALID_TYPE:Y("FST_ERR_HOOK_INVALID_TYPE","The hook name must be a string",500,TypeError),FST_ERR_HOOK_INVALID_HANDLER:Y("FST_ERR_HOOK_INVALID_HANDLER","%s hook should be a function, instead got %s",500,TypeError),FST_ERR_HOOK_INVALID_ASYNC_HANDLER:Y("FST_ERR_HOOK_INVALID_ASYNC_HANDLER","Async function has too many arguments. Async hooks should not use the 'done' argument.",500,TypeError),FST_ERR_HOOK_NOT_SUPPORTED:Y("FST_ERR_HOOK_NOT_SUPPORTED","%s hook not supported!",500,TypeError),FST_ERR_MISSING_MIDDLEWARE:Y("FST_ERR_MISSING_MIDDLEWARE","You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.",500),FST_ERR_HOOK_TIMEOUT:Y("FST_ERR_HOOK_TIMEOUT","A callback for '%s' hook%s timed out. You may have forgotten to call 'done' function or to resolve a Promise"),FST_ERR_LOG_INVALID_DESTINATION:Y("FST_ERR_LOG_INVALID_DESTINATION","Cannot specify both logger.stream and logger.file options"),FST_ERR_LOG_INVALID_LOGGER:Y("FST_ERR_LOG_INVALID_LOGGER","Invalid logger object provided. The logger instance should have these functions(s): '%s'.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_INSTANCE:Y("FST_ERR_LOG_INVALID_LOGGER_INSTANCE","loggerInstance only accepts a logger instance.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_CONFIG:Y("FST_ERR_LOG_INVALID_LOGGER_CONFIG","logger options only accepts a configuration object.",500,TypeError),FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:Y("FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED","You cannot provide both logger and loggerInstance. Please provide only one.",500,TypeError),FST_ERR_REP_INVALID_PAYLOAD_TYPE:Y("FST_ERR_REP_INVALID_PAYLOAD_TYPE","Attempted to send payload of invalid type '%s'. Expected a string or Buffer.",500,TypeError),FST_ERR_REP_RESPONSE_BODY_CONSUMED:Y("FST_ERR_REP_RESPONSE_BODY_CONSUMED","Response.body is already consumed."),FST_ERR_REP_READABLE_STREAM_LOCKED:Y("FST_ERR_REP_READABLE_STREAM_LOCKED","ReadableStream was locked. You should call releaseLock() method on reader before sending."),FST_ERR_REP_ALREADY_SENT:Y("FST_ERR_REP_ALREADY_SENT",'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'),FST_ERR_REP_SENT_VALUE:Y("FST_ERR_REP_SENT_VALUE","The only possible value for reply.sent is true.",500,TypeError),FST_ERR_SEND_INSIDE_ONERR:Y("FST_ERR_SEND_INSIDE_ONERR","You cannot use `send` inside the `onError` hook"),FST_ERR_SEND_UNDEFINED_ERR:Y("FST_ERR_SEND_UNDEFINED_ERR","Undefined error has occurred"),FST_ERR_BAD_STATUS_CODE:Y("FST_ERR_BAD_STATUS_CODE","Called reply with an invalid status code: %s"),FST_ERR_BAD_TRAILER_NAME:Y("FST_ERR_BAD_TRAILER_NAME","Called reply.trailer with an invalid header name: %s"),FST_ERR_BAD_TRAILER_VALUE:Y("FST_ERR_BAD_TRAILER_VALUE","Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."),FST_ERR_FAILED_ERROR_SERIALIZATION:Y("FST_ERR_FAILED_ERROR_SERIALIZATION","Failed to serialize an error. Error: %s. Original error: %s"),FST_ERR_MISSING_SERIALIZATION_FN:Y("FST_ERR_MISSING_SERIALIZATION_FN",'Missing serialization function. Key "%s"'),FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Y("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN",'Missing serialization function. Key "%s:%s"'),FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:Y("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION",'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'),FST_ERR_SCH_MISSING_ID:Y("FST_ERR_SCH_MISSING_ID","Missing schema $id property"),FST_ERR_SCH_ALREADY_PRESENT:Y("FST_ERR_SCH_ALREADY_PRESENT","Schema with id '%s' already declared!"),FST_ERR_SCH_CONTENT_MISSING_SCHEMA:Y("FST_ERR_SCH_CONTENT_MISSING_SCHEMA","Schema is missing for the content type '%s'"),FST_ERR_SCH_DUPLICATE:Y("FST_ERR_SCH_DUPLICATE","Schema with '%s' already present!"),FST_ERR_SCH_VALIDATION_BUILD:Y("FST_ERR_SCH_VALIDATION_BUILD","Failed building the validation schema for %s: %s, due to error %s"),FST_ERR_SCH_SERIALIZATION_BUILD:Y("FST_ERR_SCH_SERIALIZATION_BUILD","Failed building the serialization schema for %s: %s, due to error %s"),FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:Y("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX",'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'),FST_ERR_INIT_OPTS_INVALID:Y("FST_ERR_INIT_OPTS_INVALID","Invalid initialization options: '%s'"),FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:Y("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE","Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"),FST_ERR_DUPLICATED_ROUTE:Y("FST_ERR_DUPLICATED_ROUTE","Method '%s' already declared for route '%s'"),FST_ERR_BAD_URL:Y("FST_ERR_BAD_URL","'%s' is not a valid url component",400,URIError),FST_ERR_ASYNC_CONSTRAINT:Y("FST_ERR_ASYNC_CONSTRAINT","Unexpected error from async constraint",500),FST_ERR_INVALID_URL:Y("FST_ERR_INVALID_URL","URL must be a string. Received '%s'",400,TypeError),FST_ERR_ROUTE_OPTIONS_NOT_OBJ:Y("FST_ERR_ROUTE_OPTIONS_NOT_OBJ",'Options for "%s:%s" route must be an object',500,TypeError),FST_ERR_ROUTE_DUPLICATED_HANDLER:Y("FST_ERR_ROUTE_DUPLICATED_HANDLER",'Duplicate handler for "%s:%s" route is not allowed!',500),FST_ERR_ROUTE_HANDLER_NOT_FN:Y("FST_ERR_ROUTE_HANDLER_NOT_FN","Error Handler for %s:%s route, if defined, must be a function",500,TypeError),FST_ERR_ROUTE_MISSING_HANDLER:Y("FST_ERR_ROUTE_MISSING_HANDLER",'Missing handler function for "%s:%s" route.',500),FST_ERR_ROUTE_METHOD_INVALID:Y("FST_ERR_ROUTE_METHOD_INVALID","Provided method is invalid!",500,TypeError),FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:Y("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED","%s method is not supported.",500),FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:Y("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED","Body validation schema for %s:%s route is not supported!",500),FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:Y("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT","'bodyLimit' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_HANDLER_TIMEOUT:Y("FST_ERR_HANDLER_TIMEOUT","Request timed out after %s ms on route '%s'",503),FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:Y("FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT","'handlerTimeout' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_ROUTE_REWRITE_NOT_STR:Y("FST_ERR_ROUTE_REWRITE_NOT_STR",'Rewrite url for "%s" needs to be of type "string" but received "%s"',500,TypeError),FST_ERR_REOPENED_CLOSE_SERVER:Y("FST_ERR_REOPENED_CLOSE_SERVER","Fastify has already been closed and cannot be reopened"),FST_ERR_REOPENED_SERVER:Y("FST_ERR_REOPENED_SERVER","Fastify is already listening"),FST_ERR_INSTANCE_ALREADY_LISTENING:Y("FST_ERR_INSTANCE_ALREADY_LISTENING","Fastify instance is already listening. %s"),FST_ERR_PLUGIN_VERSION_MISMATCH:Y("FST_ERR_PLUGIN_VERSION_MISMATCH","fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"),FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:Y("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE","The decorator '%s'%s is not present in %s"),FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:Y("FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER","The %s plugin being registered mixes async and callback styles. Async plugin should not mix async and callback style.",500,TypeError),FST_ERR_PLUGIN_CALLBACK_NOT_FN:Y("FST_ERR_PLUGIN_CALLBACK_NOT_FN","fastify-plugin: %s",500,TypeError),FST_ERR_PLUGIN_NOT_VALID:Y("FST_ERR_PLUGIN_NOT_VALID","fastify-plugin: %s"),FST_ERR_ROOT_PLG_BOOTED:Y("FST_ERR_ROOT_PLG_BOOTED","fastify-plugin: %s"),FST_ERR_PARENT_PLUGIN_BOOTED:Y("FST_ERR_PARENT_PLUGIN_BOOTED","fastify-plugin: %s"),FST_ERR_PLUGIN_TIMEOUT:Y("FST_ERR_PLUGIN_TIMEOUT","fastify-plugin: %s")};function jF(e,t){return t.cause=e,t}i(jF,"appendStackTrace");Cd.exports=Os;Cd.exports.appendStackTrace=jF;Cd.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:Os.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:Os.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:Os.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:Os.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:Os.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:Os.FST_ERR_PLUGIN_TIMEOUT}});var Bi=L((sfe,Lv)=>{"use strict";var UF=["onRoute","onRegister","onReady","onListen","preClose","onClose"],Iv=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],$F=Iv.concat(UF),{FST_ERR_HOOK_INVALID_TYPE:HF,FST_ERR_HOOK_INVALID_HANDLER:BF,FST_ERR_SEND_UNDEFINED_ERR:Dd,FST_ERR_HOOK_TIMEOUT:VF,FST_ERR_HOOK_NOT_SUPPORTED:zF,AVVIO_ERRORS_MAP:kv,appendStackTrace:Av}=Jt(),{kChildren:Du,kHooks:Cv,kRequestPayloadStream:Ov}=zt();function Nu(){this.onRequest=[],this.preParsing=[],this.preValidation=[],this.preSerialization=[],this.preHandler=[],this.onResponse=[],this.onSend=[],this.onError=[],this.onRoute=[],this.onRegister=[],this.onReady=[],this.onListen=[],this.onTimeout=[],this.onRequestAbort=[],this.preClose=[]}i(Nu,"Hooks");Nu.prototype=Object.create(null);Nu.prototype.validate=function(e,t){if(typeof e!="string")throw new HF;if(Array.isArray(this[e])===!1)throw new zF(e);if(typeof t!="function")throw new BF(e,Object.prototype.toString.call(t))};Nu.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function GF(e){let t=new Nu;return t.onRequest=e.onRequest.slice(),t.preParsing=e.preParsing.slice(),t.preValidation=e.preValidation.slice(),t.preSerialization=e.preSerialization.slice(),t.preHandler=e.preHandler.slice(),t.onSend=e.onSend.slice(),t.onResponse=e.onResponse.slice(),t.onError=e.onError.slice(),t.onRoute=e.onRoute.slice(),t.onRegister=e.onRegister.slice(),t.onTimeout=e.onTimeout.slice(),t.onRequestAbort=e.onRequestAbort.slice(),t.onReady=[],t.onListen=[],t.preClose=[],t}i(GF,"buildHooks");function Dv(e,t,r,n){let s=r[Cv][e],o=0,a=0;c();function u(d){let p=s[o-1]?.name,m=p?` "${p}"`:"";if(d){d.code==="AVV_ERR_READY_TIMEOUT"?d=Av(d,new VF(e,m)):d=kv[d.code]!=null?Av(d,new kv[d.code](d.message)):d,n(d);return}n()}i(u,"exit");function c(d){if(d){u(d);return}if(o===s.length&&a===r[Du].length){o===0&&a===0?u():t(i(function(m,f){u(m),f(m)},"manageTimeout"));return}if(o===s.length&&a<r[Du].length){let p=r[Du][a++];Dv(e,t,p,c);return}t(l(s[o++],r)),c()}i(c,"next");function l(d,p){return function(m,f){if(m){f(m);return}if(d.length===1){try{d.call(p,f)}catch(h){f(h)}return}try{let h=d.call(p);if(h&&typeof h.then=="function"){h.then(f,f);return}}catch(h){m=h}f(m)}}i(l,"wrap")}i(Dv,"hookRunnerApplication");function Nv(e){let t=e[Cv].onListen,r=t.length,n=0,s=0;o();function o(u){if(u&&e.log.error(u),n===r){for(;s<e[Du].length;){let c=e[Du][s++];Nv(c)}return}a(t[n++],e,o)}i(o,"next");async function a(u,c,l){if(u.length===1){try{u.call(c,l)}catch(d){l(d)}return}try{let d=u.call(c);if(d&&typeof d.then=="function"){d.then(l,l);return}l()}catch(d){l(d)}}i(a,"wrap")}i(Nv,"onListenHookRunner");function Ho(e){return i(function(r,n,s,o){let a=0;function u(d){if(d||a===r.length){o(d,n,s);return}let p;try{p=e(r[a++],n,s,u)}catch(m){o(m,n,s);return}p&&typeof p.then=="function"&&p.then(c,l)}i(u,"next");function c(){u()}i(c,"handleResolve");function l(d){d||(d=new Dd),o(d,n,s)}i(l,"handleReject"),u()},"hookRunner")}i(Ho,"hookRunnerGenerator");function WF(e,t,r,n){return e(t,r,n)}i(WF,"onResponseHookIterator");var KF=Ho(WF),JF=Ho(Pu),YF=Ho(Pu),XF=Ho(Pu),QF=Ho(Pu);function Pv(e,t,r,n,s){let o=0;function a(l,d){if(l){s(l,t,r,n);return}if(d!==void 0&&(n=d),o===e.length){s(null,t,r,n);return}let p;try{p=e[o++](t,r,n,a)}catch(m){s(m,t,r);return}p&&typeof p.then=="function"&&p.then(u,c)}i(a,"next");function u(l){a(null,l)}i(u,"handleResolve");function c(l){l||(l=new Dd),s(l,t,r,n)}i(c,"handleReject"),a()}i(Pv,"onSendHookRunner");var ZF=Pv;function e9(e,t,r,n){let s=0;function o(c,l){if(r.sent)return;if(l!==void 0&&(t[Ov]=l),c||s===e.length){n(c,t,r);return}let d;try{d=e[s++](t,r,t[Ov],o)}catch(p){n(p,t,r);return}d&&typeof d.then=="function"&&d.then(a,u)}i(o,"next");function a(c){o(null,c)}i(a,"handleResolve");function u(c){c||(c=new Dd),n(c,t,r)}i(u,"handleReject"),o()}i(e9,"preParsingHookRunner");function t9(e,t,r){let n=0;function s(u){if(u||n===e.length){r(u,t);return}let c;try{c=e[n++](t,s)}catch(l){r(l,t);return}c&&typeof c.then=="function"&&c.then(o,a)}i(s,"next");function o(){s()}i(o,"handleResolve");function a(u){u||(u=new Dd),r(u,t)}i(a,"handleReject"),s()}i(t9,"onRequestAbortHookRunner");function Pu(e,t,r,n){if(r.sent!==!0)return e(t,r,n)}i(Pu,"hookIterator");Lv.exports={Hooks:Nu,buildHooks:GF,hookRunnerGenerator:Ho,preParsingHookRunner:e9,onResponseHookRunner:KF,onSendHookRunner:Pv,preSerializationHookRunner:ZF,onRequestAbortHookRunner:t9,hookIterator:Pu,hookRunnerApplication:Dv,onListenHookRunner:Nv,preHandlerHookRunner:YF,preValidationHookRunner:JF,onRequestHookRunner:QF,onTimeoutHookRunner:XF,lifecycleHooks:Iv,supportedHooks:$F}});var qv=L((afe,Mv)=>{"use strict";Mv.exports=i(function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}},"noopSet")});var Gm=L((cfe,jv)=>{"use strict";var{kTestInternals:r9}=zt();function Fv(){let e,t;return{promise:new Promise((n,s)=>{e=n,t=s}),resolve:e,reject:t}}i(Fv,"withResolvers");jv.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):Fv,[r9]:{withResolvers:Fv}}});var Yv=L((dfe,Jv)=>{"use strict";var n9=le("node:http"),i9=le("node:https"),Uv=le("node:http2"),s9=le("node:dns"),o9=le("node:os"),{kState:Ht,kOptions:a9,kServerBindings:u9,kHttp2ServerSessions:Is}=zt(),{FSTWRN003:c9}=$o(),{onListenHookRunner:Nd}=Bi(),{FST_ERR_REOPENED_CLOSE_SERVER:Hv,FST_ERR_REOPENED_SERVER:Bv,FST_ERR_LISTEN_OPTIONS_INVALID:l9,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:d9}=Jt(),f9=qv(),Vv=Gm();Jv.exports.createServer=p9;function zv(e){return`Server listening at ${e}`}i(zv,"defaultResolveServerListeningText");function p9(e,t){let r=Wv(e,t);function n(l={port:0,host:"localhost"},d=void 0){if(typeof d=="function"&&(d.constructor.name==="AsyncFunction"&&c9("listen method"),l.cb=d),l.signal){if(typeof l.signal.on!="function"&&typeof l.signal.addEventListener!="function")throw new l9("Invalid options.signal");if(this[Ht].aborted=l.signal.aborted,this[Ht].aborted)return this.close();{let m=i(()=>{this[Ht].aborted=!0,this.close()},"onAborted");l.signal.addEventListener("abort",m,{once:!0})}}let p;if(l.path==null?p=l.host??"localhost":p=l.host,(!Object.hasOwn(l,"host")||l.host==null)&&(l.host=p),p==="localhost"?l.cb=(m,f)=>{if(m){d(m,f);return}$v.call(this,r,t,e,l,()=>{this[Ht].listening=!0,d(null,f),Nd(this)})}:l.cb=(m,f)=>{if(m){d(m,f);return}this[Ht].listening=!0,d(null,f),Nd(this)},d===void 0)return h9.call(this,r,l).then(f=>{let{promise:h,resolve:S}=Vv.withResolvers();return p==="localhost"?$v.call(this,r,t,e,l,()=>{this[Ht].listening=!0,S(f),Nd(this)}):(S(f),Nd(this)),h});this.ready(Gv.call(this,r,l))}i(n,"listen");let s=typeof r.closeAllConnections=="function",o=typeof r.closeIdleConnections=="function",a=typeof r.closeHttp2Sessions=="function",u=e.forceCloseConnections;if(u==="idle"&&!o)throw new d9;typeof u!="boolean"&&(u=o?"idle":!1);let c=!s&&u===!0?new Set:f9();return{server:r,listen:n,forceCloseConnections:u,serverHasCloseAllConnections:s,serverHasCloseHttp2Sessions:a,keepAliveConnections:c}}i(p9,"createServer");function $v(e,t,r,n,s){this[Ht].listening=!1,s9.lookup(n.host,{all:!0},(o,a)=>{if(o||this[Ht].aborted){s();return}let u=e.listening&&r.serverFactory,c=0,l=0;if(!u){let p=e.address();for(let m of a)if(m.address!==p.address){c++;let f=Object.assign({},n,{host:m.address,port:p.port,cb:i(y=>{l++,y||this[u9].push(h),l===c&&s()},"cb")}),h=Wv(r,t),S=i(()=>{h.close(()=>{}),typeof h.closeAllConnections=="function"&&r.forceCloseConnections===!0&&h.closeAllConnections(),typeof h.closeHttp2Sessions=="function"&&h.closeHttp2Sessions()},"closeSecondary");h.on("upgrade",e.emit.bind(e,"upgrade")),e.on("unref",S),e.on("close",S),e.on("error",S),this[Ht].listening=!1,Gv.call(this,h,f)()}}if(c===0){s();return}let d=e.unref;e.unref=function(){d.call(e),e.emit("unref")}})}i($v,"multipleBindings");function Gv(e,t){let r=i(n=>{if(e.removeListener("error",r),e.removeListener("listening",r),n)this[Ht].listening=!1,t.cb(n,null);else{let s=Kv.call(this,e,t.listenTextResolver||zv);t.cb(null,s)}},"wrap");return n=>{if(n!=null)return t.cb(n);if(this[Ht].listening&&this[Ht].closing)return t.cb(new Hv,null);if(this[Ht].listening)return t.cb(new Bv,null);e.once("error",r),this[Ht].closing||(e.once("listening",r),e.listen(t),this[Ht].listening=!0)}}i(Gv,"listenCallback");function h9(e,t){return this[Ht].listening&&this[Ht].closing?Promise.reject(new Hv):this[Ht].listening?Promise.reject(new Bv):this.ready().then(()=>{if(this[Ht].aborted)return;let{promise:r,resolve:n,reject:s}=Vv.withResolvers(),o=i(c=>{u(),this[Ht].listening=!1,s(c)},"errEventHandler"),a=i(()=>{u(),this[Ht].listening=!0,n(Kv.call(this,e,t.listenTextResolver||zv))},"listeningEventHandler");function u(){e.removeListener("error",o),e.removeListener("listening",a)}return i(u,"cleanup"),e.once("error",o),e.once("listening",a),e.listen(t),r})}i(h9,"listenPromise");function Wv(e,t){if(e.serverFactory)return e.serverFactory(t,e);let r=e.https===!0?{}:e.https;if(e.http2){let s=typeof r=="object"?Uv.createSecureServer(r,t):Uv.createServer(e.http,t);return s.on("session",o=>o.setTimeout(e.http2SessionTimeout,()=>{o.close()})),e.forceCloseConnections===!0&&(s.closeHttp2Sessions=g9(s)),s.setTimeout(e.connectionTimeout),s}let n=r?i9.createServer(r,t):n9.createServer(e.http,t);return n.keepAliveTimeout=e.keepAliveTimeout,n.requestTimeout=e.requestTimeout,n.setTimeout(e.connectionTimeout),e.maxRequestsPerSocket>0&&(n.maxRequestsPerSocket=e.maxRequestsPerSocket),n}i(Wv,"getServerInstance");function m9(e){return e.address==="0.0.0.0"?Object.values(o9.networkInterfaces()).flatMap(t=>t.filter(r=>r.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}i(m9,"getAddresses");function Kv(e,t){let r;typeof e.address()=="string"?r=[e.address()]:(e.address().address.indexOf(":")===-1?r=m9(e.address()).map(s=>s+":"+e.address().port):r=["["+e.address().address+"]:"+e.address().port],r=r.map(s=>"http"+(this[a9].https?"s":"")+"://"+s));for(let s of r)this.log.info(t(s));return r[0]}i(Kv,"logServerAddress");function g9(e){return e[Is]=new Set,e.on("session",function(t){t.once("connect",function(){e[Is].add(t)}),t.once("close",function(){e[Is].delete(t)}),t.once("frameError",function(r,n,s){s===0&&e[Is].delete(t)}),t.once("goaway",function(){e[Is].delete(t)})}),i(function(){if(e[Is].size!==0)for(let r of e[Is])r.close()},"closeHttp2Sessions")}i(g9,"createCloseHttp2SessionsByHttp2Server")});var Jm=L((pfe,Zv)=>{"use strict";var Wm=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,Xv=/^[\w!#$%&'*+.^`|~-]+$/,Qv=/^[\w!#$%&'*+.^`|~-]+\s*$/,Km=class{static{i(this,"ContentType")}#e=!1;#t=!0;#r="";#n="";#i=new Map;#s;constructor(t){if(t==null||t===""||t==="undefined")return;let r=t.indexOf(";");if(r===-1){if(r=t.indexOf("/"),r===-1)return;let c=t.slice(0,r).trimStart().toLowerCase(),l=t.slice(r+1).trimEnd().toLowerCase();Xv.test(c)===!0&&Qv.test(l)===!0&&(this.#e=!0,this.#t=!1,this.#r=c,this.#n=l);return}let n=t.slice(0,r).toLowerCase(),s=t.slice(r+1).trim();if(r=n.indexOf("/"),r===-1)return;let o=n.slice(0,r).trimStart(),a=n.slice(r+1).trimEnd();if(Xv.test(o)===!1||Qv.test(a)===!1)return;this.#r=o,this.#n=a,this.#e=!0,this.#t=!1;let u=Wm.exec(s);for(;u;){let c=u[1],l=u[2];if(l[0]==='"'){if(l.at(-1)!=='"'){this.#i.set(c,"invalid quoted string"),u=Wm.exec(s);continue}this.#i.set(c,l.slice(1,l.length-1))}else this.#i.set(c,l);u=Wm.exec(s)}}get[Symbol.toStringTag](){return"ContentType"}get isEmpty(){return this.#t}get isValid(){return this.#e}get mediaType(){return`${this.#r}/${this.#n}`}get type(){return this.#r}get subtype(){return this.#n}get parameters(){return this.#i}toString(){if(this.#s)return this.#s;let t=[];for(let[n,s]of this.#i.entries())t.push(`${n}="${s}"`);let r=[this.#r,"/",this.#n];return t.length>0&&(r.push("; "),r.push(t.join("; "))),this.#s=r.join(""),this.#s}};Zv.exports=Km});var Pd=L((mfe,ew)=>{"use strict";var{kReplyHasStatusCode:y9}=zt();function x9(e,t){if(!e[y9]||e.statusCode===200){let r=t&&(t.statusCode||t.status);e.code(r>=400?r:500)}}i(x9,"setErrorStatusCode");ew.exports={setErrorStatusCode:x9}});var Ym=L((yfe,rw)=>{"use strict";var{kReplyIsError:tw,kReplyHijacked:b9}=zt(),{setErrorStatusCode:E9}=Pd(),S9=le("node:diagnostics_channel"),Lu=S9.tracingChannel("fastify.request.handler");function _9(e,t,r){r&&(r.async=!0),e.then(function(n){if(t[b9]!==!0){r&&Lu.asyncStart.publish(r);try{if(n!==void 0||t.sent===!1&&t.raw.headersSent===!1&&t.request.raw.aborted===!1&&t.request.socket&&!t.request.socket.destroyed)try{t.send(n)}catch(s){t[tw]=!0,t.send(s)}}finally{r&&Lu.asyncEnd.publish(r)}}},function(n){r&&(r.error=n,E9(t,n),Lu.error.publish(r),Lu.asyncStart.publish(r));try{if(t.sent===!0){t.log.error({err:n},"Promise errored, but reply.sent = true was set");return}t[tw]=!0,t.send(n)}catch(s){t.send(s)}finally{r&&Lu.asyncEnd.publish(r)}})}i(_9,"wrapThenable");rw.exports=_9});var Zm=L((bfe,iw)=>{"use strict";var{kSchemaHeaders:qd,kSchemaParams:Xm,kSchemaQuerystring:Qm,kSchemaBody:Cs,kSchemaResponse:nw}=zt(),v9=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:w9}=Jt(),{FSTWRN001:Ld}=$o();function T9(e,t){if(!e.schema||!e.schema.response)return;let{method:r,url:n}=e.config||{};e[nw]=Object.keys(e.schema.response).reduce(function(s,o){let a=e.schema.response[o];if(o=o.toLowerCase(),!v9.test(o))throw new w9;if(a.content){let u={};for(let c of Object.keys(a.content)){let l=a.content[c].schema;u[c]=t({schema:l,url:n,method:r,httpStatus:o,contentType:c})}s[o]=u}else s[o]=t({schema:a,url:n,method:r,httpStatus:o});return s},{})}i(T9,"compileSchemasForSerialization");function R9(e,t,r){let{schema:n}=e;if(!n)return;let{method:s,url:o}=e.config||{},a=n.headers;if(a&&(r||Object.getPrototypeOf(a)!==Object.prototype))e[qd]=t({schema:a,method:s,url:o,httpPart:"headers"});else if(a){let u={};Object.keys(a).forEach(c=>{u[c]=a[c]}),u.required instanceof Array&&(u.required=u.required.map(c=>c.toLowerCase())),a.properties&&(u.properties={},Object.keys(a.properties).forEach(c=>{u.properties[c.toLowerCase()]=a.properties[c]})),e[qd]=t({schema:u,method:s,url:o,httpPart:"headers"})}else Object.hasOwn(n,"headers")&&Ld("headers",s,o);if(n.body){let u=n.body.content;if(u){let c={};for(let l of Object.keys(u)){let d=u[l].schema;c[l]=t({schema:d,method:s,url:o,httpPart:"body",contentType:l})}e[Cs]=c}else e[Cs]=t({schema:n.body,method:s,url:o,httpPart:"body"})}else Object.hasOwn(n,"body")&&Ld("body",s,o);n.querystring?e[Qm]=t({schema:n.querystring,method:s,url:o,httpPart:"querystring"}):Object.hasOwn(n,"querystring")&&Ld("querystring",s,o),n.params?e[Xm]=t({schema:n.params,method:s,url:o,httpPart:"params"}):Object.hasOwn(n,"params")&&Ld("params",s,o)}i(R9,"compileSchemasForValidation");function Md(e,t,r){let n=t[r]===void 0,s;try{s=e?.(n?null:t[r])}catch(a){return a.statusCode=500,a}if(s&&typeof s.then=="function")return s.then(a=>o(a)).catch(a=>a);return o(s);function o(a){return a===!1?e.errors:a&&a.error?a.error:(a&&a.value&&(t[r]=a.value),!1)}}i(Md,"validateParam");function Fd(e,t,r){let n=r===void 0;if(n||!r.skipParams){let o=Md(e[Xm],t,"params");if(o)return typeof o.then!="function"?Vi(o,"params",e.schemaErrorFormatter):k9(o,e,t)}if(n||!r.skipBody){let o=null;if(typeof e[Cs]=="function")o=e[Cs];else if(e[Cs]){let u=C9(t.headers["content-type"]),c=e[Cs][u];c&&(o=c)}let a=Md(o,t,"body");if(a)return typeof a.then!="function"?Vi(a,"body",e.schemaErrorFormatter):A9(a,e,t)}if(n||!r.skipQuery){let o=Md(e[Qm],t,"query");if(o)return typeof o.then!="function"?Vi(o,"querystring",e.schemaErrorFormatter):O9(o,e,t)}let s=Md(e[qd],t,"headers");return s?typeof s.then!="function"?Vi(s,"headers",e.schemaErrorFormatter):I9(s,e,t):!1}i(Fd,"validate");function k9(e,t,r){return e.then(n=>n?Vi(n,"params",t.schemaErrorFormatter):Fd(t,r,{skipParams:!0}))}i(k9,"validateAsyncParams");function A9(e,t,r){return e.then(n=>n?Vi(n,"body",t.schemaErrorFormatter):Fd(t,r,{skipParams:!0,skipBody:!0}))}i(A9,"validateAsyncBody");function O9(e,t,r){return e.then(n=>n?Vi(n,"querystring",t.schemaErrorFormatter):Fd(t,r,{skipParams:!0,skipBody:!0,skipQuery:!0}))}i(O9,"validateAsyncQuery");function I9(e,t,r){return e.then(n=>n?Vi(n,"headers",t.schemaErrorFormatter):!1)}i(I9,"validateAsyncHeaders");function Vi(e,t,r){if(e instanceof Error)return e.statusCode=e.statusCode||400,e.code=e.code||"FST_ERR_VALIDATION",e.validationContext=e.validationContext||t,e;let n=r(e,t);return n.statusCode=n.statusCode||400,n.code=n.code||"FST_ERR_VALIDATION",n.validation=e,n.validationContext=t,n}i(Vi,"wrapValidationError");function C9(e){return e?e.split(/[ ;]/,1)[0].trim().toLowerCase():""}i(C9,"getEssenceMediaType");iw.exports={symbols:{bodySchema:Cs,querystringSchema:Qm,responseSchema:nw,paramsSchema:Xm,headersSchema:qd},compileSchemasForValidation:R9,compileSchemasForSerialization:T9,validate:Fd}});var ng=L((Sfe,rg)=>{"use strict";var D9=le("node:diagnostics_channel"),N9=Jm(),P9=Ym(),{validate:L9}=Zm(),{preValidationHookRunner:M9,preHandlerHookRunner:q9}=Bi(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:F9}=Jt(),{setErrorStatusCode:sw}=Pd(),{kReplyIsError:qu,kRouteContext:Fn,kFourOhFourContext:j9,kSupportedHTTPMethods:ow}=zt(),Mu=D9.tracingChannel("fastify.request.handler");function U9(e,t,r){if(r.sent===!0)return;if(e!=null){r[qu]=!0,r.send(e);return}let n=t.method;if(this[ow].bodyless.has(n)){Bo(t,r);return}if(this[ow].bodywith.has(n)){let s=t.headers,o=s["content-type"];if(o===void 0){let u=s["content-length"];if(s["transfer-encoding"]===void 0&&(u===void 0||u==="0")){Bo(t,r);return}t[Fn].contentTypeParser.run("",Bo,t,r);return}let a=new N9(o);if(a.isValid===!1){r[qu]=!0,r.status(415).send(new F9);return}t[Fn].contentTypeParser.run(a.toString(),Bo,t,r);return}Bo(t,r)}i(U9,"handleRequest");function Bo(e,t){try{e[Fn].preValidation!==null?M9(e[Fn].preValidation,e,t,eg):eg(null,e,t)}catch(r){eg(r,e,t)}}i(Bo,"handler");function eg(e,t,r){if(r.sent===!0)return;if(e!=null){r[qu]=!0,r.send(e);return}let n=L9(r[Fn],t);if(n&&typeof n.then=="function"||!1){let o=aw.bind(null,t,r);n.then(o,o)}else aw(t,r,n)}i(eg,"preValidationCallback");function aw(e,t,r){if(r){if(t[Fn].attachValidation===!1){t.send(r);return}t.request.validationError=r}e[Fn].preHandler!==null?q9(e[Fn].preHandler,e,t,tg):tg(null,e,t)}i(aw,"validationCompleted");function tg(e,t,r){if(r.sent)return;let n=t[Fn];if(!Mu.hasSubscribers||n[j9]===null)uw(e,t,r);else{let s={request:t,reply:r,async:!1,route:{url:n.config.url,method:n.config.method}};Mu.start.runStores(s,uw,void 0,e,t,r,s)}}i(tg,"preHandlerCallback");function uw(e,t,r,n){let s=t[Fn];try{if(e!=null){r[qu]=!0,n&&(n.error=e,sw(r,e),Mu.error.publish(n)),r.send(e);return}let o;try{o=s.handler(t,r)}catch(a){n&&(n.error=a,sw(r,a),Mu.error.publish(n)),r[qu]=!0,r.send(a);return}o!==void 0&&(o!==null&&typeof o.then=="function"?P9(o,r,n):r.send(o))}finally{n&&Mu.end.publish(n)}}i(uw,"preHandlerCallbackInner");rg.exports=U9;rg.exports[Symbol.for("internals")]={handler:Bo,preHandlerCallback:tg}});var lw=L((vfe,cw)=>{"use strict";function Vo(){}i(Vo,"noop");var $9={fatal:Vo,error:Vo,warn:Vo,info:Vo,debug:Vo,trace:Vo};Object.defineProperty(cw,"exports",{get(){return Object.create($9)}})});var sg=L((Tfe,pw)=>{"use strict";var Fu=i(e=>e&&typeof e.message=="string","isErrorLike"),ig=i(e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let r=e.cause();return Fu(r)?r:void 0}else return Fu(t)?t:void 0},"getErrorCause"),dw=i((e,t)=>{if(!Fu(e))return"";let r=e.stack||"";if(t.has(e))return r+`
|
|
21
21
|
causes have become circular...`;let n=ig(e);return n?(t.add(e),r+`
|
|
@@ -468,7 +468,7 @@ ${b}`,truncated:!0,outputPath:k}});return yield*t().pipe(g.catchCause(o=>g.logEr
|
|
|
468
468
|
</html>
|
|
469
469
|
`),this.cleanup()})}async start(){let t=this.options.host||"127.0.0.1",r=this.options.port||0;await this.server.listen({host:t,port:r})}async waitForCallback(){let t=this.options.timeout||6e4;return this.timeoutHandle=setTimeout(()=>{this.rejectCallback?.(new Error("OAuth callback timeout")),this.cleanup()},t),new Promise((r,n)=>{this.resolveCallback=r,this.rejectCallback=n})}getPort(){let t=this.server.server.address();if(!t||typeof t=="string")throw new Error("Server not started or using Unix socket");return t.port}getCallbackUrl(){let t=this.options.host||"127.0.0.1",r=this.getPort();return`http://${t}:${r}/callback`}cleanup(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),setTimeout(()=>{this.server.close()},100)}async close(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),await this.server.close()}};var Cc=class{static{i(this,"GitLabOAuthFlow")}options;constructor(t){this.options=t}async authorize(){let t=Bh(43),r=Z_(t),n=Bh(32);return this.options.method==="auto"?this.authorizeWithCallback(r,n,t):this.authorizeWithManualCode(r,n,t)}async authorizeWithCallback(t,r,n){let s=new ya({port:0,host:"127.0.0.1",timeout:this.options.timeout||6e4});try{let o=s.waitForCallback(),a=s.getCallbackUrl(),u=this.buildAuthorizationUrl(a,t,r);await(await import("./open-7KXTRM37.js")).default(u);let l=await o;if(l.state!==r)throw new Error("State mismatch - possible CSRF attack");return{code:l.code,state:l.state,codeVerifier:n}}finally{await s.close()}}authorizeWithManualCode(t,r,n){throw this.buildAuthorizationUrl("http://127.0.0.1/callback",t,r),new Error("Manual code entry not yet implemented - use auto method")}buildAuthorizationUrl(t,r,n){let s=new URLSearchParams({client_id:this.options.clientId,redirect_uri:t,response_type:"code",state:n,scope:this.options.scopes.join(" "),code_challenge:r,code_challenge_method:"S256"});return`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/authorize?${s.toString()}`}async exchangeAuthorizationCode(t,r,n){let o=`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/token`,a=new URLSearchParams({client_id:this.options.clientId,code:t,grant_type:"authorization_code",redirect_uri:n,code_verifier:r}),u=await fetch(o,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:a.toString()});if(!u.ok){let l=await u.text();throw new Error(`Token exchange failed: ${u.status} ${u.statusText} - ${l}`)}return await u.json()}async exchangeRefreshToken(t){let n=`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/token`,s=new URLSearchParams({client_id:this.options.clientId,refresh_token:t,grant_type:"refresh_token"}),o=await fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:s.toString()});if(!o.ok){let u=await o.text();throw new Error(`Token refresh failed: ${o.status} ${o.statusText} - ${u}`)}return await o.json()}};import Lt from"fs";import Ws from"path";import zD from"os";var Nc=process.env.GITLAB_OAUTH_CLIENT_ID||"1d89f9fdb23ee96d4e603201f6861dab6e143c5c3c00469a018a2d94bdc03d4e",OQ="https://gitlab.com",Db=["api"];function Pc(){return process.env.GITLAB_INSTANCE_URL||OQ}i(Pc,"resolveInstanceUrl");function Cb(e){let t=e&&e.trim()?e.trim():Pc(),r=new URL(t);return`${r.protocol}//${r.host}`}i(Cb,"normalizeOptionalInstanceUrl");function VD(e){if(!(!e||!e.trim()))try{let t=new URL(e.trim());return t.protocol!=="http:"&&t.protocol!=="https:"?"Instance URL must use http or https":void 0}catch{return"Enter a valid URL, e.g. https://gitlab.com"}}i(VD,"validateInstanceUrl");function Pt(e,t){try{let r=zD.homedir(),n=Ws.join(r,".local","share","opencode","log");Lt.existsSync(n)||Lt.mkdirSync(n,{recursive:!0});let s=Ws.join(n,"gitlab-auth.log"),o=new Date().toISOString(),a=t?`[${o}] ${e}: ${JSON.stringify(t)}
|
|
470
470
|
`:`[${o}] ${e}
|
|
471
|
-
`;Lt.appendFileSync(s,a)}catch{}}i(Pt,"debugLog");function Pp(){let e=zD.homedir(),t=process.env.XDG_DATA_HOME;return t?Ws.join(t,"opencode","auth.json"):process.platform!=="win32"?Ws.join(e,".local","share","opencode","auth.json"):Ws.join(e,".opencode","auth.json")}i(Pp,"getAuthPath");async function GD(e,t,r,n){let s=Pp(),o=Ws.dirname(s);Lt.existsSync(o)||Lt.mkdirSync(o,{recursive:!0});let a={};if(Lt.existsSync(s)){let u=Lt.readFileSync(s,"utf-8");a=JSON.parse(u)}a.gitlab={type:"oauth",access:e,refresh:t,expires:r,enterpriseUrl:n},Lt.writeFileSync(s,JSON.stringify(a,null,2)),Lt.chmodSync(s,384)}i(GD,"saveOAuthData");async function IQ(e,t){let r=Pp(),n=Ws.dirname(r);Lt.existsSync(n)||Lt.mkdirSync(n,{recursive:!0});let s={};if(Lt.existsSync(r)){let o=Lt.readFileSync(r,"utf-8");s=JSON.parse(o)}s.gitlab={type:"api",key:e,enterpriseUrl:t},Lt.writeFileSync(r,JSON.stringify(s,null,2)),Lt.chmodSync(r,384)}i(IQ,"savePATData");function CQ(e){try{let t=Pp();if(!Lt.existsSync(t))return;let r=JSON.parse(Lt.readFileSync(t,"utf-8")),n=r.gitlab;if(!n||n.type!=="api")return;let s={...n.metadata??{},instanceUrl:e};r.gitlab={...n,metadata:s},Lt.writeFileSync(t,JSON.stringify(r,null,2)),Lt.chmodSync(t,384)}catch{}}i(CQ,"persistPatInstanceUrl");var Dc=null;async function DQ(e,t,r){let n=Date.now(),s=300*1e3;if(!(e.expires<=n+s))return Pt("Token is still valid",{expiresAt:new Date(e.expires).toISOString(),expiresIn:Math.round((e.expires-n)/1e3/60)+" minutes"}),{apiKey:e.access,instanceUrl:e.enterpriseUrl||r};if(Dc){Pt("Token refresh already in progress, waiting..."),await Dc;let u=await t();if(u&&u.type==="oauth")return{apiKey:u.access,instanceUrl:u.enterpriseUrl||r};throw new Error("Failed to get refreshed auth data")}Pt("Token expired or expiring soon, refreshing...",{expiresAt:new Date(e.expires).toISOString(),expired:e.expires<=n}),Dc=(async()=>{try{let u=e.enterpriseUrl||r,c=new Cc({instanceUrl:u,clientId:Nc,scopes:Db,method:"auto"});Pt("Calling exchangeRefreshToken...");let l=await c.exchangeRefreshToken(e.refresh),d=Date.now()+l.expires_in*1e3;Pt("Token refresh successful",{newExpiresAt:new Date(d).toISOString(),expiresIn:Math.round(l.expires_in/60)+" minutes"}),await GD(l.access_token,l.refresh_token,d,u),Pt("New tokens saved successfully")}catch(u){if(Pt("Token refresh failed",{error:u instanceof Error?u.message:String(u),stack:u instanceof Error?u.stack:void 0}),u instanceof Error&&u.message.includes("401")){Pt("Refresh token appears to be revoked (401), clearing auth data");let c=Pp();if(Lt.existsSync(c)){let l=Lt.readFileSync(c,"utf-8"),d=JSON.parse(l);delete d.gitlab,Lt.writeFileSync(c,JSON.stringify(d,null,2))}}throw u}})();try{await Dc}finally{Dc=null}let a=await t();if(a&&a.type==="oauth")return{apiKey:a.access,instanceUrl:a.enterpriseUrl||r};throw new Error("Failed to get refreshed auth data after token refresh")}i(DQ,"refreshTokenIfNeeded");var WD=i(async e=>({auth:{provider:"gitlab",async loader(r){let n=await r();if(!n)return{};if(n.type==="oauth")try{return{...await DQ(n,r,Pc()),clientId:Nc}}catch(s){return Pt("Failed to refresh token in loader",{error:s instanceof Error?s.message:String(s)}),{apiKey:n.access,instanceUrl:n.enterpriseUrl||Pc(),clientId:Nc}}if(n.type==="api"){let s=n.metadata,o=s?.instanceUrl||n.enterpriseUrl,a=Cb(o);return(!o||s?.instanceUrl!==a)&&CQ(a),{apiKey:n.key,instanceUrl:a}}return{}},methods:[{type:"oauth",label:"GitLab OAuth",prompts:[{type:"text",key:"instanceUrl",message:"GitLab instance URL",placeholder:Pc(),validate:i(r=>VD(r),"validate")}],async authorize(r){let n=Cb(r?.instanceUrl),s;try{let T=new URL(n);s=`${T.protocol}//${T.host}`}catch{throw new Error(`Invalid GitLab instance URL: ${n}`)}let{generateSecret:o,generateCodeChallengeFromVerifier:a}=await import("./pkce-VT4ITJTB.js"),u=o(43),c=a(u),l=o(32),d=new ya({port:8080,host:"127.0.0.1",timeout:12e4});await d.start();let p=d.getCallbackUrl(),m=d.waitForCallback(),f=new URLSearchParams({client_id:Nc,redirect_uri:p,response_type:"code",state:l,scope:Db.join(" "),code_challenge:c,code_challenge_method:"S256"}),h=`${s}/oauth/authorize?${f.toString()}`,{exec:S}=await import("child_process"),y=process.platform;return S(`${y==="darwin"?"open":y==="win32"?"start":"xdg-open"} "${h}"`),{method:"auto",url:h,instructions:"Your browser will open for authentication. The callback will be handled automatically.",async callback(){Pt("callback() called");try{Pt("Waiting for callback...");let T=await m;if(Pt("Received callback",{hasCode:!!T.code,hasState:!!T.state}),T.state!==l)return Pt("State mismatch",{expected:l,received:T.state}),await d.close(),{type:"failed"};Pt("State verified"),Pt("Exchanging code for tokens...");let b=await new Cc({instanceUrl:s,clientId:Nc,scopes:Db,method:"auto"}).exchangeAuthorizationCode(T.code,u,p);Pt("Token exchange successful"),await d.close();let k=Date.now()+b.expires_in*1e3;return Pt("Tokens received",{expiresAt:new Date(k).toISOString()}),Pt("Saving auth data..."),await GD(b.access_token,b.refresh_token,k,s),Pt("Auth data saved successfully"),{type:"success",provider:s,access:b.access_token,refresh:b.refresh_token,expires:k,enterpriseUrl:s}}catch(T){Pt("Error in callback",{error:T instanceof Error?T.message:String(T),stack:T instanceof Error?T.stack:void 0});try{await d.close()}catch{}return{type:"failed"}}}}}},{type:"api",label:"GitLab Personal Access Token",prompts:[{type:"text",key:"instanceUrl",message:"GitLab instance URL",placeholder:Pc(),validate:i(r=>VD(r),"validate")}],async authorize(r){let n=Cb(r?.instanceUrl),s=r?.token;if(!s)return{type:"failed"};let o;try{let a=new URL(n);o=`${a.protocol}//${a.host}`}catch{return{type:"failed"}}try{return(await fetch(`${o}/api/v4/user`,{headers:{Authorization:`Bearer ${s}`}})).ok?(Pt("Saving PAT auth data..."),await IQ(s,o),Pt("PAT auth data saved successfully"),{type:"success",key:s,provider:o,metadata:{instanceUrl:o}}):{type:"failed"}}catch{return{type:"failed"}}}}]}}),"gitlabAuthPlugin");import NQ from"node:http";import KD from"node:crypto";var PQ="https://poe.com/oauth/authorize",LQ="https://api.poe.com/token";function Pb(e){let t=e.fetch??globalThis.fetch;return{authorize:i(()=>FQ(e,t),"authorize")}}i(Pb,"createOAuthClient");function MQ(){return KD.randomBytes(32).toString("base64url")}i(MQ,"generateCodeVerifier");function qQ(e){return KD.createHash("sha256").update(e).digest("base64url")}i(qQ,"generateCodeChallenge");async function FQ(e,t){let r=e.authorizationEndpoint??PQ,n=e.tokenEndpoint??LQ,s=MQ(),o=qQ(s),a=e.createServer?e.createServer():NQ.createServer(),c=`http://127.0.0.1:${await jQ(a)}/callback`,l=UQ({endpoint:r,clientId:e.clientId,redirectUri:c,codeChallenge:o});return{authorizationUrl:l,waitForResult:i(async()=>{try{let p=await $Q(a,e,l);return await BQ({tokenEndpoint:n,code:p,codeVerifier:s,clientId:e.clientId,redirectUri:c,fetchFn:t})}finally{a.closeAllConnections?.(),a.close()}},"waitForResult")}}i(FQ,"startAuthorization");function jQ(e){return new Promise(t=>{e.listen(0,"127.0.0.1",()=>{let r=e.address();t(r.port)})})}i(jQ,"startServer");function UQ(e){let t=new URL(e.endpoint);return t.searchParams.set("response_type","code"),t.searchParams.set("client_id",e.clientId),t.searchParams.set("scope","apikey:create"),t.searchParams.set("code_challenge",e.codeChallenge),t.searchParams.set("code_challenge_method","S256"),t.searchParams.set("redirect_uri",e.redirectUri),t.toString()}i(UQ,"buildAuthorizationUrl");function $Q(e,t,r){return new Promise((n,s)=>{let o=!1,a=i(u=>{o||(o=!0,u())},"settle");e.on("request",(u,c)=>{let l=new URL(u.url,"http://127.0.0.1");if(l.pathname!=="/callback"){c.writeHead(404),c.end("Not found");return}let d=l.searchParams.get("error");if(d){let m=l.searchParams.get("error_description")??d;c.writeHead(400),c.end(`Authorization failed: ${m}`),a(()=>s(new Error(`OAuth authorization failed: ${d} \u2014 ${m}`)));return}let p=l.searchParams.get("code");if(!p){c.writeHead(400),c.end("Missing authorization code"),a(()=>s(new Error("OAuth callback missing authorization code")));return}c.writeHead(200,{"Content-Type":"text/html"}),c.end(zQ(t.landingPage)),a(()=>n(p))}),t.readLine&&t.readLine().then(u=>{let c=HQ(u);c&&a(()=>n(c))}).catch(()=>{}),t.openBrowser&&t.openBrowser(r).catch(u=>a(()=>s(u)))})}i($Q,"waitForAuthorizationCode");function HQ(e){let t=e.replace(/[\r\n]/g,"").trim();if(t.length===0)return null;try{return new URL(t).searchParams.get("code")}catch{return t}}i(HQ,"extractCodeFromInput");async function BQ(e){let t=new URLSearchParams({grant_type:"authorization_code",code:e.code,code_verifier:e.codeVerifier,client_id:e.clientId,redirect_uri:e.redirectUri}),r=await e.fetchFn(e.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t.toString()});if(!r.ok){let s=await r.text(),o=VQ(s);throw new Error(o??`Token exchange failed (${r.status}): ${s}`)}let n=await r.json();if(typeof n.api_key!="string"||n.api_key.length===0)throw new Error("Token response missing api_key field");return{apiKey:n.api_key,expiresIn:typeof n.api_key_expires_in=="number"?n.api_key_expires_in:null}}i(BQ,"exchangeCodeForApiKey");function VQ(e){try{let t=JSON.parse(e);if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error}catch{}return null}i(VQ,"parseErrorDescription");function Nb(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}i(Nb,"escapeHtml");function zQ(e){let t=e?.title??"Connected to Poe",r=e?.body??"You can close this tab and return to your terminal.";return["<!DOCTYPE html>",`<html><head><meta charset=utf-8><title>${Nb(t)}</title></head>`,'<body style="font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0">','<div style="text-align:center">',`<h1>${Nb(t)}</h1>`,`<p style="color:#666">${Nb(r)}</p>`,"</div></body></html>"].join("")}i(zQ,"buildSuccessPage");var GQ="client_728290227fc048cc9262091a1ea197ea";function WQ(e){return e==null?Number.MAX_SAFE_INTEGER:Date.now()+e*1e3}i(WQ,"getExpiry");async function KQ(){let t=await Pb({clientId:GQ,landingPage:{title:"Connected to Poe",body:"You can close this tab and return to OpenCode."},openBrowser:i(async r=>{await s1(r)},"openBrowser")}).authorize();return{url:t.authorizationUrl,instructions:"Complete authorization in your browser. This window will close automatically.",method:"auto",callback:i(async()=>{let r=await t.waitForResult();return{type:"success",access:r.apiKey,refresh:r.apiKey,expires:WQ(r.expiresIn)}},"callback")}}i(KQ,"authorize");async function Lp(e){return{auth:{provider:"poe",async loader(t){let r=await t();if(r.type==="api")return{apiKey:r.key};if(r.type!=="oauth")return{};if(r.expires<Date.now())throw new Error("Poe API key expired. Run `opencode providers login` again.");return{apiKey:r.access}},methods:[{label:"Login with Poe (browser)",type:"oauth",authorize:KQ},{label:"Manually enter API Key",type:"api"}]}}}i(Lp,"PoeAuthPlugin");async function JD(e){return{auth:{provider:"cloudflare-workers-ai",methods:[{type:"api",label:"API key",prompts:process.env.CLOUDFLARE_ACCOUNT_ID?[]:[{type:"text",key:"accountId",message:"Enter your Cloudflare Account ID",placeholder:"e.g. 1234567890abcdef1234567890abcdef"}]}]}}}i(JD,"CloudflareWorkersAuthPlugin");async function YD(e){return{auth:{provider:"cloudflare-ai-gateway",methods:[{type:"api",label:"Gateway API token",prompts:[...process.env.CLOUDFLARE_ACCOUNT_ID?[]:[{type:"text",key:"accountId",message:"Enter your Cloudflare Account ID",placeholder:"e.g. 1234567890abcdef1234567890abcdef"}],...process.env.CLOUDFLARE_GATEWAY_ID?[]:[{type:"text",key:"gatewayId",message:"Enter your Cloudflare AI Gateway ID",placeholder:"e.g. my-gateway"}]]}]}}}i(YD,"CloudflareAIGatewayAuthPlugin");var XD="https://cognitiveservices.azure.com/.default",JQ="https://ai.azure.com/.default",YQ=6e4,XQ=E.Struct({accessToken:E.NonEmptyString,expires_on:E.optional(E.Number),expiresOn:E.optional(E.NonEmptyString)}),QQ=E.decodeUnknownPromise(XQ);async function QD(){let e=!!bn("az");return ZQ(eZ,fetch,e)}i(QD,"AzureAuthPlugin");function ZQ(e,t,r){let n=new Map;async function s(u){let c=n.get(u);if(c&&c.expires-Date.now()>YQ)return c.token;let l=await QQ(await e(["account","get-access-token","--scope",u,"--output","json"])),d=l.expires_on!==void 0?l.expires_on*1e3:Date.parse(l.expiresOn??"");if(!Number.isFinite(d))throw new Error("Azure CLI returned an invalid token expiration");let p={token:l.accessToken,expires:d};return n.set(u,p),p.token}i(s,"token");let o=[];process.env.AZURE_RESOURCE_NAME||o.push({type:"text",key:"resourceName",message:"Enter Azure Resource Name",placeholder:"e.g. my-models"});let a={auth:{provider:"azure",async loader(u){return(await u()).type!=="oauth"?{}:{apiKey:qn,async fetch(c,l){let d=new Headers(c instanceof Request?c.headers:void 0);return new Headers(l?.headers).forEach((p,m)=>d.set(m,p)),d.delete("api-key"),d.delete("x-api-key"),d.set("authorization",`Bearer ${await s(tZ(c))}`),d.set("User-Agent",`opencode/${ut}`),t(c,{...l,headers:d})}}},methods:[{type:"api",label:"API key",prompts:o},{type:"oauth",label:"Microsoft Entra ID (Azure CLI)",prompts:o,async authorize(u){return{url:"",instructions:"Sign in with `az login` before continuing.",method:"auto",callback:i(async()=>{let c=u?.resourceName??process.env.AZURE_RESOURCE_NAME;if(!c)throw new Error("Azure Resource Name is required");return await s(XD),{type:"success",access:qn,refresh:qn,expires:Date.now()+365*24*60*60*1e3,accountId:c}},"callback")}}}]}};return!r&&a.auth&&(a.auth.methods=a.auth.methods.filter(u=>u.type!=="oauth")),a}i(ZQ,"createAzureAuthHooks");async function eZ(e){let t=await j_.run([bn("az")??"az",...e]);return JSON.parse(t.stdout.toString())}i(eZ,"runAzure");function tZ(e){let t=new URL(e instanceof Request?e.url:e);return t.hostname.endsWith(".services.ai.azure.com")&&!t.pathname.startsWith("/models")?JQ:XD}i(tZ,"scopeForRequest");import{createServer as rZ}from"http";var nZ="b1a6c5158156caac821fd1b30253ca8acb52454a48fa744420e41889cb589f82",iZ="https://cloud.digitalocean.com/v1/oauth/authorize",sZ="https://api.digitalocean.com",oZ=`${sZ}/v2/gen-ai`,aZ="https://inference.do-ai.run/v1",Lb=1456,tN="/auth/callback",ZD="/auth/token",uZ=300*1e3,rN="genai:read inference:query",Ks,Jr;function cZ(){let e=crypto.getRandomValues(new Uint8Array(32));return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}i(cZ,"generateState");function lZ(){return`http://localhost:${Lb}${tN}`}i(lZ,"redirectUri");function dZ(e){let t=new URLSearchParams({response_type:"token",client_id:nZ,redirect_uri:lZ(),scope:rN,state:e});return`${iZ}?${t.toString()}`}i(dZ,"buildAuthorizeUrl");async function fZ(){Ks||(Ks=rZ((e,t)=>{let r=new URL(e.url||"/",`http://localhost:${Lb}`);if(e.method==="GET"&&r.pathname===tN){t.writeHead(200,{"Content-Type":"text/html"}),t.end(Mn.bootstrap({tokenPath:ZD,provider:"DigitalOcean"}));return}if(e.method==="POST"&&r.pathname===ZD){let n=[];e.on("data",s=>n.push(s)),e.on("end",()=>{let s=Buffer.concat(n).toString("utf8"),o={};try{o=s?JSON.parse(s):{}}catch{o={}}if(!Jr){t.writeHead(409,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:"no_pending_oauth"}));return}if(o.error){let u=o.error_description||o.error||"OAuth error";Jr.reject(new Error(String(u))),Jr=void 0,t.writeHead(200,{"Content-Type":"application/json"}),t.end(JSON.stringify({ok:!0}));return}if(!o.access_token){Jr.reject(new Error("Missing access_token in callback")),Jr=void 0,t.writeHead(400,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:"missing_access_token"}));return}if(o.state!==Jr.state){Jr.reject(new Error("Invalid state - potential CSRF attack")),Jr=void 0,t.writeHead(400,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:"invalid_state"}));return}let a=parseInt(o.expires_in||"0",10);Jr.resolve({access_token:o.access_token,expires_in:Number.isFinite(a)&&a>0?a:3600*24*30,state:o.state}),Jr=void 0,t.writeHead(200,{"Content-Type":"application/json"}),t.end(JSON.stringify({ok:!0}))});return}t.writeHead(404),t.end("Not found")}),await new Promise((e,t)=>{Ks.listen(Lb,()=>{e()}),Ks.on("error",t)}))}i(fZ,"startOAuthServer");function pZ(){Ks&&(Ks.close(),Ks=void 0)}i(pZ,"stopOAuthServer");function hZ(e){return new Promise((t,r)=>{let n=setTimeout(()=>{Jr&&(Jr=void 0,r(new Error("OAuth callback timeout - authorization took too long")))},3e5);Jr={state:e,resolve:i(s=>{clearTimeout(n),t(s)},"resolve"),reject:i(s=>{clearTimeout(n),r(s)},"reject")}})}i(hZ,"waitForOAuthCallback");async function eN(e){let t=await fetch(`${oZ}/models/routers`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json","User-Agent":`opencode/${ut}`},signal:AbortSignal.timeout(1e4)}).catch(()=>{});return t?t.ok?{ok:!0,routers:(await t.json().catch(()=>{}))?.model_routers??[]}:{ok:!1,status:t.status}:{ok:!1,status:0}}i(eN,"listRouters");function mZ(e,t){let r=`router:${e.name}`;return{id:r,providerID:t,name:e.name,family:"digitalocean-inference-routers",api:{id:r,url:aZ,npm:"@ai-sdk/openai-compatible"},status:"active",headers:{},options:{},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:128e3,output:8192},capabilities:{temperature:!0,reasoning:!1,attachment:!1,toolcall:!0,input:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},output:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},interleaved:!1},release_date:"",variants:{}}}i(mZ,"routerModel");function gZ(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(r=>r&&typeof r.name=="string"?[{name:r.name,uuid:r.uuid,description:r.description}]:[]):[]}catch{return[]}}i(gZ,"parseRoutersJSON");async function nN(e){return{provider:{id:"digitalocean",async models(t,r){let n=t.models;if(r.auth?.type!=="api")return n;let s=r.auth.metadata??{},o=s.oauth_access,a=parseInt(s.oauth_expires||"0",10),u=parseInt(s.routers_fetched_at||"0",10),l=gZ(s.routers),d=Date.now()-u>uZ;if(o&&a>Date.now()&&d){let f=await eN(o);if(f.ok){l=f.routers;let h={...s,routers:JSON.stringify(l.map(S=>({name:S.name,uuid:S.uuid,description:S.description}))),routers_fetched_at:String(Date.now())};await e.client.auth.set({path:{id:"digitalocean"},body:{type:"api",key:r.auth.key,metadata:h}}).catch(()=>{})}else f.status===401||f.status===403||f.status}let m={...n};for(let f of l){let h=`router:${f.name}`;m[h]||(m[h]=mZ(f,"digitalocean"))}return m}},auth:{provider:"digitalocean",methods:[{type:"oauth",label:"Login with DigitalOcean",async authorize(){await fZ();let t=cZ(),r=hZ(t),n=dZ(t);return await gd(n).catch(()=>{}),{url:n,instructions:"Sign in to DigitalOcean in your browser. OpenCode will use your DigitalOcean API token directly for inference and load your Inference Routers. Re-run /connect to refresh routers later.",method:"auto",async callback(){try{let s=await r,o=await eN(s.access_token),a=o.ok?o.routers:[];return o.ok,{type:"success",provider:"digitalocean",key:s.access_token,metadata:{oauth_access:s.access_token,oauth_expires:String(Date.now()+s.expires_in*1e3),oauth_scopes:rN,routers:JSON.stringify(a.map(u=>({name:u.name,uuid:u.uuid,description:u.description}))),routers_fetched_at:String(Date.now())}}}catch{return{type:"failed"}}finally{pZ()}}}}},{type:"api",label:"Paste Model Access Key"}]}}}i(nN,"DigitalOceanAuthPlugin");var Mb="b1a00492-073a-47ea-816f-4c329264a828",oN="https://auth.x.ai/oauth2/token",yZ="https://auth.x.ai/oauth2/device/code",xZ="urn:ietf:params:oauth:grant-type:device_code",bZ="openid profile email offline_access grok-cli:access api:access",EZ=5e3,SZ=1e3,_Z=5e3,vZ=300*1e3,iN=3e3,aN=12e4;function qb(){return{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":`opencode/${ut}`}}i(qb,"authHeaders");function wZ(e,t=aN){if(!e||typeof e!="string")return!1;let r=e.split(".");if(r.length<2)return!1;try{let n=r[1].replace(/-/g,"+").replace(/_/g,"/");for(;n.length%4!==0;)n+="=";let s=JSON.parse(Buffer.from(n,"base64").toString("utf8"));return typeof s?.exp!="number"?!1:s.exp*1e3<=Date.now()+Math.max(0,t)}catch{return!1}}i(wZ,"accessTokenIsExpiring");async function TZ(e,t={}){let r=await fetch(t.tokenUrl??oN,{method:"POST",headers:qb(),body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:Mb}).toString()});if(!r.ok){let n=await r.text().catch(()=>"");throw new Error(`xAI token refresh failed (${r.status})${n?`: ${n}`:""}`)}return r.json()}i(TZ,"refreshAccessToken");async function RZ(e={}){let t=await fetch(e.deviceAuthorizationUrl??yZ,{method:"POST",headers:qb(),body:new URLSearchParams({client_id:Mb,scope:bZ,referrer:"opencode"}).toString()});if(!t.ok){let n=await t.text().catch(()=>"");throw new Error(`xAI device code request failed (${t.status})${n?`: ${n}`:""}`)}let r=await t.json();if(!r.device_code||!r.user_code||!r.verification_uri)throw new Error("xAI device code response is missing device_code / user_code / verification_uri");return r}i(RZ,"requestDeviceCode");async function kZ(e){await new Promise(t=>setTimeout(t,e))}i(kZ,"defaultSleep");function sN(e,t){let r=Number(e);return Number.isFinite(r)&&r>0?r*1e3:t}i(sN,"positiveSecondsToMs");async function AZ(e,t={}){let r=t.sleep??kZ,n=t.now??(()=>Date.now()),s=sN(e.expires_in,vZ),o=n()+s,a=Math.max(sN(e.interval,EZ),SZ);for(;n()<o;){let u=await fetch(t.tokenUrl??oN,{method:"POST",headers:qb(),body:new URLSearchParams({grant_type:xZ,client_id:Mb,device_code:e.device_code}).toString()});if(u.ok)return await u.json();let c=await u.json().catch(()=>({})),l=Math.max(0,o-n());if(c.error==="authorization_pending"){await r(Math.min(a+iN,l));continue}if(c.error==="slow_down"){a+=_Z,await r(Math.min(a+iN,l));continue}if(c.error==="access_denied"||c.error==="authorization_denied")throw new Error("xAI device authorization was denied");if(c.error==="expired_token")throw new Error("xAI device code expired - please re-run login");let d=c.error_description??c.error??"";throw new Error(`xAI device token exchange failed (${u.status})${d?`: ${d}`:""}`)}throw new Error("xAI device authorization timed out")}i(AZ,"pollDeviceCodeToken");async function uN(e,t={}){return{auth:{provider:"xai",async loader(r){if((await r()).type!=="oauth")return{};let s;return{apiKey:qn,async fetch(o,a){let u=await r();if(u.type!=="oauth")return fetch(o,a);if(!u.expires||u.expires-Date.now()<=aN||wZ(u.access)){if(!s){let p=u.refresh;s=TZ(p,t).then(async m=>{let f=Date.now()+(m.expires_in??3600)*1e3,h=m.refresh_token||p;return await e.client.auth.set({path:{id:"xai"},body:{type:"oauth",access:m.access_token,refresh:h,expires:f}}).catch(()=>{}),{access:m.access_token,refresh:h,expires:f}}).finally(()=>{s=void 0})}let d=await s;u={...u,...d}}let l=new Headers(o instanceof Request?o.headers:void 0);if(a?.headers){let d=a.headers instanceof Headers?a.headers.entries():Array.isArray(a.headers)?a.headers:Object.entries(a.headers);for(let[p,m]of d)m!==void 0&&l.set(p,String(m))}return l.set("authorization",`Bearer ${u.access}`),l.set("User-Agent",`opencode/${ut}`),fetch(o,{...a,headers:l})}}},methods:[{label:"SuperGrok Subscription",type:"oauth",authorize:i(async()=>{let r=await RZ(t);return{url:r.verification_uri_complete??r.verification_uri,instructions:`Open ${r.verification_uri} on any device and enter code: ${r.user_code}`,method:"auto",callback:i(async()=>{try{let s=await AZ(r,t);return{type:"success",refresh:s.refresh_token,access:s.access_token,expires:Date.now()+(s.expires_in??3600)*1e3}}catch{return{type:"failed"}}},"callback")}},"authorize")},{label:"Manually enter API Key",type:"api"}]}}}i(uN,"XaiAuthPlugin");async function cN(e){return{"chat.params":i(async(t,r)=>{t.model.api.npm==="@ai-sdk/cerebras"&&r.options.max_completion_tokens!==void 0&&(r.maxOutputTokens=void 0)},"chat.params")}}i(cN,"CerebrasPlugin");import{createServer as OZ}from"http";var Lc="LOCAL_APPLICATION",Fb="127.0.0.1",dN="/",IZ=300*1e3,CZ=12e4,is,fn,Mc;function DZ(e){return e.trim().replace(/^https?:\/\//,"").replace(/\.snowflakecomputing\.com\/?$/,"").replace(/\/+$/,"")}i(DZ,"normalizeAccount");function fN(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";return Array.from(crypto.getRandomValues(new Uint8Array(e))).map(r=>t[r%t.length]).join("")}i(fN,"generateRandomString");function NZ(e){let t=String.fromCharCode(...new Uint8Array(e));return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}i(NZ,"base64UrlEncode");async function PZ(){let e=fN(64),t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return{verifier:e,challenge:NZ(t)}}i(PZ,"generatePKCE");function pN(){if(!Mc)throw new Error("Snowflake OAuth callback server is not running");return`http://${Fb}:${Mc}${dN}`}i(pN,"callbackUrl");function LZ(e){return e?/^[-_A-Za-z0-9]+$/.test(e)?`refresh_token session:role:${e}`:`refresh_token session:role-encoded:${encodeURIComponent(e)}`:"refresh_token"}i(LZ,"oauthScope");function hN(){return{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":`opencode/${ut}`}}i(hN,"authHeaders");function mN(){return`Basic ${Buffer.from(`${Lc}:${Lc}`).toString("base64")}`}i(mN,"authBasicHeader");function MZ(e,t,r,n){let s=LZ(t),o=new URLSearchParams({client_id:Lc,response_type:"code",redirect_uri:pN(),scope:s,state:r,code_challenge:n.challenge,code_challenge_method:"S256"});return`https://${e}.snowflakecomputing.com/oauth/authorize?${o.toString()}`}i(MZ,"buildAuthorizeUrl");async function qZ(e,t,r){let n=await fetch(`https://${e}.snowflakecomputing.com/oauth/token-request`,{method:"POST",headers:{...hN(),Authorization:mN()},body:new URLSearchParams({grant_type:"authorization_code",code:t,redirect_uri:pN(),client_id:Lc,code_verifier:r.verifier}).toString()});if(!n.ok){let o=await n.text().catch(()=>"");throw new Error(`Snowflake token exchange failed (${n.status})${o?`: ${o}`:""}`)}let s=await n.json();if(!s.access_token)throw new Error("Snowflake token response did not include access_token");if(!s.refresh_token)throw new Error("Snowflake token response did not include refresh_token. Ensure integration issues refresh tokens and scope includes refresh_token.");return s}i(qZ,"exchangeCodeForToken");async function lN(e,t){let r=await fetch(`https://${e}.snowflakecomputing.com/oauth/token-request`,{method:"POST",headers:{...hN(),Authorization:mN()},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:t,client_id:Lc}).toString()});if(!r.ok){let s=await r.text().catch(()=>"");throw new Error(`Snowflake token refresh failed (${r.status})${s?`: ${s}`:""}`)}let n=await r.json();if(!n.access_token)throw new Error("Snowflake refresh response did not include access_token");return n}i(lN,"refreshAccessToken");async function FZ(){is||(is=OZ((e,t)=>{let r=e.headers.host||`${Fb}:${Mc??0}`,n=new URL(e.url||"/",`http://${r}`);if(n.pathname!==dN){t.writeHead(404),t.end("Not found");return}let s=n.searchParams.get("state"),o=n.searchParams.get("code"),a=n.searchParams.get("error"),u=n.searchParams.get("error_description");if(!fn||s!==fn.state){let l="Invalid state - potential CSRF attack";fn?.reject(new Error(l)),fn=void 0,t.writeHead(400,{"Content-Type":"text/html"}),t.end(Mn.error(l,{provider:"Snowflake"}));return}let c=fn;if(fn=void 0,a){let l=u||a;c.reject(new Error(l)),t.writeHead(200,{"Content-Type":"text/html"}),t.end(Mn.error(l,{provider:"Snowflake"}));return}if(!o){let l="Missing authorization code";c.reject(new Error(l)),t.writeHead(400,{"Content-Type":"text/html"}),t.end(Mn.error(l,{provider:"Snowflake"}));return}qZ(c.account,o,c.pkce).then(l=>c.resolve(l)).catch(l=>c.reject(l instanceof Error?l:new Error(String(l)))),t.writeHead(200,{"Content-Type":"text/html"}),t.end(Mn.success({provider:"Snowflake"}))}),await new Promise((e,t)=>{is.listen(0,Fb,()=>{let r=is.address();if(!r||typeof r=="string"){t(new Error("Unable to resolve Snowflake OAuth callback port"));return}Mc=r.port,e()}),is.on("error",t)}))}i(FZ,"startOAuthServer");function gN(){is&&(is.close(),is=void 0,Mc=void 0)}i(gN,"stopOAuthServer");function jZ(e,t,r){return fn&&(fn.reject(new Error("Superseded by a newer Snowflake authorize request")),fn=void 0),new Promise((n,s)=>{let o=setTimeout(()=>{fn&&(fn=void 0,gN(),s(new Error("Snowflake OAuth callback timeout - authorization took too long")))},IZ);fn={account:e,state:r,pkce:t,resolve:i(a=>{clearTimeout(o),n(a)},"resolve"),reject:i(a=>{clearTimeout(o),s(a)},"reject")}})}i(jZ,"waitForOAuthCallback");async function yN(e){let t=[{type:"text",key:"account",message:"Snowflake Account Identifier",placeholder:"myorg-myaccount",validate:i(r=>r&&r.trim().length>0?void 0:"Required","validate")},{type:"text",key:"role",message:"Snowflake Role (optional)",placeholder:"PUBLIC"}];return{auth:{provider:"snowflake-cortex",async loader(r,n){let s=await r();if(s.type!=="oauth")return{};let o,a=s;if(a.accountId&&a.refresh&&a.expires&&a.expires<=Date.now())try{let u=await lN(a.accountId,a.refresh),c=u.refresh_token||a.refresh,l=Date.now()+(u.expires_in??600)*1e3;await e.client.auth.set({path:{id:"snowflake-cortex"},body:{type:"oauth",access:u.access_token,refresh:c,expires:l,...a.accountId&&{accountId:a.accountId}}}).catch(()=>{})}catch{}return{apiKey:qn,async fetch(u,c){let l=await r();if(l.type!=="oauth")return fetch(u,c);let d=l;if(!d.accountId)throw new Error("Snowflake OAuth auth is missing accountId");let p=d.accountId,m=i(async()=>{if(!o){let T=d.refresh;o=lN(p,T).then(async x=>{let b=x.refresh_token||T,k=Date.now()+(x.expires_in??600)*1e3;return await e.client.auth.set({path:{id:"snowflake-cortex"},body:{type:"oauth",access:x.access_token,refresh:b,expires:k,...p&&{accountId:p}}}).catch(()=>{}),{access:x.access_token,refresh:b,expires:k}}).finally(()=>{o=void 0})}let v=await o;d={...d,...v}},"refresh"),f=i(()=>{let v=new Headers(u instanceof Request?u.headers:void 0);if(c?.headers){let x=c.headers instanceof Headers?c.headers.entries():Array.isArray(c.headers)?c.headers:Object.entries(c.headers);for(let[b,k]of x)k!==void 0&&v.set(b,String(k))}v.set("authorization",`Bearer ${d.access}`),v.set("User-Agent",`opencode/${ut}`);let T=c?.body;if(T&&typeof T=="string")try{let x=JSON.parse(T);"max_tokens"in x&&(x.max_completion_tokens=x.max_tokens,delete x.max_tokens,T=JSON.stringify(x))}catch{}return{...c,headers:v,body:T}},"prepareRequest"),h=i(async v=>{if(!v.ok&&v.status===400)try{let T=await v.clone().json();if(String(T.message||T.error||"").toLowerCase().includes("conversation complete"))return new Response(JSON.stringify({choices:[{finish_reason:"stop",message:{content:"",role:"assistant"}}]}),{status:200,headers:new Headers({"content-type":"application/json"})})}catch{}if(v.body&&v.headers.get("content-type")?.includes("text/event-stream")){let T=v.body.getReader(),x=new TextEncoder,b=new TextDecoder,k=new ReadableStream({async pull(C){let{done:R,value:A}=await T.read();if(R){C.close();return}let N=b.decode(A,{stream:!0});C.enqueue(x.encode(N.replace(/"role"\s*:\s*""/g,'"role":"assistant"')))},cancel(){T.cancel()}});return new Response(k,{headers:v.headers,status:v.status})}return v},"transformResponse");(!d.expires||!d.access||d.expires-Date.now()<=CZ)&&await m();let y=await fetch(u,f());return y.status===401?(await m(),h(await fetch(u,f()))):h(y)}}},methods:[{type:"oauth",label:"Login with Snowflake (External Browser)",prompts:t,async authorize(r={}){let n=DZ(r.account||"");if(!n)throw new Error("Snowflake account is required");await FZ();let s=await PZ(),o=fN(64),a=(r.role||"").trim()||void 0,u=MZ(n,a,o,s),c=jZ(n,s,o);return await gd(u).catch(()=>{}),{url:u,instructions:"Complete Snowflake sign-in in your browser. OpenCode will capture the OAuth callback and store the bearer token automatically.",method:"auto",async callback(){try{let l=await c;return{type:"success",refresh:l.refresh_token,access:l.access_token,expires:Date.now()+(l.expires_in??600)*1e3,accountId:n}}catch{return{type:"failed"}}finally{gN()}}}}},{type:"api",label:"Paste PAT or bearer token manually",prompts:t.filter(r=>r.key==="account")}]}}}i(yN,"SnowflakeCortexAuthPlugin");var jb;(u=>{function e(c){return!c||typeof c!="object"?"":"message"in c&&typeof c.message=="string"?c.message:""}i(e,"errorMessage");function t(c,l){return c!=="install"?!1:e(l).includes("missing package.json or index file")}i(t,"isRetryableResolveError");function r(c){let l=Uh.pluginSpecifier(c);return{spec:l,options:Uh.pluginOptions(c),deprecated:U_(l)}}i(r,"plan");async function n(c,l){let d="";try{d=await B_(c.spec)}catch(m){return{ok:!1,stage:"install",error:m}}if(!d)return{ok:!1,stage:"install",error:new Error(`Plugin ${c.spec} target is empty`)};let p;try{p=await V_(c.spec,d,l)}catch(m){return{ok:!1,stage:"entry",error:m}}if(!p.entry)return{ok:!1,stage:"missing",value:{...c,source:p.source,target:p.target,pkg:p.pkg,message:`Plugin ${c.spec} does not expose a ${l} entrypoint`}};if(p.source==="npm")try{await H_(p.target,ut,p.pkg)}catch(m){return{ok:!1,stage:"compatibility",error:m}}return{ok:!0,value:{...c,source:p.source,target:p.target,entry:p.entry,pkg:p.pkg}}}u.resolve=n,i(n,"resolve");async function s(c){let l;try{l=await import(c.entry)}catch(d){return{ok:!1,error:d}}return l?{ok:!0,value:{...c,mod:l}}:{ok:!1,error:new Error(`Plugin ${c.spec} module is empty`)}}u.load=s,i(s,"load");async function o(c,l,d,p,m,f){let h=c.plan,S=jh(h.spec)==="file";if(h.deprecated)return{retry:!1};f?.start?.(c,d);let y=await n(h,l);if(!y.ok){if(y.stage==="missing"){if(m){let x=await m(y.value,c.origin,d);if(x!==void 0)return{value:x,retry:!1}}return f?.missing?.(c,d,y.value.message,y.value),{retry:!1}}return f?.error?.(c,d,y.stage,y.error),{retry:S&&t(y.stage,y.error)}}let v=await s(y.value);return v.ok?p?{value:await p(v.value,c.origin,d),retry:!1}:{value:v.value,retry:!1}:(f?.error?.(c,d,"load",v.error,y.value),{retry:!1})}i(o,"attempt");async function a(c){let l=c.items.map(f=>({origin:f,plan:r(f.spec)})),d=[];for(let f of l)d.push(o(f,c.kind,!1,c.finish,c.missing,c.report));let p=await Promise.all(d);if(c.wait){let f;for(let h=0;h<l.length;h++){let S=p[h];if(S?.value!==void 0||S?.retry!==!0)continue;let y=l[h];!y||jh(y.plan.spec)!=="file"||(f??=c.wait(),await f,p[h]=await o(y,c.kind,!0,c.finish,c.missing,c.report))}}let m=[];for(let f of p)f.value!==void 0&&m.push(f.value);return m}u.loadExternal=a,i(a,"loadExternal")})(jb||={});var Ub=E.Struct({id:w_.ID,type:E.String,name:E.String,branch:E.optional(E.NullOr(E.String)),directory:E.optional(E.NullOr(E.String)),extra:E.optional(E.NullOr(E.Unknown)),projectID:ud.ID}).annotate({identifier:"Workspace"}),Aye=E.Struct(t_.omit(Ub.fields,["id"])).annotate({identifier:"WorkspaceListedInfo"}),Oye=E.Struct({type:E.String,name:E.String,description:E.String});var UZ=E.Struct({name:Ub.fields.name,branch:E.optional(E.NullOr(E.String)),directory:E.String}),$b=E.decodeUnknownSync(UZ);async function Mp(){let[{AppRuntime:e},{Worktree:t}]=await Promise.all([import("./app-runtime-ZWWQ4JTM.js"),import("./worktree-B2LROS2B.js")]);return{AppRuntime:e,Worktree:t}}i(Mp,"loadWorktree");function xN(e){if(!e?.instance)throw new Error("Worktree adapter requires an instance context");return e.instance}i(xN,"requireInstance");var qp=i((e,t)=>e.pipe(g.provideService(q_,xN(t)),g.provideService(F_,t?.workspaceID)),"provideContext"),bN={name:"Worktree",description:"Create a git worktree",async configure(e,t){let{AppRuntime:r,Worktree:n}=await Mp(),s=await r.runPromise(qp(n.Service.use(o=>o.makeWorktreeInfo({detached:!0})),t));return{...e,name:s.name,directory:s.directory}},async create(e,t,r,n){let{AppRuntime:s,Worktree:o}=await Mp(),a=$b(e);await s.runPromise(qp(o.Service.use(u=>u.createFromInfo({name:a.name,directory:a.directory,...a.branch?{branch:a.branch}:{}})),n))},async list(e){let{AppRuntime:t,Worktree:r}=await Mp(),n=xN(e);return(await t.runPromise(qp(r.Service.use(s=>s.list()),e))).map(s=>({type:"worktree",name:s.name,branch:s.branch,directory:s.directory,projectID:n.project.id}))},async remove(e,t){let{AppRuntime:r,Worktree:n}=await Mp(),s=$b(e);await r.runPromise(qp(n.Service.use(o=>o.remove({directory:s.directory})),t))},target(e){return{type:"local",directory:$b(e).directory}}};var EN={worktree:bN},Fp=new Map;function qye(e,t){let r=Fp.get(e)?.get(t);if(r)return r;let n=EN[t];if(n)return n;throw new Error(`Unknown workspace adapter: ${t}`)}i(qye,"getAdapter");function Fye(e){return $Z(e).map(([t,r])=>({type:t,name:r.name,description:r.description}))}i(Fye,"listAdapters");function $Z(e){let t=new Map(Object.entries(EN));for(let[r,n]of Fp.get(e)?.entries()??[])t.set(r,n);return[...t.entries()]}i($Z,"registeredAdapters");function SN(e,t,r){let n=Fp.get(e)??new Map;n.set(t,r),Fp.set(e,n)}i(SN,"registerAdapter");var xa=class extends Oe.Service()("@opencode/Plugin"){static{i(this,"Service")}};function vN(e){return e.enabled||["local","dev","beta"].includes(e.channel??c_)}i(vN,"experimentalWebSocketsEnabled");function HZ(e){return[t=>A1(t,{experimentalWebSockets:vN({enabled:e.experimentalWebSockets})}),L1,M1,WD,Lp,JD,YD,QD,nN,yN,uN,cN]}i(HZ,"internalPlugins");function _N(e){return typeof e=="function"}i(_N,"isServerPlugin");function BZ(e){if(_N(e))return e;if(!(!e||typeof e!="object"||!("server"in e))&&_N(e.server))return e.server}i(BZ,"getServerPlugin");function VZ(e){let t=new Set,r=[];for(let[n,s]of Object.entries(e)){if(n==="__esModule"||n==="__name"||n==="__export"||n==="module.exports"||t.has(s))continue;t.add(s);let o=s;o&&typeof o=="object"&&"default"in o&&typeof o.default=="function"&&(o=o.default);let a=BZ(o);a&&r.push(a)}if(r.length===0)throw new TypeError("Plugin export is not a function");return r}i(VZ,"getLegacyPlugins");async function zZ(e,t,r){let n=G_(e.mod,e.spec,"server","detect");if(n){await W_(e.source,e.spec,e.target,z_(n.id,e.spec),e.pkg),r.push(await n.server(t,e.options));return}for(let s of VZ(e.mod))r.push(await s(t,e.options))}i(zZ,"applyPlugin");var GZ=Z.effect(xa,g.gen(function*(){let e=yield*$h.Service,t=yield*En.Service,r=yield*Po.Service,n=yield*Dt.make(g.fn("Plugin.state")(function*(u){let c=[],l=yield*yd.make();function d(x){l.fork(e.publish(Q_.Event.Error,{error:new T_.Unknown({message:x}).toObject()}))}i(d,"publishPluginError");let{Server:p}=yield*g.promise(()=>import("./server-XRUYBM7W.js")),m=p.url,f=Sm({baseUrl:m?.toString()??"http://localhost:4096",directory:u.directory,headers:vu.headers(),...m?{}:{fetch:i(async(...x)=>p.Default().app.fetch(...x),"fetch")}}),h=yield*t.get(),S={client:f,project:u.project,worktree:u.worktree,directory:u.directory,experimental_workspace:{register(x,b){SN(u.project.id,x,b)}},get serverUrl(){return p.url??new URL("http://localhost:4096")},$:typeof Bun>"u"?void 0:Bun.$};for(let x of r.disableDefaultPlugins?[]:HZ(r)){let b=yield*g.tryPromise({try:i(()=>x(S),"try"),catch:si}).pipe(g.tapError(k=>g.logError("failed to load internal plugin",{name:x.name,error:k})),g.option);b._tag==="Some"&&c.push(b.value)}let y=r.pure?[]:h.plugin_origins??[];r.pure&&h.plugin_origins?.length,y.length&&(yield*t.waitForDependencies());let v=yield*g.promise(()=>jb.loadExternal({items:y,kind:"server",report:{start(x){},missing(x,b,k){},error(x,b,k,C,R){let A=x.plan.spec,N=C instanceof Error?C.cause??C:C,D=k==="load"?si(C):si(N);if(k==="install"){let O=$_(A);d(`Failed to install plugin ${O.pkg}@${O.version}: ${D}`);return}if(k==="compatibility"){d(`Plugin ${A} skipped: ${D}`);return}if(k==="entry"){d(`Failed to load plugin ${A}: ${D}`);return}d(`Failed to load plugin ${A}: ${D}`)}}}));for(let x of v)x&&(yield*g.tryPromise({try:i(()=>zZ(x,S,c),"try"),catch:i(b=>si(b),"catch")}).pipe(g.tapError(b=>g.logError("failed to load plugin",{path:x.spec,error:b})),g.catch(()=>g.void)));for(let x of c)yield*g.tryPromise({try:i(()=>Promise.resolve(x.config?.(h)),"try"),catch:si}).pipe(g.tapError(b=>g.logError("plugin config hook failed",{error:b})),g.ignore);let T=yield*e.listen(x=>x.location?.directory!==u.directory?g.void:g.sync(()=>{for(let b of c)b.event?.({event:{id:x.id,type:x.type,properties:x.data}})}));return yield*g.addFinalizer(()=>T),yield*g.addFinalizer(()=>g.forEach(c,x=>g.tryPromise({try:i(()=>Promise.resolve(x.dispose?.()),"try"),catch:si}).pipe(g.tapError(b=>g.logError("plugin dispose hook failed",{error:b})),g.ignore),{discard:!0})),{hooks:c}})),s=g.fn("Plugin.trigger")(function*(u,c,l){if(!u)return l;let d=yield*Dt.get(n);for(let p of d.hooks){let m=p[u];m&&(yield*g.promise(async()=>m(c,l)))}return l}),o=g.fn("Plugin.list")(function*(){return(yield*Dt.get(n)).hooks}),a=g.fn("Plugin.init")(function*(){yield*Dt.get(n)});return xa.of({trigger:s,list:o,init:a})})),WZ=Lr.make({service:xa,layer:GZ,deps:[$h.node,En.node,Po.node]});import Lee from"path";import{pathToFileURL as Mee}from"url";var qc={};me(qc,{EffectPromise:()=>qc,refineRejection:()=>KZ});function KZ(e,t){return g.tryPromise(e).pipe(g.catch(r=>{let n=dr.isUnknownError(r)?r.cause:r,s=t(n);return s!==void 0?g.fail(s):g.die(n)}))}i(KZ,"refineRejection");var Rn={};me(Rn,{OUTPUT_TOKEN_MAX:()=>$p,ProviderTransform:()=>Rn,cacheControlFor:()=>Wb,cacheWarmForMs:()=>eee,maxOutputTokens:()=>vee,message:()=>tee,nearestVariant:()=>yee,options:()=>bee,providerOptions:()=>_ee,reasoningVariants:()=>Tee,sanitizeSurrogates:()=>ss,schema:()=>wee,smallOptions:()=>Eee,temperature:()=>nee,topK:()=>see,topP:()=>iee,variants:()=>xee});function IN(e){if(e.startsWith("image/"))return"image";if(e.startsWith("audio/"))return"audio";if(e.startsWith("video/"))return"video";if(e==="application/pdf")return"pdf"}i(IN,"mimeToModality");var $p=32e3,Wn=["reasoning.encrypted_content"];function ss(e){return e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"\uFFFD")}i(ss,"sanitizeSurrogates");function zb(e){if([e.providerID,e.api.id].some(r=>{let n=r.toLowerCase();return n.includes("kimi")||n.includes("moonshot")}))return!0;let t=e.api.url.toLowerCase();return["api.kimi.com","api.moonshot.ai","api.moonshot.cn","api.moonshotai.cn"].some(r=>t.includes(r))}i(zb,"isKimiFamily");function Gb(e){switch(e){case"@ai-sdk/github-copilot":return"copilot";case"@ai-sdk/azure":return"azure";case"@ai-sdk/openai":return"openai";case"@ai-sdk/amazon-bedrock/mantle":return"openai";case"@ai-sdk/amazon-bedrock":return"bedrock";case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return"anthropic";case"@ai-sdk/google-vertex":return"vertex";case"@ai-sdk/google":return"google";case"@ai-sdk/alibaba":return"alibaba";case"@ai-sdk/cerebras":return"cerebras";case"@ai-sdk/cohere":return"cohere";case"@ai-sdk/deepinfra":return"deepinfra";case"@ai-sdk/groq":return"groq";case"@ai-sdk/mistral":return"mistral";case"@ai-sdk/perplexity":return"perplexity";case"@ai-sdk/togetherai":return"togetherai";case"@ai-sdk/vercel":return"vercel";case"@ai-sdk/xai":return"xai";case"venice-ai-sdk-provider":return"venice";case"@ai-sdk/gateway":return"gateway";case"@openrouter/ai-sdk-provider":return"openrouter";case"merge-gateway-ai-sdk-provider":return"mergeGateway";case"ai-gateway-provider":return"openaiCompatible"}}i(Gb,"sdkKey");function JZ(e,t,r){let n=i(o=>((o.output.type==="text"||o.output.type==="error-text")&&(o.output.value=ss(o.output.value)),o.output.type==="content"&&(o.output.value=o.output.value.map(a=>(a.type==="text"&&(a.text=ss(a.text)),a))),o),"sanitizeToolResultOutput");if(e=e.map(o=>{switch(o.role){case"tool":return Array.isArray(o.content)&&(o.content=o.content.map(a=>a.type==="tool-result"?n(a):a)),o;case"system":return o.content=ss(o.content),o;case"user":return typeof o.content=="string"?o.content=ss(o.content):o.content=o.content.map(a=>(a.type==="text"&&(a.text=ss(a.text)),a)),o;case"assistant":return typeof o.content=="string"?o.content=ss(o.content):o.content=o.content.map(a=>((a.type==="text"||a.type==="reasoning")&&(a.text=ss(a.text)),a.type==="tool-result"?n(a):a)),o}}),t.api.npm==="@ai-sdk/anthropic"&&(e=e.map(o=>{if(typeof o.content=="string")return o.content===""?void 0:o;if(!Array.isArray(o.content))return o;let a=o.content.filter(u=>u.type==="text"?u.text!=="":u.type==="reasoning"?u.text.trim().length>0||u.providerOptions?.anthropic?.signature!=null||u.providerOptions?.anthropic?.redactedData!=null:!0);if(a.length!==0)return{...o,content:a}}).filter(o=>o!==void 0&&o.content!=="")),t.api.npm==="@ai-sdk/amazon-bedrock"&&(e=e.map(o=>{if(typeof o.content=="string")return o.content===""?void 0:o;if(!Array.isArray(o.content))return o;let a=o.content.filter(u=>{if(u.type==="text")return u.text!=="";if(u.type==="reasoning"){let c=u.providerOptions?.[t.providerID]??u.providerOptions?.bedrock;return c?.signature!=null||c?.redactedContent!=null||c?.redactedData!=null}return!0});if(a.length!==0)return{...o,content:a}}).filter(o=>o!==void 0&&o.content!=="")),t.api.id.includes("claude")){let o=i(a=>a.replace(/[^a-zA-Z0-9_-]/g,"_"),"scrub");e=e.map(a=>a.role==="assistant"&&Array.isArray(a.content)?{...a,content:a.content.map(u=>u.type==="tool-call"||u.type==="tool-result"?{...u,toolCallId:o(u.toolCallId)}:u)}:a.role==="tool"&&Array.isArray(a.content)?{...a,content:a.content.map(u=>u.type==="tool-result"?{...u,toolCallId:o(u.toolCallId)}:u)}:a)}let s=t.api.id.toLowerCase();if(t.providerID==="mistral"||["mistral","devstral","codestral","pixtral","mixtral"].some(o=>s.includes(o))){let o=i(u=>u.replace(/[^a-zA-Z0-9]/g,"").substring(0,9).padEnd(9,"0"),"scrub"),a=[];for(let u=0;u<e.length;u++){let c=e[u],l=e[u+1];c.role==="assistant"&&Array.isArray(c.content)&&(c.content=c.content.map(d=>d.type==="tool-call"||d.type==="tool-result"?{...d,toolCallId:o(d.toolCallId)}:d)),c.role==="tool"&&Array.isArray(c.content)&&(c.content=c.content.map(d=>d.type==="tool-result"?{...d,toolCallId:o(d.toolCallId)}:d)),a.push(c),c.role==="tool"&&l?.role==="user"&&a.push({role:"assistant",content:[{type:"text",text:"Done."}]})}return a}if(t.api.id.toLowerCase().includes("deepseek")&&(e=e.map(o=>o.role!=="assistant"?o:Array.isArray(o.content)?o.content.some(a=>a.type==="reasoning")?o:{...o,content:[...o.content,{type:"reasoning",text:""}]}:{...o,content:[...o.content?[{type:"text",text:o.content}]:[],{type:"reasoning",text:""}]})),typeof t.capabilities.interleaved=="object"&&t.capabilities.interleaved.field&&t.api.npm!=="@openrouter/ai-sdk-provider"){let o=t.capabilities.interleaved.field;return e.map(a=>{if(a.role==="assistant"&&Array.isArray(a.content)){let c=a.content.filter(d=>d.type==="reasoning").map(d=>d.text).join(""),l=a.content.filter(d=>d.type!=="reasoning");return{...a,content:l,providerOptions:{...a.providerOptions,openaiCompatible:{...a.providerOptions?.openaiCompatible,[o]:c}}}}return a})}return e}i(JZ,"normalizeMessages");function Wb(e,t){return e==="message"&&t==="5m"?{type:"ephemeral"}:{type:"ephemeral",ttl:"1h"}}i(Wb,"cacheControlFor");function YZ(e,t,r,n="all"){if(n==="none")return e;let s=e.filter(u=>u.role==="system").slice(0,2),o=e.filter(u=>u.role!=="system"),a=(n==="history"?o.slice(0,-1):o).slice(-2);for(let u of L_([...s,...a]))XZ(u,t,Wb(u.role==="system"?"system":"message",r));return e}i(YZ,"applyCaching");function XZ(e,t,r){let n={anthropic:{cacheControl:r},openrouter:{cacheControl:{type:"ephemeral"}},bedrock:{cachePoint:{type:"default"}},openaiCompatible:{cache_control:{type:"ephemeral"}},copilot:{copilot_cache_control:{type:"ephemeral"}},alibaba:{cacheControl:{type:"ephemeral"}}};if(!(t.providerID==="anthropic"||t.providerID.includes("bedrock")||t.api.npm==="@ai-sdk/amazon-bedrock")&&Array.isArray(e.content)&&e.content.length>0){let a=e.content[e.content.length-1];if(a&&typeof a=="object"&&a.type!=="tool-approval-request"&&a.type!=="tool-approval-response"){a.providerOptions=Ar(a.providerOptions??{},n);return}}e.providerOptions=Ar(e.providerOptions??{},n)}i(XZ,"applyCachePoint");function QZ(e,t){return e.map(r=>{if(r.role==="tool"&&Array.isArray(r.content))return ZZ(r,t);if(r.role!=="user"||!Array.isArray(r.content))return r;let n=r.content.map(s=>{if(s.type!=="file"&&s.type!=="image")return s;if(s.type==="image"){let l=String(s.image);if(l.startsWith("data:")){let d=l.match(/^data:([^;]+);base64,(.*)$/);if(d&&(!d[2]||d[2].length===0))return{type:"text",text:"ERROR: Image file is empty or corrupted. Please provide a valid image."}}}let o=s.type==="image"?String(s.image).split(";")[0].replace("data:",""):s.mediaType,a=s.type==="file"?s.filename:void 0,u=IN(o);return!u||t.capabilities.input[u]?s:{type:"text",text:`ERROR: Cannot read ${a?`"${a}"`:u} (this model does not support ${u} input). Inform the user.`}});return{...r,content:n}})}i(QZ,"unsupportedParts");function ZZ(e,t){let r=!1,n=e.content.map(s=>{if(s?.type!=="tool-result"||s.output?.type!=="content"||!Array.isArray(s.output.value))return s;let o=s.output.value.map(a=>{if(!a||a.type!=="media"&&a.type!=="file-data"&&a.type!=="image-data")return a;let u=typeof a.mediaType=="string"?IN(a.mediaType):void 0;if(!u||t.capabilities.input[u])return a;r=!0;let c=u==="pdf"?" Use read_files on the same path for the PDF's text.":"";return{type:"text",text:`NOTE: ${s.toolName??"the tool"} returned a ${u==="pdf"?"PDF":u} that this model cannot take as input, so it was left out.${c}`}});return{...s,output:{...s.output,value:o}}});return r?{...e,content:n}:e}i(ZZ,"unsupportedToolMedia");function wN(e,t){return e.map(r=>Array.isArray(r.content)?{...r,providerOptions:t(r.providerOptions),content:r.content.map(n=>n.type==="tool-approval-request"||n.type==="tool-approval-response"?n:{...n,providerOptions:t(n.providerOptions)})}:{...r,providerOptions:t(r.providerOptions)})}i(wN,"mapProviderOptions");function CN(e){return(e.providerID==="anthropic"||e.providerID==="google-vertex-anthropic"||e.api.id.includes("anthropic")||e.api.id.includes("claude")||e.id.includes("anthropic")||e.id.includes("claude")||e.api.npm==="@ai-sdk/anthropic"||e.api.npm==="@ai-sdk/alibaba")&&e.api.npm!=="@ai-sdk/gateway"}i(CN,"cachesByPoints");var jp=6e4;function eee(e,t){let r=CN(e)?Wb("message",t).ttl==="1h"?60*jp:5*jp:e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/azure"?60*jp:void 0;if(r!==void 0)return r-Math.min(5*jp,r/10)}i(eee,"cacheWarmForMs");function tee(e,t,r,n={}){e=QZ(e,t),e=JZ(e,t,r);let s=r.cacheControl!==void 0&&(t.api.npm==="@ai-sdk/anthropic"||t.api.npm==="@ai-sdk/google-vertex/anthropic");CN(t)&&!s&&(e=YZ(e,t,n.messageCacheTtl,n.points));let o=Gb(t.api.npm);return o&&o!==t.providerID&&(e=wN(e,i(u=>{if(!u||!(t.providerID in u))return u;let c={...u};return c[o]=c[t.providerID],delete c[t.providerID],c},"remap"))),r.store!==!0&&o&&["@ai-sdk/openai","@ai-sdk/azure","@ai-sdk/amazon-bedrock/mantle","@ai-sdk/github-copilot"].includes(t.api.npm)&&(e=wN(e,a=>{if(!a?.[o]||!("itemId"in a[o]))return a;let u={...a[o]};return delete u.itemId,{...a,[o]:u}})),e}i(tee,"message");var DN=/gemini-2[.-]5(?:[.-]|$)/i,ree=/gemini-(?:(?:flash|pro)-)?[12](?:[.-]|$)/i,Kb=[DN,/gemini-3-(?:flash|pro)(?:[.-]|$)/,/gemini-3[.-]1(?:[.-]|$)/,/gemini-3[.-]5-flash(?!-lite)(?:[.-]|$)/];function nee(e){let t=e.api.id.toLowerCase();if(t.includes("north-mini-code"))return 1;if(!t.includes("claude")){if(t.includes("gemini"))return Kb.some(r=>r.test(t))?1:void 0;if(t.includes("glm-4.6")||t.includes("glm-4.7")||t.includes("minimax-m2"))return 1;if(t.includes("kimi-k2"))return["thinking","k2.","k2p","k2-5"].some(r=>t.includes(r))?1:.6}}i(nee,"temperature");function iee(e){let t=e.api.id.toLowerCase();if(t.includes("gemini"))return Kb.some(r=>r.test(t))?.95:void 0;if(["minimax-m2","kimi-k2.5","kimi-k2p5","kimi-k2-5"].some(r=>t.includes(r))||["deepseek-v4-flash-0731","deepseek-v4-flash:0731"].some(r=>t.includes(r))||t.includes("deepseek-v4-flash")&&(e.providerID==="deepseek"||e.providerID.startsWith("opencode")))return .95}i(iee,"topP");function see(e){let t=e.api.id.toLowerCase();if(t.includes("minimax-m2"))return["m2.","m25","m21"].some(r=>t.includes(r))?40:20;if(t.includes("gemini"))return Kb.some(r=>r.test(t))?64:void 0}i(see,"topK");var $r=["low","medium","high"],NN=["none","minimal",...$r,"xhigh"],PN=["none",...$r],oee=[...PN,"xhigh"],LN=["high"],aee=["medium","high","xhigh"],uee=["medium"],MN=[...$r,"xhigh"],cee=["none",...MN],lee="2025-11-13",dee="2025-12-04",Jb=/(?:^|\/)gpt-5(?:[.-]|$)/,fee=/(?:^|\/)gpt-5[.-](\d+)(?:[.-]|$)/,qN=/(?:^|\/)gpt-5[.-]?pro(?:[.-]|$)/,pee=/(?:^|\/)gpt-5[.-]\d+[.-]pro(?:[.-]|$)/;function Yb(e){return Number(fee.exec(e)?.[1])||void 0}i(Yb,"gpt5Version");function FN(e){if(pee.test(e))return aee;let t=Yb(e);if(t!==void 0)return t===1?PN:oee}i(FN,"versionedGpt5ReasoningEfforts");function jN(e){if(!Jb.test(e)||!e.includes("codex"))return;let t=Yb(e);return t!==void 0&&t>=3?cee:e.includes("codex-max")||t!==void 0&&t>=2?MN:$r}i(jN,"gpt5CodexReasoningEfforts");function UN(e){if(!(!Jb.test(e)||!e.includes("-chat")))return Yb(e)===void 0?[]:uee}i(UN,"gpt5ChatReasoningEfforts");function Up(e,t){let r=e.toLowerCase();if(r.includes("deep-research"))return["medium"];let n=UN(r);if(n)return n;if(qN.test(r))return LN;let s=jN(r);if(s)return s;let o=FN(r);if(o)return o;let a=[...$r];return Jb.test(r)&&a.unshift("minimal"),t>=lee&&a.unshift("none"),t>=dee&&a.push("xhigh"),a}i(Up,"openaiReasoningEfforts");function TN(e){let t=e.toLowerCase(),r=UN(t);return r||(qN.test(t)?LN:jN(t)??FN(t)??NN)}i(TN,"openaiCompatibleReasoningEfforts");function $N(e){if(!e.toLowerCase().includes("claude-"))return!1;let t=/claude-(?:[a-z]+-)?(\d+)(?:[.-](\d{1,2}))?(?:[.@-]|$)/i.exec(e);if(!t)return!0;let r=Number(t[1]),n=Number(t[2]??0);return r>4||r===4&&n>=7}i($N,"anthropicUsesModernAdaptiveThinking");function Xb(e){return["opus-4-5","opus-4.5"].some(t=>e.includes(t))}i(Xb,"anthropicOpus45");function Qb(e){return $N(e)?["low","medium","high","xhigh","max"]:["opus-4-6","opus-4.6","4-6-opus","4.6-opus","sonnet-4-6","sonnet-4.6","4-6-sonnet","4.6-sonnet"].some(t=>e.includes(t))?["low","medium","high","max"]:null}i(Qb,"anthropicAdaptiveEfforts");function Zb(e){return $N(e)}i(Zb,"anthropicOmitsThinking");function hee(e){let t=/claude-(?:([a-z]+)-)?(\d+)(?:[.-](\d{1,2}))?(?:-([a-z]+))?(?:[.@-]|$)/i.exec(e);if(!t)return!1;let r=Number(t[2]),n=Number(t[3]??0);return r===5&&n===1&&(t[1]??t[4])?.toLowerCase()==="mythos"?!1:r>5||r===5&&n>=1}i(hee,"anthropicBindsThinking");var RN={prefixMismatchBehavior:"drop_block"};function mee(e,t){let r=Gb(e.api.npm),n=r==="bedrock"?"reasoningConfig":r==="anthropic"?"thinking":void 0;if(n&&t[n]?.blockBinding===!1){let s={...t,[n]:{...t[n]}};return delete s[n].blockBinding,Object.keys(s[n]).length===0&&delete s[n],s}if(!hee(e.api.id))return t;switch(e.api.npm){case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":{let s=t.thinking??{type:"adaptive"};return s.type!=="adaptive"&&s.type!=="enabled"||s.blockBinding!==void 0?t:{...t,thinking:{...s,blockBinding:RN}}}case"@ai-sdk/amazon-bedrock":{let s=t.reasoningConfig??{type:"adaptive"};return s.type!=="adaptive"&&s.type!=="enabled"||s.blockBinding!==void 0?t:{...t,reasoningConfig:{...s,blockBinding:RN}}}}return t}i(mee,"anthropicBlockBinding");function Vb(e){return ree.test(e)}i(Vb,"isLegacyGemini");function jc(e){return DN.test(e)}i(jc,"isGemini25");function gee(e){let t=e.toLowerCase();return t.includes("gemma")?["minimal","high"]:Vb(t)?["low","high"]:t.includes("flash-image")?["minimal","high"]:t.includes("pro-image")?["high"]:t.includes("flash")?["minimal","low","medium","high"]:["low","medium","high"]}i(gee,"googleThinkingLevelEfforts");function HN(e){let t=e.toLowerCase();return jc(t)&&t.includes("pro")&&!t.includes("flash")?32768:24576}i(HN,"googleThinkingBudgetMax");function Fc(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{modelParams:r}]))}i(Fc,"wrapInSapModelParams");function kN(e){let t=e.api.id.toLowerCase();return jc(t)?{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16e3}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:HN(t)}}}:Object.fromEntries(gee(t).map(r=>[r,{thinkingConfig:{includeThoughts:!0,thinkingLevel:r}}]))}i(kN,"googleThinkingVariants");var Hb=["none","minimal","low","medium","high","xhigh","max"];function yee(e,t){if(!e||t.length===0)return;if(t.includes(e))return e;let r=Hb.indexOf(e);if(r<0)return;let n,s=1/0;for(let o of t){let a=Hb.indexOf(o);if(a<0)continue;let u=Math.abs(a-r);(u<s||u===s&&n!==void 0&&a<Hb.indexOf(n))&&(n=o,s=u)}return n}i(yee,"nearestVariant");function xee(e){if(!e.capabilities.reasoning)return{};let t=e.id.toLowerCase(),r=["glm-5.2","glm-5-2","glm-5p2"].some(o=>t.includes(o)||e.api.id.toLowerCase().includes(o));if(e.api.id.toLowerCase().includes("minimax-m3")&&["@ai-sdk/anthropic","@ai-sdk/openai-compatible"].includes(e.api.npm))return["nvidia","lilac"].includes(e.providerID)?{none:{chat_template_kwargs:{thinking_mode:"disabled"}},thinking:{chat_template_kwargs:{thinking_mode:"enabled"}}}:{none:{thinking:{type:"disabled"}},thinking:{thinking:{type:"adaptive"}}};let n=Zb(e.api.id),s=Qb(e.api.id);if(r&&e.api.npm==="@openrouter/ai-sdk-provider")return{high:{reasoning:{effort:"high"}},xhigh:{reasoning:{effort:"xhigh"}}};if(r&&e.api.npm==="@ai-sdk/openai-compatible")return{high:{reasoningEffort:"high"},max:{reasoningEffort:"max"}};if(r&&e.api.npm==="@ai-sdk/anthropic")return{high:{effort:"high"},max:{effort:"max"}};if(zb(e)&&["@ai-sdk/anthropic","@ai-sdk/google-vertex/anthropic"].includes(e.api.npm))return Object.fromEntries(["low","medium","high","xhigh","max"].map(o=>[o,{thinking:{type:"adaptive",display:"summarized"},effort:o}]));if(t.includes("deepseek-chat")||t.includes("deepseek-reasoner")||t.includes("deepseek-r1")||t.includes("deepseek-v3")||t.includes("minimax")||t.includes("glm")&&!r||t.includes("kimi")||t.includes("k2p")||t.includes("qwen")||t.includes("big-pickle"))return{};if(t.includes("grok")&&t.includes("grok-3-mini"))return e.api.npm==="@openrouter/ai-sdk-provider"?{low:{reasoning:{effort:"low"}},high:{reasoning:{effort:"high"}}}:{low:{reasoningEffort:"low"},high:{reasoningEffort:"high"}};switch(e.api.npm){case"@openrouter/ai-sdk-provider":return Object.fromEntries((e.api.id.startsWith("openai/")||t.includes("gpt")?TN(e.api.id):$r).map(d=>[d,{reasoning:{effort:d}}]));case"ai-gateway-provider":{if(e.api.id.startsWith("openai/")){let d=Up(e.api.id,e.release_date);return Object.fromEntries(d.map(p=>[p,{reasoningEffort:p}]))}return Object.fromEntries($r.map(d=>[d,{reasoningEffort:d}]))}case"@ai-sdk/gateway":return e.api.id.includes("anthropic")?s?Object.fromEntries(s.map(d=>[d,{thinking:{type:"adaptive",...n?{display:"summarized"}:{}},effort:d}])):{high:{thinking:{type:"enabled",budgetTokens:16e3}},max:{thinking:{type:"enabled",budgetTokens:31999}}}:e.api.id.includes("google")?jc(e.api.id)?{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16e3}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:HN(e.api.id.toLowerCase())}}}:Object.fromEntries(["low","high"].map(d=>[d,{includeThoughts:!0,thinkingLevel:d}])):Object.fromEntries(TN(e.api.id).map(d=>[d,{reasoningEffort:d}]));case"@ai-sdk/github-copilot":if(e.id.includes("gemini"))return{};if(e.id.includes("claude"))return Object.fromEntries($r.map(d=>[d,{reasoningEffort:d}]));let o=sn(()=>{if(t.includes("5.1-codex-max")||t.includes("5.2")||t.includes("5.3"))return[...$r,"xhigh"];let d=[...$r];return t.includes("gpt-5")&&e.release_date>="2025-12-04"&&d.push("xhigh"),d});return Object.fromEntries(o.map(d=>[d,{reasoningEffort:d,reasoningSummary:"auto",include:Wn}]));case"@ai-sdk/cerebras":case"@ai-sdk/togetherai":case"@ai-sdk/xai":case"@ai-sdk/deepinfra":case"venice-ai-sdk-provider":case"@ai-sdk/openai-compatible":if(e.api.id.toLowerCase().includes("north-mini-code"))return Object.fromEntries(["none","high"].map(d=>[d,{reasoningEffort:d}]));let a=[...$r];return e.api.id.toLowerCase().includes("deepseek-v4")&&a.push("max"),Object.fromEntries(a.map(d=>[d,{reasoningEffort:d}]));case"@ai-sdk/azure":return t==="o1-mini"?{}:Object.fromEntries(Up(t,e.release_date).map(d=>[d,{reasoningEffort:d,reasoningSummary:"auto",include:Wn}]));case"@ai-sdk/amazon-bedrock/mantle":case"@ai-sdk/openai":{if(e.providerID==="meta")return Object.fromEntries(NN.map(p=>[p,{reasoningEffort:p,reasoningSummary:"auto",include:Wn}]));let d=Up(e.api.id,e.release_date);return Object.fromEntries(d.map(p=>[p,{reasoningEffort:p,reasoningSummary:"auto",include:Wn}]))}case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":if(s){let d=[...s];return e.providerID==="github-copilot"&&(e.api.id.includes("opus-4.7")&&(d=["medium"]),d=d.filter(p=>p!=="max"&&p!=="xhigh")),Object.fromEntries(d.map(p=>[p,{thinking:{type:"adaptive",...n?{display:"summarized"}:{}},effort:p}]))}return Xb(e.api.id)?Object.fromEntries($r.map(d=>[d,BN(e,d)])):{high:{thinking:{type:"enabled",budgetTokens:Math.min(16e3,Math.floor(e.limit.output/2-1))}},max:{thinking:{type:"enabled",budgetTokens:Math.min(31999,e.limit.output-1)}}};case"@ai-sdk/amazon-bedrock":return s?Object.fromEntries(s.map(d=>[d,{reasoningConfig:{type:"adaptive",maxReasoningEffort:d,...n?{display:"summarized"}:{}}}])):e.api.id.includes("anthropic")?{high:{reasoningConfig:{type:"enabled",budgetTokens:16e3}},max:{reasoningConfig:{type:"enabled",budgetTokens:31999}}}:Object.fromEntries($r.map(d=>[d,{reasoningConfig:{type:"enabled",maxReasoningEffort:d}}]));case"@ai-sdk/google-vertex":case"@ai-sdk/google":return kN(e);case"@ai-sdk/mistral":if(!e.capabilities.reasoning)return{};let u=["mistral-small-2603","mistral-small-latest","mistral-medium-3.5","mistral-medium-2604"],c=e.api.id.toLowerCase();return u.some(d=>c.includes(d))?{high:{reasoningEffort:"high"}}:{};case"@ai-sdk/cohere":return{};case"@ai-sdk/groq":let l=["none",...$r];return Object.fromEntries(l.map(d=>[d,{reasoningEffort:d}]));case"@ai-sdk/perplexity":return{};case"@jerome-benoit/sap-ai-provider-v2":{if(t.includes("anthropic"))return Fc(s?Object.fromEntries(s.map(d=>[d,{thinking:{type:"adaptive",...n?{display:"summarized"}:{}},output_config:{effort:d}}])):{high:{thinking:{type:"enabled",budget_tokens:16e3}},max:{thinking:{type:"enabled",budget_tokens:31999}}});if(jc(t)||jc(e.api.id))return Fc(kN(e));if(t.includes("gpt")||/\bo[1-9]/.test(t)){let d=Up(t,e.release_date);return Fc(Object.fromEntries(d.map(p=>[p,{reasoning_effort:p}])))}return Fc(Object.fromEntries(["low","medium","high"].map(d=>[d,{reasoning_effort:d}])))}}return{}}i(xee,"variants");function bee(e){let t={};(e.model.api.npm==="@ai-sdk/google-vertex/anthropic"||!e.model.api.id.includes("claude")&&e.model.api.npm==="@ai-sdk/anthropic")&&(t.toolStreaming=!1),(e.model.providerID==="openai"||e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/github-copilot"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle"||e.model.api.npm==="@ai-sdk/xai")&&(t.store=!1),e.model.api.npm==="@ai-sdk/azure"&&(t.store=!1),(e.model.api.npm==="@openrouter/ai-sdk-provider"||e.model.api.npm==="@llmgateway/ai-sdk-provider")&&(t.usage={include:!0},e.model.api.id.toLowerCase().includes("gemini")&&!Vb(e.model.api.id)&&(t.reasoning={effort:"high"})),(e.model.providerID==="baseten"||e.model.providerID==="opencode"&&["kimi-k2-thinking","glm-4.6"].includes(e.model.api.id))&&(t.chat_template_args={enable_thinking:!0}),["zai","zhipuai"].some(a=>e.model.providerID.includes(a))&&e.model.api.npm==="@ai-sdk/openai-compatible"&&(t.thinking={type:"enabled",clear_thinking:!1}),e.model.providerID==="meta"&&e.model.api.npm==="@ai-sdk/openai"&&(t.reasoningSummary="auto",t.include=Wn),(e.model.api.npm==="@ai-sdk/google"||e.model.api.npm==="@ai-sdk/google-vertex")&&e.model.capabilities.reasoning&&(t.thinkingConfig={includeThoughts:!0},Vb(e.model.api.id)||(t.thinkingConfig.thinkingLevel="high"));let r=e.model.api.id.toLowerCase();r.includes("minimax-m3")&&e.model.api.npm==="@ai-sdk/anthropic"&&(t.thinking={type:"adaptive"}),["@ai-sdk/anthropic","@ai-sdk/google-vertex/anthropic"].includes(e.model.api.npm)&&zb(e.model)&&e.model.capabilities.reasoning&&(t.thinking={type:"adaptive",display:"summarized"},t.effort="high"),e.model.providerID==="alibaba-cn"&&e.model.capabilities.reasoning&&e.model.api.npm==="@ai-sdk/openai-compatible"&&!r.includes("kimi-k2-thinking")&&(t.enable_thinking=!0),e.providerOptions?.setCacheKey!==!1&&(e.model.api.npm==="@ai-sdk/deepinfra"||e.model.api.npm==="@ai-sdk/cerebras"?t.prompt_cache_key=e.sessionID:(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/azure"||e.model.api.npm==="@ai-sdk/xai"||e.model.api.npm==="@ai-sdk/mistral"||e.model.api.npm==="venice-ai-sdk-provider"||e.providerOptions?.setCacheKey===!0)&&(t.promptCacheKey=e.sessionID)),e.model.api.npm==="@ai-sdk/gateway"&&(t.gateway={caching:"auto"});let[,n,s]=e.model.api.id.match(/gpt-(\d+)\.(\d+)/)??[],o=Number(n)>5||Number(n)===5&&Number(s)>=5;return e.model.api.npm==="@ai-sdk/azure"&&e.providerOptions?.useCompletionUrls?(o||(t.reasoningEffort="medium"),t):(e.model.api.id.includes("gpt-5")&&!e.model.api.id.includes("gpt-5-chat")&&(e.model.api.id.includes("gpt-5-pro")||(t.reasoningEffort="medium",(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/azure"||e.model.api.npm==="@ai-sdk/github-copilot"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(t.reasoningSummary="auto"),(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(t.include=Wn)),e.model.api.id.includes("gpt-5.")&&!e.model.api.id.includes("codex")&&!e.model.api.id.includes("-chat")&&(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(t.textVerbosity="low"),e.model.providerID.startsWith("opencode")&&e.providerOptions?.setCacheKey!==!1&&(t.promptCacheKey=e.sessionID,t.include=Wn,t.reasoningSummary="auto")),t)}i(bee,"options");function Eee(e){let t=Object.values(e.variants??{})[0]??{};return e.providerID==="openai"||e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/github-copilot"||e.api.npm==="@ai-sdk/xai"?Ar({store:!1},t):(e.providerID==="openrouter"||e.providerID==="llmgateway")&&Object.keys(t).length===0&&e.api.id.includes("google")?{reasoning:{enabled:!1}}:e.providerID==="venice"?Object.keys(t).length>0?t:{veniceParameters:{disableThinking:!0}}:t}i(Eee,"smallOptions");var See={amazon:"bedrock"};function _ee(e,t){let n=(e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/azure"||e.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(e.capabilities.reasoning||t.reasoningEffort!==void 0||t.reasoningSummary!==void 0)?{...t,forceReasoning:!0}:mee(e,t);if(e.api.npm==="@ai-sdk/gateway"){let a=e.api.id.indexOf("/"),u=a>0?e.api.id.slice(0,a):void 0,c=u?See[u]??u:void 0,l=n.gateway,d=Object.fromEntries(Object.entries(n).filter(([f])=>f!=="gateway")),p=Object.keys(d).length>0,m={};return l!==void 0&&(m.gateway=l),p&&(c?m[c]=d:l&&typeof l=="object"&&!Array.isArray(l)?m.gateway={...l,...d}:m.gateway=d),m}let s=e.api.npm==="@ai-sdk/openai-compatible"||e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/anthropic",o=Gb(e.api.npm)??(s?e.providerID.split(".")[0]:e.providerID);return e.api.npm==="@ai-sdk/azure"?{openai:n,azure:n}:{[o]:n}}i(_ee,"providerOptions");function vee(e,t=$p){return Math.min(e.limit.output,t)||t}i(vee,"maxOutputTokens");function Bb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(Bb,"isPlainObject");function Js(e){let t=["string","number","boolean","integer","object","array","null"],r=["anyOf","oneOf","allOf"];if(typeof e=="boolean")return{type:"string"};if(Array.isArray(e))return e.map(Js);if(!Bb(e))return e;let n={};typeof e.$ref=="string"&&(n.$ref=e.$ref),typeof e.description=="string"&&(n.description=e.description),"const"in e?n.enum=[e.const]:Array.isArray(e.enum)&&(n.enum=e.enum),Bb(e.properties)&&(n.properties=Object.fromEntries(Object.entries(e.properties).map(([a,u])=>[a,Js(u)]))),Array.isArray(e.required)&&(n.required=e.required.filter(a=>typeof a=="string")),"items"in e&&(n.items=Js(e.items)),"additionalProperties"in e&&(n.additionalProperties=typeof e.additionalProperties=="boolean"?e.additionalProperties:Js(e.additionalProperties));for(let a of r)Array.isArray(e[a])&&(n[a]=e[a].map(Js));for(let a of["$defs","definitions"])Bb(e[a])&&(n[a]=Object.fromEntries(Object.entries(e[a]).map(([u,c])=>[u,Js(c)])));let s=typeof e.type=="string"?t.includes(e.type)?[e.type]:[]:Array.isArray(e.type)?e.type.filter(a=>typeof a=="string"&&t.includes(a)):[];if(s.length===0&&(typeof n.$ref=="string"||r.some(a=>a in n)))return n;let o=s.length>0?s:["properties","required","additionalProperties"].some(a=>a in e)?["object"]:["items","prefixItems"].some(a=>a in e)?["array"]:"enum"in n||"format"in e?["string"]:["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"].some(a=>a in e)?["number"]:[];return o.length===0?{}:(n.type=o.length===1?o[0]:o,o.includes("object")&&!("properties"in n)&&(n.properties={}),o.includes("array")&&!("items"in n)&&(n.items={type:"string"}),n)}i(Js,"sanitizeOpenAISchema");function wee(e,t){if((e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/azure")&&(t=Js(t)),e.providerID==="moonshotai"||e.api.id.toLowerCase().includes("kimi")){let r=i(s=>{if(s===null||typeof s!="object")return s;if(Array.isArray(s))return s.map(r);if("$ref"in s&&typeof s.$ref=="string")return{$ref:s.$ref};let o=Object.fromEntries(Object.entries(s).map(([a,u])=>[a,r(u)]));return Array.isArray(o.items)&&(o.items=o.items[0]??{}),o},"sanitizeMoonshot"),n=r(t);typeof n=="object"&&n!==null&&!Array.isArray(n)&&(t=n)}if(e.providerID==="google"||e.api.id.includes("gemini")){let r=i(a=>typeof a=="object"&&a!==null&&!Array.isArray(a),"isPlainObject"),n=i(a=>r(a)&&(Array.isArray(a.anyOf)||Array.isArray(a.oneOf)||Array.isArray(a.allOf)),"hasCombiner"),s=i(a=>r(a)?n(a)?!0:["type","properties","items","prefixItems","enum","const","$ref","additionalProperties","patternProperties","required","not","if","then","else"].some(u=>u in a):!1,"hasSchemaIntent"),o=i(a=>{if(a===null||typeof a!="object")return a;if(Array.isArray(a))return a.map(o);let u={};for(let[c,l]of Object.entries(a))c==="enum"&&Array.isArray(l)?(u[c]=l.map(d=>String(d)),(u.type==="integer"||u.type==="number")&&(u.type="string")):typeof l=="object"&&l!==null?u[c]=o(l):u[c]=l;if(Array.isArray(u.type)){let c=u.type.includes("null"),l=u.type.filter(d=>d!=="null");l.length===0?u.type="null":(delete u.type,u.anyOf=l.map(d=>({type:d})),c&&(u.nullable=!0))}return u.type==="object"&&u.properties&&Array.isArray(u.required)&&(u.required=u.required.filter(c=>c in u.properties)),u.type==="array"&&!n(u)&&(u.items==null&&(u.items={}),r(u.items)&&!s(u.items)&&(u.items.type="string")),u.type&&u.type!=="object"&&!n(u)&&(delete u.properties,delete u.required),u},"sanitizeGemini");t=o(t)}return t}i(wee,"schema");function Tee(e,t){let r=e.reasoning_options;if(r===void 0)return;if(r.length===0)return{};let n=r.find(a=>a.type==="effort");if(n)return Ree(t,n.values);let s=r.some(a=>a.type==="toggle"),o=r.find(a=>a.type==="budget_tokens");return o?AN({...s?ON(t):{},...kee(t,o.min,o.max)}):s?AN(ON(t)):void 0}i(Tee,"reasoningVariants");function Ree(e,t){return Object.fromEntries(t.flatMap(r=>{let n=(()=>{if(r===null)return"none";if(typeof r=="string")return r})();if(n===void 0)return[];let s=Aee(e,n);return s?[[n,s]]:[]}))}i(Ree,"effortVariants");function kee(e,t,r){let n=Math.min(r??$p-1,e.limit.output-1,$p-1);if(n<=0)return{};let s=Math.min(Math.max(t??0,Math.floor((n+1)/2)),n);return Object.fromEntries([{id:"high",budget:s},{id:"max",budget:n}].flatMap(o=>{let a=Iee(e,o.budget);return a?[[o.id,a]]:[]}))}i(kee,"budgetVariants");function AN(e){return Object.keys(e).length>0?e:void 0}i(AN,"nonEmptyVariants");function ON(e){return e.api.npm==="@ai-sdk/alibaba"?{none:{enableThinking:!1},high:{enableThinking:!0}}:e.api.npm==="@ai-sdk/cohere"?{none:{thinking:{type:"disabled"}},high:{thinking:{type:"enabled"}}}:{}}i(ON,"reasoningToggle");function Aee(e,t){switch(e.api.npm){case"@openrouter/ai-sdk-provider":return{reasoning:{effort:t}};case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return Oee(e,t)??{effort:t};case"@ai-sdk/google":case"@ai-sdk/google-vertex":return{thinkingConfig:{includeThoughts:!0,thinkingLevel:t}};case"@ai-sdk/amazon-bedrock":return Qb(e.api.id)?{reasoningConfig:{type:"adaptive",maxReasoningEffort:t,...Zb(e.api.id)?{display:"summarized"}:{}}}:Xb(e.api.id)?{reasoningConfig:{type:"enabled",budgetTokens:Math.min(16e3,Math.floor(e.limit.output/2-1)),maxReasoningEffort:t}}:e.api.id.includes("anthropic")?void 0:{reasoningConfig:{type:"enabled",maxReasoningEffort:t}};case"@ai-sdk/gateway":return e.id.includes("anthropic")?{thinking:{type:"adaptive",display:"summarized"},effort:t}:e.id.includes("google")?{thinkingConfig:{includeThoughts:!0,thinkingLevel:t}}:{reasoningEffort:t};case"@ai-sdk/github-copilot":return e.id.includes("gemini")?void 0:e.id.includes("claude")?{reasoningEffort:t}:{reasoningEffort:t,reasoningSummary:"auto",include:Wn};case"@ai-sdk/openai":case"@ai-sdk/amazon-bedrock/mantle":return{reasoningEffort:t,reasoningSummary:"auto",include:Wn};case"@ai-sdk/azure":return{reasoningEffort:t,reasoningSummary:"auto",include:Wn};case"@jerome-benoit/sap-ai-provider-v2":return e.id.includes("anthropic")?{modelParams:{thinking:{type:"adaptive",display:"summarized"},output_config:{effort:t}}}:{modelParams:{reasoning_effort:t}};case"@ai-sdk/openai-compatible":case"@ai-sdk/xai":case"@ai-sdk/mistral":case"@ai-sdk/groq":case"@ai-sdk/cerebras":case"@ai-sdk/deepinfra":case"@ai-sdk/togetherai":case"venice-ai-sdk-provider":case"ai-gateway-provider":case"merge-gateway-ai-sdk-provider":return{reasoningEffort:t};case"gitlab-ai-provider":return e.family?.startsWith("gpt")?{reasoningEffort:t}:e.family?.startsWith("claude")?{thinking:{type:"adaptive",effort:t}}:void 0;case"@ai-sdk/cohere":case"@ai-sdk/perplexity":case"@ai-sdk/vercel":case"@ai-sdk/alibaba":return}}i(Aee,"reasoningEffort");function Oee(e,t){if(Xb(e.api.id))return BN(e,t);if(zb(e))return{thinking:{type:"adaptive",display:"summarized"},effort:t};if(Qb(e.api.id))return{thinking:{type:"adaptive",...Zb(e.api.id)?{display:"summarized"}:{}},effort:t}}i(Oee,"anthropicEffort");function BN(e,t){return{thinking:{type:"enabled",budgetTokens:Math.min(16e3,Math.floor(e.limit.output/2-1))},effort:t}}i(BN,"anthropicOpus45Effort");function Iee(e,t){switch(e.api.npm){case"@openrouter/ai-sdk-provider":return{reasoning:{max_tokens:t}};case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return{thinking:{type:"enabled",budgetTokens:t}};case"@ai-sdk/google":case"@ai-sdk/google-vertex":return{thinkingConfig:{includeThoughts:!0,thinkingBudget:t}};case"@ai-sdk/amazon-bedrock":return{reasoningConfig:{type:"enabled",budgetTokens:t}};case"@ai-sdk/gateway":return e.id.includes("anthropic")?{thinking:{type:"enabled",budgetTokens:t}}:e.id.includes("google")?{thinkingConfig:{includeThoughts:!0,thinkingBudget:t}}:void 0;case"@ai-sdk/cohere":return{thinking:{type:"enabled",tokenBudget:t}};case"@ai-sdk/alibaba":return{enableThinking:!0,thinkingBudget:t};case"@jerome-benoit/sap-ai-provider-v2":return e.id.includes("anthropic")?{modelParams:{thinking:{type:"enabled",budget_tokens:t}}}:e.id.includes("gemini")?{modelParams:{thinkingConfig:{includeThoughts:!0,thinkingBudget:t}}}:void 0;case"@ai-sdk/amazon-bedrock/mantle":case"@ai-sdk/azure":case"@ai-sdk/cerebras":case"@ai-sdk/deepinfra":case"@ai-sdk/github-copilot":case"@ai-sdk/groq":case"@ai-sdk/mistral":case"@ai-sdk/openai":case"@ai-sdk/openai-compatible":case"@ai-sdk/perplexity":case"@ai-sdk/togetherai":case"@ai-sdk/vercel":case"@ai-sdk/xai":case"ai-gateway-provider":case"gitlab-ai-provider":case"venice-ai-sdk-provider":return}}i(Iee,"reasoningBudget");var VN=E.Literals(["alpha","beta","deprecated","active"]);var eE;(a=>{a.INCOMPLETE_CODE=fr.RESPONSE_INCOMPLETE_CODE,a.FAILED_CODE=fr.RESPONSE_FAILED_CODE;function r(u,c,l,d){return{type:"error",sequence_number:typeof u=="number"?u:0,error:{type:d??c,code:c,message:l,param:null}}}i(r,"errorEvent");function n(u){switch(u.type){case"response.failed":{let c=u.response?.error,l=typeof c?.code=="string"&&c.code?c.code:a.FAILED_CODE,d=typeof c?.message=="string"&&c.message?c.message:"The provider reported the response failed.";return r(u.sequence_number,l,d,a.FAILED_CODE)}case"response.incomplete":{let c=u.response?.incomplete_details?.reason;return c==="content_filter"?void 0:r(u.sequence_number,a.INCOMPLETE_CODE,`The response ended incomplete (${typeof c=="string"&&c?c:"no reason given"}).`)}case"error":{if(u.error&&typeof u.error=="object")return;let c=typeof u.code=="string"&&u.code?u.code:a.FAILED_CODE,l=typeof u.message=="string"&&u.message?u.message:"Stream error.";return r(u.sequence_number,c,l)}}}a.rewrite=n,i(n,"rewrite");let s=new Set(["response.completed","response.incomplete","response.failed","error"]);function o(u){if(!u.ok||!u.body)return u;let c=u.body.getReader(),l=new TextDecoder,d=new TextEncoder,p="",m=!1,f=!1,h=i(v=>{let T=v.split(/\r?\n/).filter(k=>k.startsWith("data:")).map(k=>k.slice(5).replace(/^ /,"")).join(`
|
|
471
|
+
`;Lt.appendFileSync(s,a)}catch{}}i(Pt,"debugLog");function Pp(){let e=zD.homedir(),t=process.env.XDG_DATA_HOME;return t?Ws.join(t,"opencode","auth.json"):process.platform!=="win32"?Ws.join(e,".local","share","opencode","auth.json"):Ws.join(e,".opencode","auth.json")}i(Pp,"getAuthPath");async function GD(e,t,r,n){let s=Pp(),o=Ws.dirname(s);Lt.existsSync(o)||Lt.mkdirSync(o,{recursive:!0});let a={};if(Lt.existsSync(s)){let u=Lt.readFileSync(s,"utf-8");a=JSON.parse(u)}a.gitlab={type:"oauth",access:e,refresh:t,expires:r,enterpriseUrl:n},Lt.writeFileSync(s,JSON.stringify(a,null,2)),Lt.chmodSync(s,384)}i(GD,"saveOAuthData");async function IQ(e,t){let r=Pp(),n=Ws.dirname(r);Lt.existsSync(n)||Lt.mkdirSync(n,{recursive:!0});let s={};if(Lt.existsSync(r)){let o=Lt.readFileSync(r,"utf-8");s=JSON.parse(o)}s.gitlab={type:"api",key:e,enterpriseUrl:t},Lt.writeFileSync(r,JSON.stringify(s,null,2)),Lt.chmodSync(r,384)}i(IQ,"savePATData");function CQ(e){try{let t=Pp();if(!Lt.existsSync(t))return;let r=JSON.parse(Lt.readFileSync(t,"utf-8")),n=r.gitlab;if(!n||n.type!=="api")return;let s={...n.metadata??{},instanceUrl:e};r.gitlab={...n,metadata:s},Lt.writeFileSync(t,JSON.stringify(r,null,2)),Lt.chmodSync(t,384)}catch{}}i(CQ,"persistPatInstanceUrl");var Dc=null;async function DQ(e,t,r){let n=Date.now(),s=300*1e3;if(!(e.expires<=n+s))return Pt("Token is still valid",{expiresAt:new Date(e.expires).toISOString(),expiresIn:Math.round((e.expires-n)/1e3/60)+" minutes"}),{apiKey:e.access,instanceUrl:e.enterpriseUrl||r};if(Dc){Pt("Token refresh already in progress, waiting..."),await Dc;let u=await t();if(u&&u.type==="oauth")return{apiKey:u.access,instanceUrl:u.enterpriseUrl||r};throw new Error("Failed to get refreshed auth data")}Pt("Token expired or expiring soon, refreshing...",{expiresAt:new Date(e.expires).toISOString(),expired:e.expires<=n}),Dc=(async()=>{try{let u=e.enterpriseUrl||r,c=new Cc({instanceUrl:u,clientId:Nc,scopes:Db,method:"auto"});Pt("Calling exchangeRefreshToken...");let l=await c.exchangeRefreshToken(e.refresh),d=Date.now()+l.expires_in*1e3;Pt("Token refresh successful",{newExpiresAt:new Date(d).toISOString(),expiresIn:Math.round(l.expires_in/60)+" minutes"}),await GD(l.access_token,l.refresh_token,d,u),Pt("New tokens saved successfully")}catch(u){if(Pt("Token refresh failed",{error:u instanceof Error?u.message:String(u),stack:u instanceof Error?u.stack:void 0}),u instanceof Error&&u.message.includes("401")){Pt("Refresh token appears to be revoked (401), clearing auth data");let c=Pp();if(Lt.existsSync(c)){let l=Lt.readFileSync(c,"utf-8"),d=JSON.parse(l);delete d.gitlab,Lt.writeFileSync(c,JSON.stringify(d,null,2))}}throw u}})();try{await Dc}finally{Dc=null}let a=await t();if(a&&a.type==="oauth")return{apiKey:a.access,instanceUrl:a.enterpriseUrl||r};throw new Error("Failed to get refreshed auth data after token refresh")}i(DQ,"refreshTokenIfNeeded");var WD=i(async e=>({auth:{provider:"gitlab",async loader(r){let n=await r();if(!n)return{};if(n.type==="oauth")try{return{...await DQ(n,r,Pc()),clientId:Nc}}catch(s){return Pt("Failed to refresh token in loader",{error:s instanceof Error?s.message:String(s)}),{apiKey:n.access,instanceUrl:n.enterpriseUrl||Pc(),clientId:Nc}}if(n.type==="api"){let s=n.metadata,o=s?.instanceUrl||n.enterpriseUrl,a=Cb(o);return(!o||s?.instanceUrl!==a)&&CQ(a),{apiKey:n.key,instanceUrl:a}}return{}},methods:[{type:"oauth",label:"GitLab OAuth",prompts:[{type:"text",key:"instanceUrl",message:"GitLab instance URL",placeholder:Pc(),validate:i(r=>VD(r),"validate")}],async authorize(r){let n=Cb(r?.instanceUrl),s;try{let T=new URL(n);s=`${T.protocol}//${T.host}`}catch{throw new Error(`Invalid GitLab instance URL: ${n}`)}let{generateSecret:o,generateCodeChallengeFromVerifier:a}=await import("./pkce-VT4ITJTB.js"),u=o(43),c=a(u),l=o(32),d=new ya({port:8080,host:"127.0.0.1",timeout:12e4});await d.start();let p=d.getCallbackUrl(),m=d.waitForCallback(),f=new URLSearchParams({client_id:Nc,redirect_uri:p,response_type:"code",state:l,scope:Db.join(" "),code_challenge:c,code_challenge_method:"S256"}),h=`${s}/oauth/authorize?${f.toString()}`,{exec:S}=await import("child_process"),y=process.platform;return S(`${y==="darwin"?"open":y==="win32"?"start":"xdg-open"} "${h}"`),{method:"auto",url:h,instructions:"Your browser will open for authentication. The callback will be handled automatically.",async callback(){Pt("callback() called");try{Pt("Waiting for callback...");let T=await m;if(Pt("Received callback",{hasCode:!!T.code,hasState:!!T.state}),T.state!==l)return Pt("State mismatch",{expected:l,received:T.state}),await d.close(),{type:"failed"};Pt("State verified"),Pt("Exchanging code for tokens...");let b=await new Cc({instanceUrl:s,clientId:Nc,scopes:Db,method:"auto"}).exchangeAuthorizationCode(T.code,u,p);Pt("Token exchange successful"),await d.close();let k=Date.now()+b.expires_in*1e3;return Pt("Tokens received",{expiresAt:new Date(k).toISOString()}),Pt("Saving auth data..."),await GD(b.access_token,b.refresh_token,k,s),Pt("Auth data saved successfully"),{type:"success",provider:s,access:b.access_token,refresh:b.refresh_token,expires:k,enterpriseUrl:s}}catch(T){Pt("Error in callback",{error:T instanceof Error?T.message:String(T),stack:T instanceof Error?T.stack:void 0});try{await d.close()}catch{}return{type:"failed"}}}}}},{type:"api",label:"GitLab Personal Access Token",prompts:[{type:"text",key:"instanceUrl",message:"GitLab instance URL",placeholder:Pc(),validate:i(r=>VD(r),"validate")}],async authorize(r){let n=Cb(r?.instanceUrl),s=r?.token;if(!s)return{type:"failed"};let o;try{let a=new URL(n);o=`${a.protocol}//${a.host}`}catch{return{type:"failed"}}try{return(await fetch(`${o}/api/v4/user`,{headers:{Authorization:`Bearer ${s}`}})).ok?(Pt("Saving PAT auth data..."),await IQ(s,o),Pt("PAT auth data saved successfully"),{type:"success",key:s,provider:o,metadata:{instanceUrl:o}}):{type:"failed"}}catch{return{type:"failed"}}}}]}}),"gitlabAuthPlugin");import NQ from"node:http";import KD from"node:crypto";var PQ="https://poe.com/oauth/authorize",LQ="https://api.poe.com/token";function Pb(e){let t=e.fetch??globalThis.fetch;return{authorize:i(()=>FQ(e,t),"authorize")}}i(Pb,"createOAuthClient");function MQ(){return KD.randomBytes(32).toString("base64url")}i(MQ,"generateCodeVerifier");function qQ(e){return KD.createHash("sha256").update(e).digest("base64url")}i(qQ,"generateCodeChallenge");async function FQ(e,t){let r=e.authorizationEndpoint??PQ,n=e.tokenEndpoint??LQ,s=MQ(),o=qQ(s),a=e.createServer?e.createServer():NQ.createServer(),c=`http://127.0.0.1:${await jQ(a)}/callback`,l=UQ({endpoint:r,clientId:e.clientId,redirectUri:c,codeChallenge:o});return{authorizationUrl:l,waitForResult:i(async()=>{try{let p=await $Q(a,e,l);return await BQ({tokenEndpoint:n,code:p,codeVerifier:s,clientId:e.clientId,redirectUri:c,fetchFn:t})}finally{a.closeAllConnections?.(),a.close()}},"waitForResult")}}i(FQ,"startAuthorization");function jQ(e){return new Promise(t=>{e.listen(0,"127.0.0.1",()=>{let r=e.address();t(r.port)})})}i(jQ,"startServer");function UQ(e){let t=new URL(e.endpoint);return t.searchParams.set("response_type","code"),t.searchParams.set("client_id",e.clientId),t.searchParams.set("scope","apikey:create"),t.searchParams.set("code_challenge",e.codeChallenge),t.searchParams.set("code_challenge_method","S256"),t.searchParams.set("redirect_uri",e.redirectUri),t.toString()}i(UQ,"buildAuthorizationUrl");function $Q(e,t,r){return new Promise((n,s)=>{let o=!1,a=i(u=>{o||(o=!0,u())},"settle");e.on("request",(u,c)=>{let l=new URL(u.url,"http://127.0.0.1");if(l.pathname!=="/callback"){c.writeHead(404),c.end("Not found");return}let d=l.searchParams.get("error");if(d){let m=l.searchParams.get("error_description")??d;c.writeHead(400),c.end(`Authorization failed: ${m}`),a(()=>s(new Error(`OAuth authorization failed: ${d} \u2014 ${m}`)));return}let p=l.searchParams.get("code");if(!p){c.writeHead(400),c.end("Missing authorization code"),a(()=>s(new Error("OAuth callback missing authorization code")));return}c.writeHead(200,{"Content-Type":"text/html"}),c.end(zQ(t.landingPage)),a(()=>n(p))}),t.readLine&&t.readLine().then(u=>{let c=HQ(u);c&&a(()=>n(c))}).catch(()=>{}),t.openBrowser&&t.openBrowser(r).catch(u=>a(()=>s(u)))})}i($Q,"waitForAuthorizationCode");function HQ(e){let t=e.replace(/[\r\n]/g,"").trim();if(t.length===0)return null;try{return new URL(t).searchParams.get("code")}catch{return t}}i(HQ,"extractCodeFromInput");async function BQ(e){let t=new URLSearchParams({grant_type:"authorization_code",code:e.code,code_verifier:e.codeVerifier,client_id:e.clientId,redirect_uri:e.redirectUri}),r=await e.fetchFn(e.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t.toString()});if(!r.ok){let s=await r.text(),o=VQ(s);throw new Error(o??`Token exchange failed (${r.status}): ${s}`)}let n=await r.json();if(typeof n.api_key!="string"||n.api_key.length===0)throw new Error("Token response missing api_key field");return{apiKey:n.api_key,expiresIn:typeof n.api_key_expires_in=="number"?n.api_key_expires_in:null}}i(BQ,"exchangeCodeForApiKey");function VQ(e){try{let t=JSON.parse(e);if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error}catch{}return null}i(VQ,"parseErrorDescription");function Nb(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}i(Nb,"escapeHtml");function zQ(e){let t=e?.title??"Connected to Poe",r=e?.body??"You can close this tab and return to your terminal.";return["<!DOCTYPE html>",`<html><head><meta charset=utf-8><title>${Nb(t)}</title></head>`,'<body style="font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0">','<div style="text-align:center">',`<h1>${Nb(t)}</h1>`,`<p style="color:#666">${Nb(r)}</p>`,"</div></body></html>"].join("")}i(zQ,"buildSuccessPage");var GQ="client_728290227fc048cc9262091a1ea197ea";function WQ(e){return e==null?Number.MAX_SAFE_INTEGER:Date.now()+e*1e3}i(WQ,"getExpiry");async function KQ(){let t=await Pb({clientId:GQ,landingPage:{title:"Connected to Poe",body:"You can close this tab and return to OpenCode."},openBrowser:i(async r=>{await s1(r)},"openBrowser")}).authorize();return{url:t.authorizationUrl,instructions:"Complete authorization in your browser. This window will close automatically.",method:"auto",callback:i(async()=>{let r=await t.waitForResult();return{type:"success",access:r.apiKey,refresh:r.apiKey,expires:WQ(r.expiresIn)}},"callback")}}i(KQ,"authorize");async function Lp(e){return{auth:{provider:"poe",async loader(t){let r=await t();if(r.type==="api")return{apiKey:r.key};if(r.type!=="oauth")return{};if(r.expires<Date.now())throw new Error("Poe API key expired. Run `opencode providers login` again.");return{apiKey:r.access}},methods:[{label:"Login with Poe (browser)",type:"oauth",authorize:KQ},{label:"Manually enter API Key",type:"api"}]}}}i(Lp,"PoeAuthPlugin");async function JD(e){return{auth:{provider:"cloudflare-workers-ai",methods:[{type:"api",label:"API key",prompts:process.env.CLOUDFLARE_ACCOUNT_ID?[]:[{type:"text",key:"accountId",message:"Enter your Cloudflare Account ID",placeholder:"e.g. 1234567890abcdef1234567890abcdef"}]}]}}}i(JD,"CloudflareWorkersAuthPlugin");async function YD(e){return{auth:{provider:"cloudflare-ai-gateway",methods:[{type:"api",label:"Gateway API token",prompts:[...process.env.CLOUDFLARE_ACCOUNT_ID?[]:[{type:"text",key:"accountId",message:"Enter your Cloudflare Account ID",placeholder:"e.g. 1234567890abcdef1234567890abcdef"}],...process.env.CLOUDFLARE_GATEWAY_ID?[]:[{type:"text",key:"gatewayId",message:"Enter your Cloudflare AI Gateway ID",placeholder:"e.g. my-gateway"}]]}]}}}i(YD,"CloudflareAIGatewayAuthPlugin");var XD="https://cognitiveservices.azure.com/.default",JQ="https://ai.azure.com/.default",YQ=6e4,XQ=E.Struct({accessToken:E.NonEmptyString,expires_on:E.optional(E.Number),expiresOn:E.optional(E.NonEmptyString)}),QQ=E.decodeUnknownPromise(XQ);async function QD(){let e=!!bn("az");return ZQ(eZ,fetch,e)}i(QD,"AzureAuthPlugin");function ZQ(e,t,r){let n=new Map;async function s(u){let c=n.get(u);if(c&&c.expires-Date.now()>YQ)return c.token;let l=await QQ(await e(["account","get-access-token","--scope",u,"--output","json"])),d=l.expires_on!==void 0?l.expires_on*1e3:Date.parse(l.expiresOn??"");if(!Number.isFinite(d))throw new Error("Azure CLI returned an invalid token expiration");let p={token:l.accessToken,expires:d};return n.set(u,p),p.token}i(s,"token");let o=[];process.env.AZURE_RESOURCE_NAME||o.push({type:"text",key:"resourceName",message:"Enter Azure Resource Name",placeholder:"e.g. my-models"});let a={auth:{provider:"azure",async loader(u){return(await u()).type!=="oauth"?{}:{apiKey:qn,async fetch(c,l){let d=new Headers(c instanceof Request?c.headers:void 0);return new Headers(l?.headers).forEach((p,m)=>d.set(m,p)),d.delete("api-key"),d.delete("x-api-key"),d.set("authorization",`Bearer ${await s(tZ(c))}`),d.set("User-Agent",`opencode/${ut}`),t(c,{...l,headers:d})}}},methods:[{type:"api",label:"API key",prompts:o},{type:"oauth",label:"Microsoft Entra ID (Azure CLI)",prompts:o,async authorize(u){return{url:"",instructions:"Sign in with `az login` before continuing.",method:"auto",callback:i(async()=>{let c=u?.resourceName??process.env.AZURE_RESOURCE_NAME;if(!c)throw new Error("Azure Resource Name is required");return await s(XD),{type:"success",access:qn,refresh:qn,expires:Date.now()+365*24*60*60*1e3,accountId:c}},"callback")}}}]}};return!r&&a.auth&&(a.auth.methods=a.auth.methods.filter(u=>u.type!=="oauth")),a}i(ZQ,"createAzureAuthHooks");async function eZ(e){let t=await j_.run([bn("az")??"az",...e]);return JSON.parse(t.stdout.toString())}i(eZ,"runAzure");function tZ(e){let t=new URL(e instanceof Request?e.url:e);return t.hostname.endsWith(".services.ai.azure.com")&&!t.pathname.startsWith("/models")?JQ:XD}i(tZ,"scopeForRequest");import{createServer as rZ}from"http";var nZ="b1a6c5158156caac821fd1b30253ca8acb52454a48fa744420e41889cb589f82",iZ="https://cloud.digitalocean.com/v1/oauth/authorize",sZ="https://api.digitalocean.com",oZ=`${sZ}/v2/gen-ai`,aZ="https://inference.do-ai.run/v1",Lb=1456,tN="/auth/callback",ZD="/auth/token",uZ=300*1e3,rN="genai:read inference:query",Ks,Jr;function cZ(){let e=crypto.getRandomValues(new Uint8Array(32));return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}i(cZ,"generateState");function lZ(){return`http://localhost:${Lb}${tN}`}i(lZ,"redirectUri");function dZ(e){let t=new URLSearchParams({response_type:"token",client_id:nZ,redirect_uri:lZ(),scope:rN,state:e});return`${iZ}?${t.toString()}`}i(dZ,"buildAuthorizeUrl");async function fZ(){Ks||(Ks=rZ((e,t)=>{let r=new URL(e.url||"/",`http://localhost:${Lb}`);if(e.method==="GET"&&r.pathname===tN){t.writeHead(200,{"Content-Type":"text/html"}),t.end(Mn.bootstrap({tokenPath:ZD,provider:"DigitalOcean"}));return}if(e.method==="POST"&&r.pathname===ZD){let n=[];e.on("data",s=>n.push(s)),e.on("end",()=>{let s=Buffer.concat(n).toString("utf8"),o={};try{o=s?JSON.parse(s):{}}catch{o={}}if(!Jr){t.writeHead(409,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:"no_pending_oauth"}));return}if(o.error){let u=o.error_description||o.error||"OAuth error";Jr.reject(new Error(String(u))),Jr=void 0,t.writeHead(200,{"Content-Type":"application/json"}),t.end(JSON.stringify({ok:!0}));return}if(!o.access_token){Jr.reject(new Error("Missing access_token in callback")),Jr=void 0,t.writeHead(400,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:"missing_access_token"}));return}if(o.state!==Jr.state){Jr.reject(new Error("Invalid state - potential CSRF attack")),Jr=void 0,t.writeHead(400,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:"invalid_state"}));return}let a=parseInt(o.expires_in||"0",10);Jr.resolve({access_token:o.access_token,expires_in:Number.isFinite(a)&&a>0?a:3600*24*30,state:o.state}),Jr=void 0,t.writeHead(200,{"Content-Type":"application/json"}),t.end(JSON.stringify({ok:!0}))});return}t.writeHead(404),t.end("Not found")}),await new Promise((e,t)=>{Ks.listen(Lb,()=>{e()}),Ks.on("error",t)}))}i(fZ,"startOAuthServer");function pZ(){Ks&&(Ks.close(),Ks=void 0)}i(pZ,"stopOAuthServer");function hZ(e){return new Promise((t,r)=>{let n=setTimeout(()=>{Jr&&(Jr=void 0,r(new Error("OAuth callback timeout - authorization took too long")))},3e5);Jr={state:e,resolve:i(s=>{clearTimeout(n),t(s)},"resolve"),reject:i(s=>{clearTimeout(n),r(s)},"reject")}})}i(hZ,"waitForOAuthCallback");async function eN(e){let t=await fetch(`${oZ}/models/routers`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json","User-Agent":`opencode/${ut}`},signal:AbortSignal.timeout(1e4)}).catch(()=>{});return t?t.ok?{ok:!0,routers:(await t.json().catch(()=>{}))?.model_routers??[]}:{ok:!1,status:t.status}:{ok:!1,status:0}}i(eN,"listRouters");function mZ(e,t){let r=`router:${e.name}`;return{id:r,providerID:t,name:e.name,family:"digitalocean-inference-routers",api:{id:r,url:aZ,npm:"@ai-sdk/openai-compatible"},status:"active",headers:{},options:{},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:128e3,output:8192},capabilities:{temperature:!0,reasoning:!1,attachment:!1,toolcall:!0,input:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},output:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},interleaved:!1},release_date:"",variants:{}}}i(mZ,"routerModel");function gZ(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(r=>r&&typeof r.name=="string"?[{name:r.name,uuid:r.uuid,description:r.description}]:[]):[]}catch{return[]}}i(gZ,"parseRoutersJSON");async function nN(e){return{provider:{id:"digitalocean",async models(t,r){let n=t.models;if(r.auth?.type!=="api")return n;let s=r.auth.metadata??{},o=s.oauth_access,a=parseInt(s.oauth_expires||"0",10),u=parseInt(s.routers_fetched_at||"0",10),l=gZ(s.routers),d=Date.now()-u>uZ;if(o&&a>Date.now()&&d){let f=await eN(o);if(f.ok){l=f.routers;let h={...s,routers:JSON.stringify(l.map(S=>({name:S.name,uuid:S.uuid,description:S.description}))),routers_fetched_at:String(Date.now())};await e.client.auth.set({path:{id:"digitalocean"},body:{type:"api",key:r.auth.key,metadata:h}}).catch(()=>{})}else f.status===401||f.status===403||f.status}let m={...n};for(let f of l){let h=`router:${f.name}`;m[h]||(m[h]=mZ(f,"digitalocean"))}return m}},auth:{provider:"digitalocean",methods:[{type:"oauth",label:"Login with DigitalOcean",async authorize(){await fZ();let t=cZ(),r=hZ(t),n=dZ(t);return await gd(n).catch(()=>{}),{url:n,instructions:"Sign in to DigitalOcean in your browser. OpenCode will use your DigitalOcean API token directly for inference and load your Inference Routers. Re-run /connect to refresh routers later.",method:"auto",async callback(){try{let s=await r,o=await eN(s.access_token),a=o.ok?o.routers:[];return o.ok,{type:"success",provider:"digitalocean",key:s.access_token,metadata:{oauth_access:s.access_token,oauth_expires:String(Date.now()+s.expires_in*1e3),oauth_scopes:rN,routers:JSON.stringify(a.map(u=>({name:u.name,uuid:u.uuid,description:u.description}))),routers_fetched_at:String(Date.now())}}}catch{return{type:"failed"}}finally{pZ()}}}}},{type:"api",label:"Paste Model Access Key"}]}}}i(nN,"DigitalOceanAuthPlugin");var Mb="b1a00492-073a-47ea-816f-4c329264a828",oN="https://auth.x.ai/oauth2/token",yZ="https://auth.x.ai/oauth2/device/code",xZ="urn:ietf:params:oauth:grant-type:device_code",bZ="openid profile email offline_access grok-cli:access api:access",EZ=5e3,SZ=1e3,_Z=5e3,vZ=300*1e3,iN=3e3,aN=12e4;function qb(){return{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":`opencode/${ut}`}}i(qb,"authHeaders");function wZ(e,t=aN){if(!e||typeof e!="string")return!1;let r=e.split(".");if(r.length<2)return!1;try{let n=r[1].replace(/-/g,"+").replace(/_/g,"/");for(;n.length%4!==0;)n+="=";let s=JSON.parse(Buffer.from(n,"base64").toString("utf8"));return typeof s?.exp!="number"?!1:s.exp*1e3<=Date.now()+Math.max(0,t)}catch{return!1}}i(wZ,"accessTokenIsExpiring");async function TZ(e,t={}){let r=await fetch(t.tokenUrl??oN,{method:"POST",headers:qb(),body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:Mb}).toString()});if(!r.ok){let n=await r.text().catch(()=>"");throw new Error(`xAI token refresh failed (${r.status})${n?`: ${n}`:""}`)}return r.json()}i(TZ,"refreshAccessToken");async function RZ(e={}){let t=await fetch(e.deviceAuthorizationUrl??yZ,{method:"POST",headers:qb(),body:new URLSearchParams({client_id:Mb,scope:bZ,referrer:"opencode"}).toString()});if(!t.ok){let n=await t.text().catch(()=>"");throw new Error(`xAI device code request failed (${t.status})${n?`: ${n}`:""}`)}let r=await t.json();if(!r.device_code||!r.user_code||!r.verification_uri)throw new Error("xAI device code response is missing device_code / user_code / verification_uri");return r}i(RZ,"requestDeviceCode");async function kZ(e){await new Promise(t=>setTimeout(t,e))}i(kZ,"defaultSleep");function sN(e,t){let r=Number(e);return Number.isFinite(r)&&r>0?r*1e3:t}i(sN,"positiveSecondsToMs");async function AZ(e,t={}){let r=t.sleep??kZ,n=t.now??(()=>Date.now()),s=sN(e.expires_in,vZ),o=n()+s,a=Math.max(sN(e.interval,EZ),SZ);for(;n()<o;){let u=await fetch(t.tokenUrl??oN,{method:"POST",headers:qb(),body:new URLSearchParams({grant_type:xZ,client_id:Mb,device_code:e.device_code}).toString()});if(u.ok)return await u.json();let c=await u.json().catch(()=>({})),l=Math.max(0,o-n());if(c.error==="authorization_pending"){await r(Math.min(a+iN,l));continue}if(c.error==="slow_down"){a+=_Z,await r(Math.min(a+iN,l));continue}if(c.error==="access_denied"||c.error==="authorization_denied")throw new Error("xAI device authorization was denied");if(c.error==="expired_token")throw new Error("xAI device code expired - please re-run login");let d=c.error_description??c.error??"";throw new Error(`xAI device token exchange failed (${u.status})${d?`: ${d}`:""}`)}throw new Error("xAI device authorization timed out")}i(AZ,"pollDeviceCodeToken");async function uN(e,t={}){return{auth:{provider:"xai",async loader(r){if((await r()).type!=="oauth")return{};let s;return{apiKey:qn,async fetch(o,a){let u=await r();if(u.type!=="oauth")return fetch(o,a);if(!u.expires||u.expires-Date.now()<=aN||wZ(u.access)){if(!s){let p=u.refresh;s=TZ(p,t).then(async m=>{let f=Date.now()+(m.expires_in??3600)*1e3,h=m.refresh_token||p;return await e.client.auth.set({path:{id:"xai"},body:{type:"oauth",access:m.access_token,refresh:h,expires:f}}).catch(()=>{}),{access:m.access_token,refresh:h,expires:f}}).finally(()=>{s=void 0})}let d=await s;u={...u,...d}}let l=new Headers(o instanceof Request?o.headers:void 0);if(a?.headers){let d=a.headers instanceof Headers?a.headers.entries():Array.isArray(a.headers)?a.headers:Object.entries(a.headers);for(let[p,m]of d)m!==void 0&&l.set(p,String(m))}return l.set("authorization",`Bearer ${u.access}`),l.set("User-Agent",`opencode/${ut}`),fetch(o,{...a,headers:l})}}},methods:[{label:"SuperGrok Subscription",type:"oauth",authorize:i(async()=>{let r=await RZ(t);return{url:r.verification_uri_complete??r.verification_uri,instructions:`Open ${r.verification_uri} on any device and enter code: ${r.user_code}`,method:"auto",callback:i(async()=>{try{let s=await AZ(r,t);return{type:"success",refresh:s.refresh_token,access:s.access_token,expires:Date.now()+(s.expires_in??3600)*1e3}}catch{return{type:"failed"}}},"callback")}},"authorize")},{label:"Manually enter API Key",type:"api"}]}}}i(uN,"XaiAuthPlugin");async function cN(e){return{"chat.params":i(async(t,r)=>{t.model.api.npm==="@ai-sdk/cerebras"&&r.options.max_completion_tokens!==void 0&&(r.maxOutputTokens=void 0)},"chat.params")}}i(cN,"CerebrasPlugin");import{createServer as OZ}from"http";var Lc="LOCAL_APPLICATION",Fb="127.0.0.1",dN="/",IZ=300*1e3,CZ=12e4,is,fn,Mc;function DZ(e){return e.trim().replace(/^https?:\/\//,"").replace(/\.snowflakecomputing\.com\/?$/,"").replace(/\/+$/,"")}i(DZ,"normalizeAccount");function fN(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";return Array.from(crypto.getRandomValues(new Uint8Array(e))).map(r=>t[r%t.length]).join("")}i(fN,"generateRandomString");function NZ(e){let t=String.fromCharCode(...new Uint8Array(e));return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}i(NZ,"base64UrlEncode");async function PZ(){let e=fN(64),t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return{verifier:e,challenge:NZ(t)}}i(PZ,"generatePKCE");function pN(){if(!Mc)throw new Error("Snowflake OAuth callback server is not running");return`http://${Fb}:${Mc}${dN}`}i(pN,"callbackUrl");function LZ(e){return e?/^[-_A-Za-z0-9]+$/.test(e)?`refresh_token session:role:${e}`:`refresh_token session:role-encoded:${encodeURIComponent(e)}`:"refresh_token"}i(LZ,"oauthScope");function hN(){return{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":`opencode/${ut}`}}i(hN,"authHeaders");function mN(){return`Basic ${Buffer.from(`${Lc}:${Lc}`).toString("base64")}`}i(mN,"authBasicHeader");function MZ(e,t,r,n){let s=LZ(t),o=new URLSearchParams({client_id:Lc,response_type:"code",redirect_uri:pN(),scope:s,state:r,code_challenge:n.challenge,code_challenge_method:"S256"});return`https://${e}.snowflakecomputing.com/oauth/authorize?${o.toString()}`}i(MZ,"buildAuthorizeUrl");async function qZ(e,t,r){let n=await fetch(`https://${e}.snowflakecomputing.com/oauth/token-request`,{method:"POST",headers:{...hN(),Authorization:mN()},body:new URLSearchParams({grant_type:"authorization_code",code:t,redirect_uri:pN(),client_id:Lc,code_verifier:r.verifier}).toString()});if(!n.ok){let o=await n.text().catch(()=>"");throw new Error(`Snowflake token exchange failed (${n.status})${o?`: ${o}`:""}`)}let s=await n.json();if(!s.access_token)throw new Error("Snowflake token response did not include access_token");if(!s.refresh_token)throw new Error("Snowflake token response did not include refresh_token. Ensure integration issues refresh tokens and scope includes refresh_token.");return s}i(qZ,"exchangeCodeForToken");async function lN(e,t){let r=await fetch(`https://${e}.snowflakecomputing.com/oauth/token-request`,{method:"POST",headers:{...hN(),Authorization:mN()},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:t,client_id:Lc}).toString()});if(!r.ok){let s=await r.text().catch(()=>"");throw new Error(`Snowflake token refresh failed (${r.status})${s?`: ${s}`:""}`)}let n=await r.json();if(!n.access_token)throw new Error("Snowflake refresh response did not include access_token");return n}i(lN,"refreshAccessToken");async function FZ(){is||(is=OZ((e,t)=>{let r=e.headers.host||`${Fb}:${Mc??0}`,n=new URL(e.url||"/",`http://${r}`);if(n.pathname!==dN){t.writeHead(404),t.end("Not found");return}let s=n.searchParams.get("state"),o=n.searchParams.get("code"),a=n.searchParams.get("error"),u=n.searchParams.get("error_description");if(!fn||s!==fn.state){let l="Invalid state - potential CSRF attack";fn?.reject(new Error(l)),fn=void 0,t.writeHead(400,{"Content-Type":"text/html"}),t.end(Mn.error(l,{provider:"Snowflake"}));return}let c=fn;if(fn=void 0,a){let l=u||a;c.reject(new Error(l)),t.writeHead(200,{"Content-Type":"text/html"}),t.end(Mn.error(l,{provider:"Snowflake"}));return}if(!o){let l="Missing authorization code";c.reject(new Error(l)),t.writeHead(400,{"Content-Type":"text/html"}),t.end(Mn.error(l,{provider:"Snowflake"}));return}qZ(c.account,o,c.pkce).then(l=>c.resolve(l)).catch(l=>c.reject(l instanceof Error?l:new Error(String(l)))),t.writeHead(200,{"Content-Type":"text/html"}),t.end(Mn.success({provider:"Snowflake"}))}),await new Promise((e,t)=>{is.listen(0,Fb,()=>{let r=is.address();if(!r||typeof r=="string"){t(new Error("Unable to resolve Snowflake OAuth callback port"));return}Mc=r.port,e()}),is.on("error",t)}))}i(FZ,"startOAuthServer");function gN(){is&&(is.close(),is=void 0,Mc=void 0)}i(gN,"stopOAuthServer");function jZ(e,t,r){return fn&&(fn.reject(new Error("Superseded by a newer Snowflake authorize request")),fn=void 0),new Promise((n,s)=>{let o=setTimeout(()=>{fn&&(fn=void 0,gN(),s(new Error("Snowflake OAuth callback timeout - authorization took too long")))},IZ);fn={account:e,state:r,pkce:t,resolve:i(a=>{clearTimeout(o),n(a)},"resolve"),reject:i(a=>{clearTimeout(o),s(a)},"reject")}})}i(jZ,"waitForOAuthCallback");async function yN(e){let t=[{type:"text",key:"account",message:"Snowflake Account Identifier",placeholder:"myorg-myaccount",validate:i(r=>r&&r.trim().length>0?void 0:"Required","validate")},{type:"text",key:"role",message:"Snowflake Role (optional)",placeholder:"PUBLIC"}];return{auth:{provider:"snowflake-cortex",async loader(r,n){let s=await r();if(s.type!=="oauth")return{};let o,a=s;if(a.accountId&&a.refresh&&a.expires&&a.expires<=Date.now())try{let u=await lN(a.accountId,a.refresh),c=u.refresh_token||a.refresh,l=Date.now()+(u.expires_in??600)*1e3;await e.client.auth.set({path:{id:"snowflake-cortex"},body:{type:"oauth",access:u.access_token,refresh:c,expires:l,...a.accountId&&{accountId:a.accountId}}}).catch(()=>{})}catch{}return{apiKey:qn,async fetch(u,c){let l=await r();if(l.type!=="oauth")return fetch(u,c);let d=l;if(!d.accountId)throw new Error("Snowflake OAuth auth is missing accountId");let p=d.accountId,m=i(async()=>{if(!o){let T=d.refresh;o=lN(p,T).then(async x=>{let b=x.refresh_token||T,k=Date.now()+(x.expires_in??600)*1e3;return await e.client.auth.set({path:{id:"snowflake-cortex"},body:{type:"oauth",access:x.access_token,refresh:b,expires:k,...p&&{accountId:p}}}).catch(()=>{}),{access:x.access_token,refresh:b,expires:k}}).finally(()=>{o=void 0})}let v=await o;d={...d,...v}},"refresh"),f=i(()=>{let v=new Headers(u instanceof Request?u.headers:void 0);if(c?.headers){let x=c.headers instanceof Headers?c.headers.entries():Array.isArray(c.headers)?c.headers:Object.entries(c.headers);for(let[b,k]of x)k!==void 0&&v.set(b,String(k))}v.set("authorization",`Bearer ${d.access}`),v.set("User-Agent",`opencode/${ut}`);let T=c?.body;if(T&&typeof T=="string")try{let x=JSON.parse(T);"max_tokens"in x&&(x.max_completion_tokens=x.max_tokens,delete x.max_tokens,T=JSON.stringify(x))}catch{}return{...c,headers:v,body:T}},"prepareRequest"),h=i(async v=>{if(!v.ok&&v.status===400)try{let T=await v.clone().json();if(String(T.message||T.error||"").toLowerCase().includes("conversation complete"))return new Response(JSON.stringify({choices:[{finish_reason:"stop",message:{content:"",role:"assistant"}}]}),{status:200,headers:new Headers({"content-type":"application/json"})})}catch{}if(v.body&&v.headers.get("content-type")?.includes("text/event-stream")){let T=v.body.getReader(),x=new TextEncoder,b=new TextDecoder,k=new ReadableStream({async pull(C){let{done:R,value:A}=await T.read();if(R){C.close();return}let N=b.decode(A,{stream:!0});C.enqueue(x.encode(N.replace(/"role"\s*:\s*""/g,'"role":"assistant"')))},cancel(){T.cancel()}});return new Response(k,{headers:v.headers,status:v.status})}return v},"transformResponse");(!d.expires||!d.access||d.expires-Date.now()<=CZ)&&await m();let y=await fetch(u,f());return y.status===401?(await m(),h(await fetch(u,f()))):h(y)}}},methods:[{type:"oauth",label:"Login with Snowflake (External Browser)",prompts:t,async authorize(r={}){let n=DZ(r.account||"");if(!n)throw new Error("Snowflake account is required");await FZ();let s=await PZ(),o=fN(64),a=(r.role||"").trim()||void 0,u=MZ(n,a,o,s),c=jZ(n,s,o);return await gd(u).catch(()=>{}),{url:u,instructions:"Complete Snowflake sign-in in your browser. OpenCode will capture the OAuth callback and store the bearer token automatically.",method:"auto",async callback(){try{let l=await c;return{type:"success",refresh:l.refresh_token,access:l.access_token,expires:Date.now()+(l.expires_in??600)*1e3,accountId:n}}catch{return{type:"failed"}}finally{gN()}}}}},{type:"api",label:"Paste PAT or bearer token manually",prompts:t.filter(r=>r.key==="account")}]}}}i(yN,"SnowflakeCortexAuthPlugin");var jb;(u=>{function e(c){return!c||typeof c!="object"?"":"message"in c&&typeof c.message=="string"?c.message:""}i(e,"errorMessage");function t(c,l){return c!=="install"?!1:e(l).includes("missing package.json or index file")}i(t,"isRetryableResolveError");function r(c){let l=Uh.pluginSpecifier(c);return{spec:l,options:Uh.pluginOptions(c),deprecated:U_(l)}}i(r,"plan");async function n(c,l){let d="";try{d=await B_(c.spec)}catch(m){return{ok:!1,stage:"install",error:m}}if(!d)return{ok:!1,stage:"install",error:new Error(`Plugin ${c.spec} target is empty`)};let p;try{p=await V_(c.spec,d,l)}catch(m){return{ok:!1,stage:"entry",error:m}}if(!p.entry)return{ok:!1,stage:"missing",value:{...c,source:p.source,target:p.target,pkg:p.pkg,message:`Plugin ${c.spec} does not expose a ${l} entrypoint`}};if(p.source==="npm")try{await H_(p.target,ut,p.pkg)}catch(m){return{ok:!1,stage:"compatibility",error:m}}return{ok:!0,value:{...c,source:p.source,target:p.target,entry:p.entry,pkg:p.pkg}}}u.resolve=n,i(n,"resolve");async function s(c){let l;try{l=await import(c.entry)}catch(d){return{ok:!1,error:d}}return l?{ok:!0,value:{...c,mod:l}}:{ok:!1,error:new Error(`Plugin ${c.spec} module is empty`)}}u.load=s,i(s,"load");async function o(c,l,d,p,m,f){let h=c.plan,S=jh(h.spec)==="file";if(h.deprecated)return{retry:!1};f?.start?.(c,d);let y=await n(h,l);if(!y.ok){if(y.stage==="missing"){if(m){let x=await m(y.value,c.origin,d);if(x!==void 0)return{value:x,retry:!1}}return f?.missing?.(c,d,y.value.message,y.value),{retry:!1}}return f?.error?.(c,d,y.stage,y.error),{retry:S&&t(y.stage,y.error)}}let v=await s(y.value);return v.ok?p?{value:await p(v.value,c.origin,d),retry:!1}:{value:v.value,retry:!1}:(f?.error?.(c,d,"load",v.error,y.value),{retry:!1})}i(o,"attempt");async function a(c){let l=c.items.map(f=>({origin:f,plan:r(f.spec)})),d=[];for(let f of l)d.push(o(f,c.kind,!1,c.finish,c.missing,c.report));let p=await Promise.all(d);if(c.wait){let f;for(let h=0;h<l.length;h++){let S=p[h];if(S?.value!==void 0||S?.retry!==!0)continue;let y=l[h];!y||jh(y.plan.spec)!=="file"||(f??=c.wait(),await f,p[h]=await o(y,c.kind,!0,c.finish,c.missing,c.report))}}let m=[];for(let f of p)f.value!==void 0&&m.push(f.value);return m}u.loadExternal=a,i(a,"loadExternal")})(jb||={});var Ub=E.Struct({id:w_.ID,type:E.String,name:E.String,branch:E.optional(E.NullOr(E.String)),directory:E.optional(E.NullOr(E.String)),extra:E.optional(E.NullOr(E.Unknown)),projectID:ud.ID}).annotate({identifier:"Workspace"}),Aye=E.Struct(t_.omit(Ub.fields,["id"])).annotate({identifier:"WorkspaceListedInfo"}),Oye=E.Struct({type:E.String,name:E.String,description:E.String});var UZ=E.Struct({name:Ub.fields.name,branch:E.optional(E.NullOr(E.String)),directory:E.String}),$b=E.decodeUnknownSync(UZ);async function Mp(){let[{AppRuntime:e},{Worktree:t}]=await Promise.all([import("./app-runtime-LDQWNGWP.js"),import("./worktree-32M5MTFE.js")]);return{AppRuntime:e,Worktree:t}}i(Mp,"loadWorktree");function xN(e){if(!e?.instance)throw new Error("Worktree adapter requires an instance context");return e.instance}i(xN,"requireInstance");var qp=i((e,t)=>e.pipe(g.provideService(q_,xN(t)),g.provideService(F_,t?.workspaceID)),"provideContext"),bN={name:"Worktree",description:"Create a git worktree",async configure(e,t){let{AppRuntime:r,Worktree:n}=await Mp(),s=await r.runPromise(qp(n.Service.use(o=>o.makeWorktreeInfo({detached:!0})),t));return{...e,name:s.name,directory:s.directory}},async create(e,t,r,n){let{AppRuntime:s,Worktree:o}=await Mp(),a=$b(e);await s.runPromise(qp(o.Service.use(u=>u.createFromInfo({name:a.name,directory:a.directory,...a.branch?{branch:a.branch}:{}})),n))},async list(e){let{AppRuntime:t,Worktree:r}=await Mp(),n=xN(e);return(await t.runPromise(qp(r.Service.use(s=>s.list()),e))).map(s=>({type:"worktree",name:s.name,branch:s.branch,directory:s.directory,projectID:n.project.id}))},async remove(e,t){let{AppRuntime:r,Worktree:n}=await Mp(),s=$b(e);await r.runPromise(qp(n.Service.use(o=>o.remove({directory:s.directory})),t))},target(e){return{type:"local",directory:$b(e).directory}}};var EN={worktree:bN},Fp=new Map;function qye(e,t){let r=Fp.get(e)?.get(t);if(r)return r;let n=EN[t];if(n)return n;throw new Error(`Unknown workspace adapter: ${t}`)}i(qye,"getAdapter");function Fye(e){return $Z(e).map(([t,r])=>({type:t,name:r.name,description:r.description}))}i(Fye,"listAdapters");function $Z(e){let t=new Map(Object.entries(EN));for(let[r,n]of Fp.get(e)?.entries()??[])t.set(r,n);return[...t.entries()]}i($Z,"registeredAdapters");function SN(e,t,r){let n=Fp.get(e)??new Map;n.set(t,r),Fp.set(e,n)}i(SN,"registerAdapter");var xa=class extends Oe.Service()("@opencode/Plugin"){static{i(this,"Service")}};function vN(e){return e.enabled||["local","dev","beta"].includes(e.channel??c_)}i(vN,"experimentalWebSocketsEnabled");function HZ(e){return[t=>A1(t,{experimentalWebSockets:vN({enabled:e.experimentalWebSockets})}),L1,M1,WD,Lp,JD,YD,QD,nN,yN,uN,cN]}i(HZ,"internalPlugins");function _N(e){return typeof e=="function"}i(_N,"isServerPlugin");function BZ(e){if(_N(e))return e;if(!(!e||typeof e!="object"||!("server"in e))&&_N(e.server))return e.server}i(BZ,"getServerPlugin");function VZ(e){let t=new Set,r=[];for(let[n,s]of Object.entries(e)){if(n==="__esModule"||n==="__name"||n==="__export"||n==="module.exports"||t.has(s))continue;t.add(s);let o=s;o&&typeof o=="object"&&"default"in o&&typeof o.default=="function"&&(o=o.default);let a=BZ(o);a&&r.push(a)}if(r.length===0)throw new TypeError("Plugin export is not a function");return r}i(VZ,"getLegacyPlugins");async function zZ(e,t,r){let n=G_(e.mod,e.spec,"server","detect");if(n){await W_(e.source,e.spec,e.target,z_(n.id,e.spec),e.pkg),r.push(await n.server(t,e.options));return}for(let s of VZ(e.mod))r.push(await s(t,e.options))}i(zZ,"applyPlugin");var GZ=Z.effect(xa,g.gen(function*(){let e=yield*$h.Service,t=yield*En.Service,r=yield*Po.Service,n=yield*Dt.make(g.fn("Plugin.state")(function*(u){let c=[],l=yield*yd.make();function d(x){l.fork(e.publish(Q_.Event.Error,{error:new T_.Unknown({message:x}).toObject()}))}i(d,"publishPluginError");let{Server:p}=yield*g.promise(()=>import("./server-LVIHYOCY.js")),m=p.url,f=Sm({baseUrl:m?.toString()??"http://localhost:4096",directory:u.directory,headers:vu.headers(),...m?{}:{fetch:i(async(...x)=>p.Default().app.fetch(...x),"fetch")}}),h=yield*t.get(),S={client:f,project:u.project,worktree:u.worktree,directory:u.directory,experimental_workspace:{register(x,b){SN(u.project.id,x,b)}},get serverUrl(){return p.url??new URL("http://localhost:4096")},$:typeof Bun>"u"?void 0:Bun.$};for(let x of r.disableDefaultPlugins?[]:HZ(r)){let b=yield*g.tryPromise({try:i(()=>x(S),"try"),catch:si}).pipe(g.tapError(k=>g.logError("failed to load internal plugin",{name:x.name,error:k})),g.option);b._tag==="Some"&&c.push(b.value)}let y=r.pure?[]:h.plugin_origins??[];r.pure&&h.plugin_origins?.length,y.length&&(yield*t.waitForDependencies());let v=yield*g.promise(()=>jb.loadExternal({items:y,kind:"server",report:{start(x){},missing(x,b,k){},error(x,b,k,C,R){let A=x.plan.spec,N=C instanceof Error?C.cause??C:C,D=k==="load"?si(C):si(N);if(k==="install"){let O=$_(A);d(`Failed to install plugin ${O.pkg}@${O.version}: ${D}`);return}if(k==="compatibility"){d(`Plugin ${A} skipped: ${D}`);return}if(k==="entry"){d(`Failed to load plugin ${A}: ${D}`);return}d(`Failed to load plugin ${A}: ${D}`)}}}));for(let x of v)x&&(yield*g.tryPromise({try:i(()=>zZ(x,S,c),"try"),catch:i(b=>si(b),"catch")}).pipe(g.tapError(b=>g.logError("failed to load plugin",{path:x.spec,error:b})),g.catch(()=>g.void)));for(let x of c)yield*g.tryPromise({try:i(()=>Promise.resolve(x.config?.(h)),"try"),catch:si}).pipe(g.tapError(b=>g.logError("plugin config hook failed",{error:b})),g.ignore);let T=yield*e.listen(x=>x.location?.directory!==u.directory?g.void:g.sync(()=>{for(let b of c)b.event?.({event:{id:x.id,type:x.type,properties:x.data}})}));return yield*g.addFinalizer(()=>T),yield*g.addFinalizer(()=>g.forEach(c,x=>g.tryPromise({try:i(()=>Promise.resolve(x.dispose?.()),"try"),catch:si}).pipe(g.tapError(b=>g.logError("plugin dispose hook failed",{error:b})),g.ignore),{discard:!0})),{hooks:c}})),s=g.fn("Plugin.trigger")(function*(u,c,l){if(!u)return l;let d=yield*Dt.get(n);for(let p of d.hooks){let m=p[u];m&&(yield*g.promise(async()=>m(c,l)))}return l}),o=g.fn("Plugin.list")(function*(){return(yield*Dt.get(n)).hooks}),a=g.fn("Plugin.init")(function*(){yield*Dt.get(n)});return xa.of({trigger:s,list:o,init:a})})),WZ=Lr.make({service:xa,layer:GZ,deps:[$h.node,En.node,Po.node]});import Lee from"path";import{pathToFileURL as Mee}from"url";var qc={};me(qc,{EffectPromise:()=>qc,refineRejection:()=>KZ});function KZ(e,t){return g.tryPromise(e).pipe(g.catch(r=>{let n=dr.isUnknownError(r)?r.cause:r,s=t(n);return s!==void 0?g.fail(s):g.die(n)}))}i(KZ,"refineRejection");var Rn={};me(Rn,{OUTPUT_TOKEN_MAX:()=>$p,ProviderTransform:()=>Rn,cacheControlFor:()=>Wb,cacheWarmForMs:()=>eee,maxOutputTokens:()=>vee,message:()=>tee,nearestVariant:()=>yee,options:()=>bee,providerOptions:()=>_ee,reasoningVariants:()=>Tee,sanitizeSurrogates:()=>ss,schema:()=>wee,smallOptions:()=>Eee,temperature:()=>nee,topK:()=>see,topP:()=>iee,variants:()=>xee});function IN(e){if(e.startsWith("image/"))return"image";if(e.startsWith("audio/"))return"audio";if(e.startsWith("video/"))return"video";if(e==="application/pdf")return"pdf"}i(IN,"mimeToModality");var $p=32e3,Wn=["reasoning.encrypted_content"];function ss(e){return e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"\uFFFD")}i(ss,"sanitizeSurrogates");function zb(e){if([e.providerID,e.api.id].some(r=>{let n=r.toLowerCase();return n.includes("kimi")||n.includes("moonshot")}))return!0;let t=e.api.url.toLowerCase();return["api.kimi.com","api.moonshot.ai","api.moonshot.cn","api.moonshotai.cn"].some(r=>t.includes(r))}i(zb,"isKimiFamily");function Gb(e){switch(e){case"@ai-sdk/github-copilot":return"copilot";case"@ai-sdk/azure":return"azure";case"@ai-sdk/openai":return"openai";case"@ai-sdk/amazon-bedrock/mantle":return"openai";case"@ai-sdk/amazon-bedrock":return"bedrock";case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return"anthropic";case"@ai-sdk/google-vertex":return"vertex";case"@ai-sdk/google":return"google";case"@ai-sdk/alibaba":return"alibaba";case"@ai-sdk/cerebras":return"cerebras";case"@ai-sdk/cohere":return"cohere";case"@ai-sdk/deepinfra":return"deepinfra";case"@ai-sdk/groq":return"groq";case"@ai-sdk/mistral":return"mistral";case"@ai-sdk/perplexity":return"perplexity";case"@ai-sdk/togetherai":return"togetherai";case"@ai-sdk/vercel":return"vercel";case"@ai-sdk/xai":return"xai";case"venice-ai-sdk-provider":return"venice";case"@ai-sdk/gateway":return"gateway";case"@openrouter/ai-sdk-provider":return"openrouter";case"merge-gateway-ai-sdk-provider":return"mergeGateway";case"ai-gateway-provider":return"openaiCompatible"}}i(Gb,"sdkKey");function JZ(e,t,r){let n=i(o=>((o.output.type==="text"||o.output.type==="error-text")&&(o.output.value=ss(o.output.value)),o.output.type==="content"&&(o.output.value=o.output.value.map(a=>(a.type==="text"&&(a.text=ss(a.text)),a))),o),"sanitizeToolResultOutput");if(e=e.map(o=>{switch(o.role){case"tool":return Array.isArray(o.content)&&(o.content=o.content.map(a=>a.type==="tool-result"?n(a):a)),o;case"system":return o.content=ss(o.content),o;case"user":return typeof o.content=="string"?o.content=ss(o.content):o.content=o.content.map(a=>(a.type==="text"&&(a.text=ss(a.text)),a)),o;case"assistant":return typeof o.content=="string"?o.content=ss(o.content):o.content=o.content.map(a=>((a.type==="text"||a.type==="reasoning")&&(a.text=ss(a.text)),a.type==="tool-result"?n(a):a)),o}}),t.api.npm==="@ai-sdk/anthropic"&&(e=e.map(o=>{if(typeof o.content=="string")return o.content===""?void 0:o;if(!Array.isArray(o.content))return o;let a=o.content.filter(u=>u.type==="text"?u.text!=="":u.type==="reasoning"?u.text.trim().length>0||u.providerOptions?.anthropic?.signature!=null||u.providerOptions?.anthropic?.redactedData!=null:!0);if(a.length!==0)return{...o,content:a}}).filter(o=>o!==void 0&&o.content!=="")),t.api.npm==="@ai-sdk/amazon-bedrock"&&(e=e.map(o=>{if(typeof o.content=="string")return o.content===""?void 0:o;if(!Array.isArray(o.content))return o;let a=o.content.filter(u=>{if(u.type==="text")return u.text!=="";if(u.type==="reasoning"){let c=u.providerOptions?.[t.providerID]??u.providerOptions?.bedrock;return c?.signature!=null||c?.redactedContent!=null||c?.redactedData!=null}return!0});if(a.length!==0)return{...o,content:a}}).filter(o=>o!==void 0&&o.content!=="")),t.api.id.includes("claude")){let o=i(a=>a.replace(/[^a-zA-Z0-9_-]/g,"_"),"scrub");e=e.map(a=>a.role==="assistant"&&Array.isArray(a.content)?{...a,content:a.content.map(u=>u.type==="tool-call"||u.type==="tool-result"?{...u,toolCallId:o(u.toolCallId)}:u)}:a.role==="tool"&&Array.isArray(a.content)?{...a,content:a.content.map(u=>u.type==="tool-result"?{...u,toolCallId:o(u.toolCallId)}:u)}:a)}let s=t.api.id.toLowerCase();if(t.providerID==="mistral"||["mistral","devstral","codestral","pixtral","mixtral"].some(o=>s.includes(o))){let o=i(u=>u.replace(/[^a-zA-Z0-9]/g,"").substring(0,9).padEnd(9,"0"),"scrub"),a=[];for(let u=0;u<e.length;u++){let c=e[u],l=e[u+1];c.role==="assistant"&&Array.isArray(c.content)&&(c.content=c.content.map(d=>d.type==="tool-call"||d.type==="tool-result"?{...d,toolCallId:o(d.toolCallId)}:d)),c.role==="tool"&&Array.isArray(c.content)&&(c.content=c.content.map(d=>d.type==="tool-result"?{...d,toolCallId:o(d.toolCallId)}:d)),a.push(c),c.role==="tool"&&l?.role==="user"&&a.push({role:"assistant",content:[{type:"text",text:"Done."}]})}return a}if(t.api.id.toLowerCase().includes("deepseek")&&(e=e.map(o=>o.role!=="assistant"?o:Array.isArray(o.content)?o.content.some(a=>a.type==="reasoning")?o:{...o,content:[...o.content,{type:"reasoning",text:""}]}:{...o,content:[...o.content?[{type:"text",text:o.content}]:[],{type:"reasoning",text:""}]})),typeof t.capabilities.interleaved=="object"&&t.capabilities.interleaved.field&&t.api.npm!=="@openrouter/ai-sdk-provider"){let o=t.capabilities.interleaved.field;return e.map(a=>{if(a.role==="assistant"&&Array.isArray(a.content)){let c=a.content.filter(d=>d.type==="reasoning").map(d=>d.text).join(""),l=a.content.filter(d=>d.type!=="reasoning");return{...a,content:l,providerOptions:{...a.providerOptions,openaiCompatible:{...a.providerOptions?.openaiCompatible,[o]:c}}}}return a})}return e}i(JZ,"normalizeMessages");function Wb(e,t){return e==="message"&&t==="5m"?{type:"ephemeral"}:{type:"ephemeral",ttl:"1h"}}i(Wb,"cacheControlFor");function YZ(e,t,r,n="all"){if(n==="none")return e;let s=e.filter(u=>u.role==="system").slice(0,2),o=e.filter(u=>u.role!=="system"),a=(n==="history"?o.slice(0,-1):o).slice(-2);for(let u of L_([...s,...a]))XZ(u,t,Wb(u.role==="system"?"system":"message",r));return e}i(YZ,"applyCaching");function XZ(e,t,r){let n={anthropic:{cacheControl:r},openrouter:{cacheControl:{type:"ephemeral"}},bedrock:{cachePoint:{type:"default"}},openaiCompatible:{cache_control:{type:"ephemeral"}},copilot:{copilot_cache_control:{type:"ephemeral"}},alibaba:{cacheControl:{type:"ephemeral"}}};if(!(t.providerID==="anthropic"||t.providerID.includes("bedrock")||t.api.npm==="@ai-sdk/amazon-bedrock")&&Array.isArray(e.content)&&e.content.length>0){let a=e.content[e.content.length-1];if(a&&typeof a=="object"&&a.type!=="tool-approval-request"&&a.type!=="tool-approval-response"){a.providerOptions=Ar(a.providerOptions??{},n);return}}e.providerOptions=Ar(e.providerOptions??{},n)}i(XZ,"applyCachePoint");function QZ(e,t){return e.map(r=>{if(r.role==="tool"&&Array.isArray(r.content))return ZZ(r,t);if(r.role!=="user"||!Array.isArray(r.content))return r;let n=r.content.map(s=>{if(s.type!=="file"&&s.type!=="image")return s;if(s.type==="image"){let l=String(s.image);if(l.startsWith("data:")){let d=l.match(/^data:([^;]+);base64,(.*)$/);if(d&&(!d[2]||d[2].length===0))return{type:"text",text:"ERROR: Image file is empty or corrupted. Please provide a valid image."}}}let o=s.type==="image"?String(s.image).split(";")[0].replace("data:",""):s.mediaType,a=s.type==="file"?s.filename:void 0,u=IN(o);return!u||t.capabilities.input[u]?s:{type:"text",text:`ERROR: Cannot read ${a?`"${a}"`:u} (this model does not support ${u} input). Inform the user.`}});return{...r,content:n}})}i(QZ,"unsupportedParts");function ZZ(e,t){let r=!1,n=e.content.map(s=>{if(s?.type!=="tool-result"||s.output?.type!=="content"||!Array.isArray(s.output.value))return s;let o=s.output.value.map(a=>{if(!a||a.type!=="media"&&a.type!=="file-data"&&a.type!=="image-data")return a;let u=typeof a.mediaType=="string"?IN(a.mediaType):void 0;if(!u||t.capabilities.input[u])return a;r=!0;let c=u==="pdf"?" Use read_files on the same path for the PDF's text.":"";return{type:"text",text:`NOTE: ${s.toolName??"the tool"} returned a ${u==="pdf"?"PDF":u} that this model cannot take as input, so it was left out.${c}`}});return{...s,output:{...s.output,value:o}}});return r?{...e,content:n}:e}i(ZZ,"unsupportedToolMedia");function wN(e,t){return e.map(r=>Array.isArray(r.content)?{...r,providerOptions:t(r.providerOptions),content:r.content.map(n=>n.type==="tool-approval-request"||n.type==="tool-approval-response"?n:{...n,providerOptions:t(n.providerOptions)})}:{...r,providerOptions:t(r.providerOptions)})}i(wN,"mapProviderOptions");function CN(e){return(e.providerID==="anthropic"||e.providerID==="google-vertex-anthropic"||e.api.id.includes("anthropic")||e.api.id.includes("claude")||e.id.includes("anthropic")||e.id.includes("claude")||e.api.npm==="@ai-sdk/anthropic"||e.api.npm==="@ai-sdk/alibaba")&&e.api.npm!=="@ai-sdk/gateway"}i(CN,"cachesByPoints");var jp=6e4;function eee(e,t){let r=CN(e)?Wb("message",t).ttl==="1h"?60*jp:5*jp:e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/azure"?60*jp:void 0;if(r!==void 0)return r-Math.min(5*jp,r/10)}i(eee,"cacheWarmForMs");function tee(e,t,r,n={}){e=QZ(e,t),e=JZ(e,t,r);let s=r.cacheControl!==void 0&&(t.api.npm==="@ai-sdk/anthropic"||t.api.npm==="@ai-sdk/google-vertex/anthropic");CN(t)&&!s&&(e=YZ(e,t,n.messageCacheTtl,n.points));let o=Gb(t.api.npm);return o&&o!==t.providerID&&(e=wN(e,i(u=>{if(!u||!(t.providerID in u))return u;let c={...u};return c[o]=c[t.providerID],delete c[t.providerID],c},"remap"))),r.store!==!0&&o&&["@ai-sdk/openai","@ai-sdk/azure","@ai-sdk/amazon-bedrock/mantle","@ai-sdk/github-copilot"].includes(t.api.npm)&&(e=wN(e,a=>{if(!a?.[o]||!("itemId"in a[o]))return a;let u={...a[o]};return delete u.itemId,{...a,[o]:u}})),e}i(tee,"message");var DN=/gemini-2[.-]5(?:[.-]|$)/i,ree=/gemini-(?:(?:flash|pro)-)?[12](?:[.-]|$)/i,Kb=[DN,/gemini-3-(?:flash|pro)(?:[.-]|$)/,/gemini-3[.-]1(?:[.-]|$)/,/gemini-3[.-]5-flash(?!-lite)(?:[.-]|$)/];function nee(e){let t=e.api.id.toLowerCase();if(t.includes("north-mini-code"))return 1;if(!t.includes("claude")){if(t.includes("gemini"))return Kb.some(r=>r.test(t))?1:void 0;if(t.includes("glm-4.6")||t.includes("glm-4.7")||t.includes("minimax-m2"))return 1;if(t.includes("kimi-k2"))return["thinking","k2.","k2p","k2-5"].some(r=>t.includes(r))?1:.6}}i(nee,"temperature");function iee(e){let t=e.api.id.toLowerCase();if(t.includes("gemini"))return Kb.some(r=>r.test(t))?.95:void 0;if(["minimax-m2","kimi-k2.5","kimi-k2p5","kimi-k2-5"].some(r=>t.includes(r))||["deepseek-v4-flash-0731","deepseek-v4-flash:0731"].some(r=>t.includes(r))||t.includes("deepseek-v4-flash")&&(e.providerID==="deepseek"||e.providerID.startsWith("opencode")))return .95}i(iee,"topP");function see(e){let t=e.api.id.toLowerCase();if(t.includes("minimax-m2"))return["m2.","m25","m21"].some(r=>t.includes(r))?40:20;if(t.includes("gemini"))return Kb.some(r=>r.test(t))?64:void 0}i(see,"topK");var $r=["low","medium","high"],NN=["none","minimal",...$r,"xhigh"],PN=["none",...$r],oee=[...PN,"xhigh"],LN=["high"],aee=["medium","high","xhigh"],uee=["medium"],MN=[...$r,"xhigh"],cee=["none",...MN],lee="2025-11-13",dee="2025-12-04",Jb=/(?:^|\/)gpt-5(?:[.-]|$)/,fee=/(?:^|\/)gpt-5[.-](\d+)(?:[.-]|$)/,qN=/(?:^|\/)gpt-5[.-]?pro(?:[.-]|$)/,pee=/(?:^|\/)gpt-5[.-]\d+[.-]pro(?:[.-]|$)/;function Yb(e){return Number(fee.exec(e)?.[1])||void 0}i(Yb,"gpt5Version");function FN(e){if(pee.test(e))return aee;let t=Yb(e);if(t!==void 0)return t===1?PN:oee}i(FN,"versionedGpt5ReasoningEfforts");function jN(e){if(!Jb.test(e)||!e.includes("codex"))return;let t=Yb(e);return t!==void 0&&t>=3?cee:e.includes("codex-max")||t!==void 0&&t>=2?MN:$r}i(jN,"gpt5CodexReasoningEfforts");function UN(e){if(!(!Jb.test(e)||!e.includes("-chat")))return Yb(e)===void 0?[]:uee}i(UN,"gpt5ChatReasoningEfforts");function Up(e,t){let r=e.toLowerCase();if(r.includes("deep-research"))return["medium"];let n=UN(r);if(n)return n;if(qN.test(r))return LN;let s=jN(r);if(s)return s;let o=FN(r);if(o)return o;let a=[...$r];return Jb.test(r)&&a.unshift("minimal"),t>=lee&&a.unshift("none"),t>=dee&&a.push("xhigh"),a}i(Up,"openaiReasoningEfforts");function TN(e){let t=e.toLowerCase(),r=UN(t);return r||(qN.test(t)?LN:jN(t)??FN(t)??NN)}i(TN,"openaiCompatibleReasoningEfforts");function $N(e){if(!e.toLowerCase().includes("claude-"))return!1;let t=/claude-(?:[a-z]+-)?(\d+)(?:[.-](\d{1,2}))?(?:[.@-]|$)/i.exec(e);if(!t)return!0;let r=Number(t[1]),n=Number(t[2]??0);return r>4||r===4&&n>=7}i($N,"anthropicUsesModernAdaptiveThinking");function Xb(e){return["opus-4-5","opus-4.5"].some(t=>e.includes(t))}i(Xb,"anthropicOpus45");function Qb(e){return $N(e)?["low","medium","high","xhigh","max"]:["opus-4-6","opus-4.6","4-6-opus","4.6-opus","sonnet-4-6","sonnet-4.6","4-6-sonnet","4.6-sonnet"].some(t=>e.includes(t))?["low","medium","high","max"]:null}i(Qb,"anthropicAdaptiveEfforts");function Zb(e){return $N(e)}i(Zb,"anthropicOmitsThinking");function hee(e){let t=/claude-(?:([a-z]+)-)?(\d+)(?:[.-](\d{1,2}))?(?:-([a-z]+))?(?:[.@-]|$)/i.exec(e);if(!t)return!1;let r=Number(t[2]),n=Number(t[3]??0);return r===5&&n===1&&(t[1]??t[4])?.toLowerCase()==="mythos"?!1:r>5||r===5&&n>=1}i(hee,"anthropicBindsThinking");var RN={prefixMismatchBehavior:"drop_block"};function mee(e,t){let r=Gb(e.api.npm),n=r==="bedrock"?"reasoningConfig":r==="anthropic"?"thinking":void 0;if(n&&t[n]?.blockBinding===!1){let s={...t,[n]:{...t[n]}};return delete s[n].blockBinding,Object.keys(s[n]).length===0&&delete s[n],s}if(!hee(e.api.id))return t;switch(e.api.npm){case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":{let s=t.thinking??{type:"adaptive"};return s.type!=="adaptive"&&s.type!=="enabled"||s.blockBinding!==void 0?t:{...t,thinking:{...s,blockBinding:RN}}}case"@ai-sdk/amazon-bedrock":{let s=t.reasoningConfig??{type:"adaptive"};return s.type!=="adaptive"&&s.type!=="enabled"||s.blockBinding!==void 0?t:{...t,reasoningConfig:{...s,blockBinding:RN}}}}return t}i(mee,"anthropicBlockBinding");function Vb(e){return ree.test(e)}i(Vb,"isLegacyGemini");function jc(e){return DN.test(e)}i(jc,"isGemini25");function gee(e){let t=e.toLowerCase();return t.includes("gemma")?["minimal","high"]:Vb(t)?["low","high"]:t.includes("flash-image")?["minimal","high"]:t.includes("pro-image")?["high"]:t.includes("flash")?["minimal","low","medium","high"]:["low","medium","high"]}i(gee,"googleThinkingLevelEfforts");function HN(e){let t=e.toLowerCase();return jc(t)&&t.includes("pro")&&!t.includes("flash")?32768:24576}i(HN,"googleThinkingBudgetMax");function Fc(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{modelParams:r}]))}i(Fc,"wrapInSapModelParams");function kN(e){let t=e.api.id.toLowerCase();return jc(t)?{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16e3}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:HN(t)}}}:Object.fromEntries(gee(t).map(r=>[r,{thinkingConfig:{includeThoughts:!0,thinkingLevel:r}}]))}i(kN,"googleThinkingVariants");var Hb=["none","minimal","low","medium","high","xhigh","max"];function yee(e,t){if(!e||t.length===0)return;if(t.includes(e))return e;let r=Hb.indexOf(e);if(r<0)return;let n,s=1/0;for(let o of t){let a=Hb.indexOf(o);if(a<0)continue;let u=Math.abs(a-r);(u<s||u===s&&n!==void 0&&a<Hb.indexOf(n))&&(n=o,s=u)}return n}i(yee,"nearestVariant");function xee(e){if(!e.capabilities.reasoning)return{};let t=e.id.toLowerCase(),r=["glm-5.2","glm-5-2","glm-5p2"].some(o=>t.includes(o)||e.api.id.toLowerCase().includes(o));if(e.api.id.toLowerCase().includes("minimax-m3")&&["@ai-sdk/anthropic","@ai-sdk/openai-compatible"].includes(e.api.npm))return["nvidia","lilac"].includes(e.providerID)?{none:{chat_template_kwargs:{thinking_mode:"disabled"}},thinking:{chat_template_kwargs:{thinking_mode:"enabled"}}}:{none:{thinking:{type:"disabled"}},thinking:{thinking:{type:"adaptive"}}};let n=Zb(e.api.id),s=Qb(e.api.id);if(r&&e.api.npm==="@openrouter/ai-sdk-provider")return{high:{reasoning:{effort:"high"}},xhigh:{reasoning:{effort:"xhigh"}}};if(r&&e.api.npm==="@ai-sdk/openai-compatible")return{high:{reasoningEffort:"high"},max:{reasoningEffort:"max"}};if(r&&e.api.npm==="@ai-sdk/anthropic")return{high:{effort:"high"},max:{effort:"max"}};if(zb(e)&&["@ai-sdk/anthropic","@ai-sdk/google-vertex/anthropic"].includes(e.api.npm))return Object.fromEntries(["low","medium","high","xhigh","max"].map(o=>[o,{thinking:{type:"adaptive",display:"summarized"},effort:o}]));if(t.includes("deepseek-chat")||t.includes("deepseek-reasoner")||t.includes("deepseek-r1")||t.includes("deepseek-v3")||t.includes("minimax")||t.includes("glm")&&!r||t.includes("kimi")||t.includes("k2p")||t.includes("qwen")||t.includes("big-pickle"))return{};if(t.includes("grok")&&t.includes("grok-3-mini"))return e.api.npm==="@openrouter/ai-sdk-provider"?{low:{reasoning:{effort:"low"}},high:{reasoning:{effort:"high"}}}:{low:{reasoningEffort:"low"},high:{reasoningEffort:"high"}};switch(e.api.npm){case"@openrouter/ai-sdk-provider":return Object.fromEntries((e.api.id.startsWith("openai/")||t.includes("gpt")?TN(e.api.id):$r).map(d=>[d,{reasoning:{effort:d}}]));case"ai-gateway-provider":{if(e.api.id.startsWith("openai/")){let d=Up(e.api.id,e.release_date);return Object.fromEntries(d.map(p=>[p,{reasoningEffort:p}]))}return Object.fromEntries($r.map(d=>[d,{reasoningEffort:d}]))}case"@ai-sdk/gateway":return e.api.id.includes("anthropic")?s?Object.fromEntries(s.map(d=>[d,{thinking:{type:"adaptive",...n?{display:"summarized"}:{}},effort:d}])):{high:{thinking:{type:"enabled",budgetTokens:16e3}},max:{thinking:{type:"enabled",budgetTokens:31999}}}:e.api.id.includes("google")?jc(e.api.id)?{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16e3}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:HN(e.api.id.toLowerCase())}}}:Object.fromEntries(["low","high"].map(d=>[d,{includeThoughts:!0,thinkingLevel:d}])):Object.fromEntries(TN(e.api.id).map(d=>[d,{reasoningEffort:d}]));case"@ai-sdk/github-copilot":if(e.id.includes("gemini"))return{};if(e.id.includes("claude"))return Object.fromEntries($r.map(d=>[d,{reasoningEffort:d}]));let o=sn(()=>{if(t.includes("5.1-codex-max")||t.includes("5.2")||t.includes("5.3"))return[...$r,"xhigh"];let d=[...$r];return t.includes("gpt-5")&&e.release_date>="2025-12-04"&&d.push("xhigh"),d});return Object.fromEntries(o.map(d=>[d,{reasoningEffort:d,reasoningSummary:"auto",include:Wn}]));case"@ai-sdk/cerebras":case"@ai-sdk/togetherai":case"@ai-sdk/xai":case"@ai-sdk/deepinfra":case"venice-ai-sdk-provider":case"@ai-sdk/openai-compatible":if(e.api.id.toLowerCase().includes("north-mini-code"))return Object.fromEntries(["none","high"].map(d=>[d,{reasoningEffort:d}]));let a=[...$r];return e.api.id.toLowerCase().includes("deepseek-v4")&&a.push("max"),Object.fromEntries(a.map(d=>[d,{reasoningEffort:d}]));case"@ai-sdk/azure":return t==="o1-mini"?{}:Object.fromEntries(Up(t,e.release_date).map(d=>[d,{reasoningEffort:d,reasoningSummary:"auto",include:Wn}]));case"@ai-sdk/amazon-bedrock/mantle":case"@ai-sdk/openai":{if(e.providerID==="meta")return Object.fromEntries(NN.map(p=>[p,{reasoningEffort:p,reasoningSummary:"auto",include:Wn}]));let d=Up(e.api.id,e.release_date);return Object.fromEntries(d.map(p=>[p,{reasoningEffort:p,reasoningSummary:"auto",include:Wn}]))}case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":if(s){let d=[...s];return e.providerID==="github-copilot"&&(e.api.id.includes("opus-4.7")&&(d=["medium"]),d=d.filter(p=>p!=="max"&&p!=="xhigh")),Object.fromEntries(d.map(p=>[p,{thinking:{type:"adaptive",...n?{display:"summarized"}:{}},effort:p}]))}return Xb(e.api.id)?Object.fromEntries($r.map(d=>[d,BN(e,d)])):{high:{thinking:{type:"enabled",budgetTokens:Math.min(16e3,Math.floor(e.limit.output/2-1))}},max:{thinking:{type:"enabled",budgetTokens:Math.min(31999,e.limit.output-1)}}};case"@ai-sdk/amazon-bedrock":return s?Object.fromEntries(s.map(d=>[d,{reasoningConfig:{type:"adaptive",maxReasoningEffort:d,...n?{display:"summarized"}:{}}}])):e.api.id.includes("anthropic")?{high:{reasoningConfig:{type:"enabled",budgetTokens:16e3}},max:{reasoningConfig:{type:"enabled",budgetTokens:31999}}}:Object.fromEntries($r.map(d=>[d,{reasoningConfig:{type:"enabled",maxReasoningEffort:d}}]));case"@ai-sdk/google-vertex":case"@ai-sdk/google":return kN(e);case"@ai-sdk/mistral":if(!e.capabilities.reasoning)return{};let u=["mistral-small-2603","mistral-small-latest","mistral-medium-3.5","mistral-medium-2604"],c=e.api.id.toLowerCase();return u.some(d=>c.includes(d))?{high:{reasoningEffort:"high"}}:{};case"@ai-sdk/cohere":return{};case"@ai-sdk/groq":let l=["none",...$r];return Object.fromEntries(l.map(d=>[d,{reasoningEffort:d}]));case"@ai-sdk/perplexity":return{};case"@jerome-benoit/sap-ai-provider-v2":{if(t.includes("anthropic"))return Fc(s?Object.fromEntries(s.map(d=>[d,{thinking:{type:"adaptive",...n?{display:"summarized"}:{}},output_config:{effort:d}}])):{high:{thinking:{type:"enabled",budget_tokens:16e3}},max:{thinking:{type:"enabled",budget_tokens:31999}}});if(jc(t)||jc(e.api.id))return Fc(kN(e));if(t.includes("gpt")||/\bo[1-9]/.test(t)){let d=Up(t,e.release_date);return Fc(Object.fromEntries(d.map(p=>[p,{reasoning_effort:p}])))}return Fc(Object.fromEntries(["low","medium","high"].map(d=>[d,{reasoning_effort:d}])))}}return{}}i(xee,"variants");function bee(e){let t={};(e.model.api.npm==="@ai-sdk/google-vertex/anthropic"||!e.model.api.id.includes("claude")&&e.model.api.npm==="@ai-sdk/anthropic")&&(t.toolStreaming=!1),(e.model.providerID==="openai"||e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/github-copilot"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle"||e.model.api.npm==="@ai-sdk/xai")&&(t.store=!1),e.model.api.npm==="@ai-sdk/azure"&&(t.store=!1),(e.model.api.npm==="@openrouter/ai-sdk-provider"||e.model.api.npm==="@llmgateway/ai-sdk-provider")&&(t.usage={include:!0},e.model.api.id.toLowerCase().includes("gemini")&&!Vb(e.model.api.id)&&(t.reasoning={effort:"high"})),(e.model.providerID==="baseten"||e.model.providerID==="opencode"&&["kimi-k2-thinking","glm-4.6"].includes(e.model.api.id))&&(t.chat_template_args={enable_thinking:!0}),["zai","zhipuai"].some(a=>e.model.providerID.includes(a))&&e.model.api.npm==="@ai-sdk/openai-compatible"&&(t.thinking={type:"enabled",clear_thinking:!1}),e.model.providerID==="meta"&&e.model.api.npm==="@ai-sdk/openai"&&(t.reasoningSummary="auto",t.include=Wn),(e.model.api.npm==="@ai-sdk/google"||e.model.api.npm==="@ai-sdk/google-vertex")&&e.model.capabilities.reasoning&&(t.thinkingConfig={includeThoughts:!0},Vb(e.model.api.id)||(t.thinkingConfig.thinkingLevel="high"));let r=e.model.api.id.toLowerCase();r.includes("minimax-m3")&&e.model.api.npm==="@ai-sdk/anthropic"&&(t.thinking={type:"adaptive"}),["@ai-sdk/anthropic","@ai-sdk/google-vertex/anthropic"].includes(e.model.api.npm)&&zb(e.model)&&e.model.capabilities.reasoning&&(t.thinking={type:"adaptive",display:"summarized"},t.effort="high"),e.model.providerID==="alibaba-cn"&&e.model.capabilities.reasoning&&e.model.api.npm==="@ai-sdk/openai-compatible"&&!r.includes("kimi-k2-thinking")&&(t.enable_thinking=!0),e.providerOptions?.setCacheKey!==!1&&(e.model.api.npm==="@ai-sdk/deepinfra"||e.model.api.npm==="@ai-sdk/cerebras"?t.prompt_cache_key=e.sessionID:(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/azure"||e.model.api.npm==="@ai-sdk/xai"||e.model.api.npm==="@ai-sdk/mistral"||e.model.api.npm==="venice-ai-sdk-provider"||e.providerOptions?.setCacheKey===!0)&&(t.promptCacheKey=e.sessionID)),e.model.api.npm==="@ai-sdk/gateway"&&(t.gateway={caching:"auto"});let[,n,s]=e.model.api.id.match(/gpt-(\d+)\.(\d+)/)??[],o=Number(n)>5||Number(n)===5&&Number(s)>=5;return e.model.api.npm==="@ai-sdk/azure"&&e.providerOptions?.useCompletionUrls?(o||(t.reasoningEffort="medium"),t):(e.model.api.id.includes("gpt-5")&&!e.model.api.id.includes("gpt-5-chat")&&(e.model.api.id.includes("gpt-5-pro")||(t.reasoningEffort="medium",(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/azure"||e.model.api.npm==="@ai-sdk/github-copilot"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(t.reasoningSummary="auto"),(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(t.include=Wn)),e.model.api.id.includes("gpt-5.")&&!e.model.api.id.includes("codex")&&!e.model.api.id.includes("-chat")&&(e.model.api.npm==="@ai-sdk/openai"||e.model.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(t.textVerbosity="low"),e.model.providerID.startsWith("opencode")&&e.providerOptions?.setCacheKey!==!1&&(t.promptCacheKey=e.sessionID,t.include=Wn,t.reasoningSummary="auto")),t)}i(bee,"options");function Eee(e){let t=Object.values(e.variants??{})[0]??{};return e.providerID==="openai"||e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/github-copilot"||e.api.npm==="@ai-sdk/xai"?Ar({store:!1},t):(e.providerID==="openrouter"||e.providerID==="llmgateway")&&Object.keys(t).length===0&&e.api.id.includes("google")?{reasoning:{enabled:!1}}:e.providerID==="venice"?Object.keys(t).length>0?t:{veniceParameters:{disableThinking:!0}}:t}i(Eee,"smallOptions");var See={amazon:"bedrock"};function _ee(e,t){let n=(e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/azure"||e.api.npm==="@ai-sdk/amazon-bedrock/mantle")&&(e.capabilities.reasoning||t.reasoningEffort!==void 0||t.reasoningSummary!==void 0)?{...t,forceReasoning:!0}:mee(e,t);if(e.api.npm==="@ai-sdk/gateway"){let a=e.api.id.indexOf("/"),u=a>0?e.api.id.slice(0,a):void 0,c=u?See[u]??u:void 0,l=n.gateway,d=Object.fromEntries(Object.entries(n).filter(([f])=>f!=="gateway")),p=Object.keys(d).length>0,m={};return l!==void 0&&(m.gateway=l),p&&(c?m[c]=d:l&&typeof l=="object"&&!Array.isArray(l)?m.gateway={...l,...d}:m.gateway=d),m}let s=e.api.npm==="@ai-sdk/openai-compatible"||e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/anthropic",o=Gb(e.api.npm)??(s?e.providerID.split(".")[0]:e.providerID);return e.api.npm==="@ai-sdk/azure"?{openai:n,azure:n}:{[o]:n}}i(_ee,"providerOptions");function vee(e,t=$p){return Math.min(e.limit.output,t)||t}i(vee,"maxOutputTokens");function Bb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(Bb,"isPlainObject");function Js(e){let t=["string","number","boolean","integer","object","array","null"],r=["anyOf","oneOf","allOf"];if(typeof e=="boolean")return{type:"string"};if(Array.isArray(e))return e.map(Js);if(!Bb(e))return e;let n={};typeof e.$ref=="string"&&(n.$ref=e.$ref),typeof e.description=="string"&&(n.description=e.description),"const"in e?n.enum=[e.const]:Array.isArray(e.enum)&&(n.enum=e.enum),Bb(e.properties)&&(n.properties=Object.fromEntries(Object.entries(e.properties).map(([a,u])=>[a,Js(u)]))),Array.isArray(e.required)&&(n.required=e.required.filter(a=>typeof a=="string")),"items"in e&&(n.items=Js(e.items)),"additionalProperties"in e&&(n.additionalProperties=typeof e.additionalProperties=="boolean"?e.additionalProperties:Js(e.additionalProperties));for(let a of r)Array.isArray(e[a])&&(n[a]=e[a].map(Js));for(let a of["$defs","definitions"])Bb(e[a])&&(n[a]=Object.fromEntries(Object.entries(e[a]).map(([u,c])=>[u,Js(c)])));let s=typeof e.type=="string"?t.includes(e.type)?[e.type]:[]:Array.isArray(e.type)?e.type.filter(a=>typeof a=="string"&&t.includes(a)):[];if(s.length===0&&(typeof n.$ref=="string"||r.some(a=>a in n)))return n;let o=s.length>0?s:["properties","required","additionalProperties"].some(a=>a in e)?["object"]:["items","prefixItems"].some(a=>a in e)?["array"]:"enum"in n||"format"in e?["string"]:["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"].some(a=>a in e)?["number"]:[];return o.length===0?{}:(n.type=o.length===1?o[0]:o,o.includes("object")&&!("properties"in n)&&(n.properties={}),o.includes("array")&&!("items"in n)&&(n.items={type:"string"}),n)}i(Js,"sanitizeOpenAISchema");function wee(e,t){if((e.api.npm==="@ai-sdk/openai"||e.api.npm==="@ai-sdk/azure")&&(t=Js(t)),e.providerID==="moonshotai"||e.api.id.toLowerCase().includes("kimi")){let r=i(s=>{if(s===null||typeof s!="object")return s;if(Array.isArray(s))return s.map(r);if("$ref"in s&&typeof s.$ref=="string")return{$ref:s.$ref};let o=Object.fromEntries(Object.entries(s).map(([a,u])=>[a,r(u)]));return Array.isArray(o.items)&&(o.items=o.items[0]??{}),o},"sanitizeMoonshot"),n=r(t);typeof n=="object"&&n!==null&&!Array.isArray(n)&&(t=n)}if(e.providerID==="google"||e.api.id.includes("gemini")){let r=i(a=>typeof a=="object"&&a!==null&&!Array.isArray(a),"isPlainObject"),n=i(a=>r(a)&&(Array.isArray(a.anyOf)||Array.isArray(a.oneOf)||Array.isArray(a.allOf)),"hasCombiner"),s=i(a=>r(a)?n(a)?!0:["type","properties","items","prefixItems","enum","const","$ref","additionalProperties","patternProperties","required","not","if","then","else"].some(u=>u in a):!1,"hasSchemaIntent"),o=i(a=>{if(a===null||typeof a!="object")return a;if(Array.isArray(a))return a.map(o);let u={};for(let[c,l]of Object.entries(a))c==="enum"&&Array.isArray(l)?(u[c]=l.map(d=>String(d)),(u.type==="integer"||u.type==="number")&&(u.type="string")):typeof l=="object"&&l!==null?u[c]=o(l):u[c]=l;if(Array.isArray(u.type)){let c=u.type.includes("null"),l=u.type.filter(d=>d!=="null");l.length===0?u.type="null":(delete u.type,u.anyOf=l.map(d=>({type:d})),c&&(u.nullable=!0))}return u.type==="object"&&u.properties&&Array.isArray(u.required)&&(u.required=u.required.filter(c=>c in u.properties)),u.type==="array"&&!n(u)&&(u.items==null&&(u.items={}),r(u.items)&&!s(u.items)&&(u.items.type="string")),u.type&&u.type!=="object"&&!n(u)&&(delete u.properties,delete u.required),u},"sanitizeGemini");t=o(t)}return t}i(wee,"schema");function Tee(e,t){let r=e.reasoning_options;if(r===void 0)return;if(r.length===0)return{};let n=r.find(a=>a.type==="effort");if(n)return Ree(t,n.values);let s=r.some(a=>a.type==="toggle"),o=r.find(a=>a.type==="budget_tokens");return o?AN({...s?ON(t):{},...kee(t,o.min,o.max)}):s?AN(ON(t)):void 0}i(Tee,"reasoningVariants");function Ree(e,t){return Object.fromEntries(t.flatMap(r=>{let n=(()=>{if(r===null)return"none";if(typeof r=="string")return r})();if(n===void 0)return[];let s=Aee(e,n);return s?[[n,s]]:[]}))}i(Ree,"effortVariants");function kee(e,t,r){let n=Math.min(r??$p-1,e.limit.output-1,$p-1);if(n<=0)return{};let s=Math.min(Math.max(t??0,Math.floor((n+1)/2)),n);return Object.fromEntries([{id:"high",budget:s},{id:"max",budget:n}].flatMap(o=>{let a=Iee(e,o.budget);return a?[[o.id,a]]:[]}))}i(kee,"budgetVariants");function AN(e){return Object.keys(e).length>0?e:void 0}i(AN,"nonEmptyVariants");function ON(e){return e.api.npm==="@ai-sdk/alibaba"?{none:{enableThinking:!1},high:{enableThinking:!0}}:e.api.npm==="@ai-sdk/cohere"?{none:{thinking:{type:"disabled"}},high:{thinking:{type:"enabled"}}}:{}}i(ON,"reasoningToggle");function Aee(e,t){switch(e.api.npm){case"@openrouter/ai-sdk-provider":return{reasoning:{effort:t}};case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return Oee(e,t)??{effort:t};case"@ai-sdk/google":case"@ai-sdk/google-vertex":return{thinkingConfig:{includeThoughts:!0,thinkingLevel:t}};case"@ai-sdk/amazon-bedrock":return Qb(e.api.id)?{reasoningConfig:{type:"adaptive",maxReasoningEffort:t,...Zb(e.api.id)?{display:"summarized"}:{}}}:Xb(e.api.id)?{reasoningConfig:{type:"enabled",budgetTokens:Math.min(16e3,Math.floor(e.limit.output/2-1)),maxReasoningEffort:t}}:e.api.id.includes("anthropic")?void 0:{reasoningConfig:{type:"enabled",maxReasoningEffort:t}};case"@ai-sdk/gateway":return e.id.includes("anthropic")?{thinking:{type:"adaptive",display:"summarized"},effort:t}:e.id.includes("google")?{thinkingConfig:{includeThoughts:!0,thinkingLevel:t}}:{reasoningEffort:t};case"@ai-sdk/github-copilot":return e.id.includes("gemini")?void 0:e.id.includes("claude")?{reasoningEffort:t}:{reasoningEffort:t,reasoningSummary:"auto",include:Wn};case"@ai-sdk/openai":case"@ai-sdk/amazon-bedrock/mantle":return{reasoningEffort:t,reasoningSummary:"auto",include:Wn};case"@ai-sdk/azure":return{reasoningEffort:t,reasoningSummary:"auto",include:Wn};case"@jerome-benoit/sap-ai-provider-v2":return e.id.includes("anthropic")?{modelParams:{thinking:{type:"adaptive",display:"summarized"},output_config:{effort:t}}}:{modelParams:{reasoning_effort:t}};case"@ai-sdk/openai-compatible":case"@ai-sdk/xai":case"@ai-sdk/mistral":case"@ai-sdk/groq":case"@ai-sdk/cerebras":case"@ai-sdk/deepinfra":case"@ai-sdk/togetherai":case"venice-ai-sdk-provider":case"ai-gateway-provider":case"merge-gateway-ai-sdk-provider":return{reasoningEffort:t};case"gitlab-ai-provider":return e.family?.startsWith("gpt")?{reasoningEffort:t}:e.family?.startsWith("claude")?{thinking:{type:"adaptive",effort:t}}:void 0;case"@ai-sdk/cohere":case"@ai-sdk/perplexity":case"@ai-sdk/vercel":case"@ai-sdk/alibaba":return}}i(Aee,"reasoningEffort");function Oee(e,t){if(Xb(e.api.id))return BN(e,t);if(zb(e))return{thinking:{type:"adaptive",display:"summarized"},effort:t};if(Qb(e.api.id))return{thinking:{type:"adaptive",...Zb(e.api.id)?{display:"summarized"}:{}},effort:t}}i(Oee,"anthropicEffort");function BN(e,t){return{thinking:{type:"enabled",budgetTokens:Math.min(16e3,Math.floor(e.limit.output/2-1))},effort:t}}i(BN,"anthropicOpus45Effort");function Iee(e,t){switch(e.api.npm){case"@openrouter/ai-sdk-provider":return{reasoning:{max_tokens:t}};case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return{thinking:{type:"enabled",budgetTokens:t}};case"@ai-sdk/google":case"@ai-sdk/google-vertex":return{thinkingConfig:{includeThoughts:!0,thinkingBudget:t}};case"@ai-sdk/amazon-bedrock":return{reasoningConfig:{type:"enabled",budgetTokens:t}};case"@ai-sdk/gateway":return e.id.includes("anthropic")?{thinking:{type:"enabled",budgetTokens:t}}:e.id.includes("google")?{thinkingConfig:{includeThoughts:!0,thinkingBudget:t}}:void 0;case"@ai-sdk/cohere":return{thinking:{type:"enabled",tokenBudget:t}};case"@ai-sdk/alibaba":return{enableThinking:!0,thinkingBudget:t};case"@jerome-benoit/sap-ai-provider-v2":return e.id.includes("anthropic")?{modelParams:{thinking:{type:"enabled",budget_tokens:t}}}:e.id.includes("gemini")?{modelParams:{thinkingConfig:{includeThoughts:!0,thinkingBudget:t}}}:void 0;case"@ai-sdk/amazon-bedrock/mantle":case"@ai-sdk/azure":case"@ai-sdk/cerebras":case"@ai-sdk/deepinfra":case"@ai-sdk/github-copilot":case"@ai-sdk/groq":case"@ai-sdk/mistral":case"@ai-sdk/openai":case"@ai-sdk/openai-compatible":case"@ai-sdk/perplexity":case"@ai-sdk/togetherai":case"@ai-sdk/vercel":case"@ai-sdk/xai":case"ai-gateway-provider":case"gitlab-ai-provider":case"venice-ai-sdk-provider":return}}i(Iee,"reasoningBudget");var VN=E.Literals(["alpha","beta","deprecated","active"]);var eE;(a=>{a.INCOMPLETE_CODE=fr.RESPONSE_INCOMPLETE_CODE,a.FAILED_CODE=fr.RESPONSE_FAILED_CODE;function r(u,c,l,d){return{type:"error",sequence_number:typeof u=="number"?u:0,error:{type:d??c,code:c,message:l,param:null}}}i(r,"errorEvent");function n(u){switch(u.type){case"response.failed":{let c=u.response?.error,l=typeof c?.code=="string"&&c.code?c.code:a.FAILED_CODE,d=typeof c?.message=="string"&&c.message?c.message:"The provider reported the response failed.";return r(u.sequence_number,l,d,a.FAILED_CODE)}case"response.incomplete":{let c=u.response?.incomplete_details?.reason;return c==="content_filter"?void 0:r(u.sequence_number,a.INCOMPLETE_CODE,`The response ended incomplete (${typeof c=="string"&&c?c:"no reason given"}).`)}case"error":{if(u.error&&typeof u.error=="object")return;let c=typeof u.code=="string"&&u.code?u.code:a.FAILED_CODE,l=typeof u.message=="string"&&u.message?u.message:"Stream error.";return r(u.sequence_number,c,l)}}}a.rewrite=n,i(n,"rewrite");let s=new Set(["response.completed","response.incomplete","response.failed","error"]);function o(u){if(!u.ok||!u.body)return u;let c=u.body.getReader(),l=new TextDecoder,d=new TextEncoder,p="",m=!1,f=!1,h=i(v=>{let T=v.split(/\r?\n/).filter(k=>k.startsWith("data:")).map(k=>k.slice(5).replace(/^ /,"")).join(`
|
|
472
472
|
`),x;try{x=T?JSON.parse(T):void 0}catch{x=void 0}if(!x||typeof x.type!="string")return v+`
|
|
473
473
|
|
|
474
474
|
`;x.type.startsWith("response.")&&(m=!0),s.has(x.type)&&(f=!0);let b=n(x);return b?`event: error
|
|
@@ -477,7 +477,7 @@ data: ${JSON.stringify(b)}
|
|
|
477
477
|
`:v+`
|
|
478
478
|
|
|
479
479
|
`},"block"),S=i(v=>{let T="";for(;;){let x=/\r?\n\r?\n/.exec(p);if(!x)break;T+=h(p.slice(0,x.index)),p=p.slice(x.index+x[0].length)}return v&&p.trim()&&(T+=h(p),p=""),T},"drain"),y=new ReadableStream({async pull(v){for(;;){let T=await c.read();if(T.done){p+=l.decode();let b=S(!0);if(b&&v.enqueue(d.encode(b)),m&&!f){v.error(new fr.ResponseStreamError("Response stream ended before response.completed"));return}v.close();return}p+=l.decode(T.value,{stream:!0});let x=S(!1);if(x){v.enqueue(d.encode(x));return}}},async cancel(v){await c.cancel(v)}});return new Response(y,{headers:new Headers(u.headers),status:u.status,statusText:u.statusText})}a.wrap=o,i(o,"wrap")})(eE||={});import{createHash as Dee}from"node:crypto";import{appendFileSync as Nee,existsSync as Pee}from"node:fs";import zN from"node:path";var Uc;(c=>{let e=i(()=>zN.join(_t.Path.data,"request-trace.on"),"flag"),t=i(()=>zN.join(_t.Path.data,"request-trace.jsonl"),"file"),r=i(l=>Dee("sha1").update(typeof l=="string"?l:JSON.stringify(l??null)).digest("hex").slice(0,8),"h"),n=i(l=>JSON.stringify(l??null).includes('"cache_control"')?"*":"","marked");function s(){try{return Pee(e())}catch{return!1}}c.on=s,i(s,"on");function o(l,d){let p={model:l?.model};return Array.isArray(l?.input)?(p.key=l.prompt_cache_key??d?.["session-id"],p.tools=r(l.tools),p.toolNames=r((l.tools??[]).map(m=>m.name)),p.instructions=r(l.instructions),p.items=l.input.map(m=>`${m.type??m.role}:${r(m)}`),p.reasoning=l.reasoning,p.store=l.store,p.include=l.include,p.continues=Array.isArray(l.input)&&/_call_output$/.test(l.input[l.input.length-1]?.type??"")):Array.isArray(l?.messages)&&(p.tools=r(l.tools)+n(l.tools?.[l.tools.length-1]),p.system=Array.isArray(l.system)?l.system.map(m=>r(m.text)+n(m)):r(l.system),p.items=l.messages.map(m=>`${m.role}:`+(Array.isArray(m.content)?m.content.map(f=>r({...f,cache_control:void 0})+n(f)).join("+"):r(m.content))),p.thinking=l.thinking,p.effort=l.output_config??l.effort),p}c.shape=o,i(o,"shape");function a(l,d,p){if(d.sentAt=p,d.headersMs=Date.now()-p,d.status=l.status,!l.body)return u(d),l;let m,f,h=new TextDecoder,S=l.body.pipeThrough(new TransformStream({transform(y,v){let T=Date.now()-p;if(m===void 0&&(m=T),f===void 0){let x=h.decode(y,{stream:!0});/output_text\.delta|function_call_arguments\.delta|reasoning_summary_text\.delta|"content_block_delta"|"input_json_delta"|"text_delta"|"thinking_delta"/.test(x)&&(f=T)}v.enqueue(y)},flush(){u({...d,firstChunkMs:m,firstOutputMs:f,endMs:Date.now()-p})}}));return new Response(S,{status:l.status,statusText:l.statusText,headers:l.headers})}c.wrap=a,i(a,"wrap");function u(l){try{Nee(t(),JSON.stringify(l)+`
|
|
480
|
-
`)}catch{}}i(u,"write")})(Uc||={});var qee=3e5;function Fee(e,t,r,n=!1){if(typeof t!="number"||t<=0||!e.body||!e.headers.get("content-type")?.includes("text/event-stream")&&!(n&&e.ok))return e;let s=e.body.getReader(),o=new ReadableStream({async pull(a){let u=await new Promise((c,l)=>{let d=setTimeout(()=>{let p=new fr.ResponseStreamError("SSE read timed out");r.abort(p),s.cancel(p).catch(()=>{}),l(p)},t);s.read().then(p=>{clearTimeout(d),c(p)},p=>{clearTimeout(d),l(p)})});if(u.done){a.close();return}a.enqueue(u.value)},async cancel(a){r.abort(a),await s.cancel(a)}});return new Response(o,{headers:new Headers(e.headers),status:e.status,statusText:e.statusText})}i(Fee,"wrapSSE");function jee(e){let t=new AbortController,r=setTimeout(()=>t.abort(new fr.HeaderTimeoutError(e)),e);return{signal:t.signal,clear:i(()=>clearTimeout(r),"clear")}}i(jee,"timeoutController");function YN(e,t){let r=e.fetch,n=e.chunkTimeout??3e5,s=e.headerTimeout??3e5,o=e.timeout;return async(a,u)=>{let c=r??fetch,l=u??{},d=typeof n=="number"&&n>0?new AbortController:void 0,p=s===!1?void 0:s,m=typeof p=="number"?jee(p):void 0,f=[];l.signal&&f.push(l.signal),d&&f.push(d.signal),m&&f.push(m.signal),o!=null&&o!==!1&&f.push(AbortSignal.timeout(o));let h=f.length===0?null:f.length===1?f[0]:AbortSignal.any(f);h&&(l.signal=h);let S=!1;if(t.api.npm==="@ai-sdk/openai"&&typeof l.body=="string"&&l.method==="POST")try{S=JSON.parse(l.body).stream===!0}catch{}let y=l.method==="POST"&&typeof l.body=="string"&&Uc.on()?(()=>{try{return Uc.shape(JSON.parse(l.body),l.headers)}catch{return}})():void 0,v=Date.now(),T={...l,timeout:!1},x=await(t.api.npm==="@ai-sdk/anthropic"&&Fh.on()?Fh.send(c,a,T):c(a,T)).finally(()=>m?.clear()),b=y?Uc.wrap(x,{provider:t.providerID,...y},v):x,k=d?Fee(b,n,d,S):b;return S?eE.wrap(k):k}}i(YN,"timeoutFetch");function XN(e,t){if(e&&!(t!=="eu"&&t!=="us"))return`https://aiplatform.${t}.rep.googleapis.com/v1/projects/${e}/locations/${t}/publishers/anthropic/models`}i(XN,"googleVertexAnthropicBaseURL");function Uee(e){return e==="global"?"aiplatform.googleapis.com":e==="eu"||e==="us"?`aiplatform.${e}.rep.googleapis.com`:`${e}-aiplatform.googleapis.com`}i(Uee,"googleVertexEndpoint");var $ee={"@ai-sdk/amazon-bedrock":i(()=>import("./dist-KZ5R5QM5.js").then(e=>e.createAmazonBedrock),"@ai-sdk/amazon-bedrock"),"@ai-sdk/amazon-bedrock/mantle":i(()=>import("./mantle-IJXDXT4M.js").then(e=>e.createBedrockMantle),"@ai-sdk/amazon-bedrock/mantle"),"@ai-sdk/anthropic":i(()=>import("./dist-CL46WFZG.js").then(e=>e.createAnthropic),"@ai-sdk/anthropic"),"@ai-sdk/azure":i(()=>import("./dist-7CT3XCNN.js").then(e=>e.createAzure),"@ai-sdk/azure"),"@ai-sdk/google":i(()=>import("./dist-HXJTF22W.js").then(e=>e.createGoogleGenerativeAI),"@ai-sdk/google"),"@ai-sdk/google-vertex":i(()=>import("./dist-WZJ3LNRG.js").then(e=>e.createVertex),"@ai-sdk/google-vertex"),"@ai-sdk/google-vertex/anthropic":i(()=>import("./anthropic-ND6UHXWL.js").then(e=>e.createVertexAnthropic),"@ai-sdk/google-vertex/anthropic"),"@ai-sdk/openai":i(()=>import("./dist-RIC4WKHC.js").then(e=>e.createOpenAI),"@ai-sdk/openai"),"@ai-sdk/openai-compatible":i(()=>import("./dist-QJPOJCLB.js").then(e=>e.createOpenAICompatible),"@ai-sdk/openai-compatible"),"@openrouter/ai-sdk-provider":i(()=>import("./dist-TH2Q44RX.js").then(e=>e.createOpenRouter),"@openrouter/ai-sdk-provider"),"@ai-sdk/xai":i(()=>import("./dist-JFXI53ZF.js").then(e=>e.createXai),"@ai-sdk/xai"),"@ai-sdk/mistral":i(()=>import("./dist-TCE5MKZQ.js").then(e=>e.createMistral),"@ai-sdk/mistral"),"@ai-sdk/groq":i(()=>import("./dist-T776XKTM.js").then(e=>e.createGroq),"@ai-sdk/groq"),"@ai-sdk/deepinfra":i(()=>import("./dist-XPFB35TX.js").then(e=>e.createDeepInfra),"@ai-sdk/deepinfra"),"@ai-sdk/cerebras":i(()=>import("./dist-O4DF72J2.js").then(e=>e.createCerebras),"@ai-sdk/cerebras"),"@ai-sdk/cohere":i(()=>import("./dist-PH4MEGVR.js").then(e=>e.createCohere),"@ai-sdk/cohere"),"@ai-sdk/gateway":i(()=>import("./dist-KGNO5AP7.js").then(e=>e.createGateway),"@ai-sdk/gateway"),"@ai-sdk/togetherai":i(()=>import("./dist-NLXUYBW7.js").then(e=>e.createTogetherAI),"@ai-sdk/togetherai"),"@ai-sdk/perplexity":i(()=>import("./dist-KBYKWVT5.js").then(e=>e.createPerplexity),"@ai-sdk/perplexity"),"@ai-sdk/vercel":i(()=>import("./dist-XAFENVUS.js").then(e=>e.createVercel),"@ai-sdk/vercel"),"@ai-sdk/alibaba":i(()=>import("./dist-QYH62TCJ.js").then(e=>e.createAlibaba),"@ai-sdk/alibaba"),"gitlab-ai-provider":i(()=>import("./dist-KTNLTEHB.js").then(e=>e.createGitLab),"gitlab-ai-provider"),"@ai-sdk/github-copilot":i(()=>import("./copilot-provider-QVMLQZZC.js").then(e=>e.createOpenaiCompatible),"@ai-sdk/github-copilot"),"venice-ai-sdk-provider":i(()=>import("./dist-VV5FV5RT.js").then(e=>e.createVenice),"venice-ai-sdk-provider")};function GN(e,t,r){return r&&e.chat?e.chat(t):e.responses?e.responses(t):e.messages?e.messages(t):e.chat?e.chat(t):e.languageModel(t)}i(GN,"selectAzureLanguageModel");function Hee(e,t){return t==="openai.gpt-oss-safeguard-20b"||t==="openai.gpt-oss-safeguard-120b"?e.chat?.(t)??e.languageModel(t):e.responses?.(t)??e.languageModel(t)}i(Hee,"selectBedrockMantleLanguageModel");function Bee(e){return{anthropic:i(()=>g.succeed({autoload:!1,options:{headers:{"anthropic-beta":"interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"}}}),"anthropic"),opencode:g.fnUntraced(function*(t){let r=yield*e.env();return sn(()=>!!t.env.some(o=>r[o]))||!!(yield*e.auth(t.id))||!!(yield*e.config()).provider?.opencode?.options?.apiKey?{autoload:Object.keys(t.models).length>0,options:{}}:{autoload:!1}}),openai:i(()=>g.succeed({autoload:!1,async getModel(t,r,n){return t.responses(r)},options:{headerTimeout:qee}}),"openai"),meta:i(()=>g.succeed({autoload:!1,async getModel(t,r,n){return t.responses(r)}}),"meta"),xai:i(()=>g.succeed({autoload:!1,async getModel(t,r,n){return t.responses(r)},options:{}}),"xai"),"github-copilot":i(()=>g.succeed({autoload:!1,async getModel(t,r,n,s){if(t.responses===void 0&&t.chat===void 0)return t.languageModel(r);if(s&&"endpoint"in s.api){if(s.api.endpoint==="responses"&&t.responses)return t.responses(r);if(s.api.endpoint==="chat"&&t.chat)return t.chat(r)}let o=/^gpt-(\d+)/.exec(r);return o&&Number(o[1])>=5&&!r.startsWith("gpt-5-mini")?t.responses(r):t.chat(r)},options:{}}),"github-copilot"),azure:g.fnUntraced(function*(t){let r=yield*e.env(),n=yield*e.auth(t.id),s=sn(()=>[t.options?.resourceName,n?.type==="api"?n.metadata?.resourceName:void 0,n?.type==="oauth"?n.accountId:void 0,r.AZURE_RESOURCE_NAME].find(o=>typeof o=="string"&&o.trim()!==""));return!s&&!t.options?.baseURL?{autoload:!1,async getModel(){throw new Error("AZURE_RESOURCE_NAME is missing, set it using env var or reconnecting the azure provider and setting it")}}:{autoload:!1,async getModel(o,a,u){return GN(o,a,!!u?.useCompletionUrls)},options:{resourceName:s},vars(o){return s?{AZURE_RESOURCE_NAME:s}:{}}}}),"azure-cognitive-services":g.fnUntraced(function*(t){let r=yield*e.get("AZURE_COGNITIVE_SERVICES_RESOURCE_NAME");return{autoload:!1,async getModel(n,s,o){return GN(n,s,!!o?.useCompletionUrls)},options:{baseURL:r?`https://${r}.cognitiveservices.azure.com/openai${t.options?.useDeploymentBasedUrls?"":"/v1"}`:void 0}}}),"amazon-bedrock":g.fnUntraced(function*(){let t=(yield*e.config()).provider?.["amazon-bedrock"],r=yield*e.auth("amazon-bedrock"),n=yield*e.env(),s=t?.options?.region,o=n.AWS_REGION,a=s??o??"us-east-1",u=t?.options?.profile,c=n.AWS_PROFILE,l=u??c,d=n.AWS_ACCESS_KEY_ID,p=t?.options?.apiKey,m=sn(()=>{let T=process.env.AWS_BEARER_TOKEN_BEDROCK;if(T)return T;if(r?.type==="api")return process.env.AWS_BEARER_TOKEN_BEDROCK=r.key,r.key}),f=n.AWS_WEB_IDENTITY_TOKEN_FILE,h=!!(process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI||process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI);if(!l&&!d&&!m&&!p&&!f&&!h)return{autoload:!1};let{fromNodeProviderChain:S}=yield*g.promise(()=>import("./dist-es-EVVG3KDV.js")),y={region:a};if(!m&&!p){let T=l?{profile:l}:{};y.credentialProvider=S(T)}let v=t?.options?.endpoint??t?.options?.baseURL;return v&&(y.baseURL=v),{autoload:!0,options:y,vars(T){return{AWS_REGION:T.region??a}},async getModel(T,x,b,k){if(k?.api.npm==="@ai-sdk/amazon-bedrock/mantle")return Hee(T,x);if(x.startsWith("arn:")||["global.","us.","eu.","jp.","apac.","au."].some(N=>x.startsWith(N)))return T.languageModel(x);let R=b?.region??a,A=R.split("-")[0];switch(A){case"us":{let N=["nova-micro","nova-lite","nova-pro","nova-premier","nova-2","claude","deepseek.r1"].some(O=>x.includes(O)),D=R.startsWith("us-gov");N&&!D&&(x=`${A}.${x}`);break}case"eu":{let N=["eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-south-1","eu-south-2"].some(O=>R.includes(O)),D=["claude","nova-lite","nova-micro","llama3","pixtral"].some(O=>x.includes(O));N&&D&&(x=`${A}.${x}`);break}case"ap":{let N=["ap-southeast-2","ap-southeast-4"].includes(R),D=R==="ap-northeast-1";N&&["anthropic.claude-sonnet-4-5","anthropic.claude-haiku"].some(O=>x.includes(O))?(A="au",x=`${A}.${x}`):D?["claude","nova-lite","nova-micro","nova-pro"].some(q=>x.includes(q))&&(A="jp",x=`${A}.${x}`):["claude","nova-lite","nova-micro","nova-pro"].some(q=>x.includes(q))&&(A="apac",x=`${A}.${x}`);break}}return T.languageModel(x)}}}),llmgateway:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode","X-Source":"opencode"}}}),"llmgateway"),openrouter:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode"}}}),"openrouter"),nvidia:i(t=>g.succeed({autoload:t.source==="config",options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode","X-BILLING-INVOKE-ORIGIN":"OpenCode"}}}),"nvidia"),vercel:i(()=>g.succeed({autoload:!1,options:{headers:{"http-referer":"https://opencode.ai/","x-title":"opencode"}}}),"vercel"),"google-vertex":g.fnUntraced(function*(t){let r=yield*e.env(),n=t.options?.project??r.GOOGLE_VERTEX_PROJECT??r.GOOGLE_CLOUD_PROJECT??r.GCP_PROJECT??r.GCLOUD_PROJECT,s=String(t.options?.location??r.GOOGLE_VERTEX_LOCATION??r.GOOGLE_CLOUD_LOCATION??r.VERTEX_LOCATION??"us-central1");return!n?{autoload:!1}:{autoload:!0,vars(a){return{...n&&{GOOGLE_VERTEX_PROJECT:n},GOOGLE_VERTEX_LOCATION:s,GOOGLE_VERTEX_ENDPOINT:Uee(s)}},options:{project:n,location:s,fetch:i(async(a,u)=>{let{GoogleAuth:c}=await import("./src-QJHT5SCV.js"),p=await(await new c({scopes:["https://www.googleapis.com/auth/cloud-platform"]}).getClient()).getAccessToken(),m=new Headers(u?.headers);return m.set("Authorization",`Bearer ${p.token}`),fetch(a,{...u,headers:m})},"fetch")},async getModel(a,u){let c=String(u).trim();return a.languageModel(c)}}}),"google-vertex-anthropic":g.fnUntraced(function*(){let t=yield*e.env(),r=t.GOOGLE_CLOUD_PROJECT??t.GCP_PROJECT??t.GCLOUD_PROJECT,n=t.GOOGLE_CLOUD_LOCATION??t.VERTEX_LOCATION??"global";if(!!!r)return{autoload:!1};let o=XN(r,n);return{autoload:!0,options:{project:r,location:n,...o&&{baseURL:o}},async getModel(a,u){let c=String(u).trim();return a.languageModel(c)}}}),"sap-ai-core":g.fnUntraced(function*(){let t=yield*e.auth("sap-ai-core"),r=sn(()=>{let o=process.env.AICORE_SERVICE_KEY;if(o)return o;if(t?.type==="api")return process.env.AICORE_SERVICE_KEY=t.key,t.key}),n=process.env.AICORE_DEPLOYMENT_ID,s=process.env.AICORE_RESOURCE_GROUP;return{autoload:!!r,options:r?{deploymentId:n,resourceGroup:s}:{},async getModel(o,a){return o(a)}}}),zenmux:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode"}}}),"zenmux"),gitlab:g.fnUntraced(function*(t){let{VERSION:r,isWorkflowModel:n,discoverWorkflowModels:s}=yield*g.promise(()=>import("./dist-KTNLTEHB.js")),o=(yield*e.get("GITLAB_INSTANCE_URL"))||"https://gitlab.com",a=yield*e.auth(t.id),u=a?.type==="oauth"?a.access:a?.type==="api"?a.key:void 0,c=u??(yield*e.get("GITLAB_TOKEN")),l=(yield*e.config()).provider?.gitlab,d=yield*Dt.directory,p={"User-Agent":`opencode/${ut} gitlab-ai-provider/${r} (${Ei.platform()} ${Ei.release()}; ${Ei.arch()})`,"anthropic-beta":"context-1m-2025-08-07",...l?.options?.aiGatewayHeaders},m={duo_agent_platform_agentic_chat:!0,duo_agent_platform:!0,...l?.options?.featureFlags};return{autoload:!!c,options:{instanceUrl:o,apiKey:c,aiGatewayHeaders:p,featureFlags:m},async getModel(f,h,S){if(h.startsWith("duo-workflow-")){let y=typeof S?.workflowRef=="string"?S.workflowRef:void 0,v=n(h)?h:"duo-workflow",T=typeof S?.workflowDefinition=="string"?S.workflowDefinition:void 0,x=f.workflowChat(v,{featureFlags:m,workflowDefinition:T});return y&&(x.selectedModelRef=y),x}return f.agenticChat(h,{aiGatewayHeaders:p,featureFlags:m})},async discoverModels(){if(!u)return{};try{let f=u,S=await s({instanceUrl:o,getHeaders:i(()=>a?.type==="api"?{"PRIVATE-TOKEN":f}:{Authorization:`Bearer ${f}`},"getHeaders")},{workingDirectory:d});if(!S.models.length)return{};let y={};for(let v of S.models)t.models[v.id]||(y[v.id]={id:Rr.ID.make(v.id),providerID:$e.ID.make("gitlab"),name:`Agent Platform (${v.name})`,family:"",api:{id:v.id,url:o,npm:"gitlab-ai-provider"},status:"active",headers:{},options:{workflowRef:v.ref},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:v.context,output:v.output},capabilities:{temperature:!1,reasoning:!0,attachment:!0,toolcall:!0,input:{text:!0,audio:!1,image:!0,video:!1,pdf:!0},output:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},interleaved:!1},release_date:"",variants:{}});return y}catch{return{}}}}}),"cloudflare-workers-ai":g.fnUntraced(function*(t){if(t.options?.baseURL)return{autoload:!1};let r=yield*e.auth(t.id),n=yield*e.env(),s=n.CLOUDFLARE_ACCOUNT_ID||(r?.type==="api"?r.metadata?.accountId:void 0);if(!s)return{autoload:!1,async getModel(){throw new Error("CLOUDFLARE_ACCOUNT_ID is missing. Set it with: export CLOUDFLARE_ACCOUNT_ID=<your-account-id>")}};let o=n.CLOUDFLARE_API_KEY||(r?.type==="api"?r.key:void 0);return{autoload:!!o,options:{apiKey:o,headers:{"User-Agent":`opencode/${ut} cloudflare-workers-ai (${Ei.platform()} ${Ei.release()}; ${Ei.arch()})`}},async getModel(a,u){return a.languageModel(u)},vars(a){return{CLOUDFLARE_ACCOUNT_ID:s}}}}),"cloudflare-ai-gateway":g.fnUntraced(function*(t){if(t.options?.baseURL)return{autoload:!1};let r=yield*e.auth(t.id),n=yield*e.env(),s=n.CLOUDFLARE_ACCOUNT_ID||(r?.type==="api"?r.metadata?.accountId:void 0),o=n.CLOUDFLARE_GATEWAY_ID||(r?.type==="api"?r.metadata?.gatewayId:void 0);if(!s||!o){let S=[s?void 0:"CLOUDFLARE_ACCOUNT_ID",o?void 0:"CLOUDFLARE_GATEWAY_ID"].filter(y=>!!y);return{autoload:!1,async getModel(){throw new Error(`${S.join(" and ")} missing. Set with: ${S.map(y=>`export ${y}=<value>`).join(" && ")}`)}}}let a=n.CLOUDFLARE_API_TOKEN||n.CF_AIG_TOKEN||(r?.type==="api"?r.key:void 0);if(!a)throw new Error("CLOUDFLARE_API_TOKEN (or CF_AIG_TOKEN) is required for Cloudflare AI Gateway. Set it via environment variable or run `opencode auth cloudflare-ai-gateway`.");let{createAiGateway:u,parseAiGatewayOptions:c}=yield*g.promise(()=>import("./dist-5NQOHNPL.js")),{createUnified:l}=yield*g.promise(()=>import("./unified-W3ZKZ4HG.js")),{createOpenAI:d}=yield*g.promise(()=>import("./openai-ZOJI6I5R.js")),{createAnthropic:p}=yield*g.promise(()=>import("./anthropic-45OFTLAW.js")),{createOpenAICompatible:m}=yield*g.promise(()=>import("./dist-QJPOJCLB.js")),h={metadata:sn(()=>{if(t.options?.metadata)return t.options.metadata;try{return JSON.parse(t.options?.headers?.["cf-aig-metadata"])}catch{return}}),cacheTtl:t.options?.cacheTtl,cacheKey:t.options?.cacheKey,skipCache:t.options?.skipCache,collectLog:t.options?.collectLog,headers:{"User-Agent":`opencode/${ut} cloudflare-ai-gateway (${Ei.platform()} ${Ei.release()}; ${Ei.arch()})`}};return{autoload:!0,async getModel(S,y,v){let T=YN(v??{},{providerID:"cloudflare-ai-gateway",api:{npm:"ai-gateway-provider"}}),x=u({binding:{run(k,C){let R=c(h);return R.set("Content-Type","application/json"),R.set("cf-aig-authorization",`Bearer ${a}`),T(`https://gateway.ai.cloudflare.com/v1/${s}/${o}`,{body:JSON.stringify(k),headers:R,method:"POST",signal:C?.signal})}}});return y.startsWith("openai/")?x(d()(y.slice(7))):y.startsWith("anthropic/")?x(p()(y.slice(10).replaceAll(".","-"))):y.startsWith("workers-ai/")||y.startsWith("@cf/")?x(l({apiKey:a})(y)):m({name:"cloudflare-ai-gateway",baseURL:`https://api.cloudflare.com/client/v4/accounts/${s}/ai/v1`,apiKey:a,headers:{"cf-aig-gateway-id":o},fetch:T})(y)},options:{}}}),cerebras:i(()=>g.succeed({autoload:!1,options:{headers:{"X-Cerebras-3rd-Party-Integration":"opencode"}}}),"cerebras"),kilo:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode"}}}),"kilo"),"snowflake-cortex":g.fnUntraced(function*(t){let r=yield*e.env(),n=yield*e.auth(t.id),s=r.SNOWFLAKE_ACCOUNT??(n?.type==="api"?n.metadata?.account:void 0)??(n?.type==="oauth"?n.accountId:void 0)??t.options?.account,o=r.SNOWFLAKE_CORTEX_TOKEN??r.SNOWFLAKE_CORTEX_PAT,a=n?.type==="api"?n.key:void 0,u=n?.type==="oauth"?n.access:void 0,c=t.options?.token??t.options?.apiKey,l=o??a??u??c;if(!s||!l){let f=[!s&&"SNOWFLAKE_ACCOUNT",!l&&"SNOWFLAKE_CORTEX_TOKEN"].filter(Boolean).join(", ");return{autoload:!1,async getModel(){throw new Error(`Snowflake Cortex: missing credentials (${f}). Provide a bearer token (OAuth, JWT, or PAT) via env var, opencode auth, or provider options.`)}}}let p={baseURL:`https://${s}.snowflakecomputing.com/api/v2/cortex/v1`,apiKey:l};return u!==void 0&&o===void 0&&a===void 0&&c===void 0||(p.fetch=async(f,h)=>{if(h?.body&&typeof h.body=="string")try{let y=JSON.parse(h.body);"max_tokens"in y&&(y.max_completion_tokens=y.max_tokens,delete y.max_tokens,h={...h,body:JSON.stringify(y)})}catch{}let S=await fetch(f,h);if(!S.ok&&S.status===400)try{let y=await S.clone().json();if(String(y.message||y.error||"").toLowerCase().includes("conversation complete"))return new Response(JSON.stringify({choices:[{finish_reason:"stop",message:{content:"",role:"assistant"}}]}),{status:200,headers:new Headers({"content-type":"application/json"})})}catch{}if(S.body&&S.headers.get("content-type")?.includes("text/event-stream")){let y=S.body.getReader(),v=new TextEncoder,T=new TextDecoder,x=new ReadableStream({async pull(b){let{done:k,value:C}=await y.read();if(k){b.close();return}let R=T.decode(C,{stream:!0});b.enqueue(v.encode(R.replace(/"role"\s*:\s*""/g,'"role":"assistant"')))},cancel(){y.cancel()}});return new Response(x,{headers:S.headers,status:S.status})}return S}),{autoload:t.source==="config",options:p}})}}i(Bee,"custom");var Vee=E.Struct({id:E.String,url:E.String,npm:E.String}),WN=E.Struct({text:E.Boolean,audio:E.Boolean,image:E.Boolean,video:E.Boolean,pdf:E.Boolean}),zee=E.Union([E.Literals(["reasoning","reasoning_content","reasoning_text"]),E.String]),Gee=E.Union([E.Boolean,E.Struct({field:zee})]),Wee=E.Struct({temperature:E.Boolean,reasoning:E.Boolean,attachment:E.Boolean,toolcall:E.Boolean,input:WN,output:WN,interleaved:Gee}),rE=E.Struct({read:E.Finite,write:E.Finite}),Kee=E.Struct({input:E.Finite,output:E.Finite,cache:rE,tier:E.Struct({type:E.Literal("context"),size:E.Finite})}),Jee=E.Struct({input:E.Finite,output:E.Finite,cache:rE,tiers:It(E.Array(Kee)),experimentalOver200K:It(E.Struct({input:E.Finite,output:E.Finite,cache:rE}))}),Yee=E.Struct({context:E.Finite,input:It(E.Finite),output:E.Finite}),sE=E.Struct({id:Rr.ID,providerID:$e.ID,api:Vee,name:E.String,family:It(E.String),capabilities:Wee,cost:Jee,limit:Yee,status:VN,options:E.Record(E.String,E.Any),headers:E.Record(E.String,E.String),release_date:E.String,variants:It(E.Record(E.String,E.Record(E.String,E.Any)))}).annotate({identifier:"Model"}),oE=E.Struct({id:$e.ID,name:E.String,source:E.Literals(["env","config","custom","api"]),env:E.Array(E.String),key:It(E.String),options:E.Record(E.String,E.Any),models:E.Record(E.String,sE)}).annotate({identifier:"Provider"}),QN=E.Record(E.String,E.String),Xee=E.Struct({all:E.Array(oE),default:QN,connected:E.Array(E.String)}),Qee=E.Struct({providers:E.Array(oE),default:QN});function $c(e){return JSON.parse(JSON.stringify({...e,models:Object.fromEntries(Object.entries(e.models).filter(([,t])=>E.is(sE)(t)))},(t,r)=>{if(!(typeof r=="function"||typeof r=="symbol"||r===void 0))return typeof r=="bigint"?r.toString():r}))}i($c,"toPublicInfo");function Zee(e){return ji(e,t=>aE(Object.values(t.models))[0].id)}i(Zee,"defaultModelIDs");var ba=class e extends E.TaggedErrorClass()("ProviderModelNotFoundError",{providerID:$e.ID,modelID:Rr.ID,suggestions:E.optional(E.Array(E.String)),cause:E.optional(E.Defect())}){static{i(this,"ModelNotFoundError")}get message(){let t=this.suggestions?.length?` Did you mean: ${this.suggestions.join(", ")}?`:"";return`Model not found: ${this.providerID}/${this.modelID}.${t}`}static isInstance(t){return t instanceof e}},Hp=class e extends E.TaggedErrorClass()("ProviderInitError",{providerID:$e.ID,cause:E.optional(E.Defect())}){static{i(this,"InitError")}get message(){return`Failed to initialize provider: ${this.providerID}`}static isInstance(t){return t instanceof e}},Bp=class e extends E.TaggedErrorClass()("ProviderNoProvidersError",{}){static{i(this,"NoProvidersError")}get message(){return"No providers are available"}static isInstance(t){return t instanceof e}},Vp=class e extends E.TaggedErrorClass()("ProviderNoModelsError",{providerID:$e.ID}){static{i(this,"NoModelsError")}get message(){return`No models are available for provider: ${this.providerID}`}static isInstance(t){return t instanceof e}},Ys=class extends Oe.Service()("@opencode/Provider"){static{i(this,"Service")}},ete=od(Ys);function ZN(e){let t={input:e?.input??0,output:e?.output??0,cache:{read:e?.cache_read??0,write:e?.cache_write??0}};return e?.tiers&&(t.tiers=e.tiers.map(r=>({input:r.input,output:r.output,cache:{read:r.cache_read??0,write:r.cache_write??0},tier:r.tier}))),e?.context_over_200k&&(t.experimentalOver200K={cache:{read:e.context_over_200k.cache_read??0,write:e.context_over_200k.cache_write??0},input:e.context_over_200k.input,output:e.context_over_200k.output}),t}i(ZN,"cost");function e3(e,t){if(e==="cloudflare-ai-gateway"){if(t.startsWith("openai/"))return"@ai-sdk/openai";if(t.startsWith("anthropic/"))return"@ai-sdk/anthropic"}}i(e3,"cloudflareGatewayNpm");function KN(e,t){let r={id:Rr.ID.make(t.id),providerID:$e.ID.make(e.id),name:t.name,family:t.family,api:{id:t.id,url:t.provider?.api??e.api??"",npm:e3(e.id,t.id)??t.provider?.npm??e.npm??"@ai-sdk/openai-compatible"},status:t.status??"active",headers:{},options:{},cost:ZN(t.cost),limit:{context:t.limit.context,input:t.limit.input,output:t.limit.output},capabilities:{temperature:t.temperature??!1,reasoning:t.reasoning??!1,attachment:t.attachment??!1,toolcall:t.tool_call??!0,input:{text:t.modalities?.input?.includes("text")??!1,audio:t.modalities?.input?.includes("audio")??!1,image:t.modalities?.input?.includes("image")??!1,video:t.modalities?.input?.includes("video")??!1,pdf:t.modalities?.input?.includes("pdf")??!1},output:{text:t.modalities?.output?.includes("text")??!1,audio:t.modalities?.output?.includes("audio")??!1,image:t.modalities?.output?.includes("image")??!1,video:t.modalities?.output?.includes("video")??!1,pdf:t.modalities?.output?.includes("pdf")??!1},interleaved:typeof t.interleaved=="string"?{field:t.interleaved}:t.interleaved??!1},release_date:t.release_date??"",variants:{}},n=Rn.reasoningVariants(t,r)??Rn.variants(r);return{...r,variants:ji(n,s=>s)}}i(KN,"fromModelsDevModel");function t3(e){let t={};for(let[r,n]of Object.entries(e.models)){t[r]=KN(e,n);for(let[s,o]of Object.entries(n.experimental?.modes??{})){let a=`${n.id}-${s}`,u=KN(e,n);t[a]={...u,id:Rr.ID.make(a),name:`${n.name} ${s[0].toUpperCase()}${s.slice(1)}`,cost:o.cost?Ar(u.cost,ZN(o.cost)):u.cost,options:tte(u,o.provider?.body),headers:o.provider?.headers??u.headers}}}return{id:$e.ID.make(e.id),source:"custom",name:e.name,env:[...e.env??[]],options:{},models:t}}i(t3,"fromModelsDevProvider");function tte(e,t){if(!t)return e.options;let r=Object.fromEntries(Object.entries(t).map(([a,u])=>[a.replace(/_([a-z])/g,(c,l)=>l.toUpperCase()),u])),n=t.reasoning;if(e.api.npm!=="@ai-sdk/openai"||!ii(n)||typeof n.mode!="string")return r;let{reasoning:s,...o}=r;return{...o,reasoningMode:n.mode}}i(tte,"modeOptions");function tE(e,t,r){let n=e?Object.keys(e.models).filter(a=>{let u=e.models[a];return!(u.status==="deprecated"||u.status==="alpha"&&!r)}):[],s=iE.default.go(t,n,{limit:3,threshold:-1e4}).map(a=>a.target);if(s.length)return s;let o=t.toLowerCase().split(/[^a-z0-9]+/).filter(a=>a.length>1);return Do(n.map(a=>({id:a,score:o.filter(u=>a.toLowerCase().includes(u)).length})).filter(a=>a.score>0),[a=>a.score,"desc"],[a=>a.id,"asc"]).slice(0,3).map(a=>a.id)}i(tE,"modelSuggestions");var rte=Z.effect(Ys,g.gen(function*(){let e=yield*ye.Service,t=yield*En.Service,r=yield*No.Service,n=yield*qh.Service,s=yield*bi.Service,o=yield*Ph.Service,a=yield*Po.Service,u=yield*Dt.make(()=>g.gen(function*(){let y=yield*yd.make(),v=yield*t.get(),T=yield*o.get(),x=ji(T,t3),b=ji(x,$c),k={},C=new Map,R={},A={},N=new Map,D={},O={auth:i(ne=>r.get(ne).pipe(g.orDie),"auth"),config:i(()=>t.get(),"config"),env:i(()=>n.all(),"env"),get:i(ne=>n.get(ne),"get")};function q(ne,ae){let W=k[ne];if(W){k[ne]=Ar(W,ae);return}let H=b[ne];H&&(k[ne]=Ar(H,ae))}i(q,"mergeProvider");let F=yield*s.list(),I=Object.entries(v.provider??{}),j=new Set(v.disabled_providers??[]),J=v.enabled_providers?new Set(v.enabled_providers):null;function Q(ne){return!(J&&!J.has(ne)||j.has(ne))}i(Q,"isProviderAllowed");for(let ne of F){let ae=ne.provider,W=ae?.models;if(!ae||!W)continue;let H=$e.ID.make(ae.id);if(j.has(H))continue;let he=b[H];if(!he)continue;let M=yield*r.get(H).pipe(g.orDie);he.models=yield*g.promise(async()=>{let U=await W($c(he),{auth:M});return Object.fromEntries(Object.entries(U).map(([V,K])=>[V,{...K,id:Rr.ID.make(V),providerID:H}]))})}for(let[ne,ae]of I){let W=b[ne],H={id:$e.ID.make(ne),name:ae.name??W?.name??ne,env:ae.env??W?.env??[],options:Ar(W?.options??{},ae.options??{}),source:"config",models:W?.models??{}};for(let[he,M]of Object.entries(ae.models??{})){let U=H.models[M.id??he],V=M.id??U?.api.id??he,K=M.provider?.npm??ae.npm??U?.api.npm??e3(ne,V)??T[ne]?.npm??"@ai-sdk/openai-compatible",ce=sn(()=>M.name?M.name:M.id&&M.id!==he?he:U?.name??he),de={id:Rr.ID.make(he),api:{id:V,npm:K,url:M.provider?.api??ae?.api??U?.api.url??T[ne]?.api??""},status:M.status??U?.status??"active",name:ce,providerID:$e.ID.make(ne),capabilities:{temperature:M.temperature??U?.capabilities.temperature??!1,reasoning:M.reasoning??U?.capabilities.reasoning??!1,attachment:M.attachment??U?.capabilities.attachment??!1,toolcall:M.tool_call??U?.capabilities.toolcall??!0,input:{text:M.modalities?.input?.includes("text")??U?.capabilities.input.text??!0,audio:M.modalities?.input?.includes("audio")??U?.capabilities.input.audio??!1,image:M.modalities?.input?.includes("image")??U?.capabilities.input.image??!1,video:M.modalities?.input?.includes("video")??U?.capabilities.input.video??!1,pdf:M.modalities?.input?.includes("pdf")??U?.capabilities.input.pdf??!1},output:{text:M.modalities?.output?.includes("text")??U?.capabilities.output.text??!0,audio:M.modalities?.output?.includes("audio")??U?.capabilities.output.audio??!1,image:M.modalities?.output?.includes("image")??U?.capabilities.output.image??!1,video:M.modalities?.output?.includes("video")??U?.capabilities.output.video??!1,pdf:M.modalities?.output?.includes("pdf")??U?.capabilities.output.pdf??!1},interleaved:(typeof M.interleaved=="string"?{field:M.interleaved}:M.interleaved)??U?.capabilities.interleaved??(!U&&K==="@ai-sdk/openai-compatible"&&V.includes("deepseek")?{field:"reasoning_content"}:!1)},cost:{input:M?.cost?.input??U?.cost?.input??0,output:M?.cost?.output??U?.cost?.output??0,cache:{read:M?.cost?.cache_read??U?.cost?.cache.read??0,write:M?.cost?.cache_write??U?.cost?.cache.write??0}},options:Ar(U?.options??{},M.options??{}),limit:{context:M.limit?.context??U?.limit?.context??0,input:M.limit?.input??U?.limit?.input,output:M.limit?.output??U?.limit?.output??0},headers:Ar(U?.headers??{},M.headers??{}),family:M.family??U?.family??"",release_date:M.release_date??U?.release_date??"",variants:{}},ke=U?.api.npm===de.api.npm?U.variants??Rn.variants(de):Rn.variants(de),rt=Ar(ke,M.variants??{});de.variants=ji(Lh(rt,ar=>!ar.disabled),ar=>Mh(ar,["disabled"])),H.models[he]=de}b[ne]=H}let se=yield*n.all();for(let[ne,ae]of Object.entries(b)){let W=$e.ID.make(ne);if(j.has(W))continue;let H=ae.env.map(he=>se[he]).find(Boolean);H&&q(W,{source:"env",key:ae.env.length===1?H:void 0})}let tt=yield*r.all().pipe(g.orDie);for(let[ne,ae]of Object.entries(tt)){let W=$e.ID.make(ne);j.has(W)||ae.type==="api"&&q(W,{source:"api",key:ae.key})}for(let ne of F){if(!ne.auth)continue;let ae=$e.ID.make(ne.auth.provider);if(j.has(ae)||!(yield*r.get(ae).pipe(g.orDie))||!ne.auth.loader)continue;let he=(yield*g.promise(()=>ne.auth.loader(()=>y.promise(r.get(ae).pipe(g.orDie)),$c(b[ne.auth.provider]))))??{},M=k[ae]?{options:he}:{source:"custom",options:he};q(ae,M)}for(let[ne,ae]of Object.entries(Bee(O))){let W=$e.ID.make(ne);if(j.has(W))continue;let H=b[W];if(!H)continue;let he=yield*ae(H);if(he&&(he.autoload||k[W])){he.getModel&&(R[W]=he.getModel),he.vars&&(A[W]=he.vars),he.discoverModels&&(D[W]=he.discoverModels);let M=he.options??{},U=k[W]?{options:M}:{source:"custom",options:M};q(W,U)}}for(let[ne,ae]of I){let W=$e.ID.make(ne),H={source:"config"};ae.env&&(H.env=ae.env),ae.name&&(H.name=ae.name),ae.options&&(H.options=ae.options),q(W,H)}let oe=$e.ID.make("gitlab");D[oe]&&k[oe]&&Q(oe)&&(yield*g.promise(async()=>{try{let ne=await D[oe]();for(let[ae,W]of Object.entries(ne))k[oe].models[ae]||(k[oe].models[ae]=W)}catch{}}));for(let[ne,ae]of Object.entries(k)){let W=$e.ID.make(ne);if(!Q(W)){delete k[W];continue}let H=v.provider?.[W];for(let[he,M]of Object.entries(ae.models)){M.api.id=M.api.id??M.id??he,(he==="gpt-5-chat-latest"&&(W===$e.ID.openai||W===$e.ID.githubCopilot||W===$e.ID.openrouter)||W===$e.ID.openrouter&&he==="openai/gpt-5-chat")&&delete ae.models[he],M.status==="alpha"&&!a.enableExperimentalModels&&delete ae.models[he],M.status==="deprecated"&&delete ae.models[he],(H?.blacklist&&H.blacklist.includes(he)||H?.whitelist&&!H.whitelist.includes(he))&&delete ae.models[he],M.variants===void 0&&(M.variants=ji(Rn.variants(M),V=>V));let U=H?.models?.[he]?.variants;if(U&&M.variants){let V=Ar(M.variants,U);M.variants=ji(Lh(V,K=>!K.disabled),K=>Mh(K,["disabled"]))}}if(Object.keys(ae.models).length===0){delete k[W];continue}}return{models:C,providers:k,catalog:x,sdk:N,modelLoaders:R,varsLoaders:A}})),c=g.fn("Provider.list")(()=>Dt.use(u,y=>y.providers));async function l(y,v,T){try{let x=v.providers[y.providerID],b={...x.options};if(y.providerID==="google-vertex"&&y.api.npm==="@ai-sdk/google-vertex/anthropic"&&!b.baseURL){let I=XN(typeof b.project=="string"?b.project:void 0,typeof b.location=="string"?b.location:void 0);I&&(b.baseURL=I)}y.providerID==="google-vertex"&&!y.api.npm.includes("@ai-sdk/openai-compatible")&&delete b.fetch,y.api.npm.includes("@ai-sdk/openai-compatible")&&b.includeUsage!==!1&&(b.includeUsage=!0);let k=sn(()=>{let I=typeof b.baseURL=="string"&&b.baseURL!==""?b.baseURL:y.api.url;if(!I)return;let j=v.varsLoaders[y.providerID];if(j){let J=j(b);for(let[Q,se]of Object.entries(J)){let tt="${"+Q+"}";I=I.replaceAll(tt,se)}}return I=I.replace(/\$\{([^}]+)\}/g,(J,Q)=>T[String(Q)]??J),I});k!==void 0&&(b.baseURL=k),b.apiKey===void 0&&x.key&&(b.apiKey=x.key),y.headers&&(b.headers={...b.headers,...y.headers});let C=u_.fast(JSON.stringify({providerID:y.providerID,npm:y.api.npm,options:b})),R=v.sdk.get(C);if(R)return R;b.fetch=YN(b,y),delete b.chunkTimeout,delete b.headerTimeout;let A=$ee[y.api.npm];if(A){let j=(await A())({name:y.providerID,...b});return v.sdk.set(C,j),j}let N=await(async()=>{if(y.api.npm.startsWith("file://"))return y.api.npm;let I=await I_.add(y.api.npm);if(!I.entrypoint)throw new Error(`Package ${y.api.npm} has no import entrypoint`);return I.entrypoint})(),O=await import(N.startsWith("file://")?N:Mee(N).href),q=O[Object.keys(O).find(I=>I.startsWith("create"))],F=q({name:y.providerID,...b});return v.sdk.set(C,F),F}catch(x){throw new Hp({providerID:y.providerID,cause:x})}}i(l,"resolveSDK");let d=g.fn("Provider.getProvider")(y=>Dt.use(u,v=>v.providers[y])),p=g.fn("Provider.getModel")(function*(y,v){let T=yield*Dt.get(u),x=T.providers[y];if(!x){let k=T.catalog[y],C=k?tE(k,v,a.enableExperimentalModels):iE.default.go(y,Object.keys({...T.catalog,...T.providers}),{limit:3,threshold:-1e4}).map(R=>R.target);return yield*new ba({providerID:y,modelID:v,suggestions:C})}let b=x.models[v];if(!b){let k=tE(x,v,a.enableExperimentalModels),C=k.length?k:tE(T.catalog[y],v,a.enableExperimentalModels);return yield*new ba({providerID:y,modelID:v,suggestions:C})}return b}),m=g.fn("Provider.getLanguage")(function*(y){let v=yield*Dt.get(u),T=yield*n.all(),x=`${y.providerID}/${y.id}`;if(v.models.has(x))return v.models.get(x);let b=v.providers[y.providerID];return yield*qc.refineRejection(async()=>{let k=await l(y,v,T),C=v.modelLoaders[y.providerID]?await v.modelLoaders[y.providerID](k,y.api.id,{...b.options,...y.options},y):k.languageModel(y.api.id);return v.models.set(x,C),C},k=>k instanceof D_?new ba({modelID:y.id,providerID:y.providerID,cause:k}):void 0)}),f=g.fn("Provider.closest")(function*(y,v){let x=(yield*Dt.get(u)).providers[y];if(x){for(let b of v)for(let k of Object.keys(x.models))if(k.includes(b))return{providerID:y,modelID:k}}}),h=g.fn("Provider.getSmallModel")(function*(y){let v=yield*t.get();if(v.small_model){let R=nE(v.small_model);return yield*p(R.providerID,R.modelID).pipe(g.catchTag("ProviderModelNotFoundError",()=>g.succeed(void 0)))}let x=(yield*Dt.get(u)).providers[y];if(!x)return;let b=yield*s.trigger("experimental.provider.small_model",{provider:$c(x)},{model:void 0});if(b.model)return{...b.model,id:Rr.ID.make(b.model.id),providerID:$e.ID.make(b.model.providerID)};if(y===$e.ID.azure||y===$e.ID.make("azure-cognitive-services"))return;let k=y.startsWith("opencode")?["gpt-nano"]:y.startsWith("github-copilot")?["gpt-mini",...JN]:JN,C=Do(Object.values(x.models),[R=>R.release_date,"desc"],[R=>R.id,"desc"]);for(let R of k){let A=C.filter(N=>N.family===R);if(y===$e.ID.amazonBedrock){let N=["global.","us.","eu."],D=A.find(F=>F.id.startsWith("global."));if(D)return D;let O=x.options?.region;if(O){let F=O.split("-")[0];if(F==="us"||F==="eu"){let I=A.find(j=>j.id.startsWith(`${F}.`));if(I)return I}}let q=A.find(F=>!N.some(I=>F.id.startsWith(I)));if(q)return q;continue}if(A[0])return A[0]}}),S=g.fn("Provider.defaultModel")(function*(){let y=yield*t.get();if(y.model)return nE(y.model);let v=yield*Dt.get(u),T=yield*e.readJson(Lee.join(_t.Path.state,"model.json")).pipe(g.map(C=>!ii(C)||!Array.isArray(C.recent)?[]:C.recent.flatMap(R=>ii(R)?typeof R.providerID!="string"?[]:typeof R.modelID!="string"?[]:[{providerID:$e.ID.make(R.providerID),modelID:Rr.ID.make(R.modelID)}]:[])),g.catch(()=>g.succeed([])));for(let C of T){let R=v.providers[C.providerID];if(R&&R.models[C.modelID])return{providerID:C.providerID,modelID:C.modelID}}let x=Object.keys(y.provider??{}),b=Object.values(v.providers).find(C=>x.length===0||x.includes(C.id));if(!b)return yield*new Bp;let[k]=aE(Object.values(b.models));return k?{providerID:b.id,modelID:k.id}:yield*new Vp({providerID:b.id})});return Ys.of({list:c,getProvider:d,getModel:p,getLanguage:m,closest:f,getSmallModel:h,defaultModel:S})})),nte=["gpt-5","claude-sonnet-4","big-pickle","gemini-3-pro"],JN=["gemini-flash","gpt-nano","claude-haiku"];function aE(e){return Do(e,[t=>nte.findIndex(r=>t.id.includes(r)),"desc"],[t=>t.id.includes("latest")?0:1,"asc"],[t=>t.id,"desc"])}i(aE,"sort");function nE(e){let[t,...r]=e.split("/");return{providerID:$e.ID.make(t),modelID:Rr.ID.make(r.join("/"))}}i(nE,"parseModel");var ite=Lr.make({service:Ys,layer:rte,deps:[ye.node,En.node,No.node,qh.node,bi.node,Ph.node,Po.node]});var r3=`You are an elite AI agent architect specializing in crafting high-performance agent configurations. Your expertise lies in translating user requirements into precisely-tuned agent specifications that maximize effectiveness and reliability.
|
|
480
|
+
`)}catch{}}i(u,"write")})(Uc||={});var qee=3e5;function Fee(e,t,r,n=!1){if(typeof t!="number"||t<=0||!e.body||!e.headers.get("content-type")?.includes("text/event-stream")&&!(n&&e.ok))return e;let s=e.body.getReader(),o=new ReadableStream({async pull(a){let u=await new Promise((c,l)=>{let d=setTimeout(()=>{let p=new fr.ResponseStreamError("SSE read timed out");r.abort(p),s.cancel(p).catch(()=>{}),l(p)},t);s.read().then(p=>{clearTimeout(d),c(p)},p=>{clearTimeout(d),l(p)})});if(u.done){a.close();return}a.enqueue(u.value)},async cancel(a){r.abort(a),await s.cancel(a)}});return new Response(o,{headers:new Headers(e.headers),status:e.status,statusText:e.statusText})}i(Fee,"wrapSSE");function jee(e){let t=new AbortController,r=setTimeout(()=>t.abort(new fr.HeaderTimeoutError(e)),e);return{signal:t.signal,clear:i(()=>clearTimeout(r),"clear")}}i(jee,"timeoutController");function YN(e,t){let r=e.fetch,n=e.chunkTimeout??3e5,s=e.headerTimeout??3e5,o=e.timeout;return async(a,u)=>{let c=r??fetch,l=u??{},d=typeof n=="number"&&n>0?new AbortController:void 0,p=s===!1?void 0:s,m=typeof p=="number"?jee(p):void 0,f=[];l.signal&&f.push(l.signal),d&&f.push(d.signal),m&&f.push(m.signal),o!=null&&o!==!1&&f.push(AbortSignal.timeout(o));let h=f.length===0?null:f.length===1?f[0]:AbortSignal.any(f);h&&(l.signal=h);let S=!1;if(t.api.npm==="@ai-sdk/openai"&&typeof l.body=="string"&&l.method==="POST")try{S=JSON.parse(l.body).stream===!0}catch{}let y=l.method==="POST"&&typeof l.body=="string"&&Uc.on()?(()=>{try{return Uc.shape(JSON.parse(l.body),l.headers)}catch{return}})():void 0,v=Date.now(),T={...l,timeout:!1},x=await(t.api.npm==="@ai-sdk/anthropic"&&Fh.on()?Fh.send(c,a,T):c(a,T)).finally(()=>m?.clear()),b=y?Uc.wrap(x,{provider:t.providerID,...y},v):x,k=d?Fee(b,n,d,S):b;return S?eE.wrap(k):k}}i(YN,"timeoutFetch");function XN(e,t){if(e&&!(t!=="eu"&&t!=="us"))return`https://aiplatform.${t}.rep.googleapis.com/v1/projects/${e}/locations/${t}/publishers/anthropic/models`}i(XN,"googleVertexAnthropicBaseURL");function Uee(e){return e==="global"?"aiplatform.googleapis.com":e==="eu"||e==="us"?`aiplatform.${e}.rep.googleapis.com`:`${e}-aiplatform.googleapis.com`}i(Uee,"googleVertexEndpoint");var $ee={"@ai-sdk/amazon-bedrock":i(()=>import("./dist-KZ5R5QM5.js").then(e=>e.createAmazonBedrock),"@ai-sdk/amazon-bedrock"),"@ai-sdk/amazon-bedrock/mantle":i(()=>import("./mantle-IJXDXT4M.js").then(e=>e.createBedrockMantle),"@ai-sdk/amazon-bedrock/mantle"),"@ai-sdk/anthropic":i(()=>import("./dist-CL46WFZG.js").then(e=>e.createAnthropic),"@ai-sdk/anthropic"),"@ai-sdk/azure":i(()=>import("./dist-7CT3XCNN.js").then(e=>e.createAzure),"@ai-sdk/azure"),"@ai-sdk/google":i(()=>import("./dist-HXJTF22W.js").then(e=>e.createGoogleGenerativeAI),"@ai-sdk/google"),"@ai-sdk/google-vertex":i(()=>import("./dist-YUH4RKR5.js").then(e=>e.createVertex),"@ai-sdk/google-vertex"),"@ai-sdk/google-vertex/anthropic":i(()=>import("./anthropic-FVULF7C3.js").then(e=>e.createVertexAnthropic),"@ai-sdk/google-vertex/anthropic"),"@ai-sdk/openai":i(()=>import("./dist-RIC4WKHC.js").then(e=>e.createOpenAI),"@ai-sdk/openai"),"@ai-sdk/openai-compatible":i(()=>import("./dist-QJPOJCLB.js").then(e=>e.createOpenAICompatible),"@ai-sdk/openai-compatible"),"@openrouter/ai-sdk-provider":i(()=>import("./dist-TH2Q44RX.js").then(e=>e.createOpenRouter),"@openrouter/ai-sdk-provider"),"@ai-sdk/xai":i(()=>import("./dist-JFXI53ZF.js").then(e=>e.createXai),"@ai-sdk/xai"),"@ai-sdk/mistral":i(()=>import("./dist-TCE5MKZQ.js").then(e=>e.createMistral),"@ai-sdk/mistral"),"@ai-sdk/groq":i(()=>import("./dist-T776XKTM.js").then(e=>e.createGroq),"@ai-sdk/groq"),"@ai-sdk/deepinfra":i(()=>import("./dist-XPFB35TX.js").then(e=>e.createDeepInfra),"@ai-sdk/deepinfra"),"@ai-sdk/cerebras":i(()=>import("./dist-O4DF72J2.js").then(e=>e.createCerebras),"@ai-sdk/cerebras"),"@ai-sdk/cohere":i(()=>import("./dist-PH4MEGVR.js").then(e=>e.createCohere),"@ai-sdk/cohere"),"@ai-sdk/gateway":i(()=>import("./dist-KM5HCPZX.js").then(e=>e.createGateway),"@ai-sdk/gateway"),"@ai-sdk/togetherai":i(()=>import("./dist-NLXUYBW7.js").then(e=>e.createTogetherAI),"@ai-sdk/togetherai"),"@ai-sdk/perplexity":i(()=>import("./dist-KBYKWVT5.js").then(e=>e.createPerplexity),"@ai-sdk/perplexity"),"@ai-sdk/vercel":i(()=>import("./dist-XAFENVUS.js").then(e=>e.createVercel),"@ai-sdk/vercel"),"@ai-sdk/alibaba":i(()=>import("./dist-QYH62TCJ.js").then(e=>e.createAlibaba),"@ai-sdk/alibaba"),"gitlab-ai-provider":i(()=>import("./dist-KTNLTEHB.js").then(e=>e.createGitLab),"gitlab-ai-provider"),"@ai-sdk/github-copilot":i(()=>import("./copilot-provider-QVMLQZZC.js").then(e=>e.createOpenaiCompatible),"@ai-sdk/github-copilot"),"venice-ai-sdk-provider":i(()=>import("./dist-VV5FV5RT.js").then(e=>e.createVenice),"venice-ai-sdk-provider")};function GN(e,t,r){return r&&e.chat?e.chat(t):e.responses?e.responses(t):e.messages?e.messages(t):e.chat?e.chat(t):e.languageModel(t)}i(GN,"selectAzureLanguageModel");function Hee(e,t){return t==="openai.gpt-oss-safeguard-20b"||t==="openai.gpt-oss-safeguard-120b"?e.chat?.(t)??e.languageModel(t):e.responses?.(t)??e.languageModel(t)}i(Hee,"selectBedrockMantleLanguageModel");function Bee(e){return{anthropic:i(()=>g.succeed({autoload:!1,options:{headers:{"anthropic-beta":"interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"}}}),"anthropic"),opencode:g.fnUntraced(function*(t){let r=yield*e.env();return sn(()=>!!t.env.some(o=>r[o]))||!!(yield*e.auth(t.id))||!!(yield*e.config()).provider?.opencode?.options?.apiKey?{autoload:Object.keys(t.models).length>0,options:{}}:{autoload:!1}}),openai:i(()=>g.succeed({autoload:!1,async getModel(t,r,n){return t.responses(r)},options:{headerTimeout:qee}}),"openai"),meta:i(()=>g.succeed({autoload:!1,async getModel(t,r,n){return t.responses(r)}}),"meta"),xai:i(()=>g.succeed({autoload:!1,async getModel(t,r,n){return t.responses(r)},options:{}}),"xai"),"github-copilot":i(()=>g.succeed({autoload:!1,async getModel(t,r,n,s){if(t.responses===void 0&&t.chat===void 0)return t.languageModel(r);if(s&&"endpoint"in s.api){if(s.api.endpoint==="responses"&&t.responses)return t.responses(r);if(s.api.endpoint==="chat"&&t.chat)return t.chat(r)}let o=/^gpt-(\d+)/.exec(r);return o&&Number(o[1])>=5&&!r.startsWith("gpt-5-mini")?t.responses(r):t.chat(r)},options:{}}),"github-copilot"),azure:g.fnUntraced(function*(t){let r=yield*e.env(),n=yield*e.auth(t.id),s=sn(()=>[t.options?.resourceName,n?.type==="api"?n.metadata?.resourceName:void 0,n?.type==="oauth"?n.accountId:void 0,r.AZURE_RESOURCE_NAME].find(o=>typeof o=="string"&&o.trim()!==""));return!s&&!t.options?.baseURL?{autoload:!1,async getModel(){throw new Error("AZURE_RESOURCE_NAME is missing, set it using env var or reconnecting the azure provider and setting it")}}:{autoload:!1,async getModel(o,a,u){return GN(o,a,!!u?.useCompletionUrls)},options:{resourceName:s},vars(o){return s?{AZURE_RESOURCE_NAME:s}:{}}}}),"azure-cognitive-services":g.fnUntraced(function*(t){let r=yield*e.get("AZURE_COGNITIVE_SERVICES_RESOURCE_NAME");return{autoload:!1,async getModel(n,s,o){return GN(n,s,!!o?.useCompletionUrls)},options:{baseURL:r?`https://${r}.cognitiveservices.azure.com/openai${t.options?.useDeploymentBasedUrls?"":"/v1"}`:void 0}}}),"amazon-bedrock":g.fnUntraced(function*(){let t=(yield*e.config()).provider?.["amazon-bedrock"],r=yield*e.auth("amazon-bedrock"),n=yield*e.env(),s=t?.options?.region,o=n.AWS_REGION,a=s??o??"us-east-1",u=t?.options?.profile,c=n.AWS_PROFILE,l=u??c,d=n.AWS_ACCESS_KEY_ID,p=t?.options?.apiKey,m=sn(()=>{let T=process.env.AWS_BEARER_TOKEN_BEDROCK;if(T)return T;if(r?.type==="api")return process.env.AWS_BEARER_TOKEN_BEDROCK=r.key,r.key}),f=n.AWS_WEB_IDENTITY_TOKEN_FILE,h=!!(process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI||process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI);if(!l&&!d&&!m&&!p&&!f&&!h)return{autoload:!1};let{fromNodeProviderChain:S}=yield*g.promise(()=>import("./dist-es-G5UIJOU7.js")),y={region:a};if(!m&&!p){let T=l?{profile:l}:{};y.credentialProvider=S(T)}let v=t?.options?.endpoint??t?.options?.baseURL;return v&&(y.baseURL=v),{autoload:!0,options:y,vars(T){return{AWS_REGION:T.region??a}},async getModel(T,x,b,k){if(k?.api.npm==="@ai-sdk/amazon-bedrock/mantle")return Hee(T,x);if(x.startsWith("arn:")||["global.","us.","eu.","jp.","apac.","au."].some(N=>x.startsWith(N)))return T.languageModel(x);let R=b?.region??a,A=R.split("-")[0];switch(A){case"us":{let N=["nova-micro","nova-lite","nova-pro","nova-premier","nova-2","claude","deepseek.r1"].some(O=>x.includes(O)),D=R.startsWith("us-gov");N&&!D&&(x=`${A}.${x}`);break}case"eu":{let N=["eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-south-1","eu-south-2"].some(O=>R.includes(O)),D=["claude","nova-lite","nova-micro","llama3","pixtral"].some(O=>x.includes(O));N&&D&&(x=`${A}.${x}`);break}case"ap":{let N=["ap-southeast-2","ap-southeast-4"].includes(R),D=R==="ap-northeast-1";N&&["anthropic.claude-sonnet-4-5","anthropic.claude-haiku"].some(O=>x.includes(O))?(A="au",x=`${A}.${x}`):D?["claude","nova-lite","nova-micro","nova-pro"].some(q=>x.includes(q))&&(A="jp",x=`${A}.${x}`):["claude","nova-lite","nova-micro","nova-pro"].some(q=>x.includes(q))&&(A="apac",x=`${A}.${x}`);break}}return T.languageModel(x)}}}),llmgateway:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode","X-Source":"opencode"}}}),"llmgateway"),openrouter:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode"}}}),"openrouter"),nvidia:i(t=>g.succeed({autoload:t.source==="config",options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode","X-BILLING-INVOKE-ORIGIN":"OpenCode"}}}),"nvidia"),vercel:i(()=>g.succeed({autoload:!1,options:{headers:{"http-referer":"https://opencode.ai/","x-title":"opencode"}}}),"vercel"),"google-vertex":g.fnUntraced(function*(t){let r=yield*e.env(),n=t.options?.project??r.GOOGLE_VERTEX_PROJECT??r.GOOGLE_CLOUD_PROJECT??r.GCP_PROJECT??r.GCLOUD_PROJECT,s=String(t.options?.location??r.GOOGLE_VERTEX_LOCATION??r.GOOGLE_CLOUD_LOCATION??r.VERTEX_LOCATION??"us-central1");return!n?{autoload:!1}:{autoload:!0,vars(a){return{...n&&{GOOGLE_VERTEX_PROJECT:n},GOOGLE_VERTEX_LOCATION:s,GOOGLE_VERTEX_ENDPOINT:Uee(s)}},options:{project:n,location:s,fetch:i(async(a,u)=>{let{GoogleAuth:c}=await import("./src-3NCXEROI.js"),p=await(await new c({scopes:["https://www.googleapis.com/auth/cloud-platform"]}).getClient()).getAccessToken(),m=new Headers(u?.headers);return m.set("Authorization",`Bearer ${p.token}`),fetch(a,{...u,headers:m})},"fetch")},async getModel(a,u){let c=String(u).trim();return a.languageModel(c)}}}),"google-vertex-anthropic":g.fnUntraced(function*(){let t=yield*e.env(),r=t.GOOGLE_CLOUD_PROJECT??t.GCP_PROJECT??t.GCLOUD_PROJECT,n=t.GOOGLE_CLOUD_LOCATION??t.VERTEX_LOCATION??"global";if(!!!r)return{autoload:!1};let o=XN(r,n);return{autoload:!0,options:{project:r,location:n,...o&&{baseURL:o}},async getModel(a,u){let c=String(u).trim();return a.languageModel(c)}}}),"sap-ai-core":g.fnUntraced(function*(){let t=yield*e.auth("sap-ai-core"),r=sn(()=>{let o=process.env.AICORE_SERVICE_KEY;if(o)return o;if(t?.type==="api")return process.env.AICORE_SERVICE_KEY=t.key,t.key}),n=process.env.AICORE_DEPLOYMENT_ID,s=process.env.AICORE_RESOURCE_GROUP;return{autoload:!!r,options:r?{deploymentId:n,resourceGroup:s}:{},async getModel(o,a){return o(a)}}}),zenmux:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode"}}}),"zenmux"),gitlab:g.fnUntraced(function*(t){let{VERSION:r,isWorkflowModel:n,discoverWorkflowModels:s}=yield*g.promise(()=>import("./dist-KTNLTEHB.js")),o=(yield*e.get("GITLAB_INSTANCE_URL"))||"https://gitlab.com",a=yield*e.auth(t.id),u=a?.type==="oauth"?a.access:a?.type==="api"?a.key:void 0,c=u??(yield*e.get("GITLAB_TOKEN")),l=(yield*e.config()).provider?.gitlab,d=yield*Dt.directory,p={"User-Agent":`opencode/${ut} gitlab-ai-provider/${r} (${Ei.platform()} ${Ei.release()}; ${Ei.arch()})`,"anthropic-beta":"context-1m-2025-08-07",...l?.options?.aiGatewayHeaders},m={duo_agent_platform_agentic_chat:!0,duo_agent_platform:!0,...l?.options?.featureFlags};return{autoload:!!c,options:{instanceUrl:o,apiKey:c,aiGatewayHeaders:p,featureFlags:m},async getModel(f,h,S){if(h.startsWith("duo-workflow-")){let y=typeof S?.workflowRef=="string"?S.workflowRef:void 0,v=n(h)?h:"duo-workflow",T=typeof S?.workflowDefinition=="string"?S.workflowDefinition:void 0,x=f.workflowChat(v,{featureFlags:m,workflowDefinition:T});return y&&(x.selectedModelRef=y),x}return f.agenticChat(h,{aiGatewayHeaders:p,featureFlags:m})},async discoverModels(){if(!u)return{};try{let f=u,S=await s({instanceUrl:o,getHeaders:i(()=>a?.type==="api"?{"PRIVATE-TOKEN":f}:{Authorization:`Bearer ${f}`},"getHeaders")},{workingDirectory:d});if(!S.models.length)return{};let y={};for(let v of S.models)t.models[v.id]||(y[v.id]={id:Rr.ID.make(v.id),providerID:$e.ID.make("gitlab"),name:`Agent Platform (${v.name})`,family:"",api:{id:v.id,url:o,npm:"gitlab-ai-provider"},status:"active",headers:{},options:{workflowRef:v.ref},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:v.context,output:v.output},capabilities:{temperature:!1,reasoning:!0,attachment:!0,toolcall:!0,input:{text:!0,audio:!1,image:!0,video:!1,pdf:!0},output:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},interleaved:!1},release_date:"",variants:{}});return y}catch{return{}}}}}),"cloudflare-workers-ai":g.fnUntraced(function*(t){if(t.options?.baseURL)return{autoload:!1};let r=yield*e.auth(t.id),n=yield*e.env(),s=n.CLOUDFLARE_ACCOUNT_ID||(r?.type==="api"?r.metadata?.accountId:void 0);if(!s)return{autoload:!1,async getModel(){throw new Error("CLOUDFLARE_ACCOUNT_ID is missing. Set it with: export CLOUDFLARE_ACCOUNT_ID=<your-account-id>")}};let o=n.CLOUDFLARE_API_KEY||(r?.type==="api"?r.key:void 0);return{autoload:!!o,options:{apiKey:o,headers:{"User-Agent":`opencode/${ut} cloudflare-workers-ai (${Ei.platform()} ${Ei.release()}; ${Ei.arch()})`}},async getModel(a,u){return a.languageModel(u)},vars(a){return{CLOUDFLARE_ACCOUNT_ID:s}}}}),"cloudflare-ai-gateway":g.fnUntraced(function*(t){if(t.options?.baseURL)return{autoload:!1};let r=yield*e.auth(t.id),n=yield*e.env(),s=n.CLOUDFLARE_ACCOUNT_ID||(r?.type==="api"?r.metadata?.accountId:void 0),o=n.CLOUDFLARE_GATEWAY_ID||(r?.type==="api"?r.metadata?.gatewayId:void 0);if(!s||!o){let S=[s?void 0:"CLOUDFLARE_ACCOUNT_ID",o?void 0:"CLOUDFLARE_GATEWAY_ID"].filter(y=>!!y);return{autoload:!1,async getModel(){throw new Error(`${S.join(" and ")} missing. Set with: ${S.map(y=>`export ${y}=<value>`).join(" && ")}`)}}}let a=n.CLOUDFLARE_API_TOKEN||n.CF_AIG_TOKEN||(r?.type==="api"?r.key:void 0);if(!a)throw new Error("CLOUDFLARE_API_TOKEN (or CF_AIG_TOKEN) is required for Cloudflare AI Gateway. Set it via environment variable or run `opencode auth cloudflare-ai-gateway`.");let{createAiGateway:u,parseAiGatewayOptions:c}=yield*g.promise(()=>import("./dist-5NQOHNPL.js")),{createUnified:l}=yield*g.promise(()=>import("./unified-W3ZKZ4HG.js")),{createOpenAI:d}=yield*g.promise(()=>import("./openai-ZOJI6I5R.js")),{createAnthropic:p}=yield*g.promise(()=>import("./anthropic-45OFTLAW.js")),{createOpenAICompatible:m}=yield*g.promise(()=>import("./dist-QJPOJCLB.js")),h={metadata:sn(()=>{if(t.options?.metadata)return t.options.metadata;try{return JSON.parse(t.options?.headers?.["cf-aig-metadata"])}catch{return}}),cacheTtl:t.options?.cacheTtl,cacheKey:t.options?.cacheKey,skipCache:t.options?.skipCache,collectLog:t.options?.collectLog,headers:{"User-Agent":`opencode/${ut} cloudflare-ai-gateway (${Ei.platform()} ${Ei.release()}; ${Ei.arch()})`}};return{autoload:!0,async getModel(S,y,v){let T=YN(v??{},{providerID:"cloudflare-ai-gateway",api:{npm:"ai-gateway-provider"}}),x=u({binding:{run(k,C){let R=c(h);return R.set("Content-Type","application/json"),R.set("cf-aig-authorization",`Bearer ${a}`),T(`https://gateway.ai.cloudflare.com/v1/${s}/${o}`,{body:JSON.stringify(k),headers:R,method:"POST",signal:C?.signal})}}});return y.startsWith("openai/")?x(d()(y.slice(7))):y.startsWith("anthropic/")?x(p()(y.slice(10).replaceAll(".","-"))):y.startsWith("workers-ai/")||y.startsWith("@cf/")?x(l({apiKey:a})(y)):m({name:"cloudflare-ai-gateway",baseURL:`https://api.cloudflare.com/client/v4/accounts/${s}/ai/v1`,apiKey:a,headers:{"cf-aig-gateway-id":o},fetch:T})(y)},options:{}}}),cerebras:i(()=>g.succeed({autoload:!1,options:{headers:{"X-Cerebras-3rd-Party-Integration":"opencode"}}}),"cerebras"),kilo:i(()=>g.succeed({autoload:!1,options:{headers:{"HTTP-Referer":"https://opencode.ai/","X-Title":"opencode"}}}),"kilo"),"snowflake-cortex":g.fnUntraced(function*(t){let r=yield*e.env(),n=yield*e.auth(t.id),s=r.SNOWFLAKE_ACCOUNT??(n?.type==="api"?n.metadata?.account:void 0)??(n?.type==="oauth"?n.accountId:void 0)??t.options?.account,o=r.SNOWFLAKE_CORTEX_TOKEN??r.SNOWFLAKE_CORTEX_PAT,a=n?.type==="api"?n.key:void 0,u=n?.type==="oauth"?n.access:void 0,c=t.options?.token??t.options?.apiKey,l=o??a??u??c;if(!s||!l){let f=[!s&&"SNOWFLAKE_ACCOUNT",!l&&"SNOWFLAKE_CORTEX_TOKEN"].filter(Boolean).join(", ");return{autoload:!1,async getModel(){throw new Error(`Snowflake Cortex: missing credentials (${f}). Provide a bearer token (OAuth, JWT, or PAT) via env var, opencode auth, or provider options.`)}}}let p={baseURL:`https://${s}.snowflakecomputing.com/api/v2/cortex/v1`,apiKey:l};return u!==void 0&&o===void 0&&a===void 0&&c===void 0||(p.fetch=async(f,h)=>{if(h?.body&&typeof h.body=="string")try{let y=JSON.parse(h.body);"max_tokens"in y&&(y.max_completion_tokens=y.max_tokens,delete y.max_tokens,h={...h,body:JSON.stringify(y)})}catch{}let S=await fetch(f,h);if(!S.ok&&S.status===400)try{let y=await S.clone().json();if(String(y.message||y.error||"").toLowerCase().includes("conversation complete"))return new Response(JSON.stringify({choices:[{finish_reason:"stop",message:{content:"",role:"assistant"}}]}),{status:200,headers:new Headers({"content-type":"application/json"})})}catch{}if(S.body&&S.headers.get("content-type")?.includes("text/event-stream")){let y=S.body.getReader(),v=new TextEncoder,T=new TextDecoder,x=new ReadableStream({async pull(b){let{done:k,value:C}=await y.read();if(k){b.close();return}let R=T.decode(C,{stream:!0});b.enqueue(v.encode(R.replace(/"role"\s*:\s*""/g,'"role":"assistant"')))},cancel(){y.cancel()}});return new Response(x,{headers:S.headers,status:S.status})}return S}),{autoload:t.source==="config",options:p}})}}i(Bee,"custom");var Vee=E.Struct({id:E.String,url:E.String,npm:E.String}),WN=E.Struct({text:E.Boolean,audio:E.Boolean,image:E.Boolean,video:E.Boolean,pdf:E.Boolean}),zee=E.Union([E.Literals(["reasoning","reasoning_content","reasoning_text"]),E.String]),Gee=E.Union([E.Boolean,E.Struct({field:zee})]),Wee=E.Struct({temperature:E.Boolean,reasoning:E.Boolean,attachment:E.Boolean,toolcall:E.Boolean,input:WN,output:WN,interleaved:Gee}),rE=E.Struct({read:E.Finite,write:E.Finite}),Kee=E.Struct({input:E.Finite,output:E.Finite,cache:rE,tier:E.Struct({type:E.Literal("context"),size:E.Finite})}),Jee=E.Struct({input:E.Finite,output:E.Finite,cache:rE,tiers:It(E.Array(Kee)),experimentalOver200K:It(E.Struct({input:E.Finite,output:E.Finite,cache:rE}))}),Yee=E.Struct({context:E.Finite,input:It(E.Finite),output:E.Finite}),sE=E.Struct({id:Rr.ID,providerID:$e.ID,api:Vee,name:E.String,family:It(E.String),capabilities:Wee,cost:Jee,limit:Yee,status:VN,options:E.Record(E.String,E.Any),headers:E.Record(E.String,E.String),release_date:E.String,variants:It(E.Record(E.String,E.Record(E.String,E.Any)))}).annotate({identifier:"Model"}),oE=E.Struct({id:$e.ID,name:E.String,source:E.Literals(["env","config","custom","api"]),env:E.Array(E.String),key:It(E.String),options:E.Record(E.String,E.Any),models:E.Record(E.String,sE)}).annotate({identifier:"Provider"}),QN=E.Record(E.String,E.String),Xee=E.Struct({all:E.Array(oE),default:QN,connected:E.Array(E.String)}),Qee=E.Struct({providers:E.Array(oE),default:QN});function $c(e){return JSON.parse(JSON.stringify({...e,models:Object.fromEntries(Object.entries(e.models).filter(([,t])=>E.is(sE)(t)))},(t,r)=>{if(!(typeof r=="function"||typeof r=="symbol"||r===void 0))return typeof r=="bigint"?r.toString():r}))}i($c,"toPublicInfo");function Zee(e){return ji(e,t=>aE(Object.values(t.models))[0].id)}i(Zee,"defaultModelIDs");var ba=class e extends E.TaggedErrorClass()("ProviderModelNotFoundError",{providerID:$e.ID,modelID:Rr.ID,suggestions:E.optional(E.Array(E.String)),cause:E.optional(E.Defect())}){static{i(this,"ModelNotFoundError")}get message(){let t=this.suggestions?.length?` Did you mean: ${this.suggestions.join(", ")}?`:"";return`Model not found: ${this.providerID}/${this.modelID}.${t}`}static isInstance(t){return t instanceof e}},Hp=class e extends E.TaggedErrorClass()("ProviderInitError",{providerID:$e.ID,cause:E.optional(E.Defect())}){static{i(this,"InitError")}get message(){return`Failed to initialize provider: ${this.providerID}`}static isInstance(t){return t instanceof e}},Bp=class e extends E.TaggedErrorClass()("ProviderNoProvidersError",{}){static{i(this,"NoProvidersError")}get message(){return"No providers are available"}static isInstance(t){return t instanceof e}},Vp=class e extends E.TaggedErrorClass()("ProviderNoModelsError",{providerID:$e.ID}){static{i(this,"NoModelsError")}get message(){return`No models are available for provider: ${this.providerID}`}static isInstance(t){return t instanceof e}},Ys=class extends Oe.Service()("@opencode/Provider"){static{i(this,"Service")}},ete=od(Ys);function ZN(e){let t={input:e?.input??0,output:e?.output??0,cache:{read:e?.cache_read??0,write:e?.cache_write??0}};return e?.tiers&&(t.tiers=e.tiers.map(r=>({input:r.input,output:r.output,cache:{read:r.cache_read??0,write:r.cache_write??0},tier:r.tier}))),e?.context_over_200k&&(t.experimentalOver200K={cache:{read:e.context_over_200k.cache_read??0,write:e.context_over_200k.cache_write??0},input:e.context_over_200k.input,output:e.context_over_200k.output}),t}i(ZN,"cost");function e3(e,t){if(e==="cloudflare-ai-gateway"){if(t.startsWith("openai/"))return"@ai-sdk/openai";if(t.startsWith("anthropic/"))return"@ai-sdk/anthropic"}}i(e3,"cloudflareGatewayNpm");function KN(e,t){let r={id:Rr.ID.make(t.id),providerID:$e.ID.make(e.id),name:t.name,family:t.family,api:{id:t.id,url:t.provider?.api??e.api??"",npm:e3(e.id,t.id)??t.provider?.npm??e.npm??"@ai-sdk/openai-compatible"},status:t.status??"active",headers:{},options:{},cost:ZN(t.cost),limit:{context:t.limit.context,input:t.limit.input,output:t.limit.output},capabilities:{temperature:t.temperature??!1,reasoning:t.reasoning??!1,attachment:t.attachment??!1,toolcall:t.tool_call??!0,input:{text:t.modalities?.input?.includes("text")??!1,audio:t.modalities?.input?.includes("audio")??!1,image:t.modalities?.input?.includes("image")??!1,video:t.modalities?.input?.includes("video")??!1,pdf:t.modalities?.input?.includes("pdf")??!1},output:{text:t.modalities?.output?.includes("text")??!1,audio:t.modalities?.output?.includes("audio")??!1,image:t.modalities?.output?.includes("image")??!1,video:t.modalities?.output?.includes("video")??!1,pdf:t.modalities?.output?.includes("pdf")??!1},interleaved:typeof t.interleaved=="string"?{field:t.interleaved}:t.interleaved??!1},release_date:t.release_date??"",variants:{}},n=Rn.reasoningVariants(t,r)??Rn.variants(r);return{...r,variants:ji(n,s=>s)}}i(KN,"fromModelsDevModel");function t3(e){let t={};for(let[r,n]of Object.entries(e.models)){t[r]=KN(e,n);for(let[s,o]of Object.entries(n.experimental?.modes??{})){let a=`${n.id}-${s}`,u=KN(e,n);t[a]={...u,id:Rr.ID.make(a),name:`${n.name} ${s[0].toUpperCase()}${s.slice(1)}`,cost:o.cost?Ar(u.cost,ZN(o.cost)):u.cost,options:tte(u,o.provider?.body),headers:o.provider?.headers??u.headers}}}return{id:$e.ID.make(e.id),source:"custom",name:e.name,env:[...e.env??[]],options:{},models:t}}i(t3,"fromModelsDevProvider");function tte(e,t){if(!t)return e.options;let r=Object.fromEntries(Object.entries(t).map(([a,u])=>[a.replace(/_([a-z])/g,(c,l)=>l.toUpperCase()),u])),n=t.reasoning;if(e.api.npm!=="@ai-sdk/openai"||!ii(n)||typeof n.mode!="string")return r;let{reasoning:s,...o}=r;return{...o,reasoningMode:n.mode}}i(tte,"modeOptions");function tE(e,t,r){let n=e?Object.keys(e.models).filter(a=>{let u=e.models[a];return!(u.status==="deprecated"||u.status==="alpha"&&!r)}):[],s=iE.default.go(t,n,{limit:3,threshold:-1e4}).map(a=>a.target);if(s.length)return s;let o=t.toLowerCase().split(/[^a-z0-9]+/).filter(a=>a.length>1);return Do(n.map(a=>({id:a,score:o.filter(u=>a.toLowerCase().includes(u)).length})).filter(a=>a.score>0),[a=>a.score,"desc"],[a=>a.id,"asc"]).slice(0,3).map(a=>a.id)}i(tE,"modelSuggestions");var rte=Z.effect(Ys,g.gen(function*(){let e=yield*ye.Service,t=yield*En.Service,r=yield*No.Service,n=yield*qh.Service,s=yield*bi.Service,o=yield*Ph.Service,a=yield*Po.Service,u=yield*Dt.make(()=>g.gen(function*(){let y=yield*yd.make(),v=yield*t.get(),T=yield*o.get(),x=ji(T,t3),b=ji(x,$c),k={},C=new Map,R={},A={},N=new Map,D={},O={auth:i(ne=>r.get(ne).pipe(g.orDie),"auth"),config:i(()=>t.get(),"config"),env:i(()=>n.all(),"env"),get:i(ne=>n.get(ne),"get")};function q(ne,ae){let W=k[ne];if(W){k[ne]=Ar(W,ae);return}let H=b[ne];H&&(k[ne]=Ar(H,ae))}i(q,"mergeProvider");let F=yield*s.list(),I=Object.entries(v.provider??{}),j=new Set(v.disabled_providers??[]),J=v.enabled_providers?new Set(v.enabled_providers):null;function Q(ne){return!(J&&!J.has(ne)||j.has(ne))}i(Q,"isProviderAllowed");for(let ne of F){let ae=ne.provider,W=ae?.models;if(!ae||!W)continue;let H=$e.ID.make(ae.id);if(j.has(H))continue;let he=b[H];if(!he)continue;let M=yield*r.get(H).pipe(g.orDie);he.models=yield*g.promise(async()=>{let U=await W($c(he),{auth:M});return Object.fromEntries(Object.entries(U).map(([V,K])=>[V,{...K,id:Rr.ID.make(V),providerID:H}]))})}for(let[ne,ae]of I){let W=b[ne],H={id:$e.ID.make(ne),name:ae.name??W?.name??ne,env:ae.env??W?.env??[],options:Ar(W?.options??{},ae.options??{}),source:"config",models:W?.models??{}};for(let[he,M]of Object.entries(ae.models??{})){let U=H.models[M.id??he],V=M.id??U?.api.id??he,K=M.provider?.npm??ae.npm??U?.api.npm??e3(ne,V)??T[ne]?.npm??"@ai-sdk/openai-compatible",ce=sn(()=>M.name?M.name:M.id&&M.id!==he?he:U?.name??he),de={id:Rr.ID.make(he),api:{id:V,npm:K,url:M.provider?.api??ae?.api??U?.api.url??T[ne]?.api??""},status:M.status??U?.status??"active",name:ce,providerID:$e.ID.make(ne),capabilities:{temperature:M.temperature??U?.capabilities.temperature??!1,reasoning:M.reasoning??U?.capabilities.reasoning??!1,attachment:M.attachment??U?.capabilities.attachment??!1,toolcall:M.tool_call??U?.capabilities.toolcall??!0,input:{text:M.modalities?.input?.includes("text")??U?.capabilities.input.text??!0,audio:M.modalities?.input?.includes("audio")??U?.capabilities.input.audio??!1,image:M.modalities?.input?.includes("image")??U?.capabilities.input.image??!1,video:M.modalities?.input?.includes("video")??U?.capabilities.input.video??!1,pdf:M.modalities?.input?.includes("pdf")??U?.capabilities.input.pdf??!1},output:{text:M.modalities?.output?.includes("text")??U?.capabilities.output.text??!0,audio:M.modalities?.output?.includes("audio")??U?.capabilities.output.audio??!1,image:M.modalities?.output?.includes("image")??U?.capabilities.output.image??!1,video:M.modalities?.output?.includes("video")??U?.capabilities.output.video??!1,pdf:M.modalities?.output?.includes("pdf")??U?.capabilities.output.pdf??!1},interleaved:(typeof M.interleaved=="string"?{field:M.interleaved}:M.interleaved)??U?.capabilities.interleaved??(!U&&K==="@ai-sdk/openai-compatible"&&V.includes("deepseek")?{field:"reasoning_content"}:!1)},cost:{input:M?.cost?.input??U?.cost?.input??0,output:M?.cost?.output??U?.cost?.output??0,cache:{read:M?.cost?.cache_read??U?.cost?.cache.read??0,write:M?.cost?.cache_write??U?.cost?.cache.write??0}},options:Ar(U?.options??{},M.options??{}),limit:{context:M.limit?.context??U?.limit?.context??0,input:M.limit?.input??U?.limit?.input,output:M.limit?.output??U?.limit?.output??0},headers:Ar(U?.headers??{},M.headers??{}),family:M.family??U?.family??"",release_date:M.release_date??U?.release_date??"",variants:{}},ke=U?.api.npm===de.api.npm?U.variants??Rn.variants(de):Rn.variants(de),rt=Ar(ke,M.variants??{});de.variants=ji(Lh(rt,ar=>!ar.disabled),ar=>Mh(ar,["disabled"])),H.models[he]=de}b[ne]=H}let se=yield*n.all();for(let[ne,ae]of Object.entries(b)){let W=$e.ID.make(ne);if(j.has(W))continue;let H=ae.env.map(he=>se[he]).find(Boolean);H&&q(W,{source:"env",key:ae.env.length===1?H:void 0})}let tt=yield*r.all().pipe(g.orDie);for(let[ne,ae]of Object.entries(tt)){let W=$e.ID.make(ne);j.has(W)||ae.type==="api"&&q(W,{source:"api",key:ae.key})}for(let ne of F){if(!ne.auth)continue;let ae=$e.ID.make(ne.auth.provider);if(j.has(ae)||!(yield*r.get(ae).pipe(g.orDie))||!ne.auth.loader)continue;let he=(yield*g.promise(()=>ne.auth.loader(()=>y.promise(r.get(ae).pipe(g.orDie)),$c(b[ne.auth.provider]))))??{},M=k[ae]?{options:he}:{source:"custom",options:he};q(ae,M)}for(let[ne,ae]of Object.entries(Bee(O))){let W=$e.ID.make(ne);if(j.has(W))continue;let H=b[W];if(!H)continue;let he=yield*ae(H);if(he&&(he.autoload||k[W])){he.getModel&&(R[W]=he.getModel),he.vars&&(A[W]=he.vars),he.discoverModels&&(D[W]=he.discoverModels);let M=he.options??{},U=k[W]?{options:M}:{source:"custom",options:M};q(W,U)}}for(let[ne,ae]of I){let W=$e.ID.make(ne),H={source:"config"};ae.env&&(H.env=ae.env),ae.name&&(H.name=ae.name),ae.options&&(H.options=ae.options),q(W,H)}let oe=$e.ID.make("gitlab");D[oe]&&k[oe]&&Q(oe)&&(yield*g.promise(async()=>{try{let ne=await D[oe]();for(let[ae,W]of Object.entries(ne))k[oe].models[ae]||(k[oe].models[ae]=W)}catch{}}));for(let[ne,ae]of Object.entries(k)){let W=$e.ID.make(ne);if(!Q(W)){delete k[W];continue}let H=v.provider?.[W];for(let[he,M]of Object.entries(ae.models)){M.api.id=M.api.id??M.id??he,(he==="gpt-5-chat-latest"&&(W===$e.ID.openai||W===$e.ID.githubCopilot||W===$e.ID.openrouter)||W===$e.ID.openrouter&&he==="openai/gpt-5-chat")&&delete ae.models[he],M.status==="alpha"&&!a.enableExperimentalModels&&delete ae.models[he],M.status==="deprecated"&&delete ae.models[he],(H?.blacklist&&H.blacklist.includes(he)||H?.whitelist&&!H.whitelist.includes(he))&&delete ae.models[he],M.variants===void 0&&(M.variants=ji(Rn.variants(M),V=>V));let U=H?.models?.[he]?.variants;if(U&&M.variants){let V=Ar(M.variants,U);M.variants=ji(Lh(V,K=>!K.disabled),K=>Mh(K,["disabled"]))}}if(Object.keys(ae.models).length===0){delete k[W];continue}}return{models:C,providers:k,catalog:x,sdk:N,modelLoaders:R,varsLoaders:A}})),c=g.fn("Provider.list")(()=>Dt.use(u,y=>y.providers));async function l(y,v,T){try{let x=v.providers[y.providerID],b={...x.options};if(y.providerID==="google-vertex"&&y.api.npm==="@ai-sdk/google-vertex/anthropic"&&!b.baseURL){let I=XN(typeof b.project=="string"?b.project:void 0,typeof b.location=="string"?b.location:void 0);I&&(b.baseURL=I)}y.providerID==="google-vertex"&&!y.api.npm.includes("@ai-sdk/openai-compatible")&&delete b.fetch,y.api.npm.includes("@ai-sdk/openai-compatible")&&b.includeUsage!==!1&&(b.includeUsage=!0);let k=sn(()=>{let I=typeof b.baseURL=="string"&&b.baseURL!==""?b.baseURL:y.api.url;if(!I)return;let j=v.varsLoaders[y.providerID];if(j){let J=j(b);for(let[Q,se]of Object.entries(J)){let tt="${"+Q+"}";I=I.replaceAll(tt,se)}}return I=I.replace(/\$\{([^}]+)\}/g,(J,Q)=>T[String(Q)]??J),I});k!==void 0&&(b.baseURL=k),b.apiKey===void 0&&x.key&&(b.apiKey=x.key),y.headers&&(b.headers={...b.headers,...y.headers});let C=u_.fast(JSON.stringify({providerID:y.providerID,npm:y.api.npm,options:b})),R=v.sdk.get(C);if(R)return R;b.fetch=YN(b,y),delete b.chunkTimeout,delete b.headerTimeout;let A=$ee[y.api.npm];if(A){let j=(await A())({name:y.providerID,...b});return v.sdk.set(C,j),j}let N=await(async()=>{if(y.api.npm.startsWith("file://"))return y.api.npm;let I=await I_.add(y.api.npm);if(!I.entrypoint)throw new Error(`Package ${y.api.npm} has no import entrypoint`);return I.entrypoint})(),O=await import(N.startsWith("file://")?N:Mee(N).href),q=O[Object.keys(O).find(I=>I.startsWith("create"))],F=q({name:y.providerID,...b});return v.sdk.set(C,F),F}catch(x){throw new Hp({providerID:y.providerID,cause:x})}}i(l,"resolveSDK");let d=g.fn("Provider.getProvider")(y=>Dt.use(u,v=>v.providers[y])),p=g.fn("Provider.getModel")(function*(y,v){let T=yield*Dt.get(u),x=T.providers[y];if(!x){let k=T.catalog[y],C=k?tE(k,v,a.enableExperimentalModels):iE.default.go(y,Object.keys({...T.catalog,...T.providers}),{limit:3,threshold:-1e4}).map(R=>R.target);return yield*new ba({providerID:y,modelID:v,suggestions:C})}let b=x.models[v];if(!b){let k=tE(x,v,a.enableExperimentalModels),C=k.length?k:tE(T.catalog[y],v,a.enableExperimentalModels);return yield*new ba({providerID:y,modelID:v,suggestions:C})}return b}),m=g.fn("Provider.getLanguage")(function*(y){let v=yield*Dt.get(u),T=yield*n.all(),x=`${y.providerID}/${y.id}`;if(v.models.has(x))return v.models.get(x);let b=v.providers[y.providerID];return yield*qc.refineRejection(async()=>{let k=await l(y,v,T),C=v.modelLoaders[y.providerID]?await v.modelLoaders[y.providerID](k,y.api.id,{...b.options,...y.options},y):k.languageModel(y.api.id);return v.models.set(x,C),C},k=>k instanceof D_?new ba({modelID:y.id,providerID:y.providerID,cause:k}):void 0)}),f=g.fn("Provider.closest")(function*(y,v){let x=(yield*Dt.get(u)).providers[y];if(x){for(let b of v)for(let k of Object.keys(x.models))if(k.includes(b))return{providerID:y,modelID:k}}}),h=g.fn("Provider.getSmallModel")(function*(y){let v=yield*t.get();if(v.small_model){let R=nE(v.small_model);return yield*p(R.providerID,R.modelID).pipe(g.catchTag("ProviderModelNotFoundError",()=>g.succeed(void 0)))}let x=(yield*Dt.get(u)).providers[y];if(!x)return;let b=yield*s.trigger("experimental.provider.small_model",{provider:$c(x)},{model:void 0});if(b.model)return{...b.model,id:Rr.ID.make(b.model.id),providerID:$e.ID.make(b.model.providerID)};if(y===$e.ID.azure||y===$e.ID.make("azure-cognitive-services"))return;let k=y.startsWith("opencode")?["gpt-nano"]:y.startsWith("github-copilot")?["gpt-mini",...JN]:JN,C=Do(Object.values(x.models),[R=>R.release_date,"desc"],[R=>R.id,"desc"]);for(let R of k){let A=C.filter(N=>N.family===R);if(y===$e.ID.amazonBedrock){let N=["global.","us.","eu."],D=A.find(F=>F.id.startsWith("global."));if(D)return D;let O=x.options?.region;if(O){let F=O.split("-")[0];if(F==="us"||F==="eu"){let I=A.find(j=>j.id.startsWith(`${F}.`));if(I)return I}}let q=A.find(F=>!N.some(I=>F.id.startsWith(I)));if(q)return q;continue}if(A[0])return A[0]}}),S=g.fn("Provider.defaultModel")(function*(){let y=yield*t.get();if(y.model)return nE(y.model);let v=yield*Dt.get(u),T=yield*e.readJson(Lee.join(_t.Path.state,"model.json")).pipe(g.map(C=>!ii(C)||!Array.isArray(C.recent)?[]:C.recent.flatMap(R=>ii(R)?typeof R.providerID!="string"?[]:typeof R.modelID!="string"?[]:[{providerID:$e.ID.make(R.providerID),modelID:Rr.ID.make(R.modelID)}]:[])),g.catch(()=>g.succeed([])));for(let C of T){let R=v.providers[C.providerID];if(R&&R.models[C.modelID])return{providerID:C.providerID,modelID:C.modelID}}let x=Object.keys(y.provider??{}),b=Object.values(v.providers).find(C=>x.length===0||x.includes(C.id));if(!b)return yield*new Bp;let[k]=aE(Object.values(b.models));return k?{providerID:b.id,modelID:k.id}:yield*new Vp({providerID:b.id})});return Ys.of({list:c,getProvider:d,getModel:p,getLanguage:m,closest:f,getSmallModel:h,defaultModel:S})})),nte=["gpt-5","claude-sonnet-4","big-pickle","gemini-3-pro"],JN=["gemini-flash","gpt-nano","claude-haiku"];function aE(e){return Do(e,[t=>nte.findIndex(r=>t.id.includes(r)),"desc"],[t=>t.id.includes("latest")?0:1,"asc"],[t=>t.id,"desc"])}i(aE,"sort");function nE(e){let[t,...r]=e.split("/");return{providerID:$e.ID.make(t),modelID:Rr.ID.make(r.join("/"))}}i(nE,"parseModel");var ite=Lr.make({service:Ys,layer:rte,deps:[ye.node,En.node,No.node,qh.node,bi.node,Ph.node,Po.node]});var r3=`You are an elite AI agent architect specializing in crafting high-performance agent configurations. Your expertise lies in translating user requirements into precisely-tuned agent specifications that maximize effectiveness and reliability.
|
|
481
481
|
|
|
482
482
|
**Important Context**: You may have access to project-specific instructions from CLAUDE.md files and other context that may include coding standards, project structure, and custom requirements. Consider this context when creating agents to ensure they align with the project's established patterns and practices.
|
|
483
483
|
|