murmur-rag 1.3.1 → 2.0.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.
Files changed (37) hide show
  1. package/README.md +7 -9
  2. package/dist/cdn/{anthropic-tw416spz.js → anthropic-1y1mb77z.js} +2 -2
  3. package/dist/cdn/chunk-nhd6pd73.js +1 -0
  4. package/dist/cdn/embed-3swpcbya.js +83 -0
  5. package/dist/cdn/{embed-yz75savs.js → embed-7xhp36fz.js} +3 -3
  6. package/dist/cdn/{embed-3am76qfd.js → embed-hhcax25m.js} +6 -6
  7. package/dist/cdn/{embed-cx1r66ch.js → embed-q03dhgpb.js} +5 -5
  8. package/dist/cdn/embed-s9zy3aav.js +10 -0
  9. package/dist/cdn/{embed-g0p6yc29.js → embed-wd4wcxtq.js} +2 -2
  10. package/dist/cdn/{embed-q81wdr1z.js → embed-zckjbrcx.js} +4 -4
  11. package/dist/cdn/{google-556tp13p.js → google-b4zxgp7g.js} +5 -5
  12. package/dist/cdn/index-ev3304hr.js +1 -0
  13. package/dist/cdn/{index-8r44b2wt.js → index-f5ctpc4w.js} +1 -1
  14. package/dist/cdn/index-k0v6as0z.js +1 -0
  15. package/dist/cdn/index-q38abctd.js +1 -0
  16. package/dist/cdn/{index-qpy1k923.js → index-tjxzgn54.js} +2 -2
  17. package/dist/cdn/{mistral-25w1nsx5.js → mistral-e1jxb6vy.js} +2 -2
  18. package/dist/cdn/{murmur-1a55et82.js → murmur-yjgc7apa.js} +3 -3
  19. package/dist/cdn/murmur.js +6 -6
  20. package/dist/cdn/{openai-compatible-sg25g0vj.js → openai-compatible-8byk6wkm.js} +2 -2
  21. package/dist/cdn/{openai-bjrbem49.js → openai-q9byakt1.js} +11 -11
  22. package/dist/cdn/retriever-3yz0vzz9.js +1 -0
  23. package/dist/cdn/{transformers.web-49m0ht4a.js → transformers.web-nr67a9j3.js} +14 -14
  24. package/dist/lib/chunks/{index-4ftk20yq.js → index-ekxks9vp.js} +17 -17
  25. package/dist/lib/embed.js +4 -4
  26. package/dist/lib/llm/index.js +0 -23
  27. package/dist/lib/widget/index.js +2 -2
  28. package/dist/types/llm/index.d.ts +0 -8
  29. package/dist/types/widget/session.d.ts +7 -7
  30. package/package.json +1 -1
  31. package/dist/cdn/chunk-xyp6nm65.js +0 -1
  32. package/dist/cdn/embed-50pfy67v.js +0 -83
  33. package/dist/cdn/embed-rjpq8psf.js +0 -10
  34. package/dist/cdn/index-a5j4aat5.js +0 -1
  35. package/dist/cdn/index-ft8r539a.js +0 -1
  36. package/dist/cdn/index-pjxy71n5.js +0 -1
  37. package/dist/cdn/retriever-06ybegpd.js +0 -1
@@ -1,4 +1,4 @@
1
- import{oe}from"./embed-rjpq8psf.js";import{ye,P,me,u,e,r,c,ie,o,t,U,l,y,i,n,k,T,d,j,M,it,ee,te,F,z,Me,C,R,W,a,s,h,g,ne,O,H,I,D,p,ft,un,E,Ce,Y}from"./embed-50pfy67v.js";function ce(m){return m.replace(/[_-]([a-z])/g,(f)=>f[1].toUpperCase())}function Ne(m,f){let b=ce(m);if(b!==m&&f?.[b]!=null)return b;return m}function be({rawName:m,providerOptions:f,warnings:b}){let _=ce(m);if(_!==m&&f?.[m]!=null)b.push({type:"deprecated",setting:`providerOptions key '${m}'`,message:`Use '${_}' instead.`})}var ge={errorSchema:t({error:t({message:e(),type:e().nullish(),param:ie().nullish(),code:l([e(),r()]).nullish()})}),errorToMessage:(m)=>m.error.message};function $e(m){if(m==null)return te();let f=m.prompt_tokens??0,b=m.completion_tokens??0,_=m.prompt_tokens_details?.cached_tokens??0,w=m.completion_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:f,noCache:f-_,cacheRead:_,cacheWrite:void 0},outputTokens:{total:b,text:Math.max(0,b-w),reasoning:w},raw:m}}function he(m){return m?.providerOptions?.openaiCompatible??{}}function Le(m){switch(m){case"audio/wav":return"wav";case"audio/mp3":case"audio/mpeg":return"mp3";default:return null}}function Ae(m,f){let b=he(m);switch(m.type){case"text":return{type:"text",text:m.text,...b};case"file":switch(m.data.type){case"reference":return{type:"file",file:{file_id:H({reference:m.data.reference,provider:f})},...b};case"text":throw new u({functionality:"text file parts"});case"url":case"data":{let _=z(m.mediaType);if(_==="image")return{type:"image_url",image_url:{url:m.data.type==="url"?m.data.url.toString():`data:${O({part:m})};base64,${M(m.data.data)}`},...b};if(_==="video")return{type:"video_url",video_url:{url:m.data.type==="url"?m.data.url.toString():`data:${O({part:m})};base64,${M(m.data.data)}`},...b};if(_==="audio"){if(m.data.type==="url")throw new u({functionality:"audio file parts with URLs"});let w=O({part:m}),A=Le(w);if(A===null)throw new u({functionality:`audio media type ${w}`});return{type:"input_audio",input_audio:{data:M(m.data.data),format:A},...b}}if(_==="application"){if(m.data.type==="url")throw new u({functionality:"PDF file parts with URLs"});let w=O({part:m});if(w!=="application/pdf")throw new u({functionality:`file part media type ${w}`});return{type:"file",file:{filename:m.filename??"document.pdf",file_data:`data:application/pdf;base64,${M(m.data.data)}`},...b}}if(_==="text")return{type:"text",text:m.data.type==="url"?m.data.url.toString():typeof m.data.data==="string"?new TextDecoder().decode(j(m.data.data)):new TextDecoder().decode(m.data.data),...b};throw new u({functionality:`file part media type ${m.mediaType}`})}}}}function Be(m,f){if(m.type==="custom")throw new u({functionality:"custom tool content parts"});return Ae(m,f)}function Ke(m,{provider:f="openaiCompatible",providerOptionsKey:b="google",supportsMultiPartToolContent:_=!1}={}){let w=[];for(let{role:A,content:N,...L}of m){let K=he({...L});switch(A){case"system":w.push({role:"system",content:N,...K});break;case"user":if(N.length===1&&N[0].type==="text"){w.push({role:"user",content:N[0].text,...he(N[0])});break}w.push({role:"user",content:N.map((q)=>Ae(q,f)),...K});break;case"assistant":{let q="",x="",v=[];for(let S of N){let Z=he(S);switch(S.type){case"text":q+=S.text;break;case"reasoning":x+=S.text;break;case"tool-call":{let J=S.providerOptions?.[b]?.thoughtSignature??S.providerOptions?.google?.thoughtSignature;v.push({id:S.toolCallId,type:"function",function:{name:S.toolName,arguments:JSON.stringify(S.input)},...Z,...J?{extra_content:{google:{thought_signature:String(J)}}}:{}});break}}}w.push({role:"assistant",content:v.length>0?q||null:q,...x.length>0?{reasoning_content:x}:{},tool_calls:v.length>0?v:void 0,...K});break}case"tool":for(let q of N){if(q.type==="tool-approval-response")continue;let x=q.output,v;switch(x.type){case"text":case"error-text":v=x.value;break;case"execution-denied":v=x.reason??"Tool call execution denied.";break;case"json":case"error-json":v=JSON.stringify(x.value);break;case"content":v=_?x.value.map((Z)=>Be(Z,f)):JSON.stringify(x.value)}let S=he(q);w.push({role:"tool",tool_call_id:q.toolCallId,content:v,...S})}break;default:throw Error(`Unsupported role: ${A}`)}}return w}function we({id:m,model:f,created:b}){return ee({id:m,model:f,created:b||void 0})}function xe(m){switch(m){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var pe=t({user:e().optional(),reasoningEffort:e().optional(),textVerbosity:e().optional(),strictJsonSchema:c().optional()});function Ve({tools:m,toolChoice:f}){m=m?.length?m:void 0;let b=[];if(m==null)return{tools:void 0,toolChoice:void 0,toolWarnings:b};let _=[];for(let A of m)if(A.type==="provider")b.push({type:"unsupported",feature:`provider-defined tool ${A.id}`});else _.push({type:"function",function:{name:A.name,description:A.description,parameters:A.inputSchema,...A.strict!=null?{strict:A.strict}:{}}});if(f==null)return{tools:_,toolChoice:void 0,toolWarnings:b};let w=f.type;switch(w){case"auto":case"none":case"required":return{tools:_,toolChoice:w,toolWarnings:b};case"tool":return{tools:_,toolChoice:{type:"function",function:{name:f.toolName}},toolWarnings:b};default:throw new u({functionality:`tool choice type: ${w}`})}}var Je=class m{static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.specificationVersion="v4",this.modelId=f,this.config=b;let _=b.errorStructure??ge;this.chunkSchema=We(_.errorSchema),this.failedResponseHandler=I(_),this.supportsStructuredOutputs=b.supportsStructuredOutputs??!1}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}get supportedUrls(){return this.config.supportedUrls?.()??{}}transformRequestBody(f,b){return this.config.transformRequestBody?.(f,b)??f}convertUsage(f){return this.config.convertUsage?.(f)??$e(f)}async getArgs({prompt:f,maxOutputTokens:b,temperature:_,topP:w,topK:A,frequencyPenalty:N,presencePenalty:L,reasoning:K,providerOptions:q,stopSequences:x,responseFormat:v,seed:S,toolChoice:Z,tools:J}){let G=[],se=await h({provider:"openai-compatible",providerOptions:q,schema:pe});if(se!=null)G.push({type:"deprecated",setting:"providerOptions key 'openai-compatible'",message:"Use 'openaiCompatible' instead."});be({rawName:this.providerOptionsName,providerOptions:q,warnings:G});let X=Object.assign(se??{},await h({provider:"openaiCompatible",providerOptions:q,schema:pe})??{},await h({provider:this.providerOptionsName,providerOptions:q,schema:pe})??{},await h({provider:ce(this.providerOptionsName),providerOptions:q,schema:pe})??{}),ae=X?.strictJsonSchema??!0;if(A!=null)G.push({type:"unsupported",feature:"topK"});if(v?.type==="json"&&v.schema!=null&&!this.supportsStructuredOutputs)G.push({type:"unsupported",feature:"responseFormat",details:"JSON response format schema is only supported with structuredOutputs"});let{tools:de,toolChoice:B,toolWarnings:V}=Ve({tools:J,toolChoice:Z}),Q=Ne(this.providerOptionsName,q);return{metadataKey:Q,args:{model:this.modelId,user:X.user,max_tokens:b,temperature:_,top_p:w,frequency_penalty:N,presence_penalty:L,response_format:v?.type==="json"?this.supportsStructuredOutputs===!0&&v.schema!=null?{type:"json_schema",json_schema:{schema:v.schema,strict:ae,name:v.name??"response",description:v.description}}:{type:"json_object"}:void 0,stop:x,seed:S,...Object.fromEntries(Object.entries({...q?.[this.providerOptionsName],...q?.[ce(this.providerOptionsName)]}).filter(([re])=>!Object.keys(pe.shape).includes(re))),reasoning_effort:X.reasoningEffort??(W(K)?K:void 0),verbosity:X.textVerbosity,messages:Ke(f,{provider:this.providerOptionsName,providerOptionsKey:Q,supportsMultiPartToolContent:this.config.supportsMultiPartToolContent}),tools:de,tool_choice:B},warnings:[...G,...V]}}async doGenerate(f){let{args:b,warnings:_,metadataKey:w}=await this.getArgs({...f}),A=this.transformRequestBody(b,_),N=JSON.stringify(A),{responseHeaders:L,value:K,rawValue:q}=await g({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:A,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:p(De),abortSignal:f.abortSignal,fetch:this.config.fetch}),x=K.choices[0];if(x==null)throw new P({data:q,message:"Response did not contain any choices."});let v=[],S=x.message.reasoning_content??x.message.reasoning;if(S!=null&&S.length>0)v.push({type:"reasoning",text:S});if(v.push(...Ie(x.message.content)),x.message.tool_calls!=null)for(let G of x.message.tool_calls){let se=G.extra_content?.google?.thought_signature;v.push({type:"tool-call",toolCallId:G.id||C(),toolName:G.function.name,input:G.function.arguments,...se?{providerMetadata:{[w]:{thoughtSignature:se}}}:{}})}let Z={[w]:{},...await this.config.metadataExtractor?.extractMetadata?.({parsedBody:q})},J=K.usage?.completion_tokens_details;if(J?.accepted_prediction_tokens!=null)Z[w].acceptedPredictionTokens=J?.accepted_prediction_tokens;if(J?.rejected_prediction_tokens!=null)Z[w].rejectedPredictionTokens=J?.rejected_prediction_tokens;return{content:v,finishReason:{unified:xe(x.finish_reason),raw:x.finish_reason??void 0},usage:this.convertUsage(K.usage),providerMetadata:Z,request:{body:N},response:{...we(K),headers:L,body:q},warnings:_}}async doStream(f){let{args:b,warnings:_,metadataKey:w}=await this.getArgs({...f}),A=this.transformRequestBody({...b,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},_),N=this.config.metadataExtractor?.createStreamExtractor(),{responseHeaders:L,value:K}=await g({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:A,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:D(this.chunkSchema),abortSignal:f.abortSignal,fetch:this.config.fetch}),q=w,x,v=new Map,S=new Set,Z=(B)=>{let V=B.index;if(V==null||S.has(V)){x.processDelta(B);return}let Q=v.get(V);if(Q==null)Q={id:B.id??null,bufferedArguments:"",extraContent:B.extra_content??null},v.set(V,Q);else{if(Q.id==null&&B.id!=null)Q.id=B.id;if(Q.extraContent==null&&B.extra_content!=null)Q.extraContent=B.extra_content}let re=B.function?.arguments;if(re!=null)Q.bufferedArguments+=re;let ue=B.function?.name;if(ue!=null){let fe={index:V,id:Q.id,function:{name:ue,arguments:Q.bufferedArguments},extra_content:Q.extraContent??void 0};x.processDelta(fe),v.delete(V),S.add(V)}},J,G=void 0,se=!1,X=!1,ae=!1,de=(B)=>this.convertUsage(B);return{stream:K.pipeThrough(new TransformStream({start(B){x=new Ce(B,{generateId:C,extractMetadata:(V)=>{let Q=V.extra_content?.google?.thought_signature;return Q?{[q]:{thoughtSignature:Q}}:void 0},buildToolCallProviderMetadata:(V)=>V}),B.enqueue({type:"stream-start",warnings:_})},transform(B,V){if(f.includeRawChunks)V.enqueue({type:"raw",rawValue:B.rawValue});if(!B.success){J={unified:"error",raw:void 0},V.enqueue({type:"error",error:B.error});return}if(N?.processChunk(B.rawValue),"error"in B.value){J={unified:"error",raw:void 0},V.enqueue({type:"error",error:B.value.error});return}let Q=B.value;if(!se){let le=we(Q);if(Object.values(le).some(Boolean))se=!0,V.enqueue({type:"response-metadata",...le})}if(Q.usage!=null)G=Q.usage;let re=Q.choices[0];if(re?.finish_reason!=null)J={unified:xe(re.finish_reason),raw:re.finish_reason??void 0};if(re?.delta==null)return;let ue=re.delta,fe=(le)=>{if(ae)V.enqueue({type:"text-end",id:"txt-0"}),ae=!1;if(!X)V.enqueue({type:"reasoning-start",id:"reasoning-0"}),X=!0;V.enqueue({type:"reasoning-delta",id:"reasoning-0",delta:le})},Pe=(le)=>{if(X)V.enqueue({type:"reasoning-end",id:"reasoning-0"}),X=!1;if(!ae)V.enqueue({type:"text-start",id:"txt-0"}),ae=!0;V.enqueue({type:"text-delta",id:"txt-0",delta:le})},ve=ue.reasoning_content??ue.reasoning;if(ve)fe(ve);for(let le of Ie(ue.content))if(le.type==="reasoning")fe(le.text);else Pe(le.text);if(ue.tool_calls!=null&&ue.tool_calls.length>0){if(X)V.enqueue({type:"reasoning-end",id:"reasoning-0"}),X=!1;for(let le of ue.tool_calls)Z(le)}},flush(B){if(X)B.enqueue({type:"reasoning-end",id:"reasoning-0"});if(ae)B.enqueue({type:"text-end",id:"txt-0"});for(let[Q,re]of v)x.processDelta({index:Q,id:re.id,function:{arguments:re.bufferedArguments}});if(v.clear(),x.flush(),J==null)J={unified:"error",raw:void 0},B.enqueue({type:"error",error:new P({data:void 0,message:"Response stream ended without a finish reason."})});let V={[q]:{},...N?.buildMetadata()};if(G?.completion_tokens_details?.accepted_prediction_tokens!=null)V[q].acceptedPredictionTokens=G?.completion_tokens_details?.accepted_prediction_tokens;if(G?.completion_tokens_details?.rejected_prediction_tokens!=null)V[q].rejectedPredictionTokens=G?.completion_tokens_details?.rejected_prediction_tokens;B.enqueue({type:"finish",finishReason:J,usage:de(G),providerMetadata:V})}})),request:{body:A},response:{headers:L}}}},Ue=()=>U({prompt_tokens:r().nullish(),completion_tokens:r().nullish(),total_tokens:r().nullish(),prompt_tokens_details:U({cached_tokens:r().nullish()}).nullish(),completion_tokens_details:U({reasoning_tokens:r().nullish(),accepted_prediction_tokens:r().nullish(),rejected_prediction_tokens:r().nullish()}).nullish()}).nullish(),qe=()=>l([e(),o(U({type:e()}))]).nullish();function Ie(m){if(m==null)return[];if(typeof m==="string")return m.length>0?[{type:"text",text:m}]:[];let f=[];for(let b of m)if(b.type==="text"&&typeof b.text==="string"){if(b.text.length>0)f.push({type:"text",text:b.text})}else if(b.type==="thinking"&&Array.isArray(b.thinking)){let _=b.thinking.filter((w)=>w!=null&&typeof w==="object"&&("type"in w)&&w.type==="text"&&("text"in w)&&typeof w.text==="string").map((w)=>w.text).join("");if(_.length>0)f.push({type:"reasoning",text:_})}return f}var De=a(()=>s(U({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({message:t({role:n("assistant").nullish(),content:qe(),reasoning_content:e().nullish(),reasoning:e().nullish(),tool_calls:o(t({id:e().nullish(),function:t({name:e(),arguments:e()}),extra_content:t({google:t({thought_signature:e().nullish()}).nullish()}).nullish()})).nullish()}),finish_reason:e().nullish()})),usage:Ue()}))),Fe=()=>U({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({delta:t({role:i(["assistant",""]).nullish(),content:qe(),reasoning_content:e().nullish(),reasoning:e().nullish(),tool_calls:o(t({index:r().nullish(),id:e().nullish(),function:t({name:e().nullish(),arguments:e().nullish()}),extra_content:t({google:t({thought_signature:e().nullish()}).nullish()}).nullish()})).nullish()}).nullish(),finish_reason:e().nullish()})),usage:Ue()}),We=(m)=>l([Fe(),m]);function Oe(m){if(m==null)return te();let f=m.prompt_tokens??0,b=m.completion_tokens??0;return{inputTokens:{total:f,noCache:f,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:b,text:b,reasoning:void 0},raw:m}}function ze({prompt:m,user:f="user",assistant:b="assistant"}){let _="";if(m[0].role==="system")_+=`${m[0].content}
1
+ import{oe}from"./embed-s9zy3aav.js";import{ye,P,me,u,e,r,c,ie,o,t,U,l,y,i,n,k,T,d,j,M,st,ee,te,F,z,Me,C,R,W,a,s,h,g,ne,O,H,I,D,p,pt,an,E,Ce,Y}from"./embed-3swpcbya.js";function ce(m){return m.replace(/[_-]([a-z])/g,(f)=>f[1].toUpperCase())}function Ne(m,f){let b=ce(m);if(b!==m&&f?.[b]!=null)return b;return m}function be({rawName:m,providerOptions:f,warnings:b}){let _=ce(m);if(_!==m&&f?.[m]!=null)b.push({type:"deprecated",setting:`providerOptions key '${m}'`,message:`Use '${_}' instead.`})}var ge={errorSchema:t({error:t({message:e(),type:e().nullish(),param:ie().nullish(),code:l([e(),r()]).nullish()})}),errorToMessage:(m)=>m.error.message};function $e(m){if(m==null)return te();let f=m.prompt_tokens??0,b=m.completion_tokens??0,_=m.prompt_tokens_details?.cached_tokens??0,w=m.completion_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:f,noCache:f-_,cacheRead:_,cacheWrite:void 0},outputTokens:{total:b,text:Math.max(0,b-w),reasoning:w},raw:m}}function he(m){return m?.providerOptions?.openaiCompatible??{}}function Le(m){switch(m){case"audio/wav":return"wav";case"audio/mp3":case"audio/mpeg":return"mp3";default:return null}}function Ae(m,f){let b=he(m);switch(m.type){case"text":return{type:"text",text:m.text,...b};case"file":switch(m.data.type){case"reference":return{type:"file",file:{file_id:H({reference:m.data.reference,provider:f})},...b};case"text":throw new u({functionality:"text file parts"});case"url":case"data":{let _=z(m.mediaType);if(_==="image")return{type:"image_url",image_url:{url:m.data.type==="url"?m.data.url.toString():`data:${O({part:m})};base64,${M(m.data.data)}`},...b};if(_==="video")return{type:"video_url",video_url:{url:m.data.type==="url"?m.data.url.toString():`data:${O({part:m})};base64,${M(m.data.data)}`},...b};if(_==="audio"){if(m.data.type==="url")throw new u({functionality:"audio file parts with URLs"});let w=O({part:m}),A=Le(w);if(A===null)throw new u({functionality:`audio media type ${w}`});return{type:"input_audio",input_audio:{data:M(m.data.data),format:A},...b}}if(_==="application"){if(m.data.type==="url")throw new u({functionality:"PDF file parts with URLs"});let w=O({part:m});if(w!=="application/pdf")throw new u({functionality:`file part media type ${w}`});return{type:"file",file:{filename:m.filename??"document.pdf",file_data:`data:application/pdf;base64,${M(m.data.data)}`},...b}}if(_==="text")return{type:"text",text:m.data.type==="url"?m.data.url.toString():typeof m.data.data==="string"?new TextDecoder().decode(j(m.data.data)):new TextDecoder().decode(m.data.data),...b};throw new u({functionality:`file part media type ${m.mediaType}`})}}}}function Be(m,f){if(m.type==="custom")throw new u({functionality:"custom tool content parts"});return Ae(m,f)}function Ke(m,{provider:f="openaiCompatible",providerOptionsKey:b="google",supportsMultiPartToolContent:_=!1}={}){let w=[];for(let{role:A,content:N,...L}of m){let K=he({...L});switch(A){case"system":w.push({role:"system",content:N,...K});break;case"user":if(N.length===1&&N[0].type==="text"){w.push({role:"user",content:N[0].text,...he(N[0])});break}w.push({role:"user",content:N.map((q)=>Ae(q,f)),...K});break;case"assistant":{let q="",x="",v=[];for(let S of N){let Z=he(S);switch(S.type){case"text":q+=S.text;break;case"reasoning":x+=S.text;break;case"tool-call":{let J=S.providerOptions?.[b]?.thoughtSignature??S.providerOptions?.google?.thoughtSignature;v.push({id:S.toolCallId,type:"function",function:{name:S.toolName,arguments:JSON.stringify(S.input)},...Z,...J?{extra_content:{google:{thought_signature:String(J)}}}:{}});break}}}w.push({role:"assistant",content:v.length>0?q||null:q,...x.length>0?{reasoning_content:x}:{},tool_calls:v.length>0?v:void 0,...K});break}case"tool":for(let q of N){if(q.type==="tool-approval-response")continue;let x=q.output,v;switch(x.type){case"text":case"error-text":v=x.value;break;case"execution-denied":v=x.reason??"Tool call execution denied.";break;case"json":case"error-json":v=JSON.stringify(x.value);break;case"content":v=_?x.value.map((Z)=>Be(Z,f)):JSON.stringify(x.value)}let S=he(q);w.push({role:"tool",tool_call_id:q.toolCallId,content:v,...S})}break;default:throw Error(`Unsupported role: ${A}`)}}return w}function we({id:m,model:f,created:b}){return ee({id:m,model:f,created:b||void 0})}function xe(m){switch(m){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var pe=t({user:e().optional(),reasoningEffort:e().optional(),textVerbosity:e().optional(),strictJsonSchema:c().optional()});function Ve({tools:m,toolChoice:f}){m=m?.length?m:void 0;let b=[];if(m==null)return{tools:void 0,toolChoice:void 0,toolWarnings:b};let _=[];for(let A of m)if(A.type==="provider")b.push({type:"unsupported",feature:`provider-defined tool ${A.id}`});else _.push({type:"function",function:{name:A.name,description:A.description,parameters:A.inputSchema,...A.strict!=null?{strict:A.strict}:{}}});if(f==null)return{tools:_,toolChoice:void 0,toolWarnings:b};let w=f.type;switch(w){case"auto":case"none":case"required":return{tools:_,toolChoice:w,toolWarnings:b};case"tool":return{tools:_,toolChoice:{type:"function",function:{name:f.toolName}},toolWarnings:b};default:throw new u({functionality:`tool choice type: ${w}`})}}var Je=class m{static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.specificationVersion="v4",this.modelId=f,this.config=b;let _=b.errorStructure??ge;this.chunkSchema=We(_.errorSchema),this.failedResponseHandler=I(_),this.supportsStructuredOutputs=b.supportsStructuredOutputs??!1}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}get supportedUrls(){return this.config.supportedUrls?.()??{}}transformRequestBody(f,b){return this.config.transformRequestBody?.(f,b)??f}convertUsage(f){return this.config.convertUsage?.(f)??$e(f)}async getArgs({prompt:f,maxOutputTokens:b,temperature:_,topP:w,topK:A,frequencyPenalty:N,presencePenalty:L,reasoning:K,providerOptions:q,stopSequences:x,responseFormat:v,seed:S,toolChoice:Z,tools:J}){let G=[],se=await h({provider:"openai-compatible",providerOptions:q,schema:pe});if(se!=null)G.push({type:"deprecated",setting:"providerOptions key 'openai-compatible'",message:"Use 'openaiCompatible' instead."});be({rawName:this.providerOptionsName,providerOptions:q,warnings:G});let X=Object.assign(se??{},await h({provider:"openaiCompatible",providerOptions:q,schema:pe})??{},await h({provider:this.providerOptionsName,providerOptions:q,schema:pe})??{},await h({provider:ce(this.providerOptionsName),providerOptions:q,schema:pe})??{}),ae=X?.strictJsonSchema??!0;if(A!=null)G.push({type:"unsupported",feature:"topK"});if(v?.type==="json"&&v.schema!=null&&!this.supportsStructuredOutputs)G.push({type:"unsupported",feature:"responseFormat",details:"JSON response format schema is only supported with structuredOutputs"});let{tools:de,toolChoice:B,toolWarnings:V}=Ve({tools:J,toolChoice:Z}),Q=Ne(this.providerOptionsName,q);return{metadataKey:Q,args:{model:this.modelId,user:X.user,max_tokens:b,temperature:_,top_p:w,frequency_penalty:N,presence_penalty:L,response_format:v?.type==="json"?this.supportsStructuredOutputs===!0&&v.schema!=null?{type:"json_schema",json_schema:{schema:v.schema,strict:ae,name:v.name??"response",description:v.description}}:{type:"json_object"}:void 0,stop:x,seed:S,...Object.fromEntries(Object.entries({...q?.[this.providerOptionsName],...q?.[ce(this.providerOptionsName)]}).filter(([re])=>!Object.keys(pe.shape).includes(re))),reasoning_effort:X.reasoningEffort??(W(K)?K:void 0),verbosity:X.textVerbosity,messages:Ke(f,{provider:this.providerOptionsName,providerOptionsKey:Q,supportsMultiPartToolContent:this.config.supportsMultiPartToolContent}),tools:de,tool_choice:B},warnings:[...G,...V]}}async doGenerate(f){let{args:b,warnings:_,metadataKey:w}=await this.getArgs({...f}),A=this.transformRequestBody(b,_),N=JSON.stringify(A),{responseHeaders:L,value:K,rawValue:q}=await g({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:A,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:p(De),abortSignal:f.abortSignal,fetch:this.config.fetch}),x=K.choices[0];if(x==null)throw new P({data:q,message:"Response did not contain any choices."});let v=[],S=x.message.reasoning_content??x.message.reasoning;if(S!=null&&S.length>0)v.push({type:"reasoning",text:S});if(v.push(...Ie(x.message.content)),x.message.tool_calls!=null)for(let G of x.message.tool_calls){let se=G.extra_content?.google?.thought_signature;v.push({type:"tool-call",toolCallId:G.id||C(),toolName:G.function.name,input:G.function.arguments,...se?{providerMetadata:{[w]:{thoughtSignature:se}}}:{}})}let Z={[w]:{},...await this.config.metadataExtractor?.extractMetadata?.({parsedBody:q})},J=K.usage?.completion_tokens_details;if(J?.accepted_prediction_tokens!=null)Z[w].acceptedPredictionTokens=J?.accepted_prediction_tokens;if(J?.rejected_prediction_tokens!=null)Z[w].rejectedPredictionTokens=J?.rejected_prediction_tokens;return{content:v,finishReason:{unified:xe(x.finish_reason),raw:x.finish_reason??void 0},usage:this.convertUsage(K.usage),providerMetadata:Z,request:{body:N},response:{...we(K),headers:L,body:q},warnings:_}}async doStream(f){let{args:b,warnings:_,metadataKey:w}=await this.getArgs({...f}),A=this.transformRequestBody({...b,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},_),N=this.config.metadataExtractor?.createStreamExtractor(),{responseHeaders:L,value:K}=await g({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:A,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:D(this.chunkSchema),abortSignal:f.abortSignal,fetch:this.config.fetch}),q=w,x,v=new Map,S=new Set,Z=(B)=>{let V=B.index;if(V==null||S.has(V)){x.processDelta(B);return}let Q=v.get(V);if(Q==null)Q={id:B.id??null,bufferedArguments:"",extraContent:B.extra_content??null},v.set(V,Q);else{if(Q.id==null&&B.id!=null)Q.id=B.id;if(Q.extraContent==null&&B.extra_content!=null)Q.extraContent=B.extra_content}let re=B.function?.arguments;if(re!=null)Q.bufferedArguments+=re;let ue=B.function?.name;if(ue!=null){let fe={index:V,id:Q.id,function:{name:ue,arguments:Q.bufferedArguments},extra_content:Q.extraContent??void 0};x.processDelta(fe),v.delete(V),S.add(V)}},J,G=void 0,se=!1,X=!1,ae=!1,de=(B)=>this.convertUsage(B);return{stream:K.pipeThrough(new TransformStream({start(B){x=new Ce(B,{generateId:C,extractMetadata:(V)=>{let Q=V.extra_content?.google?.thought_signature;return Q?{[q]:{thoughtSignature:Q}}:void 0},buildToolCallProviderMetadata:(V)=>V}),B.enqueue({type:"stream-start",warnings:_})},transform(B,V){if(f.includeRawChunks)V.enqueue({type:"raw",rawValue:B.rawValue});if(!B.success){J={unified:"error",raw:void 0},V.enqueue({type:"error",error:B.error});return}if(N?.processChunk(B.rawValue),"error"in B.value){J={unified:"error",raw:void 0},V.enqueue({type:"error",error:B.value.error});return}let Q=B.value;if(!se){let le=we(Q);if(Object.values(le).some(Boolean))se=!0,V.enqueue({type:"response-metadata",...le})}if(Q.usage!=null)G=Q.usage;let re=Q.choices[0];if(re?.finish_reason!=null)J={unified:xe(re.finish_reason),raw:re.finish_reason??void 0};if(re?.delta==null)return;let ue=re.delta,fe=(le)=>{if(ae)V.enqueue({type:"text-end",id:"txt-0"}),ae=!1;if(!X)V.enqueue({type:"reasoning-start",id:"reasoning-0"}),X=!0;V.enqueue({type:"reasoning-delta",id:"reasoning-0",delta:le})},Pe=(le)=>{if(X)V.enqueue({type:"reasoning-end",id:"reasoning-0"}),X=!1;if(!ae)V.enqueue({type:"text-start",id:"txt-0"}),ae=!0;V.enqueue({type:"text-delta",id:"txt-0",delta:le})},ve=ue.reasoning_content??ue.reasoning;if(ve)fe(ve);for(let le of Ie(ue.content))if(le.type==="reasoning")fe(le.text);else Pe(le.text);if(ue.tool_calls!=null&&ue.tool_calls.length>0){if(X)V.enqueue({type:"reasoning-end",id:"reasoning-0"}),X=!1;for(let le of ue.tool_calls)Z(le)}},flush(B){if(X)B.enqueue({type:"reasoning-end",id:"reasoning-0"});if(ae)B.enqueue({type:"text-end",id:"txt-0"});for(let[Q,re]of v)x.processDelta({index:Q,id:re.id,function:{arguments:re.bufferedArguments}});if(v.clear(),x.flush(),J==null)J={unified:"error",raw:void 0},B.enqueue({type:"error",error:new P({data:void 0,message:"Response stream ended without a finish reason."})});let V={[q]:{},...N?.buildMetadata()};if(G?.completion_tokens_details?.accepted_prediction_tokens!=null)V[q].acceptedPredictionTokens=G?.completion_tokens_details?.accepted_prediction_tokens;if(G?.completion_tokens_details?.rejected_prediction_tokens!=null)V[q].rejectedPredictionTokens=G?.completion_tokens_details?.rejected_prediction_tokens;B.enqueue({type:"finish",finishReason:J,usage:de(G),providerMetadata:V})}})),request:{body:A},response:{headers:L}}}},Ue=()=>U({prompt_tokens:r().nullish(),completion_tokens:r().nullish(),total_tokens:r().nullish(),prompt_tokens_details:U({cached_tokens:r().nullish()}).nullish(),completion_tokens_details:U({reasoning_tokens:r().nullish(),accepted_prediction_tokens:r().nullish(),rejected_prediction_tokens:r().nullish()}).nullish()}).nullish(),qe=()=>l([e(),o(U({type:e()}))]).nullish();function Ie(m){if(m==null)return[];if(typeof m==="string")return m.length>0?[{type:"text",text:m}]:[];let f=[];for(let b of m)if(b.type==="text"&&typeof b.text==="string"){if(b.text.length>0)f.push({type:"text",text:b.text})}else if(b.type==="thinking"&&Array.isArray(b.thinking)){let _=b.thinking.filter((w)=>w!=null&&typeof w==="object"&&("type"in w)&&w.type==="text"&&("text"in w)&&typeof w.text==="string").map((w)=>w.text).join("");if(_.length>0)f.push({type:"reasoning",text:_})}return f}var De=a(()=>s(U({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({message:t({role:n("assistant").nullish(),content:qe(),reasoning_content:e().nullish(),reasoning:e().nullish(),tool_calls:o(t({id:e().nullish(),function:t({name:e(),arguments:e()}),extra_content:t({google:t({thought_signature:e().nullish()}).nullish()}).nullish()})).nullish()}),finish_reason:e().nullish()})),usage:Ue()}))),Fe=()=>U({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({delta:t({role:i(["assistant",""]).nullish(),content:qe(),reasoning_content:e().nullish(),reasoning:e().nullish(),tool_calls:o(t({index:r().nullish(),id:e().nullish(),function:t({name:e().nullish(),arguments:e().nullish()}),extra_content:t({google:t({thought_signature:e().nullish()}).nullish()}).nullish()})).nullish()}).nullish(),finish_reason:e().nullish()})),usage:Ue()}),We=(m)=>l([Fe(),m]);function Oe(m){if(m==null)return te();let f=m.prompt_tokens??0,b=m.completion_tokens??0;return{inputTokens:{total:f,noCache:f,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:b,text:b,reasoning:void 0},raw:m}}function ze({prompt:m,user:f="user",assistant:b="assistant"}){let _="";if(m[0].role==="system")_+=`${m[0].content}
2
2
 
3
3
  `,m=m.slice(1);for(let{role:w,content:A}of m)switch(w){case"system":throw new ye({message:`Unexpected system message in prompt: ${A}`,prompt:m});case"user":{let N=A.map((L)=>{switch(L.type){case"text":return L.text}}).filter(Boolean).join("");_+=`${f}:
4
4
  ${N}
@@ -8,4 +8,4 @@ ${N}
8
8
 
9
9
  `;break}case"tool":throw new u({functionality:"tool messages"});default:throw Error(`Unsupported role: ${w}`)}return _+=`${b}:
10
10
  `,{prompt:_,stopSequences:[`
11
- ${f}:`]}}function ke(m){switch(m){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var Se=a(()=>s(t({echo:c().optional(),logitBias:y(e(),r()).optional(),suffix:e().optional(),user:e().optional()}))),Ge=class m{static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.specificationVersion="v4",this.modelId=f,this.config=b;let _=b.errorStructure??ge;this.chunkSchema=Qe(_.errorSchema),this.failedResponseHandler=I(_)}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}get supportedUrls(){return this.config.supportedUrls?.()??{}}async getArgs({prompt:f,maxOutputTokens:b,temperature:_,topP:w,topK:A,frequencyPenalty:N,presencePenalty:L,stopSequences:K,responseFormat:q,seed:x,providerOptions:v,tools:S,toolChoice:Z}){let J=[];be({rawName:this.providerOptionsName,providerOptions:v,warnings:J});let G=Object.assign(await h({provider:this.providerOptionsName,providerOptions:v,schema:Se})??{},await h({provider:ce(this.providerOptionsName),providerOptions:v,schema:Se})??{});if(A!=null)J.push({type:"unsupported",feature:"topK"});if(S?.length)J.push({type:"unsupported",feature:"tools"});if(Z!=null)J.push({type:"unsupported",feature:"toolChoice"});if(q!=null&&q.type!=="text")J.push({type:"unsupported",feature:"responseFormat",details:"JSON response format is not supported."});let{prompt:se,stopSequences:X}=ze({prompt:f}),ae=[...X??[],...K??[]];return{args:{model:this.modelId,echo:G.echo,logit_bias:G.logitBias,suffix:G.suffix,user:G.user,max_tokens:b,temperature:_,top_p:w,frequency_penalty:N,presence_penalty:L,seed:x,...v?.[this.providerOptionsName],...v?.[ce(this.providerOptionsName)],prompt:se,stop:ae.length>0?ae:void 0},warnings:J}}async doGenerate(f){let{args:b,warnings:_}=await this.getArgs(f),{responseHeaders:w,value:A,rawValue:N}=await g({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:b,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:p(Ze),abortSignal:f.abortSignal,fetch:this.config.fetch}),L=A.choices[0],K=[];if(L.text!=null&&L.text.length>0)K.push({type:"text",text:L.text});return{content:K,usage:Oe(A.usage),finishReason:{unified:ke(L.finish_reason),raw:L.finish_reason},request:{body:b},response:{...ee(A),headers:w,body:N},warnings:_}}async doStream(f){let{args:b,warnings:_}=await this.getArgs(f),w={...b,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},{responseHeaders:A,value:N}=await g({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:w,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:D(this.chunkSchema),abortSignal:f.abortSignal,fetch:this.config.fetch}),L={unified:"other",raw:void 0},K=void 0,q=!0;return{stream:N.pipeThrough(new TransformStream({start(x){x.enqueue({type:"stream-start",warnings:_})},transform(x,v){if(f.includeRawChunks)v.enqueue({type:"raw",rawValue:x.rawValue});if(!x.success){L={unified:"error",raw:void 0},v.enqueue({type:"error",error:x.error});return}let S=x.value;if("error"in S){L={unified:"error",raw:void 0},v.enqueue({type:"error",error:S.error});return}if(q)q=!1,v.enqueue({type:"response-metadata",...ee(S)}),v.enqueue({type:"text-start",id:"0"});if(S.usage!=null)K=S.usage;let Z=S.choices[0];if(Z?.finish_reason!=null)L={unified:ke(Z.finish_reason),raw:Z.finish_reason??void 0};if(Z?.text!=null)v.enqueue({type:"text-delta",id:"0",delta:Z.text})},flush(x){if(!q)x.enqueue({type:"text-end",id:"0"});x.enqueue({type:"finish",finishReason:L,usage:Oe(K)})}})),request:{body:w},response:{headers:A}}}},Ee=()=>U({prompt_tokens:r(),completion_tokens:r(),total_tokens:r()}),Ze=a(()=>s(t({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({text:e(),finish_reason:e()})),usage:Ee().nullish()}))),Qe=(m)=>l([t({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({text:e(),finish_reason:e().nullish(),index:r()})),usage:Ee().nullish()}),m]),_e=a(()=>s(t({dimensions:r().optional(),user:e().optional()}))),Xe=class m{get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return this.config.maxEmbeddingsPerCall??2048}get supportsParallelCalls(){return this.config.supportsParallelCalls??!0}static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.specificationVersion="v4",this.modelId=f,this.config=b}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}async doEmbed({values:f,dimensions:b,headers:_,abortSignal:w,providerOptions:A}){let N=[],L=await h({provider:"openai-compatible",providerOptions:A,schema:_e});if(L!=null)N.push({type:"deprecated",setting:"providerOptions key 'openai-compatible'",message:"Use 'openaiCompatible' instead."});be({rawName:this.providerOptionsName,providerOptions:A,warnings:N});let K=Object.assign(L??{},await h({provider:"openaiCompatible",providerOptions:A,schema:_e})??{},await h({provider:this.providerOptionsName,providerOptions:A,schema:_e})??{});if(f.length>this.maxEmbeddingsPerCall)throw new me({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:f});let{responseHeaders:q,value:x,rawValue:v}=await g({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:d(this.config.headers?.(),_),body:{model:this.modelId,input:f,encoding_format:"float",dimensions:K.dimensions??b,user:K.user},failedResponseHandler:I(this.config.errorStructure??ge),successfulResponseHandler:p(Ye),abortSignal:w,fetch:this.config.fetch});return{warnings:N,embeddings:x.data.map((S)=>S.embedding),usage:x.usage?{tokens:x.usage.prompt_tokens}:void 0,providerMetadata:x.providerMetadata,response:{headers:q,body:v}}}},Ye=a(()=>s(t({data:o(t({embedding:o(r())})),usage:t({prompt_tokens:r()}).nullish(),providerMetadata:y(e(),y(e(),ie())).optional()}))),et=class m{get provider(){return this.config.provider}get providerOptionsKey(){return this.config.provider.split(".")[0].trim()}static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.modelId=f,this.config=b,this.specificationVersion="v4",this.maxImagesPerCall=10,this.supportsFileInputs=void 0,this.supportsMaskInputs=void 0}getArgs(f,b){return be({rawName:this.providerOptionsKey,providerOptions:f,warnings:b}),{...f[this.providerOptionsKey],...f[ce(this.providerOptionsKey)]}}async doGenerate({prompt:f,n:b,size:_,aspectRatio:w,seed:A,providerOptions:N,headers:L,abortSignal:K,files:q,mask:x}){let v=[];if(w!=null)v.push({type:"unsupported",feature:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."});if(A!=null)v.push({type:"unsupported",feature:"seed"});let S=this.config._internal?.currentDate?.()??new Date,Z=this.getArgs(N,v),J=q!=null&&q.length>0,G=this.config.url({path:J?"/images/edits":"/images/generations",modelId:this.modelId}),se=d(this.config.headers?.(),L);if(J){let{value:de,responseHeaders:B}=await ne({url:G,headers:se,formData:it({model:this.modelId,prompt:f,image:await Promise.all(q.map((V)=>Te(V))),mask:x!=null?await Te(x):void 0,n:b,size:_,...Z}),failedResponseHandler:I(this.config.errorStructure??ge),successfulResponseHandler:p(je),abortSignal:K,fetch:this.config.fetch});return{images:await this.getImages(de.data,{url:G,headers:se,abortSignal:K}),warnings:v,usage:Re(de.usage),response:{timestamp:S,modelId:this.modelId,headers:B}}}let{value:X,responseHeaders:ae}=await g({url:G,headers:se,body:{model:this.modelId,prompt:f,n:b,size:_,...Z},failedResponseHandler:I(this.config.errorStructure??ge),successfulResponseHandler:p(je),abortSignal:K,fetch:this.config.fetch});return{images:await this.getImages(X.data,{url:G,headers:se,abortSignal:K}),warnings:v,usage:Re(X.usage),response:{timestamp:S,modelId:this.modelId,headers:ae}}}async getImages(f,b){if(f.every((_)=>_.b64_json!=null))return f.map((_)=>_.b64_json);return Promise.all(f.map(async(_)=>{if(_.b64_json!=null)return j(_.b64_json);if(_.url==null)throw new P({data:_,message:"Expected url in the image response"});let{value:w}=await R({url:_.url,validateUrl:!0,trustedOrigin:b.url,credentialedOrigin:b.url,headers:b.headers,abortSignal:b.abortSignal,fetch:this.config.fetch,successfulResponseHandler:ft(),failedResponseHandler:un()});return w}))}};function Re(m){return m==null?void 0:{inputTokens:m.input_tokens??void 0,outputTokens:m.output_tokens??void 0,totalTokens:m.total_tokens??void 0}}var je=a(()=>s(t({data:o(t({b64_json:e().nullish(),url:e().nullish()}).refine((m)=>m.b64_json!=null||m.url!=null,{message:"Expected b64_json or url in the image response"})),usage:t({input_tokens:r().nullish(),output_tokens:r().nullish(),total_tokens:r().nullish()}).nullish()})));async function Te(m){if(m.type==="url")return Me(m.url);let f=m.data instanceof Uint8Array?m.data:j(m.data);return new Blob([f],{type:m.mediaType})}var tt="3.0.80";function He(m){let f=Y(m.baseURL),b=m.name,_={...m.apiKey&&{Authorization:`Bearer ${m.apiKey}`},...m.headers},w=()=>F(_,`ai-sdk-openai-compatible/${tt}`),A=(S)=>({provider:`${b}.${S}`,url:({path:Z})=>{let J=new URL(`${f}${Z}`);if(m.queryParams)J.search=new URLSearchParams(m.queryParams).toString();return J.toString()},headers:w,fetch:m.fetch}),N=(S)=>L(S),L=(S)=>new Je(S,{...A("chat"),includeUsage:m.includeUsage,supportsStructuredOutputs:m.supportsStructuredOutputs,supportsMultiPartToolContent:m.supportsMultiPartToolContent,supportedUrls:m.supportedUrls,transformRequestBody:m.transformRequestBody,metadataExtractor:m.metadataExtractor,convertUsage:m.convertUsage}),K=(S)=>new Ge(S,{...A("completion"),includeUsage:m.includeUsage}),q=(S)=>new Xe(S,{...A("embedding")}),x=(S)=>new et(S,A("image")),v=(S)=>N(S);return v.specificationVersion="v4",v.languageModel=N,v.chatModel=L,v.completionModel=K,v.embeddingModel=q,v.textEmbeddingModel=q,v.imageModel=x,v}var nt=(m)=>{if(!m.baseURL)throw Error("This provider has no API URL. Select it again in the settings or configure a custom endpoint.");return He({name:"openai-compatible",baseURL:m.baseURL,apiKey:m.apiKey,headers:m.headers,...m.fetch&&{fetch:m.fetch},includeUsage:!0,supportsStructuredOutputs:!0,transformRequestBody:(f)=>{let b=f.response_format;if(b?.type!=="json_schema"||!b.json_schema)return f;return{...f,response_format:{type:"json_object"},messages:[{role:"system",content:`Return only a JSON object matching this JSON schema: ${JSON.stringify(b.json_schema.schema)}`},...f.messages]}}}).chatModel(m.model)};function dt(){oe("openai-compatible",nt)}export{dt as register};
11
+ ${f}:`]}}function ke(m){switch(m){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var Se=a(()=>s(t({echo:c().optional(),logitBias:y(e(),r()).optional(),suffix:e().optional(),user:e().optional()}))),Ge=class m{static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.specificationVersion="v4",this.modelId=f,this.config=b;let _=b.errorStructure??ge;this.chunkSchema=Qe(_.errorSchema),this.failedResponseHandler=I(_)}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}get supportedUrls(){return this.config.supportedUrls?.()??{}}async getArgs({prompt:f,maxOutputTokens:b,temperature:_,topP:w,topK:A,frequencyPenalty:N,presencePenalty:L,stopSequences:K,responseFormat:q,seed:x,providerOptions:v,tools:S,toolChoice:Z}){let J=[];be({rawName:this.providerOptionsName,providerOptions:v,warnings:J});let G=Object.assign(await h({provider:this.providerOptionsName,providerOptions:v,schema:Se})??{},await h({provider:ce(this.providerOptionsName),providerOptions:v,schema:Se})??{});if(A!=null)J.push({type:"unsupported",feature:"topK"});if(S?.length)J.push({type:"unsupported",feature:"tools"});if(Z!=null)J.push({type:"unsupported",feature:"toolChoice"});if(q!=null&&q.type!=="text")J.push({type:"unsupported",feature:"responseFormat",details:"JSON response format is not supported."});let{prompt:se,stopSequences:X}=ze({prompt:f}),ae=[...X??[],...K??[]];return{args:{model:this.modelId,echo:G.echo,logit_bias:G.logitBias,suffix:G.suffix,user:G.user,max_tokens:b,temperature:_,top_p:w,frequency_penalty:N,presence_penalty:L,seed:x,...v?.[this.providerOptionsName],...v?.[ce(this.providerOptionsName)],prompt:se,stop:ae.length>0?ae:void 0},warnings:J}}async doGenerate(f){let{args:b,warnings:_}=await this.getArgs(f),{responseHeaders:w,value:A,rawValue:N}=await g({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:b,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:p(Ze),abortSignal:f.abortSignal,fetch:this.config.fetch}),L=A.choices[0],K=[];if(L.text!=null&&L.text.length>0)K.push({type:"text",text:L.text});return{content:K,usage:Oe(A.usage),finishReason:{unified:ke(L.finish_reason),raw:L.finish_reason},request:{body:b},response:{...ee(A),headers:w,body:N},warnings:_}}async doStream(f){let{args:b,warnings:_}=await this.getArgs(f),w={...b,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},{responseHeaders:A,value:N}=await g({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:d(this.config.headers?.(),f.headers),body:w,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:D(this.chunkSchema),abortSignal:f.abortSignal,fetch:this.config.fetch}),L={unified:"other",raw:void 0},K=void 0,q=!0;return{stream:N.pipeThrough(new TransformStream({start(x){x.enqueue({type:"stream-start",warnings:_})},transform(x,v){if(f.includeRawChunks)v.enqueue({type:"raw",rawValue:x.rawValue});if(!x.success){L={unified:"error",raw:void 0},v.enqueue({type:"error",error:x.error});return}let S=x.value;if("error"in S){L={unified:"error",raw:void 0},v.enqueue({type:"error",error:S.error});return}if(q)q=!1,v.enqueue({type:"response-metadata",...ee(S)}),v.enqueue({type:"text-start",id:"0"});if(S.usage!=null)K=S.usage;let Z=S.choices[0];if(Z?.finish_reason!=null)L={unified:ke(Z.finish_reason),raw:Z.finish_reason??void 0};if(Z?.text!=null)v.enqueue({type:"text-delta",id:"0",delta:Z.text})},flush(x){if(!q)x.enqueue({type:"text-end",id:"0"});x.enqueue({type:"finish",finishReason:L,usage:Oe(K)})}})),request:{body:w},response:{headers:A}}}},Ee=()=>U({prompt_tokens:r(),completion_tokens:r(),total_tokens:r()}),Ze=a(()=>s(t({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({text:e(),finish_reason:e()})),usage:Ee().nullish()}))),Qe=(m)=>l([t({id:e().nullish(),created:r().nullish(),model:e().nullish(),choices:o(t({text:e(),finish_reason:e().nullish(),index:r()})),usage:Ee().nullish()}),m]),_e=a(()=>s(t({dimensions:r().optional(),user:e().optional()}))),Xe=class m{get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return this.config.maxEmbeddingsPerCall??2048}get supportsParallelCalls(){return this.config.supportsParallelCalls??!0}static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.specificationVersion="v4",this.modelId=f,this.config=b}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}async doEmbed({values:f,dimensions:b,headers:_,abortSignal:w,providerOptions:A}){let N=[],L=await h({provider:"openai-compatible",providerOptions:A,schema:_e});if(L!=null)N.push({type:"deprecated",setting:"providerOptions key 'openai-compatible'",message:"Use 'openaiCompatible' instead."});be({rawName:this.providerOptionsName,providerOptions:A,warnings:N});let K=Object.assign(L??{},await h({provider:"openaiCompatible",providerOptions:A,schema:_e})??{},await h({provider:this.providerOptionsName,providerOptions:A,schema:_e})??{});if(f.length>this.maxEmbeddingsPerCall)throw new me({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:f});let{responseHeaders:q,value:x,rawValue:v}=await g({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:d(this.config.headers?.(),_),body:{model:this.modelId,input:f,encoding_format:"float",dimensions:K.dimensions??b,user:K.user},failedResponseHandler:I(this.config.errorStructure??ge),successfulResponseHandler:p(Ye),abortSignal:w,fetch:this.config.fetch});return{warnings:N,embeddings:x.data.map((S)=>S.embedding),usage:x.usage?{tokens:x.usage.prompt_tokens}:void 0,providerMetadata:x.providerMetadata,response:{headers:q,body:v}}}},Ye=a(()=>s(t({data:o(t({embedding:o(r())})),usage:t({prompt_tokens:r()}).nullish(),providerMetadata:y(e(),y(e(),ie())).optional()}))),et=class m{get provider(){return this.config.provider}get providerOptionsKey(){return this.config.provider.split(".")[0].trim()}static[k](f){return E({modelId:f.modelId,config:f.config})}static[T](f){return new m(f.modelId,f.config)}constructor(f,b){this.modelId=f,this.config=b,this.specificationVersion="v4",this.maxImagesPerCall=10,this.supportsFileInputs=void 0,this.supportsMaskInputs=void 0}getArgs(f,b){return be({rawName:this.providerOptionsKey,providerOptions:f,warnings:b}),{...f[this.providerOptionsKey],...f[ce(this.providerOptionsKey)]}}async doGenerate({prompt:f,n:b,size:_,aspectRatio:w,seed:A,providerOptions:N,headers:L,abortSignal:K,files:q,mask:x}){let v=[];if(w!=null)v.push({type:"unsupported",feature:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."});if(A!=null)v.push({type:"unsupported",feature:"seed"});let S=this.config._internal?.currentDate?.()??new Date,Z=this.getArgs(N,v),J=q!=null&&q.length>0,G=this.config.url({path:J?"/images/edits":"/images/generations",modelId:this.modelId}),se=d(this.config.headers?.(),L);if(J){let{value:de,responseHeaders:B}=await ne({url:G,headers:se,formData:st({model:this.modelId,prompt:f,image:await Promise.all(q.map((V)=>Te(V))),mask:x!=null?await Te(x):void 0,n:b,size:_,...Z}),failedResponseHandler:I(this.config.errorStructure??ge),successfulResponseHandler:p(je),abortSignal:K,fetch:this.config.fetch});return{images:await this.getImages(de.data,{url:G,headers:se,abortSignal:K}),warnings:v,usage:Re(de.usage),response:{timestamp:S,modelId:this.modelId,headers:B}}}let{value:X,responseHeaders:ae}=await g({url:G,headers:se,body:{model:this.modelId,prompt:f,n:b,size:_,...Z},failedResponseHandler:I(this.config.errorStructure??ge),successfulResponseHandler:p(je),abortSignal:K,fetch:this.config.fetch});return{images:await this.getImages(X.data,{url:G,headers:se,abortSignal:K}),warnings:v,usage:Re(X.usage),response:{timestamp:S,modelId:this.modelId,headers:ae}}}async getImages(f,b){if(f.every((_)=>_.b64_json!=null))return f.map((_)=>_.b64_json);return Promise.all(f.map(async(_)=>{if(_.b64_json!=null)return j(_.b64_json);if(_.url==null)throw new P({data:_,message:"Expected url in the image response"});let{value:w}=await R({url:_.url,validateUrl:!0,trustedOrigin:b.url,credentialedOrigin:b.url,headers:b.headers,abortSignal:b.abortSignal,fetch:this.config.fetch,successfulResponseHandler:pt(),failedResponseHandler:an()});return w}))}};function Re(m){return m==null?void 0:{inputTokens:m.input_tokens??void 0,outputTokens:m.output_tokens??void 0,totalTokens:m.total_tokens??void 0}}var je=a(()=>s(t({data:o(t({b64_json:e().nullish(),url:e().nullish()}).refine((m)=>m.b64_json!=null||m.url!=null,{message:"Expected b64_json or url in the image response"})),usage:t({input_tokens:r().nullish(),output_tokens:r().nullish(),total_tokens:r().nullish()}).nullish()})));async function Te(m){if(m.type==="url")return Me(m.url);let f=m.data instanceof Uint8Array?m.data:j(m.data);return new Blob([f],{type:m.mediaType})}var tt="3.0.80";function He(m){let f=Y(m.baseURL),b=m.name,_={...m.apiKey&&{Authorization:`Bearer ${m.apiKey}`},...m.headers},w=()=>F(_,`ai-sdk-openai-compatible/${tt}`),A=(S)=>({provider:`${b}.${S}`,url:({path:Z})=>{let J=new URL(`${f}${Z}`);if(m.queryParams)J.search=new URLSearchParams(m.queryParams).toString();return J.toString()},headers:w,fetch:m.fetch}),N=(S)=>L(S),L=(S)=>new Je(S,{...A("chat"),includeUsage:m.includeUsage,supportsStructuredOutputs:m.supportsStructuredOutputs,supportsMultiPartToolContent:m.supportsMultiPartToolContent,supportedUrls:m.supportedUrls,transformRequestBody:m.transformRequestBody,metadataExtractor:m.metadataExtractor,convertUsage:m.convertUsage}),K=(S)=>new Ge(S,{...A("completion"),includeUsage:m.includeUsage}),q=(S)=>new Xe(S,{...A("embedding")}),x=(S)=>new et(S,A("image")),v=(S)=>N(S);return v.specificationVersion="v4",v.languageModel=N,v.chatModel=L,v.completionModel=K,v.embeddingModel=q,v.textEmbeddingModel=q,v.imageModel=x,v}var nt=(m)=>{if(!m.baseURL)throw Error("This provider has no API URL. Select it again in the settings or configure a custom endpoint.");return He({name:"openai-compatible",baseURL:m.baseURL,apiKey:m.apiKey,headers:m.headers,...m.fetch&&{fetch:m.fetch},includeUsage:!0,supportsStructuredOutputs:!0,transformRequestBody:(f)=>{let b=f.response_format;if(b?.type!=="json_schema"||!b.json_schema)return f;return{...f,response_format:{type:"json_object"},messages:[{role:"system",content:`Return only a JSON object matching this JSON schema: ${JSON.stringify(b.json_schema.schema)}`},...f.messages]}}}).chatModel(m.model)};function dt(){oe("openai-compatible",nt)}export{dt as register};