@adaline/together-ai 0.1.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/dist/index.js ADDED
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+
5
+ var $t=Object.defineProperty;var we=Object.getOwnPropertySymbols;var Bt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable;var zt=(a,t)=>(t=Symbol[a])?t:Symbol.for("Symbol."+a);var xe=(a,t,o)=>t in a?$t(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,T=(a,t)=>{for(var o in t||(t={}))Bt.call(t,o)&&xe(a,o,t[o]);if(we)for(var o of we(t))Ft.call(t,o)&&xe(a,o,t[o]);return a};var M=(a,t,o)=>new Promise((n,s)=>{var r=c=>{try{l(o.next(c));}catch(h){s(h);}},d=c=>{try{l(o.throw(c));}catch(h){s(h);}},l=c=>c.done?n(c.value):Promise.resolve(c.value).then(r,d);l((o=o.apply(a,t)).next());}),Dt=function(a,t){this[0]=a,this[1]=t;},Ae=(a,t,o)=>{var n=(d,l,c,h)=>{try{var u=o[d](l),f=(l=u.value)instanceof Dt,y=u.done;Promise.resolve(f?l[0]:l).then(S=>f?n(d==="return"?d:"next",l[1]?{done:S.done,value:S.value}:S,c,h):c({value:S,done:y})).catch(S=>n("throw",S,c,h));}catch(S){h(S);}},s=d=>r[d]=l=>new Promise((c,h)=>n(d,l,c,h)),r={};return o=o.apply(a,t),r[zt("asyncIterator")]=()=>r,s("next"),s("throw"),s("return"),r};var Kt=a=>{let t=new WeakSet;return JSON.stringify(a,(o,n)=>{if(typeof n=="object"&&n!==null){if(t.has(n))return;t.add(n);}return n})},Ht=a=>a==null?"unknown error":typeof a=="string"?a:a instanceof Error?a.message:Kt(a),Y="GatewayBaseError",A=class ke extends Error{constructor({info:t,cause:o},n){super(`[${n!=null?n:Y}]: ${t}
6
+ Message: ${Ht(o)}`),this.name=Y,this.info=t,this.cause=o,this.name=n!=null?n:Y,Object.setPrototypeOf(this,new.target.prototype);}static isGatewayBaseError(t){return t instanceof ke}toJSON(){return {name:this.name,info:this.info,cause:this.cause,message:this.message,stack:this.stack}}},k="system",O="user",R="assistant",N="tool",Gt=[k,O,R,N],J=zod.z.enum(Gt),Vt=[R],Yt=zod.z.enum(Vt),Oe="image",Jt="base64",Wt=["png","jpeg","webp","gif"],Zt=zod.z.object({type:zod.z.literal(Jt),base64:zod.z.string(),media_type:zod.z.enum(Wt)}),Qt="url",Xt=zod.z.object({type:zod.z.literal(Qt),url:zod.z.string()}),eo=zod.z.discriminatedUnion("type",[Zt,Xt]),to=["low","medium","high","auto"],oo=zod.z.enum(to),no=(a=zod.z.undefined())=>zod.z.object({modality:zod.z.literal(Oe),detail:oo,value:eo,metadata:a}),b="text",Ne=(a=zod.z.undefined())=>zod.z.object({modality:zod.z.literal(b),value:zod.z.string(),metadata:a}),W="partial-text",Le=(a=zod.z.undefined())=>zod.z.object({modality:zod.z.literal(W),value:zod.z.string(),metadata:a}),I="tool-call",Ue=(a=zod.z.undefined())=>zod.z.object({modality:zod.z.literal(I),index:zod.z.number().int().nonnegative(),id:zod.z.string().min(1),name:zod.z.string().min(1),arguments:zod.z.string(),metadata:a}),Z="partial-tool-call",$e=(a=zod.z.undefined())=>zod.z.object({modality:zod.z.literal(Z),index:zod.z.number().int().nonnegative(),id:zod.z.string().optional(),name:zod.z.string().optional(),arguments:zod.z.string().optional(),metadata:a}),w="tool-response",ao=(a=zod.z.undefined())=>zod.z.object({modality:zod.z.literal(w),index:zod.z.number().int().nonnegative(),id:zod.z.string().min(1),name:zod.z.string().min(1),data:zod.z.string(),metadata:a}),so=[b,Oe,I,w],Be=zod.z.enum(so),ro=(a=zod.z.undefined(),t=zod.z.undefined(),o=zod.z.undefined(),n=zod.z.undefined())=>zod.z.discriminatedUnion("modality",[Ne(a),no(t),Ue(o),ao(n)]),io=[W,Z];zod.z.enum(io);var lo=(a=zod.z.undefined(),t=zod.z.undefined())=>zod.z.discriminatedUnion("modality",[Le(a),$e(t)]);var U=(a=J,t=zod.z.undefined(),o=zod.z.undefined(),n=zod.z.undefined(),s=zod.z.undefined(),r=zod.z.undefined())=>zod.z.object({role:a,content:zod.z.array(ro(t,o,n,s)),metadata:r}),Q=(a=Yt,t=zod.z.undefined(),o=zod.z.undefined(),n=zod.z.undefined())=>zod.z.object({role:a,partialContent:lo(t,o),metadata:n});var Fe=(a,t)=>U().parse({role:a,content:[Ne().parse({modality:b,value:t})]});var ze=(a,t,o,n,s)=>U().parse({role:a,content:[Ue().parse({modality:I,index:t,id:o,name:n,arguments:s})]});var De=(a,t)=>Q().parse({role:a,partialContent:Le().parse({modality:W,value:t})}),Ke=(a,t,o,n,s)=>Q().parse({role:a,partialContent:$e().parse({modality:Z,index:t,id:o,name:n,arguments:s})});var z=(a=zod.z.record(zod.z.string(),zod.z.any()).optional())=>a,mo=["object","array","number","string","boolean","enum"],je=zod.z.enum(mo),po=zod.z.object({anyOf:zod.z.array(zod.z.any()).optional(),type:zod.z.union([je,zod.z.array(zod.z.union([je,zod.z.literal("null")]))]).optional(),default:zod.z.any().optional(),title:zod.z.string().optional(),description:zod.z.string().max(4096).optional(),properties:zod.z.record(zod.z.any()).optional(),required:zod.z.array(zod.z.string()).optional(),minItems:zod.z.number().int().min(0).optional(),maxItems:zod.z.number().int().optional(),items:zod.z.record(zod.z.any()).optional(),enum:zod.z.array(zod.z.union([zod.z.string(),zod.z.number(),zod.z.boolean(),zod.z.null()])).optional(),minimum:zod.z.number().optional(),maximum:zod.z.number().optional(),minLength:zod.z.number().int().min(0).optional(),maxLength:zod.z.number().int().optional(),$ref:zod.z.string().optional()}),co=zod.z.object({type:zod.z.enum(["object"]),required:zod.z.array(zod.z.string()),$defs:zod.z.record(zod.z.any()).optional(),properties:zod.z.record(po),additionalProperties:zod.z.literal(!1)}),He=zod.z.object({name:zod.z.string().regex(/^[a-zA-Z0-9_]{1,64}$/).max(64),description:zod.z.string().max(4096),strict:zod.z.boolean().optional(),schema:co}).optional(),uo="function";var ho=zod.z.enum(["object","array","number","string","boolean","null"]),go=zod.z.object({anyOf:zod.z.array(zod.z.any()).optional(),type:ho.optional(),default:zod.z.any().optional(),title:zod.z.string().optional(),description:zod.z.string().max(4096).optional(),properties:zod.z.record(zod.z.any()).optional(),required:zod.z.array(zod.z.string()).optional(),minItems:zod.z.number().int().min(0).optional(),maxItems:zod.z.number().int().optional(),items:zod.z.record(zod.z.any()).optional(),enum:zod.z.array(zod.z.union([zod.z.string(),zod.z.number(),zod.z.boolean(),zod.z.null()])).optional(),minimum:zod.z.number().optional(),maximum:zod.z.number().optional(),minLength:zod.z.number().int().min(0).optional(),maxLength:zod.z.number().int().optional()});zod.z.object({type:zod.z.enum(["object"]),title:zod.z.string().optional(),$defs:zod.z.record(zod.z.any()).optional(),properties:zod.z.record(go).optional(),required:zod.z.array(zod.z.string()).optional()});var fo=zod.z.object({name:zod.z.string().regex(/^[a-zA-Z0-9_]{1,64}$/).max(64),description:zod.z.string().max(4096),parameters:zod.z.any(),strict:zod.z.boolean().optional()});var yo=zod.z.enum(["function"]),To=zod.z.object({type:yo,definition:zod.z.object({schema:fo})}),bo=[uo];zod.z.enum(bo);var Ge=(a=zod.z.undefined())=>zod.z.discriminatedUnion("type",[To.extend({metadata:a})]),x="text",Ve="token",Co=[x,Ve],Ye=zod.z.enum(Co),Eo=zod.z.array(zod.z.string().min(1)),Mo=zod.z.array(zod.z.array(zod.z.number().int().nonnegative())),Je=(a=zod.z.undefined())=>zod.z.discriminatedUnion("modality",[zod.z.object({modality:zod.z.literal(x),metadata:a,requests:Eo}),zod.z.object({modality:zod.z.literal(Ve),metadata:a,requests:Mo})]),X="float",Ro=zod.z.object({index:zod.z.number().int().nonnegative(),embedding:zod.z.array(zod.z.number())}),Io="base64",vo=zod.z.object({index:zod.z.number().int().nonnegative(),embedding:zod.z.string().base64()}),_e=zod.z.object({totalTokens:zod.z.number().int().nonnegative()});zod.z.discriminatedUnion("encodingFormat",[zod.z.object({encodingFormat:zod.z.literal(X),embeddings:zod.z.array(Ro),usage:_e.optional()}),zod.z.object({encodingFormat:zod.z.literal(Io),embeddings:zod.z.array(vo),usage:_e.optional()})]);var We=zod.z.object({promptTokens:zod.z.number().nonnegative(),completionTokens:zod.z.number().nonnegative(),totalTokens:zod.z.number().nonnegative()}),qe=zod.z.object({token:zod.z.string(),logProb:zod.z.number(),bytes:zod.z.array(zod.z.number().int()).nullable()}),Po=qe.extend({topLogProbs:zod.z.array(qe)}),Ze=zod.z.array(Po);zod.z.object({messages:zod.z.array(U()),usage:We.optional(),logProbs:Ze.optional()});zod.z.object({partialMessages:zod.z.array(Q()),usage:We.optional(),logProbs:Ze.optional()});var So=Object.defineProperty,Qe=Object.getOwnPropertySymbols,wo=Object.prototype.hasOwnProperty,xo=Object.prototype.propertyIsEnumerable,Xe=(a,t,o)=>t in a?So(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,$=(a,t)=>{for(var o in t||(t={}))wo.call(t,o)&&Xe(a,o,t[o]);if(Qe)for(var o of Qe(t))xo.call(t,o)&&Xe(a,o,t[o]);return a},et="ProviderError",B=class it extends A{constructor({info:t,cause:o}){super({info:t,cause:o},et),this.name=et,this.info=t,this.cause=o;}static isProviderError(t){return t instanceof it}};var tt="ModelResponseError",j=class lt extends A{constructor({info:t,cause:o}){super({info:t,cause:o},tt),this.name=tt,this.cause=o,this.info=t;}static isModelResponseError(t){return t instanceof lt}},ot="InvalidModelRequestError",L=class mt extends A{constructor({info:t,cause:o}){super({info:t,cause:o},ot),this.name=ot,this.cause=o,this.info=t,Object.setPrototypeOf(this,new.target.prototype);}static isInvalidModelRequestError(t){return t instanceof mt}},nt="InvalidConfigError",v=class dt extends A{constructor({info:t,cause:o}){super({info:t,cause:o},nt),this.name=nt,this.cause=o,this.info=t,Object.setPrototypeOf(this,new.target.prototype);}static isInvalidConfigError(t){return t instanceof dt}},at="InvalidMessagesError",E=class pt extends A{constructor({info:t,cause:o}){super({info:t,cause:o},at),this.name=at,this.cause=o,this.info=t,Object.setPrototypeOf(this,new.target.prototype);}static isInvalidMessagesError(t){return t instanceof pt}},st="InvalidToolsError",ee=class ct extends A{constructor({info:t,cause:o}){super({info:t,cause:o},st),this.name=st,this.cause=o,this.info=t,Object.setPrototypeOf(this,new.target.prototype);}static isInvalidToolsError(t){return t instanceof ct}},rt="InvalidEmbeddingRequestsError",te=class ut extends A{constructor({info:t,cause:o}){super({info:t,cause:o},rt),this.name=rt,this.info=t,this.cause=o,Object.setPrototypeOf(this,new.target.prototype);}static isInvalidEmbeddingRequestsError(t){return t instanceof ut}},oe="multi-string",ht=zod.z.object({type:zod.z.literal(oe),param:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string().min(1).max(500),max:zod.z.number().int().positive()}),Ao=a=>zod.z.array(zod.z.string()).max(a).default([]).optional(),gt=a=>({def:ht.parse($({type:oe},a)),schema:Ao(a.max)}),ne="range",ft=zod.z.object({type:zod.z.literal(ne),param:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string().min(1).max(500),min:zod.z.number().int(),max:zod.z.number().int(),step:zod.z.number().positive(),default:zod.z.number()}),jo=(a,t,o,n)=>zod.z.number().min(a).max(t).step(o).default(n).optional(),P=a=>({def:ft.parse($({type:ne},a)),schema:jo(a.min,a.max,a.step,a.default)}),ae="select-string",yt=zod.z.object({type:zod.z.literal(ae),param:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string().min(1).max(500),default:zod.z.string().min(1).nullable(),choices:zod.z.array(zod.z.string().min(1))}),_o=(a,t)=>zod.z.enum(t).nullable().default(a).optional(),se=a=>({def:yt.parse($({type:ae},a)),schema:_o(a.default,a.choices)}),re="object-schema",Tt=zod.z.object({type:zod.z.literal(re),param:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string().min(1).max(500),objectSchema:zod.z.any()}),qo=a=>a.optional(),bt=a=>({def:Tt.parse($({type:re},a)),schema:qo(a.objectSchema)}),ie="select-boolean",Ct=zod.z.object({type:zod.z.literal(ie),param:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string().min(1).max(500),default:zod.z.boolean().nullable()}),ko=a=>zod.z.boolean().nullable().default(a).optional(),Et=a=>({def:Ct.parse($({type:ie},a)),schema:ko(a.default)}),Oo=[ne,oe,ae,re,ie];zod.z.enum(Oo);var Mt=zod.z.discriminatedUnion("type",[ft,ht,yt,Ct,Tt]),Rt=(a=J,t=Be)=>zod.z.object({name:zod.z.string().min(1),description:zod.z.string().min(1),roles:zod.z.record(a,zod.z.string().min(1).optional()),modalities:zod.z.array(t).nonempty(),maxInputTokens:zod.z.number().int().positive().min(1),maxOutputTokens:zod.z.number().int().positive().min(1),config:zod.z.object({def:zod.z.record(zod.z.string().min(1),Mt),schema:zod.z.instanceof(zod.z.ZodObject)}).refine(o=>{var n,s;let r=Object.keys(o.def),d=Object.keys((s=(n=o.schema)==null?void 0:n.shape)!=null?s:{});return r.every(l=>d.includes(l))&&d.every(l=>r.includes(l))},{message:"Keys in 'config.def' must exactly match keys in 'config.schema'"})}),It=(a=Ye)=>zod.z.object({name:zod.z.string().min(1),description:zod.z.string().min(1),modalities:zod.z.array(a).nonempty(),maxInputTokens:zod.z.number().int().positive().min(1),maxOutputTokens:zod.z.number().int().positive().min(1),config:zod.z.object({def:zod.z.record(zod.z.string().min(1),Mt),schema:zod.z.instanceof(zod.z.ZodObject)}).refine(t=>{var o,n;let s=Object.keys(t.def),r=Object.keys((n=(o=t.schema)==null?void 0:o.shape)!=null?n:{});return s.every(d=>r.includes(d))&&r.every(d=>s.includes(d))},{message:"Keys in 'config.def' must exactly match keys in 'config.schema'"})});zod.z.record(zod.z.string());zod.z.record(zod.z.union([zod.z.boolean(),zod.z.string(),zod.z.number(),zod.z.object({}),zod.z.array(zod.z.any()),zod.z.null(),zod.z.undefined()]));zod.z.string().url();var No={type:"range",title:"Temperature",description:"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text that's unexpectedly fresh."},Lo={type:"range",title:"Max tokens",description:"Specify the total tokens for generation, where one token approximates four English characters. Setting this to 0 defaults to the model's maximum capacity."},Uo=a=>({type:"multi",title:"Stop sequence",description:`Enter up to ${a} sequences that will halt additional text output. The generated text will exclude these sequences.`}),$o={type:"range",title:"Top A",description:"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, functioning like a dynamic Top-P. A lower Top-A value narrows down the token choices based on the highest probability token, while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output."},Bo={type:"range",title:"Top P",description:"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, such as the top 10% when P=0.1. This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously."},Fo={type:"range",title:"Top K",description:"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options."},zo={type:"range",title:"Min P",description:"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. (This value varies based on the confidence level of the top token.) For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered."},Do={type:"range",title:"Frequency penalty",description:"Minimize redundancy. By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. The default setting for this penalty is zero."},Ko={type:"range",title:"Presence penalty",description:"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, thus boosting the chances of exploring fresh topics. The standard setting for this is zero."},Ho={type:"range",title:"Seed",description:"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. Deterministic output isn't guaranteed. Also, changing the model or parameter settings, such as the temperature, can cause variations in the response even when you use the same seed value. By default, a random seed value is used."},Go={type:"range",title:"Repetition penalty",description:"Reduces the likelihood of repeating tokens from the input. Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, often resulting in run-on sentences missing smaller words. The token penalty is scaled according to the original token's probability."},Vo={type:"boolean",title:"Log probs",description:"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned."},Yo={type:"range",title:"Top log probs",description:"The number of most likely tokens to return at each token position, each with an associated log probability. 'logprobs' must be set to true if this parameter is used."},Jo={type:"boolean",title:"Echo",description:"If true, the response will contain the prompt."},Wo={type:"select",title:"Response format",description:"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt."},Zo={type:"select",title:"Response format",description:"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict response schema that the model will adhere to."},Qo={type:"object",title:"Response schema",description:"When response format is set to 'json_schema', the model will return a JSON object of the specified schema."},g={TEMPERATURE:No,MAX_TOKENS:Lo,STOP:Uo,TOP_A:$o,TOP_P:Bo,TOP_K:Fo,MIN_P:zo,FREQUENCY_PENALTY:Do,PRESENCE_PENALTY:Ko,REPETITION_PENALTY:Go,SEED:Ho,LOG_PROBS:Vo,TOP_LOG_PROBS:Yo,ECHO:Jo,RESPONSE_FORMAT:Wo,RESPONSE_FORMAT_WITH_SCHEMA:Zo,RESPONSE_SCHEMA:Qo};var D=a=>Object.fromEntries(Object.entries(a).filter(([t,o])=>o!=null));var _=a=>a==null?void 0:a.replace(/\/$/,"");var le=P({param:"temperature",title:g.TEMPERATURE.title,description:g.TEMPERATURE.description,min:0,max:1,step:.01,default:1}),me=a=>P({param:"max_tokens",title:g.MAX_TOKENS.title,description:g.MAX_TOKENS.description,min:0,max:a,step:1,default:0}),de=a=>gt({param:"stop",title:g.STOP(a).title,description:g.STOP(a).description,max:a}),pe=P({param:"top_k",title:g.TOP_K.title,description:g.TOP_K.description,min:0,max:1e4,step:1,default:0}),ce=P({param:"top_p",title:g.TOP_P.title,description:g.TOP_P.description,min:0,max:1,step:.01,default:1}),ue=P({param:"min_p",title:g.MIN_P.title,description:g.MIN_P.description,min:0,max:1,step:.01,default:0}),he=P({param:"frequency_penalty",title:g.FREQUENCY_PENALTY.title,description:g.FREQUENCY_PENALTY.description,min:-2,max:2,step:.01,default:0}),ge=P({param:"presence_penalty",title:g.PRESENCE_PENALTY.title,description:g.PRESENCE_PENALTY.description,min:-2,max:2,step:.01,default:0}),fe=P({param:"repetition_penalty",title:g.REPETITION_PENALTY.title,description:g.REPETITION_PENALTY.description,min:0,max:1e4,step:.01,default:0}),ye=P({param:"seed",title:g.SEED.title,description:g.SEED.description,min:0,max:1e6,step:1,default:0}),Te=Et({param:"logprobs",title:g.LOG_PROBS.title,description:g.LOG_PROBS.description,default:!1}),be=se({param:"tool_choice",title:"Tool choice",description:"Controls which (if any) tool is called by the model. 'none' means the model will not call a function. 'auto' means the model can pick between generating a message or calling a tool.",default:"auto",choices:["auto","required","none"]}),Ce=se({param:"response_format",title:g.RESPONSE_FORMAT.title,description:g.RESPONSE_FORMAT.description,default:"text",choices:["text","json_object"]}),Ee=bt({param:"response_schema",title:g.RESPONSE_SCHEMA.title,description:g.RESPONSE_SCHEMA.description,objectSchema:He});var vt=(a,t)=>zod.z.object({temperature:le.schema,maxTokens:me(a).schema,stop:de(t).schema,topP:ce.schema,topK:pe.schema,minP:ue.schema,frequencyPenalty:he.schema,presencePenalty:ge.schema,repetitionPenalty:fe.schema,seed:ye.schema.transform(o=>o===0?void 0:o),logProbs:Te.schema,toolChoice:be.schema,responseSchema:Ee.schema,responseFormat:Ce.schema}),Pt=(a,t)=>({temperature:le.def,maxTokens:me(a).def,stop:de(t).def,topP:ce.def,topK:pe.def,minP:ue.def,frequencyPenalty:he.def,presencePenalty:ge.def,repetitionPenalty:fe.def,seed:ye.def,logProbs:Te.def,toolChoice:be.def,responseSchema:Ee.def,responseFormat:Ce.def});var Me={base:(a,t)=>({def:Pt(a,t),schema:vt(a,t)})};var St=zod.z.enum([k,O,R,N]),wt={system:k,user:O,assistant:R,tool:N};var xt=[b,I,w],At=zod.z.enum([b,I,w]);var on=zod.z.object({token_ids:zod.z.array(zod.z.number()),tokens:zod.z.array(zod.z.string()),token_logprobs:zod.z.array(zod.z.number())}),nn=zod.z.array(zod.z.object({id:zod.z.string().min(1),type:zod.z.enum(["function"]),function:zod.z.object({name:zod.z.string(),arguments:zod.z.string()})})),jt=zod.z.object({id:zod.z.string(),object:zod.z.literal("chat.completion"),created:zod.z.number(),model:zod.z.string(),prompt:zod.z.any(),choices:zod.z.array(zod.z.object({index:zod.z.number(),message:zod.z.object({role:zod.z.string(),content:zod.z.string().nullable().optional(),tool_calls:nn.optional()}),logprobs:on.nullable().optional(),seed:zod.z.number().nullable().optional(),finish_reason:zod.z.string()})),usage:zod.z.object({prompt_tokens:zod.z.number(),completion_tokens:zod.z.number(),total_tokens:zod.z.number()}).nullable().optional()}),an=zod.z.array(zod.z.object({index:zod.z.number().int(),id:zod.z.string().min(1).optional(),type:zod.z.enum(["function"]).optional(),function:zod.z.object({name:zod.z.string().min(1).optional(),arguments:zod.z.string().optional()}).optional()})),_t=zod.z.object({id:zod.z.string(),object:zod.z.string(),created:zod.z.number(),model:zod.z.string(),choices:zod.z.array(zod.z.object({index:zod.z.number(),delta:zod.z.object({token_id:zod.z.number().nullable().optional(),role:zod.z.string().nullable().optional(),content:zod.z.string().nullable().optional(),tool_calls:an.optional()}).or(zod.z.object({})),logprobs:zod.z.any().nullable().optional(),seed:zod.z.number().nullable().optional(),finish_reason:zod.z.string().nullable(),text:zod.z.string().nullable().optional()})),usage:zod.z.object({prompt_tokens:zod.z.number(),completion_tokens:zod.z.number(),total_tokens:zod.z.number()}).nullable().optional()});var sn=zod.z.object({type:zod.z.literal("function"),function:zod.z.object({name:zod.z.string().min(1),description:zod.z.string().min(1).optional(),strict:zod.z.boolean().optional(),parameters:zod.z.any()})}),rn=zod.z.enum(["none","auto","required"]),ln=zod.z.object({type:zod.z.literal("function"),function:zod.z.object({name:zod.z.string().min(1)})}),mn=zod.z.object({type:zod.z.enum(["text","json_object"])}).or(zod.z.object({type:zod.z.literal("json_schema"),json_schema:zod.z.object({name:zod.z.string().min(1),description:zod.z.string().min(1).optional(),strict:zod.z.boolean().optional(),schema:zod.z.any()})})),Re=zod.z.string(),dn=zod.z.object({id:zod.z.string().min(1),type:zod.z.literal("function"),function:zod.z.object({name:zod.z.string().min(1),arguments:zod.z.string().min(1)})}),pn=zod.z.object({role:zod.z.literal("system"),content:Re}),cn=zod.z.object({role:zod.z.literal("user"),content:Re}),un=zod.z.object({role:zod.z.literal("assistant"),content:Re.optional(),tool_calls:zod.z.array(dn).min(1).optional()}),hn=zod.z.object({role:zod.z.literal("tool"),tool_call_id:zod.z.string().min(1),content:zod.z.string().min(1)}),gn=zod.z.union([pn,cn,un,hn]),qt=zod.z.object({model:zod.z.string().min(1).optional(),messages:zod.z.array(gn).min(1),frequency_penalty:zod.z.number().min(-2).max(2).nullable().optional(),logprobs:zod.z.number().min(0).max(1).nullable().optional(),max_tokens:zod.z.number().min(0).nullable().optional(),presence_penalty:zod.z.number().min(-2).max(2).nullable().optional(),repetition_penalty:zod.z.number().min(0).max(2).nullable().optional(),response_format:mn.optional(),seed:zod.z.number().optional(),stop:zod.z.string().or(zod.z.array(zod.z.string()).max(4)).nullable().optional(),temperature:zod.z.number().min(0).max(1).nullable().optional(),top_p:zod.z.number().min(0).max(1).nullable().optional(),top_k:zod.z.number().min(0).max(1e4).nullable().optional(),min_p:zod.z.number().min(0).max(1).nullable().optional(),echo:zod.z.boolean().nullable().optional(),tools:zod.z.array(sn).optional(),tool_choice:rn.or(ln).optional()});var Ie=Rt(St,At).parse({name:"together-ai-base-chat-model",description:"Base chat model for Together AI",maxInputTokens:128e3,maxOutputTokens:128e3,roles:wt,modalities:xt,config:{def:Me.base(128e3,4).def,schema:Me.base(128e3,4).schema}});var fn="together-ai",q=class{constructor(){this.version="v1";this.name=fn;}chatModelLiterals(){throw new B({info:"Not implemented",cause:new Error("Not implemented")})}chatModel(t,o){let n=T({modelName:t},o);return new K(Ie,n)}chatModelSchema(t){return Ie}chatModelSchemas(){throw new B({info:"Not implemented",cause:new Error("Not implemented")})}embeddingModelLiterals(){throw new B({info:"Not implemented",cause:new Error("Not implemented")})}embeddingModel(t,o){let n=T({modelName:t},o);return new H(ve,n)}embeddingModelSchema(t){return ve}embeddingModelSchemas(){throw new B({info:"Not implemented",cause:new Error("Not implemented")})}};q.baseUrl="https://api.together.xyz/v1";var yn=zod.z.object({apiKey:zod.z.string(),modelName:zod.z.string()}),K=class{constructor(t,o){this.version="v1";let n=yn.parse(o);this.modelSchema=t,this.modelName=n.modelName,this.apiKey=n.apiKey,this.baseUrl=_(q.baseUrl),this.streamChatUrl=_(`${this.baseUrl}/chat/completions`),this.completeChatUrl=_(`${this.baseUrl}/chat/completions`);}getDefaultBaseUrl(){return this.baseUrl}getDefaultHeaders(){return {Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",source:"adaline.ai"}}getDefaultParams(){return {model:this.modelName}}getRetryDelay(t){return {shouldRetry:!0,delayMs:0}}getTokenCount(t){return t.reduce((o,n)=>o+n.content.map(s=>s.modality==="text"?s.value:"").join(" ").length,0)}transformModelRequest(t){let o=qt.safeParse(t);if(!o.success)throw new L({info:"Invalid model request",cause:o.error});let n=o.data,s=n.model;if(n.tool_choice&&(!n.tools||n.tools.length===0))throw new L({info:`Invalid model request for model : '${this.modelName}'`,cause:new Error("'tools' are required when 'tool_choice' is specified")});let r={};n.response_format&&(r.responseFormat=n.response_format.type,n.response_format.type==="json_schema"&&(r.responseSchema={name:n.response_format.json_schema.name,description:n.response_format.json_schema.description||"",strict:n.response_format.json_schema.strict,schema:n.response_format.json_schema.schema})),n.tool_choice&&(typeof n.tool_choice=="string"?r.toolChoice=n.tool_choice:r.toolChoice=n.tool_choice.function.name),r.seed=n.seed,r.maxTokens=n.max_tokens,r.temperature=n.temperature,r.topP=n.top_p,r.minP=n.min_p,r.topK=n.top_k,r.repetitionPenalty=n.repetition_penalty,r.presencePenalty=n.presence_penalty,r.frequencyPenalty=n.frequency_penalty,r.repetitionPenalty=n.repetition_penalty,r.stop=n.stop,r.logProbs=n.logprobs!==0,r.echo=n.echo;let d=z().parse(D(r)),l=[],c={};n.messages.forEach(u=>{let f=u.role;switch(f){case"system":l.push({role:f,content:[{modality:b,value:u.content}]});break;case"user":l.push({role:f,content:[{modality:b,value:u.content}]});break;case"assistant":{let y=[];if(!u.content&&!u.tool_calls)throw new L({info:`Invalid model request for model : '${this.modelName}'`,cause:new Error("one of'content' or 'tool_calls' must be provided")});u.content&&y.push({modality:b,value:u.content}),u.tool_calls&&u.tool_calls.forEach((G,Ut)=>{let V={modality:I,id:G.id,index:Ut,name:G.function.name,arguments:G.function.arguments};y.push(V),c[V.id]=V;}),l.push({role:f,content:y});}break;case"tool":{let y=u;l.push({role:f,content:[{modality:w,id:y.tool_call_id,index:c[y.tool_call_id].index,name:c[y.tool_call_id].name,data:y.content}]});}break}});let h=[];return n.tools&&n.tools.forEach(u=>{h.push({type:"function",definition:{schema:{name:u.function.name,description:u.function.description||"",strict:u.function.strict,parameters:u.function.parameters}}});}),{modelName:s,config:d,messages:l,tools:h.length>0?h:void 0}}transformConfig(t,o,n){let s=t.toolChoice;delete t.toolChoice;let r=this.modelSchema.config.schema.safeParse(t);if(!r.success)throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:r.error});let d=r.data;s!==void 0&&(d.toolChoice=s),Object.keys(d).forEach(c=>{if(!(c in this.modelSchema.config.def))throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:new Error(`Invalid config key : '${c}',
7
+ available keys : [${Object.keys(this.modelSchema.config.def).join(", ")}]`)})});let l=Object.keys(d).reduce((c,h)=>{let u=this.modelSchema.config.def[h],f=u.param,y=d[h];return f==="max_tokens"&&u.type==="range"&&y===0?c[f]=u.max:f==="logprobs"&&u.type==="select-boolean"?y===!0?c[f]=1:c[f]=0:c[f]=y,c},{});if(l.top_logprobs&&!l.logprobs)throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:new Error("'logprobs' must be 'true' when 'top_logprobs' is specified")});if("tool_choice"in l&&l.tool_choice!==void 0){let c=l.tool_choice;if(!n||n&&n.length===0)throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:new Error("'tools' are required when 'toolChoice' is specified")});if(n&&n.length>0){let h=this.modelSchema.config.def.toolChoice;if(!h.choices.includes(c))if(n.map(u=>u.definition.schema.name).includes(c))l.tool_choice={type:"function",function:{name:c}};else throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:new Error(`toolChoice : '${c}' is not part of provided 'tools' names or
8
+ one of [${h.choices.join(", ")}]`)})}}if("response_format"in l&&l.response_format!==void 0){let c=l.response_format;if(c==="json_schema")if("response_schema"in l)l.response_format={type:"json_schema",json_schema:l.response_schema},delete l.response_schema;else throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:new Error("'responseSchema' is required in config when 'responseFormat' is 'json_schema'")});else l.response_format={type:c};}return l}transformMessages(t){if(!t||t&&t.length===0)return {messages:[]};let o=t.map(s=>{let r=U().safeParse(s);if(!r.success)throw new E({info:"Invalid messages",cause:r.error});return r.data});return o.forEach(s=>{s.content.forEach(r=>{if(!this.modelSchema.modalities.includes(r.modality))throw new E({info:`Invalid message content for model : '${this.modelName}'`,cause:new Error(`model : '${this.modelName}' does not support modality : '${r.modality}',
9
+ available modalities : [${this.modelSchema.modalities.join(", ")}]`)})});}),o.forEach(s=>{if(!Object.keys(this.modelSchema.roles).includes(s.role))throw new E({info:`Invalid message content for model : '${this.modelName}'`,cause:new Error(`model : '${this.modelName}' does not support role : '${s.role}',
10
+ available roles : [${Object.keys(this.modelSchema.roles).join(", ")}]`)})}),{messages:o.map(s=>{switch(s.role){case k:{let r="";return s.content.forEach(d=>{if(d.modality===b)r+=d.value+`
11
+ `;else throw new E({info:`Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,cause:new Error(`role : '${s.role}' cannot have content with modality : '${d.modality}'`)})}),{role:this.modelSchema.roles[s.role],content:r}}case R:{let r="",d=[];return s.content.forEach(l=>{if(l.modality===b)r+=l.value+`
12
+ `;else if(l.modality===I)d.push({id:l.id,type:"function",function:{name:l.name,arguments:l.arguments}});else throw new E({info:`Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,cause:new Error(`role : '${s.role}' cannot have content with modality : '${l.modality}'`)})}),T({role:this.modelSchema.roles[s.role],content:r},d.length>0?{tool_calls:d}:{})}case O:{let r="";return s.content.forEach(d=>{if(d.modality===b)r+=d.value+`
13
+ `;else throw new E({info:`Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,cause:new Error(`role : '${s.role}' cannot have content with modality : '${d.modality}'`)})}),{role:this.modelSchema.roles[s.role],content:r}}case N:{if(s.content.length!==1)throw new E({info:`Invalid message for role : '${s.role}'`,cause:new Error(`role : '${s.role}' must have exactly one content item`)});if(s.content[0].modality!==w)throw new E({info:`Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,cause:new Error(`role : '${s.role}' must have content with modality : '${w}'`)});let r=s.content[0];return {role:this.modelSchema.roles[s.role],tool_call_id:r.id,content:r.data}}default:throw new E({info:`Invalid message 'role' for model : ${this.modelName}`,cause:new Error(`role : '${s.role}' is not supported,
14
+ available roles : [${Object.keys(this.modelSchema.roles).join(", ")}]`)})}})}}transformTools(t){if(!this.modelSchema.modalities.includes(I))throw new ee({info:`Invalid tool 'modality' for model : ${this.modelName}`,cause:new Error(`model : '${this.modelName}' does not support tool modality : '${I}'`)});return !t||t&&t.length===0?{tools:[]}:{tools:t.map(s=>{let r=Ge().safeParse(s);if(!r.success)throw new ee({info:"Invalid tools",cause:r.error});return r.data}).map(s=>({type:"function",function:s.definition.schema}))}}getCompleteChatUrl(t,o,n){return M(this,null,function*(){return new Promise(s=>{s(this.completeChatUrl);})})}getCompleteChatHeaders(t,o,n){return M(this,null,function*(){return new Promise(s=>{s(this.getDefaultHeaders());})})}getCompleteChatData(t,o,n){return M(this,null,function*(){let s=this.transformConfig(t,o,n),r=this.transformMessages(o);if(r.messages&&r.messages.length===0)throw new E({info:"Messages are required",cause:new Error("Messages are required")});let d=n?this.transformTools(n):{};return new Promise(l=>{l(T(T(T(T({},this.getDefaultParams()),s),r),d));})})}transformCompleteChatResponse(t){let o=jt.safeParse(t);if(o.success){if(o.data.choices.length===0)throw new j({info:"Invalid response from model",cause:new Error(`No choices in response : ${JSON.stringify(o.data)}`)});let n=o.data,s=[],r=n.choices[0].message;r.content&&s.push(Fe(R,r.content)),r.tool_calls&&r.tool_calls.forEach((h,u)=>{s.push(ze(R,u,h.id,h.function.name,h.function.arguments));});let d;n.usage&&(d={promptTokens:n.usage.prompt_tokens,completionTokens:n.usage.completion_tokens,totalTokens:n.usage.total_tokens});let l=[],c=n.choices[0].logprobs;return c&&c.tokens.forEach((h,u)=>{l.push({token:h,logProb:c.token_logprobs[u],bytes:null,topLogProbs:[]});}),{messages:s,usage:d,logProbs:l}}throw new j({info:"Invalid response from model",cause:o.error})}getStreamChatUrl(t,o,n){return M(this,null,function*(){return new Promise(s=>{s(this.streamChatUrl);})})}getStreamChatHeaders(t,o,n){return M(this,null,function*(){return new Promise(s=>{s(this.getDefaultHeaders());})})}getStreamChatData(t,o,n){return M(this,null,function*(){let s=this.transformConfig(t,o,n),r=this.transformMessages(o);if(r.messages&&r.messages.length===0)throw new E({info:"Messages are required",cause:new Error("Messages are required")});let d=n?this.transformTools(n):{};return new Promise(l=>{l(T(T(T(T({stream:!0,stream_options:{include_usage:!0}},this.getDefaultParams()),s),r),d));})})}transformStreamChatResponseChunk(t,o){return Ae(this,null,function*(){var s,r;let n=(o+t).split(`
15
+ `).filter(d=>d.trim()!=="");for(let d of n){if(d==="data: [DONE]")return;if(d.startsWith("data: {")&&d.endsWith("}")){let l;try{l=JSON.parse(d.substring(6));}catch(h){throw new j({info:"Malformed JSON received in stream",cause:new Error(`Malformed JSON received in stream : ${l}`)})}let c=_t.safeParse(l);if(c.success){let h={partialMessages:[]},u=c.data;if(u.choices.length>0){let f=u.choices[0].delta;if(f!==void 0&&Object.keys(f).length!==0){if("content"in f&&f.content!==null)h.partialMessages.push(De(R,f.content));else if("tool_calls"in f&&f.tool_calls){let y=f.tool_calls.at(0);h.partialMessages.push(Ke(R,y.index,y.id,(s=y.function)==null?void 0:s.name,(r=y.function)==null?void 0:r.arguments));}}}u.usage&&(h.usage={promptTokens:u.usage.prompt_tokens,completionTokens:u.usage.completion_tokens,totalTokens:u.usage.total_tokens}),yield {partialResponse:h,buffer:o};}else throw new j({info:"Invalid response from model",cause:c.error})}}})}};var kt=[x],Ot=zod.z.enum([x]);var Nt=zod.z.object({object:zod.z.literal("list"),model:zod.z.string(),data:zod.z.array(zod.z.object({index:zod.z.number(),object:zod.z.literal("embedding"),embedding:zod.z.array(zod.z.number()).or(zod.z.string().base64())})),usage:zod.z.object({prompt_tokens:zod.z.number().nonnegative(),total_tokens:zod.z.number().nonnegative()}).optional()});var bn=zod.z.string().min(1).or(zod.z.array(zod.z.string().min(1)).min(1)),Lt=zod.z.object({model:zod.z.string().min(1).optional(),input:bn});var Cn=zod.z.object({apiKey:zod.z.string(),modelName:zod.z.string()}),H=class{constructor(t,o){this.version="v1";let n=Cn.parse(o);this.modelSchema=t,this.modelName=n.modelName,this.apiKey=n.apiKey,this.baseUrl=_(q.baseUrl),this.getEmbeddingsUrl=_(`${this.baseUrl}/embeddings`);}getDefaultBaseUrl(){return this.baseUrl}getDefaultHeaders(){return {Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",source:"adaline.ai"}}getDefaultParams(){return {model:this.modelName}}getRetryDelay(t){return {shouldRetry:!0,delayMs:0}}getTokenCount(t){return t.requests.reduce((o,n)=>o+n.length,0)}transformModelRequest(t){let o=Lt.safeParse(t);if(!o.success)throw new L({info:"Invalid model request",cause:o.error});let n=o.data,s=n.model,r={},d=z().parse(D(r)),l={modality:x,requests:[...n.input]};return {modelName:s,config:d,embeddingRequests:l}}transformConfig(t,o){let n=this.modelSchema.config.schema.safeParse(t);if(!n.success)throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:n.error});let s=n.data;return Object.keys(s).forEach(d=>{if(!this.modelSchema.config.def[d])throw new v({info:`Invalid config for model : '${this.modelName}'`,cause:new Error(`Invalid config key : '${d}',
16
+ available keys : [${Object.keys(this.modelSchema.config.def).join(", ")}]`)})}),Object.keys(s).reduce((d,l)=>{let h=this.modelSchema.config.def[l].param,u=s[l];return d[h]=u,d},{})}transformEmbeddingRequests(t){let o=Je().safeParse(t);if(!o.success)throw new te({info:"Invalid embedding requests",cause:o.error});if(t.modality!==x)throw new te({info:`Invalid embedding requests for model : '${this.modelName}'`,cause:new Error(`Only '${x}' modality is supported for model : '${this.modelName}'`)});return {input:o.data.requests}}getGetEmbeddingsUrl(t,o){return M(this,null,function*(){return new Promise(n=>{n(this.getEmbeddingsUrl);})})}getGetEmbeddingsHeaders(t,o){return M(this,null,function*(){return new Promise(n=>{n(this.getDefaultHeaders());})})}getGetEmbeddingsData(t,o){return M(this,null,function*(){return new Promise(n=>{n(T(T(T({},this.getDefaultParams()),this.transformConfig(t,o)),this.transformEmbeddingRequests(o)));})})}transformGetEmbeddingsResponse(t){var n;let o=Nt.safeParse(t);if(o.success){let s=o.data,r=s.data.map(d=>({index:d.index,embedding:d.embedding}));return {encodingFormat:X,embeddings:r,usage:{totalTokens:(n=s.usage)==null?void 0:n.total_tokens}}}throw new j({info:"Invalid response from model",cause:o.error})}};var ve=It(Ot).parse({name:"together-ai-base-embedding-model",description:"Base embedding model for Together AI",maxInputTokens:128e3,maxOutputTokens:128e3,modalities:kt,config:{def:{},schema:zod.z.object({})}});
17
+
18
+ exports.BaseChatModel = K;
19
+ exports.BaseChatModelSchema = Ie;
20
+ exports.BaseEmbeddingModel = H;
21
+ exports.BaseEmbeddingModelOptions = Cn;
22
+ exports.BaseEmbeddingModelSchema = ve;
23
+ exports.ChatModelBaseConfigDef = Pt;
24
+ exports.ChatModelBaseConfigSchema = vt;
25
+ exports.TogetherAI = q;
26
+ exports.TogetherAIChatModelConfigs = Me;
27
+ exports.TogetherAIEmbeddingModelModalities = kt;
28
+ exports.TogetherAIEmbeddingModelModalitiesEnum = Ot;
29
+ exports.TogetherAIEmbeddingRequest = Lt;
30
+ exports.TogetherAIEmbeddingRequestInput = bn;
31
+ exports.TogetherAIGetEmbeddingsResponse = Nt;
32
+ exports.frequencyPenalty = he;
33
+ exports.logProbs = Te;
34
+ exports.maxTokens = me;
35
+ exports.minP = ue;
36
+ exports.presencePenalty = ge;
37
+ exports.repetitionPenalty = fe;
38
+ exports.responseFormat = Ce;
39
+ exports.responseSchema = Ee;
40
+ exports.seed = ye;
41
+ exports.stop = de;
42
+ exports.temperature = le;
43
+ exports.toolChoice = be;
44
+ exports.topK = pe;
45
+ exports.topP = ce;
46
+ //# sourceMappingURL=index.js.map
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/configs/chat-model/base.config.chat-model.together-ai.ts","../../../../packages/types/src/errors/gateway-base.error.ts","../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/text-content.ts","../../../../packages/types/src/message/content/tool-call-content.ts","../../../../packages/types/src/message/content/tool-response-content.ts","../../../../packages/types/src/message/content/content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/config/response-schema.config.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/types/src/embedding/embedding-response.ts","../../../../packages/types/src/chat/chat-response.ts","../../../../packages/provider/src/errors/provider.error.ts","../../../../packages/provider/src/errors/model-response.error.ts","../../../../packages/provider/src/errors/invalid-model-request.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/errors/invalid-embedding-requests.error.ts","../../../../packages/provider/src/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/range-config-item.ts","../../../../packages/provider/src/types/config/select-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/select-boolean-config-item.ts","../../../../packages/provider/src/types/config/config-item.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.ts","../../../../packages/provider/src/model/embedding-model/embedding-model.schema.v1.ts","../../../../packages/provider/src/types/headers.ts","../../../../packages/provider/src/types/params.ts","../../../../packages/provider/src/types/url.ts","../../../../packages/provider/src/utils/common-config.def.chat-model.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/url.ts","../src/configs/chat-model/common.config.chat-model.together-ai.ts","../src/configs/configs.together-ai.ts","../src/models/chat-models/types/roles.chat-model.together-ai.ts","../src/models/chat-models/types/modalities.chat-model.together-ai.ts","../src/models/chat-models/types/response.chat-model.together-ai.ts","../src/models/chat-models/types/request.chat-model.together-ai.ts","../src/models/chat-models/base-chat-model-schema.together-ai.ts","../src/provider/provider.together-ai.ts","../src/models/chat-models/base-chat-model.together-ai.ts","../src/models/embedding-models/types/modalities.embedding-model.together-ai.ts","../src/models/embedding-models/types/response.embedding-model.together-ai.ts","../src/models/embedding-models/types/request.embedding-model.together-ai.ts","../src/models/embedding-models/base-embedding-model.together-ai.ts","../src/models/embedding-models/base-embedding-model-schema.together-ai.ts"],"names":["safeStringify","obj","seen","key","value","getErrorMessage","error","GatewayBaseErrorLiteral","GatewayBaseError","_GatewayBaseError","info","cause","name","SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","Metadata","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","PartialModalityLiterals","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","Message","Role","MessageMetadata","PartialMessage","createTextContent","createTextMessage","role","content","createToolCallMessage","index","id","args","createPartialTextMessage","createPartialToolCallMessage","Config","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","FunctionToolLiteral","FunctionParameterTypesLiteral","FunctionParameter","Function","ToolTypesLiteral","FunctionTool","ToolLiterals","Tool","FunctionToolMetadata","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","EmbeddingRequests","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","EmbeddingsUsage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatResponse","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","InvalidEmbeddingRequestsErrorLiteral","InvalidEmbeddingRequestsError","_InvalidEmbeddingRequestsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","data","__spreadValues","RangeConfigItemTypeLiteral","RangeConfigItemDef","RangeConfigItemSchema","min","step","defaultValue","RangeConfigItem","SelectStringConfigItemTypeLiteral","SelectStringConfigItemDef","SelectStringConfigItemSchema","choices","SelectStringConfigItem","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","SelectBooleanConfigItemTypeLiteral","SelectBooleanConfigItemDef","SelectBooleanConfigItemSchema","SelectBooleanConfigItem","ConfigItemLiterals","ConfigItemEnum","ConfigItemDef","ChatModelSchema","Roles","Modalities","config","_a","_b","defKeys","schemaKeys","EmbeddingModelSchema","Params","Url","TEMPERATURE","MAX_TOKENS","STOP","TOP_A","TOP_P","TOP_K","MIN_P","FREQUENCY_PENALTY","PRESENCE_PENALTY","SEED","REPETITION_PENALTY","LOG_PROBS","TOP_LOG_PROBS","ECHO","RESPONSE_FORMAT","RESPONSE_FORMAT_WITH_SCHEMA","RESPONSE_SCHEMA","CHAT_CONFIG","removeUndefinedEntries","record","_","urlWithoutTrailingSlash","url","temperature","ot","Kt","maxTokens","maxOutputTokens","stop","maxSequences","Ve","topK","topP","minP","frequencyPenalty","presencePenalty","repetitionPenalty","seed","logProbs","dt","toolChoice","at","responseFormat","responseSchema","lt","kt","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","TogetherAIChatModelConfigs","TogetherAIChatModelRoles","oe","ae","ie","TogetherAIChatModelRolesMap","TogetherAIChatModelModalities","M","g","h","TogetherAIChatModelModalitiesEnum","TogetherAILogProbs","TogetherAIToolCallsCompleteChatResponse","TogetherAICompleteChatResponse","TogetherAIToolCallsStreamChatResponse","TogetherAIStreamChatResponse","TogetherAIChatRequestTool","TogetherAIChatRequestToolChoiceEnum","TogetherAIChatRequestToolChoiceFunction","TogetherAIChatRequestResponseFormat","TogetherAIChatRequestTextContent","TogetherAIChatRequestToolCallContent","TogetherAIChatRequestSystemMessage","TogetherAIChatRequestUserMessage","TogetherAIChatRequestAssistantMessage","TogetherAIChatRequestToolMessage","TogetherAIChatRequestMessage","TogetherAIChatRequest","BaseChatModelSchema","ProviderLiteral","TogetherAI","j","options","modelOptions","BaseChatModel","BaseEmbeddingModel","BaseEmbeddingModelSchema","BaseChatModelOptions","modelSchema","parsedOptions","an","responseHeaders","messages","acc","message","request","safeRequest","parsedRequest","modelName","_config","It","Qt","toolCallMap","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","b","q","textContent","toolCalls","Z","parsedTool","Gt","__async","resolve","transformedMessages","transformedTools","response","safe","B","parsedResponse","Tt","Ct","usage","_logProbs","token","chunk","buffer","__asyncGenerator","lines","line","structuredLine","partialResponse","ft","Mt","TogetherAIEmbeddingModelModalities","H","TogetherAIEmbeddingModelModalitiesEnum","TogetherAIGetEmbeddingsResponse","TogetherAIEmbeddingRequestInput","TogetherAIEmbeddingRequest","BaseEmbeddingModelOptions","requests","embeddingRequests","_parsedRequests","Wt","K","embeddings","item","Ue","Dt"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n repetitionPenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topK,\n topP,\n minP,\n responseSchema,\n responseFormat,\n} from \"./common.config.chat-model.together-ai\";\n\nconst ChatModelBaseConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n z.object({\n temperature: temperature.schema,\n maxTokens: maxTokens(maxOutputTokens).schema,\n stop: stop(maxSequences).schema,\n topP: topP.schema,\n topK: topK.schema,\n minP: minP.schema,\n frequencyPenalty: frequencyPenalty.schema,\n presencePenalty: presencePenalty.schema,\n repetitionPenalty: repetitionPenalty.schema,\n seed: seed.schema.transform((value) => (value === 0 ? undefined : value)),\n logProbs: logProbs.schema,\n toolChoice: toolChoice.schema,\n responseSchema: responseSchema.schema,\n responseFormat: responseFormat.schema,\n });\n\nconst ChatModelBaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n ({\n temperature: temperature.def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP.def,\n topK: topK.def,\n minP: minP.def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n repetitionPenalty: repetitionPenalty.def,\n seed: seed.def,\n logProbs: logProbs.def,\n toolChoice: toolChoice.def,\n responseSchema: responseSchema.def,\n responseFormat: responseFormat.def,\n }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","const safeStringify = (obj: unknown) => {\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return; // Skip circular reference\n }\n seen.add(value);\n }\n return value;\n });\n}\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n if (error == null) return \"unknown error\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n readonly name: string = GatewayBaseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n this.info = info;\n this.cause = cause;\n this.name = name ?? GatewayBaseErrorLiteral;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n return error instanceof GatewayBaseError;\n }\n\n toJSON(): object {\n return {\n name: this.name,\n info: this.info,\n cause: this.cause,\n message: this.message,\n stack: this.stack,\n };\n }\n}\n\nexport { GatewayBaseError };","import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport { \n UserRoleLiteral,\n ToolRoleLiteral, \n SystemRoleLiteral, \n AssistantRoleLiteral, \n RoleEnum, \n RoleLiterals, \n PartialRoleEnum, \n PartialRoleLiterals, \n type RoleEnumType,\n type PartialRoleEnumType, \n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\n media_type: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n type: z.literal(UrlImageContentTypeLiteral),\n url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ImageModalityLiteral),\n detail: ImageContentDetailsLiteral,\n value: ImageContentValue,\n metadata: Metadata,\n });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n Base64ImageContentValue,\n ImageContent,\n ImageContentDetails,\n ImageContentDetailsLiteral,\n ImageModalityLiteral,\n UrlImageContentValue,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentMediaTypeLiterals,\n type Base64ImageContentValueType,\n type ImageContentDetailsLiteralType,\n type ImageContentType,\n type ImageContentValueType,\n type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\n\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\n// text value can already be an empty string, so we don't need to make it optional\n// const PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n// TextContent(Metadata).merge(z.object({\n// modality: z.literal(PartialTextModalityLiteral),\n// }));\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialTextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport { \n TextContent, \n PartialTextContent,\n TextModalityLiteral,\n PartialTextModalityLiteral,\n type TextContentType,\n type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n arguments: z.string(),\n metadata: Metadata,\n });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\n\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\n// const PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n// ToolCallContent(Metadata).partial({\n// id: true,\n// name: true,\n// arguments: true,\n// }).merge(z.object({\n// modality: z.literal(PartialToolCallModalityLiteral),\n// }));\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n arguments: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport { \n ToolCallContent, \n PartialToolCallContent,\n ToolCallModalityLiteral, \n PartialToolCallModalityLiteral,\n type ToolCallContentType, \n type PartialToolCallContentType \n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n data: z.string(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nexport { ToolResponseContent, ToolResponseModalityLiteral, type ToolResponseContentType };\n","import { z } from \"zod\";\n\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { TextContent, TextModalityLiteral, PartialTextContent, PartialTextModalityLiteral } from \"./text-content\";\nimport { ToolCallContent, ToolCallModalityLiteral, PartialToolCallContent, PartialToolCallModalityLiteral } from \"./tool-call-content\";\nimport { ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [TextModalityLiteral, ImageModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: CCM = z.undefined() as CCM,\n) => \n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n ]);\ntype PartialContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialContent<TCM, CCM>>>;\n\n\nexport { \n Content, \n ModalityEnum, \n ModalityLiterals, \n type ContentType, \n type ModalityEnumType,\n PartialContent,\n PartialModalityEnum,\n PartialModalityLiterals,\n type PartialContentType,\n type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { RoleEnum, PartialRoleEnum } from \"./roles\";\n\nconst Message = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = RoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n content: z.array(Content(TextContentMetadata, ImageContentMetadata, ToolCallContentMetadata, ToolResponseContentMetadata)),\n metadata: MessageMetadata,\n });\ntype MessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM>>>;\n\n// const PartialMessage = <\n// R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n// TCM extends z.ZodTypeAny = z.ZodUndefined,\n// CCM extends z.ZodTypeAny = z.ZodUndefined,\n// MM extends z.ZodTypeAny = z.ZodUndefined,\n// >(\n// Role: R = PartialRoleEnum as unknown as R,\n// TextContentMetadata: TCM = z.undefined() as TCM,\n// ToolCallContentMetadata: CCM = z.undefined() as CCM,\n// MessageMetadata: MM = z.undefined() as MM,\n// ) => Message(\n// Role, \n// TextContentMetadata, \n// undefined, \n// ToolCallContentMetadata, \n// undefined, \n// MessageMetadata\n// ).omit({ content: true }).merge(z.object({\n// partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata),\n// }));\nconst PartialMessage = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = PartialRoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n MessageMetadata: MM = z.undefined() as MM,\n) => z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata),\n metadata: MessageMetadata,\n});\ntype PartialMessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;\n\nexport { \n Message, \n PartialMessage,\n type MessageType,\n type PartialMessageType,\n};\n","import { \n RoleEnumType,\n TextContent,\n TextModalityLiteral,\n ImageContent,\n ImageModalityLiteral,\n ImageContentDetailsLiteralType,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n Message,\n MessageType,\n ContentType,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n PartialMessage,\n PartialMessageType,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n return TextContent().parse({\n modality: TextModalityLiteral,\n value: content\n });\n};\n\nconst createToolCallContent = (index: number, id: string, name: string, args: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args\n });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n return Message().parse({\n role: role,\n content: [TextContent().parse({\n modality: TextModalityLiteral,\n value: content\n })]\n });\n};\n\n const createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: UrlImageContentTypeLiteral,\n url: url\n }\n })]\n });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: Base64ImageContentTypeLiteral,\n base64: base64\n }\n })]\n });\n};\n\nconst createToolCallMessage = (role: RoleEnumType, index: number, id: string, name: string, args: string): MessageType => {\n return Message().parse({\n role: role,\n content: [ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args\n })]\n });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data\n })]\n });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialTextContent().parse({\n modality: PartialTextModalityLiteral,\n value: content\n })\n });\n};\n\nconst createPartialToolCallMessage = (role: RoleEnumType, index: number, id?: string, name?: string, args?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolCallContent().parse({\n modality: PartialToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args\n })\n });\n};\n\nexport {\n createTextContent,\n createTextMessage,\n createUrlImageMessage,\n createBase64ImageMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n};","import { z } from \"zod\";\n\n// TODO: rename to MessageConfig or something, has to be relevant for language model only\nconst Config = <\nC extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>\n>(\n Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<\n C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>\n> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { \n Config, \n type ConfigType \n};","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n .object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n })\n .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport { \n ResponseSchema, \n ResponseSchemaProperty, \n ResponseSchemaStructure, \n ResponseSchemaTypes,\n ResponseSchemaTypesLiteral,\n type ResponseSchemaTypesType,\n type ResponseSchemaType,\n type ResponseSchemaPropertyType,\n type ResponseSchemaStructureType,\n};\n","// import { JSONSchema7 } from \"json-schema\";\n// import { Validator } from \"jsonschema\";\nimport { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\n// // TODO: fix 'name' property not allowed in JSONSchema7\n// const FunctionTool = z.object({\n// type: z.literal(FunctionToolLiteral),\n// definition: z.object({\n// schema: z.object({}).refine((schema) => {\n// const validator = new Validator();\n// return validator.validate(schema, { type: \"object\" }).valid;\n// }),\n// }),\n// callback: z.function().args(z.string().min(0)).returns(z.promise(z.any())).optional(),\n// });\n\n// const FunctionTool = z.object({\n// type: z.literal(FunctionToolLiteral),\n// definition: z.object({\n// schema: z.object({}),\n// }),\n// callback: z.function().args(z.string().min(0)).returns(z.promise(z.any())).optional(),\n// });\n// type FunctionToolType = z.infer<typeof FunctionTool>;\n\nconst FunctionParameterTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"];\nconst FunctionParameterTypesLiteral = z.enum([\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"]);\ntype FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;\n\n// TODO: make a proper fix here\nconst FunctionParameter = z.object({\n anyOf: z.array(z.any()).optional(),\n type: FunctionParameterTypesLiteral.optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n});\ntype FunctionParameterType = z.infer<typeof FunctionParameter>;\n\nconst FunctionParameters = z.object({\n type: z.enum([\"object\"]),\n title: z.string().optional(),\n $defs: z.record(z.any()).optional(),\n properties: z.record(FunctionParameter).optional(),\n required: z.array(z.string()).optional(),\n});\ntype FunctionParametersType = z.infer<typeof FunctionParameters>;\n\nconst Function = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n parameters: z.any(),\n strict: z.boolean().optional(),\n});\ntype FunctionType = z.infer<typeof Function>;\n\nconst ToolTypes = [\"function\"];\nconst ToolTypesLiteral = z.enum([\"function\"]);\ntype ToolTypesType = z.infer<typeof ToolTypesLiteral>;\n\nconst FunctionTool = z.object({\n type: ToolTypesLiteral,\n definition: z.object({\n schema: Function, // TODO: convert to union with more tool types\n }),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\n// const Tools = z.array(Tool).nonempty().optional();\n// type ToolsType = z.infer<typeof Tools>;\n\nexport {\n Function,\n FunctionParameter,\n FunctionParameters,\n FunctionParameterTypes,\n FunctionParameterTypesLiteral,\n ToolTypes,\n ToolTypesLiteral,\n type FunctionParametersType,\n type FunctionParameterType,\n type FunctionParameterTypesType,\n type FunctionType,\n type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative())); //TODO: check if zero or negative values are allowed\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <\nM extends z.ZodTypeAny = z.ZodUndefined\n>(\n Metadata: M = z.undefined() as M\n) => z.discriminatedUnion(\"modality\", [\n z.object({\n modality: z.literal(EmbeddingTextModalityLiteral),\n metadata: Metadata,\n requests: TextEmbeddingRequests,\n }),\n z.object({\n modality: z.literal(EmbeddingTokenModalityLiteral),\n metadata: Metadata,\n requests: TokenEmbeddingRequests,\n }),\n]);\ntype EmbeddingRequestsType<\n M extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n EmbeddingModalityLiterals,\n EmbeddingModalityEnum,\n TextEmbeddingRequests,\n TokenEmbeddingRequests,\n EmbeddingRequests,\n type EmbeddingRequestsType,\n type EmbeddingModalityEnumType,\n type TextEmbeddingRequestsType,\n type TokenEmbeddingRequestsType,\n};","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n usage: EmbeddingsUsage.optional(),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n usage: EmbeddingsUsage.optional(),\n }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n FloatEmbedding,\n Base64Embedding,\n EmbeddingsUsage,\n EmbeddingResponse,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsUsageType,\n type EmbeddingResponseType,\n};","import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n promptTokens: z.number().nonnegative(),\n completionTokens: z.number().nonnegative(),\n totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n token: z.string(),\n logProb: z.number(),\n bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n messages: z.array(Message()),\n usage: ChatUsage.optional(), // TODO: Make this required after all providers have implemented it\n logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatResponse = z.object({\n partialMessages: z.array(PartialMessage()),\n usage: ChatUsage.optional(), // TODO: Make this required after all providers have implemented it\n logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport { \n ChatUsage, \n ChatBaseLogProb, \n ChatLogProb, \n ChatLogProbs, \n ChatResponse,\n PartialChatResponse,\n type ChatUsageType, \n type ChatBaseLogProbType, \n type ChatLogProbType, \n type ChatLogProbsType, \n type ChatResponseType,\n type PartialChatResponseType\n};\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ProviderErrorLiteral = \"ProviderError\" as const;\nexport class ProviderError extends GatewayBaseError {\n readonly name = ProviderErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ProviderErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isProviderError(error: unknown): error is ProviderError {\n return error instanceof ProviderError;\n }\n}","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelResponseErrorLiteral = \"ModelResponseError\" as const;\nexport class ModelResponseError extends GatewayBaseError {\n readonly name = ModelResponseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelResponseErrorLiteral);\n this.cause = cause;\n this.info = info;\n }\n\n static isModelResponseError(error: unknown): error is ModelResponseError {\n return error instanceof ModelResponseError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidModelRequestErrorLiteral = \"InvalidModelRequestError\" as const;\nexport class InvalidModelRequestError extends GatewayBaseError {\n readonly name = InvalidModelRequestErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidModelRequestErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidModelRequestError(error: unknown): error is InvalidModelRequestError {\n return error instanceof InvalidModelRequestError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidConfigErrorLiteral = \"InvalidConfigError\" as const;\nexport class InvalidConfigError extends GatewayBaseError {\n readonly name = InvalidConfigErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidConfigErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof InvalidConfigError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidMessagesErrorLiteral = \"InvalidMessagesError\" as const;\nexport class InvalidMessagesError extends GatewayBaseError {\n readonly name = InvalidMessagesErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidMessagesErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof InvalidMessagesError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidToolsErrorLiteral = \"InvalidToolsError\" as const;\nexport class InvalidToolsError extends GatewayBaseError {\n readonly name = InvalidToolsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidToolsErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof InvalidToolsError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidEmbeddingRequestsErrorLiteral = \"InvalidEmbeddingRequestsError\" as const;\nexport class InvalidEmbeddingRequestsError extends GatewayBaseError {\n readonly name = InvalidEmbeddingRequestsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidEmbeddingRequestsErrorLiteral);\n this.info = info;\n this.cause = cause;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidEmbeddingRequestsError(error: unknown): error is InvalidEmbeddingRequestsError {\n return error instanceof InvalidEmbeddingRequestsError;\n }\n}","import { z } from \"zod\";\n\nconst MultiStringConfigItemTypeLiteral = \"multi-string\" as const;\n\nconst MultiStringConfigItemDef = z.object({\n type: z.literal(MultiStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n max: z.number().int().positive(),\n});\ntype MultiStringConfigItemType = z.infer<typeof MultiStringConfigItemDef>;\n\nconst MultiStringConfigItemSchema = (max: number) => z.array(z.string()).max(max).default([]).optional();\ntype MultiStringConfigItemSchemaType = z.infer<ReturnType<typeof MultiStringConfigItemSchema>>;\n\nconst MultiStringConfigItem = (data: Omit<MultiStringConfigItemType, \"type\">) => {\n return {\n def: MultiStringConfigItemDef.parse({\n type: MultiStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: MultiStringConfigItemSchema(data.max),\n };\n};\n\nexport {\n MultiStringConfigItem,\n MultiStringConfigItemDef,\n MultiStringConfigItemSchema,\n MultiStringConfigItemTypeLiteral,\n type MultiStringConfigItemSchemaType,\n type MultiStringConfigItemType,\n};\n","import { z } from \"zod\";\n\nconst RangeConfigItemTypeLiteral = \"range\" as const;\n\nconst RangeConfigItemDef = z.object({\n type: z.literal(RangeConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n min: z.number().int(),\n max: z.number().int(),\n step: z.number().positive(),\n default: z.number(),\n});\ntype RangeConfigItemDefType = z.infer<typeof RangeConfigItemDef>;\n\nconst RangeConfigItemSchema = (min: number, max: number, step: number, defaultValue: number) =>\n z.number().min(min).max(max).step(step).default(defaultValue).optional();\ntype RangeConfigItemSchemaType = z.infer<ReturnType<typeof RangeConfigItemSchema>>;\n\nconst RangeConfigItem = (data: Omit<RangeConfigItemDefType, \"type\">) => {\n return {\n def: RangeConfigItemDef.parse({\n type: RangeConfigItemTypeLiteral,\n ...data,\n }),\n schema: RangeConfigItemSchema(data.min, data.max, data.step, data.default),\n };\n};\n\nexport {\n RangeConfigItem,\n RangeConfigItemDef,\n RangeConfigItemSchema,\n RangeConfigItemTypeLiteral,\n type RangeConfigItemDefType,\n type RangeConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectStringConfigItemTypeLiteral = \"select-string\" as const;\n\nconst SelectStringConfigItemDef = z.object({\n type: z.literal(SelectStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.string().min(1).nullable(),\n choices: z.array(z.string().min(1)),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string | null, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\n .nullable()\n .default(defaultValue)\n .optional();\ntype SelectStringConfigItemSchemaType = z.infer<ReturnType<typeof SelectStringConfigItemSchema>>;\n\nconst SelectStringConfigItem = (data: Omit<SelectStringConfigItemDefType, \"type\">) => {\n return {\n def: SelectStringConfigItemDef.parse({\n type: SelectStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectStringConfigItemSchema(data.default, data.choices),\n };\n};\n\nexport {\n SelectStringConfigItem,\n SelectStringConfigItemDef,\n SelectStringConfigItemSchema,\n SelectStringConfigItemTypeLiteral,\n type SelectStringConfigItemDefType,\n type SelectStringConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst ObjectSchemaConfigItemTypeLiteral = \"object-schema\" as const;\n\nconst ObjectSchemaConfigItemDef = z.object({\n type: z.literal(ObjectSchemaConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n objectSchema: z.any(),\n});\ntype ObjectSchemaConfigItemType = z.infer<typeof ObjectSchemaConfigItemDef>;\n\nconst ObjectSchemaConfigItemSchema = <S extends z.ZodRawShape>(schema: z.ZodObject<S>) => schema.optional();\ntype ObjectSchemaConfigItemSchemaType<S extends z.ZodRawShape = z.ZodRawShape> = z.infer<ReturnType<typeof ObjectSchemaConfigItemSchema<S>>>;\n\nconst ObjectSchemaConfigItem = (data: Omit<ObjectSchemaConfigItemType, \"type\">) => {\n return {\n def: ObjectSchemaConfigItemDef.parse({\n type: ObjectSchemaConfigItemTypeLiteral,\n ...data,\n }),\n schema: ObjectSchemaConfigItemSchema(data.objectSchema),\n };\n};\n\nexport {\n ObjectSchemaConfigItem,\n ObjectSchemaConfigItemDef,\n ObjectSchemaConfigItemSchema,\n ObjectSchemaConfigItemTypeLiteral,\n type ObjectSchemaConfigItemType,\n type ObjectSchemaConfigItemSchemaType,\n};","import { z } from \"zod\";\n\nconst SelectBooleanConfigItemTypeLiteral = \"select-boolean\" as const;\n\nconst SelectBooleanConfigItemDef = z.object({\n type: z.literal(SelectBooleanConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.boolean().nullable(),\n});\ntype SelectBooleanConfigItemDefType = z.infer<typeof SelectBooleanConfigItemDef>;\n\nconst SelectBooleanConfigItemSchema = (defaultValue: boolean | null) =>\n z\n .boolean()\n .nullable()\n .default(defaultValue) \n .optional();\ntype SelectBooleanConfigItemSchemaType = z.infer<ReturnType<typeof SelectBooleanConfigItemSchema>>;\n\nconst SelectBooleanConfigItem = (data: Omit<SelectBooleanConfigItemDefType, \"type\">) => {\n return {\n def: SelectBooleanConfigItemDef.parse({\n type: SelectBooleanConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectBooleanConfigItemSchema(data.default),\n };\n};\n\nexport {\n SelectBooleanConfigItem,\n SelectBooleanConfigItemDef,\n SelectBooleanConfigItemSchema,\n SelectBooleanConfigItemTypeLiteral,\n type SelectBooleanConfigItemDefType,\n type SelectBooleanConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nimport { MultiStringConfigItemDef, MultiStringConfigItemTypeLiteral } from \"./multi-string-config-item\";\nimport { RangeConfigItemDef, RangeConfigItemTypeLiteral } from \"./range-config-item\";\nimport { SelectStringConfigItemDef, SelectStringConfigItemTypeLiteral } from \"./select-string-config-item\";\nimport { ObjectSchemaConfigItemDef, ObjectSchemaConfigItemTypeLiteral } from \"./object-schema-config-item\";\nimport { SelectBooleanConfigItemDef, SelectBooleanConfigItemTypeLiteral } from \"./select-boolean-config-item\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral, \n MultiStringConfigItemTypeLiteral, \n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\n SelectBooleanConfigItemTypeLiteral,\n] as const;\nconst ConfigItemEnum = z.enum(ConfigItemLiterals);\ntype ConfigItemEnumType = z.infer<typeof ConfigItemEnum>;\n\nconst ConfigItemDef = z.discriminatedUnion(\"type\", [\n RangeConfigItemDef, \n MultiStringConfigItemDef, \n SelectStringConfigItemDef,\n SelectBooleanConfigItemDef,\n ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\n","import { z } from \"zod\";\n\nimport { ModalityEnum, RoleEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\nconst ChatModelSchema = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum\n>(\n Roles: R = RoleEnum as unknown as R, \n Modalities: M = ModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n roles: z.record(Roles, z.string().min(1).optional()),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n });\ntype ChatModelSchemaType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum\n> = z.infer<ReturnType<typeof ChatModelSchema<R, M>>>;\n\nexport { \n ChatModelSchema, \n type ChatModelSchemaType \n};\n","import { z } from \"zod\";\n\nimport { EmbeddingModalityEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\n// TODO: add embedding model properties (dimensions, etc)\nconst EmbeddingModelSchema = <\n M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum,\n>(\n Modalities: M = EmbeddingModalityEnum as unknown as M\n) => z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1), // TODO: rename property\n maxOutputTokens: z.number().int().positive().min(1), // TODO: rename property\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n});\ntype EmbeddingModelSchemaType<\n M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum,\n> = z.infer<ReturnType<typeof EmbeddingModelSchema<M>>>;\n\nexport { \n EmbeddingModelSchema, \n type EmbeddingModelSchemaType \n};\n","import { z } from \"zod\";\n\nconst Headers = z.record(z.string());\ntype HeadersType = z.infer<typeof Headers>;\n\nexport { Headers, type HeadersType };\n","import { z } from \"zod\";\n\nconst Params = z.record(z.union([\n z.boolean(),\n z.string(), \n z.number(), \n z.object({}),\n z.array(z.any()), // TODO: any or undefined?\n z.null(), \n z.undefined(), \n]));\ntype ParamsType = z.infer<typeof Params>;\n\nexport { Params, type ParamsType };\n","import { z } from \"zod\";\n\nconst Url = z.string().url();\ntype UrlType = z.infer<typeof Url>;\n\nexport { Url, type UrlType };\n","const TEMPERATURE = {\n type: \"range\",\n title: \"Temperature\",\n description:\n \"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. \\\n For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text \\\n that's unexpectedly fresh.\",\n} as const;\n\nconst MAX_TOKENS = {\n type: \"range\",\n title: \"Max tokens\",\n description:\n \"Specify the total tokens for generation, where one token approximates four English characters. \\\n Setting this to 0 defaults to the model's maximum capacity.\",\n} as const;\n\nconst STOP = (max: number) =>\n ({\n type: \"multi\",\n title: \"Stop sequence\",\n description: \n `Enter up to ${max} sequences that will halt additional text output. \\\n The generated text will exclude these sequences.`,\n }) as const;\n\nconst TOP_A = {\n type: \"range\",\n title: \"Top A\",\n description:\n \"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, \\\n functioning like a dynamic Top-P. \\\n A lower Top-A value narrows down the token choices based on the highest probability token, \\\n while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output.\",\n} as const;\n\nconst TOP_P = {\n type: \"range\",\n title: \"Top P\",\n description:\n \"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, \\\n such as the top 10% when P=0.1. \\\n This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. \\\n It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously.\",\n} as const;\n\nconst TOP_K = {\n type: \"range\",\n title: \"Top K\",\n description:\n \"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options.\",\n} as const;\n\nconst MIN_P = {\n type: \"range\",\n title: \"Min P\",\n description:\n \"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. \\\n (This value varies based on the confidence level of the top token.) \\\n For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered.\",\n} as const;\n\nconst FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"Minimize redundancy.\\\n By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. \\\n The default setting for this penalty is zero.\",\n} as const;\n\nconst PRESENCE_PENALTY = {\n type: \"range\",\n title: \"Presence penalty\",\n description:\n \"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, \\\n thus boosting the chances of exploring fresh topics. \\\n The standard setting for this is zero.\",\n} as const;\n\nconst SEED = {\n type: \"range\",\n title: \"Seed\",\n description:\n \"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. \\\n Deterministic output isn't guaranteed. \\\n Also, changing the model or parameter settings, such as the temperature, \\\n can cause variations in the response even when you use the same seed value. \\\n By default, a random seed value is used.\",\n} as const;\n\nconst REPETITION_PENALTY = {\n type: \"range\",\n title: \"Repetition penalty\",\n description:\n \"Reduces the likelihood of repeating tokens from the input. \\\n Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, \\\n often resulting in run-on sentences missing smaller words. \\\n The token penalty is scaled according to the original token's probability.\",\n} as const;\n\nconst LOG_PROBS = {\n type: \"boolean\",\n title: \"Log probs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n} as const;\n\nconst TOP_LOG_PROBS = {\n type: \"range\",\n title: \"Top log probs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. \\\n 'logprobs' must be set to true if this parameter is used.\",\n} as const;\n\nconst ECHO = {\n type: \"boolean\",\n title: \"Echo\",\n description:\n \"If true, the response will contain the prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT_WITH_SCHEMA = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n} as const; \n\nconst RESPONSE_SCHEMA = {\n type: \"object\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n} as const;\n\nconst CHAT_CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_A,\n TOP_P,\n TOP_K,\n MIN_P,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n REPETITION_PENALTY,\n SEED,\n LOG_PROBS,\n TOP_LOG_PROBS,\n ECHO,\n RESPONSE_FORMAT,\n RESPONSE_FORMAT_WITH_SCHEMA,\n RESPONSE_SCHEMA,\n};\n\nexport { CHAT_CONFIG };\n","const removeUndefinedEntries = <T = unknown>(record: Record<string, T | undefined>): Record<string, T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Object.fromEntries(Object.entries(record).filter(([_, value]) => value != null)) as Record<string, T>;\n};\n\nexport { removeUndefinedEntries };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","import { ResponseSchema } from \"@adaline/types\";\n\nimport { \n CHAT_CONFIG, \n MultiStringConfigItem, \n RangeConfigItem, \n SelectStringConfigItem, \n SelectBooleanConfigItem, \n ObjectSchemaConfigItem \n} from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n param: \"temperature\",\n title: CHAT_CONFIG.TEMPERATURE.title,\n description: CHAT_CONFIG.TEMPERATURE.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"max_tokens\",\n title: CHAT_CONFIG.MAX_TOKENS.title,\n description: CHAT_CONFIG.MAX_TOKENS.description,\n min: 0,\n max: maxOutputTokens,\n step: 1,\n default: 0,\n });\n\nconst stop = (maxSequences: number) =>\n MultiStringConfigItem({\n param: \"stop\",\n title: CHAT_CONFIG.STOP(maxSequences).title,\n description: CHAT_CONFIG.STOP(maxSequences).description,\n max: maxSequences,\n });\n\nconst topK = RangeConfigItem({\n param: \"top_k\",\n title: CHAT_CONFIG.TOP_K.title,\n description: CHAT_CONFIG.TOP_K.description,\n min: 0,\n max: 10000,\n step: 1,\n default: 0,\n});\n\nconst topP = RangeConfigItem({\n param: \"top_p\",\n title: CHAT_CONFIG.TOP_P.title,\n description: CHAT_CONFIG.TOP_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 1,\n});\n\nconst minP = RangeConfigItem({\n param: \"min_p\",\n title: CHAT_CONFIG.MIN_P.title,\n description: CHAT_CONFIG.MIN_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 0,\n});\n\nconst frequencyPenalty = RangeConfigItem({\n param: \"frequency_penalty\",\n title: CHAT_CONFIG.FREQUENCY_PENALTY.title,\n description: CHAT_CONFIG.FREQUENCY_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst presencePenalty = RangeConfigItem({\n param: \"presence_penalty\",\n title: CHAT_CONFIG.PRESENCE_PENALTY.title,\n description: CHAT_CONFIG.PRESENCE_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst repetitionPenalty = RangeConfigItem({\n param: \"repetition_penalty\",\n title: CHAT_CONFIG.REPETITION_PENALTY.title,\n description: CHAT_CONFIG.REPETITION_PENALTY.description,\n min: 0,\n max: 10000,\n step: 0.01,\n default: 0,\n});\n\nconst seed = RangeConfigItem({\n param: \"seed\",\n title: CHAT_CONFIG.SEED.title,\n description: CHAT_CONFIG.SEED.description,\n min: 0,\n max: 1000000,\n step: 1,\n default: 0,\n});\n\nconst logProbs = SelectBooleanConfigItem({\n param: \"logprobs\",\n title: CHAT_CONFIG.LOG_PROBS.title,\n description: CHAT_CONFIG.LOG_PROBS.description,\n default: false,\n});\n\nconst toolChoice = SelectStringConfigItem({\n param: \"tool_choice\",\n title: \"Tool choice\",\n description:\n \"Controls which (if any) tool is called by the model. \\\n 'none' means the model will not call a function. \\\n 'auto' means the model can pick between generating a message or calling a tool.\",\n default: \"auto\",\n choices: [\"auto\", \"required\", \"none\"],\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\n title: CHAT_CONFIG.RESPONSE_FORMAT.title,\n description: CHAT_CONFIG.RESPONSE_FORMAT.description,\n default: \"text\",\n choices: [\"text\", \"json_object\"],\n});\n\nconst responseSchema = ObjectSchemaConfigItem({\n param: \"response_schema\",\n title: CHAT_CONFIG.RESPONSE_SCHEMA.title,\n description: CHAT_CONFIG.RESPONSE_SCHEMA.description,\n objectSchema: ResponseSchema,\n});\n\n\nexport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n repetitionPenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topP,\n topK,\n minP,\n responseFormat,\n responseSchema,\n};\n","import {\n ChatModelBaseConfigDef,\n ChatModelBaseConfigSchema,\n} from \"./chat-model\";\n\nconst TogetherAIChatModelConfigs = {\n base: (maxOutputTokens: number, maxSequences: number) => ({\n def: ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n schema: ChatModelBaseConfigSchema(maxOutputTokens, maxSequences),\n }),\n} as const;\n\nexport { TogetherAIChatModelConfigs };\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst TogetherAIChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst TogetherAIChatModelRolesMap = {\n system: SystemRoleLiteral,\n user: UserRoleLiteral,\n assistant: AssistantRoleLiteral,\n tool: ToolRoleLiteral,\n} as const;\n\nexport { \n TogetherAIChatModelRoles, \n TogetherAIChatModelRolesMap,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst TogetherAIChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst TogetherAIChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport {\n TogetherAIChatModelModalitiesEnum,\n TogetherAIChatModelModalities, \n};\n","import { z } from \"zod\";\n\nconst TogetherAILogProbs = z.object({\n token_ids: z.array(z.number()),\n tokens: z.array(z.string()),\n token_logprobs: z.array(z.number()),\n});\n\nconst TogetherAIToolCallsCompleteChatResponse = z.array(\n z.object({\n id: z.string().min(1),\n type: z.enum([\"function\"]),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n })\n);\n\nconst TogetherAICompleteChatResponse = z.object({\n id: z.string(),\n object: z.literal(\"chat.completion\"),\n created: z.number(),\n model: z.string(),\n prompt: z.any(), // can be stricter but we don't maintain our own original prompt\n choices: z.array(\n z.object({\n index: z.number(),\n message: z.object({\n role: z.string(),\n content: z.string().nullable().optional(),\n tool_calls: TogetherAIToolCallsCompleteChatResponse.optional(),\n }),\n logprobs: TogetherAILogProbs.nullable().optional(),\n seed: z.number().nullable().optional(),\n finish_reason: z.string(),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }).nullable().optional(),\n});\ntype TogetherAICompleteChatResponseType = z.infer<typeof TogetherAICompleteChatResponse>;\n\nconst TogetherAIToolCallsStreamChatResponse = z.array(\n z.object({\n index: z.number().int(),\n id: z.string().min(1).optional(),\n type: z.enum([\"function\"]).optional(),\n function: z\n .object({\n name: z.string().min(1).optional(),\n arguments: z.string().optional(),\n })\n .optional(),\n })\n);\n\nconst TogetherAIStreamChatResponse = z.object({\n id: z.string(),\n object: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n index: z.number(),\n delta: z\n .object({\n token_id: z.number().nullable().optional(),\n role: z.string().nullable().optional(),\n content: z.string().nullable().optional(),\n tool_calls: TogetherAIToolCallsStreamChatResponse.optional(),\n })\n .or(z.object({})),\n logprobs: z.any().nullable().optional(), // logprobs not supported in streaming\n seed: z.number().nullable().optional(),\n finish_reason: z.string().nullable(),\n text: z.string().nullable().optional(),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }).nullable().optional(),\n});\ntype TogetherAIStreamChatResponseType = z.infer<typeof TogetherAIStreamChatResponse>;\n\nexport {\n TogetherAIStreamChatResponse,\n TogetherAICompleteChatResponse,\n TogetherAIToolCallsStreamChatResponse,\n TogetherAIToolCallsCompleteChatResponse,\n type TogetherAIStreamChatResponseType,\n type TogetherAICompleteChatResponseType,\n}","import { z } from \"zod\";\n\nconst TogetherAIChatRequestTool = z.object({\n type: z.literal(\"function\"),\n function: z.object({\n name: z.string().min(1),\n description: z.string().min(1).optional(),\n strict: z.boolean().optional(),\n parameters: z.any(), // TODO: should be more strict\n }),\n});\ntype TogetherAIChatRequestToolType = z.infer<typeof TogetherAIChatRequestTool>;\n\nconst TogetherAIChatRequestToolChoiceEnum = z.enum([\"none\", \"auto\", \"required\"]);\ntype TogetherAIChatRequestToolChoiceEnumType = z.infer<typeof TogetherAIChatRequestToolChoiceEnum>;\n\nconst TogetherAIChatRequestToolChoiceFunction = z.object({\n type: z.literal(\"function\"),\n function: z.object({\n name: z.string().min(1),\n }),\n});\ntype TogetherAIChatRequestToolChoiceFunctionType = z.infer<typeof TogetherAIChatRequestToolChoiceFunction>;\n\n// TODO: fix this for together AI format\nconst TogetherAIChatRequestResponseFormat = z\n .object({\n type: z.enum([\"text\", \"json_object\"]),\n })\n .or(\n z.object({\n type: z.literal(\"json_schema\"),\n json_schema: z.object({\n name: z.string().min(1),\n description: z.string().min(1).optional(),\n strict: z.boolean().optional(),\n schema: z.any(), // TODO: should be more strict\n }),\n })\n );\ntype TogetherAIChatRequestResponseFormatType = z.infer<typeof TogetherAIChatRequestResponseFormat>;\n\nconst TogetherAIChatRequestTextContent = z.string();\ntype TogetherAIChatRequestTextContentType = z.infer<typeof TogetherAIChatRequestTextContent>;\n\nconst TogetherAIChatRequestToolCallContent = z.object({\n id: z.string().min(1),\n type: z.literal(\"function\"),\n function: z.object({\n name: z.string().min(1),\n arguments: z.string().min(1),\n }),\n});\ntype TogetherAIChatRequestToolCallContentType = z.infer<typeof TogetherAIChatRequestToolCallContent>;\n\nconst TogetherAIChatRequestSystemMessage = z.object({\n role: z.literal(\"system\"),\n content: TogetherAIChatRequestTextContent,\n});\ntype TogetherAIChatRequestSystemMessageType = z.infer<typeof TogetherAIChatRequestSystemMessage>;\n\nconst TogetherAIChatRequestUserMessage = z.object({\n role: z.literal(\"user\"),\n content: TogetherAIChatRequestTextContent,\n});\ntype TogetherAIChatRequestUserMessageType = z.infer<typeof TogetherAIChatRequestUserMessage>;\n\nconst TogetherAIChatRequestAssistantMessage = z\n .object({\n role: z.literal(\"assistant\"),\n content: TogetherAIChatRequestTextContent.optional(),\n tool_calls: z.array(TogetherAIChatRequestToolCallContent).min(1).optional(),\n })\ntype TogetherAIChatRequestAssistantMessageType = z.infer<typeof TogetherAIChatRequestAssistantMessage>;\n\nconst TogetherAIChatRequestToolMessage = z.object({\n role: z.literal(\"tool\"),\n tool_call_id: z.string().min(1),\n content: z.string().min(1),\n});\ntype TogetherAIChatRequestToolMessageType = z.infer<typeof TogetherAIChatRequestToolMessage>;\n\nconst TogetherAIChatRequestMessage = z.union([\n TogetherAIChatRequestSystemMessage,\n TogetherAIChatRequestUserMessage,\n TogetherAIChatRequestAssistantMessage,\n TogetherAIChatRequestToolMessage,\n]);\ntype TogetherAIChatRequestMessageType = z.infer<typeof TogetherAIChatRequestMessage>;\n\nconst TogetherAIChatRequest = z.object({\n model: z.string().min(1).optional(),\n messages: z.array(TogetherAIChatRequestMessage).min(1),\n frequency_penalty: z.number().min(-2).max(2).nullable().optional(),\n logprobs: z.number().min(0).max(1).nullable().optional(),\n max_tokens: z.number().min(0).nullable().optional(),\n presence_penalty: z.number().min(-2).max(2).nullable().optional(),\n repetition_penalty: z.number().min(0).max(2).nullable().optional(),\n response_format: TogetherAIChatRequestResponseFormat.optional(),\n seed: z.number().optional(),\n stop: z.string().or(z.array(z.string()).max(4)).nullable().optional(),\n temperature: z.number().min(0).max(1).nullable().optional(),\n top_p: z.number().min(0).max(1).nullable().optional(),\n top_k: z.number().min(0).max(10000).nullable().optional(),\n min_p: z.number().min(0).max(1).nullable().optional(),\n echo: z.boolean().nullable().optional(),\n tools: z.array(TogetherAIChatRequestTool).optional(),\n tool_choice: TogetherAIChatRequestToolChoiceEnum.or(TogetherAIChatRequestToolChoiceFunction).optional(),\n});\ntype TogetherAIChatRequestType = z.infer<typeof TogetherAIChatRequest>;\n\nexport {\n TogetherAIChatRequest,\n TogetherAIChatRequestMessage,\n TogetherAIChatRequestSystemMessage,\n TogetherAIChatRequestUserMessage,\n TogetherAIChatRequestAssistantMessage,\n TogetherAIChatRequestToolMessage,\n TogetherAIChatRequestTextContent,\n TogetherAIChatRequestToolCallContent,\n TogetherAIChatRequestTool,\n TogetherAIChatRequestToolChoiceEnum,\n TogetherAIChatRequestToolChoiceFunction,\n TogetherAIChatRequestResponseFormat,\n type TogetherAIChatRequestType,\n type TogetherAIChatRequestMessageType,\n type TogetherAIChatRequestSystemMessageType,\n type TogetherAIChatRequestUserMessageType,\n type TogetherAIChatRequestAssistantMessageType,\n type TogetherAIChatRequestToolMessageType,\n type TogetherAIChatRequestTextContentType,\n type TogetherAIChatRequestToolCallContentType,\n type TogetherAIChatRequestToolType,\n type TogetherAIChatRequestToolChoiceEnumType,\n type TogetherAIChatRequestToolChoiceFunctionType,\n type TogetherAIChatRequestResponseFormatType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { TogetherAIChatModelConfigs } from \"../../configs\";\n\nimport { \n TogetherAIChatModelRoles, \n TogetherAIChatModelRolesMap,\n TogetherAIChatModelModalities,\n TogetherAIChatModelModalitiesEnum,\n} from \"./types\";\n\nconst BaseChatModelSchema = ChatModelSchema(TogetherAIChatModelRoles, TogetherAIChatModelModalitiesEnum).parse({\n name: \"together-ai-base-chat-model\",\n description: \"Base chat model for Together AI\",\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: TogetherAIChatModelRolesMap,\n modalities: TogetherAIChatModelModalities,\n config: {\n def: TogetherAIChatModelConfigs.base(128000, 4).def,\n schema: TogetherAIChatModelConfigs.base(128000, 4).schema,\n },\n});\n\nexport { BaseChatModelSchema };","import { ChatModelSchemaType, ChatModelV1, EmbeddingModelSchemaType, EmbeddingModelV1, ProviderError, ProviderV1 } from \"@adaline/provider\";\n\nimport {\n BaseChatModel,\n BaseChatModelOptionsType,\n BaseChatModelSchema,\n BaseEmbeddingModel,\n BaseEmbeddingModelOptionsType,\n BaseEmbeddingModelSchema,\n} from \"../models\";\n\nconst ProviderLiteral = \"together-ai\";\nclass TogetherAI<O extends Record<string, any> = Record<string, any>> implements ProviderV1<O> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n static readonly baseUrl = \"https://api.together.xyz/v1\";\n\n chatModelLiterals(): string[] {\n throw new ProviderError({\n info: \"Not implemented\",\n cause: new Error(\"Not implemented\"),\n });\n }\n\n chatModel(name: string, options: O): ChatModelV1 {\n const modelOptions = {\n modelName: name,\n ...options,\n };\n return new BaseChatModel(BaseChatModelSchema, modelOptions as unknown as BaseChatModelOptionsType);\n }\n\n chatModelSchema(name: string): ChatModelSchemaType {\n return BaseChatModelSchema;\n }\n\n chatModelSchemas(): Record<string, ChatModelSchemaType> {\n throw new ProviderError({\n info: \"Not implemented\",\n cause: new Error(\"Not implemented\"),\n });\n }\n\n embeddingModelLiterals(): string[] {\n throw new ProviderError({\n info: \"Not implemented\",\n cause: new Error(\"Not implemented\"),\n });\n }\n\n embeddingModel(name: string, options: O): EmbeddingModelV1 {\n const modelOptions = {\n modelName: name,\n ...options,\n };\n return new BaseEmbeddingModel(BaseEmbeddingModelSchema, modelOptions as unknown as BaseEmbeddingModelOptionsType);\n }\n\n embeddingModelSchema(name: string): EmbeddingModelSchemaType {\n return BaseEmbeddingModelSchema;\n }\n\n embeddingModelSchemas(): Record<string, EmbeddingModelSchemaType> {\n throw new ProviderError({\n info: \"Not implemented\",\n cause: new Error(\"Not implemented\"),\n });\n }\n}\n\nexport { TogetherAI };\n","import { z } from \"zod\";\n\nimport {\n ChatModelSchemaType,\n ChatModelV1,\n HeadersType,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidModelRequestError,\n InvalidToolsError,\n ModelResponseError,\n ParamsType,\n removeUndefinedEntries,\n SelectStringConfigItemDefType,\n UrlType,\n urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\nimport {\n AssistantRoleLiteral,\n ChatLogProbsType,\n ChatResponseType,\n ChatUsageType,\n Config,\n ConfigType,\n ContentType,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createTextMessage,\n createToolCallMessage,\n Message,\n MessageType,\n PartialChatResponseType,\n SystemRoleLiteral,\n TextModalityLiteral,\n Tool,\n ToolCallContentType,\n ToolCallModalityLiteral,\n ToolResponseContentType,\n ToolResponseModalityLiteral,\n ToolRoleLiteral,\n ToolType,\n UserRoleLiteral,\n} from \"@adaline/types\";\n\nimport { TogetherAI } from \"../../provider/provider.together-ai\";\nimport {\n TogetherAICompleteChatResponse,\n TogetherAICompleteChatResponseType,\n TogetherAIStreamChatResponse,\n TogetherAIStreamChatResponseType,\n} from \"./types\";\nimport {\n TogetherAIChatRequest,\n TogetherAIChatRequestAssistantMessageType,\n TogetherAIChatRequestSystemMessageType,\n TogetherAIChatRequestToolCallContentType,\n TogetherAIChatRequestToolMessageType,\n TogetherAIChatRequestToolType,\n TogetherAIChatRequestType,\n TogetherAIChatRequestUserMessageType,\n} from \"./types/request.chat-model.together-ai\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string(),\n modelName: z.string(),\n});\ntype BaseChatModelOptionsType = z.infer<typeof BaseChatModelOptions>;\n\nclass BaseChatModel implements ChatModelV1<ChatModelSchemaType> {\n readonly version = \"v1\" as const;\n modelSchema: ChatModelSchemaType;\n\n private readonly modelName: string;\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly streamChatUrl: string;\n private readonly completeChatUrl: string;\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n const parsedOptions = BaseChatModelOptions.parse(options);\n this.modelSchema = modelSchema;\n this.modelName = parsedOptions.modelName;\n this.apiKey = parsedOptions.apiKey;\n this.baseUrl = urlWithoutTrailingSlash(TogetherAI.baseUrl);\n this.streamChatUrl = urlWithoutTrailingSlash(`${this.baseUrl}/chat/completions`);\n this.completeChatUrl = urlWithoutTrailingSlash(`${this.baseUrl}/chat/completions`);\n }\n\n getDefaultBaseUrl(): UrlType {\n return this.baseUrl;\n }\n\n getDefaultHeaders(): HeadersType {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n source: \"adaline.ai\",\n };\n }\n\n getDefaultParams(): ParamsType {\n return {\n model: this.modelName,\n };\n }\n\n // TODO: support token based rate limiting only, implement after token calculation is implemented\n getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean; delayMs: number } {\n return { shouldRetry: true, delayMs: 0 };\n }\n\n // TODO: add support for non-text modalities\n // TODO: add support for tools if tools are counted as tokens\n // TODO: should validate messages and tools before counting tokens?\n getTokenCount(messages: MessageType[]): number {\n return messages.reduce((acc, message) => {\n return acc + message.content.map((content) => (content.modality === \"text\" ? content.value : \"\")).join(\" \").length;\n }, 0);\n }\n\n transformModelRequest(request: TogetherAIChatRequestType): {\n modelName: string | undefined;\n config: ConfigType;\n messages: MessageType[];\n tools: ToolType[] | undefined;\n } {\n const safeRequest = TogetherAIChatRequest.safeParse(request);\n if (!safeRequest.success) {\n throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n }\n\n const parsedRequest = safeRequest.data;\n\n const modelName = parsedRequest.model;\n\n if (parsedRequest.tool_choice && (!parsedRequest.tools || parsedRequest.tools.length === 0)) {\n throw new InvalidModelRequestError({\n info: `Invalid model request for model : '${this.modelName}'`,\n cause: new Error(\"'tools' are required when 'tool_choice' is specified\"),\n });\n }\n\n // TODO: fix this for together AI format\n const _config: ConfigType = {};\n if (parsedRequest.response_format) {\n _config.responseFormat = parsedRequest.response_format.type;\n if (parsedRequest.response_format.type === \"json_schema\") {\n _config.responseSchema = {\n name: parsedRequest.response_format.json_schema.name,\n description: parsedRequest.response_format.json_schema.description || \"\",\n strict: parsedRequest.response_format.json_schema.strict,\n schema: parsedRequest.response_format.json_schema.schema,\n };\n }\n }\n\n if (parsedRequest.tool_choice) {\n if (typeof parsedRequest.tool_choice === \"string\") {\n _config.toolChoice = parsedRequest.tool_choice;\n } else {\n _config.toolChoice = parsedRequest.tool_choice.function.name;\n }\n }\n\n _config.seed = parsedRequest.seed;\n _config.maxTokens = parsedRequest.max_tokens;\n _config.temperature = parsedRequest.temperature;\n _config.topP = parsedRequest.top_p;\n _config.minP = parsedRequest.min_p;\n _config.topK = parsedRequest.top_k;\n _config.repetitionPenalty = parsedRequest.repetition_penalty;\n _config.presencePenalty = parsedRequest.presence_penalty;\n _config.frequencyPenalty = parsedRequest.frequency_penalty;\n _config.repetitionPenalty = parsedRequest.repetition_penalty;\n _config.stop = parsedRequest.stop;\n _config.logProbs = parsedRequest.logprobs === 0 ? false : true;\n _config.echo = parsedRequest.echo;\n\n const config = Config().parse(removeUndefinedEntries(_config));\n\n const messages: MessageType[] = [];\n const toolCallMap: { [id: string]: ToolCallContentType } = {};\n parsedRequest.messages.forEach((message) => {\n const role = message.role;\n switch (role) {\n case \"system\":\n {\n messages.push({ role: role, content: [{ modality: TextModalityLiteral, value: message.content }] });\n }\n break;\n\n case \"user\":\n {\n messages.push({ role: role, content: [{ modality: TextModalityLiteral, value: message.content }] });\n }\n break;\n\n case \"assistant\":\n {\n const assistantContent: ContentType[] = [];\n\n if (!message.content && !message.tool_calls) {\n throw new InvalidModelRequestError({\n info: `Invalid model request for model : '${this.modelName}'`,\n cause: new Error(\"one of'content' or 'tool_calls' must be provided\"),\n });\n }\n\n if (message.content) {\n assistantContent.push({ modality: TextModalityLiteral, value: message.content });\n }\n\n if (message.tool_calls) {\n const toolCalls = message.tool_calls;\n toolCalls.forEach((toolCall, index) => {\n const toolCallContent: ToolCallContentType = {\n modality: ToolCallModalityLiteral,\n id: toolCall.id,\n index: index,\n name: toolCall.function.name,\n arguments: toolCall.function.arguments,\n };\n assistantContent.push(toolCallContent);\n toolCallMap[toolCallContent.id] = toolCallContent;\n });\n }\n messages.push({ role: role, content: assistantContent });\n }\n break;\n\n case \"tool\":\n {\n const toolResponse = message;\n messages.push({\n role: role,\n content: [\n {\n modality: ToolResponseModalityLiteral,\n id: toolResponse.tool_call_id,\n index: toolCallMap[toolResponse.tool_call_id].index,\n name: toolCallMap[toolResponse.tool_call_id].name,\n data: toolResponse.content,\n },\n ],\n });\n }\n break;\n }\n });\n\n const tools: ToolType[] = [];\n if (parsedRequest.tools) {\n parsedRequest.tools.forEach((tool: TogetherAIChatRequestToolType) => {\n tools.push({\n type: \"function\",\n definition: {\n schema: {\n name: tool.function.name,\n description: tool.function.description || \"\",\n strict: tool.function.strict,\n parameters: tool.function.parameters,\n },\n },\n });\n });\n }\n\n return {\n modelName,\n config,\n messages,\n tools: tools.length > 0 ? tools : undefined,\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig(config: ConfigType, messages?: MessageType[], tools?: ToolType[]): ParamsType {\n const _toolChoice = config.toolChoice;\n delete config.toolChoice; // can have a specific tool name that is not in the model schema, validated at transformation\n\n // TODO: why is safeParse coercing Record to modelSchema.config.schema type rather than returning error?\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: _parsedConfig.error,\n });\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n if (_toolChoice !== undefined) {\n parsedConfig.toolChoice = _toolChoice;\n }\n\n Object.keys(parsedConfig).forEach((key) => {\n if (!(key in this.modelSchema.config.def)) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: new Error(`Invalid config key : '${key}', \n available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`),\n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce((acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = (parsedConfig as ConfigType)[key];\n\n if (paramKey === \"max_tokens\" && def.type === \"range\" && paramValue === 0) {\n acc[paramKey] = def.max;\n } else if (paramKey === \"logprobs\" && def.type === \"select-boolean\") {\n if (paramValue === true) {\n acc[paramKey] = 1;\n } else {\n acc[paramKey] = 0;\n }\n } else {\n acc[paramKey] = paramValue;\n }\n\n return acc;\n }, {} as ParamsType);\n\n if (transformedConfig.top_logprobs && !transformedConfig.logprobs) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: new Error(\"'logprobs' must be 'true' when 'top_logprobs' is specified\"),\n });\n }\n\n if (\"tool_choice\" in transformedConfig && transformedConfig.tool_choice !== undefined) {\n const toolChoice = transformedConfig.tool_choice as string;\n if (!tools || (tools && tools.length === 0)) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: new Error(\"'tools' are required when 'toolChoice' is specified\"),\n });\n } else if (tools && tools.length > 0) {\n const configToolChoice = this.modelSchema.config.def.toolChoice as SelectStringConfigItemDefType;\n if (!configToolChoice.choices.includes(toolChoice)) {\n if (tools.map((tool) => tool.definition.schema.name).includes(toolChoice)) {\n transformedConfig.tool_choice = { type: \"function\", function: { name: toolChoice } };\n } else {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: new Error(`toolChoice : '${toolChoice}' is not part of provided 'tools' names or \n one of [${configToolChoice.choices.join(\", \")}]`),\n });\n }\n }\n }\n }\n\n // TODO: fix this for together AI format\n if (\"response_format\" in transformedConfig && transformedConfig.response_format !== undefined) {\n const responseFormat = transformedConfig.response_format as string;\n if (responseFormat === \"json_schema\") {\n if (!(\"response_schema\" in transformedConfig)) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: new Error(\"'responseSchema' is required in config when 'responseFormat' is 'json_schema'\"),\n });\n } else {\n transformedConfig.response_format = {\n type: \"json_schema\",\n json_schema: transformedConfig.response_schema,\n };\n delete transformedConfig.response_schema;\n }\n } else {\n transformedConfig.response_format = { type: responseFormat };\n }\n }\n\n return transformedConfig;\n }\n\n transformMessages(messages: MessageType[]): ParamsType {\n if (!messages || (messages && messages.length === 0)) {\n return { messages: [] };\n }\n\n const parsedMessages = messages.map((message) => {\n const parsedMessage = Message().safeParse(message);\n if (!parsedMessage.success) {\n throw new InvalidMessagesError({ info: \"Invalid messages\", cause: parsedMessage.error });\n }\n return parsedMessage.data;\n });\n\n parsedMessages.forEach((message) => {\n message.content.forEach((content) => {\n if (!this.modelSchema.modalities.includes(content.modality)) {\n throw new InvalidMessagesError({\n info: `Invalid message content for model : '${this.modelName}'`,\n cause: new Error(`model : '${this.modelName}' does not support modality : '${content.modality}', \n available modalities : [${this.modelSchema.modalities.join(\", \")}]`),\n });\n }\n });\n });\n\n parsedMessages.forEach((message) => {\n if (!Object.keys(this.modelSchema.roles).includes(message.role)) {\n throw new InvalidMessagesError({\n info: `Invalid message content for model : '${this.modelName}'`,\n cause: new Error(`model : '${this.modelName}' does not support role : '${message.role}', \n available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n });\n }\n });\n\n const transformedMessages = parsedMessages.map((message) => {\n switch (message.role) {\n case SystemRoleLiteral: {\n let textContent: TogetherAIChatRequestSystemMessageType[\"content\"] = \"\";\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent += content.value + \"\\n\";\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n\n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n };\n }\n\n case AssistantRoleLiteral: {\n let textContent: TogetherAIChatRequestAssistantMessageType[\"content\"] = \"\";\n const toolCalls: TogetherAIChatRequestToolCallContentType[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent += content.value + \"\\n\";\n } else if (content.modality === ToolCallModalityLiteral) {\n toolCalls.push({\n id: content.id,\n type: \"function\",\n function: { name: content.name, arguments: content.arguments },\n });\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n\n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),\n };\n }\n\n case UserRoleLiteral: {\n let textContent: TogetherAIChatRequestUserMessageType[\"content\"] = \"\";\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent += content.value + \"\\n\";\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n\n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n };\n }\n\n case ToolRoleLiteral: {\n if (message.content.length !== 1) {\n throw new InvalidMessagesError({\n info: `Invalid message for role : '${message.role}'`,\n cause: new Error(`role : '${message.role}' must have exactly one content item`),\n });\n }\n\n if (message.content[0].modality !== ToolResponseModalityLiteral) {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n cause: new Error(`role : '${message.role}' must have content with modality : '${ToolResponseModalityLiteral}'`),\n });\n }\n\n const toolResponse = message.content[0] as ToolResponseContentType;\n const toolResponseMessage: TogetherAIChatRequestToolMessageType = {\n role: this.modelSchema.roles[message.role] as TogetherAIChatRequestToolMessageType[\"role\"],\n tool_call_id: toolResponse.id,\n content: toolResponse.data,\n };\n return toolResponseMessage;\n }\n\n default: {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' for model : ${this.modelName}`,\n cause: new Error(`role : '${message.role}' is not supported, \n available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n });\n }\n }\n });\n\n return { messages: transformedMessages };\n }\n\n transformTools(tools: ToolType[]): ParamsType {\n if (!this.modelSchema.modalities.includes(ToolCallModalityLiteral)) {\n throw new InvalidToolsError({\n info: `Invalid tool 'modality' for model : ${this.modelName}`,\n cause: new Error(`model : '${this.modelName}' does not support tool modality : '${ToolCallModalityLiteral}'`),\n });\n }\n\n if (!tools || (tools && tools.length === 0)) {\n return { tools: [] as ToolType[] };\n }\n\n const parsedTools = tools.map((tool) => {\n const parsedTool = Tool().safeParse(tool);\n if (!parsedTool.success) {\n throw new InvalidToolsError({ info: \"Invalid tools\", cause: parsedTool.error });\n }\n return parsedTool.data;\n });\n\n const transformedTools = parsedTools.map((tool) => ({\n type: \"function\",\n function: tool.definition.schema,\n }));\n\n return { tools: transformedTools };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getCompleteChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.completeChatUrl);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getCompleteChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n }\n\n async getCompleteChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({\n info: \"Messages are required\",\n cause: new Error(\"Messages are required\"),\n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return new Promise((resolve) => {\n resolve({\n ...this.getDefaultParams(),\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n });\n });\n }\n\n transformCompleteChatResponse(response: any): ChatResponseType {\n const safe = TogetherAICompleteChatResponse.safeParse(response);\n if (safe.success) {\n if (safe.data.choices.length === 0) {\n throw new ModelResponseError({\n info: \"Invalid response from model\",\n cause: new Error(`No choices in response : ${JSON.stringify(safe.data)}`),\n });\n }\n\n const parsedResponse: TogetherAICompleteChatResponseType = safe.data;\n const messages: MessageType[] = [];\n const message = parsedResponse.choices[0].message;\n if (message.content) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.content));\n }\n\n if (message.tool_calls) {\n message.tool_calls.forEach((toolCall, index) => {\n messages.push(\n createToolCallMessage(AssistantRoleLiteral, index, toolCall.id, toolCall.function.name, toolCall.function.arguments)\n );\n });\n }\n\n let usage: ChatUsageType | undefined;\n if (parsedResponse.usage) {\n usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\n }\n\n const logProbs: ChatLogProbsType = [];\n const _logProbs = parsedResponse.choices[0].logprobs;\n if (_logProbs) {\n _logProbs.tokens.forEach((token, index) => {\n logProbs.push({\n token: token,\n logProb: _logProbs.token_logprobs[index],\n bytes: null, // TODO: token_id is part of response, can be converted to bytes? or update ChatLogProbsType to include token_id\n topLogProbs: [],\n });\n });\n }\n\n return {\n messages: messages,\n usage: usage,\n logProbs: logProbs,\n };\n }\n\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getStreamChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.streamChatUrl);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getStreamChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n }\n\n async getStreamChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({\n info: \"Messages are required\",\n cause: new Error(\"Messages are required\"),\n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return new Promise((resolve) => {\n resolve({\n stream: true,\n stream_options: { include_usage: true },\n ...this.getDefaultParams(),\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n });\n });\n }\n\n async *transformStreamChatResponseChunk(\n chunk: string,\n buffer: string\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n // merge last buffer message and split into lines\n const lines = (buffer + chunk).split(\"\\n\").filter((line) => line.trim() !== \"\");\n for (const line of lines) {\n if (line === \"data: [DONE]\") {\n // end of stream\n return;\n } else if (line.startsWith(\"data: {\") && line.endsWith(\"}\")) {\n // line contains message\n let structuredLine: any;\n try {\n // remove the 'data :' prefix from string JSON\n structuredLine = JSON.parse(line.substring(\"data: \".length));\n } catch (error) {\n // malformed JSON error\n throw new ModelResponseError({\n info: \"Malformed JSON received in stream\",\n cause: new Error(`Malformed JSON received in stream : ${structuredLine}`),\n });\n }\n\n const safe = TogetherAIStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n const partialResponse: PartialChatResponseType = { partialMessages: [] };\n const parsedResponse: TogetherAIStreamChatResponseType = safe.data;\n if (parsedResponse.choices.length > 0) {\n const message = parsedResponse.choices[0].delta;\n if (message !== undefined && Object.keys(message).length !== 0) {\n if (\"content\" in message && message.content !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n } else if (\"tool_calls\" in message && message.tool_calls) {\n const toolCall = message.tool_calls.at(0)!;\n partialResponse.partialMessages.push(\n createPartialToolCallMessage(\n AssistantRoleLiteral,\n toolCall.index,\n toolCall.id,\n toolCall.function?.name,\n toolCall.function?.arguments\n )\n );\n }\n }\n }\n\n if (parsedResponse.usage) {\n partialResponse.usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\n }\n\n yield { partialResponse: partialResponse, buffer: buffer };\n } else {\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n }\n } else {\n // line starts with unknown event -- ignore\n }\n }\n }\n}\n\nexport { BaseChatModel, type BaseChatModelOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral } from \"@adaline/types\";\n\nconst TogetherAIEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n EmbeddingTextModalityLiteral,\n];\n\nconst TogetherAIEmbeddingModelModalitiesEnum = z.enum([\n EmbeddingTextModalityLiteral,\n]);\n\nexport { TogetherAIEmbeddingModelModalitiesEnum, TogetherAIEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst TogetherAIGetEmbeddingsResponse = z.object({\n object: z.literal(\"list\"),\n model: z.string(),\n data: z.array(\n z.object({\n index: z.number(),\n object: z.literal(\"embedding\"),\n embedding: z.array(z.number()).or(z.string().base64()),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number().nonnegative(),\n total_tokens: z.number().nonnegative(),\n }).optional(),\n});\n\nexport { TogetherAIGetEmbeddingsResponse };","import { z } from \"zod\";\n\nconst TogetherAIEmbeddingRequestInput = z\n .string().min(1)\n .or(z.array(z.string().min(1)).min(1))\ntype TogetherAIEmbeddingRequestInputType = z.infer<typeof TogetherAIEmbeddingRequestInput>;\n\nconst TogetherAIEmbeddingRequest = z.object({\n model: z.string().min(1).optional(),\n input: TogetherAIEmbeddingRequestInput,\n});\ntype TogetherAIEmbeddingRequestType = z.infer<typeof TogetherAIEmbeddingRequest>;\n\nexport {\n TogetherAIEmbeddingRequest,\n TogetherAIEmbeddingRequestInput,\n type TogetherAIEmbeddingRequestType,\n type TogetherAIEmbeddingRequestInputType,\n};","import { z } from \"zod\";\n\nimport {\n EmbeddingModelSchemaType,\n EmbeddingModelV1,\n HeadersType,\n InvalidConfigError,\n InvalidEmbeddingRequestsError,\n InvalidModelRequestError,\n ModelResponseError,\n ParamsType,\n removeUndefinedEntries,\n UrlType,\n urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\nimport {\n Config,\n ConfigType,\n EmbeddingRequests,\n EmbeddingRequestsType,\n EmbeddingResponseType,\n EmbeddingTextModalityLiteral,\n FloatEmbeddingLiteral,\n FloatEmbeddingType,\n} from \"@adaline/types\";\n\nimport { TogetherAI } from \"../../provider/provider.together-ai\";\nimport { TogetherAIEmbeddingRequest, TogetherAIGetEmbeddingsResponse } from \"./types\";\n\nconst BaseEmbeddingModelOptions = z.object({\n apiKey: z.string(),\n modelName: z.string(),\n});\ntype BaseEmbeddingModelOptionsType = z.infer<typeof BaseEmbeddingModelOptions>;\n\nclass BaseEmbeddingModel implements EmbeddingModelV1<EmbeddingModelSchemaType> {\n readonly version = \"v1\" as const;\n modelSchema: EmbeddingModelSchemaType;\n\n private readonly modelName: string;\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly getEmbeddingsUrl: string;\n\n constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n const parsedOptions = BaseEmbeddingModelOptions.parse(options);\n this.modelSchema = modelSchema;\n this.modelName = parsedOptions.modelName;\n this.apiKey = parsedOptions.apiKey;\n this.baseUrl = urlWithoutTrailingSlash(TogetherAI.baseUrl);\n this.getEmbeddingsUrl = urlWithoutTrailingSlash(`${this.baseUrl}/embeddings`);\n }\n\n getDefaultBaseUrl(): UrlType {\n return this.baseUrl;\n }\n\n getDefaultHeaders(): HeadersType {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n source: \"adaline.ai\",\n };\n }\n\n getDefaultParams(): ParamsType {\n return {\n model: this.modelName,\n };\n }\n\n // TODO: support token based rate limiting only, implement after token calculation is implemented\n getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean; delayMs: number } {\n return { shouldRetry: true, delayMs: 0 };\n }\n\n // TODO: should validate requests before counting tokens?\n getTokenCount(requests: EmbeddingRequestsType): number {\n return requests.requests.reduce((acc, request) => acc + request.length, 0);\n }\n\n transformModelRequest(request: any): {\n modelName: string | undefined;\n config: ConfigType;\n embeddingRequests: EmbeddingRequestsType;\n } {\n const safeRequest = TogetherAIEmbeddingRequest.safeParse(request);\n if (!safeRequest.success) {\n throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n }\n\n const parsedRequest = safeRequest.data;\n\n const modelName = parsedRequest.model;\n\n const _config = {};\n const config = Config().parse(removeUndefinedEntries(_config));\n\n const embeddingRequests: EmbeddingRequestsType = {\n modality: EmbeddingTextModalityLiteral,\n requests: [...parsedRequest.input],\n };\n\n return {\n modelName,\n config,\n embeddingRequests,\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig(config: ConfigType, requests?: EmbeddingRequestsType): ParamsType {\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: _parsedConfig.error,\n });\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n // TODO: check if this is still needed if safeParse already checks for that?\n Object.keys(parsedConfig as ConfigType).forEach((key) => {\n if (!this.modelSchema.config.def[key]) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelName}'`,\n cause: new Error(`Invalid config key : '${key}', \n available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`),\n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce((acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = parsedConfig[key];\n acc[paramKey] = paramValue;\n return acc;\n }, {} as ParamsType);\n\n return transformedConfig;\n }\n\n transformEmbeddingRequests(requests: EmbeddingRequestsType): ParamsType {\n const _parsedRequests = EmbeddingRequests().safeParse(requests);\n if (!_parsedRequests.success) {\n throw new InvalidEmbeddingRequestsError({ info: \"Invalid embedding requests\", cause: _parsedRequests.error });\n }\n\n if (requests.modality !== EmbeddingTextModalityLiteral) {\n throw new InvalidEmbeddingRequestsError({\n info: `Invalid embedding requests for model : '${this.modelName}'`,\n cause: new Error(`Only '${EmbeddingTextModalityLiteral}' modality is supported for model : '${this.modelName}'`),\n });\n }\n\n const parsedRequests = _parsedRequests.data as EmbeddingRequestsType;\n return {\n input: parsedRequests.requests,\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getGetEmbeddingsUrl(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.getEmbeddingsUrl);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getGetEmbeddingsHeaders(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n }\n\n async getGetEmbeddingsData(config: ConfigType, requests: EmbeddingRequestsType): Promise<ParamsType> {\n return new Promise((resolve) => {\n resolve({\n ...this.getDefaultParams(),\n ...this.transformConfig(config, requests),\n ...this.transformEmbeddingRequests(requests),\n });\n });\n }\n\n transformGetEmbeddingsResponse(response: any): EmbeddingResponseType {\n const safe = TogetherAIGetEmbeddingsResponse.safeParse(response);\n if (safe.success) {\n const parsedResponse = safe.data;\n const embeddings = parsedResponse.data.map((item) => {\n return {\n index: item.index,\n embedding: item.embedding,\n } as FloatEmbeddingType;\n });\n\n return {\n encodingFormat: FloatEmbeddingLiteral,\n embeddings: embeddings,\n usage: {\n totalTokens: parsedResponse.usage?.total_tokens,\n },\n } as EmbeddingResponseType;\n }\n\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n }\n}\n\nexport { BaseEmbeddingModel, BaseEmbeddingModelOptions, type BaseEmbeddingModelOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { \n TogetherAIEmbeddingModelModalities,\n TogetherAIEmbeddingModelModalitiesEnum,\n} from \"./types\";\n\nconst BaseEmbeddingModelSchema = EmbeddingModelSchema(TogetherAIEmbeddingModelModalitiesEnum).parse({\n name: \"together-ai-base-embedding-model\",\n description: \"Base embedding model for Together AI\",\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n modalities: TogetherAIEmbeddingModelModalities,\n config: {\n def: {},\n schema: z.object({}),\n },\n});\n\nexport { BaseEmbeddingModelSchema };"]}