@adaline/vertex 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/models/chat-models/base-chat-model.vertex.ts","../../../../packages/types/src/errors/gateway-base.error.ts","../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/text-content.ts","../../../../packages/types/src/message/content/tool-call-content.ts","../../../../packages/types/src/message/content/tool-response-content.ts","../../../../packages/types/src/message/content/content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/config/response-schema.config.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/types/src/embedding/embedding-response.ts","../../../../packages/types/src/chat/chat-response.ts","../../../../packages/provider/src/errors/provider.error.ts","../../../../packages/provider/src/errors/model.error.ts","../../../../packages/provider/src/errors/model-response.error.ts","../../../../packages/provider/src/errors/invalid-model-request.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/errors/invalid-embedding-requests.error.ts","../../../../packages/provider/src/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/range-config-item.ts","../../../../packages/provider/src/types/config/select-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/select-boolean-config-item.ts","../../../../packages/provider/src/types/config/config-item.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.ts","../../../../packages/provider/src/model/embedding-model/embedding-model.schema.v1.ts","../../../../packages/provider/src/types/headers.ts","../../../../packages/provider/src/types/params.ts","../../../../packages/provider/src/types/url.ts","../../../../packages/provider/src/utils/common-config.def.chat-model.ts","../../../../packages/provider/src/utils/common-config.def.word-embedding.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/url.ts","../../google/src/configs/chat-model/common.config.chat-model.google.ts","../../google/src/configs/chat-model/base.config.chat-model.google.ts","../../google/src/configs/chat-model/c1.config.chat-model.google.ts","../../google/src/configs/embedding-model/common.config.embedding-model.google.ts","../../google/src/configs/embedding-model/base.config.embedding-model.google.ts","../../google/src/configs/configs.google.ts","../../google/src/models/chat-models/types/roles.chat-model.google.ts","../../google/src/models/chat-models/types/modalities.chat-model.google.ts","../../google/src/models/chat-models/types/response.chat-model.google.ts","../../google/src/models/chat-models/types/request.chat-model.google.ts","../../google/src/provider/provider.google.ts","../../google/src/models/chat-models/base-chat-model.google.ts","../../google/src/models/chat-models/base-gemini-1-chat-model.google.ts","../../google/src/models/chat-models/gemini-1.0-pro.google.ts","../../google/src/models/chat-models/gemini-1.0-pro-001.google.ts","../../google/src/models/chat-models/gemini-1.0-pro-latest.google.ts","../../google/src/models/chat-models/gemini-1.0-pro-vision.google.ts","../../google/src/models/chat-models/gemini-1.5-flash.google.ts","../../google/src/models/chat-models/gemini-1.5-flash-001.google.ts","../../google/src/models/chat-models/gemini-1.5-flash-002.google.ts","../../google/src/models/chat-models/gemini-1.5-flash-latest.google.ts","../../google/src/models/chat-models/gemini-1.5-pro.google.ts","../../google/src/models/chat-models/gemini-1.5-pro-001.google.ts","../../google/src/models/chat-models/gemini-1.5-pro-002.google.ts","../../google/src/models/chat-models/gemini-1.5-pro-latest.google.ts","../../google/src/models/embedding-models/types/modalitites.embedding-model.google.ts","../../google/src/models/embedding-models/types/response.embedding-model.google.ts","../../google/src/models/embedding-models/types/request.embedding-model.google.ts","../../google/src/models/embedding-models/base-embedding-model.google.ts","../../google/src/models/embedding-models/text-embedding-001.google.ts","../../google/src/models/embedding-models/text-embedding-004.google.ts","../src/provider/provider.vertex.ts","../src/models/chat-models/gemini-1-0-pro.vertex.ts","../src/models/chat-models/gemini-1-0-pro-001.vertex.ts","../src/models/chat-models/gemini-1-0-pro-vision.vertex.ts","../src/models/chat-models/gemini-1-5-flash-001.vertex.ts","../src/models/chat-models/gemini-1-5-flash-002.vertex.ts","../src/models/chat-models/gemini-1-5-flash.vertex.ts","../src/models/chat-models/gemini-1-5-pro-001.vertex.ts","../src/models/chat-models/gemini-1-5-pro-002.vertex.ts","../src/models/chat-models/gemini-1-5-pro.vertex.ts","../src/models/embedding-models/types/modalitites.embedding-model.vertex.ts","../src/models/embedding-models/types/response.embedding-model.vertex.ts","../src/models/embedding-models/types/request.embedding-model.vertex.ts","../src/models/embedding-models/base-embedding-model.vertex.ts","../src/configs/embedding-model/common.config.embedding-model.vertex.ts","../src/configs/embedding-model/base.config.embedding-model.vertex.ts","../src/configs/configs.vertex.ts","../src/models/embedding-models/text-embedding-004.vertex.ts","../src/models/embedding-models/text-multilingual-embedding-002.vertex.ts","../src/models/embedding-models/textembedding-gecko-multilingual-001.vertex.ts","../src/models/embedding-models/textembedding-gecko-003.vertex.ts"],"names":["safeStringify","obj","seen","key","value","getErrorMessage","error","GatewayBaseErrorLiteral","GatewayBaseError","_GatewayBaseError","info","cause","name","SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","Metadata","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","PartialModalityLiterals","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","Message","Role","MessageMetadata","PartialMessage","createTextContent","content","createToolCallContent","index","id","args","createPartialTextMessage","role","createPartialToolCallMessage","Config","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","FunctionToolLiteral","FunctionParameterTypesLiteral","FunctionParameter","Function","ToolTypesLiteral","FunctionTool","ToolLiterals","Tool","FunctionToolMetadata","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","EmbeddingRequests","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","EmbeddingsUsage","EmbeddingResponse","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatResponse","ProviderErrorLiteral","ProviderError","_ProviderError","ModelErrorLiteral","ModelError","_ModelError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","InvalidEmbeddingRequestsErrorLiteral","InvalidEmbeddingRequestsError","_InvalidEmbeddingRequestsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","data","__spreadValues","RangeConfigItemTypeLiteral","RangeConfigItemDef","RangeConfigItemSchema","min","step","defaultValue","RangeConfigItem","SelectStringConfigItemTypeLiteral","SelectStringConfigItemDef","SelectStringConfigItemSchema","choices","SelectStringConfigItem","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","SelectBooleanConfigItemTypeLiteral","SelectBooleanConfigItemDef","SelectBooleanConfigItemSchema","SelectBooleanConfigItem","ConfigItemLiterals","ConfigItemEnum","ConfigItemDef","ChatModelSchema","Roles","Modalities","config","_a","_b","defKeys","schemaKeys","EmbeddingModelSchema","Headers","TEMPERATURE","MAX_TOKENS","STOP","TOP_A","TOP_P","TOP_K","MIN_P","FREQUENCY_PENALTY","PRESENCE_PENALTY","SEED","REPETITION_PENALTY","LOG_PROBS","TOP_LOG_PROBS","ECHO","RESPONSE_FORMAT","RESPONSE_FORMAT_WITH_SCHEMA","RESPONSE_SCHEMA","CHAT_CONFIG","DIMENSIONS","ENCODING_FORMAT","EMBEDDING_CONFIG","removeUndefinedEntries","record","_","urlWithoutTrailingSlash","url","temperature","_default","maxTokens","maxOutputTokens","stop","maxSequences","topP","topK","frequencyPenalty","presencePenalty","seed","toolChoice","safetySettings","ChatModelBaseConfigSchema","maxTemperature","defaultTemperature","defaultTopP","ChatModelBaseConfigDef","ChatModelC1ConfigSchema","defaultTopK","ChatModelC1ConfigDef","dimensions","maxDimensions","EmbeddingModelBaseConfigSchema","EmbeddingModelBaseConfigDef","GoogleChatModelConfigs","GoogleEmbeddingModelConfigs","GoogleChatModelRoles","GoogleChatAssistantRoleLiteral","GoogleChatToolRoleLiteral","GoogleChatModelRolesMap","GoogleChatModelModalities","GoogleChatModelModalitiesEnum","GoogleChatModelTextVisionModalities","GoogleChatModelTextVisionModalitiesEnum","GoogleChatModelTextToolModalities","GoogleChatModelTextToolModalitiesEnum","GoogleCompleteChatTextResponse","GoogleCompleteChatToolResponse","GoogleCompleteChatResponse","GoogleStreamChatTextResponse","GoogleStreamChatToolResponse","GoogleStreamChatResponse","GoogleChatContentPartText","GoogleChatContentPartInlineData","GoogleChatContentPartFunctionCall","GoogleChatContentPartFunctionResponse","GoogleChatContent","GoogleChatSystemInstruction","GoogleChatTool","GoogleChatToolConfig","GoogleChatGenerationConfig","GoogleChatRequest","ProviderLiteral","Google","Gemini1_5Flash001Literal","Gemini1_5Flash001","Gemini1_5Flash001Options","Gemini1_5Flash001Schema","Gemini1_5Flash002Literal","Gemini1_5Flash002","Gemini1_5Flash002Options","Gemini1_5Flash002Schema","Gemini1_5FlashLatestLiteral","Gemini1_5FlashLatest","Gemini1_5FlashLatestOptions","Gemini1_5FlashLatestSchema","Gemini1_5FlashLiteral","Gemini1_5Flash","Gemini1_5FlashOptions","Gemini1_5FlashSchema","Gemini1_5Pro001Literal","Gemini1_5Pro001","Gemini1_5Pro001Options","Gemini1_5Pro001Schema","Gemini1_5Pro002Literal","Gemini1_5Pro002","Gemini1_5Pro002Options","Gemini1_5Pro002Schema","Gemini1_5ProLatestLiteral","Gemini1_5ProLatest","Gemini1_5ProLatestOptions","Gemini1_5ProLatestSchema","Gemini1_5ProLiteral","Gemini1_5Pro","Gemini1_5ProOptions","Gemini1_5ProSchema","Gemini1_0ProLiteral","Gemini1_0Pro","Gemini1_0ProOptions","Gemini1_0ProSchema","Gemini1_0ProVisionLiteral","Gemini1_0ProVision","Gemini1_0ProVisionOptions","Gemini1_0ProVisionSchema","Gemini1_0ProLatestLiteral","Gemini1_0ProLatest","Gemini1_0ProLatestOptions","Gemini1_0ProLatestSchema","Gemini1_0Pro_001Literal","Gemini1_0Pro_001","Gemini1_0Pro_001Options","Gemini1_0Pro_001Schema","Text_Embedding_001Literal","Text_Embedding_001","Text_Embedding_001Options","Text_Embedding_001Schema","Text_Embedding_004Literal","Text_Embedding_004","Text_Embedding_004Options","Text_Embedding_004Schema","options","model","modelOptions","parsedOptions","acc","BaseChatModelOptions","BaseChatModel","modelSchema","responseHeaders","messages","message","request","safeRequest","parsedRequest","modelName","systemInstruction","generationConfig","toolConfig","_config","part","_content","c","tools","tool","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","nonSystemMessages","assistantContent","userContent","toolResponseContent","getNextExpectedRoles","i","parsedTool","__async","resolve","transformedMessages","transformedTools","G","response","safe","parsedResponse","usage","contentItem","safetyRatings","rating","chunk","buffer","__asyncGenerator","lines","line","completeLine","structuredLine","partialResponse","messagePart","toolCall","BaseChatModelGemini1","systemUserMessage","Gemini1_0ProDescription","Gemini1_0Pro_001Description","Gemini1_0ProLatestDescription","Gemini1_0ProVisionDescription","Gemini1_5FlashDescription","Gemini1_5Flash001Description","Gemini1_5Flash002Description","Gemini1_5FlashLatestDescription","Gemini1_5ProDescription","Gemini1_5Pro001Description","Gemini1_5Pro002Description","Gemini1_5ProLatestDescription","GoogleEmbeddingModelModalities","GoogleEmbeddingModelModalitiesEnum","GoogleGetEmbeddingsResponse","GoogleEmbeddingRequestInput","GoogleEmbeddingRequest","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","embeddingRequests","_parsedRequests","_requests","embeddings","embedding","Text_Embedding_001_Description","Text_Embedding_004_Description","Vertex","Gemini1_0Pro001Literal","Gemini1_0Pro001","Gemini1_0Pro001Options","Gemini1_0Pro001Schema","Text_Multilingual_Embedding_002Literal","Text_Multilingual_Embedding_002","Text_Multilingual_Embedding_002Options","Text_Multilingual_Embedding_002Schema","Text_Embedding_Gecko_003Literal","Text_Embedding_Gecko_003","Text_Embedding_Gecko_003Options","Text_Embedding_Gecko_003Schema","Text_Embedding_Gecko_Multilingual_001Literal","Text_Embedding_Gecko_Multilingual_001","Text_Embedding_Gecko_Multilingual_001Options","Text_Embedding_Gecko_Multilingual_001Schema","j","location","projectId","publisher","BaseChatModelVertexOptions","BaseChatModelVertex","C","baseUrl","P","__spreadProps","ve","$e","ze","Ne","He","Ue","Xe","Ze","Je","VertexEmbeddingModelModalities","H","VertexEmbeddingModelModalitiesEnum","VertexGetEmbeddingsResponse","VertexEmbeddingRequest","L","It","Qt","instance","Wt","K","prediction","B","ot","Jt","autoTruncate","dt","VertexEmbeddingModelConfigs","Dt","Text_Multilingual_Embedding_002_Description","Text_Embedding_Gecko_Multilingual_001_Description","Text_Embedding_Gecko_003_Description"],"mappings":"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,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,IAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,IAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,YAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA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","file":"index.mjs","sourcesContent":["import { z } from \"zod\";\n\nimport {\n HeadersType,\n ChatModelSchemaType,\n ModelError,\n} from \"@adaline/provider\";\n\nimport { BaseChatModel } from \"@adaline/google\";\n\nimport { Vertex } from \"../../provider/provider.vertex\";\n\nconst BaseChatModelVertexOptions = z.object({\n accessToken: z.string(),\n modelId: z.string().optional(),\n baseUrl: z.string().url().optional(),\n location: z.string().optional(),\n projectId: z.string().optional(),\n publisher: z.string().optional(),\n});\ntype BaseChatModelVertexOptionsType = z.infer<typeof BaseChatModelVertexOptions>;\n\nclass BaseChatModelVertex extends BaseChatModel {\n readonly version = \"v1\" as const;\n modelSchema: ChatModelSchemaType;\n\n private readonly accessToken: string;\n private readonly modelId: string | undefined;\n private readonly location: string | undefined;\n private readonly projectId: string | undefined;\n private readonly publisher: string | undefined;\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelVertexOptionsType) {\n const parsedOptions = BaseChatModelVertexOptions.parse(options);\n let baseUrl: string | undefined;\n\n if (parsedOptions.baseUrl) {\n baseUrl = parsedOptions.baseUrl;\n } else if (parsedOptions.location && parsedOptions.projectId) {\n baseUrl = Vertex.baseUrl(parsedOptions.location, parsedOptions.projectId, parsedOptions.publisher);\n } else {\n throw new ModelError({\n info: \"Either 'baseUrl' must be provided or 'location' and 'projectId' must be provided\",\n cause: new Error(\"Either 'baseUrl' must be provided or 'location' and 'projectId' must be provided\"),\n });\n }\n\n super(modelSchema, { \n apiKey: \"random-api-key\",\n completeChatUrl: `${baseUrl}/models/${parsedOptions.modelId ?? modelSchema.name}:generateContent`,\n streamChatUrl: `${baseUrl}/models/${parsedOptions.modelId ?? modelSchema.name}:streamGenerateContent`,\n });\n\n this.modelSchema = modelSchema;\n this.accessToken = parsedOptions.accessToken;\n this.modelId = parsedOptions.modelId;\n this.location = parsedOptions.location;\n this.projectId = parsedOptions.projectId;\n this.publisher = parsedOptions.publisher;\n }\n\n getDefaultHeaders(): HeadersType {\n return {\n ...super.getDefaultHeaders(),\n \"Authorization\": `Bearer ${this.accessToken}`,\n };\n }\n}\n\nexport {\n BaseChatModelVertex,\n BaseChatModelVertexOptions,\n type BaseChatModelVertexOptionsType,\n}","const safeStringify = (obj: unknown) => {\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return; // Skip circular reference\n }\n seen.add(value);\n }\n return value;\n });\n}\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n if (error == null) return \"unknown error\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n readonly name: string = GatewayBaseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n this.info = info;\n this.cause = cause;\n this.name = name ?? GatewayBaseErrorLiteral;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n return error instanceof GatewayBaseError;\n }\n\n toJSON(): object {\n return {\n name: this.name,\n info: this.info,\n cause: this.cause,\n message: this.message,\n stack: this.stack,\n };\n }\n}\n\nexport { GatewayBaseError };","import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport { \n UserRoleLiteral,\n ToolRoleLiteral, \n SystemRoleLiteral, \n AssistantRoleLiteral, \n RoleEnum, \n RoleLiterals, \n PartialRoleEnum, \n PartialRoleLiterals, \n type RoleEnumType,\n type PartialRoleEnumType, \n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\n media_type: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n type: z.literal(UrlImageContentTypeLiteral),\n url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ImageModalityLiteral),\n detail: ImageContentDetailsLiteral,\n value: ImageContentValue,\n metadata: Metadata,\n });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n Base64ImageContentValue,\n ImageContent,\n ImageContentDetails,\n ImageContentDetailsLiteral,\n ImageModalityLiteral,\n UrlImageContentValue,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentMediaTypeLiterals,\n type Base64ImageContentValueType,\n type ImageContentDetailsLiteralType,\n type ImageContentType,\n type ImageContentValueType,\n type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\n\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\n// text value can already be an empty string, so we don't need to make it optional\n// const PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n// TextContent(Metadata).merge(z.object({\n// modality: z.literal(PartialTextModalityLiteral),\n// }));\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialTextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport { \n TextContent, \n PartialTextContent,\n TextModalityLiteral,\n PartialTextModalityLiteral,\n type TextContentType,\n type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n arguments: z.string(),\n metadata: Metadata,\n });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\n\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\n// const PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n// ToolCallContent(Metadata).partial({\n// id: true,\n// name: true,\n// arguments: true,\n// }).merge(z.object({\n// modality: z.literal(PartialToolCallModalityLiteral),\n// }));\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n arguments: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport { \n ToolCallContent, \n PartialToolCallContent,\n ToolCallModalityLiteral, \n PartialToolCallModalityLiteral,\n type ToolCallContentType, \n type PartialToolCallContentType \n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n data: z.string(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nexport { ToolResponseContent, ToolResponseModalityLiteral, type ToolResponseContentType };\n","import { z } from \"zod\";\n\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { TextContent, TextModalityLiteral, PartialTextContent, PartialTextModalityLiteral } from \"./text-content\";\nimport { ToolCallContent, ToolCallModalityLiteral, PartialToolCallContent, PartialToolCallModalityLiteral } from \"./tool-call-content\";\nimport { ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [TextModalityLiteral, ImageModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: CCM = z.undefined() as CCM,\n) => \n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n ]);\ntype PartialContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialContent<TCM, CCM>>>;\n\n\nexport { \n Content, \n ModalityEnum, \n ModalityLiterals, \n type ContentType, \n type ModalityEnumType,\n PartialContent,\n PartialModalityEnum,\n PartialModalityLiterals,\n type PartialContentType,\n type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { RoleEnum, PartialRoleEnum } from \"./roles\";\n\nconst Message = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = RoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n content: z.array(Content(TextContentMetadata, ImageContentMetadata, ToolCallContentMetadata, ToolResponseContentMetadata)),\n metadata: MessageMetadata,\n });\ntype MessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM>>>;\n\n// const PartialMessage = <\n// R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n// TCM extends z.ZodTypeAny = z.ZodUndefined,\n// CCM extends z.ZodTypeAny = z.ZodUndefined,\n// MM extends z.ZodTypeAny = z.ZodUndefined,\n// >(\n// Role: R = PartialRoleEnum as unknown as R,\n// TextContentMetadata: TCM = z.undefined() as TCM,\n// ToolCallContentMetadata: CCM = z.undefined() as CCM,\n// MessageMetadata: MM = z.undefined() as MM,\n// ) => Message(\n// Role, \n// TextContentMetadata, \n// undefined, \n// ToolCallContentMetadata, \n// undefined, \n// MessageMetadata\n// ).omit({ content: true }).merge(z.object({\n// partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata),\n// }));\nconst PartialMessage = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = PartialRoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n MessageMetadata: MM = z.undefined() as MM,\n) => z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata),\n metadata: MessageMetadata,\n});\ntype PartialMessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;\n\nexport { \n Message, \n PartialMessage,\n type MessageType,\n type PartialMessageType,\n};\n","import { \n RoleEnumType,\n TextContent,\n TextModalityLiteral,\n ImageContent,\n ImageModalityLiteral,\n ImageContentDetailsLiteralType,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n Message,\n MessageType,\n ContentType,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n PartialMessage,\n PartialMessageType,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n return TextContent().parse({\n modality: TextModalityLiteral,\n value: content\n });\n};\n\nconst createToolCallContent = (index: number, id: string, name: string, args: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args\n });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n return Message().parse({\n role: role,\n content: [TextContent().parse({\n modality: TextModalityLiteral,\n value: content\n })]\n });\n};\n\n const createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: UrlImageContentTypeLiteral,\n url: url\n }\n })]\n });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: Base64ImageContentTypeLiteral,\n base64: base64\n }\n })]\n });\n};\n\nconst createToolCallMessage = (role: RoleEnumType, index: number, id: string, name: string, args: string): MessageType => {\n return Message().parse({\n role: role,\n content: [ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args\n })]\n });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data\n })]\n });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialTextContent().parse({\n modality: PartialTextModalityLiteral,\n value: content\n })\n });\n};\n\nconst createPartialToolCallMessage = (role: RoleEnumType, index: number, id?: string, name?: string, args?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolCallContent().parse({\n modality: PartialToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args\n })\n });\n};\n\nexport {\n createTextContent,\n createTextMessage,\n createUrlImageMessage,\n createBase64ImageMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n};","import { z } from \"zod\";\n\n// TODO: rename to MessageConfig or something, has to be relevant for language model only\nconst Config = <\nC extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>\n>(\n Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<\n C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>\n> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { \n Config, \n type ConfigType \n};","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n .object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n })\n .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport { \n ResponseSchema, \n ResponseSchemaProperty, \n ResponseSchemaStructure, \n ResponseSchemaTypes,\n ResponseSchemaTypesLiteral,\n type ResponseSchemaTypesType,\n type ResponseSchemaType,\n type ResponseSchemaPropertyType,\n type ResponseSchemaStructureType,\n};\n","// import { JSONSchema7 } from \"json-schema\";\n// import { Validator } from \"jsonschema\";\nimport { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\n// // TODO: fix 'name' property not allowed in JSONSchema7\n// const FunctionTool = z.object({\n// type: z.literal(FunctionToolLiteral),\n// definition: z.object({\n// schema: z.object({}).refine((schema) => {\n// const validator = new Validator();\n// return validator.validate(schema, { type: \"object\" }).valid;\n// }),\n// }),\n// callback: z.function().args(z.string().min(0)).returns(z.promise(z.any())).optional(),\n// });\n\n// const FunctionTool = z.object({\n// type: z.literal(FunctionToolLiteral),\n// definition: z.object({\n// schema: z.object({}),\n// }),\n// callback: z.function().args(z.string().min(0)).returns(z.promise(z.any())).optional(),\n// });\n// type FunctionToolType = z.infer<typeof FunctionTool>;\n\nconst FunctionParameterTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"];\nconst FunctionParameterTypesLiteral = z.enum([\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"]);\ntype FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;\n\n// TODO: make a proper fix here\nconst FunctionParameter = z.object({\n anyOf: z.array(z.any()).optional(),\n type: FunctionParameterTypesLiteral.optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n});\ntype FunctionParameterType = z.infer<typeof FunctionParameter>;\n\nconst FunctionParameters = z.object({\n type: z.enum([\"object\"]),\n title: z.string().optional(),\n $defs: z.record(z.any()).optional(),\n properties: z.record(FunctionParameter).optional(),\n required: z.array(z.string()).optional(),\n});\ntype FunctionParametersType = z.infer<typeof FunctionParameters>;\n\nconst Function = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n parameters: z.any(),\n strict: z.boolean().optional(),\n});\ntype FunctionType = z.infer<typeof Function>;\n\nconst ToolTypes = [\"function\"];\nconst ToolTypesLiteral = z.enum([\"function\"]);\ntype ToolTypesType = z.infer<typeof ToolTypesLiteral>;\n\nconst FunctionTool = z.object({\n type: ToolTypesLiteral,\n definition: z.object({\n schema: Function, // TODO: convert to union with more tool types\n }),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\n// const Tools = z.array(Tool).nonempty().optional();\n// type ToolsType = z.infer<typeof Tools>;\n\nexport {\n Function,\n FunctionParameter,\n FunctionParameters,\n FunctionParameterTypes,\n FunctionParameterTypesLiteral,\n ToolTypes,\n ToolTypesLiteral,\n type FunctionParametersType,\n type FunctionParameterType,\n type FunctionParameterTypesType,\n type FunctionType,\n type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative())); //TODO: check if zero or negative values are allowed\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <\nM extends z.ZodTypeAny = z.ZodUndefined\n>(\n Metadata: M = z.undefined() as M\n) => z.discriminatedUnion(\"modality\", [\n z.object({\n modality: z.literal(EmbeddingTextModalityLiteral),\n metadata: Metadata,\n requests: TextEmbeddingRequests,\n }),\n z.object({\n modality: z.literal(EmbeddingTokenModalityLiteral),\n metadata: Metadata,\n requests: TokenEmbeddingRequests,\n }),\n]);\ntype EmbeddingRequestsType<\n M extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n EmbeddingModalityLiterals,\n EmbeddingModalityEnum,\n TextEmbeddingRequests,\n TokenEmbeddingRequests,\n EmbeddingRequests,\n type EmbeddingRequestsType,\n type EmbeddingModalityEnumType,\n type TextEmbeddingRequestsType,\n type TokenEmbeddingRequestsType,\n};","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n usage: EmbeddingsUsage.optional(),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n usage: EmbeddingsUsage.optional(),\n }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n FloatEmbedding,\n Base64Embedding,\n EmbeddingsUsage,\n EmbeddingResponse,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsUsageType,\n type EmbeddingResponseType,\n};","import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n promptTokens: z.number().nonnegative(),\n completionTokens: z.number().nonnegative(),\n totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n token: z.string(),\n logProb: z.number(),\n bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n messages: z.array(Message()),\n usage: ChatUsage.optional(), // TODO: Make this required after all providers have implemented it\n logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatResponse = z.object({\n partialMessages: z.array(PartialMessage()),\n usage: ChatUsage.optional(), // TODO: Make this required after all providers have implemented it\n logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport { \n ChatUsage, \n ChatBaseLogProb, \n ChatLogProb, \n ChatLogProbs, \n ChatResponse,\n PartialChatResponse,\n type ChatUsageType, \n type ChatBaseLogProbType, \n type ChatLogProbType, \n type ChatLogProbsType, \n type ChatResponseType,\n type PartialChatResponseType\n};\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ProviderErrorLiteral = \"ProviderError\" as const;\nexport class ProviderError extends GatewayBaseError {\n readonly name = ProviderErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ProviderErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isProviderError(error: unknown): error is ProviderError {\n return error instanceof ProviderError;\n }\n}","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelErrorLiteral = \"ModelError\" as const;\nexport class ModelError extends GatewayBaseError {\n readonly name = ModelErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isModelError(error: unknown): error is ModelError {\n return error instanceof ModelError;\n }\n}","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelResponseErrorLiteral = \"ModelResponseError\" as const;\nexport class ModelResponseError extends GatewayBaseError {\n readonly name = ModelResponseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelResponseErrorLiteral);\n this.cause = cause;\n this.info = info;\n }\n\n static isModelResponseError(error: unknown): error is ModelResponseError {\n return error instanceof ModelResponseError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidModelRequestErrorLiteral = \"InvalidModelRequestError\" as const;\nexport class InvalidModelRequestError extends GatewayBaseError {\n readonly name = InvalidModelRequestErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidModelRequestErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidModelRequestError(error: unknown): error is InvalidModelRequestError {\n return error instanceof InvalidModelRequestError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidConfigErrorLiteral = \"InvalidConfigError\" as const;\nexport class InvalidConfigError extends GatewayBaseError {\n readonly name = InvalidConfigErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidConfigErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof InvalidConfigError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidMessagesErrorLiteral = \"InvalidMessagesError\" as const;\nexport class InvalidMessagesError extends GatewayBaseError {\n readonly name = InvalidMessagesErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidMessagesErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof InvalidMessagesError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidToolsErrorLiteral = \"InvalidToolsError\" as const;\nexport class InvalidToolsError extends GatewayBaseError {\n readonly name = InvalidToolsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidToolsErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof InvalidToolsError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidEmbeddingRequestsErrorLiteral = \"InvalidEmbeddingRequestsError\" as const;\nexport class InvalidEmbeddingRequestsError extends GatewayBaseError {\n readonly name = InvalidEmbeddingRequestsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidEmbeddingRequestsErrorLiteral);\n this.info = info;\n this.cause = cause;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidEmbeddingRequestsError(error: unknown): error is InvalidEmbeddingRequestsError {\n return error instanceof InvalidEmbeddingRequestsError;\n }\n}","import { z } from \"zod\";\n\nconst MultiStringConfigItemTypeLiteral = \"multi-string\" as const;\n\nconst MultiStringConfigItemDef = z.object({\n type: z.literal(MultiStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n max: z.number().int().positive(),\n});\ntype MultiStringConfigItemType = z.infer<typeof MultiStringConfigItemDef>;\n\nconst MultiStringConfigItemSchema = (max: number) => z.array(z.string()).max(max).default([]).optional();\ntype MultiStringConfigItemSchemaType = z.infer<ReturnType<typeof MultiStringConfigItemSchema>>;\n\nconst MultiStringConfigItem = (data: Omit<MultiStringConfigItemType, \"type\">) => {\n return {\n def: MultiStringConfigItemDef.parse({\n type: MultiStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: MultiStringConfigItemSchema(data.max),\n };\n};\n\nexport {\n MultiStringConfigItem,\n MultiStringConfigItemDef,\n MultiStringConfigItemSchema,\n MultiStringConfigItemTypeLiteral,\n type MultiStringConfigItemSchemaType,\n type MultiStringConfigItemType,\n};\n","import { z } from \"zod\";\n\nconst RangeConfigItemTypeLiteral = \"range\" as const;\n\nconst RangeConfigItemDef = z.object({\n type: z.literal(RangeConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n min: z.number().int(),\n max: z.number().int(),\n step: z.number().positive(),\n default: z.number(),\n});\ntype RangeConfigItemDefType = z.infer<typeof RangeConfigItemDef>;\n\nconst RangeConfigItemSchema = (min: number, max: number, step: number, defaultValue: number) =>\n z.number().min(min).max(max).step(step).default(defaultValue).optional();\ntype RangeConfigItemSchemaType = z.infer<ReturnType<typeof RangeConfigItemSchema>>;\n\nconst RangeConfigItem = (data: Omit<RangeConfigItemDefType, \"type\">) => {\n return {\n def: RangeConfigItemDef.parse({\n type: RangeConfigItemTypeLiteral,\n ...data,\n }),\n schema: RangeConfigItemSchema(data.min, data.max, data.step, data.default),\n };\n};\n\nexport {\n RangeConfigItem,\n RangeConfigItemDef,\n RangeConfigItemSchema,\n RangeConfigItemTypeLiteral,\n type RangeConfigItemDefType,\n type RangeConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectStringConfigItemTypeLiteral = \"select-string\" as const;\n\nconst SelectStringConfigItemDef = z.object({\n type: z.literal(SelectStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.string().min(1).nullable(),\n choices: z.array(z.string().min(1)),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string | null, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\n .nullable()\n .default(defaultValue)\n .optional();\ntype SelectStringConfigItemSchemaType = z.infer<ReturnType<typeof SelectStringConfigItemSchema>>;\n\nconst SelectStringConfigItem = (data: Omit<SelectStringConfigItemDefType, \"type\">) => {\n return {\n def: SelectStringConfigItemDef.parse({\n type: SelectStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectStringConfigItemSchema(data.default, data.choices),\n };\n};\n\nexport {\n SelectStringConfigItem,\n SelectStringConfigItemDef,\n SelectStringConfigItemSchema,\n SelectStringConfigItemTypeLiteral,\n type SelectStringConfigItemDefType,\n type SelectStringConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst ObjectSchemaConfigItemTypeLiteral = \"object-schema\" as const;\n\nconst ObjectSchemaConfigItemDef = z.object({\n type: z.literal(ObjectSchemaConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n objectSchema: z.any(),\n});\ntype ObjectSchemaConfigItemType = z.infer<typeof ObjectSchemaConfigItemDef>;\n\nconst ObjectSchemaConfigItemSchema = <S extends z.ZodRawShape>(schema: z.ZodObject<S>) => schema.optional();\ntype ObjectSchemaConfigItemSchemaType<S extends z.ZodRawShape = z.ZodRawShape> = z.infer<ReturnType<typeof ObjectSchemaConfigItemSchema<S>>>;\n\nconst ObjectSchemaConfigItem = (data: Omit<ObjectSchemaConfigItemType, \"type\">) => {\n return {\n def: ObjectSchemaConfigItemDef.parse({\n type: ObjectSchemaConfigItemTypeLiteral,\n ...data,\n }),\n schema: ObjectSchemaConfigItemSchema(data.objectSchema),\n };\n};\n\nexport {\n ObjectSchemaConfigItem,\n ObjectSchemaConfigItemDef,\n ObjectSchemaConfigItemSchema,\n ObjectSchemaConfigItemTypeLiteral,\n type ObjectSchemaConfigItemType,\n type ObjectSchemaConfigItemSchemaType,\n};","import { z } from \"zod\";\n\nconst SelectBooleanConfigItemTypeLiteral = \"select-boolean\" as const;\n\nconst SelectBooleanConfigItemDef = z.object({\n type: z.literal(SelectBooleanConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.boolean().nullable(),\n});\ntype SelectBooleanConfigItemDefType = z.infer<typeof SelectBooleanConfigItemDef>;\n\nconst SelectBooleanConfigItemSchema = (defaultValue: boolean | null) =>\n z\n .boolean()\n .nullable()\n .default(defaultValue) \n .optional();\ntype SelectBooleanConfigItemSchemaType = z.infer<ReturnType<typeof SelectBooleanConfigItemSchema>>;\n\nconst SelectBooleanConfigItem = (data: Omit<SelectBooleanConfigItemDefType, \"type\">) => {\n return {\n def: SelectBooleanConfigItemDef.parse({\n type: SelectBooleanConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectBooleanConfigItemSchema(data.default),\n };\n};\n\nexport {\n SelectBooleanConfigItem,\n SelectBooleanConfigItemDef,\n SelectBooleanConfigItemSchema,\n SelectBooleanConfigItemTypeLiteral,\n type SelectBooleanConfigItemDefType,\n type SelectBooleanConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nimport { MultiStringConfigItemDef, MultiStringConfigItemTypeLiteral } from \"./multi-string-config-item\";\nimport { RangeConfigItemDef, RangeConfigItemTypeLiteral } from \"./range-config-item\";\nimport { SelectStringConfigItemDef, SelectStringConfigItemTypeLiteral } from \"./select-string-config-item\";\nimport { ObjectSchemaConfigItemDef, ObjectSchemaConfigItemTypeLiteral } from \"./object-schema-config-item\";\nimport { SelectBooleanConfigItemDef, SelectBooleanConfigItemTypeLiteral } from \"./select-boolean-config-item\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral, \n MultiStringConfigItemTypeLiteral, \n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\n SelectBooleanConfigItemTypeLiteral,\n] as const;\nconst ConfigItemEnum = z.enum(ConfigItemLiterals);\ntype ConfigItemEnumType = z.infer<typeof ConfigItemEnum>;\n\nconst ConfigItemDef = z.discriminatedUnion(\"type\", [\n RangeConfigItemDef, \n MultiStringConfigItemDef, \n SelectStringConfigItemDef,\n SelectBooleanConfigItemDef,\n ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\n","import { z } from \"zod\";\n\nimport { ModalityEnum, RoleEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\nconst ChatModelSchema = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum\n>(\n Roles: R = RoleEnum as unknown as R, \n Modalities: M = ModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n roles: z.record(Roles, z.string().min(1).optional()),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n });\ntype ChatModelSchemaType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum\n> = z.infer<ReturnType<typeof ChatModelSchema<R, M>>>;\n\nexport { \n ChatModelSchema, \n type ChatModelSchemaType \n};\n","import { z } from \"zod\";\n\nimport { EmbeddingModalityEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\n// TODO: add embedding model properties (dimensions, etc)\nconst EmbeddingModelSchema = <\n M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum,\n>(\n Modalities: M = EmbeddingModalityEnum as unknown as M\n) => z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1), // TODO: rename property\n maxOutputTokens: z.number().int().positive().min(1), // TODO: rename property\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n});\ntype EmbeddingModelSchemaType<\n M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum,\n> = z.infer<ReturnType<typeof EmbeddingModelSchema<M>>>;\n\nexport { \n EmbeddingModelSchema, \n type EmbeddingModelSchemaType \n};\n","import { z } from \"zod\";\n\nconst Headers = z.record(z.string());\ntype HeadersType = z.infer<typeof Headers>;\n\nexport { Headers, type HeadersType };\n","import { z } from \"zod\";\n\nconst Params = z.record(z.union([\n z.boolean(),\n z.string(), \n z.number(), \n z.object({}),\n z.array(z.any()), // TODO: any or undefined?\n z.null(), \n z.undefined(), \n]));\ntype ParamsType = z.infer<typeof Params>;\n\nexport { Params, type ParamsType };\n","import { z } from \"zod\";\n\nconst Url = z.string().url();\ntype UrlType = z.infer<typeof Url>;\n\nexport { Url, type UrlType };\n","const TEMPERATURE = {\n type: \"range\",\n title: \"Temperature\",\n description:\n \"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. \\\n For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text \\\n that's unexpectedly fresh.\",\n} as const;\n\nconst MAX_TOKENS = {\n type: \"range\",\n title: \"Max tokens\",\n description:\n \"Specify the total tokens for generation, where one token approximates four English characters. \\\n Setting this to 0 defaults to the model's maximum capacity.\",\n} as const;\n\nconst STOP = (max: number) =>\n ({\n type: \"multi\",\n title: \"Stop sequence\",\n description: \n `Enter up to ${max} sequences that will halt additional text output. \\\n The generated text will exclude these sequences.`,\n }) as const;\n\nconst TOP_A = {\n type: \"range\",\n title: \"Top A\",\n description:\n \"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, \\\n functioning like a dynamic Top-P. \\\n A lower Top-A value narrows down the token choices based on the highest probability token, \\\n while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output.\",\n} as const;\n\nconst TOP_P = {\n type: \"range\",\n title: \"Top P\",\n description:\n \"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, \\\n such as the top 10% when P=0.1. \\\n This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. \\\n It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously.\",\n} as const;\n\nconst TOP_K = {\n type: \"range\",\n title: \"Top K\",\n description:\n \"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options.\",\n} as const;\n\nconst MIN_P = {\n type: \"range\",\n title: \"Min P\",\n description:\n \"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. \\\n (This value varies based on the confidence level of the top token.) \\\n For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered.\",\n} as const;\n\nconst FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"Minimize redundancy.\\\n By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. \\\n The default setting for this penalty is zero.\",\n} as const;\n\nconst PRESENCE_PENALTY = {\n type: \"range\",\n title: \"Presence penalty\",\n description:\n \"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, \\\n thus boosting the chances of exploring fresh topics. \\\n The standard setting for this is zero.\",\n} as const;\n\nconst SEED = {\n type: \"range\",\n title: \"Seed\",\n description:\n \"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. \\\n Deterministic output isn't guaranteed. \\\n Also, changing the model or parameter settings, such as the temperature, \\\n can cause variations in the response even when you use the same seed value. \\\n By default, a random seed value is used.\",\n} as const;\n\nconst REPETITION_PENALTY = {\n type: \"range\",\n title: \"Repetition penalty\",\n description:\n \"Reduces the likelihood of repeating tokens from the input. \\\n Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, \\\n often resulting in run-on sentences missing smaller words. \\\n The token penalty is scaled according to the original token's probability.\",\n} as const;\n\nconst LOG_PROBS = {\n type: \"boolean\",\n title: \"Log probs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n} as const;\n\nconst TOP_LOG_PROBS = {\n type: \"range\",\n title: \"Top log probs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. \\\n 'logprobs' must be set to true if this parameter is used.\",\n} as const;\n\nconst ECHO = {\n type: \"boolean\",\n title: \"Echo\",\n description:\n \"If true, the response will contain the prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT_WITH_SCHEMA = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n} as const; \n\nconst RESPONSE_SCHEMA = {\n type: \"object\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n} as const;\n\nconst CHAT_CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_A,\n TOP_P,\n TOP_K,\n MIN_P,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n REPETITION_PENALTY,\n SEED,\n LOG_PROBS,\n TOP_LOG_PROBS,\n ECHO,\n RESPONSE_FORMAT,\n RESPONSE_FORMAT_WITH_SCHEMA,\n RESPONSE_SCHEMA,\n};\n\nexport { CHAT_CONFIG };\n","const DIMENSIONS = {\n type: \"range\",\n title: \"Dimensions\",\n description:\n \"Select the number of dimensions for the word embedding.\",\n} as const;\n\nconst ENCODING_FORMAT = {\n type: \"select\",\n title: \"Encoding format\",\n description:\n \"Select the encoding format for the word embedding.\",\n} as const;\n\nconst EMBEDDING_CONFIG = {\n DIMENSIONS,\n ENCODING_FORMAT,\n};\n\nexport { EMBEDDING_CONFIG };\n","const removeUndefinedEntries = <T = unknown>(record: Record<string, T | undefined>): Record<string, T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Object.fromEntries(Object.entries(record).filter(([_, value]) => value != null)) as Record<string, T>;\n};\n\nexport { removeUndefinedEntries };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","import { z } from \"zod\";\n\nimport { \n CHAT_CONFIG, \n MultiStringConfigItem, \n RangeConfigItem, \n SelectStringConfigItem, \n ObjectSchemaConfigItem\n} from \"@adaline/provider\";\n\nconst temperature = (max: number, _default: number) => RangeConfigItem({\n param: \"temperature\",\n title: CHAT_CONFIG.TEMPERATURE.title,\n description: CHAT_CONFIG.TEMPERATURE.description,\n min: 0.0,\n max: max,\n step: 0.01,\n default: _default,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"maxOutputTokens\",\n title: CHAT_CONFIG.MAX_TOKENS.title,\n description: CHAT_CONFIG.MAX_TOKENS.description,\n min: 0,\n max: maxOutputTokens,\n step: 1,\n default: 0,\n });\n\nconst stop = (maxSequences: number) =>\n MultiStringConfigItem({\n param: \"stopSequences\",\n title: CHAT_CONFIG.STOP(maxSequences).title,\n description: CHAT_CONFIG.STOP(maxSequences).description,\n max: maxSequences,\n });\n\nconst topP = (_default: number) => RangeConfigItem({\n param: \"topP\",\n title: CHAT_CONFIG.TOP_P.title,\n description: CHAT_CONFIG.TOP_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: _default,\n});\n\nconst topK = (_default: number) => RangeConfigItem({\n param: \"topK\",\n title: CHAT_CONFIG.TOP_K.title,\n description: CHAT_CONFIG.TOP_K.description,\n min: 1,\n max: 40,\n step: 1,\n default: _default,\n});\n\nconst frequencyPenalty = RangeConfigItem({\n param: \"frequencyPenalty\",\n title: CHAT_CONFIG.FREQUENCY_PENALTY.title,\n description: CHAT_CONFIG.FREQUENCY_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst presencePenalty = RangeConfigItem({\n param: \"presencePenalty\",\n title: CHAT_CONFIG.PRESENCE_PENALTY.title,\n description: CHAT_CONFIG.PRESENCE_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst seed = RangeConfigItem({\n param: \"seed\",\n title: CHAT_CONFIG.SEED.title,\n description: CHAT_CONFIG.SEED.description,\n min: 0,\n max: 1000000,\n step: 1,\n default: 0,\n});\n\nconst toolChoice = SelectStringConfigItem({\n param: \"toolChoice\",\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\", \"any\", \"none\"],\n});\n\nconst safetySettings = ObjectSchemaConfigItem({\n param: \"safetySettings\",\n title: \"Safety settings\",\n description: \"The safety rating contains the category of harm and the harm probability level in that category for a piece of content.\",\n objectSchema: z.array(z.object({\n threshold: z.enum([\n \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n \"BLOCK_LOW_AND_ABOVE\",\n \"BLOCK_MEDIUM_AND_ABOVE\",\n \"BLOCK_ONLY_HIGH\",\n \"BLOCK_NONE\",\n \"OFF\"\n ]),\n category: z.enum([\n \"HARM_CATEGORY_UNSPECIFIED\",\n \"HARM_CATEGORY_HARASSMENT\",\n \"HARM_CATEGORY_HATE_SPEECH\",\n \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n \"HARM_CATEGORY_CIVIC_INTEGRITY\",\n ]),\n })),\n});\n\nexport { \n maxTokens, \n stop, \n temperature, \n toolChoice, \n topK, \n topP, \n seed, \n frequencyPenalty, \n presencePenalty, \n safetySettings \n};\n","import { z } from \"zod\";\n\nimport {\n maxTokens,\n stop,\n temperature,\n toolChoice,\n topP,\n safetySettings,\n} from \"./common.config.chat-model.google\";\n\nconst ChatModelBaseConfigSchema = (\n maxTemperature: number,\n defaultTemperature: number,\n maxOutputTokens: number,\n maxSequences: number,\n defaultTopP: number,\n) =>\n z.object({\n temperature: temperature(maxTemperature, defaultTemperature).schema,\n maxTokens: maxTokens(maxOutputTokens).schema,\n stop: stop(maxSequences).schema,\n topP: topP(defaultTopP).schema,\n toolChoice: toolChoice.schema,\n safetySettings: safetySettings.schema,\n });\n\nconst ChatModelBaseConfigDef = (\n maxTemperature: number,\n defaultTemperature: number,\n maxOutputTokens: number,\n maxSequences: number,\n defaultTopP: number,\n) =>\n ({\n temperature: temperature(maxTemperature, defaultTemperature).def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP(defaultTopP).def,\n toolChoice: toolChoice.def,\n safetySettings: safetySettings.def,\n }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n maxTokens,\n presencePenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topP,\n topK,\n safetySettings,\n} from \"./common.config.chat-model.google\";\n\nconst ChatModelC1ConfigSchema = (\n maxTemperature: number,\n defaultTemperature: number,\n maxOutputTokens: number,\n maxSequences: number,\n defaultTopP: number,\n defaultTopK: number,\n) =>\n z.object({\n temperature: temperature(maxTemperature, defaultTemperature).schema,\n maxTokens: maxTokens(maxOutputTokens).schema,\n stop: stop(maxSequences).schema,\n topP: topP(defaultTopP).schema,\n topK: topK(defaultTopK).schema,\n frequencyPenalty: frequencyPenalty.schema,\n presencePenalty: presencePenalty.schema,\n seed: seed.schema.transform((value) => (value === 0 ? undefined : value)),\n toolChoice: toolChoice.schema,\n safetySettings: safetySettings.schema,\n });\n\nconst ChatModelC1ConfigDef = (\n maxTemperature: number,\n defaultTemperature: number,\n maxOutputTokens: number,\n maxSequences: number,\n defaultTopP: number,\n defaultTopK: number,\n) =>\n ({\n temperature: temperature(maxTemperature, defaultTemperature).def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP(defaultTopP).def,\n topK: topK(defaultTopK).def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n seed: seed.def,\n toolChoice: toolChoice.def,\n safetySettings: safetySettings.def,\n }) as const;\n\nexport { ChatModelC1ConfigDef, ChatModelC1ConfigSchema };\n","import { EMBEDDING_CONFIG, RangeConfigItem } from \"@adaline/provider\";\n\nconst dimensions = (maxDimensions: number) =>\n RangeConfigItem({\n param: \"outputDimensionality\",\n title: EMBEDDING_CONFIG.DIMENSIONS.title,\n description: EMBEDDING_CONFIG.DIMENSIONS.description,\n min: 1,\n max: maxDimensions,\n step: 1,\n default: maxDimensions,\n });\n\nexport { \n dimensions \n};\n","import { z } from \"zod\";\n\nimport {dimensions } from \"./common.config.embedding-model.google\";\n\nconst EmbeddingModelBaseConfigSchema = (maxDimensions: number) =>\n z.object({\n dimensions: dimensions(maxDimensions).schema,\n });\n\nconst EmbeddingModelBaseConfigDef = (maxDimensions: number) =>\n ({\n dimensions: dimensions(maxDimensions).def,\n }) as const;\n\nexport { EmbeddingModelBaseConfigDef, EmbeddingModelBaseConfigSchema };\n","import {\n ChatModelBaseConfigDef,\n ChatModelBaseConfigSchema,\n ChatModelC1ConfigDef,\n ChatModelC1ConfigSchema,\n} from \"./chat-model\";\nimport { \n EmbeddingModelBaseConfigDef, \n EmbeddingModelBaseConfigSchema,\n} from \"./embedding-model\";\n\nconst GoogleChatModelConfigs = {\n base: ( \n maxTemperature: number,\n defaultTemperature: number,\n maxOutputTokens: number,\n maxSequences: number,\n defaultTopP: number,\n ) => ({\n def: ChatModelBaseConfigDef(maxTemperature, defaultTemperature, maxOutputTokens, maxSequences, defaultTopP),\n schema: ChatModelBaseConfigSchema(maxTemperature, defaultTemperature, maxOutputTokens, maxSequences, defaultTopP),\n }),\n c1: (\n maxTemperature: number,\n defaultTemperature: number,\n maxOutputTokens: number,\n maxSequences: number,\n defaultTopP: number,\n defaultTopK: number,\n ) => ({\n def: ChatModelC1ConfigDef(maxTemperature, defaultTemperature, maxOutputTokens, maxSequences, defaultTopP, defaultTopK),\n schema: ChatModelC1ConfigSchema(maxTemperature, defaultTemperature, maxOutputTokens, maxSequences, defaultTopP, defaultTopK),\n }),\n} as const;\n\nconst GoogleEmbeddingModelConfigs = {\n base: (maxDimensions: number) => ({\n def: EmbeddingModelBaseConfigDef(maxDimensions),\n schema: EmbeddingModelBaseConfigSchema(maxDimensions),\n }),\n} as const;\n\nexport { GoogleChatModelConfigs, GoogleEmbeddingModelConfigs };\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst GoogleChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst GoogleChatAssistantRoleLiteral = \"model\";\nconst GoogleChatToolRoleLiteral = \"function\";\n\nconst GoogleChatModelRolesMap = {\n system: UserRoleLiteral,\n user: UserRoleLiteral,\n assistant: GoogleChatAssistantRoleLiteral,\n tool: GoogleChatToolRoleLiteral,\n} as const;\n\nexport { \n GoogleChatAssistantRoleLiteral,\n GoogleChatToolRoleLiteral,\n GoogleChatModelRoles, \n GoogleChatModelRolesMap,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst GoogleChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst GoogleChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nconst GoogleChatModelTextModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n];\n\nconst GoogleChatModelTextModalitiesEnum = z.enum([\n TextModalityLiteral,\n]);\n\nconst GoogleChatModelTextVisionModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n];\n\nconst GoogleChatModelTextVisionModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n]);\n\nconst GoogleChatModelTextToolModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst GoogleChatModelTextToolModalitiesEnum = z.enum([\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport {\n GoogleChatModelModalitiesEnum,\n GoogleChatModelModalities,\n GoogleChatModelTextModalitiesEnum,\n GoogleChatModelTextModalities,\n GoogleChatModelTextToolModalitiesEnum,\n GoogleChatModelTextToolModalities,\n GoogleChatModelTextVisionModalitiesEnum,\n GoogleChatModelTextVisionModalities,\n};\n","import { z } from \"zod\";\n\nconst GoogleCompleteChatTextResponse = z.object({\n text: z.string(),\n});\n\nconst GoogleCompleteChatToolResponse = z.object({\n functionCall: z.object({\n name: z.string(),\n args: z.record(z.any()),\n }),\n});\n\nconst GoogleCompleteChatResponse = z.object({\n candidates: z.array(\n z.object({\n content: z.object({\n role: z.string(),\n parts: z.array(z.union([GoogleCompleteChatTextResponse, GoogleCompleteChatToolResponse])),\n }).optional(),\n finishReason: z.string(),\n index: z.number().optional(),\n safetyRatings: z.optional(\n z.array(\n z.object({\n category: z.string(),\n probability: z.string(),\n blocked: z.boolean().optional(),\n })\n )\n ),\n })\n ),\n promptFeedback: z.optional(\n z.object({\n safetyRatings: z.optional(\n z.array(\n z.object({\n category: z.string(),\n probability: z.string(),\n })\n )\n ),\n })\n ),\n usageMetadata: z.object({\n promptTokenCount: z.number(),\n cachedContentTokenCount: z.number().optional(),\n candidatesTokenCount: z.number().optional(),\n totalTokenCount: z.number(),\n }).optional(),\n});\ntype GoogleCompleteChatResponseType = z.infer<typeof GoogleCompleteChatResponse>;\n\nconst GoogleStreamChatTextResponse = z.object({\n text: z.string(),\n});\n\nconst GoogleStreamChatToolResponse = z.object({\n functionCall: z.object({\n name: z.string(),\n args: z.record(z.any()),\n }),\n});\n\nconst GoogleStreamChatResponse = z.object({\n candidates: z.array(\n z.object({\n content: z\n .object({\n role: z.string(),\n parts: z.array(z.union([GoogleStreamChatTextResponse, GoogleStreamChatToolResponse])),\n })\n .optional(),\n finishReason: z.string().optional(),\n index: z.number().optional(),\n safetyRatings: z.optional(\n z.array(\n z.object({\n category: z.string(),\n probability: z.string(),\n blocked: z.boolean().optional(),\n })\n )\n ),\n })\n ),\n promptFeedback: z.optional(\n z.object({\n safetyRatings: z.optional(\n z.array(\n z.object({\n category: z.string(),\n probability: z.string(),\n })\n )\n ),\n })\n ),\n usageMetadata: z.object({\n promptTokenCount: z.number(),\n cachedContentTokenCount: z.number().optional(),\n candidatesTokenCount: z.number(),\n totalTokenCount: z.number(),\n }).optional(),\n});\ntype GoogleStreamChatResponseType = z.infer<typeof GoogleStreamChatResponse>;\n\nexport {\n GoogleCompleteChatResponse,\n GoogleCompleteChatTextResponse,\n GoogleCompleteChatToolResponse,\n GoogleStreamChatResponse,\n GoogleStreamChatTextResponse,\n GoogleStreamChatToolResponse,\n type GoogleStreamChatResponseType,\n type GoogleCompleteChatResponseType,\n};","import { z } from \"zod\";\n\nconst GoogleChatContentPartText = z.object({\n text: z.string().min(1),\n});\ntype GoogleChatContentPartTextType = z.infer<typeof GoogleChatContentPartText>;\n\nconst GoogleChatContentPartInlineData = z.object({\n inline_data: z.object({\n mime_type: z.string().min(1),\n data: z.string().base64(),\n }),\n});\ntype GoogleChatContentPartInlineDataType = z.infer<typeof GoogleChatContentPartInlineData>;\n\nconst GoogleChatContentPartFunctionCall = z.object({\n function_call: z.object({\n name: z.string().min(1),\n args: z.record(z.string().min(1)),\n }),\n});\ntype GoogleChatContentPartFunctionCallType = z.infer<typeof GoogleChatContentPartFunctionCall>;\n\nconst GoogleChatContentPartFunctionResponse = z.object({\n function_response: z.object({\n name: z.string().min(1),\n response: z.record(z.string().min(1)),\n }),\n});\ntype GoogleChatContentPartFunctionResponseType = z.infer<typeof GoogleChatContentPartFunctionResponse>;\n\nconst GoogleChatContent = z.object({\n role: z.enum([\"user\", \"model\", \"function\"]),\n parts: z.array(z.union([\n GoogleChatContentPartText,\n GoogleChatContentPartInlineData,\n GoogleChatContentPartFunctionCall,\n GoogleChatContentPartFunctionResponse,\n ])),\n});\ntype GoogleChatContentType = z.infer<typeof GoogleChatContent>;\n\nconst GoogleChatSystemInstruction = z.object({\n parts: z.array(GoogleChatContentPartText),\n});\ntype GoogleChatSystemInstructionType = z.infer<typeof GoogleChatSystemInstruction>;\n\nconst GoogleChatTool = z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n parameters: z.any(),\n});\ntype GoogleChatToolType = z.infer<typeof GoogleChatTool>;\n\nconst GoogleChatToolConfig = z.object({\n function_calling_config: z.object({\n mode: z.enum([\"ANY\", \"AUTO\", \"NONE\"]),\n allowed_function_names: z.array(z.string()).optional(),\n }),\n});\ntype GoogleChatToolConfigType = z.infer<typeof GoogleChatToolConfig>;\n\nconst GoogleChatGenerationConfig = z.object({\n stopSequences: z.array(z.string()).optional(),\n maxOutputTokens: z.number().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n topK: z.number().optional(),\n presencePenalty: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n seed: z.number().optional(),\n});\ntype GoogleChatGenerationConfigType = z.infer<typeof GoogleChatGenerationConfig>;\n\nconst GoogleChatRequest = z.object({\n model: z.string().min(1).optional(),\n contents: z.array(GoogleChatContent),\n systemInstruction: GoogleChatSystemInstruction.optional(),\n system_instruction: GoogleChatSystemInstruction.optional(),\n generationConfig: GoogleChatGenerationConfig.optional(),\n generation_config: GoogleChatGenerationConfig.optional(),\n tools: z.object({\n function_declarations: z.array(GoogleChatTool),\n }).optional(),\n toolConfig: GoogleChatToolConfig.optional(),\n tool_config: GoogleChatToolConfig.optional(),\n});\ntype GoogleChatRequestType = z.infer<typeof GoogleChatRequest>;\n\nexport {\n GoogleChatContent,\n GoogleChatContentPartFunctionCall,\n GoogleChatContentPartFunctionResponse,\n GoogleChatContentPartInlineData,\n GoogleChatContentPartText,\n GoogleChatGenerationConfig,\n GoogleChatRequest,\n GoogleChatSystemInstruction,\n GoogleChatTool,\n GoogleChatToolConfig,\n type GoogleChatContentPartTextType,\n type GoogleChatContentPartFunctionCallType,\n type GoogleChatContentPartFunctionResponseType,\n type GoogleChatContentPartInlineDataType,\n type GoogleChatToolType,\n type GoogleChatToolConfigType,\n type GoogleChatGenerationConfigType,\n type GoogleChatRequestType,\n type GoogleChatContentType,\n type GoogleChatSystemInstructionType,\n};","import { z } from \"zod\";\n\nimport { \n ChatModelV1, \n ChatModelSchemaType, \n EmbeddingModelV1, \n EmbeddingModelSchemaType, \n ProviderV1, \n ProviderError \n} from \"@adaline/provider\";\n\nimport {\n Gemini1_5Flash001,\n Gemini1_5Flash001Options,\n Gemini1_5Flash001Schema,\n Gemini1_5Flash001Literal,\n Gemini1_5Flash002,\n Gemini1_5Flash002Options,\n Gemini1_5Flash002Schema,\n Gemini1_5Flash002Literal,\n Gemini1_5FlashLatest,\n Gemini1_5FlashLatestOptions,\n Gemini1_5FlashLatestSchema,\n Gemini1_5FlashLatestLiteral,\n Gemini1_5Flash,\n Gemini1_5FlashOptions,\n Gemini1_5FlashSchema,\n Gemini1_5FlashLiteral,\n Gemini1_5Pro001,\n Gemini1_5Pro001Options,\n Gemini1_5Pro001Schema,\n Gemini1_5Pro001Literal,\n Gemini1_5Pro002,\n Gemini1_5Pro002Options,\n Gemini1_5Pro002Schema,\n Gemini1_5Pro002Literal,\n Gemini1_5ProLatest,\n Gemini1_5ProLatestOptions,\n Gemini1_5ProLatestSchema,\n Gemini1_5ProLatestLiteral,\n Gemini1_5Pro,\n Gemini1_5ProOptions,\n Gemini1_5ProSchema,\n Gemini1_5ProLiteral,\n Gemini1_0Pro,\n Gemini1_0ProOptions,\n Gemini1_0ProSchema,\n Gemini1_0ProLiteral,\n Gemini1_0ProVision,\n Gemini1_0ProVisionOptions,\n Gemini1_0ProVisionSchema,\n Gemini1_0ProVisionLiteral,\n Gemini1_0ProLatest,\n Gemini1_0ProLatestOptions,\n Gemini1_0ProLatestSchema,\n Gemini1_0ProLatestLiteral,\n Gemini1_0Pro_001,\n Gemini1_0Pro_001Options,\n Gemini1_0Pro_001Schema,\n Gemini1_0Pro_001Literal,\n} from \"../models\";\n\nimport {\n Text_Embedding_001,\n Text_Embedding_001Options,\n Text_Embedding_001Schema,\n Text_Embedding_001Literal,\n Text_Embedding_004,\n Text_Embedding_004Options,\n Text_Embedding_004Schema,\n Text_Embedding_004Literal\n} from \"../models\";\n\nconst ProviderLiteral = \"google\";\nclass Google<O extends Record<string, any> = Record<string, any>> implements ProviderV1<O> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n static readonly baseUrl: string = \"https://generativelanguage.googleapis.com/v1beta\";\n\n private readonly chatModelFactories: \n Record<string, { \n model: { new (options: any): ChatModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: ChatModelSchemaType\n }> = {\n [Gemini1_5Flash001Literal]: {\n model: Gemini1_5Flash001,\n modelOptions: Gemini1_5Flash001Options,\n modelSchema: Gemini1_5Flash001Schema,\n },\n [Gemini1_5Flash002Literal]: {\n model: Gemini1_5Flash002,\n modelOptions: Gemini1_5Flash002Options,\n modelSchema: Gemini1_5Flash002Schema,\n },\n [Gemini1_5FlashLatestLiteral]: {\n model: Gemini1_5FlashLatest,\n modelOptions: Gemini1_5FlashLatestOptions,\n modelSchema: Gemini1_5FlashLatestSchema,\n },\n [Gemini1_5FlashLiteral]: {\n model: Gemini1_5Flash,\n modelOptions: Gemini1_5FlashOptions,\n modelSchema: Gemini1_5FlashSchema,\n },\n [Gemini1_5Pro001Literal]: {\n model: Gemini1_5Pro001,\n modelOptions: Gemini1_5Pro001Options,\n modelSchema: Gemini1_5Pro001Schema,\n },\n [Gemini1_5Pro002Literal]: {\n model: Gemini1_5Pro002,\n modelOptions: Gemini1_5Pro002Options,\n modelSchema: Gemini1_5Pro002Schema,\n },\n [Gemini1_5ProLatestLiteral]: {\n model: Gemini1_5ProLatest,\n modelOptions: Gemini1_5ProLatestOptions,\n modelSchema: Gemini1_5ProLatestSchema,\n },\n [Gemini1_5ProLiteral]: {\n model: Gemini1_5Pro,\n modelOptions: Gemini1_5ProOptions,\n modelSchema: Gemini1_5ProSchema,\n },\n [Gemini1_0ProLiteral]: {\n model: Gemini1_0Pro,\n modelOptions: Gemini1_0ProOptions,\n modelSchema: Gemini1_0ProSchema,\n },\n [Gemini1_0ProVisionLiteral]: {\n model: Gemini1_0ProVision,\n modelOptions: Gemini1_0ProVisionOptions,\n modelSchema: Gemini1_0ProVisionSchema,\n },\n [Gemini1_0ProLatestLiteral]: {\n model: Gemini1_0ProLatest,\n modelOptions: Gemini1_0ProLatestOptions,\n modelSchema: Gemini1_0ProLatestSchema,\n },\n [Gemini1_0Pro_001Literal]: {\n model: Gemini1_0Pro_001,\n modelOptions: Gemini1_0Pro_001Options,\n modelSchema: Gemini1_0Pro_001Schema,\n },\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_001Literal]: {\n model: Text_Embedding_001,\n modelOptions: Text_Embedding_001Options,\n modelSchema: Text_Embedding_001Schema,\n },\n [Text_Embedding_004Literal]: {\n model: Text_Embedding_004,\n modelOptions: Text_Embedding_004Options,\n modelSchema: Text_Embedding_004Schema,\n },\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 ProviderError({\n info: `Google chat model: ${name} not found`,\n cause: new Error(`Google chat model: ${name} not found, available chat models: \n [${this.chatModelLiterals().join(\", \")}]`),\n });\n }\n\n const model = this.chatModelFactories[name].model;\n const modelOptions = {\n ...options,\n };\n const parsedOptions = this.chatModelFactories[name].modelOptions.parse(modelOptions);\n return new model(parsedOptions);\n }\n\n chatModelSchema(name: string): ChatModelSchemaType {\n if (!(name in this.chatModelFactories)) {\n throw new ProviderError({\n info: `Google chat model: ${name} not found`,\n cause: new Error(`Google chat model: ${name} not found, available chat models: \n [${this.chatModelLiterals().join(\", \")}]`),\n });\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 ProviderError({\n info: `Google embedding model: ${name} not found`,\n cause: new Error(`Google embedding model: ${name} not found, available embedding models: \n [${this.embeddingModelLiterals().join(\", \")}]`),\n });\n }\n\n const model = this.embeddingModelFactories[name].model;\n const modelOptions = { \n ...options,\n };\n const parsedOptions = this.embeddingModelFactories[name].modelOptions.parse(modelOptions);\n return new model(parsedOptions);\n }\n\n embeddingModelSchema(name: string): EmbeddingModelSchemaType {\n if (!(name in this.embeddingModelFactories)) {\n throw new ProviderError({\n info: `Google embedding model: ${name} not found`,\n cause: new Error(`Google embedding model: ${name} not found, available embedding models: \n [${this.embeddingModelLiterals().join(\", \")}]`),\n });\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 { Google, ProviderLiteral };\n","import { z } from \"zod\";\n\nimport {\n HeadersType,\n ParamsType,\n UrlType,\n ChatModelV1,\n ChatModelSchemaType,\n SelectStringConfigItemDefType,\n ModelResponseError,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidToolsError,\n InvalidModelRequestError,\n urlWithoutTrailingSlash,\n removeUndefinedEntries,\n} from \"@adaline/provider\";\n\nimport {\n SystemRoleLiteral,\n UserRoleLiteral,\n AssistantRoleLiteral,\n ToolRoleLiteral,\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ImageModalityLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentValueType,\n Config,\n Message,\n Tool,\n ConfigType,\n ContentType,\n MessageType,\n ToolType,\n ToolCallContentType,\n ChatUsageType,\n ChatResponseType,\n PartialChatResponseType,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createTextContent,\n createToolCallContent,\n} from \"@adaline/types\";\n\nimport { Google } from \"../../provider/provider.google\";\n\nimport { \n GoogleCompleteChatResponse, \n GoogleCompleteChatResponseType,\n GoogleStreamChatResponse,\n GoogleStreamChatResponseType,\n} from \"./types\";\n\nimport { \n GoogleChatToolType,\n GoogleChatRequest, \n GoogleChatRequestType,\n GoogleChatSystemInstructionType,\n GoogleChatContentType,\n GoogleChatContentPartTextType,\n GoogleChatContentPartInlineDataType,\n GoogleChatContentPartFunctionCallType,\n GoogleChatContentPartFunctionResponseType,\n} from \"./types\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string(),\n baseUrl: z.string().url().optional(),\n completeChatUrl: z.string().url().optional(),\n streamChatUrl: z.string().url().optional(),\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;\n private readonly streamChatUrl: string;\n private readonly completeChatUrl: string;\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n const parsedOptions = BaseChatModelOptions.parse(options);\n this.modelSchema = modelSchema;\n this.apiKey = parsedOptions.apiKey;\n this.baseUrl = urlWithoutTrailingSlash(parsedOptions.baseUrl ?? Google.baseUrl);\n this.completeChatUrl = urlWithoutTrailingSlash(\n parsedOptions.completeChatUrl || \n `${this.baseUrl}/models/${this.modelSchema.name}:generateContent?key=${this.apiKey}`\n );\n this.streamChatUrl = urlWithoutTrailingSlash(\n parsedOptions.streamChatUrl || \n `${this.baseUrl}/models/${this.modelSchema.name}:streamGenerateContent?key=${this.apiKey}`\n );\n };\n\n getDefaultBaseUrl(): UrlType {\n return this.baseUrl;\n };\n\n getDefaultHeaders(): HeadersType {\n return {\n \"Content-Type\": \"application/json\",\n source: \"adaline.ai\",\n };\n };\n\n getDefaultParams(): ParamsType {\n return {};\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean, delayMs: number } {\n return { shouldRetry: false, delayMs: 0 };\n };\n\n // TODO: unused method, not tested; should add support for non-text modalities, tools\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 // TODO: add safetySettings parsing\n transformModelRequest(request: GoogleChatRequestType): { \n modelName: string | undefined, \n config: ConfigType, \n messages: MessageType[], \n tools: ToolType[] | undefined \n } {\n const safeRequest = GoogleChatRequest.safeParse(request);\n if (!safeRequest.success) {\n throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n }\n\n const parsedRequest = safeRequest.data;\n\n const modelName = parsedRequest.model;\n\n if (parsedRequest.system_instruction && parsedRequest.systemInstruction) {\n throw new InvalidModelRequestError({\n info: `Invalid model request for model : '${this.modelSchema.name}'`,\n cause: new Error(\"'system_instruction' and 'systemInstruction' are not allowed at the same time\"),\n });\n }\n\n if (parsedRequest.generation_config && parsedRequest.generationConfig) {\n throw new InvalidModelRequestError({\n info: `Invalid model request for model : '${this.modelSchema.name}'`,\n cause: new Error(\"'generation_config' and 'generationConfig' are not allowed at the same time\"),\n });\n }\n\n if (parsedRequest.tool_config && parsedRequest.toolConfig) {\n throw new InvalidModelRequestError({\n info: `Invalid model request for model : '${this.modelSchema.name}'`,\n cause: new Error(\"'tool_config' and 'toolConfig' are not allowed at the same time\"),\n });\n }\n\n const systemInstruction = parsedRequest.system_instruction || parsedRequest.systemInstruction;\n const generationConfig = parsedRequest.generation_config || parsedRequest.generationConfig;\n const toolConfig = parsedRequest.tool_config || parsedRequest.toolConfig;\n\n if (toolConfig && (!parsedRequest.tools || parsedRequest.tools.function_declarations.length === 0)) {\n throw new InvalidModelRequestError({\n info: `Invalid model request for model : '${this.modelSchema.name}'`,\n cause: new Error(\"'tools' are required when 'tool_choice' is specified\"),\n });\n }\n\n const _config: ConfigType = {};\n\n if (toolConfig) {\n if (toolConfig.function_calling_config.mode === \"ANY\") {\n if (toolConfig.function_calling_config.allowed_function_names && toolConfig.function_calling_config.allowed_function_names.length === 1) {\n _config.toolChoice = toolConfig.function_calling_config.allowed_function_names[0];\n } else {\n _config.toolChoice = toolConfig.function_calling_config.mode.toLowerCase();\n }\n } else {\n _config.toolChoice = toolConfig.function_calling_config.mode.toLowerCase();\n }\n } \n\n _config.seed = generationConfig?.seed;\n _config.maxTokens = generationConfig?.maxOutputTokens;\n _config.temperature = generationConfig?.temperature;\n _config.topP = generationConfig?.topP;\n _config.presencePenalty = generationConfig?.presencePenalty;\n _config.frequencyPenalty = generationConfig?.frequencyPenalty;\n _config.stop = generationConfig?.stopSequences;\n const config = Config().parse(removeUndefinedEntries(_config));\n\n const messages: MessageType[] = [];\n const toolCallMap: { [id: string] : ToolCallContentType } = {};\n\n if (systemInstruction) {\n systemInstruction.parts.forEach((part) => {\n messages.push({ role: SystemRoleLiteral, content: [{ modality: TextModalityLiteral, value: part.text }] });\n });\n }\n\n parsedRequest.contents.forEach((message) => {\n const role = message.role;\n switch (role) {\n case \"user\": {\n const content = message.parts as (GoogleChatContentPartTextType | GoogleChatContentPartInlineDataType)[];\n const _content = content.map((c) => {\n if (\"text\" in c) {\n return { modality: TextModalityLiteral, value: c.text }\n } else {\n return {\n modality: ImageModalityLiteral,\n detail: \"auto\" as \"auto\",\n value: { \n type: Base64ImageContentTypeLiteral, \n base64: c.inline_data.data,\n media_type: c.inline_data.mime_type.split(\"/\")[1] as Base64ImageContentValueType[\"media_type\"],\n }\n }\n }\n });\n messages.push({ role: role, content: _content });\n }\n break;\n\n case \"model\": {\n const content = message.parts as (GoogleChatContentPartTextType | GoogleChatContentPartFunctionCallType)[];\n const _content = content.map((c, index) => {\n if (\"text\" in c) {\n return { modality: TextModalityLiteral, value: c.text }\n } else {\n return {\n modality: ToolCallModalityLiteral,\n id: index.toString(),\n index: index,\n name: c.function_call.name,\n arguments: JSON.stringify(c.function_call.args),\n }\n }\n });\n messages.push({ role: AssistantRoleLiteral, content: _content });\n }\n break;\n\n case \"function\": {\n const content = message.parts as GoogleChatContentPartFunctionResponseType[];\n const _content = content.map((c, index) => {\n return {\n modality: ToolResponseModalityLiteral,\n id: index.toString(),\n index: index,\n name: c.function_response.name,\n data: JSON.stringify(c.function_response.response),\n }\n });\n messages.push({ role: ToolRoleLiteral, content: _content });\n }\n break;\n\n default: {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' for model : ${this.modelSchema.name}`,\n cause: new Error(`role : '${message.role}' is not supported for model : ${this.modelSchema.name}`),\n });\n }\n }\n });\n\n const tools: ToolType[] = [];\n if (parsedRequest.tools) {\n parsedRequest.tools.function_declarations.forEach((tool: GoogleChatToolType) => {\n tools.push({\n type: \"function\",\n definition: {\n schema: {\n name: tool.name,\n description: tool.description,\n parameters: tool.parameters,\n }\n }\n });\n });\n }\n\n return {\n modelName,\n config,\n messages,\n tools: tools.length > 0 ? tools : undefined,\n };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig(config: ConfigType, messages?: MessageType[], tools?: ToolType[]): ParamsType {\n const _toolChoice = config.toolChoice;\n delete config.toolChoice; // can have a specific tool name that is not in the model schema, validated at transformation \n\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({ \n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: _parsedConfig.error \n });\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n\n Object.keys(parsedConfig).forEach((key) => {\n if (!(key in this.modelSchema.config.def)) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: new Error(`Invalid config key : '${key}', \n available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`),\n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\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 === \"maxOutputTokens\" && 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 const safetySettings = transformedConfig.safetySettings;\n delete transformedConfig.safetySettings;\n\n let toolConfig;\n if (_toolChoice !== undefined) {\n const toolChoice = _toolChoice as string;\n if (!tools || (tools && tools.length === 0)) {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: new Error(\"'tools' are required when 'toolChoice' is specified\"),\n });\n } else if (tools && tools.length > 0) {\n const configToolChoice = this.modelSchema.config.def.toolChoice as SelectStringConfigItemDefType;\n if (!configToolChoice.choices.includes(toolChoice)) {\n // toolChoice not in model schema choices\n if (tools.map((tool) => tool.definition.schema.name).includes(toolChoice)) {\n // toolChoice is a specific tool name\n toolConfig = { \n function_calling_config: {\n mode: \"ANY\",\n allowed_function_names: [toolChoice],\n }\n };\n } else {\n throw new InvalidConfigError({\n info: `Invalid config for model : '${this.modelSchema.name}'`,\n cause: new Error(`toolChoice : '${toolChoice}' is not part of provided 'tools' names or \n one of [${configToolChoice.choices.join(\", \")}]`),\n });\n }\n } else {\n // toolChoice is in model schema choices\n if (toolChoice === \"any\") {\n toolConfig = {\n function_calling_config: {\n mode: \"ANY\",\n allowed_function_names: tools.map((tool) => tool.definition.schema.name),\n }\n };\n } else {\n toolConfig = {\n function_calling_config: {\n mode: toolChoice.toUpperCase(), // Google uses uppercase for toolChoice\n }\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: `Invalid config for model : '${this.modelSchema.name}'`, \n // cause: new Error(\"'responseSchema' is required in config when 'responseFormat' is 'json_schema'\") \n // });\n // } else {\n // transformedConfig.response_format = { \n // type: \"json_schema\",\n // json_schema: transformedConfig.response_schema,\n // };\n // delete transformedConfig.response_schema;\n // }\n // } else {\n // transformedConfig.response_format = { type: responseFormat };\n // }\n // }\n\n return { \n generation_config: transformedConfig,\n ...(toolConfig ? { tool_config: toolConfig } : {}),\n ...(safetySettings ? { safety_settings: safetySettings } : {}),\n };\n };\n\n transformMessages(messages: MessageType[]): ParamsType {\n if (!messages || (messages && messages.length === 0)) {\n return { messages: [] };\n }\n\n const parsedMessages = messages.map((message) => {\n const parsedMessage = Message().safeParse(message);\n if (!parsedMessage.success) {\n throw new InvalidMessagesError({ info: \"Invalid messages\", cause: parsedMessage.error });\n }\n return parsedMessage.data;\n });\n\n parsedMessages.forEach((message) => {\n message.content.forEach((content) => {\n if (!this.modelSchema.modalities.includes(content.modality)) {\n throw new InvalidMessagesError({\n info: `Invalid message content for model : '${this.modelSchema.name}'`,\n cause: new Error(`model : '${this.modelSchema.name}' does not support modality : '${content.modality}', \n available modalities : [${this.modelSchema.modalities.join(\", \")}]`),\n });\n }\n });\n });\n\n parsedMessages.forEach((message) => {\n if (!Object.keys(this.modelSchema.roles).includes(message.role)) {\n throw new InvalidMessagesError({\n info: `Invalid message content for model : '${this.modelSchema.name}'`,\n cause: new Error(`model : '${this.modelSchema.name}' does not support role : '${message.role}', \n available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n });\n }\n });\n\n let systemInstruction: GoogleChatSystemInstructionType = { parts: [] };\n const nonSystemMessages: GoogleChatContentType[] = [];\n\n parsedMessages.forEach((message) => {\n switch (message.role) {\n case SystemRoleLiteral: {\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n systemInstruction.parts.push({ text: content.value });\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelSchema.name}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n }\n break;\n\n case AssistantRoleLiteral: {\n const assistantContent: GoogleChatContentType['parts'] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n assistantContent.push({ text: content.value });\n } else if (content.modality === ToolCallModalityLiteral) {\n assistantContent.push({\n function_call: {\n name: content.name,\n args: JSON.parse(content.arguments),\n }\n });\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelSchema.name}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n nonSystemMessages.push({\n role: this.modelSchema.roles[message.role] as GoogleChatContentType['role'],\n parts: assistantContent,\n });\n }\n break;\n\n case UserRoleLiteral: {\n const userContent: GoogleChatContentType['parts'] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n userContent.push({ text: content.value });\n } else if (content.modality === ImageModalityLiteral) {\n if (content.value.type === \"base64\") {\n userContent.push({ \n inline_data: {\n mime_type: content.value.media_type,\n data: content.value.base64\n }\n });\n } else if (content.value.type === \"url\") {\n // TODO: add logic to fetch image from url, remove this error\n throw new InvalidMessagesError({\n info: `Invalid message 'modality' for model : ${this.modelSchema.name}`,\n cause: new Error(`model: '${this.modelSchema.name}' does not support image content type: '${content.value.type}'`),\n });\n }\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelSchema.name}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n nonSystemMessages.push({\n role: this.modelSchema.roles[message.role] as GoogleChatContentType['role'],\n parts: userContent,\n });\n }\n break;\n\n case ToolRoleLiteral: {\n const toolResponseContent: GoogleChatContentPartFunctionResponseType[] = [];\n message.content.forEach((content) => {\n if (content.modality === ToolResponseModalityLiteral) {\n toolResponseContent.push({\n function_response: {\n name: content.name,\n response: JSON.parse(content.data),\n }\n });\n } else {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' and 'modality' combination for model : ${this.modelSchema.name}`,\n cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n });\n }\n });\n nonSystemMessages.push({\n role: this.modelSchema.roles[message.role] as GoogleChatContentType['role'],\n parts: toolResponseContent,\n });\n }\n break;\n\n default: {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' for model : ${this.modelSchema.name}`,\n cause: new Error(`role : '${message.role}' is not supported, \n available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n });\n }\n }\n });\n\n if (nonSystemMessages[0].role !== this.modelSchema.roles[UserRoleLiteral]) {\n throw new InvalidMessagesError({\n info: `Invalid message 'role' for model : ${this.modelSchema.name}`,\n cause: new Error(`model : '${this.modelSchema.name}' requires first message to be from user`),\n });\n }\n\n const getNextExpectedRoles = (role: string): string[] => {\n if (role === this.modelSchema.roles[UserRoleLiteral] || role === this.modelSchema.roles[ToolRoleLiteral]) {\n return [this.modelSchema.roles[AssistantRoleLiteral] as string];\n }\n return [this.modelSchema.roles[UserRoleLiteral] as string, this.modelSchema.roles[ToolRoleLiteral] as string];\n };\n\n for (let i = 1; i < nonSystemMessages.length; i++) {\n if (!getNextExpectedRoles(nonSystemMessages[i - 1].role).includes(nonSystemMessages[i].role)) {\n throw new InvalidMessagesError({\n info: `Invalid message format for model : ${this.modelSchema.name}`,\n cause: new Error(`model : '${this.modelSchema.name}' cannot have message with role : '${nonSystemMessages[i].role}' after message with role : '${nonSystemMessages[i - 1].role}'`),\n });\n }\n }\n\n if (nonSystemMessages[nonSystemMessages.length - 1].role !== this.modelSchema.roles[UserRoleLiteral]) {\n throw new InvalidMessagesError({\n info: `Invalid message format for model : ${this.modelSchema.name}`,\n cause: new Error(`model : '${this.modelSchema.name}' requires last message to be from user`),\n });\n }\n\n return { \n contents: nonSystemMessages,\n ...(systemInstruction.parts.length > 0 ? { system_instruction: systemInstruction } : {}),\n };\n };\n\n transformTools(tools: ToolType[]): ParamsType {\n if (!this.modelSchema.modalities.includes(ToolCallModalityLiteral)) {\n throw new InvalidToolsError({\n info: `Invalid tool 'modality' for model : ${this.modelSchema.name}`,\n cause: new Error(`model : '${this.modelSchema.name}' does not support tool modality : '${ToolCallModalityLiteral}'`),\n });\n }\n\n if (!tools || (tools && tools.length === 0)) {\n return { tools: [] as ToolType[] };\n }\n\n const parsedTools = tools.map((tool) => {\n const parsedTool = Tool().safeParse(tool);\n if (!parsedTool.success) {\n throw new InvalidToolsError({ info: \"Invalid tools\", cause: parsedTool.error });\n }\n return parsedTool.data;\n });\n\n const transformedTools = parsedTools.map((tool) => ({\n function_declarations: [{\n name: tool.definition.schema.name,\n description: tool.definition.schema.description,\n parameters: tool.definition.schema.parameters,\n }],\n }));\n\n return { tools: transformedTools };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getCompleteChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.completeChatUrl);\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getCompleteChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n };\n\n async getCompleteChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({\n info: \"Messages are required\",\n cause: new Error(\"Messages are required\"),\n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return new Promise((resolve) => {\n resolve({\n ...this.getDefaultParams(),\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n });\n });\n };\n\n transformCompleteChatResponse(response: any): ChatResponseType {\n const safe = GoogleCompleteChatResponse.safeParse(response);\n if (safe.success) {\n if (safe.data.candidates.length === 0) {\n throw new ModelResponseError({ \n info: \"Invalid response from model\", \n cause: new Error(`No choices in response : ${JSON.stringify(safe.data)}`) \n });\n }\n\n const parsedResponse: GoogleCompleteChatResponseType = safe.data;\n const messages: MessageType[] = [];\n let usage: ChatUsageType | undefined;\n const _content = parsedResponse.candidates[0].content;\n if (_content) {\n const content = _content.parts.map((contentItem: any, index: any) => {\n if (\"text\" in contentItem && contentItem.text !== undefined) {\n return createTextContent(contentItem.text);\n } else if (\"functionCall\" in contentItem && contentItem.functionCall !== undefined) {\n return createToolCallContent(\n index, \n `${contentItem.functionCall.name}_${index}`, \n contentItem.functionCall.name,\n JSON.stringify(contentItem.functionCall.args),\n );\n }\n }) as ContentType[];\n\n messages.push({\n role: AssistantRoleLiteral,\n content: content,\n });\n\n if (parsedResponse.usageMetadata) {\n usage = {\n promptTokens: parsedResponse.usageMetadata.promptTokenCount,\n totalTokens: parsedResponse.usageMetadata.totalTokenCount,\n completionTokens: parsedResponse.usageMetadata.candidatesTokenCount || 0,\n };\n }\n\n return { \n messages: messages,\n usage: usage,\n logProbs: undefined\n };\n }\n\n const safetyRatings = parsedResponse.candidates[0].safetyRatings;\n if (safetyRatings && safetyRatings.length > 0) {\n safetyRatings.forEach((rating) => {\n if (rating.blocked) {\n throw new ModelResponseError({ \n info: `Blocked content for category: ${rating.category} with probability: ${rating.probability}`, \n cause: new Error(`Blocked content for category: ${rating.category} with probability: ${rating.probability}`) \n });\n }\n });\n }\n\n const finishReason = parsedResponse.candidates[0].finishReason;\n if (finishReason === \"SAFETY\") {\n throw new ModelResponseError({ \n info: \"Blocked content, model response finished with safety reason\", \n cause: new Error(\"Blocked content, model response finished with safety reason\") \n });\n }\n }\n\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n } \n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getStreamChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.streamChatUrl);\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getStreamChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n };\n\n async getStreamChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({\n info: \"Messages are required\",\n cause: new Error(\"Messages are required\"),\n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return new Promise((resolve) => {\n resolve({\n ...this.getDefaultParams(),\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n });\n });\n };\n\n async *transformStreamChatResponseChunk(\n chunk: string, \n buffer: string\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n // merge last buffer message and split into lines\n const lines = (buffer + chunk).split(\",\\r\").filter((line) => line.trim() !== \"\");\n for (const line of lines) {\n let completeLine = line;\n // remove all '\\n' from string JSON\n completeLine = completeLine.replace(/\\n/g, \"\");\n if (completeLine.startsWith(\"[\")) {\n // start of stream, remove '['\n completeLine = completeLine.slice(1);\n } else if (completeLine.endsWith(\"]\")) {\n if (completeLine === \"]\") {\n // strict end of stream\n return;\n } else {\n // remaining message and then end of stream, remove ']'\n completeLine = completeLine.slice(0, -1);\n }\n }\n\n let structuredLine: any;\n try {\n structuredLine = JSON.parse(completeLine);\n } catch (error) {\n // malformed JSON error, must be the end of loop\n if (error instanceof SyntaxError) {\n buffer = completeLine;\n continue;\n } else {\n // non JSON parse error, re-raise\n throw error;\n }\n }\n\n // reset buffer\n buffer = \"\";\n const safe = GoogleStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n const partialResponse: PartialChatResponseType = { partialMessages: [] };\n const parsedResponse: GoogleStreamChatResponseType = safe.data;\n if (parsedResponse.candidates.length > 0) {\n const message = parsedResponse.candidates[0].content;\n if (message && \"parts\" in message && message.parts.length > 0) {\n message.parts.forEach((messagePart, index) => {\n if (\"text\" in messagePart && messagePart.text !== undefined) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, messagePart.text));\n }\n \n if (\"functionCall\" in messagePart && messagePart.functionCall !== undefined) {\n const toolCall = messagePart.functionCall;\n partialResponse.partialMessages.push(createPartialToolCallMessage(\n AssistantRoleLiteral,\n index,\n `${toolCall.name}_${index}`,\n toolCall.name,\n JSON.stringify(toolCall.args)\n ));\n }\n });\n }\n }\n\n if (parsedResponse.usageMetadata) {\n partialResponse.usage = {\n promptTokens: parsedResponse.usageMetadata.promptTokenCount,\n completionTokens: parsedResponse.usageMetadata.candidatesTokenCount,\n totalTokens: parsedResponse.usageMetadata.totalTokenCount,\n };\n }\n\n yield { partialResponse: partialResponse, buffer: buffer };\n } else {\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n }\n }\n\n yield { partialResponse: { partialMessages: [] }, buffer: buffer };\n };\n}\n\nexport { \n BaseChatModel, \n BaseChatModelOptions, \n type BaseChatModelOptionsType \n};\n","import { BaseChatModel } from \"./base-chat-model.google\";\n\nimport {\n GoogleChatContentType,\n GoogleChatSystemInstructionType,\n} from \"./types\";\n\nimport {\n ParamsType,\n} from \"@adaline/provider\";\n\nimport {\n MessageType,\n UserRoleLiteral,\n} from \"@adaline/types\";\n\nclass BaseChatModelGemini1 extends BaseChatModel {\n transformMessages(messages: MessageType[]): ParamsType {\n const transformedMessages = super.transformMessages(messages) as {\n contents: GoogleChatContentType[],\n systemInstruction?: GoogleChatSystemInstructionType\n };\n\n if (transformedMessages.systemInstruction) {\n const systemUserMessage = {\n role: this.modelSchema.roles[UserRoleLiteral] as GoogleChatContentType['role'],\n parts: transformedMessages.systemInstruction.parts,\n };\n transformedMessages.contents.unshift(systemUserMessage);\n delete transformedMessages.systemInstruction;\n }\n\n return transformedMessages;\n }\n}\n\nexport { BaseChatModelGemini1 };\n","import { z } from \"zod\";\n\nimport { MessageType, UserRoleLiteral } from \"@adaline/types\";\nimport { ChatModelSchema, ParamsType } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModelOptions } from \"./base-chat-model.google\";\nimport { BaseChatModelGemini1 } from \"./base-gemini-1-chat-model.google\";\n\nimport {\n GoogleChatModelTextToolModalities,\n GoogleChatModelTextToolModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_0ProLiteral = \"gemini-1.0-pro\";\nconst Gemini1_0ProDescription =\n \"Google's predecessor to Gemini 1.5 Pro, a model for scaling across a wide range of tasks \\\n Optimized for natural language tasks, multi-turn text and code chat, and code generation\";\n\nconst Gemini1_0ProSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelTextToolModalitiesEnum).parse({\n name: Gemini1_0ProLiteral,\n description: Gemini1_0ProDescription,\n maxInputTokens: 30720,\n maxOutputTokens: 2048,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelTextToolModalities,\n config: {\n def: GoogleChatModelConfigs.base(1.0, 0.9, 2048, 4, 1.0).def,\n schema: GoogleChatModelConfigs.base(1.0, 0.9, 2048, 4, 1.0).schema,\n },\n});\n\nconst Gemini1_0ProOptions = BaseChatModelOptions;\ntype Gemini1_0ProOptionsType = z.infer<typeof Gemini1_0ProOptions>;\n\nclass Gemini1_0Pro extends BaseChatModelGemini1 {\n constructor(options: Gemini1_0ProOptionsType) {\n super(Gemini1_0ProSchema, options);\n }\n}\n\nexport { \n Gemini1_0Pro, \n Gemini1_0ProOptions, \n Gemini1_0ProSchema, \n Gemini1_0ProLiteral, \n type Gemini1_0ProOptionsType \n};\n","import { z } from \"zod\";\n\nimport { MessageType, UserRoleLiteral } from \"@adaline/types\";\nimport { ChatModelSchema, ParamsType } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModelOptions } from \"./base-chat-model.google\";\nimport { BaseChatModelGemini1 } from \"./base-gemini-1-chat-model.google\";\n\nimport {\n GoogleChatModelTextToolModalities,\n GoogleChatModelTextToolModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_0Pro_001Literal = \"gemini-1.0-pro-001\";\nconst Gemini1_0Pro_001Description =\n \"Google's predecessor to Gemini 1.5 Pro, a model for scaling across a wide range of tasks \\\n Optimized for natural language tasks, multi-turn text and code chat, and code generation\";\n\nconst Gemini1_0Pro_001Schema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelTextToolModalitiesEnum).parse({\n name: Gemini1_0Pro_001Literal,\n description: Gemini1_0Pro_001Description,\n maxInputTokens: 30720,\n maxOutputTokens: 2048,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelTextToolModalities,\n config: {\n def: GoogleChatModelConfigs.base(1.0, 0.9, 2048, 4, 1.0).def,\n schema: GoogleChatModelConfigs.base(1.0, 0.9, 2048, 4, 1.0).schema,\n },\n});\n\nconst Gemini1_0Pro_001Options = BaseChatModelOptions;\ntype Gemini1_0Pro_001OptionsType = z.infer<typeof Gemini1_0Pro_001Options>;\n\nclass Gemini1_0Pro_001 extends BaseChatModelGemini1 {\n constructor(options: Gemini1_0Pro_001OptionsType) {\n super(Gemini1_0Pro_001Schema, options);\n }\n}\n\nexport { \n Gemini1_0Pro_001, \n Gemini1_0Pro_001Options, \n Gemini1_0Pro_001Schema, \n Gemini1_0Pro_001Literal, \n type Gemini1_0Pro_001OptionsType \n};\n","import { z } from \"zod\";\n\nimport { MessageType, UserRoleLiteral } from \"@adaline/types\";\nimport { ChatModelSchema, ParamsType } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModelOptions } from \"./base-chat-model.google\";\nimport { BaseChatModelGemini1 } from \"./base-gemini-1-chat-model.google\";\n\nimport {\n GoogleChatModelTextToolModalities,\n GoogleChatModelTextToolModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_0ProLatestLiteral = \"gemini-1.0-pro-latest\";\nconst Gemini1_0ProLatestDescription =\n \"Google's latest multimodal model with great performance for high-frequency tasks. \\\n Optimized for natural language tasks, multi-turn text and code chat, and code generation\";\n\nconst Gemini1_0ProLatestSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelTextToolModalitiesEnum).parse({\n name: Gemini1_0ProLatestLiteral,\n description: Gemini1_0ProLatestDescription,\n maxInputTokens: 30720,\n maxOutputTokens: 2048,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelTextToolModalities,\n config: {\n def: GoogleChatModelConfigs.base(1.0, 0.9, 2048, 4, 1.0).def,\n schema: GoogleChatModelConfigs.base(1.0, 0.9, 2048, 4, 1.0).schema,\n },\n});\n\nconst Gemini1_0ProLatestOptions = BaseChatModelOptions;\ntype Gemini1_0ProLatestOptionsType = z.infer<typeof Gemini1_0ProLatestOptions>;\n\nclass Gemini1_0ProLatest extends BaseChatModelGemini1 {\n constructor(options: Gemini1_0ProLatestOptionsType) {\n super(Gemini1_0ProLatestSchema, options);\n }\n}\n\nexport { \n Gemini1_0ProLatest, \n Gemini1_0ProLatestOptions, \n Gemini1_0ProLatestSchema, \n Gemini1_0ProLatestLiteral, \n type Gemini1_0ProLatestOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModelOptions } from \"./base-chat-model.google\";\nimport { BaseChatModelGemini1 } from \"./base-gemini-1-chat-model.google\";\n\nimport {\n GoogleChatModelTextVisionModalities,\n GoogleChatModelTextVisionModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_0ProVisionLiteral = \"gemini-1.0-pro-vision\";\nconst Gemini1_0ProVisionDescription =\n \"Google's predecessor to Gemini 1.5 Pro, an image understanding model to handle a broad range of applications\";\n\nconst Gemini1_0ProVisionSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelTextVisionModalitiesEnum).parse({\n name: Gemini1_0ProVisionLiteral,\n description: Gemini1_0ProVisionDescription,\n maxInputTokens: 12288,\n maxOutputTokens: 4096,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelTextVisionModalities,\n config: {\n def: GoogleChatModelConfigs.c1(1.0, 0.4, 4096, 4, 1.0, 32).def,\n schema: GoogleChatModelConfigs.c1(1.0, 0.4, 4096, 4, 1.0, 32).schema,\n },\n});\n\nconst Gemini1_0ProVisionOptions = BaseChatModelOptions;\ntype Gemini1_0ProVisionOptionsType = z.infer<typeof Gemini1_0ProVisionOptions>;\n\nclass Gemini1_0ProVision extends BaseChatModelGemini1 {\n constructor(options: Gemini1_0ProVisionOptionsType) {\n super(Gemini1_0ProVisionSchema, options);\n }\n}\n\nexport { \n Gemini1_0ProVision, \n Gemini1_0ProVisionOptions, \n Gemini1_0ProVisionSchema, \n Gemini1_0ProVisionLiteral, \n type Gemini1_0ProVisionOptionsType \n};\n''","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5FlashLiteral = \"gemini-1.5-flash\";\nconst Gemini1_5FlashDescription =\n \"Google's fastest, most cost-efficient multimodal model with great performance for high-frequency tasks. \\\n Optimized for fast and versatile performance across a diverse variety of tasks\";\n\nconst Gemini1_5FlashSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5FlashLiteral,\n description: Gemini1_5FlashDescription,\n maxInputTokens: 1000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).schema,\n },\n});\n\nconst Gemini1_5FlashOptions = BaseChatModelOptions;\ntype Gemini1_5FlashOptionsType = z.infer<typeof Gemini1_5FlashOptions>;\n\nclass Gemini1_5Flash extends BaseChatModel {\n constructor(options: Gemini1_5FlashOptionsType) {\n super(Gemini1_5FlashSchema, options);\n }\n}\n\nexport { \n Gemini1_5Flash, \n Gemini1_5FlashOptions, \n Gemini1_5FlashSchema, \n Gemini1_5FlashLiteral, \n type Gemini1_5FlashOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5Flash001Literal = \"gemini-1.5-flash-001\";\nconst Gemini1_5Flash001Description =\n \"Google's fastest, most cost-efficient multimodal model with great performance for high-frequency tasks. \\\n Optimized for fast and versatile performance across a diverse variety of tasks\";\n\nconst Gemini1_5Flash001Schema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5Flash001Literal,\n description: Gemini1_5Flash001Description,\n maxInputTokens: 1000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).schema,\n },\n});\n\nconst Gemini1_5Flash001Options = BaseChatModelOptions;\ntype Gemini1_5Flash001OptionsType = z.infer<typeof Gemini1_5Flash001Options>;\n\nclass Gemini1_5Flash001 extends BaseChatModel {\n constructor(options: Gemini1_5Flash001OptionsType) {\n super(Gemini1_5Flash001Schema, options);\n }\n}\n\nexport { \n Gemini1_5Flash001, \n Gemini1_5Flash001Options, \n Gemini1_5Flash001Schema, \n Gemini1_5Flash001Literal, \n type Gemini1_5Flash001OptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5Flash002Literal = \"gemini-1.5-flash-002\";\nconst Gemini1_5Flash002Description =\n \"Google's fastest, most cost-efficient multimodal model with great performance for high-frequency tasks. \\\n Optimized for fast and versatile performance across a diverse variety of tasks\";\n\nconst Gemini1_5Flash002Schema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5Flash002Literal,\n description: Gemini1_5Flash002Description,\n maxInputTokens: 1000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 40).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 40).schema,\n },\n});\n\nconst Gemini1_5Flash002Options = BaseChatModelOptions;\ntype Gemini1_5Flash002OptionsType = z.infer<typeof Gemini1_5Flash002Options>;\n\nclass Gemini1_5Flash002 extends BaseChatModel {\n constructor(options: Gemini1_5Flash002OptionsType) {\n super(Gemini1_5Flash002Schema, options);\n }\n}\n\nexport { \n Gemini1_5Flash002, \n Gemini1_5Flash002Options, \n Gemini1_5Flash002Schema, \n Gemini1_5Flash002Literal, \n type Gemini1_5Flash002OptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5FlashLatestLiteral = \"gemini-1.5-flash-latest\";\nconst Gemini1_5FlashLatestDescription =\n \"Google's latest multimodal model with great performance for high-frequency tasks. \\\n Optimized for fast and versatile performance across a diverse variety of tasks\";\n\nconst Gemini1_5FlashLatestSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5FlashLatestLiteral,\n description: Gemini1_5FlashLatestDescription,\n maxInputTokens: 1000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).schema,\n },\n});\n\nconst Gemini1_5FlashLatestOptions = BaseChatModelOptions;\ntype Gemini1_5FlashLatestOptionsType = z.infer<typeof Gemini1_5FlashLatestOptions>;\n\nclass Gemini1_5FlashLatest extends BaseChatModel {\n constructor(options: Gemini1_5FlashLatestOptionsType) {\n super(Gemini1_5FlashLatestSchema, options);\n }\n}\n\nexport { \n Gemini1_5FlashLatest, \n Gemini1_5FlashLatestOptions, \n Gemini1_5FlashLatestSchema, \n Gemini1_5FlashLatestLiteral, \n type Gemini1_5FlashLatestOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5ProLiteral = \"gemini-1.5-pro\";\nconst Gemini1_5ProDescription =\n \"Google's best performing multimodal model with features for a wide variety of reasoning tasks. \\\n Optimized for complex reasoning tasks requiring more intelligence\";\n\nconst Gemini1_5ProSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5ProLiteral,\n description: Gemini1_5ProDescription,\n maxInputTokens: 2000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).schema,\n },\n});\n\nconst Gemini1_5ProOptions = BaseChatModelOptions;\ntype Gemini1_5ProOptionsType = z.infer<typeof Gemini1_5ProOptions>;\n\nclass Gemini1_5Pro extends BaseChatModel {\n constructor(options: Gemini1_5ProOptionsType) {\n super(Gemini1_5ProSchema, options);\n }\n}\n\nexport { \n Gemini1_5Pro, \n Gemini1_5ProOptions, \n Gemini1_5ProSchema, \n Gemini1_5ProLiteral, \n type Gemini1_5ProOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5Pro001Literal = \"gemini-1.5-pro-001\";\nconst Gemini1_5Pro001Description =\n \"Google's best performing multimodal model with features for a wide variety of reasoning tasks. \\\n Optimized for complex reasoning tasks requiring more intelligence\";\n\nconst Gemini1_5Pro001Schema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5Pro001Literal,\n description: Gemini1_5Pro001Description,\n maxInputTokens: 2000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).schema,\n },\n});\n\nconst Gemini1_5Pro001Options = BaseChatModelOptions;\ntype Gemini1_5Pro001OptionsType = z.infer<typeof Gemini1_5Pro001Options>;\n\nclass Gemini1_5Pro001 extends BaseChatModel {\n constructor(options: Gemini1_5Pro001OptionsType) {\n super(Gemini1_5Pro001Schema, options);\n }\n}\n\nexport { \n Gemini1_5Pro001, \n Gemini1_5Pro001Options, \n Gemini1_5Pro001Schema, \n Gemini1_5Pro001Literal, \n type Gemini1_5Pro001OptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5Pro002Literal = \"gemini-1.5-pro-002\";\nconst Gemini1_5Pro002Description =\n \"Google's best performing multimodal model with features for a wide variety of reasoning tasks. \\\n Optimized for complex reasoning tasks requiring more intelligence\";\n\nconst Gemini1_5Pro002Schema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5Pro002Literal,\n description: Gemini1_5Pro002Description,\n maxInputTokens: 2000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 40).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 40).schema,\n },\n});\n\nconst Gemini1_5Pro002Options = BaseChatModelOptions;\ntype Gemini1_5Pro002OptionsType = z.infer<typeof Gemini1_5Pro002Options>;\n\nclass Gemini1_5Pro002 extends BaseChatModel {\n constructor(options: Gemini1_5Pro002OptionsType) {\n super(Gemini1_5Pro002Schema, options);\n }\n}\n\nexport { \n Gemini1_5Pro002, \n Gemini1_5Pro002Options, \n Gemini1_5Pro002Schema, \n Gemini1_5Pro002Literal, \n type Gemini1_5Pro002OptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { GoogleChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.google\";\nimport {\n GoogleChatModelModalities,\n GoogleChatModelModalitiesEnum,\n GoogleChatModelRoles,\n GoogleChatModelRolesMap,\n} from \"./types\";\n\nconst Gemini1_5ProLatestLiteral = \"gemini-1.5-pro-latest\";\nconst Gemini1_5ProLatestDescription =\n \"Google's best performing multimodal model with features for a wide variety of reasoning tasks. \\\n Optimized for complex reasoning tasks requiring more intelligence\";\n\nconst Gemini1_5ProLatestSchema = ChatModelSchema(GoogleChatModelRoles, GoogleChatModelModalitiesEnum).parse({\n name: Gemini1_5ProLatestLiteral,\n description: Gemini1_5ProLatestDescription,\n maxInputTokens: 2000000,\n maxOutputTokens: 8192,\n roles: GoogleChatModelRolesMap,\n modalities: GoogleChatModelModalities,\n config: {\n def: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).def,\n schema: GoogleChatModelConfigs.c1(2.0, 1.0, 8192, 4, 0.95, 64).schema,\n },\n});\n\nconst Gemini1_5ProLatestOptions = BaseChatModelOptions;\ntype Gemini1_5ProLatestOptionsType = z.infer<typeof Gemini1_5ProLatestOptions>;\n\nclass Gemini1_5ProLatest extends BaseChatModel {\n constructor(options: Gemini1_5ProLatestOptionsType) {\n super(Gemini1_5ProLatestSchema, options);\n }\n}\n\nexport { \n Gemini1_5ProLatest, \n Gemini1_5ProLatestOptions, \n Gemini1_5ProLatestSchema, \n Gemini1_5ProLatestLiteral, \n type Gemini1_5ProLatestOptionsType \n};\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral } from \"@adaline/types\";\n\nconst GoogleEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n EmbeddingTextModalityLiteral,\n];\n\nconst GoogleEmbeddingModelModalitiesEnum = z.enum([\n EmbeddingTextModalityLiteral,\n]);\n\nexport { GoogleEmbeddingModelModalitiesEnum, GoogleEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst GoogleGetEmbeddingsResponse = z.object({\n embeddings: z.array(z.object({\n values: z.array(z.number()),\n })),\n});\ntype GoogleGetEmbeddingsResponseType = z.infer<typeof GoogleGetEmbeddingsResponse>;\n\nexport { GoogleGetEmbeddingsResponse, type GoogleGetEmbeddingsResponseType };","import { z } from \"zod\";\n\nconst GoogleEmbeddingRequestInput = z.object({\n model: z.string().min(1),\n content: z.object({ \n parts: z.array(z.object({ \n text: z.string().min(1) \n })).min(1),\n })\n});\ntype GoogleEmbeddingRequestInputType = z.infer<typeof GoogleEmbeddingRequestInput>;\n\nconst GoogleEmbeddingRequest = z.object({\n model: z.string().min(1).optional(),\n requests: z.array(GoogleEmbeddingRequestInput).min(1),\n outputDimensionality: z.number().int().min(1).optional(),\n});\ntype GoogleEmbeddingRequestType = z.infer<typeof GoogleEmbeddingRequest>;\n\nexport {\n GoogleEmbeddingRequest,\n GoogleEmbeddingRequestInput,\n type GoogleEmbeddingRequestType,\n type GoogleEmbeddingRequestInputType,\n};","import { z } from \"zod\";\n\nimport { \n Config,\n ConfigType, \n FloatEmbeddingType,\n EmbeddingRequests,\n EmbeddingRequestsType,\n EmbeddingResponseType,\n FloatEmbeddingLiteral,\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n} from \"@adaline/types\";\n\nimport { \n EmbeddingModelV1,\n EmbeddingModelSchemaType,\n HeadersType, \n ParamsType, \n UrlType, \n ModelResponseError,\n InvalidConfigError,\n InvalidModelRequestError,\n InvalidEmbeddingRequestsError, \n urlWithoutTrailingSlash,\n removeUndefinedEntries,\n} from \"@adaline/provider\";\n\nimport { \n GoogleGetEmbeddingsResponse, \n} from \"./types\";\n\nimport { \n GoogleEmbeddingRequest,\n GoogleEmbeddingRequestInputType\n} from \"./types\";\n\nconst BaseEmbeddingModelOptions = z.object({\n apiKey: z.string(),\n baseUrl: z.string().url(),\n getEmbeddingsUrl: z.string().url().optional(),\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;\n private readonly getEmbeddingsUrl: string;\n\n constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n const parsedOptions = BaseEmbeddingModelOptions.parse(options);\n this.modelSchema = modelSchema;\n this.apiKey = parsedOptions.apiKey;\n this.baseUrl = urlWithoutTrailingSlash(parsedOptions.baseUrl);\n this.getEmbeddingsUrl = urlWithoutTrailingSlash(\n parsedOptions.getEmbeddingsUrl || \n `${this.baseUrl}/models/${this.modelSchema.name}:batchEmbedContents?key=${this.apiKey}`\n );\n };\n\n getDefaultBaseUrl(): UrlType {\n return this.baseUrl;\n };\n\n getDefaultHeaders(): HeadersType {\n return {\n \"Content-Type\": \"application/json\",\n source: \"adaline.ai\",\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 getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean, delayMs: number } {\n return { shouldRetry: false, delayMs: 0 };\n };\n\n // TODO: unused method, not tested\n getTokenCount(requests: EmbeddingRequestsType): number {\n return requests.requests.reduce((acc, request) => acc + request.length, 0);\n };\n\n transformModelRequest(request: any): { \n modelName: string | undefined, \n config: ConfigType, \n embeddingRequests: EmbeddingRequestsType, \n } {\n const safeRequest = GoogleEmbeddingRequest.safeParse(request);\n if (!safeRequest.success) {\n throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n }\n\n const parsedRequest = safeRequest.data;\n\n const modelName = parsedRequest.model;\n\n const _config = {\n outputDimensionality: parsedRequest.outputDimensionality,\n };\n const config = Config().parse(removeUndefinedEntries(_config));\n\n const embeddingRequests: EmbeddingRequestsType = {\n modality: EmbeddingTextModalityLiteral,\n requests: parsedRequest.requests.reduce((acc, request) => {\n acc.push(...request.content.parts.map((p) => p.text))\n return acc;\n }, [] as string[])\n }\n\n return {\n modelName,\n config,\n embeddingRequests,\n };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig(config: ConfigType, requests?: EmbeddingRequestsType): ParamsType {\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({ \n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: _parsedConfig.error \n });\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n Object.keys(parsedConfig as ConfigType).forEach((key) => {\n if (!this.modelSchema.config.def[key]) {\n throw new InvalidConfigError({ \n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: new Error(`Invalid config key : '${key}', \n available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`) \n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = parsedConfig[key];\n acc[paramKey] = paramValue;\n return acc;\n },\n {} as ParamsType\n );\n\n return transformedConfig;\n };\n\n transformEmbeddingRequests(requests: EmbeddingRequestsType): ParamsType {\n const _parsedRequests = EmbeddingRequests().safeParse(requests);\n if (!_parsedRequests.success) {\n throw new InvalidEmbeddingRequestsError({ info: \"Invalid embedding requests\", cause: _parsedRequests.error });\n }\n\n if (requests.modality !== EmbeddingTextModalityLiteral) {\n throw new InvalidEmbeddingRequestsError({\n info: `Invalid embedding requests for model : '${this.modelSchema.name}'`,\n cause: new Error(`Only '${EmbeddingTextModalityLiteral}' modality is supported for model : '${this.modelSchema.name}'`)\n });\n }\n\n const _requests: GoogleEmbeddingRequestInputType[] = _parsedRequests.data.requests.map((request) => {\n return {\n model: `models/${this.modelSchema.name}`,\n content: { parts: [{ text: request as string }] },\n }\n });\n\n return {\n requests: _requests,\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getGetEmbeddingsUrl(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.getEmbeddingsUrl);\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getGetEmbeddingsHeaders(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n };\n\n async getGetEmbeddingsData(config: ConfigType, requests: EmbeddingRequestsType): Promise<ParamsType> {\n return new Promise((resolve) => {\n const _config = this.transformConfig(config);\n const _requests = this.transformEmbeddingRequests(requests);\n\n if (requests.requests.length === 0) {\n throw new InvalidEmbeddingRequestsError({\n info: `Invalid embedding requests for model : '${this.modelSchema.name}'`,\n cause: new Error(\"requests cannot be empty\")\n });\n }\n\n if (_config.outputDimensionality) {\n (_requests as any).requests.forEach((request: any) => {\n request.outputDimensionality = _config.outputDimensionality;\n });\n delete _config.outputDimensionality;\n }\n\n resolve({\n ...this.getDefaultParams(),\n ..._config,\n ..._requests,\n });\n });\n };\n\n transformGetEmbeddingsResponse(response: any): EmbeddingResponseType {\n const safe = GoogleGetEmbeddingsResponse.safeParse(response);\n if (safe.success) {\n const parsedResponse = safe.data;\n const embeddings = parsedResponse.embeddings.map((embedding, index) => {\n return {\n index,\n embedding: embedding.values,\n } as FloatEmbeddingType;\n });\n\n return {\n encodingFormat: FloatEmbeddingLiteral,\n embeddings: embeddings,\n } as EmbeddingResponseType;\n }\n\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.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 { GoogleEmbeddingModelConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.google\";\nimport { GoogleEmbeddingModelModalities, GoogleEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_001Literal = \"text-embedding-001\";\nconst Text_Embedding_001_Description = \"text-embedding-001\";\n\nconst Text_Embedding_001Schema = EmbeddingModelSchema(GoogleEmbeddingModelModalitiesEnum).parse({\n name: Text_Embedding_001Literal,\n description: Text_Embedding_001_Description,\n modalities: GoogleEmbeddingModelModalities,\n maxInputTokens: 2048,\n maxOutputTokens: 768,\n config: {\n def: GoogleEmbeddingModelConfigs.base(768).def,\n schema: GoogleEmbeddingModelConfigs.base(768).schema,\n },\n});\n\nconst Text_Embedding_001Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_001OptionsType = z.infer<typeof Text_Embedding_001Options>;\n\nclass Text_Embedding_001 extends BaseEmbeddingModel {\n constructor(options: Text_Embedding_001OptionsType) {\n super(Text_Embedding_001Schema, options);\n }\n}\n\nexport { \n Text_Embedding_001, \n Text_Embedding_001Options, \n Text_Embedding_001Schema, \n Text_Embedding_001Literal, \n type Text_Embedding_001OptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { GoogleEmbeddingModelConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.google\";\nimport { GoogleEmbeddingModelModalities, GoogleEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_004Literal = \"text-embedding-004\";\nconst Text_Embedding_004_Description = \"text-embedding-004\";\n\nconst Text_Embedding_004Schema = EmbeddingModelSchema(GoogleEmbeddingModelModalitiesEnum).parse({\n name: Text_Embedding_004Literal,\n description: Text_Embedding_004_Description,\n modalities: GoogleEmbeddingModelModalities,\n maxInputTokens: 2048,\n maxOutputTokens: 768,\n config: {\n def: GoogleEmbeddingModelConfigs.base(768).def,\n schema: GoogleEmbeddingModelConfigs.base(768).schema,\n },\n});\n\nconst Text_Embedding_004Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_004OptionsType = z.infer<typeof Text_Embedding_004Options>;\n\nclass Text_Embedding_004 extends BaseEmbeddingModel {\n constructor(options: Text_Embedding_004OptionsType) {\n super(Text_Embedding_004Schema, options);\n }\n}\n\nexport { \n Text_Embedding_004, \n Text_Embedding_004Options, \n Text_Embedding_004Schema, \n Text_Embedding_004Literal, \n type Text_Embedding_004OptionsType \n};","import { z } from \"zod\";\n\nimport { \n ChatModelV1, \n ChatModelSchemaType, \n EmbeddingModelV1, \n EmbeddingModelSchemaType, \n ProviderV1, \n ProviderError \n} from \"@adaline/provider\";\n\nimport {\n Gemini1_5Flash001,\n Gemini1_5Flash001Options,\n Gemini1_5Flash001Schema,\n Gemini1_5Flash001Literal,\n Gemini1_5Flash002,\n Gemini1_5Flash002Options,\n Gemini1_5Flash002Schema,\n Gemini1_5Flash002Literal,\n Gemini1_5Flash,\n Gemini1_5FlashOptions,\n Gemini1_5FlashSchema,\n Gemini1_5FlashLiteral,\n Gemini1_5Pro001,\n Gemini1_5Pro001Options,\n Gemini1_5Pro001Schema,\n Gemini1_5Pro001Literal,\n Gemini1_5Pro002,\n Gemini1_5Pro002Options,\n Gemini1_5Pro002Schema,\n Gemini1_5Pro002Literal,\n Gemini1_5Pro,\n Gemini1_5ProOptions,\n Gemini1_5ProSchema,\n Gemini1_5ProLiteral,\n Gemini1_0Pro,\n Gemini1_0ProOptions,\n Gemini1_0ProSchema,\n Gemini1_0ProLiteral,\n Gemini1_0ProVision,\n Gemini1_0ProVisionOptions,\n Gemini1_0ProVisionSchema,\n Gemini1_0ProVisionLiteral,\n Gemini1_0Pro001,\n Gemini1_0Pro001Options,\n Gemini1_0Pro001Schema,\n Gemini1_0Pro001Literal,\n} from \"../models\";\n \n \nimport {\n Text_Embedding_004,\n Text_Embedding_004Options,\n Text_Embedding_004Schema,\n Text_Embedding_004Literal,\n Text_Multilingual_Embedding_002,\n Text_Multilingual_Embedding_002Options,\n Text_Multilingual_Embedding_002Schema,\n Text_Multilingual_Embedding_002Literal,\n Text_Embedding_Gecko_003,\n Text_Embedding_Gecko_003Options,\n Text_Embedding_Gecko_003Schema,\n Text_Embedding_Gecko_003Literal,\n Text_Embedding_Gecko_Multilingual_001,\n Text_Embedding_Gecko_Multilingual_001Options,\n Text_Embedding_Gecko_Multilingual_001Schema,\n Text_Embedding_Gecko_Multilingual_001Literal,\n} from \"../models\";\n\nconst ProviderLiteral = \"vertex\";\nclass Vertex<O extends Record<string, any> = Record<string, any>> implements ProviderV1<O> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n\n static readonly baseUrl = (\n location: string,\n projectId: string,\n publisher: string = \"google\"\n ) => `https://${location}-aiplatform.googleapis.com/v1/projects/${projectId}/locations/${location}/publishers/${publisher}`;\n\n private readonly chatModelFactories: \n Record<string, { \n model: { new (options: any): ChatModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: ChatModelSchemaType\n }> = {\n [Gemini1_5Flash001Literal]: { \n model: Gemini1_5Flash001, \n modelOptions: Gemini1_5Flash001Options, \n modelSchema: Gemini1_5Flash001Schema \n },\n [Gemini1_5Flash002Literal]: { \n model: Gemini1_5Flash002, \n modelOptions: Gemini1_5Flash002Options, \n modelSchema: Gemini1_5Flash002Schema \n },\n [Gemini1_5FlashLiteral]: { \n model: Gemini1_5Flash, \n modelOptions: Gemini1_5FlashOptions, \n modelSchema: Gemini1_5FlashSchema \n },\n [Gemini1_5Pro001Literal]: { \n model: Gemini1_5Pro001, \n modelOptions: Gemini1_5Pro001Options, \n modelSchema: Gemini1_5Pro001Schema \n },\n [Gemini1_5Pro002Literal]: { \n model: Gemini1_5Pro002, \n modelOptions: Gemini1_5Pro002Options, \n modelSchema: Gemini1_5Pro002Schema \n },\n [Gemini1_5ProLiteral]: { \n model: Gemini1_5Pro, \n modelOptions: Gemini1_5ProOptions, \n modelSchema: Gemini1_5ProSchema\n },\n [Gemini1_0ProLiteral]: { \n model: Gemini1_0Pro, \n modelOptions: Gemini1_0ProOptions, \n modelSchema: Gemini1_0ProSchema\n },\n [Gemini1_0ProVisionLiteral]: { \n model: Gemini1_0ProVision, \n modelOptions: Gemini1_0ProVisionOptions, \n modelSchema: Gemini1_0ProVisionSchema\n },\n [Gemini1_0Pro001Literal]: { \n model: Gemini1_0Pro001, \n modelOptions: Gemini1_0Pro001Options, \n modelSchema: Gemini1_0Pro001Schema\n },\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_004Literal]: { \n model: Text_Embedding_004, \n modelOptions: Text_Embedding_004Options, \n modelSchema: Text_Embedding_004Schema \n },\n [Text_Multilingual_Embedding_002Literal]: { \n model: Text_Multilingual_Embedding_002, \n modelOptions: Text_Multilingual_Embedding_002Options, \n modelSchema: Text_Multilingual_Embedding_002Schema \n },\n [Text_Embedding_Gecko_003Literal]: { \n model: Text_Embedding_Gecko_003, \n modelOptions: Text_Embedding_Gecko_003Options, \n modelSchema: Text_Embedding_Gecko_003Schema \n },\n [Text_Embedding_Gecko_Multilingual_001Literal]: { \n model: Text_Embedding_Gecko_Multilingual_001, \n modelOptions: Text_Embedding_Gecko_Multilingual_001Options, \n modelSchema: Text_Embedding_Gecko_Multilingual_001Schema \n },\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 ProviderError({\n info: `Vertex chat model: ${name} not found`,\n cause: new Error(`Vertex chat model: ${name} not found, available chat models: \n ${this.chatModelLiterals().join(\", \")}`),\n });\n }\n\n const model = this.chatModelFactories[name].model;\n const modelOptions = {\n ...options,\n };\n const parsedOptions = this.chatModelFactories[name].modelOptions.parse(modelOptions);\n return new model(parsedOptions);\n }\n\n chatModelSchema(name: string): ChatModelSchemaType {\n if (!(name in this.chatModelFactories)) {\n throw new ProviderError({\n info: `Vertex chat model: ${name} not found`,\n cause: new Error(`Vertex chat model: ${name} not found, available chat models: \n ${this.chatModelLiterals().join(\", \")}`),\n });\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 ProviderError({\n info: `Vertex embedding model: ${name} not found`,\n cause: new Error(`Vertex embedding model: ${name} not found, available embedding models: \n ${this.embeddingModelLiterals().join(\", \")}`),\n });\n }\n\n const model = this.embeddingModelFactories[name].model;\n const modelOptions = {\n ...options,\n };\n const parsedOptions = this.embeddingModelFactories[name].modelOptions.parse(modelOptions);\n return new model(parsedOptions);\n }\n\n embeddingModelSchema(name: string): EmbeddingModelSchemaType {\n if (!(name in this.embeddingModelFactories)) {\n throw new ProviderError({\n info: `Vertex embedding model: ${name} not found`,\n cause: new Error(`Vertex embedding model: ${name} not found, available embedding models: \n ${this.embeddingModelLiterals().join(\", \")}`),\n });\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 { Vertex };","import { z } from \"zod\";\n\nimport {\n Gemini1_0ProSchema as Google_Gemini1_0ProSchema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_0ProLiteral = \"gemini-1.0-pro\" as const;\nconst Gemini1_0ProSchema = Google_Gemini1_0ProSchema;\nconst Gemini1_0ProOptions = BaseChatModelVertexOptions;\ntype Gemini1_0ProOptionsType = z.infer<typeof Gemini1_0ProOptions>;\n\nclass Gemini1_0Pro extends BaseChatModelVertex {\n constructor(options: Gemini1_0ProOptionsType) {\n super(Gemini1_0ProSchema, options);\n }\n}\n\nexport {\n Gemini1_0Pro,\n Gemini1_0ProOptions,\n Gemini1_0ProSchema,\n Gemini1_0ProLiteral,\n type Gemini1_0ProOptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_0Pro_001Schema as Google_Gemini1_0Pro_001Schema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_0Pro001Literal = \"gemini-1.0-pro-001\" as const;\nconst Gemini1_0Pro001Schema = Google_Gemini1_0Pro_001Schema;\nconst Gemini1_0Pro001Options = BaseChatModelVertexOptions;\ntype Gemini1_0Pro001OptionsType = z.infer<typeof Gemini1_0Pro001Options>;\n\nclass Gemini1_0Pro001 extends BaseChatModelVertex {\n constructor(options: Gemini1_0Pro001OptionsType) {\n super(Gemini1_0Pro001Schema, options);\n }\n}\n\nexport {\n Gemini1_0Pro001,\n Gemini1_0Pro001Options,\n Gemini1_0Pro001Schema,\n Gemini1_0Pro001Literal,\n type Gemini1_0Pro001OptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_0ProVisionSchema as Google_Gemini1_0ProVisionSchema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_0ProVisionLiteral = \"gemini-1.0-pro-vision\" as const;\nconst Gemini1_0ProVisionSchema = Google_Gemini1_0ProVisionSchema;\nconst Gemini1_0ProVisionOptions = BaseChatModelVertexOptions;\ntype Gemini1_0ProVisionOptionsType = z.infer<typeof Gemini1_0ProVisionOptions>;\n\nclass Gemini1_0ProVision extends BaseChatModelVertex {\n constructor(options: Gemini1_0ProVisionOptionsType) {\n super(Gemini1_0ProVisionSchema, options);\n }\n}\n\nexport {\n Gemini1_0ProVision,\n Gemini1_0ProVisionOptions,\n Gemini1_0ProVisionSchema,\n Gemini1_0ProVisionLiteral,\n type Gemini1_0ProVisionOptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_5Flash001Schema as Google_Gemini1_5Flash001Schema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_5Flash001Literal = \"gemini-1.5-flash-001\" as const;\nconst Gemini1_5Flash001Schema = Google_Gemini1_5Flash001Schema;\nconst Gemini1_5Flash001Options = BaseChatModelVertexOptions;\ntype Gemini1_5Flash001OptionsType = z.infer<typeof Gemini1_5Flash001Options>;\n\nclass Gemini1_5Flash001 extends BaseChatModelVertex {\n constructor(options: Gemini1_5Flash001OptionsType) {\n super(Gemini1_5Flash001Schema, options);\n }\n}\n\nexport {\n Gemini1_5Flash001,\n Gemini1_5Flash001Options,\n Gemini1_5Flash001Schema,\n Gemini1_5Flash001Literal,\n type Gemini1_5Flash001OptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_5Flash002Schema as Google_Gemini1_5Flash002Schema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_5Flash002Literal = \"gemini-1.5-flash-002\" as const;\nconst Gemini1_5Flash002Schema = Google_Gemini1_5Flash002Schema;\nconst Gemini1_5Flash002Options = BaseChatModelVertexOptions;\ntype Gemini1_5Flash002OptionsType = z.infer<typeof Gemini1_5Flash002Options>;\n\nclass Gemini1_5Flash002 extends BaseChatModelVertex {\n constructor(options: Gemini1_5Flash002OptionsType) {\n super(Gemini1_5Flash002Schema, options);\n }\n}\n\nexport {\n Gemini1_5Flash002,\n Gemini1_5Flash002Options,\n Gemini1_5Flash002Schema,\n Gemini1_5Flash002Literal,\n type Gemini1_5Flash002OptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_5FlashSchema as Google_Gemini1_5FlashSchema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_5FlashLiteral = \"gemini-1.5-flash\" as const;\nconst Gemini1_5FlashSchema = Google_Gemini1_5FlashSchema;\nconst Gemini1_5FlashOptions = BaseChatModelVertexOptions;\ntype Gemini1_5FlashOptionsType = z.infer<typeof Gemini1_5FlashOptions>;\n\nclass Gemini1_5Flash extends BaseChatModelVertex {\n constructor(options: Gemini1_5FlashOptionsType) {\n super(Gemini1_5FlashSchema, options);\n }\n}\n\nexport {\n Gemini1_5Flash,\n Gemini1_5FlashOptions,\n Gemini1_5FlashSchema,\n Gemini1_5FlashLiteral,\n type Gemini1_5FlashOptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_5Pro001Schema as Google_Gemini1_5Pro001Schema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_5Pro001Literal = \"gemini-1.5-pro-001\" as const;\nconst Gemini1_5Pro001Schema = Google_Gemini1_5Pro001Schema;\nconst Gemini1_5Pro001Options = BaseChatModelVertexOptions;\ntype Gemini1_5Pro001OptionsType = z.infer<typeof Gemini1_5Pro001Options>;\n\nclass Gemini1_5Pro001 extends BaseChatModelVertex {\n constructor(options: Gemini1_5Pro001OptionsType) {\n super(Gemini1_5Pro001Schema, options);\n }\n}\n\nexport {\n Gemini1_5Pro001,\n Gemini1_5Pro001Options,\n Gemini1_5Pro001Schema,\n Gemini1_5Pro001Literal,\n type Gemini1_5Pro001OptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_5Pro002Schema as Google_Gemini1_5Pro002Schema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_5Pro002Literal = \"gemini-1.5-pro-002\" as const;\nconst Gemini1_5Pro002Schema = Google_Gemini1_5Pro002Schema;\nconst Gemini1_5Pro002Options = BaseChatModelVertexOptions;\ntype Gemini1_5Pro002OptionsType = z.infer<typeof Gemini1_5Pro002Options>;\n\nclass Gemini1_5Pro002 extends BaseChatModelVertex {\n constructor(options: Gemini1_5Pro002OptionsType) {\n super(Gemini1_5Pro002Schema, options);\n }\n}\n\nexport {\n Gemini1_5Pro002,\n Gemini1_5Pro002Options,\n Gemini1_5Pro002Schema,\n Gemini1_5Pro002Literal,\n type Gemini1_5Pro002OptionsType,\n}","import { z } from \"zod\";\n\nimport {\n Gemini1_5ProSchema as Google_Gemini1_5ProSchema,\n} from \"@adaline/google\";\n\nimport { BaseChatModelVertex, BaseChatModelVertexOptions } from \"./base-chat-model.vertex\";\n\nconst Gemini1_5ProLiteral = \"gemini-1.5-pro\" as const;\nconst Gemini1_5ProSchema = Google_Gemini1_5ProSchema;\nconst Gemini1_5ProOptions = BaseChatModelVertexOptions;\ntype Gemini1_5ProOptionsType = z.infer<typeof Gemini1_5ProOptions>;\n\nclass Gemini1_5Pro extends BaseChatModelVertex {\n constructor(options: Gemini1_5ProOptionsType) {\n super(Gemini1_5ProSchema, options);\n }\n}\n\nexport {\n Gemini1_5Pro,\n Gemini1_5ProOptions,\n Gemini1_5ProSchema,\n Gemini1_5ProLiteral,\n type Gemini1_5ProOptionsType,\n}","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral } from \"@adaline/types\";\n\nconst VertexEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n EmbeddingTextModalityLiteral,\n];\n\nconst VertexEmbeddingModelModalitiesEnum = z.enum([\n EmbeddingTextModalityLiteral,\n]);\n\nexport { VertexEmbeddingModelModalitiesEnum, VertexEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst VertexGetEmbeddingsResponse = z.object({\n predictions: z.array(z.object({\n embeddings: z.object({\n values: z.array(z.number()),\n statistics: z.object({\n token_count: z.number(),\n truncated: z.boolean(),\n }),\n }),\n })),\n});\n\ntype VertexGetEmbeddingsResponseType = z.infer<typeof VertexGetEmbeddingsResponse>;\n\nexport { VertexGetEmbeddingsResponse, type VertexGetEmbeddingsResponseType }; ","import { z } from \"zod\";\n\nconst VertexEmbeddingRequest = z.object({\n model: z.string().min(1).optional(),\n instances: z.array(z.object({\n content: z.string().min(1),\n })).min(1),\n parameters: z.object({\n auto_truncate: z.boolean().optional(),\n output_dimensionality: z.number().int().min(1).optional(),\n }).optional(),\n});\n\ntype VertexEmbeddingRequestType = z.infer<typeof VertexEmbeddingRequest>;\n\nexport {\n VertexEmbeddingRequest,\n type VertexEmbeddingRequestType,\n};","import { z } from \"zod\";\n\nimport { \n Config,\n ConfigType, \n FloatEmbeddingType,\n EmbeddingRequests,\n EmbeddingRequestsType,\n EmbeddingResponseType,\n FloatEmbeddingLiteral,\n EmbeddingTextModalityLiteral,\n} from \"@adaline/types\";\n\nimport { \n EmbeddingModelV1,\n EmbeddingModelSchemaType,\n HeadersType, \n ParamsType, \n UrlType, \n ModelError,\n ModelResponseError,\n InvalidConfigError,\n InvalidEmbeddingRequestsError, \n InvalidModelRequestError,\n removeUndefinedEntries,\n} from \"@adaline/provider\";\n\nimport { Vertex } from \"../../provider/provider.vertex\";\n\nimport { \n VertexGetEmbeddingsResponse, \n} from \"./types\";\n\nimport {\n VertexEmbeddingRequest,\n} from \"./types\";\n\nconst BaseEmbeddingModelOptions = z.object({\n accessToken: z.string(),\n modelId: z.string().optional(),\n baseUrl: z.string().url().optional(),\n location: z.string().optional(),\n projectId: z.string().optional(),\n publisher: z.string().optional(),\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 accessToken: string;\n private readonly baseUrl: string;\n private readonly getEmbeddingsUrl: string;\n private readonly modelId: string | undefined;\n private readonly location: string | undefined;\n private readonly projectId: string | undefined;\n private readonly publisher: string | undefined;\n\n constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n const parsedOptions = BaseEmbeddingModelOptions.parse(options);\n this.modelSchema = modelSchema;\n this.accessToken = parsedOptions.accessToken;\n\n let baseUrl: string | undefined;\n if (parsedOptions.baseUrl) {\n baseUrl = parsedOptions.baseUrl;\n } else if (parsedOptions.location && parsedOptions.projectId) {\n baseUrl = Vertex.baseUrl(parsedOptions.location, parsedOptions.projectId, parsedOptions.publisher);\n } else {\n throw new ModelError({\n info: \"Either 'baseUrl' must be provided or 'location' and 'projectId' must be provided\",\n cause: new Error(\"Either 'baseUrl' must be provided or 'location' and 'projectId' must be provided\"),\n });\n }\n\n this.baseUrl = baseUrl;\n this.getEmbeddingsUrl = `${this.baseUrl}/models/${parsedOptions.modelId ?? modelSchema.name}:predict`;\n this.location = parsedOptions.location;\n this.projectId = parsedOptions.projectId;\n this.modelId = parsedOptions.modelId;\n };\n\n getDefaultBaseUrl(): UrlType {\n return this.baseUrl;\n };\n\n getDefaultHeaders(): HeadersType {\n return {\n \"Content-Type\": \"application/json\",\n source: \"adaline.ai\",\n \"Authorization\": `Bearer ${this.accessToken}`,\n };\n };\n\n getDefaultParams(): ParamsType {\n return {};\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean, delayMs: number } {\n return { shouldRetry: false, delayMs: 0 };\n };\n\n // TODO: unused method, not tested\n getTokenCount(requests: EmbeddingRequestsType): number {\n return requests.requests.reduce((acc, request) => acc + request.length, 0);\n };\n\n transformModelRequest(request: any): { \n modelName: string | undefined, \n config: ConfigType, \n embeddingRequests: EmbeddingRequestsType, \n } {\n const safeRequest = VertexEmbeddingRequest.safeParse(request);\n if (!safeRequest.success) {\n throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n }\n\n const parsedRequest = safeRequest.data;\n\n const modelName = parsedRequest.model;\n\n const _config = {\n autoTruncate: parsedRequest.parameters?.auto_truncate,\n dimensions: parsedRequest.parameters?.output_dimensionality,\n };\n const config = Config().parse(removeUndefinedEntries(_config));\n\n const embeddingRequests: EmbeddingRequestsType = {\n modality: EmbeddingTextModalityLiteral,\n requests: parsedRequest.instances.map((instance) => instance.content),\n };\n\n return {\n modelName,\n config,\n embeddingRequests,\n };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig(config: ConfigType, requests?: EmbeddingRequestsType): ParamsType {\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({ \n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: _parsedConfig.error \n });\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n Object.keys(parsedConfig as ConfigType).forEach((key) => {\n if (!this.modelSchema.config.def[key]) {\n throw new InvalidConfigError({ \n info: `Invalid config for model : '${this.modelSchema.name}'`, \n cause: new Error(`Invalid config key : '${key}', \n available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`) \n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = parsedConfig[key];\n acc[paramKey] = paramValue;\n return acc;\n },\n {} as ParamsType\n );\n\n return {\n parameters: transformedConfig,\n };\n };\n\n transformEmbeddingRequests(requests: EmbeddingRequestsType): ParamsType {\n const _parsedRequests = EmbeddingRequests().safeParse(requests);\n if (!_parsedRequests.success) {\n throw new InvalidEmbeddingRequestsError({ info: \"Invalid embedding requests\", cause: _parsedRequests.error });\n }\n\n if (requests.modality !== EmbeddingTextModalityLiteral) {\n throw new InvalidEmbeddingRequestsError({\n info: `Invalid embedding requests for model : '${this.modelSchema.name}'`,\n cause: new Error(`Only '${EmbeddingTextModalityLiteral}' modality is supported for model : '${this.modelSchema.name}'`)\n });\n }\n\n const instances = _parsedRequests.data.requests.map((request) => {\n return {\n content: request as string,\n }\n });\n\n return {\n instances,\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getGetEmbeddingsUrl(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.getEmbeddingsUrl);\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getGetEmbeddingsHeaders(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n };\n\n async getGetEmbeddingsData(config: ConfigType, requests: EmbeddingRequestsType): Promise<ParamsType> {\n return new Promise((resolve) => {\n if (requests.requests.length === 0) {\n throw new InvalidEmbeddingRequestsError({\n info: `Invalid embedding requests for model : '${this.modelSchema.name}'`,\n cause: new Error(\"requests cannot be empty\")\n });\n }\n\n resolve({\n ...this.getDefaultParams(),\n ...this.transformConfig(config),\n ...this.transformEmbeddingRequests(requests),\n });\n });\n };\n\n transformGetEmbeddingsResponse(response: any): EmbeddingResponseType {\n const safe = VertexGetEmbeddingsResponse.safeParse(response);\n if (safe.success) {\n const parsedResponse = safe.data;\n const embeddings = parsedResponse.predictions.map((prediction, index) => {\n return {\n index,\n embedding: prediction.embeddings.values,\n } as FloatEmbeddingType;\n });\n\n return {\n encodingFormat: FloatEmbeddingLiteral,\n embeddings: embeddings,\n } as EmbeddingResponseType;\n }\n\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n };\n}\n\nexport { \n BaseEmbeddingModel, \n BaseEmbeddingModelOptions,\n type BaseEmbeddingModelOptionsType \n};","import { EMBEDDING_CONFIG, RangeConfigItem, SelectBooleanConfigItem } from \"@adaline/provider\";\n\nconst dimensions = (maxDimensions: number) =>\n RangeConfigItem({\n param: \"output_dimensionality\",\n title: EMBEDDING_CONFIG.DIMENSIONS.title,\n description: EMBEDDING_CONFIG.DIMENSIONS.description,\n min: 1,\n max: maxDimensions,\n step: 1,\n default: maxDimensions,\n });\n\nconst autoTruncate = SelectBooleanConfigItem({\n param: \"auto_truncate\",\n title: \"Auto truncate\",\n description: \"When set to true, input text will be truncated. \\\n When set to false, an error is returned if the input text is longer than the maximum length supported by the model.\",\n default: true,\n});\n\nexport { \n dimensions,\n autoTruncate,\n};\n","import { z } from \"zod\";\n\nimport { dimensions, autoTruncate } from \"./common.config.embedding-model.vertex\";\n\nconst EmbeddingModelBaseConfigSchema = (maxDimensions: number) =>\n z.object({\n dimensions: dimensions(maxDimensions).schema,\n autoTruncate: autoTruncate.schema,\n });\n\nconst EmbeddingModelBaseConfigDef = (maxDimensions: number) =>\n ({\n dimensions: dimensions(maxDimensions).def,\n autoTruncate: autoTruncate.def,\n }) as const;\n\nexport { EmbeddingModelBaseConfigDef, EmbeddingModelBaseConfigSchema };\n","import { \n EmbeddingModelBaseConfigDef, \n EmbeddingModelBaseConfigSchema,\n} from \"./embedding-model\";\n\nconst VertexEmbeddingModelConfigs = {\n base: (maxDimensions: number) => ({\n def: EmbeddingModelBaseConfigDef(maxDimensions),\n schema: EmbeddingModelBaseConfigSchema(maxDimensions),\n }),\n} as const;\n\nexport { VertexEmbeddingModelConfigs };","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { VertexEmbeddingModelConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.vertex\";\nimport { VertexEmbeddingModelModalities, VertexEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_004Literal = \"text-embedding-004\";\nconst Text_Embedding_004_Description = \"text-embedding-004\";\n\nconst Text_Embedding_004Schema = EmbeddingModelSchema(VertexEmbeddingModelModalitiesEnum).parse({\n name: Text_Embedding_004Literal,\n description: Text_Embedding_004_Description,\n modalities: VertexEmbeddingModelModalities,\n maxInputTokens: 2048,\n maxOutputTokens: 768,\n config: {\n def: VertexEmbeddingModelConfigs.base(768).def,\n schema: VertexEmbeddingModelConfigs.base(768).schema,\n },\n});\n\nconst Text_Embedding_004Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_004OptionsType = z.infer<typeof Text_Embedding_004Options>;\n\nclass Text_Embedding_004 extends BaseEmbeddingModel {\n constructor(options: Text_Embedding_004OptionsType) {\n super(Text_Embedding_004Schema, options);\n }\n}\n\nexport { \n Text_Embedding_004, \n Text_Embedding_004Options, \n Text_Embedding_004Schema, \n Text_Embedding_004Literal, \n type Text_Embedding_004OptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { VertexEmbeddingModelConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.vertex\";\nimport { VertexEmbeddingModelModalities, VertexEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Multilingual_Embedding_002Literal = \"text-multilingual-embedding-002\";\nconst Text_Multilingual_Embedding_002_Description = \"text-multilingual-embedding-002\";\n\nconst Text_Multilingual_Embedding_002Schema = EmbeddingModelSchema(VertexEmbeddingModelModalitiesEnum).parse({\n name: Text_Multilingual_Embedding_002Literal,\n description: Text_Multilingual_Embedding_002_Description,\n modalities: VertexEmbeddingModelModalities,\n maxInputTokens: 2048,\n maxOutputTokens: 768,\n config: {\n def: VertexEmbeddingModelConfigs.base(768).def,\n schema: VertexEmbeddingModelConfigs.base(768).schema,\n },\n});\n\nconst Text_Multilingual_Embedding_002Options = BaseEmbeddingModelOptions;\ntype Text_Multilingual_Embedding_002OptionsType = z.infer<typeof Text_Multilingual_Embedding_002Options>;\n\nclass Text_Multilingual_Embedding_002 extends BaseEmbeddingModel {\n constructor(options: Text_Multilingual_Embedding_002OptionsType) {\n super(Text_Multilingual_Embedding_002Schema, options);\n }\n}\n\nexport { \n Text_Multilingual_Embedding_002, \n Text_Multilingual_Embedding_002Options, \n Text_Multilingual_Embedding_002Schema, \n Text_Multilingual_Embedding_002Literal, \n type Text_Multilingual_Embedding_002OptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { VertexEmbeddingModelConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.vertex\";\nimport { VertexEmbeddingModelModalities, VertexEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_Gecko_Multilingual_001Literal = \"textembedding-gecko-multilingual@001\";\nconst Text_Embedding_Gecko_Multilingual_001_Description = \"textembedding-gecko-multilingual@001\";\n\nconst Text_Embedding_Gecko_Multilingual_001Schema = EmbeddingModelSchema(VertexEmbeddingModelModalitiesEnum).parse({\n name: Text_Embedding_Gecko_Multilingual_001Literal,\n description: Text_Embedding_Gecko_Multilingual_001_Description,\n modalities: VertexEmbeddingModelModalities,\n maxInputTokens: 2048,\n maxOutputTokens: 768,\n config: {\n def: VertexEmbeddingModelConfigs.base(768).def,\n schema: VertexEmbeddingModelConfigs.base(768).schema,\n },\n});\n\nconst Text_Embedding_Gecko_Multilingual_001Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_Gecko_Multilingual_001OptionsType = z.infer<typeof Text_Embedding_Gecko_Multilingual_001Options>;\n\nclass Text_Embedding_Gecko_Multilingual_001 extends BaseEmbeddingModel {\n constructor(options: Text_Embedding_Gecko_Multilingual_001OptionsType) {\n super(Text_Embedding_Gecko_Multilingual_001Schema, options);\n }\n}\n\nexport { \n Text_Embedding_Gecko_Multilingual_001, \n Text_Embedding_Gecko_Multilingual_001Options, \n Text_Embedding_Gecko_Multilingual_001Schema, \n Text_Embedding_Gecko_Multilingual_001Literal, \n type Text_Embedding_Gecko_Multilingual_001OptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { VertexEmbeddingModelConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.vertex\";\nimport { VertexEmbeddingModelModalities, VertexEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_Gecko_003Literal = \"textembedding-gecko@003\";\nconst Text_Embedding_Gecko_003_Description = \"textembedding-gecko@003\";\n\nconst Text_Embedding_Gecko_003Schema = EmbeddingModelSchema(VertexEmbeddingModelModalitiesEnum).parse({\n name: Text_Embedding_Gecko_003Literal,\n description: Text_Embedding_Gecko_003_Description,\n modalities: VertexEmbeddingModelModalities,\n maxInputTokens: 2048,\n maxOutputTokens: 768,\n config: {\n def: VertexEmbeddingModelConfigs.base(768).def,\n schema: VertexEmbeddingModelConfigs.base(768).schema,\n },\n});\n\nconst Text_Embedding_Gecko_003Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_Gecko_003OptionsType = z.infer<typeof Text_Embedding_Gecko_003Options>;\n\nclass Text_Embedding_Gecko_003 extends BaseEmbeddingModel {\n constructor(options: Text_Embedding_Gecko_003OptionsType) {\n super(Text_Embedding_Gecko_003Schema, options);\n }\n}\n\nexport { \n Text_Embedding_Gecko_003, \n Text_Embedding_Gecko_003Options, \n Text_Embedding_Gecko_003Schema, \n Text_Embedding_Gecko_003Literal, \n type Text_Embedding_Gecko_003OptionsType \n};"]}