vern-llm 2.4.2 → 2.5.0
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/README.md +3 -2
- package/dist/index.cjs +7 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +502 -197
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +502 -197
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/errors.ts","../src/types/cache.ts","../src/circuitBreaker.ts","../src/rateLimit.ts","../src/types/fallback.ts","../src/types/schema.ts","../src/types/tools.ts","../src/types/usage.ts","../src/types/call.ts","../src/types/stream.ts","../src/types/client.ts","../src/logger.ts","../src/types/events.ts","../src/types/options.ts","../src/vernLLM.ts","../src/adapters/internal/sse.ts","../src/adapters/internal/imageFormat.ts","../src/adapters/internal/nativeStructuredOutput.ts","../src/adapters/internal/reasoningBudget.utils.ts","../src/adapters/anthropic.ts","../src/adapters/gemini.ts","../src/adapters/bedrock.ts","../src/adapters/fetch.ts","../src/adapters/openaiCompatible.ts"],"sourcesContent":null,"mappings":"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Ec3B3B,Od2B2B,Cc3BnB,gBd2BmB,CAAA,MAAA,Gc3BO,mBd2BP,CAAA,MAAA,Ec3BmC,Kd2BnC,CAAA,CAAA,CAAA;EAAA,IAMvB,CAAA,IAAA,OAAA,EAAA,oBAAA,Sc/B8C,cd+B9C,EAAA,Gc/BiE,cd+BjE,EAAA,CAAA,CAAA,MAAA,Ec9BG,uBd8BH,Cc9B2B,Cd8B3B,Ec9B8B,Kd8B9B,CAAA,Gc9BuC,yBd8BvC,Cc9BiE,Cd8BjE,Ec9BoE,Kd8BpE,CAAA,CAAA,Ec7BJ,Od6BI,Cc7BI,gBd6BJ,Cc7BqB,Cd6BrB,Gc7ByB,mBd6BzB,Cc7B6C,Cd6B7C,Ec7BgD,Kd6BhD,CAAA,CAAA,CAAA;EAAY,IAER,CAAA,MAAA,Ec7BQ,gCd6BR,CAAA,Ec7B2C,Od6B3C,Cc7BmD,gBd6BnD,CAAA,MAAA,CAAA,CAAA;EAAY,IAAA,CAAA,MAAA,Ec3BJ,+Bd2BI,CAAA,Ec3B8B,Od2B9B,Cc3BsC,gBd2BtC,Cc3BuD,Sd2BvD,CAAA,CAAA;EAGZ,IAAA,CAAA,IAAA,OAAS,CAAA,CAAA,MAAA,Ec5BY,uBd4BZ,Cc5BoC,Cd4BpC,CAAA,CAAA,Ec5ByC,Od4BzC,Cc5BiD,gBd4BjD,Cc5BkE,Cd4BlE,CAAA,CAAA;EAAA,IAAA,CAAA,IAAA,OAAA,CAAA,CAAA,MAAA,Ec1BY,uBd0BZ,Cc1BoC,Cd0BpC,CAAA,CAAA,Ec1ByC,Od0BzC,Cc1BiD,ad0BjD,Cc1B+D,Cd0B/D,CAAA,CAAA;EAAA,IAYL,CAAA,IAAA,OAAA,EAAA,oBAAA,ScpCsC,cdoCtC,EAAA,GcpCyD,cdoCzD,EAAA,CAAA,CAAA,MAAA,EcnCL,qBdmCK,CcnCiB,CdmCjB,EcnCoB,KdmCpB,CAAA,CAAA,EclCZ,OdkCY,CclCJ,mBdkCI,CclCgB,CdkChB,EclCmB,KdkCnB,CAAA,CAAA;EAAY,IANb,CAAA,oBAAA,Sc1B0B,cd0B1B,EAAA,Gc1B6C,cd0B7C,EAAA,CAAA,CAAA,MAAA,EczBJ,+BdyBI,CczB4B,KdyB5B,CAAA,CAAA,EcxBX,OdwBW,CAAA,MAAA,GcxBM,mBdwBN,CAAA,MAAA,EcxBkC,KdwBlC,CAAA,CAAA;EAAY,IAER,CAAA,IAAA,OAAA,EAAA,oBAAA,ScxBmC,cdwBnC,EAAA,GcxBsD,cdwBtD,EAAA,CAAA,CAAA,MAAA,EcvBR,yBduBQ,CcvBkB,CduBlB,EcvBqB,KduBrB,CAAA,CAAA,EctBf,OdsBe,CctBP,CdsBO,GctBH,mBdsBG,CctBiB,CdsBjB,EctBoB,KdsBpB,CAAA,CAAA;EAAY,IAIf,CAAA,MAAA,EcxBI,0BdwBJ,CAAA,EcxBiC,OdwBjC,CAAA,MAAA,CAAA;EAAY,IAChB,CAAA,MAAA,EcvBQ,yBduBR,CAAA,EcvBoC,OduBpC,CcvB4C,SduB5C,CAAA;EAAoB,IAmCjB,CAAA,IAAA,OAAA,CAAA,CAAA,MAAA,EcxDkB,UdwDlB,CcxD6B,CdwD7B,CAAA,CAAA,EcxDkC,OdwDlC,CcxD0C,CdwD1C,CAAA;EAAgB;;AAhDG;AAyFnC;;;;;;;;;;;;4BcDkC;EdiBlB;;;;;;;;;AAG8C;;;;ACtf9D;;;;;;;;AAImC;;;;;AAOnC;;;;;;;EAkBwD,UAW3B,CAAA,CAAA,EAAA,oBAAA,Sa+dsB,cb/dtB,EAAA,Ga+dyC,cb/dzC,EAAA,CAAA,CAAA,MAAA,EagejB,0BbheiB,CageU,CbheV,Eagea,Kbheb,CAAA,CAAA,EaiexB,ObjewB,CaiehB,gBbjegB,CaieC,mBbjeD,CaieqB,CbjerB,EaiewB,KbjexB,CAAA,CAAA,CAAA;EAAO,UA7BsB,CAAA,oBAAA,SaggBV,cbhgBU,EAAA,GaggBS,cbhgBT,EAAA,CAAA,CAAA,MAAA,EaigB9C,2CbjgB8C,CaigBF,KbjgBE,CAAA,CAAA,EakgBrD,OblgBqD,CakgB7C,gBblgB6C,CAAA,MAAA,GakgBnB,mBblgBmB,CAAA,MAAA,EakgBS,KblgBT,CAAA,CAAA,CAAA;EAAY,UAAA,CAAA,CAAA,EAAA,oBAAA,SaogBnB,cbpgBmB,EAAA,GaogBA,cbpgBA,EAAA,CAAA,CAAA,MAAA,EaqgB1D,qCbrgB0D,CaqgBpB,CbrgBoB,EaqgBjB,KbrgBiB,CAAA,CAAA,EasgBjE,ObtgBiE,CasgBzD,gBbtgByD,CasgBxC,CbtgBwC,GasgBp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OAAA,CAAA,EuBhGzC,8BvBgGyC,CAAA,EuB/FjD,SvB+FiD;;;;;;;;;;;;;;cuBzBvC,mBAAU;;cAGV,iBAAQ;;;;;;AvB8CrB;;AAEQ,cuBvCK,WvBuCL,EAAA,OuBvCgB,oBvBuChB;;AAQK,cuB5CA,YvB4CA,EAAA,OuB5CY,oBvB4CZ;AAAY;cuBzCZ,qBAAY;;cAGZ,qBAAY;;cAGZ,sBAAa;;AvB4C1B;;;;;cuBpCa,mBAAU;;AvBqFN,cuBlFJ,cvBkFgB,EAAA,OuBlFF,oBvBkFE;;AAEpB,cuBjFI,cvBiFJ,EAAA,OuBjFkB,oBvBiFlB;;AAEqB,cuBhFjB,avBgFiB,EAAA,OuBhFJ,oBvBgFI;;AAIb,cuBjFJ,UvBiFmB,EAAA,OuBjFT,oBvBiFS;;AAMvB,cuBpFI,cvBoFJ,EAAA,OuBpFkB,oBvBoFlB;;AAEgB,cuBnFZ,YvBmFY,EAAA,OuBnFA,oBvBmFA;AAGzB;AAAsB,cuBnFT,SvBmFS,EAAA,OuBnFA,oBvBmFA;;;;;AAaT,cuB1FA,YvB0FA,EAAA,OuB1FY,oBvB0FZ;;;;AAbsB;AAyFnB,cuBhKH,QvBgKoC,EAAA,OuBhK5B,oBvBgKoC;;cuB7J5C,gBAAO;;cAGP,sBAAa;;cAGb,4BAAmB;;cAGnB,gCAAuB;;cAGvB,mBAAU;;cAGV,sBAAa;AvB8J1B;AAAyB,cuB3JZ,WvB2JY,EAAA,OuB3JD,oBvB2JC;;AAClB,cuBzJM,evByJN,EAAA,OuBzJqB,oBvByJrB;;AAEG,cuBxJG,YvBwJH,EAAA,OuBxJe,oBvBwJf;;AAA8B,cuBrJ3B,evBqJ2B,EAAA,OuBrJZ,oBvBqJY;;AAAsB,cuBlJjD,YvBkJiD,EAAA,OuBlJrC,oBvBkJqC;;cuB/IjD,oBAAW;;AtBvWP,csB0WJ,WtB1WgB,EAAA,OsB0WL,oBtB1WK;;AACsB,csB4WtC,ctB5WsC,EAAA,OsB4WxB,oBtB5WwB;;AACzB,csB8Wb,mBtB9Wa,EAAA,OsB8WM,oBtB9WN;;AACF,csBgXX,YtBhXW,EAAA,OsBgXC,oBtBhXD;;AACW,csBkXtB,UtBlXsB,EAAA,OsBkXZ,oBtBlXY;;csBqXtB,yBAAgB;;cAGhB,uBAAc;AtBjX3B;AAAiC,csBoXpB,ctBpXoB,EAAA,OsBoXN,oBtBpXM;;AAKwB,csBkX5C,QtBlX4C,EAAA,OsBkXpC,oBtBlXoC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/errors.ts","../src/types/cache.ts","../src/types/events.ts","../src/types/middleware.ts","../src/circuitBreaker.ts","../src/rateLimit.ts","../src/types/fallback.ts","../src/types/schema.ts","../src/types/tools.ts","../src/types/usage.ts","../src/types/call.ts","../src/types/stream.ts","../src/types/client.ts","../src/logger.ts","../src/types/options.ts","../src/types/createMiddleware.ts","../src/vernLLM.ts","../src/paramsHelpers.ts","../src/adapters/internal/sse.ts","../src/adapters/internal/imageFormat.ts","../src/adapters/internal/nativeStructuredOutput.ts","../src/adapters/internal/reasoningBudget.utils.ts","../src/adapters/anthropic.ts","../src/adapters/gemini.ts","../src/adapters/bedrock.ts","../src/adapters/fetch.ts","../src/adapters/openaiCompatible.ts"],"sourcesContent":null,"mappings":"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0BjHjD,S1BiHiD;;;;;;;;;;;;;;c0B3CvC,mBAAU;;cAGV,iBAAQ;;;;;;A1BgErB;;AAEQ,c0BzDK,W1ByDL,EAAA,O0BzDgB,oB1ByDhB;;AAQK,c0B9DA,Y1B8DA,EAAA,O0B9DY,oB1B8DZ;AAAY;c0B3DZ,qBAAY;;cAGZ,qBAAY;;cAGZ,sBAAa;;A1B8D1B;;;;;c0BtDa,mBAAU;;A1BuGN,c0BpGJ,c1BoGgB,EAAA,O0BpGF,oB1BoGE;;AAEpB,c0BnGI,c1BmGJ,EAAA,O0BnGkB,oB1BmGlB;;AAEqB,c0BlGjB,a1BkGiB,EAAA,O0BlGJ,oB1BkGI;;AAIb,c0BnGJ,U1BmGmB,EAAA,O0BnGT,oB1BmGS;;AAMvB,c0BtGI,c1BsGJ,EAAA,O0BtGkB,oB1BsGlB;;AAEgB,c0BrGZ,Y1BqGY,EAAA,O0BrGA,oB1BqGA;AAGzB;AAAsB,c0BrGT,S1BqGS,EAAA,O0BrGA,oB1BqGA;;;;;AAaT,c0B5GA,Y1B4GA,EAAA,O0B5GY,oB1B4GZ;;;;AAbsB;AA0FnB,c0BnLH,Q1BmLoC,EAAA,O0BnL5B,oB1BmLoC;;c0BhL5C,gBAAO;;cAGP,sBAAa;;cAGb,4BAAmB;;cAGnB,gCAAuB;;cAGvB,mBAAU;;cAGV,sBAAa;A1BiL1B;AAAyB,c0B9KZ,W1B8KY,EAAA,O0B9KD,oB1B8KC;;AAClB,c0B5KM,e1B4KN,EAAA,O0B5KqB,oB1B4KrB;;AAEG,c0B3KG,Y1B2KH,EAAA,O0B3Ke,oB1B2Kf;;AAA8B,c0BxK3B,e1BwK2B,EAAA,O0BxKZ,oB1BwKY;;AAAsB,c0BrKjD,Y1BqKiD,EAAA,O0BrKrC,oB1BqKqC;;c0BlKjD,oBAAW;;AzBvWP,cyB0WJ,WzB1WgB,EAAA,OyB0WL,oBzB1WK;;AACsB,cyB4WtC,czB5WsC,EAAA,OyB4WxB,oBzB5WwB;;AACzB,cyB8Wb,mBzB9Wa,EAAA,OyB8WM,oBzB9WN;;AACF,cyBgXX,YzBhXW,EAAA,OyBgXC,oBzBhXD;;AACW,cyBkXtB,UzBlXsB,EAAA,OyBkXZ,oBzBlXY;;cyBqXtB,yBAAgB;;cAGhB,uBAAc;AzBjX3B;AAAiC,cyBoXpB,czBpXoB,EAAA,OyBoXN,oBzBpXM;;AAKwB,cyBkX5C,QzBlX4C,EAAA,OyBkXpC,oBzBlXoC"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import{randomUUID as e}from"crypto";const t=new Set([`unknown_tool`,`duplicate_tool_call_id`,`tool_choice_none_violated`,`unexpected_tool_calls`]),n=new Set([`rate_limit_queue_full`,`rate_limit_queue_timeout`,`rate_limit_capacity_exceeded`]),r=new Set([`parse`,`validation`,`invalid_params`,`aborted`]);function i(e,i){return!(r.has(e)||i&&t.has(i)||i&&n.has(i))}function a(e){if(e!==void 0)try{return JSON.stringify(e),e}catch{return`[Unserializable: issues contained a circular reference]`}}function o(e){if(e!==void 0)try{return JSON.parse(JSON.stringify(e))}catch{return`[Unserializable: request body contained a circular reference]`}}const s=new Set([`authorization`,`x-api-key`,`x-goog-api-key`,`api-key`]);function c(e){if(e===void 0)return;let t={};for(let[n,r]of Object.entries(e))s.has(n.toLowerCase())||(t[n]=r);return t}const l=20;function u(e,t=0){if(e!==void 0)return t>=l?[]:e.map(e=>({...e,error:{...e.error,issues:a(e.error.issues),attempts:u(e.error.attempts,t+1)},request:e.request&&{...e.request,body:o(e.request.body),headers:c(e.request.headers)}}))}function d(e,t,n,r,i=Date.now()){return{provider:e,model:t,body:o(n),headers:c(r),startedAt:i}}var f=class extends Error{status;issues;cause;retryAfterMs;code;attempts;constructor(e,t,n={}){super(e),this.type=t,this.name=`LLMError`,this.status=n.status,this.issues=n.issues,this.cause=n.cause,this.retryAfterMs=n.retryAfterMs,this.code=n.code,this.attempts=n.attempts}get retryable(){return i(this.type,this.code)}toSnapshot(){return{message:this.message,type:this.type,status:this.status,issues:a(this.issues),retryAfterMs:this.retryAfterMs,code:this.code,retryable:this.retryable,attempts:u(this.attempts)}}toJSON(){return{name:this.name,message:this.message,type:this.type,status:this.status,issues:a(this.issues),retryAfterMs:this.retryAfterMs,code:this.code,retryable:this.retryable,attempts:u(this.attempts)}}};function p(e){return e instanceof f}function m(e,t){return e.code===t&&e.issues!==void 0}var h=class{store=new Map;constructor(e=1e3){this.maxSize=e}async get(e){let t=this.store.get(e);return t?Date.now()>=t.expiresAt?(this.store.delete(e),{hit:!1,value:null}):{hit:!0,value:t.value}:{hit:!1,value:null}}async set(e,t,n){this.cleanupExpiredEntries(),this.store.set(e,{value:t,expiresAt:Date.now()+n*1e3}),this.enforceSizeLimit()}async delete(e){this.store.delete(e)}cleanupExpiredEntries(){let e=Date.now();for(let[t,n]of this.store)e>=n.expiresAt&&this.store.delete(t)}enforceSizeLimit(){for(;this.store.size>this.maxSize;){let e=this.store.keys().next().value;if(e===void 0)break;this.store.delete(e)}}},g=class{constructor(e=new h){this.inner=e}normalize(e){return e.toLowerCase().trim().replace(/[^\p{L}\p{N}\s]/gu,` `).replace(/\s+/g,` `).trim()}async resolveKey(e){return this.normalize(e)}async get(e){return this.inner.get(this.normalize(e))}async set(e,t,n){await this.inner.set(this.normalize(e),t,n)}async delete(e){await this.inner.delete?.(this.normalize(e))}},_=class{constructor(e,t,n){this.l1=e,this.l2=t,this.l1Ttl=n}async resolveKey(e){return this.l1.resolveKey?this.l1.resolveKey(e):this.l2.resolveKey?this.l2.resolveKey(e):e}async get(e){let t=await this.l1.get(e);if(t.hit)return t;let n=await this.l2.get(e);return n.hit&&await this.l1.set(e,n.value,this.l1Ttl??60),n}async set(e,t,n){await Promise.all([this.l1.set(e,t,this.l1Ttl??n),this.l2.set(e,t,n)])}async delete(e){await Promise.all([this.l1.delete?.(e),this.l2.delete?.(e)])}};function v(e){return e}function y(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_calls`&&Array.isArray(e.toolCalls)}const b=new Set([`unknown_tool`,`duplicate_tool_call_id`,`tool_choice_none_violated`,`unexpected_tool_calls`]),x=e=>e.type===`parse`||e.type===`validation`||e.type===`aborted`||e.type===`quota_exceeded`||e.code&&b.has(e.code)?`stop`:`next`;var S=class extends f{constructor(e){let t=e[e.length-1]?.error;super(`${e.length} provider${e.length===1?``:`s`} attempted and failed: ${e.map(e=>`${e.provider}(${e.error.type})`).join(` then `)}`,`fallback_exhausted`,{status:t?.status,cause:t,retryAfterMs:t?.retryAfterMs,code:`fallback_exhausted`,attempts:e}),this.attempts=e}get retryable(){let e=this.attempts[this.attempts.length-1]?.error;return e?e.retryable:super.retryable}};function C(e){return e instanceof S}async function w(e,t,n){if(!e.reserveUsage)return!1;try{return await e.reserveUsage({coalesced:t,signal:n}),!0}catch(e){throw n?.aborted?new f(`LLM request aborted`,`aborted`):new f(e instanceof Error?e.message:`Usage reservation failed`,`quota_exceeded`,{cause:e})}}function T(e,t,n,r){return async i=>{try{await e.refundUsage?.({coalesced:t,signal:n})}catch(e){r(i,e)}}}async function E(e,t,n,r,i){if(r?.aborted)throw new f(`LLM request aborted`,`aborted`);let a=await w(e,t,r),o=T(e,t,r,i);if(r?.aborted)throw a&&await o(`[VernLLM] refundUsage failed after abort`),new f(`LLM request aborted`,`aborted`);let s;try{s=await n()}catch(e){throw a&&await o(`[VernLLM] refundUsage failed`),e}if(r?.aborted)throw a&&await o(`[VernLLM] refundUsage failed after abort`),new f(`LLM request aborted`,`aborted`);return s}async function D(e,t,n,r){if(n?.aborted)throw new f(`LLM request aborted`,`aborted`);let i=await w(e,!1,n),a=T(e,!1,n,r);if(n?.aborted)throw i&&await a(`[VernLLM] refundUsage failed after abort`),new f(`LLM request aborted`,`aborted`);let o;try{o=await t()}catch(e){throw i&&await a(`[VernLLM] refundUsage failed after stream-open failure`),e}let s=o.finalResult.then(e=>e,async e=>{throw i&&await a(`[VernLLM] refundUsage failed after stream error`),e});return s.catch(()=>{}),{chunks:o.chunks,finalResult:s}}function O(e){return typeof e==`string`?e:JSON.stringify(e)??``}function ee(e,t){let n=[];if(t){let t=e;t.type===`tool_calls`?(t.toolCalls.forEach((e,t)=>{n.push({type:`tool_call_delta`,index:t,id:e.id,name:e.name,argsDelta:JSON.stringify(e.arguments??{}),complete:!0})}),t.content&&n.push({type:`text-delta`,delta:t.content})):n.push({type:`text-delta`,delta:O(t.content)})}else n.push({type:`text-delta`,delta:O(e)});return{async*[Symbol.asyncIterator](){for(let e of n)yield e}}}function te(e,t){return{async*[Symbol.asyncIterator](){let n=await e;yield*ee(n,t)}}}var ne=class{inFlight=new Map;constructor(e,t){this.cache=e,this.logger=t}async resolveCacheKey(e){return this.cache.resolveKey?await this.cache.resolveKey(e):e}async deleteCache(e){if(this.cache.delete)try{await this.cache.delete(await this.resolveCacheKey(e))}catch(e){this.logger.warn(`[VernLLM] cache delete failed: ${e instanceof Error?e.message:`unknown`}`)}}logRefundError(e,t){this.logger.error(e,{message:t instanceof Error?t.message:`unknown`})}async getCached(e){try{return await this.cache.get(e)}catch(e){return this.logger.warn(`[VernLLM] cache read failed: ${e instanceof Error?e.message:`unknown`}`),{hit:!1}}}async runCached(e){let t=await this.resolveCacheKey(e.cacheKey),n=t===e.cacheKey?e:{...e,cacheKey:t},r=await this.getCached(t);if(r.hit)return r.value;let i=this.inFlight.get(t);return i?E(n,!0,()=>i,e.signal,(e,t)=>this.logRefundError(e,t)):this.registerTrigger(n)}registerTrigger(e){let t=E(e,!1,()=>this.runAndCache(e),e.signal,(e,t)=>this.logRefundError(e,t));return this.inFlight.set(e.cacheKey,t),t.catch(()=>{}).finally(()=>{this.inFlight.delete(e.cacheKey)}),t}async runAndCache(e){let t=await e.fn();try{await this.cache.set(e.cacheKey,t,e.ttl)}catch(e){this.logger.warn(`[VernLLM] cache write failed: ${e instanceof Error?e.message:`unknown`}`)}return t}async runCachedStream(e,t){let n=await this.resolveCacheKey(e.cacheKey),r=n===e.cacheKey?e:{...e,cacheKey:n},i=await this.getCached(n);if(i.hit){let e=i.value;return{chunks:ee(e,t),finalResult:Promise.resolve(e)}}let a=this.inFlight.get(n);if(a){let n=E(r,!0,()=>a,e.signal,(e,t)=>this.logRefundError(e,t));return n.catch(()=>{}),{chunks:te(n,t),finalResult:n}}return this.registerStreamTrigger(r)}registerStreamTrigger(e){let t,n,r=new Promise((e,r)=>{t=e,n=r});this.inFlight.set(e.cacheKey,r),r.catch(()=>{}).finally(()=>{this.inFlight.delete(e.cacheKey)});let i=D(e,async()=>{let t=await e.openStream(),n=t.finalResult.then(async t=>{try{await this.cache.set(e.cacheKey,t,e.ttl)}catch(e){this.logger.warn(`[VernLLM] cache write failed: ${e instanceof Error?e.message:`unknown`}`)}return t},e=>{throw e});return{chunks:t.chunks,finalResult:n}},e.signal,(e,t)=>this.logRefundError(e,t));return i.then(e=>{e.finalResult.then(t,n)},e=>{n(e)}),i}};function re(){return{state:`closed`,consecutiveFailures:0,openedAt:0,trialInFlight:!1}}const k=``;var A=class{threshold;cooldownMs;onStateChange;isolateByModel;sharedBucket=re();bucketsByModel=new Map;constructor(e={}){this.threshold=e.threshold??5,this.cooldownMs=e.cooldownMs??3e4,this.onStateChange=e.onStateChange,this.isolateByModel=e.isolateByModel??!1}lookupBucket(e){if(!this.isolateByModel)return this.sharedBucket;let t=e??k;return this.bucketsByModel.get(t)}ensureBucketFor(e){if(!this.isolateByModel)return this.sharedBucket;let t=e??k,n=this.bucketsByModel.get(t);return n||(n=re(),this.bucketsByModel.set(t,n)),n}transition(e,t,n){if(t===e.state)return;let r=e.state;e.state=t,this.onStateChange?.(r,t,e.consecutiveFailures,n)}assertClosed(e){let t=this.ensureBucketFor(e);if(t.state!==`closed`){if(t.state===`open`){let n=Date.now()-t.openedAt;if(n<this.cooldownMs)throw new f(`Circuit open, provider has failed ${t.consecutiveFailures} times in a row. Retry in ${Math.ceil((this.cooldownMs-n)/1e3)}s.`,`circuit_open`,{code:`circuit_cooling_down`});t.trialInFlight=!0,this.transition(t,`half-open`,e);return}if(t.trialInFlight)throw new f(`Circuit half-open. A trial request is already in flight. Try again shortly.`,`circuit_open`,{code:`circuit_trial_in_flight`});t.trialInFlight=!0}}recordSuccess(e){let t=this.lookupBucket(e);t&&(t.consecutiveFailures=0,t.trialInFlight=!1,this.transition(t,`closed`,e),this.isolateByModel&&t.state===`closed`&&t.consecutiveFailures===0&&this.bucketsByModel.delete(e??k))}recordFailure(e){let t=this.ensureBucketFor(e);if(t.consecutiveFailures+=1,t.trialInFlight=!1,t.state===`half-open`){t.openedAt=Date.now(),this.transition(t,`open`,e);return}t.consecutiveFailures>=this.threshold&&(t.openedAt=Date.now(),this.transition(t,`open`,e))}getState(e){return this.lookupBucket(e)?.state??`closed`}open(e){let t=this.ensureBucketFor(e);t.openedAt=Date.now(),t.trialInFlight=!1,this.transition(t,`open`,e)}close(e){let t=this.ensureBucketFor(e);t.consecutiveFailures=0,t.trialInFlight=!1,this.transition(t,`closed`,e),this.isolateByModel&&t.state===`closed`&&t.consecutiveFailures===0&&this.bucketsByModel.delete(e??k)}};function j(e,t){return n=>{if(e)try{e(n)}catch(e){t.error(`[VernLLM] onEvent failed`,{message:e instanceof Error?e.message:`unknown`})}}}function ie(e,t,n,r,i){if(!e)return;let a=typeof e==`object`?e:void 0,o=a?.onStateChange,s=j(r,i);return new A({...a,onStateChange:(e,r,a,c)=>{if(s({kind:`circuit_state`,provider:t,model:c??n,from:e,to:r,consecutiveFailures:a}),o)try{o(e,r,a,c)}catch(e){i.error(`[VernLLM] circuitBreaker.onStateChange failed`,{message:e instanceof Error?e.message:`unknown`})}}})}const M=1e4,ae=2147483647;function oe(e){return!e||e<=0||e===1/0?void 0:e}function se(e){return Math.min(e,ae)}async function ce(e,t,n){let r=new AbortController,i=oe(t),a=i===void 0?void 0:setTimeout(()=>{r.abort()},se(i)),o=n?AbortSignal.any([n,r.signal]):r.signal;try{return await e(o)}catch(e){throw r.signal.aborted&&!n?.aborted&&e instanceof DOMException&&e.name===`AbortError`?new f(`Request timed out`,`timeout`,{code:`request_timeout`}):e}finally{clearTimeout(a)}}function le(e,t,n,r){let i=oe(t);if(i===void 0)return e();let a=!1;return new Promise((t,o)=>{let s=setTimeout(()=>{a=!0,n?.(),o(new f(`No stream chunk received for ${i}ms (idle timeout)`,`timeout`,{code:`idle_timeout`}))},se(i));e().then(e=>{if(clearTimeout(s),a){r?.debug(`[VernLLM] chunk resolved after idle timeout already fired; discarding`);return}a=!0,t(e)},e=>{if(clearTimeout(s),a){r?.debug(`[VernLLM] chunk rejection arrived after idle timeout already fired; discarding`);return}a=!0,o(e)})})}function ue(e,t=M){if(!e||typeof e!=`object`)return;let n=e,r=n.headers??n.response?.headers;if(!r||typeof r!=`object`)return;let i=r,a=typeof i.get==`function`?i.get(`Retry-After`):Object.entries(r).find(([e])=>e.toLowerCase()===`retry-after`)?.at(1);if(typeof a!=`string`||a.trim()===``)return;let o=a.trim();if(/^\d+$/.test(o))return Math.max(0,Math.min(Number(o)*1e3,t));let s=Date.parse(o);if(!Number.isNaN(s))return Math.max(0,Math.min(s-Date.now(),t))}function de(e,t,n=M){let r=Math.min(e*2**t,n);return r/2+Math.random()*(r/2)}async function fe(e,t){if(t?.aborted)throw new f(`Operation aborted`,`aborted`);await new Promise((n,r)=>{let i=()=>{clearTimeout(a),r(new f(`Operation aborted`,`aborted`))},a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);t?.addEventListener(`abort`,i,{once:!0})})}function pe(e){if(!e||typeof e!=`object`)return;let t=e;if(typeof t.status==`number`)return t.status;if(typeof t.statusCode==`number`)return t.statusCode;if(typeof t.$metadata?.httpStatusCode==`number`)return t.$metadata.httpStatusCode}const me=new Set([`ECONNREFUSED`,`ENOTFOUND`,`ECONNRESET`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`ECONNABORTED`,`EHOSTUNREACH`,`ENETUNREACH`]),he=new Set([`fetch failed`,`failed to fetch`,`load failed`,`networkerror when attempting to fetch resource.`]);function ge(e){if(!e||typeof e!=`object`)return!1;let t=e;if(typeof t.code==`string`&&me.has(t.code)||typeof t.message==`string`&&he.has(t.message.toLowerCase()))return!0;if(t.cause&&typeof t.cause==`object`){let e=t.cause;if(typeof e.code==`string`&&me.has(e.code))return!0}return!1}function _e(e){try{return JSON.stringify(e,null,2)??String(e)}catch{try{return String(e)}catch{return`[unprintable error]`}}}function N(e){if(e&&typeof e==`object`)try{let t=e;if(t.error!==void 0)return _e(t.error);if(typeof t.message==`string`)return t.message}catch{}return _e(e)}function ve(e){switch(e){case 429:return`provider_rate_limited`;case 401:return`authentication`;case 403:return`authorization`;case 404:return`not_found`;case 413:return`payload_too_large`;default:return e>=500?`server_error`:void 0}}const ye=/\(no body\)/i;function be(e){return Object.keys(e).length===0}function xe(e){if(e&&typeof e==`object`){let{error:t,message:n}=e;if(t!=null){let e=typeof t==`string`&&t.trim().length===0,n=typeof t==`object`&&be(t);if(!e&&!n)return!1}if(typeof n==`string`){let e=n.trim();return e.length===0||ye.test(e)}return!0}return!0}function P(e,t,n){if(t?.aborted)return new f(`LLM request aborted`,`aborted`,{attempts:n});if(e instanceof f)return e.code===void 0&&e.status!==void 0&&(e.code=ve(e.status)),e.attempts===void 0&&n!==void 0&&(e.attempts=n),e;let r=pe(e),i=ue(e);if(r!==void 0){let t=N(e),a=ve(r),o=a===void 0,s=xe(e)?o?`LLM request failed with status ${r} and no error detail from the provider. This usually means a field or value in the request isn't supported by the specific model (for example, a reasoning/thinking parameter the model doesn't accept), rather than a transport or auth problem.`:`LLM request failed with status ${r} and no error detail from the provider.`:`LLM request failed: ${t}`;return new f(s,`api`,{status:r,cause:e,retryAfterMs:i,code:a,attempts:n})}return ge(e)?new f(`LLM request failed`,`network`,{cause:e,retryAfterMs:i,code:`connection_failed`,attempts:n}):new f(`LLM request failed`,`unknown`,{cause:e,retryAfterMs:i,attempts:n})}function Se(e){try{return JSON.parse(e)}catch{return}}function Ce(e){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}function we(e){return e.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments??{})}}))}function Te(e){return e.map(e=>{let t;try{t=e.function.arguments.trim()?JSON.parse(e.function.arguments):{}}catch{throw new f(`Invalid JSON arguments for tool call "${e.function.name}"`,`parse`,{code:`tool_arguments_parse_failed`})}return{id:e.id,name:e.function.name,arguments:t}})}function Ee(e){return typeof e==`string`?e:JSON.stringify(e)}var De=class{model;defaultMaxTokens;defaultTemperature;defaultReasoningEffort;defaultBudgetTokens;supportsJsonObjectMode;constructor(e){this.model=e.model,this.defaultMaxTokens=e.defaultMaxTokens,this.defaultTemperature=e.defaultTemperature,this.defaultReasoningEffort=e.defaultReasoningEffort,this.defaultBudgetTokens=e.defaultBudgetTokens,this.supportsJsonObjectMode=e.supportsJsonObjectMode}build(e){let{systemPrompt:t,userContent:n,history:r=[],maxTokens:i=this.defaultMaxTokens,model:a=this.model,jsonSchema:o,tools:s,toolChoice:c}=e,l=e.temperature===void 0?this.defaultTemperature:e.temperature,u=e.reasoningEffort===void 0?this.defaultReasoningEffort:e.reasoningEffort,d=e.budgetTokens===void 0?this.defaultBudgetTokens:e.budgetTokens;if(s&&s.length===0)throw new f("`tools` was an empty array. This is almost always a bug (e.g. a filtered tool list that ended up empty). An empty `tools` array still switches on tool-call mode (response shape, jsonMode default, wire format) with nothing for the model to call. Omit `tools` entirely for a normal call, or make sure the array is non-empty.",`invalid_params`);if(s){let e=new Set,t=new Set;for(let n of s)e.has(n.name)&&t.add(n.name),e.add(n.name);if(t.size)throw new f(`\`tools\` has duplicate name(s): [${[...t].join(`, `)}]. Tool names must be unique.`,`invalid_params`,{code:`duplicate_tool_names`,issues:{names:[...t]}})}if(c&&!s)throw new f("`toolChoice` was set without `tools`. There is nothing for it to choose between. Set `tools`, or remove `toolChoice`.",`invalid_params`);if(s&&typeof c==`object`&&!s.some(e=>e.name===c.name))throw new f(`toolChoice names "${c.name}", which is not in \`tools\` ([${s.map(e=>e.name).join(`, `)}]).`,`invalid_params`,{code:`unknown_tool_choice`,issues:{requested:c.name,available:s.map(e=>e.name)}});let p=e.jsonMode,m=p??!s;if(!this.supportsJsonObjectMode&&!o&&p===!0)throw new f('jsonMode: true was set explicitly, but this client does not support `response_format: "json_object"` (see LLMClient.supportsJsonObjectMode). Neither Anthropic nor Bedrock has a field that mechanically guarantees JSON output for this mode. Use `jsonSchema` instead, which maps to a real constraint on both.',`invalid_params`);if(!this.supportsJsonObjectMode&&!o&&p===void 0&&e.schema)throw new f('`schema` was provided, which requires JSON output to validate against, but this client does not support `response_format: "json_object"` (see LLMClient.supportsJsonObjectMode) and no `jsonSchema` was set. Neither Anthropic nor Bedrock has a field that mechanically guarantees JSON output without one. Use `jsonSchema` instead, which maps to a real constraint on both and still runs `schema` against its parsed result.',`invalid_params`);let h=!this.supportsJsonObjectMode&&!o&&p===void 0?!1:m,g=h||!!o;if(e.schema&&!g)throw new f(`schema was provided but jsonMode: false disables JSON parsing, so nothing would validate it. Remove jsonMode: false, set jsonSchema, or remove schema.`,`invalid_params`);let _=this.buildResponseFormat(o,g);this.validateHistory(r);let v={model:a,...l===null?{}:{temperature:l},max_tokens:i,..._?{response_format:_}:{},...u?{reasoning_effort:u}:{},...d==null?{}:{budget_tokens:d},...s?{tools:Ce(s)}:{},...s?{tool_choice:this.buildWireToolChoice(c)}:{},messages:[...t?[{role:`system`,content:t}]:[],...r.flatMap(e=>this.turnToWireMessages(e)),{role:`user`,content:n}]};return{useJson:g,model:a,request:v}}validateHistory(e){let t;for(let[n,r]of e.entries()){if(r.role===`tool`){if(t?.role!==`assistant`||!t.toolCalls?.length)throw new f(`history[${n}] is a "tool" turn, but must immediately follow an "assistant" turn that requested tools`,`invalid_params`);if(!r.toolResults?.length)throw new f(`history[${n}] is a "tool" turn but has no toolResults`,`invalid_params`);let e=new Set(t.toolCalls.map(e=>e.id)),i=r.toolResults.map(e=>e.toolCallId),a=i.filter(t=>!e.has(t));if(a.length)throw new f(`history[${n}].toolResults references unknown toolCallId(s) [${a.join(`, `)}]`,`invalid_params`,{code:`unknown_tool_result_ids`,issues:{historyIndex:n,ids:a}});let o=new Set,s=new Set;for(let e of i)o.has(e)&&s.add(e),o.add(e);if(s.size)throw new f(`history[${n}].toolResults has duplicate toolCallId(s) [${[...s].join(`, `)}]`,`invalid_params`,{code:`duplicate_tool_result_ids`,issues:{historyIndex:n,ids:[...s]}});let c=[...e].filter(e=>!i.includes(e));if(c.length)throw new f(`history[${n}] is missing toolResults for toolCallId(s) [${c.join(`, `)}]`,`invalid_params`,{code:`missing_tool_results`,issues:{historyIndex:n,ids:c}})}else{if(r.role===t?.role)throw new f(`history must alternate user/assistant turns: consecutive "${r.role}" turns at history[${n-1}] and history[${n}]`,`invalid_params`);if(t?.role===`assistant`&&t.toolCalls?.length)throw new f(`history[${n}] follows an assistant tool request without tool results`,`invalid_params`)}t=r}if(t?.role===`assistant`&&t.toolCalls?.length)throw new f(`The last entry in history is an assistant tool request without tool results`,`invalid_params`);if(t?.role===`user`)throw new f(`The last entry in history is a "user" turn, which would collide with the current userContent turn.`,`invalid_params`)}buildWireToolChoice(e){return!e||e===`auto`?`auto`:e===`none`||e===`required`?e:{type:`function`,function:{name:e.name}}}turnToWireMessages(e){return e.role===`tool`?(e.toolResults??[]).map(e=>({role:`tool`,tool_call_id:e.toolCallId,content:typeof e.content==`string`?e.content:JSON.stringify(e.content??null),...e.isError?{is_error:!0}:{}})):e.role===`assistant`&&e.toolCalls?.length?[{role:`assistant`,...e.content===void 0?{}:{content:Ee(e.content)},tool_calls:we(e.toolCalls)}]:e.role===`assistant`?[{role:`assistant`,content:Ee(e.content===void 0?``:e.content)}]:[{role:e.role,content:e.content??``}]}buildResponseFormat(e,t){return e?{type:`json_schema`,json_schema:{name:e.name,schema:e.schema,strict:e.strict??!0,description:e.description}}:t?{type:`json_object`}:void 0}};const F=1e4,I=1e6;function Oe(e,t,n){let{requestId:r,model:i,providerName:a,isFallback:o,chunkIdleTimeoutMs:s,streamController:c,logger:l,signal:u}=n,d,p,m=new Promise((e,t)=>{d=e,p=t});m.catch(()=>{});let h=1e4,g=[],_=[],v=!1,y,b=!1,x=e=>{let t=_.shift();if(t){t.resolve({done:!1,value:e});return}g.push(e),g.length>h*2&&(b||(b=!0,l.warn(`[VernLLM] stream chunk buffer exceeded cap (${h}), evicting ${g.length-h} oldest chunk(s); buffered=${g.length}. The chunks iterable was never read (or fell far behind) for this stream.`)),g.splice(0,g.length-h))},S=()=>{v=!0;for(let e of _.splice(0))e.resolve({done:!0,value:void 0})},C=e=>{v=!0,y=e;for(let t of _.splice(0))t.reject(e)},w={[Symbol.asyncIterator](){return{next(){return g.length?Promise.resolve({done:!1,value:g.shift()}):v?y?Promise.reject(y):Promise.resolve({done:!0,value:void 0}):new Promise((e,t)=>{_.push({resolve:e,reject:t})})}}}},T=new Map,E=``,D;return(async()=>{try{let n=t;for(;!n.done;){let t=n.value;if(t.type!==`ping`){if(t.type===`text-delta`)E+=t.delta,x({type:`text-delta`,delta:t.delta});else if(t.type===`tool_call_delta`){let e=T.get(t.index);if(!e){if(T.size>=F)throw new f(`Stream contained more than ${F} distinct tool calls`,`validation`);e={args:``}}let n=t.argumentsDelta??``;if(e.args.length+n.length>I)throw new f(`Tool call arguments exceeded the ${I}-character stream limit`,`validation`);e.id??=t.id,e.name??=t.name,e.args+=n,T.set(t.index,e),x({type:`tool_call_delta`,index:t.index,id:t.id,name:t.name,argsDelta:t.argumentsDelta,complete:t.complete})}else if(t.type===`usage`){let e=t.usage.completion_tokens_details?.reasoning_tokens;D={promptTokens:t.usage.prompt_tokens??0,completionTokens:t.usage.completion_tokens??0,totalTokens:t.usage.total_tokens??0,...e===void 0?{}:{reasoningTokens:e},requestId:r,model:i,provider:a,usedFallback:o},x({type:`usage`,usage:D})}}n=await le(()=>e.next(),s,()=>c.abort(),l)}}catch(t){try{await e.return?.()}catch{}c.abort();let r=P(t,u);try{n.onStreamFailure(r,D)}catch{}C(r),p(r);return}S();try{n.onStreamSuccess(D)}catch{}try{let e=T.size?[...T.entries()].sort(([e],[t])=>e-t).map(([,e])=>({id:e.id??``,type:`function`,function:{name:e.name??``,arguments:e.args}})):void 0,t=n.finalize(E,e,D);d(t)}catch(e){p(e)}})(),{chunks:w,finalResult:m}}function ke(e){return e}var Ae=class{maxRetries;timeoutMs;chunkIdleTimeoutMs;baseDelayMs;nonRetryableStatus;parseJson;logger;redact;onUsage;onUsageFailure;reportEvent;breaker;limiter;isFallback;requestBuilder;constructor(e,t,n,r){this.providerName=e,this.client=t,this.model=n,this.maxRetries=r.maxRetries,this.timeoutMs=r.timeoutMs,this.chunkIdleTimeoutMs=r.chunkIdleTimeoutMs,this.baseDelayMs=r.baseDelayMs,this.nonRetryableStatus=r.nonRetryableStatus,this.parseJson=r.parseJson??Se,this.logger=r.logger,this.redact=r.redact,this.onUsage=r.onUsage,this.onUsageFailure=r.onUsageFailure,this.reportEvent=j(r.onEvent,this.logger),this.breaker=r.breaker,this.limiter=r.limiter,this.isFallback=r.isFallback??!1,this.requestBuilder=new De({model:n,defaultMaxTokens:r.defaultMaxTokens,defaultTemperature:r.defaultTemperature,defaultReasoningEffort:r.defaultReasoningEffort,defaultBudgetTokens:r.defaultBudgetTokens,supportsJsonObjectMode:t.supportsJsonObjectMode??!0})}getCircuitState(e){return this.breaker?.getState(e)}get isolateByModel(){return this.breaker?.isolateByModel??!1}openCircuit(e){this.breaker?.open(e)}closeCircuit(e){this.breaker?.close(e)}assertBreakerClosed(e){this.breaker?.assertClosed(e??this.model)}async run(e,t,n){let r=e.model??this.model,i=[];try{return await this.retryWithBackoff((n,r)=>this.executeCall(e,t,n,r),t,r,e.signal,n,i)}catch(n){let a=P(n,e.signal,i.length>0?i:void 0);throw this.countsTowardBreaker(a)&&this.breaker?.recordFailure(r),this.logger.debug(`[VernLLM:${t}] error:\n${this.redactText(N(n))}`),a}}async runStream(e,t,n){let r=e.model??this.model,i=[];try{return await this.retryWithBackoff((n,r)=>this.executeStreamCall(e,t,n,r),t,r,e.signal,n,i)}catch(n){let a=P(n,e.signal,i.length>0?i:void 0);throw this.countsTowardBreaker(a)&&this.breaker?.recordFailure(r),this.logger.debug(`[VernLLM:${t}] stream-open error:\n${this.redactText(N(n))}`),a}}async executeCall(e,t,n,r){let{useJson:i,model:a,request:o}=this.requestBuilder.build(e);r?.(d(this.providerName,a,o,void 0,Date.now()));let s;if(this.limiter){let n=await this.limiter.acquire(this.limiter.estimate(o),e.signal);s=n.release,n.waitedMs>0&&this.reportEvent({kind:`rate_limited`,requestId:t,provider:this.providerName,model:a,waitedMs:n.waitedMs,reason:n.reason??`rpm`})}try{let r=await ce(e=>this.client.chat.completions.create(o,{signal:e}),this.timeoutMs,e.signal),c=this.extractUsage(r,t,a);s?.(this.actualTokensFor(c)),s=void 0;let l=r.choices?.[0]?.message?.content,u=r.choices?.[0]?.message?.tool_calls;return this.finalizeResponse(l,u,e,i,a,c,t,n)}finally{s?.()}}redactText(e){return this.redact?this.redact(e):e}redactedOutput(e,t){return this.redactText(e??`[${t?.length??0} tool call(s)]`)}finalizeResponse(e,t,n,r,i,a,o,s){try{let s=e?.trim();if(!s&&!t?.length)throw new f(`Empty LLM response`,`api`,{code:`empty_response`});if(this.logger.debug(`[VernLLM:${o}] output:\n${this.redactedOutput(s,t).slice(0,800)}`),t?.length){if(!n.tools)throw new f("Provider returned tool_calls but no `tools` were sent with this call.",`validation`,{code:`unexpected_tool_calls`});if(n.toolChoice===`none`)throw new f(`Provider returned tool_calls despite toolChoice: 'none'.`,`validation`,{code:`tool_choice_none_violated`});let e=Te(t);return this.validateToolCallArguments(e,n.tools),this.breaker?.recordSuccess(i),this.reportUsage(a),{type:`tool_calls`,toolCalls:e,...s?{content:s}:{}}}let c=s??``;if(!r)return this.breaker?.recordSuccess(i),this.reportUsage(a),n.tools?{type:`content`,content:c}:c;let l=this.parseAndValidate(c,n.schema);return this.breaker?.recordSuccess(i),this.reportUsage(a),n.tools?{type:`content`,content:l}:l}catch(e){let t=P(e,n.signal);throw a&&t.type!==`aborted`&&this.reportUsageFailure(a,t,s),t}}async executeStreamCall(e,t,n,r){let{useJson:i,model:a,request:o}=this.requestBuilder.build(e);r?.(d(this.providerName,a,o,void 0,Date.now()));let s=this.client.chat.completions;if(!s.createStream)throw new f(`stream: true requires a client/adapter with createStream`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`createStream`}});let c=s.createStream.bind(s),l;if(this.limiter){let n=await this.limiter.acquire(this.limiter.estimate(o),e.signal);l=n.release,n.waitedMs>0&&this.reportEvent({kind:`rate_limited`,requestId:t,provider:this.providerName,model:a,waitedMs:n.waitedMs,reason:n.reason??`rpm`})}let u=new AbortController,p=e.signal?AbortSignal.any([e.signal,u.signal]):u.signal;try{let{iterator:r,first:s}=await ce(async e=>{let t=c(o,{signal:e})[Symbol.asyncIterator](),n=await t.next();return{iterator:t,first:n}},this.timeoutMs,p);if(s.done)throw new f(`Empty LLM response`,`api`);let d=l,m=Oe(r,s,{requestId:t,model:a,providerName:this.providerName,isFallback:this.isFallback,chunkIdleTimeoutMs:e.chunkIdleTimeoutMs??this.chunkIdleTimeoutMs,streamController:u,logger:this.logger,signal:e.signal,onStreamSuccess:e=>{this.breaker?.recordSuccess(a),d?.(this.actualTokensFor(e))},onStreamFailure:(e,t)=>{e.type===`timeout`&&this.breaker?.recordFailure(a),t&&e.type!==`aborted`&&this.reportUsageFailure(t,e,n,!0),d?.(this.actualTokensFor(t))},finalize:(r,o,s)=>this.finalizeResponse(r,o,e,i,a,s,t,n)});return l=void 0,m}finally{l?.()}}validateToolCallArguments(e,t){let n=new Map(t.map(e=>[e.name,e])),r=new Set,i=[];for(let t of e)r.has(t.id)&&i.push({name:t.name,toolCallId:t.id,code:`duplicate_tool_call_id`}),r.add(t.id),n.has(t.name)||i.push({name:t.name,toolCallId:t.id,code:`unknown_tool`});if(i.length>0){let e=i.find(e=>e.code===`unknown_tool`),t=e?`Model requested tool "${e.name}", which was not in the tools offered ([${[...n.keys()].join(`, `)}]).`:`Duplicate tool call id "${i[0].toolCallId}" in the model's response.`,r=i.length>1?`${t} (${i.length} tool call issues total, see error.issues.)`:t;throw new f(r,`validation`,{code:e?`unknown_tool`:`duplicate_tool_call_id`,issues:i})}for(let t of e){let e=n.get(t.name);if(!e?.argumentsSchema)continue;let r=e.argumentsSchema.safeParse(t.arguments);if(!r.success)throw new f(`Arguments for tool call "${t.name}" failed validation`,`validation`,{issues:r.error})}}async retryWithBackoff(e,t,n,r,i,a){let o,s;for(let c=0;c<=this.maxRetries;c++){s=void 0;try{return c>0&&await this.recoverDelay(t,n,c,o,r),i?.(),await e(c,e=>{s=e})}catch(e){o=e;let t=c<this.maxRetries&&this.shouldRetry(e,r);if(!t)break;a?.push({index:c,error:P(e,r).toSnapshot(),request:ke(s)})}}throw o}extractUsage(e,t,n){if(!e.usage)return;let r=e.usage.completion_tokens_details?.reasoning_tokens;return{promptTokens:e.usage.prompt_tokens??0,completionTokens:e.usage.completion_tokens??0,totalTokens:e.usage.total_tokens??0,...r===void 0?{}:{reasoningTokens:r},requestId:t,model:n,provider:this.providerName,usedFallback:this.isFallback}}actualTokensFor(e){if(e)return e.totalTokens||e.promptTokens+e.completionTokens}reportUsage(e){if(!(!e||!this.onUsage))try{this.onUsage(e)}catch(e){this.logger.error(`[VernLLM] onUsage failed`,{message:e instanceof Error?e.message:`unknown`})}}reportUsageFailure(e,t,n,r=!1){let i=e.totalTokens||e.promptTokens+e.completionTokens,a=r?`mid-stream failure (terminal, no further attempts)`:`attempt ${n+1}/${this.maxRetries+1}`;if(this.logger.warn(`[VernLLM:${e.requestId}] usage failure, ${a}: type=${t.type} tokens=${i}`),this.onUsageFailure)try{this.onUsageFailure(e,t)}catch(e){this.logger.error(`[VernLLM] onUsageFailure failed`,{message:e instanceof Error?e.message:`unknown`})}}parseAndValidate(e,t){let n;try{n=this.parseJson(e)}catch{throw new f(`Invalid JSON response`,`parse`)}if(n==null)throw new f(`Invalid JSON response`,`parse`);if(!t)return n;let r=t.safeParse(n);if(!r.success)throw new f(`Schema validation failed`,`validation`,{issues:r.error});return r.data}async recoverDelay(e,t,n,r,i){let a=ue(r),o=a??de(this.baseDelayMs,n),s=a!==void 0;this.logger.warn(`[VernLLM:${e}] recovery attempt ${n}/${this.maxRetries}, waiting ${Math.ceil(o)}ms`+(s?` (honoring Retry-After)`:``)),this.reportEvent({kind:`retry`,requestId:e,provider:this.providerName,model:t,attempt:n,maxRetries:this.maxRetries,delayMs:o,retryAfterHonored:s,error:P(r,i)}),await fe(o,i)}shouldRetry(e,t){if(t?.aborted||e instanceof f&&!e.retryable)return!1;let n=pe(e);return!(n!==void 0&&this.nonRetryableStatus.includes(n))}countsTowardBreaker(e){return e.retryable}};function je(e){return{debug:L(e,`debug`),warn:L(e,`warn`),error:L(e,`error`)}}function L(e,t){let n=e[t].bind(e);return(...e)=>{try{Ne(n(...e))}catch{}}}function Me(e){return typeof e?.then==`function`}function Ne(e){Me(e)&&Promise.resolve(e).catch(()=>{})}var R=class{constructor(e){this.debugEnabled=e}debug(e){this.debugEnabled&&console.debug(e)}warn(e){console.warn(e)}error(e,t){console.error(e,t??``)}};function z(e){let t=e.messages.reduce((e,t)=>{let n=t.content;if(typeof n==`string`)return e+n.length;if(n==null)return e;try{return e+JSON.stringify(n).length}catch{return e}},0);return Math.ceil(t/4)+(e.max_tokens??0)}var B=class{available;lastRefill=Date.now();constructor(e,t){this.capacity=e,this.refillPerMs=t,this.available=e}refill(){if(this.refillPerMs===0)return;let e=Date.now(),t=e-this.lastRefill;this.available=Math.min(this.capacity,this.available+Math.max(0,t)*this.refillPerMs),this.lastRefill=e}tryTake(e){return this.refill(),this.available<e?!1:(this.available-=e,!0)}msUntilAvailable(e){return this.refill(),this.available>=e?0:this.refillPerMs===0?1/0:(e-this.available)/this.refillPerMs}give(e){this.available=Math.min(this.capacity,this.available+e)}getCapacity(){return this.capacity}};const Pe=2147483647;var V=class{requests;tokens;concurrency;maxQueueMs;maxQueueSize;estimateTokensFn;queue=[];wakeTimer;constructor(e){e.requestsPerMinute&&(this.requests=new B(e.requestsPerMinute,e.requestsPerMinute/6e4)),e.tokensPerMinute&&(this.tokens=new B(e.tokensPerMinute,e.tokensPerMinute/6e4)),e.maxConcurrent&&(this.concurrency=new B(e.maxConcurrent,0)),this.maxQueueMs=e.maxQueueMs??3e4,this.maxQueueSize=e.maxQueueSize??0,this.estimateTokensFn=e.estimateTokens??z}estimate(e){return this.estimateTokensFn(e)}async acquire(e,t){if(t?.aborted)throw new f(`LLM request aborted`,`aborted`);if(!Number.isFinite(e)||e<0)throw new f(`estimatedTokens must be a finite, non-negative number, got ${String(e)}`,`invalid_params`);if(this.tokens&&e>this.tokens.getCapacity())throw new f(`estimatedTokens (${e}) exceeds the configured tokensPerMinute capacity (${this.tokens.getCapacity()}); this call could never acquire capacity.`,`rate_limited`,{code:`rate_limit_capacity_exceeded`});if(this.queue.length===0){let n=this.tryAcquireBuckets(e);return n.ok?{release:this.makeRelease(e),waitedMs:0}:this.enqueue(e,n.reason,t)}if(this.maxQueueSize>0&&this.queue.length>=this.maxQueueSize)throw this.queueFullError();return this.enqueue(e,void 0,t)}queueFullError(){return new f(`Rate limit queue is full`,`rate_limited`,{code:`rate_limit_queue_full`})}enqueue(e,t,n){return new Promise((r,i)=>{let a={estimatedTokens:e,enqueuedAt:Date.now(),lastReason:t,resolve:e=>{c(),r(e)},reject:e=>{c(),this.wakeTimer&&(clearTimeout(this.wakeTimer),this.wakeTimer=void 0),this.drain(),i(e)}},o,s=()=>{a.reject(new f(`LLM request aborted`,`aborted`))},c=()=>{o&&clearTimeout(o),n?.removeEventListener(`abort`,s);let e=this.queue.indexOf(a);e!==-1&&this.queue.splice(e,1)};this.maxQueueMs>0&&(o=setTimeout(()=>{a.reject(new f(`Rate limit queue timed out before capacity was available`,`rate_limited`,{code:`rate_limit_queue_timeout`}))},this.maxQueueMs)),n?.addEventListener(`abort`,s,{once:!0}),this.queue.push(a),this.drain()})}tryAcquireBuckets(e){let t=[],n=(e,n)=>e?e.tryTake(n)?(t.push({bucket:e,amount:n}),!0):!1:!0;if(!n(this.concurrency,1))return{ok:!1,reason:`concurrency`};if(!n(this.requests,1)){for(let e of t)e.bucket.give(e.amount);return{ok:!1,reason:`rpm`}}if(!n(this.tokens,e)){for(let e of t)e.bucket.give(e.amount);return{ok:!1,reason:`tpm`}}return{ok:!0}}drain(){for(;this.queue.length>0;){let e=this.queue[0],t=this.tryAcquireBuckets(e.estimatedTokens);if(!t.ok){e.lastReason=t.reason,this.scheduleWake(t.reason,e.estimatedTokens);return}let n=Date.now()-e.enqueuedAt;e.resolve({release:this.makeRelease(e.estimatedTokens),waitedMs:n,reason:e.lastReason})}}scheduleWake(e,t){if(this.wakeTimer)return;let n=e===`rpm`?this.requests?.msUntilAvailable(1):e===`tpm`?this.tokens?.msUntilAvailable(t):void 0;if(n===void 0||!Number.isFinite(n))return;let r=Math.min(Math.max(1,Math.ceil(n)),Pe);this.wakeTimer=setTimeout(()=>{this.wakeTimer=void 0,this.drain()},r)}makeRelease(e){let t=!1;return n=>{t||(t=!0,this.concurrency?.give(1),this.tokens&&n!==void 0&&Number.isFinite(n)&&this.tokens.give(e-n),this.drain())}}},Fe=class{logger;executors;fallbackOn;reportEvent;cacheOrchestrator;constructor(e){this.logger=je(e.logger??new R(e.debug??!1));let t=e.name??`primary`;this.cacheOrchestrator=new ne(e.cache??new h,this.logger),this.fallbackOn=e.fallbackOn??x,this.reportEvent=j(e.onEvent,this.logger);let n=e.defaultTemperature===void 0?.2:e.defaultTemperature,r=e.defaultReasoningEffort,i=e.defaultBudgetTokens,a={client:e.client,model:e.model,name:t,maxRetries:e.maxRetries,timeoutMs:e.timeoutMs,chunkIdleTimeoutMs:e.chunkIdleTimeoutMs,baseDelayMs:e.baseDelayMs,defaultMaxTokens:e.defaultMaxTokens,defaultTemperature:n,defaultReasoningEffort:r,defaultBudgetTokens:i,nonRetryableStatus:e.nonRetryableStatus,circuitBreaker:e.circuitBreaker,rateLimit:e.rateLimit},o=Array.isArray(e.fallback)?e.fallback:e.fallback?[e.fallback]:[],s=[a,...o];this.executors=s.map((a,o)=>{let s=o>0,c=a.name??(s?`fallback[${o-1}]`:t),l=ie(a.circuitBreaker,c,a.model,e.onEvent,this.logger);return new Ae(c,a.client,a.model,{maxRetries:a.maxRetries??e.maxRetries??1,timeoutMs:a.timeoutMs??e.timeoutMs??25e3,chunkIdleTimeoutMs:a.chunkIdleTimeoutMs??e.chunkIdleTimeoutMs??3e4,baseDelayMs:a.baseDelayMs??e.baseDelayMs??500,defaultMaxTokens:a.defaultMaxTokens??e.defaultMaxTokens??1e3,defaultTemperature:a.defaultTemperature===void 0?n:a.defaultTemperature,defaultReasoningEffort:a.defaultReasoningEffort===void 0?r:a.defaultReasoningEffort,defaultBudgetTokens:a.defaultBudgetTokens===void 0?i:a.defaultBudgetTokens,nonRetryableStatus:a.nonRetryableStatus??e.nonRetryableStatus??[400,401,403,404,422],parseJson:e.parseJson,logger:this.logger,redact:e.redact,onUsage:e.onUsage,onUsageFailure:e.onUsageFailure,onEvent:e.onEvent,breaker:l,limiter:a.rateLimit?new V(a.rateLimit):void 0,isFallback:s})})}logRefundError(e,t){this.logger.error(e,{message:t instanceof Error?t.message:`unknown`})}async runFallbackChain(e,t,n,r=!1){let i=[];for(let a=0;a<this.executors.length;a++){let o=this.executors[a],s=Date.now(),c=0;try{a===0&&r||o.assertBreakerClosed(e.model);let t=await n(o,()=>{c+=1});return{result:t,executor:o,index:a,attemptCount:c}}catch(n){let r=P(n,e.signal);i.push({index:a-1,provider:o.providerName,model:e.model??o.model,error:r.toSnapshot()});let c=a===this.executors.length-1,l=this.fallbackOn(r,{isLastTarget:c}),u=c?`stop`:l;if(u===`stop`)throw i.length>1?new S(i):r;let d=this.executors[a+1];this.reportEvent({kind:`fallback`,requestId:t,from:o.providerName,to:d.providerName,fromIndex:a-1,toIndex:a,error:r,elapsedMs:Date.now()-s})}}throw new f(`No provider targets configured`,`invalid_params`)}async call(t){if(t.signal?.aborted)throw new f(`LLM request aborted`,`aborted`);let n=t.requestId??e(),r=this.executors.length===1;return r&&this.executors[0].assertBreakerClosed(t.model),t.stream?D(t,async()=>{let{result:e}=await this.runFallbackChain(t,n,(e,r)=>e.runStream(t,n,r),r);return e},t.signal,(e,t)=>this.logRefundError(e,t)):E(t,!1,async()=>{let{result:e,executor:i,index:a,attemptCount:o}=await this.runFallbackChain(t,n,(e,r)=>e.run(t,n,r),r);return t.meta&&(t.meta.current={provider:i.providerName,model:t.model??i.model,fallbackIndex:a-1,usedFallback:a>0,attempts:o}),e},t.signal,(e,t)=>this.logRefundError(e,t))}runCached(e){return this.cacheOrchestrator.runCached(e)}async deleteCache(e){await this.cacheOrchestrator.deleteCache(e)}async cachedCall(e){let{call:t,...n}=e,r=t;if(r.reserveUsage||r.refundUsage)throw new f("`reserveUsage`/`refundUsage` were set inside `call`, where cachedCall ignores them. Move them to the top level of the cachedCall() params, alongside cacheKey/ttl, instead.",`invalid_params`);if(r.stream){let e=r;return this.cacheOrchestrator.runCachedStream({...n,openStream:()=>this.call(e)},!!r.tools)}return this.runCached({...n,fn:()=>this.call(r)})}getCircuitState(e){let t=this.resolveExecutor(e?.index??0,`getCircuitState`);return this.warnIfModelUnsupported(t.isolateByModel,e?.model,`getCircuitState`),t.getCircuitState(e?.model??t.model)}getCircuitStates(e){return this.executors.map((t,n)=>({provider:t.providerName,index:n,isFallback:n>0,isolateByModel:t.isolateByModel,state:t.getCircuitState(e??t.model)}))}openCircuit(e){let t=this.resolveExecutor(e?.index??0,`openCircuit`);this.warnIfModelUnsupported(t.isolateByModel,e?.model,`openCircuit`),t.openCircuit(e?.model??t.model)}closeCircuit(e){let t=this.resolveExecutor(e?.index??0,`closeCircuit`);this.warnIfModelUnsupported(t.isolateByModel,e?.model,`closeCircuit`),t.closeCircuit(e?.model??t.model)}resolveExecutor(e,t){let n=this.executors[e];if(!n)throw RangeError(`${t}: no target at index ${e} (chain has ${this.executors.length} target${this.executors.length===1?``:`s`})`);return n}warnIfModelUnsupported(e,t,n){t!==void 0&&!e&&this.logger.warn(`[VernLLM] ${n}: \`model: '${t}'\` has no effect here. This target's circuitBreaker doesn't have isolateByModel on, so it only tracks one shared circuit regardless of \`model\`. Omit \`model\`, or set \`circuitBreaker.isolateByModel: true\` on this target if per-model tracking is what you want.`)}};function Ie(e){return e}function Le(e){return e}async function*H(e){let t=new TextDecoder(`utf-8`,{fatal:!0}),n=``;for await(let r of e){let e;try{e=typeof r==`string`?r:t.decode(r,{stream:!0})}catch(e){throw new f(`Invalid UTF-8 in SSE stream`,`parse`,{cause:e})}n=(n+e).replace(/\r\n/g,`
|
|
1
|
+
import{randomUUID as e}from"crypto";const t=new Set([`unknown_tool`,`duplicate_tool_call_id`,`tool_choice_none_violated`,`unexpected_tool_calls`]),n=new Set([`rate_limit_queue_full`,`rate_limit_queue_timeout`,`rate_limit_capacity_exceeded`]),r=new Set([`middleware_timeout`]),i=new Set([`parse`,`validation`,`invalid_params`,`aborted`]);function a(e,a){return!(i.has(e)||a&&t.has(a)||a&&n.has(a)||a&&r.has(a))}function o(e){if(e!==void 0)try{return JSON.stringify(e),e}catch{return`[Unserializable: issues contained a circular reference]`}}function s(e){if(e!==void 0)try{return JSON.parse(JSON.stringify(e))}catch{return`[Unserializable: request body contained a circular reference]`}}const c=new Set([`authorization`,`x-api-key`,`x-goog-api-key`,`api-key`]);function l(e){if(e===void 0)return;let t={};for(let[n,r]of Object.entries(e))c.has(n.toLowerCase())||(t[n]=r);return t}const u=20;function d(e,t=0){if(e!==void 0)return t>=u?[]:e.map(e=>({...e,error:{...e.error,issues:o(e.error.issues),attempts:d(e.error.attempts,t+1)},request:e.request&&{...e.request,body:s(e.request.body),headers:l(e.request.headers)}}))}function f(e,t,n,r,i=Date.now()){return{provider:e,model:t,body:s(n),headers:l(r),startedAt:i}}var p=class extends Error{status;issues;cause;retryAfterMs;code;attempts;constructor(e,t,n={}){super(e),this.type=t,this.name=`LLMError`,this.status=n.status,this.issues=n.issues,this.cause=n.cause,this.retryAfterMs=n.retryAfterMs,this.code=n.code,this.attempts=n.attempts}get retryable(){return a(this.type,this.code)}toSnapshot(){return{message:this.message,type:this.type,status:this.status,issues:o(this.issues),retryAfterMs:this.retryAfterMs,code:this.code,retryable:this.retryable,attempts:d(this.attempts)}}toJSON(){return{name:this.name,message:this.message,type:this.type,status:this.status,issues:o(this.issues),retryAfterMs:this.retryAfterMs,code:this.code,retryable:this.retryable,attempts:d(this.attempts)}}};function m(e){return e instanceof p}function h(e,t){return e.code===t&&e.issues!==void 0}var g=class{store=new Map;constructor(e=1e3){this.maxSize=e}async get(e){let t=this.store.get(e);return t?Date.now()>=t.expiresAt?(this.store.delete(e),{hit:!1,value:null}):{hit:!0,value:t.value}:{hit:!1,value:null}}async set(e,t,n){this.cleanupExpiredEntries(),this.store.set(e,{value:t,expiresAt:Date.now()+n*1e3}),this.enforceSizeLimit()}async delete(e){this.store.delete(e)}cleanupExpiredEntries(){let e=Date.now();for(let[t,n]of this.store)e>=n.expiresAt&&this.store.delete(t)}enforceSizeLimit(){for(;this.store.size>this.maxSize;){let e=this.store.keys().next().value;if(e===void 0)break;this.store.delete(e)}}},_=class{constructor(e=new g){this.inner=e}normalize(e){return e.toLowerCase().trim().replace(/[^\p{L}\p{N}\s]/gu,` `).replace(/\s+/g,` `).trim()}async resolveKey(e){return this.normalize(e)}async get(e){return this.inner.get(this.normalize(e))}async set(e,t,n){await this.inner.set(this.normalize(e),t,n)}async delete(e){await this.inner.delete?.(this.normalize(e))}},v=class{constructor(e,t,n){this.l1=e,this.l2=t,this.l1Ttl=n}async resolveKey(e){return this.l1.resolveKey?this.l1.resolveKey(e):this.l2.resolveKey?this.l2.resolveKey(e):e}async get(e){let t=await this.l1.get(e);if(t.hit)return t;let n=await this.l2.get(e);return n.hit&&await this.l1.set(e,n.value,this.l1Ttl??60),n}async set(e,t,n){await Promise.all([this.l1.set(e,t,this.l1Ttl??n),this.l2.set(e,t,n)])}async delete(e){await Promise.all([this.l1.delete?.(e),this.l2.delete?.(e)])}};function y(e){return e}function b(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_calls`&&Array.isArray(e.toolCalls)}const x=new Set([`unknown_tool`,`duplicate_tool_call_id`,`tool_choice_none_violated`,`unexpected_tool_calls`]),S=e=>e.type===`parse`||e.type===`validation`||e.type===`aborted`||e.type===`quota_exceeded`||e.code&&x.has(e.code)?`stop`:`next`;var C=class extends p{constructor(e){let t=e[e.length-1]?.error;super(`${e.length} provider${e.length===1?``:`s`} attempted and failed: ${e.map(e=>`${e.provider}(${e.error.type})`).join(` then `)}`,`fallback_exhausted`,{status:t?.status,cause:t,retryAfterMs:t?.retryAfterMs,code:`fallback_exhausted`,attempts:e}),this.attempts=e}get retryable(){let e=this.attempts[this.attempts.length-1]?.error;return e?e.retryable:super.retryable}};function ee(e){return e instanceof C}function te(){return{}}function ne(e){return{debugName:e}}function w(){let e=new Map;return{get(t){return e.get(t)},set(t,n){e.set(t,n)}}}function re(e){let{onError:t,...n}=e;return t?{...n,wrap:async(e,n,r)=>{try{return await n()}catch(e){try{await t(e,r)}catch{}throw e}}}:n}function ie(e,t){let n=e.completion_tokens_details?.reasoning_tokens;return{promptTokens:e.prompt_tokens??0,completionTokens:e.completion_tokens??0,totalTokens:e.total_tokens??0,...n===void 0?{}:{reasoningTokens:n},requestId:t.requestId,model:t.model,provider:t.providerName,usedFallback:t.isFallback}}async function ae(e,t,n){if(!e.reserveUsage)return!1;try{return await e.reserveUsage({coalesced:t,signal:n}),!0}catch(e){throw n?.aborted?new p(`LLM request aborted`,`aborted`):new p(e instanceof Error?e.message:`Usage reservation failed`,`quota_exceeded`,{cause:e})}}function oe(e,t,n,r){return async i=>{try{await e.refundUsage?.({coalesced:t,signal:n})}catch(e){r(i,e)}}}async function T(e,t,n,r,i){if(r?.aborted)throw new p(`LLM request aborted`,`aborted`);let a=await ae(e,t,r),o=oe(e,t,r,i);if(r?.aborted)throw a&&await o(`[VernLLM] refundUsage failed after abort`),new p(`LLM request aborted`,`aborted`);let s;try{s=await n()}catch(e){throw a&&await o(`[VernLLM] refundUsage failed`),e}if(r?.aborted)throw a&&await o(`[VernLLM] refundUsage failed after abort`),new p(`LLM request aborted`,`aborted`);return s}async function se(e,t,n,r){if(n?.aborted)throw new p(`LLM request aborted`,`aborted`);let i=await ae(e,!1,n),a=oe(e,!1,n,r);if(n?.aborted)throw i&&await a(`[VernLLM] refundUsage failed after abort`),new p(`LLM request aborted`,`aborted`);let o;try{o=await t()}catch(e){throw i&&await a(`[VernLLM] refundUsage failed after stream-open failure`),e}let s=o.finalResult.then(e=>e,async e=>{throw i&&await a(`[VernLLM] refundUsage failed after stream error`),e});return s.catch(()=>{}),{chunks:o.chunks,finalResult:s}}function ce(){let e=new Map;function t(t){return e.get(t)}function n(t,n){return e.set(t,n),n.catch(()=>{}).finally(()=>{e.get(t)===n&&e.delete(t)}),n}return{get:t,track:n}}function le(e){return typeof e==`string`?e:JSON.stringify(e)??``}function ue(e,t){let n=[];if(t){let t=e;t.type===`tool_calls`?(t.toolCalls.forEach((e,t)=>{n.push({type:`tool_call_delta`,index:t,id:e.id,name:e.name,argsDelta:JSON.stringify(e.arguments??{}),complete:!0})}),t.content&&n.push({type:`text-delta`,delta:t.content})):n.push({type:`text-delta`,delta:le(t.content)})}else n.push({type:`text-delta`,delta:le(e)});return{async*[Symbol.asyncIterator](){for(let e of n)yield e}}}function de(e,t){return{async*[Symbol.asyncIterator](){let n=await e;yield*ue(n,t)}}}var fe=class{inFlight=ce();constructor(e,t){this.cache=e,this.logger=t}async resolveCacheKey(e){return this.cache.resolveKey?await this.cache.resolveKey(e):e}async deleteCache(e){if(this.cache.delete)try{await this.cache.delete(await this.resolveCacheKey(e))}catch(e){this.logger.warn(`[VernLLM] cache delete failed: ${e instanceof Error?e.message:`unknown`}`)}}logRefundError(e,t){this.logger.error(e,{message:t instanceof Error?t.message:`unknown`})}async getCached(e){try{return await this.cache.get(e)}catch(e){return this.logger.warn(`[VernLLM] cache read failed: ${e instanceof Error?e.message:`unknown`}`),{hit:!1}}}async resolveKeyAndReadCache(e){let t=await this.resolveCacheKey(e.cacheKey),n=t===e.cacheKey?e:{...e,cacheKey:t};return{resolvedParams:n,cached:await this.getCached(t)}}joinInFlight(e,t){return T(e,!0,()=>t,e.signal,(e,t)=>this.logRefundError(e,t))}async runCached(e){let{resolvedParams:t,cached:n}=await this.resolveKeyAndReadCache(e);if(n.hit)return n.value;let r=this.inFlight.get(t.cacheKey);return r?this.joinInFlight(t,r):this.registerTrigger(t)}registerTrigger(e){let t=T(e,!1,()=>this.runAndCache(e),e.signal,(e,t)=>this.logRefundError(e,t));return this.inFlight.track(e.cacheKey,t),t}async runAndCache(e){let t=await e.fn();try{await this.cache.set(e.cacheKey,t,e.ttl)}catch(e){this.logger.warn(`[VernLLM] cache write failed: ${e instanceof Error?e.message:`unknown`}`)}return t}async runCachedStream(e,t){let{resolvedParams:n,cached:r}=await this.resolveKeyAndReadCache(e);if(r.hit){let e=r.value;return{chunks:ue(e,t),finalResult:Promise.resolve(e)}}let i=this.inFlight.get(n.cacheKey);if(i){let e=this.joinInFlight(n,i);return e.catch(()=>{}),{chunks:de(e,t),finalResult:e}}return this.registerStreamTrigger(n)}registerStreamTrigger(e){let t,n,r=new Promise((e,r)=>{t=e,n=r});this.inFlight.track(e.cacheKey,r);let i=se(e,async()=>{let t=await e.openStream(),n=t.finalResult.then(async t=>{try{await this.cache.set(e.cacheKey,t,e.ttl)}catch(e){this.logger.warn(`[VernLLM] cache write failed: ${e instanceof Error?e.message:`unknown`}`)}return t},e=>{throw e});return{chunks:t.chunks,finalResult:n}},e.signal,(e,t)=>this.logRefundError(e,t));return i.then(e=>{e.finalResult.then(t,n)},e=>{n(e)}),i}};const pe=1e4,me=2147483647;function he(e){return!e||e<=0||e===1/0?void 0:e}function ge(e){return Math.min(e,me)}async function _e(e,t,n){let r=new AbortController,i=he(t),a=i===void 0?void 0:setTimeout(()=>{r.abort()},ge(i)),o=n?AbortSignal.any([n,r.signal]):r.signal;try{return await e(o)}catch(e){throw r.signal.aborted&&!n?.aborted&&e instanceof DOMException&&e.name===`AbortError`?new p(`Request timed out`,`timeout`,{code:`request_timeout`}):e}finally{clearTimeout(a)}}function ve(e,t,n,r){let i=he(t);if(i===void 0)return e();let a=!1;return new Promise((t,o)=>{let s=setTimeout(()=>{a=!0,n?.(),o(new p(`No stream chunk received for ${i}ms (idle timeout)`,`timeout`,{code:`idle_timeout`}))},ge(i));e().then(e=>{if(clearTimeout(s),a){r?.debug(`[VernLLM] chunk resolved after idle timeout already fired; discarding`);return}a=!0,t(e)},e=>{if(clearTimeout(s),a){r?.debug(`[VernLLM] chunk rejection arrived after idle timeout already fired; discarding`);return}a=!0,o(e)})})}const ye=[{name:`Retry-After-Ms`,kind:`ms`},{name:`X-Retry-After-Ms`,kind:`ms`},{name:`Retry-After`,kind:`seconds`},{name:`Retry-After`,kind:`date`}];function be(e,t){let n=e;if(typeof n.get==`function`)return n.get(t)??void 0;let r=Object.entries(e).find(([e])=>e.toLowerCase()===t.toLowerCase())?.[1];return typeof r==`string`?r:void 0}function E(e,t){return e<0?void 0:Math.min(e,t)}function D(e,t=pe){if(!e||typeof e!=`object`)return;let n=e,r=n.headers??n.response?.headers;if(!(!r||typeof r!=`object`))for(let{name:e,kind:n}of ye){let i=be(r,e)?.trim();if(!i)continue;if(n===`ms`&&/^\d+$/.test(i))return E(Number(i),t);if(n===`seconds`&&/^\d+(\.\d+)?$/.test(i))return E(Number(i)*1e3,t);if(n===`date`){let e=Date.parse(i);if(!Number.isNaN(e))return E(e-Date.now(),t)}}}function xe(e,t,n=pe,r=!1,i=!1){let a=r?2:i?1.5:1,o=Math.min(e*a*2**t,n);return o/2+Math.random()*(o/2)}async function Se(e,t){if(t?.aborted)throw new p(`Operation aborted`,`aborted`);await new Promise((n,r)=>{let i=()=>{clearTimeout(a),r(new p(`Operation aborted`,`aborted`))},a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);t?.addEventListener(`abort`,i,{once:!0})})}function Ce(e,t,n,r){if(r?.aborted||e instanceof p&&!e.retryable)return!1;let i=n(e);return!(i!==void 0&&t.includes(i))}async function we(e){let{requestId:t,model:n,attempt:r,error:i,state:a,signal:o,providerName:s,maxRetries:c,baseDelayMs:l,middleware:u,middlewareTimeoutMs:d,logger:f,reportEvent:p,buildEventContext:m,extractStatus:h,normalizeError:g,emitEvent:_}=e,v=D(i),y=h(i),b=v??xe(l,r,void 0,y===429,y!==void 0&&y>=500&&y<=599),x=v!==void 0;f.warn(`[VernLLM:${t}] recovery attempt ${r}/${c}, waiting ${Math.ceil(b)}ms`+(x?` (honoring Retry-After)`:``)),_({kind:`retry`,requestId:t,provider:s,model:n,attempt:r,maxRetries:c,delayMs:b,retryAfterHonored:x,error:g(i,o)},m(t,n,r,o,a),p,u,d,f),await Se(b,o)}async function Te(e){let{fn:t,maxRetries:n,signal:r,onAttempt:i,attempts:a,shouldRetryAttempt:o,recoverDelayForAttempt:s,normalizeError:c}=e,l,u;for(let e=0;e<=n;e++){u=void 0;try{return e>0&&await s(e,l),i?.(),await t(e,e=>{u=e})}catch(t){l=t;let i=e<n&&o(t,r);if(!i)break;a?.push({index:e,error:c(t,r).toSnapshot(),request:u})}}throw l}function O(e){if(!e||typeof e!=`object`)return;let t=e;if(typeof t.status==`number`)return t.status;if(typeof t.statusCode==`number`)return t.statusCode;if(typeof t.$metadata?.httpStatusCode==`number`)return t.$metadata.httpStatusCode}const Ee=new Set([`ECONNREFUSED`,`ENOTFOUND`,`ECONNRESET`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`ECONNABORTED`,`EHOSTUNREACH`,`ENETUNREACH`]),De=new Set([`fetch failed`,`failed to fetch`,`load failed`,`networkerror when attempting to fetch resource.`]);function Oe(e){if(!e||typeof e!=`object`)return!1;let t=e;if(typeof t.code==`string`&&Ee.has(t.code)||typeof t.message==`string`&&De.has(t.message.toLowerCase()))return!0;if(t.cause&&typeof t.cause==`object`){let e=t.cause;if(typeof e.code==`string`&&Ee.has(e.code))return!0}return!1}function ke(e){try{return JSON.stringify(e,null,2)??String(e)}catch{try{return String(e)}catch{return`[unprintable error]`}}}function Ae(e){if(e&&typeof e==`object`)try{let t=e;if(t.error!==void 0)return ke(t.error);if(typeof t.message==`string`)return t.message}catch{}return ke(e)}function je(e){switch(e){case 429:return`provider_rate_limited`;case 401:return`authentication`;case 403:return`authorization`;case 404:return`not_found`;case 413:return`payload_too_large`;default:return e>=500?`server_error`:void 0}}const Me=/\(no body\)/i;function Ne(e){return Object.keys(e).length===0}function Pe(e){if(e&&typeof e==`object`){let{error:t,message:n}=e;if(t!=null){let e=typeof t==`string`&&t.trim().length===0,n=typeof t==`object`&&Ne(t);if(!e&&!n)return!1}if(typeof n==`string`){let e=n.trim();return e.length===0||Me.test(e)}return!0}return!0}function k(e,t,n){if(t?.aborted)return new p(`LLM request aborted`,`aborted`,{attempts:n});if(e instanceof p)return e.code===void 0&&e.status!==void 0&&(e.code=je(e.status)),e.attempts===void 0&&n!==void 0&&(e.attempts=n),e;let r=O(e),i=D(e);if(r!==void 0){let t=Ae(e),a=je(r),o=a===void 0,s=Pe(e)?o?`LLM request failed with status ${r} and no error detail from the provider. This usually means a field or value in the request isn't supported by the specific model (for example, a reasoning/thinking parameter the model doesn't accept), rather than a transport or auth problem.`:`LLM request failed with status ${r} and no error detail from the provider.`:`LLM request failed: ${t}`;return new p(s,`api`,{status:r,cause:e,retryAfterMs:i,code:a,attempts:n})}return Oe(e)?new p(`LLM request failed`,`network`,{cause:e,retryAfterMs:i,code:`connection_failed`,attempts:n}):new p(`LLM request failed`,`unknown`,{cause:e,retryAfterMs:i,attempts:n})}const Fe=5e3;function A(e,t){return e.name??`[${t}]`}function Ie(e,t,n){return t<=0?e():new Promise((r,i)=>{let a=setTimeout(()=>{i(new p(`middleware "${n}" timed out after ${t}ms`,`timeout`,{code:`middleware_timeout`}))},t);e().then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})})}async function j(e,t,n,r,i){let{enabled:a}=e;if(a===void 0)return!0;if(typeof a==`boolean`)return a;let o=e.timeoutMs??r;try{return await Ie(async()=>a(t),o,n)}catch(e){return i.error(`[VernLLM] middleware "${n}".enabled threw or timed out, treating as disabled`,{message:e instanceof Error?e.message:`unknown`}),!1}}const Le=[`temperature`,`max_tokens`,`reasoning_effort`,`budget_tokens`,`tool_choice`,`messages`,`addMessages`,`tools`,`addTools`];function Re(e,t){let n=t,r=Le.filter(e=>t[e]!==void 0);if(n.model!==void 0&&r.push(`model`),n.response_format!==void 0&&r.push(`response_format`),r.length===0)return{request:e,patchedFields:[]};let i={...e};return n.model!==void 0&&(i.model=n.model),n.response_format!==void 0&&(i.response_format=n.response_format),t.temperature!==void 0&&(i.temperature=t.temperature),t.max_tokens!==void 0&&(i.max_tokens=t.max_tokens),t.reasoning_effort!==void 0&&(i.reasoning_effort=t.reasoning_effort),t.budget_tokens!==void 0&&(i.budget_tokens=t.budget_tokens),t.tool_choice!==void 0&&(i.tool_choice=t.tool_choice),t.messages!==void 0&&(i.messages=t.messages),t.addMessages!==void 0&&t.addMessages.length>0&&(i.messages=[...i.messages,...t.addMessages]),t.tools!==void 0&&(i.tools=t.tools),t.addTools!==void 0&&t.addTools.length>0&&(i.tools=[...i.tools??[],...t.addTools]),{request:i,patchedFields:r}}function ze(e,t){if(!e.tools)return;let n=new Set,r=new Set;for(let t of e.tools)n.has(t.function.name)&&r.add(t.function.name),n.add(t.function.name);if(r.size>0)throw new p(`middleware "${t}" added tool(s) with duplicate name(s): [${[...r].join(`, `)}]. Tool names must be unique.`,`invalid_params`,{code:`duplicate_tool_names`,issues:{names:[...r]}})}function Be(e,t,n){if(t.model!==e.model)throw new p(`middleware "${n}" changed \`model\` via transform, which isn't supported. Configure the target's model instead.`,`invalid_params`);if(JSON.stringify(t.response_format)!==JSON.stringify(e.response_format))throw new p(`middleware "${n}" changed \`response_format\` via transform, which isn't supported.`,`invalid_params`)}async function Ve(e){let{request:t,requestId:n,attempt:r,signal:i,state:a,middleware:o,middlewareTimeoutMs:s,logger:c,reportEvent:l,buildContext:u}=e;if(o.length===0)return t;let d=t,f=t,p=o.map((e,t)=>({middlewareEntry:e,index:t})).sort((e,t)=>(e.middlewareEntry.priority??0)-(t.middlewareEntry.priority??0));for(let{middlewareEntry:e,index:t}of p){let d=A(e,t),p=u(r,i,a),m=await j(e,p,d,s,c);if(!m){e.enabled!==void 0&&M({kind:`middleware`,requestId:n,middleware:d,hook:`enabled_skip`},p,l,o,s,c);continue}if(!e.transform)continue;let h=await He(e,structuredClone(f),p,d,s),{request:g,patchedFields:_}=Re(f,h);_.length>0&&((h.tools!==void 0||h.addTools?.length)&&ze(g,d),M({kind:`middleware`,requestId:n,middleware:d,hook:`transform`,patchedFields:_},p,l,o,s,c)),f=g}return Be(d,f,`chain`),f}async function He(e,t,n,r,i){if(!e.transform)return{};let a=e.timeoutMs??i;try{return await Ie(async()=>e.transform(t,n),a,r)}catch(e){throw Ue(e,r,n.signal)}}function Ue(e,t,n){let r=k(e,n);return r.type===`unknown`?new p(`middleware "${t}" threw: ${r.message}`,`invalid_params`,{code:`middleware_threw`,cause:e}):r}function M(e,t,n,r,i,a){n(e),r.length!==0&&We(r,e,t,i,a)}async function We(e,t,n,r,i){for(let a=0;a<e.length;a++){let o=e[a];if(!o.onEvent)continue;let s=A(o,a),c=await j(o,n,s,r,i);if(c)try{Promise.resolve(o.onEvent(t,{...n,own:{}})).catch(e=>{i.error(`[VernLLM] middleware "${s}".onEvent failed`,{message:e instanceof Error?e.message:`unknown`})})}catch(e){i.error(`[VernLLM] middleware "${s}".onEvent failed`,{message:e instanceof Error?e.message:`unknown`})}}}async function N(e,t,n,r,i,a=!1){let o=[];for(let s=0;s<e.executors.length;s++){let c=e.executors[s],l=Date.now(),u=0;try{s===0&&a||c.assertBreakerClosed(t.model,{requestId:n,state:r,signal:t.signal});let e=await i(c,()=>{u+=1});return{result:e,executor:c,index:s,attemptCount:u}}catch(i){let a=k(i,t.signal);o.push({index:s-1,provider:c.providerName,model:t.model??c.model,error:a.toSnapshot()});let d=s===e.executors.length-1,f=e.fallbackOn(a,{isLastTarget:d}),p=d?`stop`:f;if(p===`stop`)throw o.length>1?new C(o):a;let m=e.executors[s+1],h=t.model??c.model,g={stage:`attempt`,requestId:n,requestedProvider:c.providerName,requestedModel:h,isFallbackAttempt:s>0,attempt:u||1,capabilities:{supportsJsonObjectMode:c.jsonObjectModeSupported},signal:t.signal,state:r,own:{}};M({kind:`fallback`,requestId:n,from:c.providerName,to:m.providerName,fromIndex:s-1,toIndex:s,error:a,elapsedMs:Date.now()-l},g,e.reportEvent,e.middleware,e.middlewareTimeoutMs,e.logger)}}throw new p(`No provider targets configured`,`invalid_params`)}function P(e,t){let n={provider:e.executor.providerName,model:t.model??e.executor.model,fallbackIndex:e.index-1,usedFallback:e.index>0,attempts:e.attemptCount};return t.meta&&(t.meta.current=n),{value:e.result,meta:n}}async function Ge(e,t,n,r,i){let a=await N(e,t,n,i,(e,r)=>e.run(t,n,r,i),r);return P(a,t)}async function Ke(e,t,n,r,i){let a=await N(e,t,n,i,(e,r)=>e.runStream(t,n,r,i),r);return P(a,t)}function qe(e){let t=!1,n,r;function i(){return r||(t=!0,r=e().then(e=>(n=e,e)),r.catch(()=>{}),r)}return{call:i,wasCalled:()=>t,resolvedValue:()=>n}}async function F(e,t,n,r,i,a=!1){if(e.middleware.length===0||a)return i();let o=e.primaryExecutor,{model:s,request:c}=o.previewRequest(t),l=i;for(let i=e.middleware.length-1;i>=0;i--){let a=e.middleware[i],u=A(a,i),d=l;l=async()=>{let i={stage:`pre-dispatch`,requestId:n,primaryProvider:o.providerName,primaryModel:s,capabilities:{supportsJsonObjectMode:o.jsonObjectModeSupported},signal:t.signal,state:r,own:{}},l=await j(a,i,u,e.middlewareTimeoutMs,e.logger);if(!l)return a.enabled!==void 0&&M({kind:`middleware`,requestId:n,middleware:u,hook:`enabled_skip`},i,e.reportEvent,e.middleware,e.middlewareTimeoutMs,e.logger),d();if(!a.wrap)return d();let f=qe(d);try{let t=await a.wrap(c,f.call,i);return f.wasCalled()||M({kind:`middleware`,requestId:n,middleware:u,hook:`wrap_short_circuit`},i,e.reportEvent,e.middleware,e.middlewareTimeoutMs,e.logger),t}catch(t){let n=f.resolvedValue();if(n!==void 0)return e.logger.error(`[VernLLM] middleware "${u}".wrap threw after next() resolved; keeping the original result`,{message:t instanceof Error?t.message:`unknown`}),n;throw Ue(t,u,i.signal)}}}return l()}const I=Symbol(`deadlineExceeded`);function Je(e,t){if(e===void 0)return{signal:t,timer:void 0};let n=new AbortController;if(e<=0){n.abort(I);let e=t?AbortSignal.any([t,n.signal]):n.signal;return{signal:e,timer:void 0}}let r=setTimeout(()=>n.abort(I),e),i=t?AbortSignal.any([t,n.signal]):n.signal;return{signal:i,timer:r}}function Ye(e,t){return e instanceof p&&e.type===`aborted`&&e.code===void 0&&t?.reason===I&&(e.code=`deadline_exceeded`),e}var L=class{available;lastRefill=Date.now();constructor(e,t){this.capacity=e,this.refillPerMs=t,this.available=e}refill(){if(this.refillPerMs===0)return;let e=Date.now(),t=e-this.lastRefill;this.available=Math.min(this.capacity,this.available+Math.max(0,t)*this.refillPerMs),this.lastRefill=e}tryTake(e){return this.refill(),this.available<e?!1:(this.available-=e,!0)}msUntilAvailable(e){return this.refill(),this.available>=e?0:this.refillPerMs===0?1/0:(e-this.available)/this.refillPerMs}give(e){this.available=Math.min(this.capacity,this.available+e)}getCapacity(){return this.capacity}};function Xe(e){let t=e.messages.reduce((e,t)=>{let n=t.content;if(typeof n==`string`)return e+n.length;if(n==null)return e;try{return e+JSON.stringify(n).length}catch{return e}},0);return Math.ceil(t/4)+(e.max_tokens??0)}const Ze=2147483647;var Qe=class{requests;tokens;concurrency;maxQueueMs;maxQueueSize;estimateTokensFn;queue=[];wakeTimer;constructor(e){e.requestsPerMinute&&(this.requests=new L(e.requestsPerMinute,e.requestsPerMinute/6e4)),e.tokensPerMinute&&(this.tokens=new L(e.tokensPerMinute,e.tokensPerMinute/6e4)),e.maxConcurrent&&(this.concurrency=new L(e.maxConcurrent,0)),this.maxQueueMs=e.maxQueueMs??3e4,this.maxQueueSize=e.maxQueueSize??0,this.estimateTokensFn=e.estimateTokens??Xe}estimate(e){return this.estimateTokensFn(e)}async acquire(e,t){if(t?.aborted)throw new p(`LLM request aborted`,`aborted`);if(!Number.isFinite(e)||e<0)throw new p(`estimatedTokens must be a finite, non-negative number, got ${String(e)}`,`invalid_params`);if(this.tokens&&e>this.tokens.getCapacity())throw new p(`estimatedTokens (${e}) exceeds the configured tokensPerMinute capacity (${this.tokens.getCapacity()}); this call could never acquire capacity.`,`rate_limited`,{code:`rate_limit_capacity_exceeded`});if(this.queue.length===0){let n=this.tryAcquireBuckets(e);return n.ok?{release:this.makeRelease(e),waitedMs:0}:this.enqueue(e,n.reason,t)}if(this.maxQueueSize>0&&this.queue.length>=this.maxQueueSize)throw this.queueFullError();return this.enqueue(e,void 0,t)}queueFullError(){return new p(`Rate limit queue is full`,`rate_limited`,{code:`rate_limit_queue_full`})}enqueue(e,t,n){return new Promise((r,i)=>{let a={estimatedTokens:e,enqueuedAt:Date.now(),lastReason:t,resolve:e=>{c(),r(e)},reject:e=>{c(),this.wakeTimer&&(clearTimeout(this.wakeTimer),this.wakeTimer=void 0),this.drain(),i(e)}},o,s=()=>{a.reject(new p(`LLM request aborted`,`aborted`))},c=()=>{o&&clearTimeout(o),n?.removeEventListener(`abort`,s);let e=this.queue.indexOf(a);e!==-1&&this.queue.splice(e,1)};this.maxQueueMs>0&&(o=setTimeout(()=>{a.reject(new p(`Rate limit queue timed out before capacity was available`,`rate_limited`,{code:`rate_limit_queue_timeout`}))},this.maxQueueMs)),n?.addEventListener(`abort`,s,{once:!0}),this.queue.push(a),this.drain()})}tryAcquireBuckets(e){let t=[],n=(e,n)=>e?e.tryTake(n)?(t.push({bucket:e,amount:n}),!0):!1:!0;if(!n(this.concurrency,1))return{ok:!1,reason:`concurrency`};if(!n(this.requests,1)){for(let e of t)e.bucket.give(e.amount);return{ok:!1,reason:`rpm`}}if(!n(this.tokens,e)){for(let e of t)e.bucket.give(e.amount);return{ok:!1,reason:`tpm`}}return{ok:!0}}drain(){for(;this.queue.length>0;){let e=this.queue[0],t=this.tryAcquireBuckets(e.estimatedTokens);if(!t.ok){e.lastReason=t.reason,this.scheduleWake(t.reason,e.estimatedTokens);return}let n=Date.now()-e.enqueuedAt;e.resolve({release:this.makeRelease(e.estimatedTokens),waitedMs:n,reason:e.lastReason})}}scheduleWake(e,t){if(this.wakeTimer)return;let n=e===`rpm`?this.requests?.msUntilAvailable(1):e===`tpm`?this.tokens?.msUntilAvailable(t):void 0;if(n===void 0||!Number.isFinite(n))return;let r=Math.min(Math.max(1,Math.ceil(n)),Ze);this.wakeTimer=setTimeout(()=>{this.wakeTimer=void 0,this.drain()},r)}makeRelease(e){let t=!1;return n=>{t||(t=!0,this.concurrency?.give(1),this.tokens&&n!==void 0&&Number.isFinite(n)&&this.tokens.give(e-n),this.drain())}}};function $e(){return{state:`closed`,consecutiveFailures:0,openedAt:0,trialInFlight:!1}}const R=``;var et=class{threshold;cooldownMs;onStateChange;isolateByModel;sharedBucket=$e();bucketsByModel=new Map;constructor(e={}){this.threshold=e.threshold??5,this.cooldownMs=e.cooldownMs??3e4,this.onStateChange=e.onStateChange,this.isolateByModel=e.isolateByModel??!1}lookupBucket(e){if(!this.isolateByModel)return this.sharedBucket;let t=e??R;return this.bucketsByModel.get(t)}ensureBucketFor(e){if(!this.isolateByModel)return this.sharedBucket;let t=e??R,n=this.bucketsByModel.get(t);return n||(n=$e(),this.bucketsByModel.set(t,n)),n}transition(e,t,n,r){if(t===e.state)return;let i=e.state;e.state=t,this.onStateChange?.(i,t,e.consecutiveFailures,n,r)}assertClosed(e,t){let n=this.ensureBucketFor(e);if(n.state!==`closed`){if(n.state===`open`){let r=Date.now()-n.openedAt;if(r<this.cooldownMs)throw new p(`Circuit open, provider has failed ${n.consecutiveFailures} times in a row. Retry in ${Math.ceil((this.cooldownMs-r)/1e3)}s.`,`circuit_open`,{code:`circuit_cooling_down`});n.trialInFlight=!0,this.transition(n,`half-open`,e,t);return}if(n.trialInFlight)throw new p(`Circuit half-open. A trial request is already in flight. Try again shortly.`,`circuit_open`,{code:`circuit_trial_in_flight`});n.trialInFlight=!0}}recordSuccess(e,t){let n=this.lookupBucket(e);n&&(n.consecutiveFailures=0,n.trialInFlight=!1,this.transition(n,`closed`,e,t),this.isolateByModel&&n.state===`closed`&&n.consecutiveFailures===0&&this.bucketsByModel.delete(e??R))}recordFailure(e,t){let n=this.ensureBucketFor(e);if(n.consecutiveFailures+=1,n.trialInFlight=!1,n.state===`half-open`){n.openedAt=Date.now(),this.transition(n,`open`,e,t);return}n.consecutiveFailures>=this.threshold&&(n.openedAt=Date.now(),this.transition(n,`open`,e,t))}getState(e){return this.lookupBucket(e)?.state??`closed`}open(e,t){let n=this.ensureBucketFor(e);n.openedAt=Date.now(),n.trialInFlight=!1,this.transition(n,`open`,e,t)}close(e,t){let n=this.ensureBucketFor(e);n.consecutiveFailures=0,n.trialInFlight=!1,this.transition(n,`closed`,e,t),this.isolateByModel&&n.state===`closed`&&n.consecutiveFailures===0&&this.bucketsByModel.delete(e??R)}};function z(e,t){return n=>{if(e)try{e(n)}catch(e){t.error(`[VernLLM] onEvent failed`,{message:e instanceof Error?e.message:`unknown`})}}}function B(e,t,n){let r=e[t];if(!r)throw RangeError(`${n}: no target at index ${t} (chain has ${e.length} target${e.length===1?``:`s`})`);return r}function V(e,t,n,r){t!==void 0&&!e&&r.warn(`[VernLLM] ${n}: \`model: '${t}'\` has no effect here. This target's circuitBreaker doesn't have isolateByModel on, so it only tracks one shared circuit regardless of \`model\`. Omit \`model\`, or set \`circuitBreaker.isolateByModel: true\` on this target if per-model tracking is what you want.`)}function tt(e,t,n,r,i,a,o,s,c){if(!e)return;let l=typeof e==`object`?e:void 0,u=l?.onStateChange,d=z(r,i);return new et({...l,onStateChange:(e,r,l,f,p)=>{let m={kind:`circuit_state`,provider:t,model:f??n,from:e,to:r,consecutiveFailures:l};if(p){let e={stage:`attempt`,requestId:p.requestId,requestedProvider:t,requestedModel:f??n,isFallbackAttempt:s,attempt:p.attempt??1,capabilities:{supportsJsonObjectMode:c},signal:p.signal,state:p.state,own:{}};M(m,e,d,a,o,i)}else d(m);if(u)try{u(e,r,l,f,p)}catch(e){i.error(`[VernLLM] circuitBreaker.onStateChange failed`,{message:e instanceof Error?e.message:`unknown`})}}})}function nt(e){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}function rt(e){return e.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments??{})}}))}function it(e){return e.map(e=>{let t;try{t=e.function.arguments.trim()?JSON.parse(e.function.arguments):{}}catch{throw new p(`Invalid JSON arguments for tool call "${e.function.name}"`,`parse`,{code:`tool_arguments_parse_failed`})}return{id:e.id,name:e.function.name,arguments:t}})}function at(e){return typeof e==`string`?e:JSON.stringify(e)}function ot(e,t){if(e&&e.length===0)throw new p("`tools` was an empty array. This is almost always a bug (e.g. a filtered tool list that ended up empty). An empty `tools` array still switches on tool-call mode (response shape, jsonMode default, wire format) with nothing for the model to call. Omit `tools` entirely for a normal call, or make sure the array is non-empty.",`invalid_params`);if(e){let t=new Set,n=new Set;for(let r of e)t.has(r.name)&&n.add(r.name),t.add(r.name);if(n.size)throw new p(`\`tools\` has duplicate name(s): [${[...n].join(`, `)}]. Tool names must be unique.`,`invalid_params`,{code:`duplicate_tool_names`,issues:{names:[...n]}})}if(t&&!e)throw new p("`toolChoice` was set without `tools`. There is nothing for it to choose between. Set `tools`, or remove `toolChoice`.",`invalid_params`);if(e&&typeof t==`object`&&!e.some(e=>e.name===t.name))throw new p(`toolChoice names "${t.name}", which is not in \`tools\` ([${e.map(e=>e.name).join(`, `)}]).`,`invalid_params`,{code:`unknown_tool_choice`,issues:{requested:t.name,available:e.map(e=>e.name)}})}function st(e){let{jsonModeExplicit:t,hasTools:n,jsonSchema:r,hasSchema:i,supportsJsonObjectMode:a}=e,o=t??!n;if(!a&&!r&&t===!0)throw new p('jsonMode: true was set explicitly, but this client does not support `response_format: "json_object"` (see LLMClient.supportsJsonObjectMode). Neither Anthropic nor Bedrock has a field that mechanically guarantees JSON output for this mode. Use `jsonSchema` instead, which maps to a real constraint on both.',`invalid_params`);if(!a&&!r&&t===void 0&&i)throw new p('`schema` was provided, which requires JSON output to validate against, but this client does not support `response_format: "json_object"` (see LLMClient.supportsJsonObjectMode) and no `jsonSchema` was set. Neither Anthropic nor Bedrock has a field that mechanically guarantees JSON output without one. Use `jsonSchema` instead, which maps to a real constraint on both and still runs `schema` against its parsed result.',`invalid_params`);let s=!a&&!r&&t===void 0?!1:o,c=s||!!r;if(i&&!c)throw new p(`schema was provided but jsonMode: false disables JSON parsing, so nothing would validate it. Remove jsonMode: false, set jsonSchema, or remove schema.`,`invalid_params`);return c}function ct(e,t){return e?{type:`json_schema`,json_schema:{name:e.name,schema:e.schema,strict:e.strict??!0,description:e.description}}:t?{type:`json_object`}:void 0}function lt(e){return!e||e===`auto`?`auto`:e===`none`||e===`required`?e:{type:`function`,function:{name:e.name}}}function ut(e){return e.role===`tool`?(e.toolResults??[]).map(e=>({role:`tool`,tool_call_id:e.toolCallId,content:typeof e.content==`string`?e.content:JSON.stringify(e.content??null),...e.isError?{is_error:!0}:{}})):e.role===`assistant`&&e.toolCalls?.length?[{role:`assistant`,...e.content===void 0?{}:{content:at(e.content)},tool_calls:rt(e.toolCalls)}]:e.role===`assistant`?[{role:`assistant`,content:at(e.content===void 0?``:e.content)}]:[{role:e.role,content:e.content??``}]}function dt(e){let t;for(let[n,r]of e.entries()){if(r.role===`tool`){if(t?.role!==`assistant`||!t.toolCalls?.length)throw new p(`history[${n}] is a "tool" turn, but must immediately follow an "assistant" turn that requested tools`,`invalid_params`);if(!r.toolResults?.length)throw new p(`history[${n}] is a "tool" turn but has no toolResults`,`invalid_params`);let e=new Set(t.toolCalls.map(e=>e.id)),i=r.toolResults.map(e=>e.toolCallId),a=i.filter(t=>!e.has(t));if(a.length)throw new p(`history[${n}].toolResults references unknown toolCallId(s) [${a.join(`, `)}]`,`invalid_params`,{code:`unknown_tool_result_ids`,issues:{historyIndex:n,ids:a}});let o=new Set,s=new Set;for(let e of i)o.has(e)&&s.add(e),o.add(e);if(s.size)throw new p(`history[${n}].toolResults has duplicate toolCallId(s) [${[...s].join(`, `)}]`,`invalid_params`,{code:`duplicate_tool_result_ids`,issues:{historyIndex:n,ids:[...s]}});let c=[...e].filter(e=>!i.includes(e));if(c.length)throw new p(`history[${n}] is missing toolResults for toolCallId(s) [${c.join(`, `)}]`,`invalid_params`,{code:`missing_tool_results`,issues:{historyIndex:n,ids:c}})}else{if(r.role===t?.role)throw new p(`history must alternate user/assistant turns: consecutive "${r.role}" turns at history[${n-1}] and history[${n}]`,`invalid_params`);if(t?.role===`assistant`&&t.toolCalls?.length)throw new p(`history[${n}] follows an assistant tool request without tool results`,`invalid_params`)}t=r}if(t?.role===`assistant`&&t.toolCalls?.length)throw new p(`The last entry in history is an assistant tool request without tool results`,`invalid_params`);if(t?.role===`user`)throw new p(`The last entry in history is a "user" turn, which would collide with the current userContent turn.`,`invalid_params`)}var ft=class{model;defaultMaxTokens;defaultTemperature;defaultReasoningEffort;defaultBudgetTokens;supportsJsonObjectMode;constructor(e){this.model=e.model,this.defaultMaxTokens=e.defaultMaxTokens,this.defaultTemperature=e.defaultTemperature,this.defaultReasoningEffort=e.defaultReasoningEffort,this.defaultBudgetTokens=e.defaultBudgetTokens,this.supportsJsonObjectMode=e.supportsJsonObjectMode}build(e){let{systemPrompt:t,userContent:n,history:r=[],maxTokens:i=this.defaultMaxTokens,model:a=this.model,jsonSchema:o,tools:s,toolChoice:c}=e,l=e.temperature===void 0?this.defaultTemperature:e.temperature,u=e.reasoningEffort===void 0?this.defaultReasoningEffort:e.reasoningEffort,d=e.budgetTokens===void 0?this.defaultBudgetTokens:e.budgetTokens;ot(s,c);let f=st({jsonModeExplicit:e.jsonMode,hasTools:!!s,jsonSchema:o,hasSchema:!!e.schema,supportsJsonObjectMode:this.supportsJsonObjectMode}),p=ct(o,f);dt(r);let m={model:a,...l===null?{}:{temperature:l},max_tokens:i,...p?{response_format:p}:{},...u?{reasoning_effort:u}:{},...d==null?{}:{budget_tokens:d},...s?{tools:nt(s)}:{},...s?{tool_choice:lt(c)}:{},messages:[...t?[{role:`system`,content:t}]:[],...r.flatMap(e=>ut(e)),{role:`user`,content:n}]};return{useJson:f,model:a,request:m}}};function pt(e,t,n){let r;try{r=n(e)}catch{throw new p(`Invalid JSON response`,`parse`)}if(r==null)throw new p(`Invalid JSON response`,`parse`);if(!t)return r;let i=t.safeParse(r);if(!i.success)throw new p(`Schema validation failed`,`validation`,{issues:i.error});return i.data}function mt(e,t){let n=new Map(t.map(e=>[e.name,e])),r=new Set,i=[];for(let t of e)r.has(t.id)&&i.push({name:t.name,toolCallId:t.id,code:`duplicate_tool_call_id`}),r.add(t.id),n.has(t.name)||i.push({name:t.name,toolCallId:t.id,code:`unknown_tool`});if(i.length>0){let e=i.find(e=>e.code===`unknown_tool`),t=e?`Model requested tool "${e.name}", which was not in the tools offered ([${[...n.keys()].join(`, `)}]).`:`Duplicate tool call id "${i[0].toolCallId}" in the model's response.`,r=i.length>1?`${t} (${i.length} tool call issues total, see error.issues.)`:t;throw new p(r,`validation`,{code:e?`unknown_tool`:`duplicate_tool_call_id`,issues:i})}for(let t of e){let e=n.get(t.name);if(!e?.argumentsSchema)continue;let r=e.argumentsSchema.safeParse(t.arguments);if(!r.success)throw new p(`Arguments for tool call "${t.name}" failed validation`,`validation`,{issues:r.error})}}function ht(e){let{rawContent:t,wireToolCalls:n,params:r,useJson:i,parseJson:a,requestId:o,logger:s,redactText:c}=e,l=t?.trim();if(!l&&!n?.length)throw new p(`Empty LLM response`,`api`,{code:`empty_response`});if(s.debug(`[VernLLM:${o}] output:\n`+c(l??`[${n?.length??0} tool call(s)]`).slice(0,800)),n?.length){if(!r.tools)throw new p("Provider returned tool_calls but no `tools` were sent with this call.",`validation`,{code:`unexpected_tool_calls`});if(r.toolChoice===`none`)throw new p(`Provider returned tool_calls despite toolChoice: 'none'.`,`validation`,{code:`tool_choice_none_violated`});let e=it(n);return mt(e,r.tools),{type:`tool_calls`,toolCalls:e,...l?{content:l}:{}}}let u=l??``;if(!i)return r.tools?{type:`content`,content:u}:u;let d=pt(u,r.schema,a);return r.tools?{type:`content`,content:d}:d}function gt(e,t,n,r,i,a,o,s,c){let{gateway:l,usageReporter:u,logger:d,redactText:f,parseJson:p}=c;try{let c=ht({rawContent:e,wireToolCalls:t,params:n,useJson:r,parseJson:p,requestId:a,logger:d,redactText:f});return l.recordSuccess(o,n.signal,s),u.reportSuccess(i),c}catch(e){let t=k(e,n.signal);throw i&&t.type!==`aborted`&&u.reportFailure(i,t,o),t}}function _t(e){let{capacity:t,logger:n,label:r}=e,i=[],a=[],o=!1,s=!1,c,l=!1;function u(e){let o=a.shift();if(o){o.resolve({done:!1,value:e});return}i.push(e),i.length>t*2&&(l||(l=!0,n.warn(`[VernLLM] ${r} buffer exceeded cap (${t}), evicting ${i.length-t} oldest item(s); buffered=${i.length}. The iterable was never read (or fell far behind) for this channel.`)),i.splice(0,i.length-t))}function d(){o=!0;for(let e of a.splice(0))e.resolve({done:!0,value:void 0})}function f(e){o=!0,s=!0,c=e;for(let t of a.splice(0))t.reject(e)}let p={[Symbol.asyncIterator](){return{next(){return i.length?Promise.resolve({done:!1,value:i.shift()}):o?s?Promise.reject(c):Promise.resolve({done:!0,value:void 0}):new Promise((e,t)=>{a.push({resolve:e,reject:t})})}}}};return{push:u,finish:d,fail:f,iterable:p}}const vt=1e4,yt=1e6;function bt(){let e=new Map;function t(t){let n=e.get(t.index);if(!n){if(e.size>=vt)throw new p(`Stream contained more than ${vt} distinct tool calls`,`validation`);n={args:``}}let r=t.argumentsDelta??``;if(n.args.length+r.length>yt)throw new p(`Tool call arguments exceeded the ${yt}-character stream limit`,`validation`);return n.id??=t.id,n.name??=t.name,n.args+=r,e.set(t.index,n),{type:`tool_call_delta`,index:t.index,id:t.id,name:t.name,argsDelta:t.argumentsDelta,complete:t.complete}}function n(){if(e.size)return[...e.entries()].sort(([e],[t])=>e-t).map(([,e])=>({id:e.id??``,type:`function`,function:{name:e.name??``,arguments:e.args}}))}return{apply:t,toWireToolCalls:n}}async function xt(e,t){try{await e.return?.()}catch{}t.abort()}function St(e,t,n){let{requestId:r,model:i,providerName:a,isFallback:o,chunkIdleTimeoutMs:s,streamController:c,logger:l,signal:u}=n,d,f,p=new Promise((e,t)=>{d=e,f=t});p.catch(()=>{});let m=1e4,h=_t({capacity:m,logger:l,label:`stream chunk`}),{push:g,finish:_,fail:v}=h,y=h.iterable,b=bt(),x=``,S;return(async()=>{try{let n=t;for(;!n.done;){let t=n.value;t.type===`ping`||(t.type===`text-delta`?(x+=t.delta,g({type:`text-delta`,delta:t.delta})):t.type===`tool_call_delta`?g(b.apply(t)):t.type===`usage`&&(S=ie(t.usage,{requestId:r,model:i,providerName:a,isFallback:o}),g({type:`usage`,usage:S}))),n=await ve(()=>e.next(),s,()=>c.abort(),l)}}catch(t){await xt(e,c);let r=k(t,u);try{n.onStreamFailure(r,S)}catch{}v(r),f(r);return}_();try{n.onStreamSuccess(S)}catch{}try{let e=b.toWireToolCalls(),t=n.finalize(x,e,S);d(t)}catch(e){f(e)}})(),{chunks:y,finalResult:p}}function Ct(e){let{providerName:t,isFallback:n,maxRetries:r,onUsage:i,onUsageFailure:a,logger:o}=e;function s(e,r,i){if(e.usage)return ie(e.usage,{requestId:r,model:i,providerName:t,isFallback:n})}function c(e){if(e)return e.totalTokens||e.promptTokens+e.completionTokens}function l(e){if(!(!e||!i))try{i(e)}catch(e){o.error(`[VernLLM] onUsage failed`,{message:e instanceof Error?e.message:`unknown`})}}function u(e,t,n,i=!1){let s=e.totalTokens||e.promptTokens+e.completionTokens,c=i?`mid-stream failure (terminal, no further attempts)`:`attempt ${n+1}/${r+1}`;if(o.warn(`[VernLLM:${e.requestId}] usage failure, ${c}: type=${t.type} tokens=${s}`),a)try{a(e,t)}catch(e){o.error(`[VernLLM] onUsageFailure failed`,{message:e instanceof Error?e.message:`unknown`})}}return{extract:s,actualTokensFor:c,reportSuccess:l,reportFailure:u}}async function wt(e,t,n,r){if(!e)return{};let i=await e.acquire(e.estimate(t),n);return i.waitedMs>0&&r(i.waitedMs,i.reason??`rpm`),{release:i.release}}async function Tt(e){let{params:t,requestId:n,attempt:r,onRequest:i,middlewareState:a,gateway:o,requestBuilder:s,providerName:c,limiter:l,middleware:u,middlewareTimeoutMs:d,logger:p,reportEvent:m}=e,h=a??w(),g=s.build(t),{useJson:_,model:v}=g,y=await Ve({request:g.request,requestId:n,attempt:r,signal:t.signal,state:h,middleware:u,middlewareTimeoutMs:d,logger:p,reportEvent:m,buildContext:(e,t,n)=>o.buildAttemptContext(e,t,n)});i?.(f(c,v,y,void 0,Date.now()));let{release:b}=await wt(l,y,t.signal,(e,i)=>{M({kind:`rate_limited`,requestId:n,provider:c,model:v,waitedMs:e,reason:i},o.buildAttemptContext(r,t.signal,h),m,u,d,p)});return{request:y,model:v,useJson:_,state:h,release:b}}function Et(e){let{breaker:t,requestId:n,model:r,providerName:i,isFallback:a,supportsJsonObjectMode:o}=e;function s(e,t,s){return{stage:`attempt`,requestId:n,requestedProvider:i,requestedModel:r,isFallbackAttempt:a,attempt:e+1,capabilities:{supportsJsonObjectMode:o},signal:t,state:s,own:{}}}function c(e,t,r){return{requestId:n,state:r,signal:t,attempt:e+1}}return{buildAttemptContext:s,buildCallContext:c,recordSuccess(e,n,i){t?.recordSuccess(r,c(e,n,i))},recordFailure(e,n,i){t?.recordFailure(r,c(e,n,i))}}}async function Dt(e){let{fn:t,requestId:n,model:r,providerName:i,isFallback:a,supportsJsonObjectMode:o,breaker:s,maxRetries:c,baseDelayMs:l,nonRetryableStatus:u,signal:d,onAttempt:f,middleware:p,middlewareTimeoutMs:m,logger:h,reportEvent:g,logLabel:_,redactText:v,countsTowardBreaker:y}=e,b=e.state??w(),x=[],S=Et({breaker:s,requestId:n,model:r,providerName:i,isFallback:a,supportsJsonObjectMode:o});try{return await Te({fn:(e,n)=>t(e,n,b,S),maxRetries:c,signal:d,onAttempt:f,attempts:x,shouldRetryAttempt:(e,t)=>Ce(e,u,O,t),recoverDelayForAttempt:(e,t)=>we({requestId:n,model:r,attempt:e,error:t,state:b,signal:d,providerName:i,maxRetries:c,baseDelayMs:l,middleware:p,middlewareTimeoutMs:m,logger:h,reportEvent:g,buildEventContext:(e,t,n,r,i)=>S.buildAttemptContext(n,r,i),extractStatus:O,normalizeError:k,emitEvent:M}),normalizeError:k})}catch(e){let t=k(e,d,x.length>0?x:void 0);throw y(t)&&S.recordFailure(x.length,d,b),h.debug(`[VernLLM:${n}] ${_}:\n${v(Ae(e))}`),t}}function Ot(e){try{return JSON.parse(e)}catch{return}}var kt=class{maxRetries;timeoutMs;chunkIdleTimeoutMs;baseDelayMs;nonRetryableStatus;parseJson;logger;redact;usageReporter;reportEvent;breaker;limiter;isFallback;requestBuilder;middleware;middlewareTimeoutMs;supportsJsonObjectMode;constructor(e,t,n,r){this.providerName=e,this.client=t,this.model=n,this.maxRetries=r.maxRetries,this.timeoutMs=r.timeoutMs,this.chunkIdleTimeoutMs=r.chunkIdleTimeoutMs,this.baseDelayMs=r.baseDelayMs,this.nonRetryableStatus=r.nonRetryableStatus,this.parseJson=r.parseJson??Ot,this.logger=r.logger,this.redact=r.redact,this.reportEvent=z(r.onEvent,this.logger),this.breaker=r.breaker,this.limiter=r.limiter,this.isFallback=r.isFallback??!1,this.middleware=r.middleware??[],this.middlewareTimeoutMs=r.middlewareTimeoutMs??Fe,this.supportsJsonObjectMode=t.supportsJsonObjectMode??!0,this.usageReporter=Ct({providerName:this.providerName,isFallback:this.isFallback,maxRetries:this.maxRetries,onUsage:r.onUsage,onUsageFailure:r.onUsageFailure,logger:this.logger}),this.requestBuilder=new ft({model:n,defaultMaxTokens:r.defaultMaxTokens,defaultTemperature:r.defaultTemperature,defaultReasoningEffort:r.defaultReasoningEffort,defaultBudgetTokens:r.defaultBudgetTokens,supportsJsonObjectMode:this.supportsJsonObjectMode})}previewRequest(e){let{model:t,request:n}=this.requestBuilder.build(e);return{model:t,request:n}}get jsonObjectModeSupported(){return this.supportsJsonObjectMode}getCircuitState(e){return this.breaker?.getState(e)}get isolateByModel(){return this.breaker?.isolateByModel??!1}openCircuit(e,t){this.breaker?.open(e,t)}closeCircuit(e,t){this.breaker?.close(e,t)}assertBreakerClosed(e,t){this.breaker?.assertClosed(e??this.model,t)}async run(e,t,n,r){return Dt({fn:(n,r,i,a)=>this.executeCall(e,t,n,r,i,a),requestId:t,model:e.model??this.model,providerName:this.providerName,isFallback:this.isFallback,supportsJsonObjectMode:this.supportsJsonObjectMode,breaker:this.breaker,maxRetries:this.maxRetries,baseDelayMs:this.baseDelayMs,nonRetryableStatus:this.nonRetryableStatus,signal:e.signal,onAttempt:n,state:r,middleware:this.middleware,middlewareTimeoutMs:this.middlewareTimeoutMs,logger:this.logger,reportEvent:this.reportEvent,logLabel:`error`,redactText:e=>this.redactText(e),countsTowardBreaker:e=>this.countsTowardBreaker(e)})}async runStream(e,t,n,r){return Dt({fn:(n,r,i,a)=>this.executeStreamCall(e,t,n,r,i,a),requestId:t,model:e.model??this.model,providerName:this.providerName,isFallback:this.isFallback,supportsJsonObjectMode:this.supportsJsonObjectMode,breaker:this.breaker,maxRetries:this.maxRetries,baseDelayMs:this.baseDelayMs,nonRetryableStatus:this.nonRetryableStatus,signal:e.signal,onAttempt:n,state:r,middleware:this.middleware,middlewareTimeoutMs:this.middlewareTimeoutMs,logger:this.logger,reportEvent:this.reportEvent,logLabel:`stream-open error`,redactText:e=>this.redactText(e),countsTowardBreaker:e=>this.countsTowardBreaker(e)})}async executeCall(e,t,n,r,i,a){let{request:o,model:s,useJson:c,state:l,release:u}=await Tt({params:e,requestId:t,attempt:n,onRequest:r,middlewareState:i,gateway:a,requestBuilder:this.requestBuilder,providerName:this.providerName,limiter:this.limiter,middleware:this.middleware,middlewareTimeoutMs:this.middlewareTimeoutMs,logger:this.logger,reportEvent:this.reportEvent}),d=u;try{let r=await _e(e=>this.client.chat.completions.create(o,{signal:e}),this.timeoutMs,e.signal),i=this.usageReporter.extract(r,t,s);d?.(this.usageReporter.actualTokensFor(i)),d=void 0;let u=r.choices?.[0]?.message?.content,f=r.choices?.[0]?.message?.tool_calls;return gt(u,f,e,c,i,t,n,l,{gateway:a,usageReporter:this.usageReporter,logger:this.logger,redactText:e=>this.redactText(e),parseJson:this.parseJson})}finally{d?.()}}redactText(e){return this.redact?this.redact(e):e}async executeStreamCall(e,t,n,r,i,a){let o=this.client.chat.completions;if(!o.createStream)throw new p(`stream: true requires a client/adapter with createStream`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`createStream`}});let s=o.createStream.bind(o),{request:c,model:l,useJson:u,state:d,release:f}=await Tt({params:e,requestId:t,attempt:n,onRequest:r,middlewareState:i,gateway:a,requestBuilder:this.requestBuilder,providerName:this.providerName,limiter:this.limiter,middleware:this.middleware,middlewareTimeoutMs:this.middlewareTimeoutMs,logger:this.logger,reportEvent:this.reportEvent}),m=f,h=new AbortController,g=e.signal?AbortSignal.any([e.signal,h.signal]):h.signal;try{let{iterator:r,first:i}=await _e(async e=>{let t=s(c,{signal:e})[Symbol.asyncIterator](),n=await t.next();return{iterator:t,first:n}},this.timeoutMs,g);if(i.done)throw new p(`Empty LLM response`,`api`);let o=m,f=St(r,i,{requestId:t,model:l,providerName:this.providerName,isFallback:this.isFallback,chunkIdleTimeoutMs:e.chunkIdleTimeoutMs??this.chunkIdleTimeoutMs,streamController:h,logger:this.logger,signal:e.signal,onStreamSuccess:t=>{a.recordSuccess(n,e.signal,d),o?.(this.usageReporter.actualTokensFor(t))},onStreamFailure:(t,r)=>{t.type===`timeout`&&a.recordFailure(n,e.signal,d),r&&t.type!==`aborted`&&this.usageReporter.reportFailure(r,t,n,!0),o?.(this.usageReporter.actualTokensFor(r))},finalize:(r,i,o)=>gt(r,i,e,u,o,t,n,d,{gateway:a,usageReporter:this.usageReporter,logger:this.logger,redactText:e=>this.redactText(e),parseJson:this.parseJson})});return m=void 0,f}finally{m?.()}}countsTowardBreaker(e){return e.retryable}};function At(e,t,n){let r=[e,...t];return r.map((e,t)=>{let r=t>0,i=e.name??(r?`fallback[${t-1}]`:n.providerName),a=tt(e.circuitBreaker,i,e.model,n.onEvent,n.logger,n.middleware,n.middlewareTimeoutMs,r,e.client.supportsJsonObjectMode??!0);return new kt(i,e.client,e.model,{maxRetries:e.maxRetries??n.maxRetries??1,timeoutMs:e.timeoutMs??n.timeoutMs??25e3,chunkIdleTimeoutMs:e.chunkIdleTimeoutMs??n.chunkIdleTimeoutMs??3e4,baseDelayMs:e.baseDelayMs??n.baseDelayMs??500,defaultMaxTokens:e.defaultMaxTokens??n.defaultMaxTokens??1e3,defaultTemperature:e.defaultTemperature===void 0?n.primaryDefaultTemperature:e.defaultTemperature,defaultReasoningEffort:e.defaultReasoningEffort===void 0?n.primaryDefaultReasoningEffort:e.defaultReasoningEffort,defaultBudgetTokens:e.defaultBudgetTokens===void 0?n.primaryDefaultBudgetTokens:e.defaultBudgetTokens,nonRetryableStatus:e.nonRetryableStatus??n.nonRetryableStatus??[400,401,403,404,422],parseJson:n.parseJson,logger:n.logger,redact:n.redact,onUsage:n.onUsage,onUsageFailure:n.onUsageFailure,onEvent:n.onEvent,breaker:a,limiter:e.rateLimit?new Qe(e.rateLimit):void 0,isFallback:r,middleware:n.middleware,middlewareTimeoutMs:n.middlewareTimeoutMs})})}function jt(e){return{debug:H(e,`debug`),warn:H(e,`warn`),error:H(e,`error`)}}function H(e,t){let n=e[t].bind(e);return(...e)=>{try{Nt(n(...e))}catch{}}}function Mt(e){return typeof e?.then==`function`}function Nt(e){Mt(e)&&Promise.resolve(e).catch(()=>{})}var Pt=class{constructor(e){this.debugEnabled=e}debug(e){this.debugEnabled&&console.debug(e)}warn(e){console.warn(e)}error(e,t){console.error(e,t??``)}},Ft=class{logger;executors;fallbackOn;reportEvent;cacheOrchestrator;middleware;middlewareTimeoutMs;cachedCallInnerParams=new WeakMap;cachedCallMeta=new Map;constructor(e){this.logger=jt(e.logger??new Pt(e.debug??!1));let t=e.name??`primary`;this.cacheOrchestrator=new fe(e.cache??new g,this.logger),this.fallbackOn=e.fallbackOn??S,this.reportEvent=z(e.onEvent,this.logger),this.middleware=[...e.middleware??[]].sort((e,t)=>(e.priority??0)-(t.priority??0)),this.middlewareTimeoutMs=e.middlewareTimeoutMs??Fe;let n=e.defaultTemperature===void 0?.2:e.defaultTemperature,r=e.defaultReasoningEffort,i=e.defaultBudgetTokens,a={client:e.client,model:e.model,name:t,maxRetries:e.maxRetries,timeoutMs:e.timeoutMs,chunkIdleTimeoutMs:e.chunkIdleTimeoutMs,baseDelayMs:e.baseDelayMs,defaultMaxTokens:e.defaultMaxTokens,defaultTemperature:n,defaultReasoningEffort:r,defaultBudgetTokens:i,nonRetryableStatus:e.nonRetryableStatus,circuitBreaker:e.circuitBreaker,rateLimit:e.rateLimit},o=Array.isArray(e.fallback)?e.fallback:e.fallback?[e.fallback]:[];this.executors=At(a,o,{providerName:t,primaryDefaultTemperature:n,primaryDefaultReasoningEffort:r,primaryDefaultBudgetTokens:i,maxRetries:e.maxRetries,timeoutMs:e.timeoutMs,chunkIdleTimeoutMs:e.chunkIdleTimeoutMs,baseDelayMs:e.baseDelayMs,defaultMaxTokens:e.defaultMaxTokens,nonRetryableStatus:e.nonRetryableStatus,parseJson:e.parseJson,redact:e.redact,onUsage:e.onUsage,onUsageFailure:e.onUsageFailure,onEvent:e.onEvent,logger:this.logger,middleware:this.middleware,middlewareTimeoutMs:this.middlewareTimeoutMs})}logRefundError(e,t){this.logger.error(e,{message:t instanceof Error?t.message:`unknown`})}get logicalCallDependencies(){return{executors:this.executors,fallbackOn:this.fallbackOn,reportEvent:this.reportEvent,middleware:this.middleware,middlewareTimeoutMs:this.middlewareTimeoutMs,logger:this.logger}}get runOperationDependencies(){return{middleware:this.middleware,primaryExecutor:this.executors[0],middlewareTimeoutMs:this.middlewareTimeoutMs,logger:this.logger,reportEvent:this.reportEvent}}async call(t){if(t.signal?.aborted)throw new p(`LLM request aborted`,`aborted`);let n=t.requestId??e(),r=this.cachedCallInnerParams.get(t),i=r!==void 0,{signal:a,timer:o}=Je(t.deadlineMs,t.signal),s=a===t.signal?t:{...t,signal:a},c=r??w();try{let e=this.executors.length===1,t=await F(this.runOperationDependencies,s,n,c,async()=>{if(e){if(s.signal?.aborted)throw new p(`LLM request aborted`,`aborted`);this.executors[0].assertBreakerClosed(s.model,{requestId:n,state:c,signal:s.signal})}let t,r=async e=>{let n=await e;return t=n.meta,n.value};if(s.stream){let i=await se(s,()=>r(Ke(this.logicalCallDependencies,s,n,e,c)),s.signal,(e,t)=>this.logRefundError(e,t));return{value:i,meta:t}}let i=await T(s,!1,()=>r(Ge(this.logicalCallDependencies,s,n,e,c)),s.signal,(e,t)=>this.logRefundError(e,t));return{value:i,meta:t}},i);return s.stream,t.value}catch(e){throw Ye(e,a)}finally{clearTimeout(o)}}runCached(e){return this.cacheOrchestrator.runCached(e)}async deleteCache(e){await this.cacheOrchestrator.deleteCache(e)}async cachedCall(t){let{call:n,...r}=t,i=n;if(i.reserveUsage||i.refundUsage)throw new p("`reserveUsage`/`refundUsage` were set inside `call`, where cachedCall ignores them. Move them to the top level of the cachedCall() params, alongside cacheKey/ttl, instead.",`invalid_params`);let a=i.requestId??e(),o=w(),s=await this.cacheOrchestrator.resolveCacheKey(r.cacheKey),c=this.cachedCallMeta.get(s),l=!1;c||(c={},l=!0,this.cachedCallMeta.set(s,c));let u=()=>{l&&this.cachedCallMeta.delete(s)},d=i.meta,f=e=>{let t={...e,meta:c};return this.cachedCallInnerParams.set(t,o),this.call(t).finally(()=>{d&&(d.current=c.current),this.cachedCallInnerParams.delete(t)})};if(i.stream){let e={...i,requestId:a},t;try{t=await F(this.runOperationDependencies,e,a,o,async()=>{let t=await this.cacheOrchestrator.runCachedStream({...r,openStream:()=>f(e)},!!i.tools);return{value:t,meta:c.current}})}catch(e){throw u(),e}let n=t.value,s=()=>{d&&(d.current=c.current),u()};return n.finalResult.then(s,s),n}let m={...i,requestId:a};try{let e=await F(this.runOperationDependencies,m,a,o,async()=>{let e=await this.runCached({...r,fn:()=>f(m)});return{value:e,meta:c.current}});return d&&(d.current=c.current),e.value}finally{u()}}getCircuitState(e){let t=B(this.executors,e?.index??0,`getCircuitState`);return V(t.isolateByModel,e?.model,`getCircuitState`,this.logger),t.getCircuitState(e?.model??t.model)}getCircuitStates(e){return this.executors.map((t,n)=>({provider:t.providerName,index:n,isFallback:n>0,isolateByModel:t.isolateByModel,state:t.getCircuitState(e??t.model)}))}openCircuit(t){let n=B(this.executors,t?.index??0,`openCircuit`);V(n.isolateByModel,t?.model,`openCircuit`,this.logger),n.openCircuit(t?.model??n.model,{requestId:e(),state:w()})}closeCircuit(t){let n=B(this.executors,t?.index??0,`closeCircuit`);V(n.isolateByModel,t?.model,`closeCircuit`,this.logger),n.closeCircuit(t?.model??n.model,{requestId:e(),state:w()})}};function It(e){return e}function Lt(e){return e}async function*Rt(e){let t=new TextDecoder(`utf-8`,{fatal:!0}),n=``;for await(let r of e){let e;try{e=typeof r==`string`?r:t.decode(r,{stream:!0})}catch(e){throw new p(`Invalid UTF-8 in SSE stream`,`parse`,{cause:e})}n=(n+e).replace(/\r\n/g,`
|
|
2
2
|
`).replace(/\r(?!$)/g,`
|
|
3
3
|
`);let i=n.indexOf(`
|
|
4
4
|
|
|
5
5
|
`);for(;i!==-1;){let e=n.slice(0,i);n=n.slice(i+2);let t=K(e);if(t===U)return;t!==W&&(yield t),i=n.indexOf(`
|
|
6
6
|
|
|
7
|
-
`)}}try{n+=t.decode()}catch(e){throw new
|
|
7
|
+
`)}}try{n+=t.decode()}catch(e){throw new p(`Invalid UTF-8 in SSE stream`,`parse`,{cause:e})}n=n.replace(/\r$/,`
|
|
8
8
|
`);let r=n.indexOf(`
|
|
9
9
|
|
|
10
10
|
`);for(;r!==-1;){let e=n.slice(0,r);n=n.slice(r+2);let t=K(e);if(t===U)return;t!==W&&(yield t),r=n.indexOf(`
|
|
11
11
|
|
|
12
12
|
`)}let i=n.trim();if(i){let e=K(i);e!==U&&e!==W&&(yield e)}}const U=Symbol(`sse-stream-done`),W=Symbol(`sse-frame-no-data`),G=Symbol(`sse-frame-ping`);function K(e){let t=[],n=!1;for(let r of e.split(`
|
|
13
13
|
`)){if(r.startsWith(`:`)){n=!0;continue}if(!r.startsWith(`data:`))continue;t.push(r.startsWith(`data: `)?r.slice(6):r.slice(5))}if(!t.length)return n?G:W;let r=t.join(`
|
|
14
|
-
`);if(r===`[DONE]`)return U;try{return JSON.parse(r)}catch(e){throw new f(`Invalid JSON in SSE frame: ${r.slice(0,200)}`,`parse`,{cause:e,code:`stream_frame_invalid`})}}const Re=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];function q(e){if(Re.includes(e))return e;throw new f(`Unsupported image mimeType "${e}": expected one of ${Re.join(`, `)}`,`invalid_params`)}function ze(e,t){return t?Array.isArray(t)?t.includes(e):t(e):!1}const J={minimal:1024,low:4096,medium:16e3,high:32e3};function Y(e){if(!e)return J;let t={...J,...e};if(!(t.minimal<t.low&&t.low<t.medium&&t.medium<t.high))throw new f(`reasoningEffortTokens must keep tiers in strictly ascending order (minimal < low < medium < high), got ${JSON.stringify(t)}. An out-of-order override doesn't just misrank tiers, it can make some of them unreachable.`,`invalid_params`);return t}function X(e,t=J){return t[e]}function Z(e,t=J){return e<=t.minimal?`minimal`:e<=t.low?`low`:e<=t.medium?`medium`:`high`}function Be(e){let t=/opus-(\d+)(?:-(\d+))?/.exec(e);if(!t)return null;let n=t[2],r=n===void 0||n.length>=8?0:Number(n);return[Number(t[1]),r]}function Ve(e){let t=Be(e);if(t){let[e,n]=t;return e>4||e===4&&n>=7}return[`sonnet-5`,`fable-5`,`mythos`].some(t=>e.includes(t))}function He(e,t){return Ve(e)?!0:t?Array.isArray(t)?t.includes(e):t(e):!1}function Ue(e,t){return!He(e,t)}function We(e,t){if(e<1024)throw new f(`budgetTokens (${e}) is below Anthropic's minimum of 1024. Raise budgetTokens, or use a reasoningEffort tier of 'low' or above with the default conversion table.`,`invalid_params`);if(e>=t)throw new f(`budgetTokens (${e}) must be less than maxTokens (${t}); the thinking budget and the reply share the same max_tokens ceiling on Anthropic. Raise maxTokens, or lower budgetTokens/reasoningEffort.`,`invalid_params`)}function Ge(e){if(e)throw new f(`budgetTokens/reasoningEffort was set alongside ${e}. Anthropic rejects thinking combined with a tool_choice that forces tool use, the model has to be able to reply with plain text for thinking to run. Use toolChoice: 'auto' (or omit toolChoice) for this call, or drop budgetTokens/reasoningEffort for it.`,`invalid_params`)}function Ke(e){return e===`minimal`?`low`:e}function qe(e,t){return Ye(t,e.toUpperCase())}function Je(e){let t=/gemini-\d+\.(\d+)/.exec(e);return t?Number(t[1]):0}function Ye(e,t){if(!e.includes(`pro`))return t;let n=Xe(e);if(n===null||n<3)return t;let r=Je(e);return r===0?t===`HIGH`?`HIGH`:`LOW`:t===`MINIMAL`?`LOW`:t}function Xe(e){let t=/gemini-(\d+)/.exec(e);return t?Number(t[1]):null}function Ze(e){let t=Xe(e);return t!==null&&t>=3}function Qe(e,t){return Ze(e)?!0:t?Array.isArray(t)?t.includes(e):t(e):!1}function $e(e){return e.map(e=>e.type===`image`?{type:`image`,source:{type:`base64`,media_type:q(e.mimeType),data:e.data}}:{type:`text`,text:e.text})}function et(e,t){if(e.type!==`object`)throw new f(`Tool "${t}"'s schema must have "type": "object" (Anthropic requires object-shaped tool parameters).`,`validation`);return e}function tt(e){return!e||e===`auto`?{type:`auto`}:e===`none`?{type:`none`}:e===`required`?{type:`any`}:{type:`tool`,name:e.function.name}}function nt(e,t){return{tools:e.map(e=>({name:e.function.name,description:e.function.description,input_schema:et(e.function.parameters,e.function.name)})),toolChoice:tt(t)}}function rt(e,t,n,r){let i=e.messages.find(e=>e.role===`system`),a=e.messages.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`tool`),o=e.response_format?.type===`json_schema`?e.response_format.json_schema:void 0,s=o?.name.trim();if(o&&!s)throw new f(`json_schema.name must not be empty.`,`validation`);let c=!!o&&ze(e.model,t);if(o&&e.tools?.length&&!c)throw new f(`Anthropic model "${e.model}" is not covered by nativeStructuredOutputModels, so \`jsonSchema\` is emulated as a forced single tool call there, which collides with the \`tools\` you also provided. Either drop \`tools\` or \`jsonSchema\` for this call, or pass this model in fromAnthropic's \`nativeStructuredOutputModels\` option once you've confirmed it supports Anthropic's \`output_config.format\`.`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`tools_with_json_schema`}});if(e.response_format?.type===`json_object`)throw new f('response_format: "json_object" is not supported on Anthropic. Unlike OpenAI, Anthropic has no API-level field that mechanically guarantees valid JSON output for this mode, so it used to be emulated by injecting a "respond with JSON only" instruction into the system prompt, a guarantee this adapter can no longer make. Use `jsonSchema` instead, which maps to a real API-level constraint (Anthropic\'s native output_config.format on covered models, or a forced single tool call otherwise).',`validation`);let l,u,d,p;if(o&&c)u={type:`json_schema`,schema:o.schema},e.tools?.length&&({tools:d,toolChoice:p}=nt(e.tools,e.tool_choice));else if(o&&s){let{schema:e,description:t,strict:n}=o;l=s,d=[{name:l,description:t,input_schema:et(e,l),strict:n}],p={type:`tool`,name:l}}!o&&e.tools?.length&&({tools:d,toolChoice:p}=nt(e.tools,e.tool_choice));let m,h;if(e.budget_tokens!==void 0||e.reasoning_effort!==void 0)if(Ge(p?.type===`tool`?`toolChoice forcing the "${p.name}" tool`:p?.type===`any`?`toolChoice: 'required' (Anthropic's "any" tool_choice)`:void 0),Ue(e.model,r)){let t=e.budget_tokens??X(e.reasoning_effort,n);We(t,e.max_tokens),m={type:`enabled`,budget_tokens:t}}else{let t=e.reasoning_effort??Z(e.budget_tokens,n);m={type:`adaptive`},h=Ke(t)}let g=i?.content,_=m?void 0:e.temperature,v={model:e.model,max_tokens:e.max_tokens,..._===void 0?{}:{temperature:_},system:g||void 0,messages:at(a.map(e=>ot(e))),...d?{tools:d,tool_choice:p}:{},...u||h?{output_config:{...u?{format:u}:{},...h?{effort:h}:{}}}:{},...m?{thinking:m}:{}};return{body:v,toolName:l}}function it(e,t){let n=t?.nativeStructuredOutputModels,r=Y(t?.reasoningEffortTokens),i=t?.adaptiveOnlyModels,a=e.messages.create.bind(e.messages);return{supportsJsonObjectMode:!1,chat:{completions:{async create(t,a){let{body:o,toolName:s}=rt(t,n,r,i),c=await e.messages.create(o,a),l,u;if(s){let e=c.content.find(e=>e.type===`tool_use`&&e.name===s);if(!e)throw new f(`Anthropic did not return the required structured output tool "${s}".`,`validation`);if(!e.input||typeof e.input!=`object`||Array.isArray(e.input))throw new f(`Anthropic returned invalid structured output for tool "${s}". Expected an object.`,`validation`);l=JSON.stringify(e.input)}else{l=c.content.filter(e=>e.type===`text`).map(e=>e.text??``).join(``);let e=c.content.filter(e=>e.type===`tool_use`);e.length&&(u=e.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.input??{})}})))}return{choices:[{message:{content:l,...u?{tool_calls:u}:{}}}],usage:{prompt_tokens:c.usage?.input_tokens,completion_tokens:c.usage?.output_tokens,total_tokens:(c.usage?.input_tokens??0)+(c.usage?.output_tokens??0),...c.usage?.output_tokens_details?.thinking_tokens===void 0?{}:{completion_tokens_details:{reasoning_tokens:c.usage.output_tokens_details.thinking_tokens}}}}},async*createStream(e,t){let{body:o,toolName:s}=rt(e,n,r,i),c=await a({...o,stream:!0},t),l=new Map,u=0,d=!1;for await(let e of c)if(e.type===`message_start`)u=e.message.usage?.input_tokens??0;else if(e.type===`content_block_start`)if(e.content_block.type===`tool_use`){let t=e.content_block.name===s?`json-tool`:`tool_use`;l.set(e.index,t),t===`json-tool`?d=!0:s||(yield{type:`tool_call_delta`,index:e.index,id:e.content_block.id,name:e.content_block.name})}else l.set(e.index,`text`);else if(e.type===`content_block_delta`){if(e.delta.type===`text_delta`)s||(yield{type:`text-delta`,delta:e.delta.text});else if(e.delta.type===`input_json_delta`){let t=l.get(e.index);t===`json-tool`?yield{type:`text-delta`,delta:e.delta.partial_json}:s||(yield{type:`tool_call_delta`,index:e.index,argumentsDelta:e.delta.partial_json})}}else if(e.type===`message_delta`){let t=e.usage?.output_tokens??0,n=e.usage?.output_tokens_details?.thinking_tokens;yield{type:`usage`,usage:{prompt_tokens:u,completion_tokens:t,total_tokens:u+t,...n===void 0?{}:{completion_tokens_details:{reasoning_tokens:n}}}}}else e.type===`ping`&&(yield{type:`ping`});if(s&&!d)throw new f(`Anthropic did not return the required structured output tool "${s}".`,`validation`)}}}}}function at(e){let t=e=>e.role===`user`&&Array.isArray(e.content)&&e.content.length>0&&e.content.every(e=>e.type===`tool_result`),n=[];for(let r of e){let e=n.at(-1);t(r)&&e&&t(e)?e.content.push(...r.content):n.push(r)}return n}function ot(e){if(e.role===`tool`)return{role:`user`,content:[{type:`tool_result`,tool_use_id:e.tool_call_id,content:e.content,...e.is_error?{is_error:!0}:{}}]};if(e.role===`assistant`&&e.tool_calls?.length){let t=[];e.content&&t.push({type:`text`,text:e.content});for(let n of e.tool_calls){let e;try{e=n.function.arguments.trim()?JSON.parse(n.function.arguments):{}}catch(e){throw new f(`Assistant tool call "${n.function.name}" (${n.id}) has arguments that are not valid JSON.`,`validation`,{cause:e})}if(e===null||Array.isArray(e)||typeof e!=`object`)throw new f(`Assistant tool call "${n.function.name}" (${n.id}) arguments must be a JSON object.`,`validation`);t.push({type:`tool_use`,id:n.id,name:n.function.name,input:e})}return{role:`assistant`,content:t}}return{role:e.role,content:Array.isArray(e.content)?$e(e.content):e.content??``}}function st(e){return e.map(e=>e.type===`image`?{inlineData:{mimeType:q(e.mimeType),data:e.data}}:{text:e.text})}function ct(e,t){return`${e}#${t}`}function lt(e){return!e||e===`auto`?{functionCallingConfig:{mode:`AUTO`}}:e===`none`?{functionCallingConfig:{mode:`NONE`}}:e===`required`?{functionCallingConfig:{mode:`ANY`}}:{functionCallingConfig:{mode:`ANY`,allowedFunctionNames:[e.function.name]}}}function ut(e){let t=new Map;for(let n of e)if(n.role===`assistant`)for(let e of n.tool_calls??[])t.set(e.id,e.function.name);return t}function dt(e,t){if(e.role===`tool`)return{role:`user`,parts:[{functionResponse:{id:e.tool_call_id,name:t.get(e.tool_call_id)??e.tool_call_id,response:pt(e.content)}}]};if(e.role===`assistant`&&e.tool_calls?.length){let t=[];return typeof e.content==`string`&&e.content&&t.push({text:e.content}),t.push(...e.tool_calls.map(e=>({functionCall:{id:e.id,name:e.function.name,args:ft(e.function.arguments,e.function.name)}}))),{role:`model`,parts:t}}return{role:e.role===`assistant`?`model`:`user`,parts:Array.isArray(e.content)?st(e.content):[{text:e.content??``}]}}function ft(e,t){let n;try{n=e.trim()?JSON.parse(e):{}}catch(e){throw new f(`Tool call "${t}" arguments are not valid JSON.`,`parse`,{cause:e,code:`tool_arguments_parse_failed`})}if(!n||Array.isArray(n)||typeof n!=`object`)throw new f(`Tool call "${t}" arguments must be a JSON object.`,`validation`);return n}function pt(e){let t;try{t=e.trim()?JSON.parse(e):``}catch{t=e}return t&&!Array.isArray(t)&&typeof t==`object`?t:{output:t}}function mt(e){let t=e=>e.role===`user`&&e.parts.length>0&&e.parts.every(e=>`functionResponse`in e),n=[];for(let r of e){let e=n.at(-1);t(r)&&e&&t(e)?e.parts.push(...r.parts):n.push(r)}return n}function ht(e,t,n){let r=e.messages.find(e=>e.role===`system`),i=e.messages.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`tool`),a=!!e.response_format,o={...e.temperature===void 0?{}:{temperature:e.temperature},maxOutputTokens:e.max_tokens,...r?{systemInstruction:{parts:[{text:r.content}]}}:{}};if(a&&(o.responseMimeType=`application/json`),e.response_format?.type===`json_schema`){let{schema:t,description:n}=e.response_format.json_schema;o.responseSchema={...t,...n?{description:n}:{}}}if(e.tools?.length&&(o.tools=[{functionDeclarations:e.tools.map(e=>({name:e.function.name,description:e.function.description,parameters:e.function.parameters}))}],o.toolConfig=lt(e.tool_choice)),Qe(e.model,n)){let n=e.reasoning_effort??(e.budget_tokens===void 0?void 0:Z(e.budget_tokens,t));n!==void 0&&(o.thinkingConfig={thinkingLevel:qe(n,e.model)})}else{let n=e.budget_tokens??(e.reasoning_effort?X(e.reasoning_effort,t):void 0);n!==void 0&&(o.thinkingConfig={thinkingBudget:n})}let s=ut(i);return{model:e.model,contents:mt(i.map(e=>dt(e,s))),config:o}}function gt(e,t){let n=Y(t?.reasoningEffortTokens),r=t?.thinkingLevelModels,i=e.models??e;if(typeof i.generateContent!=`function`)throw new f(`fromGemini requires a client with generateContent: pass ai.models, or the whole ai client (fromGemini(ai)).`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`generateContent`}});let a=i.generateContent.bind(i),o=typeof i.generateContentStream==`function`?i.generateContentStream.bind(i):void 0;return{chat:{completions:{async create(e,t){let i=ht(e,n,r);i.config={...i.config,abortSignal:t.signal};let o=await a(i),s=o.candidates?.[0]?.content?.parts??[],c=s.map(e=>e.text??``).join(``),l=s.filter(e=>e.functionCall),u;if(l.length){let e=new Map;u=l.map(t=>{let n=t.functionCall.name,r=t.functionCall.id,i=e.get(n)??0;return e.set(n,i+1),{id:r??ct(n,i),type:`function`,function:{name:n,arguments:JSON.stringify(t.functionCall.args??{})}}})}return{choices:[{message:{content:c,...u?{tool_calls:u}:{}}}],usage:{prompt_tokens:o.usageMetadata?.promptTokenCount,completion_tokens:o.usageMetadata?.candidatesTokenCount,total_tokens:o.usageMetadata?.totalTokenCount,...o.usageMetadata?.thoughtsTokenCount===void 0?{}:{completion_tokens_details:{reasoning_tokens:o.usageMetadata.thoughtsTokenCount}}}}},async*createStream(e,t){if(!o)throw new f(`stream: true requires a Gemini client with generateContentStream`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`generateContentStream`}});let i=ht(e,n,r);i.config={...i.config,abortSignal:t.signal};let a=await o(i),s=0,c=new Map,l;for await(let e of a){let t=e.candidates?.[0]?.content?.parts??[];for(let e of t)if(e.text&&(yield{type:`text-delta`,delta:e.text}),e.functionCall){let t=e.functionCall.name,n=e.functionCall.id,r=t?c.get(t)??0:0;t&&c.set(t,r+1),yield{type:`tool_call_delta`,index:s,id:n??(t?ct(t,r):void 0),name:e.functionCall.name,argumentsDelta:JSON.stringify(e.functionCall.args??{}),complete:!0},s++}e.usageMetadata&&(l=e.usageMetadata)}l&&(yield{type:`usage`,usage:{prompt_tokens:l.promptTokenCount,completion_tokens:l.candidatesTokenCount,total_tokens:l.totalTokenCount,...l.thoughtsTokenCount===void 0?{}:{completion_tokens_details:{reasoning_tokens:l.thoughtsTokenCount}}}})}}}}}function _t(e){return e.includes(`claude`)}function vt(e){switch(q(e)){case`image/png`:return`png`;case`image/jpeg`:return`jpeg`;case`image/gif`:return`gif`;case`image/webp`:return`webp`}}function yt(e){return new Uint8Array(Buffer.from(e,`base64`))}function bt(e){return e.map(e=>e.type===`image`?{image:{format:vt(e.mimeType),source:{bytes:yt(e.data)}}}:{text:e.text})}function xt(e,t){return{tools:e.map(e=>({toolSpec:{name:e.function.name,description:e.function.description,inputSchema:{json:e.function.parameters}}})),toolChoice:Dt(t)}}function Q(e,t,n,r,i){let a=e.messages.find(e=>e.role===`system`),o=e.messages.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`tool`),s=e.response_format?.type===`json_schema`?e.response_format.json_schema:void 0,c=s?.name.trim();if(s&&!c)throw new f(`json_schema.name must not be empty.`,`validation`);let l=!!s&&ze(e.model,n);if(s&&e.tools?.length&&!l)throw new f(`Bedrock model "${e.model}" is not covered by nativeStructuredOutputModels, so \`jsonSchema\` is emulated as a forced single tool call there (via \`toolConfig\`), which collides with the \`tools\` you also provided. Either drop \`tools\` or \`jsonSchema\` for this call, or pass this model in fromBedrock's \`nativeStructuredOutputModels\` option once you've confirmed it supports Converse's \`outputConfig.textFormat\`.`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`tools_with_json_schema`}});if(e.response_format?.type===`json_object`)throw new f('response_format: "json_object" is not supported on Bedrock. Converse has no field that mechanically guarantees valid JSON output for this mode, so it used to be emulated by injecting a "respond with JSON only" instruction into the system prompt, a guarantee this adapter can no longer make. Use `jsonSchema` instead, which maps to a real constraint (Converse\'s native outputConfig.textFormat on covered models, or a forced tool call otherwise).',`validation`);let u,d,p;if(s&&l){let{schema:e,description:t}=s;p={textFormat:{type:`json_schema`,structure:{jsonSchema:{schema:JSON.stringify(e),name:c,description:t}}}}}else if(s&&c){let{schema:e,description:t,strict:n}=s;u=c,d={tools:[{toolSpec:{name:u,description:t,inputSchema:{json:e},strict:n}}],toolChoice:{tool:{name:u}}}}if(e.tools?.length&&!u&&(d=xt(e.tools,e.tool_choice)),s&&d&&t){let n=Array.isArray(t)?t.includes(e.model):t(e.model);if(!n)throw new f(`Bedrock model "${e.model}" is not listed in toolUseSupportedModels, but this call requires Converse tool use (either jsonSchema emulated as a forced tool call, or real \`tools\` sent alongside native structured output).`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`toolUseSupportedModels`}})}let m,h;if(_t(e.model)&&(e.budget_tokens!==void 0||e.reasoning_effort!==void 0)){let t=d?.toolChoice;if(Ge(t&&`tool`in t?`toolChoice forcing the "${t.tool?.name}" tool`:t&&`any`in t?`toolChoice: 'required' (Converse's "any" tool_choice)`:void 0),Ue(e.model,i)){let t=e.budget_tokens??X(e.reasoning_effort,r);We(t,e.max_tokens),m={thinking:{type:`enabled`,budget_tokens:t}}}else{let t=e.reasoning_effort??Z(e.budget_tokens,r);m={thinking:{type:`adaptive`}},h=Ke(t)}}let g=m?void 0:e.temperature,_={modelId:e.model,messages:kt(o.map(e=>Ot(e))),system:a?.content?[{text:a.content}]:void 0,inferenceConfig:{...g===void 0?{}:{temperature:g},maxTokens:e.max_tokens},...d?{toolConfig:d}:{},...p||h?{outputConfig:{...p??{},...h?{effort:h}:{}}}:{},...m?{additionalModelRequestFields:m}:{}};return{request:_,toolName:u}}function St(e){return typeof e.send==`function`}function Ct(e){if(`messageStart`in e)return{messageStart:e.messageStart};if(`contentBlockStart`in e)return{contentBlockStart:e.contentBlockStart};if(`contentBlockDelta`in e)return{contentBlockDelta:e.contentBlockDelta};if(`contentBlockStop`in e)return{contentBlockStop:e.contentBlockStop};if(`messageStop`in e)return{messageStop:e.messageStop};if(`metadata`in e)return{metadata:e.metadata};if(`internalServerException`in e)return{internalServerException:e.internalServerException};if(`modelStreamErrorException`in e)return{modelStreamErrorException:e.modelStreamErrorException};if(`validationException`in e)return{validationException:e.validationException};if(`throttlingException`in e)return{throttlingException:e.throttlingException};if(`serviceUnavailableException`in e)return{serviceUnavailableException:e.serviceUnavailableException}}async function*wt(e){for await(let t of e){let e=Ct(t);e&&(yield e)}}function Tt(e){let t;function n(){return t??=import(`@aws-sdk/client-bedrock-runtime`).then(e=>e,e=>{throw t=void 0,new f(`fromBedrock requires "@aws-sdk/client-bedrock-runtime" to be installed to use a raw AWS SDK client (it is not a dependency of vern-llm itself). Install it, or pass your own object with .converse()/.converseStream() methods instead.`,`validation`,{cause:e})}),t}return{converse:async(t,r)=>{let{ConverseCommand:i}=await n();return e.send(new i(t),{abortSignal:r.signal})},converseStream:async(t,r)=>{let{ConverseStreamCommand:i}=await n(),a=await e.send(new i(t),{abortSignal:r.signal});if(!a.stream)throw new f(`Bedrock ConverseStreamCommand response did not include a stream. This can happen if the request or the model doesn't actually support Converse streaming.`,`api`,{code:`server_error`});return{stream:wt(a.stream)}}}}function Et(e,t){let n=St(e)?Tt(e):e,r=t?.toolUseSupportedModels,i=t?.nativeStructuredOutputModels,a=Y(t?.reasoningEffortTokens),o=t?.adaptiveOnlyModels;return{supportsJsonObjectMode:!1,chat:{completions:{async create(e,t){let{request:s,toolName:c}=Q(e,r,i,a,o),l=await n.converse(s,t),u,d;if(c){let e=l.output?.message?.content?.find(e=>e.toolUse?.name===c);u=e?.toolUse?JSON.stringify(e.toolUse.input):``}else{let e=l.output?.message?.content??[];u=e.map(e=>e.text??``).join(``);let t=e.filter(e=>!!e.toolUse);t.length&&(d=t.map((e,t)=>{let n=e.toolUse;if(!n.name)throw new f(`Bedrock returned a toolUse block without a name at index ${t}.`,`validation`);return{id:n.toolUseId??`${n.name}_${t}`,type:`function`,function:{name:n.name,arguments:JSON.stringify(n.input??{})}}}))}return{choices:[{message:{content:u,...d?{tool_calls:d}:{}}}],usage:{prompt_tokens:l.usage?.inputTokens,completion_tokens:l.usage?.outputTokens,total_tokens:l.usage?.totalTokens}}},async*createStream(e,t){if(!n.converseStream)throw new f(`stream: true requires a Bedrock client with converseStream`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`converseStream`}});let{request:s,toolName:c}=Q(e,r,i,a,o),{stream:l}=await n.converseStream(s,t),u=new Map;for await(let e of l)if(`contentBlockStart`in e){let{contentBlockIndex:t,start:n}=e.contentBlockStart;if(n?.toolUse){let e=n.toolUse.name===c?`json-tool`:`tool_use`;u.set(t,e),e===`tool_use`&&!c&&(yield{type:`tool_call_delta`,index:t,id:n.toolUse.toolUseId,name:n.toolUse.name})}else u.set(t,`text`)}else if(`contentBlockDelta`in e){let{contentBlockIndex:t,delta:n}=e.contentBlockDelta;if(n&&`text`in n&&n.text!==void 0&&!c)yield{type:`text-delta`,delta:n.text};else if(n&&`toolUse`in n&&n.toolUse?.input!==void 0){let e=u.get(t);e===`json-tool`?yield{type:`text-delta`,delta:n.toolUse.input}:c||(yield{type:`tool_call_delta`,index:t,argumentsDelta:n.toolUse.input})}}else if(`metadata`in e&&e.metadata.usage)yield{type:`usage`,usage:{prompt_tokens:e.metadata.usage.inputTokens,completion_tokens:e.metadata.usage.outputTokens,total_tokens:e.metadata.usage.totalTokens}};else if(`throttlingException`in e)throw new f(e.throttlingException.message??`Bedrock throttled the request mid-stream`,`api`,{status:429,code:`provider_rate_limited`});else if(`validationException`in e)throw new f(e.validationException.message??`Bedrock rejected the request mid-stream`,`validation`);else if(`internalServerException`in e||`serviceUnavailableException`in e||`modelStreamErrorException`in e){let t=`internalServerException`in e&&e.internalServerException.message||`serviceUnavailableException`in e&&e.serviceUnavailableException.message||`modelStreamErrorException`in e&&e.modelStreamErrorException.message||`Bedrock reported a mid-stream error`,n=`modelStreamErrorException`in e&&e.modelStreamErrorException.originalStatusCode||`serviceUnavailableException`in e&&503||500;throw new f(t,`api`,{status:n,code:n>=500?`server_error`:void 0})}}}}}}function Dt(e){if(!e||e===`auto`)return{auto:{}};if(e===`required`)return{any:{}};if(e===`none`)throw new f("'none' is not supported by fromBedrock: Bedrock Converse has no `tool_choice` equivalent to forbidding tool use while tools are still offered. Omit `tools` entirely for this call instead.",`invalid_params`,{code:`unsupported_capability`,issues:{capability:`toolChoice: 'none'`}});return{tool:{name:e.function.name}}}function Ot(e){if(e.role===`tool`)return{role:`user`,content:[{toolResult:{toolUseId:e.tool_call_id,content:[{text:e.content}],status:e.is_error?`error`:`success`}}]};if(e.role===`assistant`&&e.tool_calls?.length){let t=[];e.content&&t.push({text:e.content});for(let n of e.tool_calls){let e;if(!n.function.arguments.trim())e={};else try{e=JSON.parse(n.function.arguments)}catch(e){throw new f(`Assistant tool call "${n.function.name}" (${n.id}) has arguments that are not valid JSON.`,`validation`,{cause:e})}t.push({toolUse:{toolUseId:n.id,name:n.function.name,input:e}})}return{role:`assistant`,content:t}}return{role:e.role,content:Array.isArray(e.content)?bt(e.content):[{text:e.content??``}]}}function kt(e){let t=e=>e.role===`user`&&e.content.length>0&&e.content.every(e=>`toolResult`in e),n=[];for(let r of e){let e=n.at(-1);t(r)&&e&&t(e)?e.content.push(...r.content):n.push(r)}return n}async function*At(e){let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)return;n&&(yield n)}}finally{try{await t.cancel()}catch{}t.releaseLock()}}async function jt(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text().catch(()=>``),t=Error(`Fetch adapter stream request failed (${n.status}): ${e.slice(0,500)}`);throw t.status=n.status,t.headers=n.headers,t}if(!n.body)throw Error(`Fetch adapter stream request received a response with no body.`);return At(n.body)}async function Mt(e,t,n){let r=typeof e.url==`function`?e.url(t):e.url,i=typeof e.headers==`function`?await e.headers():e.headers,a=e.method??`POST`,o=![`GET`,`HEAD`].includes(a.toUpperCase());return{url:r,method:a,headers:o?{"Content-Type":`application/json`,...i}:{...i},...o?{body:JSON.stringify(n)}:{}}}function Nt(e){return{chat:{completions:{async create(t,n){let{url:r,method:i,headers:a,body:o}=await Mt(e,t,e.mapRequest(t)),s=e.request??fetch,c=await s(r,{method:i,headers:a,body:o,signal:n.signal});if(!c.ok){let e=await c.text().catch(()=>``),t=Error(`Fetch adapter request failed (${c.status}): ${e.slice(0,500)}`);throw t.status=c.status,t.headers=c.headers,t}let l=await c.json(),{content:u,usage:d,toolCalls:f}=e.mapResponse(l),p=f?.length?f.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:e.arguments}})):void 0;return{choices:[{message:{content:u,...p?{tool_calls:p}:{}}}],usage:d?{prompt_tokens:d.promptTokens,completion_tokens:d.completionTokens,total_tokens:d.totalTokens}:void 0}},async*createStream(t,n){if(!e.mapStreamEvent)throw new f(`stream: true requires mapStreamEvent to be configured on fromFetch`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`mapStreamEvent`}});if(e.request&&!e.requestStream)throw new f("`stream: true` requires `requestStream` to be configured on fromFetch when a custom `request` transport is set. `requestStream` does not fall back to `request` (it needs an async-iterable byte stream, which `RequestLike`'s buffered `ResponseLike` has no way to provide), without it, `stream: true` would silently use plain native `fetch` instead of your configured transport. Add a `requestStream` that opens the same connection your `request` does, or omit `request` if native `fetch` is fine for both.",`invalid_params`,{code:`unsupported_capability`,issues:{capability:`requestStream`}});let{url:r,method:i,headers:a,body:o}=await Mt(e,t,e.mapRequest(t)),s=e.requestStream??jt,c=e.parseStreamFrames??H,l=await s(r,{method:i,headers:a,body:o,signal:n.signal});for await(let t of c(l)){if(t===G){yield{type:`ping`};continue}let n=e.mapStreamEvent(t);if(!n)continue;Array.isArray(n)?yield*n:yield n}}}}}}function Pt(e,t){if(e.budget_tokens===void 0)return e;let{budget_tokens:n,...r}=e;return r.reasoning_effort===void 0?{...r,reasoning_effort:Z(n,t)}:r}function Ft(e){return e.map(e=>e.type===`image`?{type:`image_url`,image_url:{url:`data:${q(e.mimeType)};base64,${e.data}`}}:{type:`text`,text:e.text})}function It(e){return e.messages.map(e=>{if(e.role===`user`&&Array.isArray(e.content))return{...e,content:Ft(e.content)};if(e.role===`tool`){let{is_error:t,...n}=e;return n}return e})}function*Lt(e){let t=e.choices?.[0]?.delta;if(t?.content&&(yield{type:`text-delta`,delta:t.content}),t?.tool_calls?.length)for(let e of t.tool_calls)yield{type:`tool_call_delta`,index:e.index,id:e.id,name:e.function?.name,argumentsDelta:e.function?.arguments};e.usage&&(yield{type:`usage`,usage:e.usage})}function $(e,t={}){let n=e,{supportsStreamUsage:r=!0}=t,i=Y(t.reasoningEffortTokens),a=n.chat.completions.create.bind(n.chat.completions);return{chat:{completions:{async create(e,t){let r=It(e);return n.chat.completions.create(Pt({...e,messages:r},i),t)},async*createStream(e,t){let n=It(e),o=await a(Pt({...e,messages:n,stream:!0,...r?{stream_options:{include_usage:!0}}:{}},i),t);for await(let e of o)yield*Lt(e)}}}}}const Rt=$,zt=$,Bt=$,Vt=$,Ht=$,Ut=$,Wt=$,Gt=$,Kt=$,qt=$,Jt=$,Yt=$,Xt=$,Zt=$,Qt=$,$t=$,en=$,tn=$,nn=$,rn=$,an=$,on=$,sn=$,cn=$,ln=$,un=$,dn=$,fn=$,pn=$,mn=$,hn=$,gn=$,_n=$,vn=$,yn=$,bn=$,xn=$,Sn=$;export{A as CircuitBreaker,R as ConsoleLogger,S as FallbackExhaustedError,h as InMemoryCacheAdapter,f as LLMError,g as NormalizedCacheAdapter,V as RateLimiter,G as SSE_PING,_ as TieredCacheAdapter,Fe as VernLLM,z as defaultEstimateTokens,x as defaultFallbackOn,Le as defineCachedCallParams,Ie as defineCallParams,v as defineTool,Sn as from01AI,it as fromAnthropic,_n as fromAnyscale,xn as fromAtlasCloud,cn as fromBaseten,Et as fromBedrock,Ht as fromCerebras,an as fromCloudflareWorkersAI,Jt as fromDeepInfra,Vt as fromDeepSeek,ln as fromFeatherless,Nt as fromFetch,Wt as fromFireworks,un as fromFriendli,gt as fromGemini,zt as fromGroq,Xt as fromHyperbolic,yn as fromInferenceNet,bn as fromInfermatic,$t as fromLMStudio,hn as fromLambdaLabs,vn as fromLepton,mn as fromMiniMax,Bt as fromMistral,Zt as fromMoonshot,on as fromNebius,Yt as fromNovita,nn as fromNvidiaNIM,Gt as fromOllama,Rt as fromOpenAI,$ as fromOpenAICompatible,Kt as fromOpenRouter,fn as fromParasail,qt as fromPerplexity,sn as fromSambaNova,dn as fromSiliconFlow,gn as fromSnowflakeCortex,pn as fromStepFun,Ut as fromTogether,en as fromVLLM,rn as fromVercelAIGateway,tn as fromXAI,Qt as fromZhipu,m as hasIssues,C as isFallbackExhaustedError,p as isLLMError,y as isToolCallResult,H as parseSseStream};
|
|
14
|
+
`);if(r===`[DONE]`)return U;try{return JSON.parse(r)}catch(e){throw new p(`Invalid JSON in SSE frame: ${r.slice(0,200)}`,`parse`,{cause:e,code:`stream_frame_invalid`})}}const zt=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];function q(e){if(zt.includes(e))return e;throw new p(`Unsupported image mimeType "${e}": expected one of ${zt.join(`, `)}`,`invalid_params`)}function Bt(e,t){return t?Array.isArray(t)?t.includes(e):t(e):!1}const J={minimal:1024,low:4096,medium:16e3,high:32e3};function Y(e){if(!e)return J;let t={...J,...e};if(!(t.minimal<t.low&&t.low<t.medium&&t.medium<t.high))throw new p(`reasoningEffortTokens must keep tiers in strictly ascending order (minimal < low < medium < high), got ${JSON.stringify(t)}. An out-of-order override doesn't just misrank tiers, it can make some of them unreachable.`,`invalid_params`);return t}function X(e,t=J){return t[e]}function Z(e,t=J){return e<=t.minimal?`minimal`:e<=t.low?`low`:e<=t.medium?`medium`:`high`}function Vt(e){let t=/opus-(\d+)(?:-(\d+))?/.exec(e);if(!t)return null;let n=t[2],r=n===void 0||n.length>=8?0:Number(n);return[Number(t[1]),r]}function Ht(e){let t=Vt(e);if(t){let[e,n]=t;return e>4||e===4&&n>=7}return[`sonnet-5`,`fable-5`,`mythos`].some(t=>e.includes(t))}function Ut(e,t){return Ht(e)?!0:t?Array.isArray(t)?t.includes(e):t(e):!1}function Wt(e,t){return!Ut(e,t)}function Q(e,t){if(e<1024)throw new p(`budgetTokens (${e}) is below Anthropic's minimum of 1024. Raise budgetTokens, or use a reasoningEffort tier of 'low' or above with the default conversion table.`,`invalid_params`);if(e>=t)throw new p(`budgetTokens (${e}) must be less than maxTokens (${t}); the thinking budget and the reply share the same max_tokens ceiling on Anthropic. Raise maxTokens, or lower budgetTokens/reasoningEffort.`,`invalid_params`)}function Gt(e){if(e)throw new p(`budgetTokens/reasoningEffort was set alongside ${e}. Anthropic rejects thinking combined with a tool_choice that forces tool use, the model has to be able to reply with plain text for thinking to run. Use toolChoice: 'auto' (or omit toolChoice) for this call, or drop budgetTokens/reasoningEffort for it.`,`invalid_params`)}function Kt(e){return e===`minimal`?`low`:e}function qt(e,t){return Yt(t,e.toUpperCase())}function Jt(e){let t=/gemini-\d+\.(\d+)/.exec(e);return t?Number(t[1]):0}function Yt(e,t){if(!e.includes(`pro`))return t;let n=Xt(e);if(n===null||n<3)return t;let r=Jt(e);return r===0?t===`HIGH`?`HIGH`:`LOW`:t===`MINIMAL`?`LOW`:t}function Xt(e){let t=/gemini-(\d+)/.exec(e);return t?Number(t[1]):null}function Zt(e){let t=Xt(e);return t!==null&&t>=3}function Qt(e,t){return Zt(e)?!0:t?Array.isArray(t)?t.includes(e):t(e):!1}function $t(e){return e.map(e=>e.type===`image`?{type:`image`,source:{type:`base64`,media_type:q(e.mimeType),data:e.data}}:{type:`text`,text:e.text})}function en(e,t){if(e.type!==`object`)throw new p(`Tool "${t}"'s schema must have "type": "object" (Anthropic requires object-shaped tool parameters).`,`validation`);return e}function tn(e){return!e||e===`auto`?{type:`auto`}:e===`none`?{type:`none`}:e===`required`?{type:`any`}:{type:`tool`,name:e.function.name}}function nn(e,t){return{tools:e.map(e=>({name:e.function.name,description:e.function.description,input_schema:en(e.function.parameters,e.function.name)})),toolChoice:tn(t)}}function rn(e,t,n,r){let i=e.messages.find(e=>e.role===`system`),a=e.messages.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`tool`),o=e.response_format?.type===`json_schema`?e.response_format.json_schema:void 0,s=o?.name.trim();if(o&&!s)throw new p(`json_schema.name must not be empty.`,`validation`);let c=!!o&&Bt(e.model,t);if(o&&e.tools?.length&&!c)throw new p(`Anthropic model "${e.model}" is not covered by nativeStructuredOutputModels, so \`jsonSchema\` is emulated as a forced single tool call there, which collides with the \`tools\` you also provided. Either drop \`tools\` or \`jsonSchema\` for this call, or pass this model in fromAnthropic's \`nativeStructuredOutputModels\` option once you've confirmed it supports Anthropic's \`output_config.format\`.`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`tools_with_json_schema`}});if(e.response_format?.type===`json_object`)throw new p('response_format: "json_object" is not supported on Anthropic. Unlike OpenAI, Anthropic has no API-level field that mechanically guarantees valid JSON output for this mode, so it used to be emulated by injecting a "respond with JSON only" instruction into the system prompt, a guarantee this adapter can no longer make. Use `jsonSchema` instead, which maps to a real API-level constraint (Anthropic\'s native output_config.format on covered models, or a forced single tool call otherwise).',`validation`);let l,u,d,f;if(o&&c)u={type:`json_schema`,schema:o.schema},e.tools?.length&&({tools:d,toolChoice:f}=nn(e.tools,e.tool_choice));else if(o&&s){let{schema:e,description:t,strict:n}=o;l=s,d=[{name:l,description:t,input_schema:en(e,l),strict:n}],f={type:`tool`,name:l}}!o&&e.tools?.length&&({tools:d,toolChoice:f}=nn(e.tools,e.tool_choice));let m,h;if(e.budget_tokens!==void 0||e.reasoning_effort!==void 0)if(Gt(f?.type===`tool`?`toolChoice forcing the "${f.name}" tool`:f?.type===`any`?`toolChoice: 'required' (Anthropic's "any" tool_choice)`:void 0),Wt(e.model,r)){let t=e.budget_tokens??X(e.reasoning_effort,n);Q(t,e.max_tokens),m={type:`enabled`,budget_tokens:t}}else{let t=e.reasoning_effort??Z(e.budget_tokens,n);m={type:`adaptive`},h=Kt(t)}let g=i?.content,_=m?void 0:e.temperature,v={model:e.model,max_tokens:e.max_tokens,..._===void 0?{}:{temperature:_},system:g||void 0,messages:on(a.map(e=>sn(e))),...d?{tools:d,tool_choice:f}:{},...u||h?{output_config:{...u?{format:u}:{},...h?{effort:h}:{}}}:{},...m?{thinking:m}:{}};return{body:v,toolName:l}}function an(e,t){let n=t?.nativeStructuredOutputModels,r=Y(t?.reasoningEffortTokens),i=t?.adaptiveOnlyModels,a=e.messages.create.bind(e.messages);return{supportsJsonObjectMode:!1,chat:{completions:{async create(t,a){let{body:o,toolName:s}=rn(t,n,r,i),c=await e.messages.create(o,a),l,u;if(s){let e=c.content.find(e=>e.type===`tool_use`&&e.name===s);if(!e)throw new p(`Anthropic did not return the required structured output tool "${s}".`,`validation`);if(!e.input||typeof e.input!=`object`||Array.isArray(e.input))throw new p(`Anthropic returned invalid structured output for tool "${s}". Expected an object.`,`validation`);l=JSON.stringify(e.input)}else{l=c.content.filter(e=>e.type===`text`).map(e=>e.text??``).join(``);let e=c.content.filter(e=>e.type===`tool_use`);e.length&&(u=e.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.input??{})}})))}return{choices:[{message:{content:l,...u?{tool_calls:u}:{}}}],usage:{prompt_tokens:c.usage?.input_tokens,completion_tokens:c.usage?.output_tokens,total_tokens:(c.usage?.input_tokens??0)+(c.usage?.output_tokens??0),...c.usage?.output_tokens_details?.thinking_tokens===void 0?{}:{completion_tokens_details:{reasoning_tokens:c.usage.output_tokens_details.thinking_tokens}}}}},async*createStream(e,t){let{body:o,toolName:s}=rn(e,n,r,i),c=await a({...o,stream:!0},t),l=new Map,u=0,d=!1;for await(let e of c)if(e.type===`message_start`)u=e.message.usage?.input_tokens??0;else if(e.type===`content_block_start`)if(e.content_block.type===`tool_use`){let t=e.content_block.name===s?`json-tool`:`tool_use`;l.set(e.index,t),t===`json-tool`?d=!0:s||(yield{type:`tool_call_delta`,index:e.index,id:e.content_block.id,name:e.content_block.name})}else l.set(e.index,`text`);else if(e.type===`content_block_delta`){if(e.delta.type===`text_delta`)s||(yield{type:`text-delta`,delta:e.delta.text});else if(e.delta.type===`input_json_delta`){let t=l.get(e.index);t===`json-tool`?yield{type:`text-delta`,delta:e.delta.partial_json}:s||(yield{type:`tool_call_delta`,index:e.index,argumentsDelta:e.delta.partial_json})}}else if(e.type===`message_delta`){let t=e.usage?.output_tokens??0,n=e.usage?.output_tokens_details?.thinking_tokens;yield{type:`usage`,usage:{prompt_tokens:u,completion_tokens:t,total_tokens:u+t,...n===void 0?{}:{completion_tokens_details:{reasoning_tokens:n}}}}}else e.type===`ping`&&(yield{type:`ping`});if(s&&!d)throw new p(`Anthropic did not return the required structured output tool "${s}".`,`validation`)}}}}}function on(e){let t=e=>e.role===`user`&&Array.isArray(e.content)&&e.content.length>0&&e.content.every(e=>e.type===`tool_result`),n=[];for(let r of e){let e=n.at(-1);t(r)&&e&&t(e)?e.content.push(...r.content):n.push(r)}return n}function sn(e){if(e.role===`tool`)return{role:`user`,content:[{type:`tool_result`,tool_use_id:e.tool_call_id,content:e.content,...e.is_error?{is_error:!0}:{}}]};if(e.role===`assistant`&&e.tool_calls?.length){let t=[];e.content&&t.push({type:`text`,text:e.content});for(let n of e.tool_calls){let e;try{e=n.function.arguments.trim()?JSON.parse(n.function.arguments):{}}catch(e){throw new p(`Assistant tool call "${n.function.name}" (${n.id}) has arguments that are not valid JSON.`,`validation`,{cause:e})}if(e===null||Array.isArray(e)||typeof e!=`object`)throw new p(`Assistant tool call "${n.function.name}" (${n.id}) arguments must be a JSON object.`,`validation`);t.push({type:`tool_use`,id:n.id,name:n.function.name,input:e})}return{role:`assistant`,content:t}}return{role:e.role,content:Array.isArray(e.content)?$t(e.content):e.content??``}}function cn(e){return e.map(e=>e.type===`image`?{inlineData:{mimeType:q(e.mimeType),data:e.data}}:{text:e.text})}function ln(e,t){return`${e}#${t}`}function un(e){return!e||e===`auto`?{functionCallingConfig:{mode:`AUTO`}}:e===`none`?{functionCallingConfig:{mode:`NONE`}}:e===`required`?{functionCallingConfig:{mode:`ANY`}}:{functionCallingConfig:{mode:`ANY`,allowedFunctionNames:[e.function.name]}}}function dn(e){let t=new Map;for(let n of e)if(n.role===`assistant`)for(let e of n.tool_calls??[])t.set(e.id,e.function.name);return t}function fn(e,t){if(e.role===`tool`)return{role:`user`,parts:[{functionResponse:{id:e.tool_call_id,name:t.get(e.tool_call_id)??e.tool_call_id,response:mn(e.content)}}]};if(e.role===`assistant`&&e.tool_calls?.length){let t=[];return typeof e.content==`string`&&e.content&&t.push({text:e.content}),t.push(...e.tool_calls.map(e=>({functionCall:{id:e.id,name:e.function.name,args:pn(e.function.arguments,e.function.name)}}))),{role:`model`,parts:t}}return{role:e.role===`assistant`?`model`:`user`,parts:Array.isArray(e.content)?cn(e.content):[{text:e.content??``}]}}function pn(e,t){let n;try{n=e.trim()?JSON.parse(e):{}}catch(e){throw new p(`Tool call "${t}" arguments are not valid JSON.`,`parse`,{cause:e,code:`tool_arguments_parse_failed`})}if(!n||Array.isArray(n)||typeof n!=`object`)throw new p(`Tool call "${t}" arguments must be a JSON object.`,`validation`);return n}function mn(e){let t;try{t=e.trim()?JSON.parse(e):``}catch{t=e}return t&&!Array.isArray(t)&&typeof t==`object`?t:{output:t}}function hn(e){let t=e=>e.role===`user`&&e.parts.length>0&&e.parts.every(e=>`functionResponse`in e),n=[];for(let r of e){let e=n.at(-1);t(r)&&e&&t(e)?e.parts.push(...r.parts):n.push(r)}return n}function gn(e,t,n){let r=e.messages.find(e=>e.role===`system`),i=e.messages.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`tool`),a=!!e.response_format,o={...e.temperature===void 0?{}:{temperature:e.temperature},maxOutputTokens:e.max_tokens,...r?{systemInstruction:{parts:[{text:r.content}]}}:{}};if(a&&(o.responseMimeType=`application/json`),e.response_format?.type===`json_schema`){let{schema:t,description:n}=e.response_format.json_schema;o.responseSchema={...t,...n?{description:n}:{}}}if(e.tools?.length&&(o.tools=[{functionDeclarations:e.tools.map(e=>({name:e.function.name,description:e.function.description,parameters:e.function.parameters}))}],o.toolConfig=un(e.tool_choice)),Qt(e.model,n)){let n=e.reasoning_effort??(e.budget_tokens===void 0?void 0:Z(e.budget_tokens,t));n!==void 0&&(o.thinkingConfig={thinkingLevel:qt(n,e.model)})}else{let n=e.budget_tokens??(e.reasoning_effort?X(e.reasoning_effort,t):void 0);n!==void 0&&(o.thinkingConfig={thinkingBudget:n})}let s=dn(i);return{model:e.model,contents:hn(i.map(e=>fn(e,s))),config:o}}function _n(e,t){let n=Y(t?.reasoningEffortTokens),r=t?.thinkingLevelModels,i=e.models??e;if(typeof i.generateContent!=`function`)throw new p(`fromGemini requires a client with generateContent: pass ai.models, or the whole ai client (fromGemini(ai)).`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`generateContent`}});let a=i.generateContent.bind(i),o=typeof i.generateContentStream==`function`?i.generateContentStream.bind(i):void 0;return{chat:{completions:{async create(e,t){let i=gn(e,n,r);i.config={...i.config,abortSignal:t.signal};let o=await a(i),s=o.candidates?.[0]?.content?.parts??[],c=s.map(e=>e.text??``).join(``),l=s.filter(e=>e.functionCall),u;if(l.length){let e=new Map;u=l.map(t=>{let n=t.functionCall.name,r=t.functionCall.id,i=e.get(n)??0;return e.set(n,i+1),{id:r??ln(n,i),type:`function`,function:{name:n,arguments:JSON.stringify(t.functionCall.args??{})}}})}return{choices:[{message:{content:c,...u?{tool_calls:u}:{}}}],usage:{prompt_tokens:o.usageMetadata?.promptTokenCount,completion_tokens:o.usageMetadata?.candidatesTokenCount,total_tokens:o.usageMetadata?.totalTokenCount,...o.usageMetadata?.thoughtsTokenCount===void 0?{}:{completion_tokens_details:{reasoning_tokens:o.usageMetadata.thoughtsTokenCount}}}}},async*createStream(e,t){if(!o)throw new p(`stream: true requires a Gemini client with generateContentStream`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`generateContentStream`}});let i=gn(e,n,r);i.config={...i.config,abortSignal:t.signal};let a=await o(i),s=0,c=new Map,l;for await(let e of a){let t=e.candidates?.[0]?.content?.parts??[];for(let e of t)if(e.text&&(yield{type:`text-delta`,delta:e.text}),e.functionCall){let t=e.functionCall.name,n=e.functionCall.id,r=t?c.get(t)??0:0;t&&c.set(t,r+1),yield{type:`tool_call_delta`,index:s,id:n??(t?ln(t,r):void 0),name:e.functionCall.name,argumentsDelta:JSON.stringify(e.functionCall.args??{}),complete:!0},s++}e.usageMetadata&&(l=e.usageMetadata)}l&&(yield{type:`usage`,usage:{prompt_tokens:l.promptTokenCount,completion_tokens:l.candidatesTokenCount,total_tokens:l.totalTokenCount,...l.thoughtsTokenCount===void 0?{}:{completion_tokens_details:{reasoning_tokens:l.thoughtsTokenCount}}}})}}}}}function vn(e){return e.includes(`claude`)}function yn(e){switch(q(e)){case`image/png`:return`png`;case`image/jpeg`:return`jpeg`;case`image/gif`:return`gif`;case`image/webp`:return`webp`}}function bn(e){return new Uint8Array(Buffer.from(e,`base64`))}function xn(e){return e.map(e=>e.type===`image`?{image:{format:yn(e.mimeType),source:{bytes:bn(e.data)}}}:{text:e.text})}function Sn(e,t){return{tools:e.map(e=>({toolSpec:{name:e.function.name,description:e.function.description,inputSchema:{json:e.function.parameters}}})),toolChoice:kn(t)}}function Cn(e,t,n,r,i){let a=e.messages.find(e=>e.role===`system`),o=e.messages.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`tool`),s=e.response_format?.type===`json_schema`?e.response_format.json_schema:void 0,c=s?.name.trim();if(s&&!c)throw new p(`json_schema.name must not be empty.`,`validation`);let l=!!s&&Bt(e.model,n);if(s&&e.tools?.length&&!l)throw new p(`Bedrock model "${e.model}" is not covered by nativeStructuredOutputModels, so \`jsonSchema\` is emulated as a forced single tool call there (via \`toolConfig\`), which collides with the \`tools\` you also provided. Either drop \`tools\` or \`jsonSchema\` for this call, or pass this model in fromBedrock's \`nativeStructuredOutputModels\` option once you've confirmed it supports Converse's \`outputConfig.textFormat\`.`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`tools_with_json_schema`}});if(e.response_format?.type===`json_object`)throw new p('response_format: "json_object" is not supported on Bedrock. Converse has no field that mechanically guarantees valid JSON output for this mode, so it used to be emulated by injecting a "respond with JSON only" instruction into the system prompt, a guarantee this adapter can no longer make. Use `jsonSchema` instead, which maps to a real constraint (Converse\'s native outputConfig.textFormat on covered models, or a forced tool call otherwise).',`validation`);let u,d,f;if(s&&l){let{schema:e,description:t}=s;f={textFormat:{type:`json_schema`,structure:{jsonSchema:{schema:JSON.stringify(e),name:c,description:t}}}}}else if(s&&c){let{schema:e,description:t,strict:n}=s;u=c,d={tools:[{toolSpec:{name:u,description:t,inputSchema:{json:e},strict:n}}],toolChoice:{tool:{name:u}}}}if(e.tools?.length&&!u&&(d=Sn(e.tools,e.tool_choice)),s&&d&&t){let n=Array.isArray(t)?t.includes(e.model):t(e.model);if(!n)throw new p(`Bedrock model "${e.model}" is not listed in toolUseSupportedModels, but this call requires Converse tool use (either jsonSchema emulated as a forced tool call, or real \`tools\` sent alongside native structured output).`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`toolUseSupportedModels`}})}let m,h;if(vn(e.model)&&(e.budget_tokens!==void 0||e.reasoning_effort!==void 0)){let t=d?.toolChoice;if(Gt(t&&`tool`in t?`toolChoice forcing the "${t.tool?.name}" tool`:t&&`any`in t?`toolChoice: 'required' (Converse's "any" tool_choice)`:void 0),Wt(e.model,i)){let t=e.budget_tokens??X(e.reasoning_effort,r);Q(t,e.max_tokens),m={thinking:{type:`enabled`,budget_tokens:t}}}else{let t=e.reasoning_effort??Z(e.budget_tokens,r);m={thinking:{type:`adaptive`}},h=Kt(t)}}let g=m?void 0:e.temperature,_={modelId:e.model,messages:jn(o.map(e=>An(e))),system:a?.content?[{text:a.content}]:void 0,inferenceConfig:{...g===void 0?{}:{temperature:g},maxTokens:e.max_tokens},...d?{toolConfig:d}:{},...f||h?{outputConfig:{...f??{},...h?{effort:h}:{}}}:{},...m?{additionalModelRequestFields:m}:{}};return{request:_,toolName:u}}function wn(e){return typeof e.send==`function`}function Tn(e){if(`messageStart`in e)return{messageStart:e.messageStart};if(`contentBlockStart`in e)return{contentBlockStart:e.contentBlockStart};if(`contentBlockDelta`in e)return{contentBlockDelta:e.contentBlockDelta};if(`contentBlockStop`in e)return{contentBlockStop:e.contentBlockStop};if(`messageStop`in e)return{messageStop:e.messageStop};if(`metadata`in e)return{metadata:e.metadata};if(`internalServerException`in e)return{internalServerException:e.internalServerException};if(`modelStreamErrorException`in e)return{modelStreamErrorException:e.modelStreamErrorException};if(`validationException`in e)return{validationException:e.validationException};if(`throttlingException`in e)return{throttlingException:e.throttlingException};if(`serviceUnavailableException`in e)return{serviceUnavailableException:e.serviceUnavailableException}}async function*En(e){for await(let t of e){let e=Tn(t);e&&(yield e)}}function Dn(e){let t;function n(){return t??=import(`@aws-sdk/client-bedrock-runtime`).then(e=>e,e=>{throw t=void 0,new p(`fromBedrock requires "@aws-sdk/client-bedrock-runtime" to be installed to use a raw AWS SDK client (it is not a dependency of vern-llm itself). Install it, or pass your own object with .converse()/.converseStream() methods instead.`,`validation`,{cause:e})}),t}return{converse:async(t,r)=>{let{ConverseCommand:i}=await n();return e.send(new i(t),{abortSignal:r.signal})},converseStream:async(t,r)=>{let{ConverseStreamCommand:i}=await n(),a=await e.send(new i(t),{abortSignal:r.signal});if(!a.stream)throw new p(`Bedrock ConverseStreamCommand response did not include a stream. This can happen if the request or the model doesn't actually support Converse streaming.`,`api`,{code:`server_error`});return{stream:En(a.stream)}}}}function On(e,t){let n=wn(e)?Dn(e):e,r=t?.toolUseSupportedModels,i=t?.nativeStructuredOutputModels,a=Y(t?.reasoningEffortTokens),o=t?.adaptiveOnlyModels;return{supportsJsonObjectMode:!1,chat:{completions:{async create(e,t){let{request:s,toolName:c}=Cn(e,r,i,a,o),l=await n.converse(s,t),u,d;if(c){let e=l.output?.message?.content?.find(e=>e.toolUse?.name===c);u=e?.toolUse?JSON.stringify(e.toolUse.input):``}else{let e=l.output?.message?.content??[];u=e.map(e=>e.text??``).join(``);let t=e.filter(e=>!!e.toolUse);t.length&&(d=t.map((e,t)=>{let n=e.toolUse;if(!n.name)throw new p(`Bedrock returned a toolUse block without a name at index ${t}.`,`validation`);return{id:n.toolUseId??`${n.name}_${t}`,type:`function`,function:{name:n.name,arguments:JSON.stringify(n.input??{})}}}))}return{choices:[{message:{content:u,...d?{tool_calls:d}:{}}}],usage:{prompt_tokens:l.usage?.inputTokens,completion_tokens:l.usage?.outputTokens,total_tokens:l.usage?.totalTokens}}},async*createStream(e,t){if(!n.converseStream)throw new p(`stream: true requires a Bedrock client with converseStream`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`converseStream`}});let{request:s,toolName:c}=Cn(e,r,i,a,o),{stream:l}=await n.converseStream(s,t),u=new Map;for await(let e of l)if(`contentBlockStart`in e){let{contentBlockIndex:t,start:n}=e.contentBlockStart;if(n?.toolUse){let e=n.toolUse.name===c?`json-tool`:`tool_use`;u.set(t,e),e===`tool_use`&&!c&&(yield{type:`tool_call_delta`,index:t,id:n.toolUse.toolUseId,name:n.toolUse.name})}else u.set(t,`text`)}else if(`contentBlockDelta`in e){let{contentBlockIndex:t,delta:n}=e.contentBlockDelta;if(n&&`text`in n&&n.text!==void 0&&!c)yield{type:`text-delta`,delta:n.text};else if(n&&`toolUse`in n&&n.toolUse?.input!==void 0){let e=u.get(t);e===`json-tool`?yield{type:`text-delta`,delta:n.toolUse.input}:c||(yield{type:`tool_call_delta`,index:t,argumentsDelta:n.toolUse.input})}}else if(`metadata`in e&&e.metadata.usage)yield{type:`usage`,usage:{prompt_tokens:e.metadata.usage.inputTokens,completion_tokens:e.metadata.usage.outputTokens,total_tokens:e.metadata.usage.totalTokens}};else if(`throttlingException`in e)throw new p(e.throttlingException.message??`Bedrock throttled the request mid-stream`,`api`,{status:429,code:`provider_rate_limited`});else if(`validationException`in e)throw new p(e.validationException.message??`Bedrock rejected the request mid-stream`,`validation`);else if(`internalServerException`in e||`serviceUnavailableException`in e||`modelStreamErrorException`in e){let t=`internalServerException`in e&&e.internalServerException.message||`serviceUnavailableException`in e&&e.serviceUnavailableException.message||`modelStreamErrorException`in e&&e.modelStreamErrorException.message||`Bedrock reported a mid-stream error`,n=`modelStreamErrorException`in e&&e.modelStreamErrorException.originalStatusCode||`serviceUnavailableException`in e&&503||500;throw new p(t,`api`,{status:n,code:n>=500?`server_error`:void 0})}}}}}}function kn(e){if(!e||e===`auto`)return{auto:{}};if(e===`required`)return{any:{}};if(e===`none`)throw new p("'none' is not supported by fromBedrock: Bedrock Converse has no `tool_choice` equivalent to forbidding tool use while tools are still offered. Omit `tools` entirely for this call instead.",`invalid_params`,{code:`unsupported_capability`,issues:{capability:`toolChoice: 'none'`}});return{tool:{name:e.function.name}}}function An(e){if(e.role===`tool`)return{role:`user`,content:[{toolResult:{toolUseId:e.tool_call_id,content:[{text:e.content}],status:e.is_error?`error`:`success`}}]};if(e.role===`assistant`&&e.tool_calls?.length){let t=[];e.content&&t.push({text:e.content});for(let n of e.tool_calls){let e;if(!n.function.arguments.trim())e={};else try{e=JSON.parse(n.function.arguments)}catch(e){throw new p(`Assistant tool call "${n.function.name}" (${n.id}) has arguments that are not valid JSON.`,`validation`,{cause:e})}t.push({toolUse:{toolUseId:n.id,name:n.function.name,input:e}})}return{role:`assistant`,content:t}}return{role:e.role,content:Array.isArray(e.content)?xn(e.content):[{text:e.content??``}]}}function jn(e){let t=e=>e.role===`user`&&e.content.length>0&&e.content.every(e=>`toolResult`in e),n=[];for(let r of e){let e=n.at(-1);t(r)&&e&&t(e)?e.content.push(...r.content):n.push(r)}return n}async function*Mn(e){let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)return;n&&(yield n)}}finally{try{await t.cancel()}catch{}t.releaseLock()}}async function Nn(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text().catch(()=>``),t=Error(`Fetch adapter stream request failed (${n.status}): ${e.slice(0,500)}`);throw t.status=n.status,t.headers=n.headers,t}if(!n.body)throw Error(`Fetch adapter stream request received a response with no body.`);return Mn(n.body)}async function Pn(e,t,n){let r=typeof e.url==`function`?e.url(t):e.url,i=typeof e.headers==`function`?await e.headers():e.headers,a=e.method??`POST`,o=![`GET`,`HEAD`].includes(a.toUpperCase());return{url:r,method:a,headers:o?{"Content-Type":`application/json`,...i}:{...i},...o?{body:JSON.stringify(n)}:{}}}function Fn(e){return{chat:{completions:{async create(t,n){let{url:r,method:i,headers:a,body:o}=await Pn(e,t,e.mapRequest(t)),s=e.request??fetch,c=await s(r,{method:i,headers:a,body:o,signal:n.signal});if(!c.ok){let e=await c.text().catch(()=>``),t=Error(`Fetch adapter request failed (${c.status}): ${e.slice(0,500)}`);throw t.status=c.status,t.headers=c.headers,t}let l=await c.json(),{content:u,usage:d,toolCalls:f}=e.mapResponse(l),p=f?.length?f.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:e.arguments}})):void 0;return{choices:[{message:{content:u,...p?{tool_calls:p}:{}}}],usage:d?{prompt_tokens:d.promptTokens,completion_tokens:d.completionTokens,total_tokens:d.totalTokens}:void 0}},async*createStream(t,n){if(!e.mapStreamEvent)throw new p(`stream: true requires mapStreamEvent to be configured on fromFetch`,`invalid_params`,{code:`unsupported_capability`,issues:{capability:`mapStreamEvent`}});if(e.request&&!e.requestStream)throw new p("`stream: true` requires `requestStream` to be configured on fromFetch when a custom `request` transport is set. `requestStream` does not fall back to `request` (it needs an async-iterable byte stream, which `RequestLike`'s buffered `ResponseLike` has no way to provide), without it, `stream: true` would silently use plain native `fetch` instead of your configured transport. Add a `requestStream` that opens the same connection your `request` does, or omit `request` if native `fetch` is fine for both.",`invalid_params`,{code:`unsupported_capability`,issues:{capability:`requestStream`}});let{url:r,method:i,headers:a,body:o}=await Pn(e,t,e.mapRequest(t)),s=e.requestStream??Nn,c=e.parseStreamFrames??Rt,l=await s(r,{method:i,headers:a,body:o,signal:n.signal});for await(let t of c(l)){if(t===G){yield{type:`ping`};continue}let n=e.mapStreamEvent(t);if(!n)continue;Array.isArray(n)?yield*n:yield n}}}}}}function In(e,t){if(e.budget_tokens===void 0)return e;let{budget_tokens:n,...r}=e;return r.reasoning_effort===void 0?{...r,reasoning_effort:Z(n,t)}:r}function Ln(e){return e.map(e=>e.type===`image`?{type:`image_url`,image_url:{url:`data:${q(e.mimeType)};base64,${e.data}`}}:{type:`text`,text:e.text})}function Rn(e){return e.messages.map(e=>{if(e.role===`user`&&Array.isArray(e.content))return{...e,content:Ln(e.content)};if(e.role===`tool`){let{is_error:t,...n}=e;return n}return e})}function*zn(e){let t=e.choices?.[0]?.delta;if(t?.content&&(yield{type:`text-delta`,delta:t.content}),t?.tool_calls?.length)for(let e of t.tool_calls)yield{type:`tool_call_delta`,index:e.index,id:e.id,name:e.function?.name,argumentsDelta:e.function?.arguments};e.usage&&(yield{type:`usage`,usage:e.usage})}function $(e,t={}){let n=e,{supportsStreamUsage:r=!0}=t,i=Y(t.reasoningEffortTokens),a=n.chat.completions.create.bind(n.chat.completions);return{chat:{completions:{async create(e,t){let r=Rn(e);return n.chat.completions.create(In({...e,messages:r},i),t)},async*createStream(e,t){let n=Rn(e),o=await a(In({...e,messages:n,stream:!0,...r?{stream_options:{include_usage:!0}}:{}},i),t);for await(let e of o)yield*zn(e)}}}}}const Bn=$,Vn=$,Hn=$,Un=$,Wn=$,Gn=$,Kn=$,qn=$,Jn=$,Yn=$,Xn=$,Zn=$,Qn=$,$n=$,er=$,tr=$,nr=$,rr=$,ir=$,ar=$,or=$,sr=$,cr=$,lr=$,ur=$,dr=$,fr=$,pr=$,mr=$,hr=$,gr=$,_r=$,vr=$,yr=$,br=$,xr=$,Sr=$,Cr=$;export{et as CircuitBreaker,Pt as ConsoleLogger,C as FallbackExhaustedError,g as InMemoryCacheAdapter,p as LLMError,_ as NormalizedCacheAdapter,Qe as RateLimiter,G as SSE_PING,v as TieredCacheAdapter,Ft as VernLLM,re as createMiddleware,w as createMiddlewareStateBag,ne as createStateKey,Xe as defaultEstimateTokens,S as defaultFallbackOn,Lt as defineCachedCallParams,It as defineCallParams,y as defineTool,Cr as from01AI,an as fromAnthropic,vr as fromAnyscale,Sr as fromAtlasCloud,lr as fromBaseten,On as fromBedrock,Wn as fromCerebras,or as fromCloudflareWorkersAI,Xn as fromDeepInfra,Un as fromDeepSeek,ur as fromFeatherless,Fn as fromFetch,Kn as fromFireworks,dr as fromFriendli,_n as fromGemini,Vn as fromGroq,Qn as fromHyperbolic,br as fromInferenceNet,xr as fromInfermatic,tr as fromLMStudio,gr as fromLambdaLabs,yr as fromLepton,hr as fromMiniMax,Hn as fromMistral,$n as fromMoonshot,sr as fromNebius,Zn as fromNovita,ir as fromNvidiaNIM,qn as fromOllama,Bn as fromOpenAI,$ as fromOpenAICompatible,Jn as fromOpenRouter,pr as fromParasail,Yn as fromPerplexity,cr as fromSambaNova,fr as fromSiliconFlow,_r as fromSnowflakeCortex,mr as fromStepFun,Gn as fromTogether,nr as fromVLLM,ar as fromVercelAIGateway,rr as fromXAI,er as fromZhipu,h as hasIssues,ee as isFallbackExhaustedError,m as isLLMError,b as isToolCallResult,te as metaRef,Rt as parseSseStream};
|
|
15
15
|
//# sourceMappingURL=index.js.map
|