@adaline/openai 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../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/content/token-content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/types/src/utils/merge-partial-messages.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/embedding/embeddings.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/provider/src/utils/common-config.ts","../../../../packages/provider/src/utils/get-error-message.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/uint8.ts","../../../../packages/provider/src/utils/url-without-trailing-slash.ts","../../../../packages/provider/src/errors/api-request.error.ts","../../../../packages/provider/src/errors/api-response.error.ts","../../../../packages/provider/src/errors/download.error.ts","../../../../packages/provider/src/errors/invalid-auth.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-endpoint.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-modality.error.ts","../../../../packages/provider/src/errors/invalid-model.error.ts","../../../../packages/provider/src/errors/invalid-prompt.error.ts","../../../../packages/provider/src/errors/invalid-role.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/errors/invalid-embedding-requests.error.ts","../../../../packages/provider/src/errors/json-parse.error.ts","../../../../packages/provider/src/errors/validation.error.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.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/config-item.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","../src/configs/language-model/common.config.language-model.openai.ts","../src/configs/language-model/base.config.language-model.openai.ts","../src/configs/language-model/response-schema.language-model.openai.ts","../src/configs/word-embedding/common.config.word-embedding.openai.ts","../src/configs/word-embedding/base.config.word-embedding.openai.ts","../src/configs/configs.openai.ts","../src/models/chat-models/types/roles.chat-model.openai.ts","../src/models/chat-models/types/modalities.chat-model.openai.ts","../src/models/chat-models/types/response.chat-model.openai.ts","../src/models/chat-models/base-language-model.openai.ts","../src/models/chat-models/gpt-4o.openai.ts","../src/models/embedding-models/types/modalitites.embedding-model.openai.ts","../src/models/embedding-models/types/response.embedding-model.openai.ts","../src/models/embedding-models/base-embedding-model.openai.ts","../src/models/embedding-models/text-embedding-ada-002.openai.ts","../src/provider/provider.openai.ts"],"names":["SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ImageModalityLiteral","Base64ImageContentTypeLiteral","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","PartialModalityEnum","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","TokenModalityLiteral","TokenContent","Message","Role","MessageMetadata","PartialMessage","createTextMessage","role","content","createUrlImageMessage","url","detail","createBase64ImageMessage","base64","createToolCallMessage","index","id","name","args","createToolResponseMessage","data","createPartialTextMessage","createPartialToolCallMessage","mergePartialMessages","messages","partialMessages","mergedMessages","lastMessageModality","lastTextContent","lastToolCallContent","message","toolCallContent","textContent","Config","FunctionToolLiteral","FunctionParameterTypes","FunctionParameterTypesLiteral","FunctionParameter","FunctionParameters","Function","ToolTypes","ToolTypesLiteral","FunctionTool","ToolLiterals","ToolEnum","Tool","FunctionToolMetadata","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","Embeddings","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","EmbeddingRequests","r","E","Ne","Ue","_","Ce","xt","ke","vt","qe","wt","J","F","kt","Ae","De","Le","Pe","Ct","Oe","It","$e","je","M","Te","Se","S","I","dt","Me","we","q","ct","ve","xe","be","D","g","U","c","Ee","ze","fe","G","Je","C","ut","Fe","Re","Mt","A","x","St","Ge","N","k","he","Tt","_e","$","Ie","ye","ft","zt","Et","gt","yt","ht","pt","bt","TEMPERATURE","MAX_TOKENS","STOP","max","TOP_P","TOP_K","FREQUENCY_PENALTY","PRESENCE_PENALTY","CONFIG","getErrorMessage","error","removeUndefinedEntries","record","value","convertBase64ToUint8Array","base64String","base64Url","latin1string","byte","convertUint8ArrayToBase64","array","i","urlWithoutTrailingSlash","ApiRequestError","info","ApiResponseError","DownloadError","InvalidAuthError","InvalidConfigError","InvalidEndpointError","InvalidMessagesError","InvalidModalityError","InvalidModelError","InvalidPromptError","InvalidRoleError","InvalidToolsError","InvalidEmbeddingRequestsError","JsonParseError","ValidationError","import_types","X","Z","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","MultiStringConfigItem","__spreadValues","RangeConfigItemTypeLiteral","RangeConfigItemDef","RangeConfigItemSchema","min","step","defaultValue","RangeConfigItem","SelectStringConfigItemTypeLiteral","SelectStringConfigItemDef","SelectStringConfigItemSchema","choices","SelectStringConfigItem","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","ConfigItemLiterals","ConfigItemEnum","ConfigItemDef","ChatModelSchema","Roles","P","Modalities","config","_a","_b","defKeys","schemaKeys","key","EmbeddingModelSchema","Ke","Headers","Params","Url","import_provider","temperature","maxTokens","maxOutputTokens","stop","maxSequences","topP","frequencyPenalty","presencePenalty","seed","responseFormat","toolChoice","BaseConfigSchema","BaseConfigDef","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","responseSchema","ResponseSchemaConfigDef","__spreadProps","ResponseSchemaConfigSchema","encodingFormat","dimensions","BaseWordEmbeddingConfigSchema","BaseWordEmbeddingConfigDef","OpenAIConfigs","OpenAIWordEmbeddingConfigs","OpenAIChatModelRoles","OpenAIChatModelRolesMap","OpenAIChatModelModalities","OpenAIChatModelModalitiesEnum","OpenAIToolCallsCompleteChatResponse","OpenAICompleteChatResponse","OpenAIToolCallsStreamChatResponse","OpenAIStreamChatResponse","BaseChatModelOptions","BaseChatModel","modelSchema","options","acc","tools","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","tool","parsedMessages","parsedMessage","toolCalls","imageContent","combinedContent","toolResponse","parsedTool","transformedMessages","transformedTools","response","safe","toolCall","chunk","buffer","__asyncGenerator","lines","line","structuredLine","GPT4oLiteral","GPT4oDescription","GPT4oSchema","GPT4oOptions","GPT4o","OpenAIEmbeddingModelModalities","OpenAIEmbeddingModelModalitiesEnum","OpenAIGetEmbeddingsResponse","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","parsedRequests","request","validatedConfig","parsedResponse","embeddings","item","TextEmbeddingAda002Literal","TextEmbeddingAda002Description","TextEmbeddingAda002Schema","TextEmbeddingAda002Options","TextEmbeddingAda002","ProviderLiteral","OpenAI","model","modelOptions"],"mappings":"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","file":"index.js","sourcesContent":["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 Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\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 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\nconst TokenModalityLiteral = \"token\" as const;\n\nconst TokenContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TokenModalityLiteral),\n value: z.array(z.number().int().nonnegative()),\n metadata: Metadata,\n });\ntype TokenContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TokenContent<M>>>;\n\nexport { \n TokenContent, \n TokenModalityLiteral,\n type TokenContentType,\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 PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n PartialMessage,\n PartialMessageType,\n} from \"./../message\";\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 createTextMessage,\n createUrlImageMessage,\n createBase64ImageMessage,\n createToolCallMessage,\n createToolResponseMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n};","import { \n AssistantRoleLiteral,\n TextModalityLiteral,\n ToolCallModalityLiteral,\n TextContentType,\n ToolCallContentType,\n MessageType, \n PartialTextModalityLiteral,\n PartialToolCallModalityLiteral,\n PartialTextContentType, \n PartialToolCallContentType,\n PartialMessageType \n} from \"./../message\";\n\n\n// TODO: add role sense, currently just assumes 'assistant' role\nconst mergePartialMessages = (messages: MessageType[], partialMessages: PartialMessageType[]): MessageType[] => {\n if (partialMessages.length === 0) { return messages }\n\n const mergedMessages: MessageType[] = messages;\n\n let lastMessageModality: \n typeof PartialTextModalityLiteral | \n typeof PartialToolCallModalityLiteral = partialMessages[0].partialContent.modality;\n\n let lastTextContent: PartialTextContentType = {\n modality: PartialTextModalityLiteral,\n value: \"\"\n };\n\n let lastToolCallContent: PartialToolCallContentType = {\n modality: PartialToolCallModalityLiteral,\n index: 0,\n id: \"\",\n name: \"\",\n arguments: \"\"\n };\n\n partialMessages.forEach((message) => {\n // last message and current message are of the same modality, merge them\n if (message.partialContent.modality === lastMessageModality) {\n // always merge text content\n if (message.partialContent.modality === PartialTextModalityLiteral) {\n lastTextContent.value += message.partialContent.value;\n } else if (message.partialContent.modality === PartialToolCallModalityLiteral) {\n // same tool call index, merge tool call index\n if (lastToolCallContent.index == message.partialContent.index) {\n lastToolCallContent.id += message.partialContent.id || \"\";\n lastToolCallContent.name += message.partialContent.name || \"\";\n lastToolCallContent.arguments += message.partialContent.arguments || \"\";\n } else {\n // different tool call index, push last tool call\n const toolCallContent: ToolCallContentType = {\n modality: ToolCallModalityLiteral,\n index: lastToolCallContent.index,\n id: lastToolCallContent.id as string,\n name: lastToolCallContent.name as string,\n arguments: lastToolCallContent.arguments as string,\n };\n mergedMessages.push({\n role: AssistantRoleLiteral,\n content: [toolCallContent]\n });\n // reset last tool call to current message\n lastToolCallContent = {\n modality: PartialToolCallModalityLiteral,\n index: message.partialContent.index,\n id: message.partialContent.id || \"\",\n name: message.partialContent.name || \"\",\n arguments: message.partialContent.arguments || \"\",\n };\n }\n }\n } else {\n // last message and current message are of different modalities, push last message\n if (lastMessageModality === PartialTextModalityLiteral) {\n const textContent: TextContentType = {\n modality: TextModalityLiteral,\n value: lastTextContent.value,\n };\n mergedMessages.push({\n role: AssistantRoleLiteral,\n content: [textContent]\n } as MessageType);\n // reset last text content to blank message\n lastTextContent = {\n modality: PartialTextModalityLiteral,\n value: \"\",\n };\n } else if (lastMessageModality === PartialToolCallModalityLiteral) {\n // push last tool call\n const toolCallContent: ToolCallContentType = {\n modality: ToolCallModalityLiteral,\n index: lastToolCallContent.index,\n id: lastToolCallContent.id as string,\n name: lastToolCallContent.name as string,\n arguments: lastToolCallContent.arguments as string,\n };\n mergedMessages.push({\n role: AssistantRoleLiteral,\n content: [toolCallContent]\n });\n // reset last tool call to blank message\n lastToolCallContent = {\n modality: PartialToolCallModalityLiteral,\n index: 0,\n id: \"\",\n name: \"\",\n arguments: \"\",\n };\n }\n\n // update last message modality and content\n lastMessageModality = message.partialContent.modality;\n if (message.partialContent.modality === PartialTextModalityLiteral) {\n lastTextContent.value += message.partialContent.value;\n } else if (message.partialContent.modality === PartialToolCallModalityLiteral) {\n lastToolCallContent = {\n modality: PartialToolCallModalityLiteral,\n index: message.partialContent.index,\n id: message.partialContent.id || \"\",\n name: message.partialContent.name || \"\",\n arguments: message.partialContent.arguments || \"\",\n };\n }\n }\n })\n\n if (lastMessageModality === PartialTextModalityLiteral) {\n const textContent: TextContentType = {\n modality: TextModalityLiteral,\n value: lastTextContent.value,\n };\n mergedMessages.push({\n role: AssistantRoleLiteral,\n content: [textContent]\n } as MessageType);\n } else if (lastMessageModality === PartialToolCallModalityLiteral) {\n // push last tool call\n const toolCallContent: ToolCallContentType = {\n modality: ToolCallModalityLiteral,\n index: lastToolCallContent.index,\n id: lastToolCallContent.id as string,\n name: lastToolCallContent.name as string,\n arguments: lastToolCallContent.arguments as string,\n };\n mergedMessages.push({\n role: AssistantRoleLiteral,\n content: [toolCallContent]\n });\n }\n\n return mergedMessages;\n};\n\nexport { mergePartialMessages };\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 { 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 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 Embeddings = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n }),\n]);\ntype EmbeddingsType = z.infer<typeof Embeddings>;\n\nexport {\n FloatEmbedding,\n Base64Embedding,\n Embeddings,\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsType,\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};","// TODO: add a schema for common config items\nconst 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. 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.\",\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. 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: `Enter up to ${max} sequences that will halt additional text output. The generated text will exclude these sequences.`,\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, 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.\",\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 FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"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.\",\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, thus boosting the chances of exploring fresh topics. The standard setting for this is zero.\",\n} as const;\n\n\n\nconst CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_P,\n TOP_K,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n};\n\nexport { CONFIG };\n","const 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 JSON.stringify(error);\n};\n\nexport { getErrorMessage };\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 convertBase64ToUint8Array = (base64String: string): Uint8Array => {\n const base64Url = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const latin1string = globalThis.atob(base64Url);\n return Uint8Array.from(latin1string, (byte) => byte.codePointAt(0)!);\n};\n\nconst convertUint8ArrayToBase64 = (array: Uint8Array): string => {\n let latin1string = \"\";\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return globalThis.btoa(latin1string);\n};\n\nexport { convertBase64ToUint8Array, convertUint8ArrayToBase64 };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","import { getErrorMessage } from \"../utils\";\n\nexport class ApiRequestError extends Error {\n readonly name = \"Gateway_ApiRequestError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_ApiRequestError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isApiRequestError(error: unknown): error is ApiRequestError {\n return error instanceof Error && error.name === this.name && typeof (error as ApiRequestError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class ApiResponseError extends Error {\n readonly name = \"Gateway_ApiResponseError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_ApiResponseError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isApiResponseError(error: unknown): error is ApiResponseError {\n return error instanceof Error && error.name === this.name && typeof (error as ApiResponseError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class DownloadError extends Error {\n readonly name = \"Gateway_DownloadError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_DownloadError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isDownloadError(error: unknown): error is DownloadError {\n return error instanceof Error && error.name === this.name && typeof (error as DownloadError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidAuthError extends Error {\n readonly name = \"Gateway_InvalidAuthError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidAuthError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidAuthError(error: unknown): error is InvalidAuthError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidAuthError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidConfigError extends Error {\n readonly name = \"Gateway_InvalidConfigError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidConfigError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidConfigError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidEndpointError extends Error {\n readonly name = \"Gateway_InvalidEndpointError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidEndpointError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidEndpointError(error: unknown): error is InvalidEndpointError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidEndpointError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidMessagesError extends Error {\n readonly name = \"Gateway_InvalidMessagesError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidMessagesError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidMessagesError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidModalityError extends Error {\n readonly name = \"Gateway_InvalidModalityError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidModalityError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidModalityError(error: unknown): error is InvalidModalityError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidModalityError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidModelError extends Error {\n readonly name = \"Gateway_InvalidModelError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidModelError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidModelError(error: unknown): error is InvalidModelError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidModelError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidPromptError extends Error {\n readonly name = \"Gateway_InvalidPromptError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidPromptError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidPromptError(error: unknown): error is InvalidPromptError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidPromptError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidRoleError extends Error {\n readonly name = \"Gateway_InvalidRoleError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidRoleError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidRoleError(error: unknown): error is InvalidRoleError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidRoleError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidToolsError extends Error {\n readonly name = \"Gateway_InvalidToolsError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidToolsError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidToolsError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class InvalidEmbeddingRequestsError extends Error {\n readonly name = \"Gateway_InvalidEmbeddingRequestsError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_InvalidEmbeddingRequestsError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.info = info;\n this.cause = error;\n }\n\n static isInvalidEmbeddingRequestsError(error: unknown): error is InvalidEmbeddingRequestsError {\n return error instanceof Error && error.name === this.name && typeof (error as InvalidEmbeddingRequestsError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n info: this.info,\n stack: this.stack,\n };\n }\n}","import { getErrorMessage } from \"../utils\";\n\nexport class JsonParseError extends Error {\n readonly name = \"Gateway_JsonParseError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_JsonParseError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isJsonParseError(error: unknown): error is JsonParseError {\n return error instanceof Error && error.name === this.name && typeof (error as JsonParseError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\n","import { getErrorMessage } from \"../utils\";\n\nexport class ValidationError extends Error {\n readonly name = \"Gateway_ValidationError\";\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, error }: { info: string; error: unknown }) {\n super(`[Gateway_ValidationError]: ${info}.\\n` + `Message: ${getErrorMessage(error)}`);\n this.cause = error;\n this.info = info;\n }\n\n static isValidationError(error: unknown): error is ValidationError {\n return error instanceof Error && error.name === this.name && typeof (error as ValidationError).info === \"string\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n cause: this.cause,\n stack: this.stack,\n info: this.info,\n };\n }\n}\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\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().int(),\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),\n choices: z.array(z.string().min(1)),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\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;\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\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\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral, \n MultiStringConfigItemTypeLiteral, \n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\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 ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\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().optional());\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","import { CONFIG, MultiStringConfigItem, RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n param: \"temperature\",\n title: CONFIG.TEMPERATURE.title,\n description: CONFIG.TEMPERATURE.description,\n min: 0,\n max: 2,\n step: 0.01,\n default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"max_tokens\",\n title: CONFIG.MAX_TOKENS.title,\n description: 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: CONFIG.STOP(maxSequences).title,\n description: CONFIG.STOP(maxSequences).description,\n max: maxSequences,\n });\n\nconst topP = RangeConfigItem({\n param: \"top_p\",\n title: CONFIG.TOP_P.title,\n description: CONFIG.TOP_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 1,\n});\n\nconst frequencyPenalty = RangeConfigItem({\n param: \"frequency_penalty\",\n title: CONFIG.FREQUENCY_PENALTY.title,\n description: 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: CONFIG.PRESENCE_PENALTY.title,\n description: CONFIG.PRESENCE_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst seed = RangeConfigItem({\n param: \"seed\",\n title: \"Seed\",\n description: \"This is in BETA. Set a seed to get reproducible results. Determinism is not guaranteed. Set to 0 to disable.\",\n min: 0,\n max: 1000000,\n step: 1,\n default: 0,\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\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 default: \"text\",\n choices: [\"text\", \"json_object\"],\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. 'none' means the model will not call a function. 'auto' means the model can pick between generating a message or calling a tool.\",\n default: \"auto\",\n choices: [\"auto\", \"required\", \"none\"],\n});\n\nexport { frequencyPenalty, maxTokens, presencePenalty, responseFormat, seed, stop, temperature, toolChoice, topP };\n","import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n maxTokens,\n presencePenalty,\n responseFormat,\n seed,\n stop,\n temperature,\n toolChoice,\n topP,\n} from \"./common.config.language-model.openai\";\n\nconst BaseConfigSchema = (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 frequencyPenalty: frequencyPenalty.schema,\n presencePenalty: presencePenalty.schema,\n seed: seed.schema.transform((value) => (value === 0 ? undefined : value)),\n responseFormat: responseFormat.schema,\n toolChoice: toolChoice.schema,\n });\n\nconst BaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n ({\n temperature: temperature.def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP.def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n seed: seed.def,\n responseFormat: responseFormat.def,\n toolChoice: toolChoice.def,\n }) as const;\n\nexport { BaseConfigDef, BaseConfigSchema };\n","import { z } from \"zod\";\n\nimport { SelectStringConfigItem, ObjectSchemaConfigItem } from \"@adaline/provider\";\n\nimport { BaseConfigDef, BaseConfigSchema } from \"./base.config.language-model.openai\";\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);\n// type ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([\n ResponseSchemaTypesLiteral, \n z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))\n ]).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});\n// type 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});\n// type ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = 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 strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n}).optional();\n// type ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nconst responseSchema = ObjectSchemaConfigItem({\n param: \"response_schema\",\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 objectSchema: ResponseSchema,\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\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 default: \"text\",\n choices: [\"text\", \"json_object\", \"json_schema\"],\n});\n\nconst ResponseSchemaConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n ...BaseConfigDef(maxOutputTokens, maxSequences),\n responseFormat: responseFormat.def,\n responseSchema: responseSchema.def,\n});\n\nconst ResponseSchemaConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n BaseConfigSchema(maxOutputTokens, maxSequences).extend({\n responseFormat: responseFormat.schema,\n responseSchema: responseSchema.schema,\n });\n\nexport { ResponseSchemaConfigDef, ResponseSchemaConfigSchema };","import { RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst encodingFormat = SelectStringConfigItem({\n param: \"encoding_format\",\n title: \"Encoding format\",\n description:\n \"Select the encoding format for the word embedding.\",\n default: \"float\",\n choices: [\"float\", \"base64\"],\n});\n\nconst dimensions = RangeConfigItem({\n param: \"dimensions\",\n title: \"Dimensions\",\n description: \"Select the number of dimensions for the word embedding.\",\n min: 1,\n max: 1024, // TODO: check if this is the base max\n step: 1,\n default: 1024, // TODO: check if this is the base default\n});\n\nexport { \n encodingFormat, \n dimensions \n};\n","import { z } from \"zod\";\n\nimport {\n encodingFormat,\n dimensions,\n} from \"./common.config.word-embedding.openai\";\n\nconst BaseWordEmbeddingConfigSchema = () =>\n z.object({\n encodingFormat: encodingFormat.schema,\n dimensions: dimensions.schema, // TODO: only supported for text-embedding-3 and later models\n });\n\nconst BaseWordEmbeddingConfigDef = () =>\n ({\n encodingFormat: encodingFormat.def,\n dimensions: dimensions.def,\n }) as const;\n\nexport { \n BaseWordEmbeddingConfigDef, \n BaseWordEmbeddingConfigSchema \n};\n","import { BaseConfigDef, BaseConfigSchema, ResponseSchemaConfigDef, ResponseSchemaConfigSchema } from \"./language-model\";\nimport { BaseWordEmbeddingConfigDef, BaseWordEmbeddingConfigSchema } from \"./word-embedding\";\n\nconst OpenAIConfigs = {\n base: (maxOutputTokens: number, maxSequences: number) => ({\n def: BaseConfigDef(maxOutputTokens, maxSequences),\n schema: BaseConfigSchema(maxOutputTokens, maxSequences),\n }),\n responseSchema: (maxOutputTokens: number, maxSequences: number) => ({\n def: ResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n schema: ResponseSchemaConfigSchema(maxOutputTokens, maxSequences),\n }),\n} as const;\n\nconst OpenAIWordEmbeddingConfigs = {\n base: () => ({\n def: BaseWordEmbeddingConfigDef(),\n schema: BaseWordEmbeddingConfigSchema(),\n }),\n} as const;\n\nexport { \n OpenAIConfigs, \n OpenAIWordEmbeddingConfigs \n};\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst OpenAIChatModelRolesMap = {\n system: SystemRoleLiteral,\n user: UserRoleLiteral,\n assistant: AssistantRoleLiteral,\n tool: ToolRoleLiteral,\n} as const;\n\nexport { OpenAIChatModelRoles, OpenAIChatModelRolesMap };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst OpenAIChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport { OpenAIChatModelModalitiesEnum, OpenAIChatModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIToolCallsCompleteChatResponse = 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 OpenAICompleteChatResponse = z.object({\n id: z.string(),\n object: z.literal(\"chat.completion\"),\n created: z.number(),\n model: z.string(),\n system_fingerprint: z.any(),\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: OpenAIToolCallsCompleteChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n }),\n logprobs: z.any(),\n finish_reason: z.any(),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }),\n});\n\nconst OpenAIToolCallsStreamChatResponse = 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 OpenAIStreamChatResponse = z.object({\n id: z.string(),\n object: z.string(),\n created: z.number(),\n model: z.string(),\n system_fingerprint: z.any().nullable(),\n choices: z.array(\n z.object({\n index: z.number(),\n delta: z\n .object({\n content: z.string().nullable().optional(),\n tool_calls: OpenAIToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n })\n .or(z.object({})),\n finish_reason: z.any().nullable(),\n logprobs: z.any().nullable(),\n })\n ),\n});\n\nexport {\n OpenAIStreamChatResponse,\n OpenAICompleteChatResponse,\n OpenAIToolCallsStreamChatResponse,\n OpenAIToolCallsCompleteChatResponse,\n}","import { z } from \"zod\";\n\nimport {\n HeadersType,\n ParamsType,\n UrlType,\n urlWithoutTrailingSlash,\n ChatModelV1,\n ChatModelSchemaType,\n SelectStringConfigItemDefType,\n ApiRequestError,\n ApiResponseError,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidToolsError,\n} from \"@adaline/provider\";\n\nimport {\n SystemRoleLiteral,\n UserRoleLiteral,\n AssistantRoleLiteral,\n ToolRoleLiteral,\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ImageModalityLiteral,\n Message,\n Tool,\n ConfigType,\n MessageType,\n PartialMessageType,\n ToolType,\n ToolResponseContentType,\n createTextMessage,\n createToolCallMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n} from \"@adaline/types\";\n\nimport { OpenAICompleteChatResponse, OpenAIStreamChatResponse } from \"./types/response.chat-model.openai\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string(), // TODO: add min and max length ?\n proxyUrl: z.string().optional(), // TODO: use strict url type\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 apiKey: string;\n private readonly baseUrl: string = \"https://api.openai.com/v1\"; // TODO: move to options coming from Provider\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n this.modelSchema = modelSchema;\n this.apiKey = options.apiKey;\n if (options.proxyUrl) this.baseUrl = urlWithoutTrailingSlash(options.proxyUrl);\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 getDefaultBaseUrl = (): UrlType => {\n return this.baseUrl;\n };\n\n getDefaultHeaders = (): HeadersType => {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n };\n\n getDefaultParams = (): ParamsType => {\n return {\n model: this.modelSchema.name,\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({ info: this.modelSchema.name, error: _parsedConfig.error })\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: this.modelSchema.name, \n error: new Error(`Invalid config key: '${key}'`) \n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\n (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 {\n acc[paramKey] = paramValue;\n }\n\n return acc;\n },\n {} as ParamsType\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: this.modelSchema.name, \n error: 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: this.modelSchema.name, \n error: new Error(`Invalid 'toolChoice': '${toolChoice}' is not part of provided tools or \n one of '${configToolChoice.choices.join(\", \")}'`) \n });\n }\n }\n }\n }\n\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: this.modelSchema.name, \n error: 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: this.modelSchema.name, error: 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: this.modelSchema.name, \n error: new Error(`model: '${this.modelSchema.name}' does not support modality: '${content.modality}'`) \n });\n }\n });\n });\n\n const transformedMessages = parsedMessages.map((message) => {\n switch (message.role) {\n case SystemRoleLiteral: {\n const textContent: string[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push(content.value);\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${SystemRoleLiteral}' 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 const textContent: string[] = [];\n const toolCalls: { id: string, type: \"function\", function: { name: string, arguments: string } }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push(content.value);\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: this.modelSchema.name, \n error: new Error(`role: '${AssistantRoleLiteral}' 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 const textContent: { type: \"text\", text: string }[] = [];\n const imageContent: { type: \"image_url\", image_url: { url: string, detail: string } }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push({ type: \"text\", text: content.value });\n } else if (content.modality === ImageModalityLiteral) {\n imageContent.push({ \n type: \"image_url\", \n image_url: { \n url: content.value.type === \"url\" ? content.value.url : content.value.base64, \n detail: content.detail,\n } \n });\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${UserRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n\n const combinedContent = [...textContent, ...imageContent];\n\n return {\n role: this.modelSchema.roles[message.role],\n content: combinedContent,\n }; \n }\n\n case ToolRoleLiteral: {\n if (message.content.length !== 1) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${ToolRoleLiteral}' must have exactly one content item`) \n });\n }\n\n if (message.content[0].modality !== ToolResponseModalityLiteral) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${ToolRoleLiteral}' must have content with modality '${ToolResponseModalityLiteral}'`) \n });\n }\n\n const toolResponse = message.content[0] as ToolResponseContentType;\n return {\n role: this.modelSchema.roles[message.role],\n tool_call_id: toolResponse.id,\n content: toolResponse.data,\n };\n }\n\n default: {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid role: '${message.role}'`) \n });\n }\n }\n });\n\n return { messages: transformedMessages };\n };\n\n transformTools = (tools: ToolType[]): ParamsType => {\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: this.modelSchema.name, error: 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 getCompleteChatUrl = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): UrlType => {\n return `${this.baseUrl}/chat/completions`;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getCompleteChatHeaders = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getCompleteChatData = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): 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: this.modelSchema.name, \n error: new Error(\"Messages are required\") \n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return {\n model: this.modelSchema.name,\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n };\n };\n\n transformCompleteChatResponse = (response: any): MessageType[] => {\n const safe = OpenAICompleteChatResponse.safeParse(response);\n if (safe.success) {\n if (safe.data.choices.length === 0) {\n throw new ApiResponseError({ \n info: this.modelSchema.name, \n error: new Error(\"No choices in response\") \n });\n }\n\n const messages: MessageType[] = [];\n const message = safe.data.choices[0].message;\n if (message.content) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.content));\n } \n \n if (message.refusal) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.refusal));\n } \n \n if (message.tool_calls) {\n message.tool_calls.forEach((toolCall, index) => {\n messages.push(createToolCallMessage(\n AssistantRoleLiteral, \n index, \n toolCall.id, \n toolCall.function.name, \n toolCall.function.arguments\n ));\n });\n }\n return messages;\n } \n\n throw new ApiRequestError({ info: this.modelSchema.name, error: safe.error });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getStreamChatUrl = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): UrlType => {\n return `${this.baseUrl}/chat/completions`;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getStreamChatHeaders = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getStreamChatData = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): 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: this.modelSchema.name, \n error: new Error(\"Messages are required\") \n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return {\n stream: true,\n model: this.modelSchema.name,\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n };\n };\n\n // TODO: OpenAI streaming is ideally always a proper JSON, shouldn't need a buffer and rather throw an error when a non-JSON line is encountered\n transformStreamChatResponseChunk = async function* (\n chunk: string, \n buffer: string\n ): AsyncGenerator<{ partialMessages: PartialMessageType[]; 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 let structuredLine: any;\n if (line === \"data: [DONE]\") {\n // end of stream\n return;\n } else if (line.startsWith(\"data: {\")) {\n // line contains message\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, must be the end of loop\n if (error instanceof SyntaxError) {\n // append to buffer\n buffer += line;\n continue;\n } else {\n // non JSON parse error, re-raise\n throw error;\n }\n }\n\n buffer = \"\"; // reset buffer\n const partialMessages: PartialMessageType[] = [];\n const safe = OpenAIStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n // TODO: figure out how to access 'this' object in async function*\n // if (safe.data.choices.length === 0) {\n // throw new ApiResponseError({ \n // info: this.modelSchema.name, \n // error: new Error(\"No choices in response\") \n // });\n // }\n \n const message = safe.data.choices[0].delta;\n if (message !== undefined && Object.keys(message).length !== 0) {\n if (\"content\" in message && message.content !== null) {\n partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n } else if (\"refusal\" in message && message.refusal !== null) {\n partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.refusal as string));\n } else if (\"tool_calls\" in message && message.tool_calls !== undefined) {\n // only 1 tool call per chunk in streaming\n const toolCall = message.tool_calls.at(0)!;\n partialMessages.push(createPartialToolCallMessage(\n AssistantRoleLiteral,\n toolCall.index,\n toolCall.id,\n toolCall.function?.name,\n toolCall.function?.arguments\n ));\n }\n }\n } \n yield { partialMessages: partialMessages, buffer: buffer };\n } else {\n // buffer doesn't start with 'data: {'\n // TODO: should throw an error when 'this' object access is implemented\n }\n }\n\n yield { partialMessages: [], buffer: buffer };\n };\n}\n\nexport { \n BaseChatModel, \n BaseChatModelOptions, \n type BaseChatModelOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-language-model.openai\";\nimport { OpenAIChatModelRoles, OpenAIChatModelRolesMap, OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum } from \"./types\";\n\nconst GPT4oLiteral = \"gpt-4o\";\nconst GPT4oDescription = \"GPT-4o is a large-scale multimodal model trained by OpenAI. \\\nIt is the successor to GPT-4 and is designed to be more powerful and capable than its predecessor.\";\n\nconst GPT4oSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: GPT4oLiteral,\n description: GPT4oDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIConfigs.base(128000, 4).def,\n schema: OpenAIConfigs.base(128000, 4).schema,\n },\n});\n\nconst GPT4oOptions = BaseChatModelOptions;\ntype GPT4oOptionsType = z.infer<typeof GPT4oOptions>;\n\nclass GPT4o extends BaseChatModel {\n constructor(options: GPT4oOptionsType) {\n super(GPT4oSchema, options);\n }\n}\n\nexport { GPT4o, GPT4oOptions, GPT4oSchema, type GPT4oOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n];\n\nconst OpenAIEmbeddingModelModalitiesEnum = z.enum([\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n]);\n\nexport { OpenAIEmbeddingModelModalitiesEnum, OpenAIEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIGetEmbeddingsResponse = 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(),\n total_tokens: z.number(),\n }),\n});\n\nexport { OpenAIGetEmbeddingsResponse };","import { z } from \"zod\";\n\nimport { \n ConfigType, \n EmbeddingsType,\n FloatEmbeddingType,\n Base64EmbeddingType,\n EmbeddingRequests,\n EmbeddingRequestsType,\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n} from \"@adaline/types\";\n\nimport { \n EmbeddingModelV1,\n EmbeddingModelSchemaType,\n HeadersType, \n ParamsType, \n UrlType, \n urlWithoutTrailingSlash,\n ApiRequestError,\n InvalidConfigError,\n InvalidEmbeddingRequestsError, \n} from \"@adaline/provider\";\n\nimport { OpenAIGetEmbeddingsResponse } from \"./types\";\n\nconst BaseEmbeddingModelOptions = z.object({\n apiKey: z.string(), // TODO: add min and max length ?\n proxyUrl: z.string().optional(), // TODO: use strict url type\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 apiKey: string;\n private readonly baseUrl: string = \"https://api.openai.com/v1\"; // TODO: move to options coming from Provider\n\n constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n this.modelSchema = modelSchema;\n this.apiKey = options.apiKey;\n if (options.proxyUrl) this.baseUrl = urlWithoutTrailingSlash(options.proxyUrl);\n };\n\n private validateConfig = (config: ConfigType): ConfigType => {\n const parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!parsedConfig.success) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: parsedConfig.error })\n }\n\n // TODO: check if this is still needed if safeParse already checks for that?\n Object.keys(parsedConfig.data as ConfigType).forEach((key) => {\n if (!this.modelSchema.config.def[key]) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: new Error(`Invalid config key: '${key}'`) });\n }\n });\n\n return parsedConfig.data as ConfigType;\n };\n\n private validateEmbeddingRequests = (requests: EmbeddingRequestsType): EmbeddingRequestsType => {\n const parsedRequests = EmbeddingRequests().safeParse(requests);\n if (!parsedRequests.success) {\n throw new InvalidEmbeddingRequestsError({ info: this.modelSchema.name, error: parsedRequests.error })\n }\n\n // Note from OpenAI API Reference: \n // The input must not exceed the max input tokens for the model (8192 tokens for text-embedding-ada-002), \n // cannot be an empty string, and any array must be 2048 dimensions or less.\n // TODO: add max tokens check in requests based on model schema when token calculation is accurate\n\n return parsedRequests.data as EmbeddingRequestsType;\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 };\n };\n\n getDefaultParams = (): ParamsType => {\n return {\n model: this.modelSchema.name,\n };\n };\n\n getTokenCount = (requests: EmbeddingRequestsType): number => {\n const validatedRequests = this.validateEmbeddingRequests(requests);\n return validatedRequests.requests.reduce((acc, request) => acc + request.length, 0);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig = (config: ConfigType, requests?: EmbeddingRequestsType): ParamsType => {\n const validatedConfig = this.validateConfig(config);\n const transformedConfig = Object.keys(validatedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = validatedConfig[key];\n acc[paramKey] = paramValue;\n return acc;\n },\n {} as ParamsType\n );\n\n return transformedConfig;\n };\n\n transformEmbeddingRequests = (requests: EmbeddingRequestsType): ParamsType => {\n return {\n input: requests.requests\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getGetEmbeddingsUrl = (config: ConfigType, requests: EmbeddingRequestsType): UrlType => {\n return `${this.baseUrl}/embeddings`;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getGetEmbeddingsHeaders = (config: ConfigType, requests: EmbeddingRequestsType): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getGetEmbeddingsData = (config: ConfigType, requests: EmbeddingRequestsType): ParamsType => {\n return {\n model: this.modelSchema.name,\n ...this.transformConfig(config, requests),\n ...this.transformEmbeddingRequests(requests),\n };\n };\n\n transformGetEmbeddingsResponse = (response: any): EmbeddingsType => {\n let encodingFormat: typeof Base64EmbeddingLiteral | typeof FloatEmbeddingLiteral;\n const parsedResponse = OpenAIGetEmbeddingsResponse.safeParse(response);\n if (parsedResponse.success) {\n encodingFormat = typeof parsedResponse.data.data[0].embedding === \"string\" ? Base64EmbeddingLiteral : FloatEmbeddingLiteral;\n const embeddings = parsedResponse.data.data.map((item) => {\n if (typeof item.embedding === \"string\") {\n return {\n index: item.index,\n embedding: item.embedding,\n } as Base64EmbeddingType;\n } else {\n return {\n index: item.index,\n embedding: item.embedding,\n } as FloatEmbeddingType;\n }\n });\n return {\n encodingFormat,\n embeddings,\n } as EmbeddingsType;\n }\n\n throw new ApiRequestError({ info: this.modelSchema.name, error: parsedResponse.error });\n };\n}\n\nexport { \n BaseEmbeddingModel, \n BaseEmbeddingModelOptions,\n type BaseEmbeddingModelOptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIWordEmbeddingConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.openai\";\nimport { OpenAIEmbeddingModelModalities, OpenAIEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst TextEmbeddingAda002Literal = \"text-embedding-ada-002\";\nconst TextEmbeddingAda002Description = \"some description\"; // TODO: add proper description\n\nconst TextEmbeddingAda002Schema = EmbeddingModelSchema(OpenAIEmbeddingModelModalitiesEnum).parse({\n name: TextEmbeddingAda002Literal,\n description: TextEmbeddingAda002Description,\n modalities: OpenAIEmbeddingModelModalities,\n maxInputTokens: 8192,\n maxOutputTokens: 8192,\n config: {\n def: OpenAIWordEmbeddingConfigs.base().def,\n schema: OpenAIWordEmbeddingConfigs.base().schema,\n },\n});\n\nconst TextEmbeddingAda002Options = BaseEmbeddingModelOptions;\ntype TextEmbeddingAda002OptionsType = z.infer<typeof TextEmbeddingAda002Options>;\n\nclass TextEmbeddingAda002 extends BaseEmbeddingModel {\n constructor(options: TextEmbeddingAda002OptionsType) {\n super(TextEmbeddingAda002Schema, options);\n }\n}\n\nexport { TextEmbeddingAda002, TextEmbeddingAda002Options, TextEmbeddingAda002Schema, type TextEmbeddingAda002OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelV1, ChatModelSchemaType, EmbeddingModelV1, EmbeddingModelSchemaType, ProviderV1 } from \"@adaline/provider\";\n\nimport { GPT4o, GPT4oOptions, GPT4oSchema } from \"../models/chat-models/gpt-4o.openai\";\nimport { TextEmbeddingAda002, TextEmbeddingAda002Options, TextEmbeddingAda002Schema } from \"../models/embedding-models/text-embedding-ada-002.openai\";\n\nconst ProviderLiteral = \"openai\";\n\nclass OpenAI<O extends Record<string, any> = Record<string, any>> implements ProviderV1<O> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n\n private readonly chatModelFactories: \n Record<string, { \n model: { new (options: any): ChatModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: ChatModelSchemaType\n }> = {\n \"gpt-4o\": { model: GPT4o, modelOptions: GPT4oOptions, modelSchema: GPT4oSchema },\n };\n\n private readonly embeddingModelFactories: \n Record<string, { \n model: { new (options: any): EmbeddingModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: EmbeddingModelSchemaType\n }> = {\n \"text-embedding-ada-002\": { model: TextEmbeddingAda002, modelOptions: TextEmbeddingAda002Options, modelSchema: TextEmbeddingAda002Schema },\n };\n\n chatModelLiterals(): string[] {\n return Object.keys(this.chatModelFactories);\n }\n\n chatModel(name: string, options: O): ChatModelV1 {\n if (!(name in this.chatModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n\n const model = this.chatModelFactories[name].model;\n const modelOptions = this.chatModelFactories[name].modelOptions.parse(options);\n return new model(modelOptions);\n }\n\n chatModelSchema(name: string): ChatModelSchemaType {\n if (!(name in this.chatModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n return this.chatModelFactories[name].modelSchema;\n }\n\n chatModelSchemas(): Record<string, ChatModelSchemaType> {\n return Object.keys(this.chatModelFactories).reduce((acc, key) => {\n acc[key] = this.chatModelFactories[key].modelSchema;\n return acc;\n }, {} as Record<string, ChatModelSchemaType>);\n }\n\n embeddingModelLiterals(): string[] {\n return Object.keys(this.embeddingModelFactories);\n }\n\n embeddingModel(name: string, options: O): EmbeddingModelV1 {\n if (!(name in this.embeddingModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n\n const model = this.embeddingModelFactories[name].model;\n const modelOptions = this.embeddingModelFactories[name].modelOptions.parse(options);\n return new model(modelOptions);\n }\n\n embeddingModelSchema(name: string): EmbeddingModelSchemaType {\n if (!(name in this.embeddingModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n return this.embeddingModelFactories[name].modelSchema;\n }\n\n embeddingModelSchemas(): Record<string, EmbeddingModelSchemaType> {\n return Object.keys(this.embeddingModelFactories).reduce((acc, key) => {\n acc[key] = this.embeddingModelFactories[key].modelSchema;\n return acc;\n }, {} as Record<string, EmbeddingModelSchemaType>);\n }\n}\n\nexport { OpenAI, ProviderLiteral };\n"]}