@mastra/core 0.1.27-alpha.6 → 0.1.27-alpha.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"core.cjs.development.js","sources":["../src/logger/index.ts","../src/utils.ts","../src/llm/index.ts","../src/agent/index.ts","../src/tools/index.ts","../src/integration/index.ts","../src/engine/types.ts","../src/engine/utils.ts","../src/engine/schema.ts","../src/engine/index.ts","../src/vector/index.ts","../src/mastra/index.ts","../src/workflows/utils.ts","../src/workflows/main.ts"],"sourcesContent":["import { Redis } from '@upstash/redis';\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';\nimport path from 'path';\n\n// Constants and Types\nexport const RegisteredLogger = {\n AGENT: 'AGENT',\n WORKFLOW: 'WORKFLOW',\n} as const;\n\nexport type RegisteredLogger =\n (typeof RegisteredLogger)[keyof typeof RegisteredLogger];\n\nexport const LogLevel = {\n DEBUG: 'DEBUG',\n INFO: 'INFO',\n WARN: 'WARN',\n ERROR: 'ERROR',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n\n// Base Interfaces\nexport interface BaseLogMessage {\n message: string;\n destinationPath: string;\n type: RegisteredLogger;\n}\n\nexport interface Logger<T extends BaseLogMessage = BaseLogMessage> {\n debug(message: T | string, ...args: any[]): void | Promise<void>;\n info(message: T | string, ...args: any[]): void | Promise<void>;\n warn(message: T | string, ...args: any[]): void | Promise<void>;\n error(message: T | string, ...args: any[]): void | Promise<void>;\n cleanup?(): Promise<void>;\n}\n\n// Configuration Types\nexport type LoggerConfig =\n | { type: 'CONSOLE'; level?: LogLevel }\n | { type: 'FILE'; level?: LogLevel; dirPath?: string }\n | {\n type: 'UPSTASH';\n level?: LogLevel;\n url: string;\n token: string;\n key?: string;\n };\n\n// Abstract Base Logger\nexport abstract class BaseLogger<T extends BaseLogMessage = BaseLogMessage>\n implements Logger<T>\n{\n protected level: LogLevel;\n\n constructor(level: LogLevel = LogLevel.INFO) {\n this.level = level;\n }\n\n abstract log(\n level: LogLevel,\n message: T | string,\n ...args: any[]\n ): void | Promise<void>;\n\n debug(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.DEBUG) {\n return this.log(LogLevel.DEBUG, message, ...args);\n }\n }\n\n info(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.INFO) {\n return this.log(LogLevel.INFO, message, ...args);\n }\n }\n\n warn(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.WARN) {\n return this.log(LogLevel.WARN, message, ...args);\n }\n }\n\n error(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.ERROR) {\n return this.log(LogLevel.ERROR, message, ...args);\n }\n }\n\n protected formatMessage(message: T | string): string {\n if (typeof message === 'string') {\n return message;\n }\n return JSON.stringify(message);\n }\n\n protected formatLogEntry(level: LogLevel, message: T | string): any {\n return {\n timestamp: new Date().toISOString(),\n level: LogLevel[level],\n message: this.formatMessage(message),\n };\n }\n}\n\n// Console Logger Implementation\nclass ConsoleLogger<\n T extends BaseLogMessage = BaseLogMessage\n> extends BaseLogger<T> {\n constructor(level?: LogLevel) {\n super(level ?? LogLevel.INFO);\n }\n\n log(level: LogLevel, message: T | string, ...args: any[]): void {\n const logEntry = this.formatLogEntry(level, message);\n console.log(\n `[${logEntry.timestamp}] [${logEntry.level}] ${logEntry.message}`,\n ...args\n );\n }\n}\n\n// File Logger Implementation\nclass FileLogger<\n T extends BaseLogMessage = BaseLogMessage\n> extends BaseLogger<T> {\n #dirPath: string;\n\n constructor(dirPath: string = 'logs', level?: LogLevel) {\n super(level ?? LogLevel.INFO);\n this.#dirPath = dirPath;\n }\n\n log(level: LogLevel, message: T): void {\n if (typeof message === 'string') {\n throw new Error('FileLogger requires a BaseLogMessage object');\n }\n\n const fullPath = path.join(\n this.#dirPath,\n `${message.destinationPath}.json`\n );\n\n this.ensureDirectoryExists();\n this.writeLogToFile(fullPath, level, message);\n }\n\n private ensureDirectoryExists(): void {\n if (!existsSync(this.#dirPath)) {\n mkdirSync(this.#dirPath, { recursive: true });\n }\n }\n\n private writeLogToFile(fullPath: string, level: LogLevel, message: T): void {\n const logEntry = {\n ...message,\n level: LogLevel[level],\n createdAt: new Date(),\n };\n\n let logs = [];\n if (existsSync(fullPath)) {\n logs = JSON.parse(readFileSync(fullPath, 'utf-8'));\n }\n\n logs.push(logEntry);\n writeFileSync(fullPath, JSON.stringify(logs, null, 2));\n }\n}\n\n// Upstash Redis Logger Implementation\nclass UpstashRedisLogger<\n T extends BaseLogMessage = BaseLogMessage\n> extends BaseLogger<T> {\n #redis: Redis;\n #key: string;\n\n constructor(redis: Redis, key: string = 'logs', level?: LogLevel) {\n super(level ?? LogLevel.INFO);\n this.#redis = redis;\n this.#key = key;\n }\n\n async log(level: LogLevel, message: T): Promise<void> {\n if (typeof message === 'string') {\n throw new Error('UpstashRedisLogger requires a BaseLogMessage object');\n }\n\n const logEntry = {\n ...message,\n level: LogLevel[level],\n createdAt: new Date(),\n };\n\n await this.#redis.lpush(this.#key, JSON.stringify(logEntry));\n }\n\n async getLogs(): Promise<string[]> {\n return this.#redis.lrange(this.#key, 0, -1);\n }\n\n async cleanup(): Promise<void> {\n // Cleanup Redis connection if needed\n }\n}\n\n// Multi Logger Implementation\nexport class MultiLogger<T extends BaseLogMessage = BaseLogMessage>\n implements Logger<T>\n{\n private loggers: Logger<T>[];\n\n constructor(loggers: Logger<T>[]) {\n this.loggers = loggers;\n }\n\n async debug(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.debug(message, ...args))\n );\n }\n\n async info(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.info(message, ...args))\n );\n }\n\n async warn(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.warn(message, ...args))\n );\n }\n\n async error(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.error(message, ...args))\n );\n }\n\n async cleanup(): Promise<void> {\n await Promise.all(\n this.loggers.map(async (logger) => {\n if (logger.cleanup) {\n await logger.cleanup();\n }\n })\n );\n }\n}\n\n// Factory function for built-in loggers\n// In createLogger function\nexport function createLogger<T extends BaseLogMessage = BaseLogMessage>(\n config: LoggerConfig\n): Logger<T> {\n switch (config.type) {\n case 'CONSOLE':\n return new ConsoleLogger<T>(config.level);\n\n case 'FILE':\n return new FileLogger<T>(config.dirPath, config.level);\n\n case 'UPSTASH':\n const redis = new Redis({\n url: config.url,\n token: config.token,\n });\n return new UpstashRedisLogger<T>(redis, config.key, config.level);\n\n default:\n throw new Error(`Unsupported logger type`);\n }\n}\n\nexport function createMultiLogger<T extends BaseLogMessage = BaseLogMessage>(\n loggers: Logger<T>[]\n): Logger<T> {\n return new MultiLogger<T>(loggers);\n}\n","export const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n","import { createAnthropic } from '@ai-sdk/anthropic';\nimport { createOpenAI } from '@ai-sdk/openai';\nimport {\n CoreMessage,\n CoreTool as CT,\n generateText,\n LanguageModelV1,\n streamText,\n tool,\n} from 'ai';\nimport { z, ZodSchema } from 'zod';\nimport { AllTools, CoreTool, ToolApi } from '../tools/types';\nimport { delay } from '../utils';\nimport { Integration } from '../integration';\nimport { createLogger, Logger } from '../logger';\nimport { ModelConfig } from './types';\n\nexport class LLM<\n TTools,\n TIntegrations extends Integration[] | undefined = undefined,\n TKeys extends keyof AllTools<TTools, TIntegrations> = keyof AllTools<\n TTools,\n TIntegrations\n >,\n> {\n #tools: Record<TKeys, ToolApi>;\n logger: Logger;\n\n constructor(logger?: Logger) {\n this.#tools = {} as Record<TKeys, ToolApi>;\n this.logger = logger || createLogger({ type: 'CONSOLE' });\n }\n\n /**\n * Set the concrete tools for the agent\n * @param tools\n */\n __setTools(tools: Record<TKeys, ToolApi>) {\n this.#tools = tools;\n this.logger.debug(`Tools set for LLM`, tools);\n }\n\n getModelType(model: ModelConfig): string {\n const providerToType: Record<string, string> = {\n OPEN_AI_VERCEL: 'openai',\n ANTHROPIC_VERCEL: 'anthropic',\n GROQ_VERCEL: 'groq',\n PERPLEXITY_VERCEL: 'perplexity',\n FIREWORKS_VERCEL: 'fireworks',\n };\n const type = providerToType[model.provider] || 'openai';\n this.logger.debug(\n `Model type resolved to ${type} for provider ${model.provider}`\n );\n return type;\n }\n\n createOpenAICompatibleModel(\n baseURL: string,\n apiKey: string,\n defaultModelName: string,\n modelName?: string\n ): LanguageModelV1 {\n this.logger.debug(\n `Creating OpenAI compatible model with baseURL: ${baseURL}`\n );\n const client = createOpenAI({\n baseURL,\n apiKey,\n });\n return client(modelName || defaultModelName);\n }\n\n createModelDef({\n model,\n }: {\n model: { type: string; name?: string; toolChoice?: 'auto' | 'required' };\n }): LanguageModelV1 {\n let modelDef: LanguageModelV1;\n if (model.type === 'openai') {\n this.logger.info(\n `Initializing OpenAI model ${model.name || 'gpt-4o-2024-08-06'}`\n );\n const openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n });\n modelDef = openai(model.name || 'gpt-4o-2024-08-06', {\n structuredOutputs: true,\n });\n } else if (model.type === 'anthropic') {\n this.logger.info(\n `Initializing Anthropic model ${\n model.name || 'claude-3-5-sonnet-20240620'\n }`\n );\n const anthropic = createAnthropic({\n apiKey: process.env.ANTHROPIC_API_KEY,\n });\n modelDef = anthropic(model.name || 'claude-3-5-sonnet-20240620');\n } else if (model.type === 'groq') {\n this.logger.info(\n `Initializing Groq model ${model.name || 'llama-3.2-90b-text-preview'}`\n );\n modelDef = this.createOpenAICompatibleModel(\n 'https://api.groq.com/openai/v1',\n process.env.GROQ_API_KEY ?? '',\n 'llama-3.2-90b-text-preview',\n model.name\n );\n } else if (model.type === 'perplexity') {\n this.logger.info(\n `Initializing Perplexity model ${\n model.name || 'llama-3.1-sonar-large-128k-chat'\n }`\n );\n modelDef = this.createOpenAICompatibleModel(\n 'https://api.perplexity.ai/',\n process.env.PERPLEXITY_API_KEY ?? '',\n 'llama-3.1-sonar-large-128k-chat',\n model.name\n );\n } else if (model.type === 'fireworks') {\n this.logger.info(\n `Initializing Fireworks model ${\n model.name || 'llama-v3p1-70b-instruct'\n }`\n );\n modelDef = this.createOpenAICompatibleModel(\n 'https://api.fireworks.ai/inference/v1',\n process.env.FIREWORKS_API_KEY ?? '',\n 'llama-v3p1-70b-instruct',\n model.name\n );\n } else {\n const error = `Invalid model type: ${model.type}`;\n this.logger.error(error);\n throw new Error(error);\n }\n\n return modelDef;\n }\n\n getParams({\n tools,\n resultTool,\n model,\n }: {\n tools: Record<string, CoreTool>;\n resultTool?: { description: string; parameters: ZodSchema };\n model: { type: string; name?: string; toolChoice?: 'auto' | 'required' };\n }) {\n const toolsConverted = Object.entries(tools).reduce(\n (memo, [key, val]) => {\n memo[key] = tool(val);\n return memo;\n },\n {} as Record<string, CT>\n );\n\n let answerTool = {};\n if (resultTool) {\n answerTool = { answer: tool(resultTool) };\n }\n\n const modelDef = this.createModelDef({ model });\n\n return {\n toolsConverted,\n modelDef,\n answerTool,\n toolChoice: model.toolChoice || 'required',\n };\n }\n\n convertTools(\n enabledTools?: Partial<Record<TKeys, boolean>>\n ): Record<TKeys, CoreTool> {\n const converted = Object.entries(enabledTools || {}).reduce(\n (memo, value) => {\n const k = value[0] as TKeys;\n const enabled = value[1] as boolean;\n const tool = this.#tools[k];\n\n if (enabled && tool) {\n memo[k] = {\n description: tool.description,\n parameters: z.object({\n data: tool.schema,\n }),\n execute: tool.executor,\n };\n }\n return memo;\n },\n {} as Record<TKeys, CoreTool>\n );\n\n this.logger.debug(`Converted tools for LLM`, converted);\n return converted;\n }\n\n async text({\n model,\n messages,\n onStepFinish,\n maxSteps = 5,\n enabledTools,\n }: {\n enabledTools?: Partial<Record<TKeys, boolean>>;\n model: ModelConfig;\n messages: CoreMessage[];\n onStepFinish?: (step: string) => void;\n maxSteps?: number;\n }) {\n const params = this.getParams({\n tools: this.convertTools(enabledTools || {}),\n model: {\n type: this.getModelType(model),\n name: model.name,\n toolChoice: model.toolChoice,\n },\n });\n\n const argsForExecute = {\n model: params.modelDef,\n tools: {\n ...params.toolsConverted,\n ...params.answerTool,\n },\n toolChoice: params.toolChoice,\n maxSteps,\n onStepFinish: async (props: any) => {\n onStepFinish?.(JSON.stringify(props, null, 2));\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(\n props?.response?.headers?.['x-ratelimit-remaining-tokens'],\n 10\n ) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds');\n await delay(10 * 1000);\n }\n },\n };\n\n this.logger.debug(`Generating text with ${messages.length} messages`);\n return await generateText({\n messages,\n ...argsForExecute,\n });\n }\n\n async stream({\n model,\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n enabledTools,\n }: {\n model: ModelConfig;\n enabledTools: Partial<Record<TKeys, boolean>>;\n messages: CoreMessage[];\n onStepFinish?: (step: string) => void;\n onFinish?: (result: string) => Promise<void> | void;\n maxSteps?: number;\n }) {\n const params = this.getParams({\n tools: this.convertTools(enabledTools),\n model: {\n type: this.getModelType(model),\n name: model.name,\n toolChoice: model.toolChoice,\n },\n });\n\n const argsForExecute = {\n model: params.modelDef,\n tools: {\n ...params.toolsConverted,\n ...params.answerTool,\n },\n toolChoice: params.toolChoice,\n maxSteps,\n onStepFinish: async (props: any) => {\n onStepFinish?.(JSON.stringify(props, null, 2));\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(\n props?.response?.headers?.['x-ratelimit-remaining-tokens'],\n 10\n ) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds');\n await delay(10 * 1000);\n }\n },\n onFinish: async (props: any) => {\n onFinish?.(JSON.stringify(props, null, 2));\n },\n };\n\n this.logger.debug(`Streaming text with ${messages.length} messages`);\n return await streamText({\n messages,\n ...argsForExecute,\n });\n }\n}\n","import { CoreMessage, UserContent } from 'ai';\nimport { Integration } from '../integration';\nimport { createLogger, Logger } from '../logger';\nimport { AllTools, ToolApi } from '../tools/types';\nimport { LLM } from '../llm';\nimport { ModelConfig } from '../llm/types';\n\nexport class Agent<\n TTools,\n TIntegrations extends Integration[] | undefined = undefined,\n TKeys extends keyof AllTools<TTools, TIntegrations> = keyof AllTools<\n TTools,\n TIntegrations\n >,\n> {\n public name: string;\n readonly llm: LLM<TTools, TIntegrations, TKeys>;\n readonly instructions: string;\n readonly model: ModelConfig;\n readonly enabledTools: Partial<Record<TKeys, boolean>>;\n logger: Logger;\n\n constructor(config: {\n name: string;\n instructions: string;\n model: ModelConfig;\n enabledTools?: Partial<Record<TKeys, boolean>>;\n }) {\n this.name = config.name;\n this.instructions = config.instructions;\n\n this.llm = new LLM<TTools, TIntegrations, TKeys>();\n\n this.model = config.model;\n this.enabledTools = config.enabledTools || {};\n this.logger = createLogger({ type: 'CONSOLE' });\n this.logger.info(\n `Agent ${this.name} initialized with model ${this.model.provider}`\n );\n }\n\n /**\n * Set the concrete tools for the agent\n * @param tools\n */\n __setTools(tools: Record<TKeys, ToolApi>) {\n this.llm.__setTools(tools);\n this.logger.debug(`Tools set for agent ${this.name}`, tools);\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: Logger) {\n this.logger = logger;\n this.logger.debug(`Logger updated for agent ${this.name}`);\n }\n\n async text({\n messages,\n onStepFinish,\n maxSteps = 5,\n }: {\n messages: UserContent[];\n onStepFinish?: (step: string) => void;\n maxSteps?: number;\n }) {\n this.logger.info(`Starting text generation for agent ${this.name}`);\n\n const messageObjects: CoreMessage[] = messages.map((content) => ({\n role: 'user',\n content,\n }));\n\n messageObjects.push({\n role: 'system',\n content: this.instructions,\n });\n\n return this.llm.text({\n model: this.model,\n messages: messageObjects,\n enabledTools: this.enabledTools,\n onStepFinish,\n maxSteps,\n });\n }\n\n async stream({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n }: {\n messages: UserContent[];\n onStepFinish?: (step: string) => void;\n onFinish?: (result: string) => Promise<void> | void;\n maxSteps?: number;\n }) {\n this.logger.info(`Starting stream generation for agent ${this.name}`);\n\n const messageObjects: CoreMessage[] = messages.map((content) => ({\n role: 'user',\n content,\n }));\n\n messageObjects.push({\n role: 'system',\n content: this.instructions,\n });\n\n return this.llm.stream({\n messages: messageObjects,\n model: this.model,\n enabledTools: this.enabledTools,\n onStepFinish,\n onFinish,\n maxSteps,\n });\n }\n}\n","import { Integration } from '../';\nimport { ToolApi } from './types';\n\n// TODO: Passing the In/out generics works but seems to break on plugin to mastra, fix.\nexport function createTool<\n IN extends Record<string, any> = Record<string, any>,\n OUT extends Record<string, any> = Record<string, any>,\n>(opts: ToolApi<IN, OUT>): ToolApi<IN, OUT> {\n return opts as ToolApi<IN, OUT>;\n}\n","import { z } from 'zod';\nimport { createTool } from '../tools';\nimport { IntegrationApiExcutorParams, ToolApi } from '../tools/types';\n\nexport abstract class Integration {\n abstract readonly name: string;\n abstract readonly logoUrl: string;\n abstract readonly tools: Record<string, ToolApi>;\n authType: string = 'API_KEY';\n\n constructor() {}\n\n protected get toolSchemas(): any {\n return {};\n }\n\n protected get toolDocumentations(): Record<\n string,\n { comment: string; doc?: string }\n > {\n return {};\n }\n\n protected get baseClient(): any {\n return {};\n }\n\n async getApiClient(): Promise<any> {\n throw new Error('API not implemented');\n }\n\n protected _generateIntegrationTools<T>() {\n const { client, ...clientMethods } = this.baseClient;\n const schemas = this.toolSchemas;\n const documentations = this.toolDocumentations;\n\n const tools = Object.keys(clientMethods).reduce((acc, key) => {\n const comment = documentations[key]?.comment;\n const doc = documentations[key]?.doc;\n const fallbackComment = `Execute ${key}`;\n\n const tool = createTool({\n label: key,\n schema: schemas[key] || z.object({}),\n description: comment || fallbackComment,\n documentation: doc || fallbackComment,\n executor: async ({ data }) => {\n const client = await this.getApiClient();\n const value = client[key as keyof typeof client];\n return (value as any)({\n ...(data as any),\n });\n },\n });\n\n return { ...acc, [key]: tool };\n }, {});\n\n return tools as T;\n }\n}\n","import { z } from 'zod';\nimport { filterQuerySchema } from './schema';\n\nexport interface BaseConnection {\n id: string;\n name: string;\n issues: string[];\n syncConfig: Record<string, any> | null;\n connectionId: string;\n createdAt: Date;\n updatedAt: Date | null;\n lastSyncAt: Date | null;\n subscriptionId?: string | null;\n error?: string | null;\n}\n\nexport interface BaseCredential {\n id: string;\n type: string;\n value: Record<string, any>;\n scope: string[];\n kId: string | null;\n}\n\nexport type CredentialInput = Omit<BaseCredential, \"id\" | \"kId\">;\n\nexport type CredentialWithConnection = {\n id: string;\n type: string;\n value: Record<string, any>;\n scope: string[];\n kId: string | null;\n connection: BaseConnection | null;\n}\n\nexport interface BaseEntity {\n id: string;\n kId: string | null;\n type: string;\n lastSyncId: string | null\n createdBy: string;\n createdAt: Date;\n updatedAt: Date | null;\n}\n\nexport type CredentialUpdateInput = Partial<{\n type: string;\n value: Record<string, any>;\n scope: string[];\n}>;\n\nexport interface BaseRecord {\n id: string;\n entityId: string;\n data: Record<string, any>;\n createdAt: Date;\n updatedAt: Date | null;\n externalId: string | null;\n entityType: string\n}\n\nexport interface BaseProperty {\n id?: string\n name: string\n displayName: string\n visible: boolean\n config: Record<string, any>\n description: string | null\n type: PropertyType\n order: number\n modifiable: boolean\n entityId?: string\n}\n\nexport enum PropertyType {\n 'LONG_TEXT' = 'LONG_TEXT',\n 'SINGLE_LINE_TEXT' = 'SINGLE_LINE_TEXT',\n 'SINGLE_SELECT' = 'SINGLE_SELECT',\n 'MULTI_SELECT' = 'MULTI_SELECT',\n 'CHECKBOX' = 'CHECKBOX',\n 'DATE' = 'DATE',\n 'USER' = 'USER',\n 'BADGE_LIST' = 'BADGE_LIST',\n 'CURRENCY' = 'CURRENCY',\n 'URL' = 'URL',\n 'PHONE' = 'PHONE',\n 'CONTACT' = 'CONTACT',\n 'COMPANY' = 'COMPANY',\n 'PERSON' = 'PERSON',\n 'ENRICHMENT' = 'ENRICHMENT',\n 'COMPOSITE' = 'COMPOSITE',\n 'BOOLEAN' = 'BOOLEAN',\n 'NUMBER' = 'NUMBER',\n 'FLOAT' = 'FLOAT',\n 'JSON_OBJECT' = 'JSON_OBJECT',\n 'JSON_ARRAY' = 'JSON_ARRAY',\n}\n\nexport type FilterObject<T extends string | number | symbol> = Record<\n T,\n z.infer<typeof filterQuerySchema>\n>;\n\nexport interface FilterClauseArgs<T extends string | number | symbol> {\n parentTableRef?: string;\n filters: FilterObject<T>;\n fields?: Pick<BaseProperty, 'name' | 'type'>[];\n}\n\nexport interface SortClauseArgs {\n parentTableRef?: string;\n sort: string[];\n fields?: Pick<BaseProperty, 'name' | 'type'>[];\n}\n\nexport enum FilterOperators {\n IS = 'is',\n EQUAL = 'eq',\n NOT_EQUAL = 'not_eq',\n CONTAINS = 'contains',\n IN = 'in',\n NOT_IN = 'not_in',\n GREATER_THAN = 'gt',\n LESS_THAN = 'lt',\n NOT_CONTAINS = 'not_contains',\n GREATER_THAN_OR_EQUAL = 'gte',\n LESS_THAN_OR_EQUAL = 'lte',\n OP = 'op',\n SET = 'set',\n NOT_SET = 'not_set',\n}\n","import { PropertyType } from './types';\n\nexport const FieldTypePrimitiveMap: Record<PropertyType, string> = {\n [PropertyType.BADGE_LIST]: 'string',\n [PropertyType.CHECKBOX]: 'boolean',\n [PropertyType.BOOLEAN]: 'boolean',\n [PropertyType.NUMBER]: 'number',\n [PropertyType.FLOAT]: 'number',\n [PropertyType.JSON_ARRAY]: 'string',\n [PropertyType.JSON_OBJECT]: 'string',\n [PropertyType.CURRENCY]: 'number',\n [PropertyType.DATE]: 'date',\n [PropertyType.LONG_TEXT]: 'string',\n [PropertyType.MULTI_SELECT]: 'string',\n [PropertyType.PHONE]: 'string',\n [PropertyType.SINGLE_LINE_TEXT]: 'string',\n [PropertyType.SINGLE_SELECT]: 'string',\n [PropertyType.URL]: 'string',\n [PropertyType.USER]: 'string',\n [PropertyType.CONTACT]: 'string',\n [PropertyType.COMPANY]: 'string',\n [PropertyType.COMPOSITE]: 'string',\n [PropertyType.PERSON]: 'string',\n [PropertyType.ENRICHMENT]: 'string',\n};\n\n/**\n * Split a string on commas and strip quotes from each part\n * @param str input string\n * @returns array of strings\n */\nexport const splitAndStripQuotes = (str: string) => {\n // Raw regex pattern for splitting on non-quoted commas\n const pattern = /,\\s*(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;\n // Split the string\n const parts = str.split(pattern);\n // Strip quotes from each part\n const cleanedParts = parts.map((part) => part.trim().replace(/^\"|\"$/g, ''));\n return cleanedParts;\n};\n\nexport const transformFilterValueArray = (value: string | undefined) => {\n if (typeof value === 'string') return value.split(',');\n return value;\n};\n\nexport const transformFilterValueBoolean = (value: string | undefined) => {\n if (typeof value === 'string') return value === 'true';\n return value;\n};\n\n/**\n * This returns the SQL field for a JSON field with appropriate casting.\n * @param column - JSON field to cast.\n * @param type - Type of the JSON field.\n */\nexport const getJSONField = (column: string, type: PropertyType) => {\n const primitiveType = FieldTypePrimitiveMap[type];\n\n switch (primitiveType) {\n case 'number': {\n // cast to number if field is numeric\n return `(${column})::bigint`;\n }\n\n case 'boolean': {\n // cast to boolean if field is boolean\n return `(${column})::boolean`;\n }\n\n case 'date': {\n return `(${column})::timestamp`;\n }\n }\n\n return `(${column})::text`;\n};\n\n/**\n * @description\n * Builds a query string from filter and sort query strings\n * @param filterQueryString Filter query string\n * @param sortQueryString Sort query string\n * @returns\n */\nexport function buildQueryString({\n filterQueryString,\n sortQueryString,\n}: {\n filterQueryString?: string;\n sortQueryString?: string;\n}) {\n if (!filterQueryString && !sortQueryString) return '';\n if (!filterQueryString) return `${sortQueryString}`;\n if (!sortQueryString) return `${filterQueryString}`;\n\n return `${filterQueryString}&${sortQueryString}`;\n}\n","import { z } from 'zod';\nimport { FilterOperators } from './types';\nimport {\n transformFilterValueArray,\n transformFilterValueBoolean,\n} from './utils';\n\ntype ValueOf<T> = Required<T>[keyof T];\n\nexport const filterQuerySchema = z.object<\n Record<ValueOf<typeof FilterOperators>, any>\n>({\n is: z.array(z.string()).or(z.string()).optional(),\n eq: z.array(z.string()).or(z.string()).optional(),\n not_eq: z.array(z.string()).or(z.string()).optional(),\n contains: z.array(z.string()).or(z.string()).optional(),\n not_contains: z.array(z.string()).or(z.string()).optional(),\n gt: z.array(z.string()).or(z.string()).optional(),\n gte: z.array(z.string()).or(z.string()).optional(),\n lt: z.array(z.string()).or(z.string()).optional(),\n lte: z.array(z.string()).or(z.string()).optional(),\n in: z.array(z.string()).or(z.string()).optional(),\n not_in: z.array(z.string()).or(z.string()).optional(),\n op: z.enum(['or', 'and']).optional().default('or'),\n set: z.string().optional().transform(transformFilterValueBoolean),\n not_set: z.string().optional().transform(transformFilterValueBoolean),\n});\n\nexport const sortQuerySchema = z.string().transform(transformFilterValueArray);\n","import { BaseConnection, BaseCredential, BaseEntity, BaseProperty, BaseRecord, CredentialInput, CredentialUpdateInput, CredentialWithConnection, FilterObject } from \"./types\";\n\nexport * from './schema';\nexport * from './types';\nexport * from './utils';\n\nexport interface DatabaseConfig {\n url: string;\n // Add other configuration options as needed\n}\nexport abstract class MastraEngine {\n /**\n * Initializes the database connection\n * @param config Configuration object for database connection\n */\n constructor(config: DatabaseConfig) {};\n\n /**\n * Closes the database connection\n */\n abstract close(): Promise<void>;\n\n // Connection Management\n abstract getConnection(params: { name: string; connectionId: string }): Promise<BaseConnection>;\n abstract getConnectionById(params: { kId: string }): Promise<BaseConnection | undefined>;\n abstract getAllConnections(): Promise<Pick<BaseConnection, 'name' | 'connectionId'>[]>;\n abstract getConnectionsByIntegrationName(params: { name: string }): Promise<BaseConnection[]>;\n abstract getConnectionsBySubscriptionId(params: { subscriptionId: string }): Promise<BaseConnection[]>;\n abstract setConnectionSubscriptionId(params: { kId: string; subscriptionId: string }): Promise<BaseConnection>;\n abstract createConnection(params: {\n connection: Omit<BaseConnection, 'createdAt' | 'updatedAt' | 'id' | 'lastSyncAt'>;\n credential: CredentialInput;\n }): Promise<BaseConnection & { credential: BaseCredential }>;\n abstract setConnectionError(params: { kId: string; error: string }): Promise<BaseConnection>;\n abstract deleteConnection(params: { kId: string }): Promise<BaseConnection | null>;\n\n // Credential Management\n abstract getCredentialsByConnection(kId: string): Promise<CredentialWithConnection>;\n abstract updateConnectionCredentialToken(params: {\n kId: string;\n token: Record<string, any>;\n }): Promise<BaseCredential>;\n abstract updateConnectionCredentials(params: CredentialUpdateInput & { kId: string }): Promise<BaseCredential>;\n\n // Entity Management\n abstract createEntity(params: {\n kId: string;\n type: string;\n connectionId: string;\n }): Promise<BaseEntity>;\n abstract getEntityById(params: { id: string }): Promise<BaseEntity>;\n abstract getEntityByConnectionAndType(params: {\n kId: string;\n type: string;\n }): Promise<BaseEntity | null>;\n abstract getEntityRecordsByConnectionAndType(params: {\n kId: string;\n type: string;\n }): Promise<BaseEntity & { properties: BaseProperty[]; records: BaseRecord[] } | null>;\n abstract updateEntityLastSyncId(params: {\n id: string;\n syncId: string;\n }): Promise<BaseEntity>;\n abstract deleteEntityById(params: { id: string }): Promise<BaseEntity>;\n\n // Record Management\n abstract mergeExternalRecordsForEntity(params: {\n entityId: string;\n records: Pick<BaseRecord, 'externalId' | 'data' | 'entityType'>[];\n }): Promise<void>;\n abstract getRecordsByPropertyName(params: {\n propertyName: string;\n connectionId: string;\n }): Promise<{ record: BaseRecord }[]>;\n abstract getRecordByPropertyNameAndValue(params: {\n propertyName: string;\n propertyValue: string;\n type: string;\n connectionId: string;\n }): Promise<BaseRecord | null>;\n abstract getRecordByPropertyNameAndValues(params: {\n propertyName: string;\n propertyValues: string[];\n type?: string;\n connectionId: string;\n }): Promise<{ record: BaseRecord }[]>;\n abstract deleteRecordsByEntityId(params: { id: string }): Promise<BaseRecord[]>;\n\n // Property Management\n abstract addPropertiesToEntity(params: {\n entityId: string;\n properties: BaseProperty[];\n }): Promise<BaseEntity>;\n abstract getPropertiesByEntityType(params: {\n entityType: string;\n }): Promise<BaseProperty[]>;\n abstract deletePropertiesByEntityId(params: { id: string }): Promise<BaseProperty[]>;\n\n // Data Synchronization\n abstract syncData(params: {\n connectionId: string;\n name: string;\n data: any;\n type: string;\n properties: BaseProperty[];\n lastSyncId?: string;\n }): Promise<void>;\n\n // Query Building and Filtering\n abstract buildRecordQuerySql(params: {\n whereClause: string;\n filterClause?: string;\n entityType: string;\n sortClauses: string[];\n }): string;\n\n abstract getFilteredRecords<T extends string | number | symbol>(params: {\n entityType: string;\n filters?: FilterObject<T>;\n sort?: string[];\n kId: string;\n }): Promise<any[]>;\n\n abstract getRecords<T extends string | number | symbol>(params: {\n entityType: string;\n kId: string;\n filters?: FilterObject<T>;\n sort?: string[];\n }): Promise<any[]>;\n}","export interface QueryResult {\n id: string;\n score: number;\n metadata?: Record<string, any>;\n}\n\nexport interface IndexStats {\n dimension: number;\n count: number;\n metric?: 'cosine' | 'euclidean' | 'dotproduct';\n}\n\nexport abstract class MastraVector {\n abstract upsert(\n indexName: string,\n vectors: number[][],\n metadata?: Record<string, any>[],\n ids?: string[]\n ): Promise<string[]>;\n\n abstract createIndex(\n indexName: string,\n dimension: number,\n metric?: 'cosine' | 'euclidean' | 'dotproduct'\n ): Promise<void>;\n\n abstract query(\n indexName: string,\n queryVector: number[],\n topK?: number,\n filter?: Record<string, any>\n ): Promise<QueryResult[]>;\n\n abstract listIndexes(): Promise<string[]>;\n\n abstract describeIndex(indexName: string): Promise<IndexStats>;\n\n abstract deleteIndex(indexName: string): Promise<void>;\n}","import { Integration } from '../integration';\nimport { Agent } from '../agent';\nimport { createLogger, Logger, RegisteredLogger } from '../logger';\nimport { SyncConfig } from '../sync/types';\nimport { AllTools, ToolApi } from '../tools/types';\nimport { MastraEngine } from '../engine';\nimport { MastraVector } from '../vector';\nimport { LLM } from '../llm';\nimport { z } from 'zod';\nimport { Workflow } from '../workflows';\n\nexport class Mastra<\n TIntegrations extends Integration[],\n MastraTools extends Record<string, any>,\n TSyncs extends Record<\n string,\n SyncConfig<TIntegrations, MastraTools, any>\n > = Record<never, never>,\n> {\n private engine?: MastraEngine;\n private vectors?: Record<string, MastraVector>;\n private tools: AllTools<MastraTools, TIntegrations>;\n private agents: Map<string, Agent<MastraTools, TIntegrations>>;\n llm: LLM<\n MastraTools,\n TIntegrations,\n keyof AllTools<MastraTools, TIntegrations>\n >;\n private integrations: Map<string, Integration>;\n private logger: Map<RegisteredLogger, Logger>;\n private syncs: TSyncs;\n private workflows: Map<string, Workflow> = new Map();\n\n constructor(config: {\n tools?: MastraTools;\n syncs?: TSyncs;\n agents?: Agent<MastraTools, TIntegrations>[];\n integrations?: TIntegrations;\n engine?: MastraEngine;\n vectors?: Record<string, MastraVector>;\n logger?: Logger;\n workflows?: Workflow[];\n }) {\n this.logger = new Map();\n\n let logger: Logger = createLogger({ type: 'CONSOLE' });\n\n if (config.logger) {\n logger = config.logger;\n }\n\n this.setLogger({ key: 'AGENT', logger });\n this.setLogger({ key: 'WORKFLOW', logger });\n\n this.integrations = new Map();\n\n config.integrations?.forEach((integration) => {\n if (this.integrations.has(integration.name)) {\n throw new Error(\n `Integration with name ${integration.name} already exists`\n );\n }\n this.integrations.set(integration.name, integration);\n });\n\n const integrationTools =\n config.integrations?.reduce(\n (acc, integration) => ({\n ...acc,\n ...integration.tools,\n }),\n {}\n ) || {};\n\n const configuredTools = config?.tools || {};\n\n // Merge custom tools with integration tools\n const allTools = {\n ...configuredTools,\n ...integrationTools,\n } as MastraTools;\n\n // Hydrate tools with integration tools\n const hydratedTools = Object.entries(allTools ?? {}).reduce<\n Record<string, ToolApi>\n >((memo, [key, val]) => {\n memo[key] = {\n ...val,\n executor: (params) => {\n return val.executor({\n ...params,\n getIntegration: <I>(name: TIntegrations[number]['name']) =>\n this.getIntegration(name) as I,\n agents: this.agents,\n llm: this.llm,\n engine: this.engine,\n });\n },\n };\n return memo;\n }, {});\n\n this.tools = hydratedTools as AllTools<MastraTools, TIntegrations>;\n this.agents = new Map();\n\n this.llm = new LLM<\n MastraTools,\n TIntegrations,\n keyof AllTools<MastraTools, TIntegrations>\n >();\n this.llm.__setTools(this.tools);\n\n config.agents?.forEach((agent) => {\n if (this.agents.has(agent.name)) {\n throw new Error(`Agent with name ${agent.name} already exists`);\n }\n this.agents.set(agent.name, agent);\n agent.__setTools(this.tools);\n const agentLogger = this.getLogger('AGENT');\n if (agentLogger) {\n agent.__setLogger(agentLogger);\n }\n });\n\n config.workflows?.forEach((workflow) => {\n if (this.workflows.has(workflow.name)) {\n throw new Error(`Workflow with name ${workflow.name} already exists`);\n }\n this.workflows.set(workflow.name, workflow);\n });\n\n if (config.syncs && !config.engine) {\n throw new Error('Engine is required to run syncs');\n }\n\n this.syncs = (config.syncs || {}) as TSyncs;\n\n if (config.engine) {\n this.engine = config.engine;\n }\n\n if (config.vectors) {\n this.vectors = config.vectors;\n }\n }\n public async sync<K extends keyof TSyncs>(\n key: K,\n params: TSyncs[K] extends SyncConfig<any, any, infer P> ? P : never\n ): Promise<void> {\n if (!this.engine) {\n throw new Error(`Sync function ${key as string} not found`);\n }\n\n const syncFn = this.syncs?.[key];\n\n if (!syncFn) {\n throw new Error(`Sync function ${key as string} not found`);\n }\n\n await syncFn({\n tools: this.tools,\n params,\n engine: this.engine,\n agents: this.agents,\n vectors: this.vectors,\n llm: this.llm,\n });\n }\n\n public getAgent(name: string) {\n const agent = this.agents.get(name);\n if (!agent) {\n throw new Error(`Agent with name ${name} not found`);\n }\n return agent;\n }\n\n public getIntegration<I extends TIntegrations[number]['name']>(name: I) {\n const stringifiedName = String(name);\n const integration = this.integrations.get(stringifiedName.toUpperCase());\n\n if (!integration) {\n throw new Error(`Integration with name ${stringifiedName} not found`);\n }\n return integration as Extract<TIntegrations[number], { name: I }>;\n }\n\n public getTool(name: keyof MastraTools) {\n const tool = this.tools[name];\n if (!tool) {\n throw new Error(`Tool with name ${String(name)} not found`);\n }\n\n const toolSchema = tool.schema as MastraTools[typeof name]['schema'];\n\n return {\n ...tool,\n execute: async (params: z.infer<typeof toolSchema>) => {\n return tool.executor({\n data: params,\n getIntegration: <I>(name: TIntegrations[number]['name']) =>\n this.getIntegration(name) as I,\n agents: this.agents,\n llm: this.llm,\n engine: this.engine,\n });\n },\n };\n }\n\n public availableIntegrations() {\n return Array.from(this.integrations.entries()).map(\n ([name, integration]) => {\n return {\n name,\n integration,\n };\n }\n );\n }\n\n public getTools() {\n return this.tools;\n }\n\n public setLogger({ key, logger }: { key: RegisteredLogger; logger: Logger }) {\n this.logger.set(key, logger);\n }\n\n public getLogger(key: RegisteredLogger) {\n return this.logger.get(key);\n }\n}\n","export function isErrorEvent(stateEvent: any): stateEvent is {\n type: `xstate.error.actor.${string}`;\n error: Error;\n} {\n return stateEvent.type.startsWith('xstate.error.actor.');\n}\n\nexport function isTransitionEvent(stateEvent: any): stateEvent is {\n type: `xstate.done.actor.${string}`;\n output?: unknown;\n} {\n return (\n stateEvent.type.startsWith('xstate.done.actor.')\n );\n}\n","import sift from 'sift';\nimport { Logger, RegisteredLogger, LogLevel } from '../logger';\nimport { setup, createActor, assign, fromPromise } from 'xstate';\nimport { z } from 'zod';\n\nimport get from 'lodash/get';\n\nimport {\n StepConfig,\n WorkflowLogMessage,\n WorkflowContext,\n StepId,\n VariableReference,\n StepDefinition,\n StepCondition,\n ValidationError,\n WorkflowEvent,\n WorkflowActions,\n WorkflowActors,\n ResolverFunctionOutput,\n ResolverFunctionInput,\n WorkflowState,\n} from './types';\nimport { isErrorEvent, isTransitionEvent } from './utils';\n\nexport class Workflow<\n TTrigger = any,\n TSteps extends Record<string, StepDefinition<any, any>> = Record<\n string,\n StepDefinition<any, any>\n >\n> {\n name: string;\n #logger?: Logger<WorkflowLogMessage>;\n triggerSchema?: z.ZodType<any>;\n\n #steps: StepConfig<z.ZodType<any>>[] = [];\n /** XState machine instance that orchestrates the workflow execution */\n #machine!: ReturnType<typeof this.initializeMachine>;\n /** XState actor instance that manages the workflow execution */\n #actor: ReturnType<\n typeof createActor<ReturnType<typeof this.initializeMachine>>\n > | null = null;\n\n /**\n * Creates a new Workflow instance\n * @param name - Identifier for the workflow (not necessarily unique)\n * @param logger - Optional logger instance\n */\n constructor(name: string, logger?: Logger<WorkflowLogMessage>) {\n this.name = name;\n this.#logger = logger;\n this.initializeMachine();\n }\n\n /**\n * Internal logging helper that formats and sends logs to the configured logger\n * @param level - Severity level of the log\n * @param message - Main log message\n * @param data - Optional data to include in the log\n * @param stepId - Optional ID of the step that generated the log\n */\n async #log(level: LogLevel, message: string, data?: any, stepId?: StepId) {\n if (!this.#logger) return;\n\n const logMessage: WorkflowLogMessage = {\n type: RegisteredLogger.WORKFLOW,\n message,\n workflowName: this.name,\n destinationPath: `workflows/${this.name}`,\n stepId,\n data,\n };\n\n const logMethod = level.toLowerCase() as keyof Logger<WorkflowLogMessage>;\n\n await this.#logger[logMethod]?.(logMessage);\n }\n\n /**\n * Initializes the XState machine for the workflow\n *\n * Registers the machine's types, actions, actors, initial context, entry actions, initial state, and states\n * @returns The initialized machine\n */\n private initializeMachine() {\n const machine = setup({\n types: {} as {\n context: WorkflowContext;\n input: WorkflowContext;\n events: WorkflowEvent;\n actions: WorkflowActions;\n actors: WorkflowActors;\n },\n actions: {\n updateStepResult: assign({\n stepResults: ({ context, event }) => {\n if (!isTransitionEvent(event)) return context.stepResults;\n\n const stepId = (event.output as ResolverFunctionOutput)\n ?.stepId as StepId;\n if (!stepId) return context.stepResults;\n\n this.#log(\n LogLevel.INFO,\n `Step ${stepId} completed`,\n event.output,\n stepId\n );\n\n const result = (event.output as ResolverFunctionOutput)?.result;\n if (result !== undefined) {\n const newResults = {\n ...context.stepResults,\n [stepId]: result,\n };\n\n // Get the step configuration\n const step = this.#steps.find((s) => s.id === stepId);\n\n // Evaluate transitions and send events\n if (step?.transitions) {\n const fullContext = { ...context, stepResults: newResults };\n\n let hasMatchingCondition = false;\n\n this.#log(\n LogLevel.DEBUG,\n 'Evaluating transitions with context:',\n fullContext\n );\n\n Object.entries(step.transitions).forEach(\n ([targetId, config]) => {\n this.#log(\n LogLevel.DEBUG,\n `Checking transition to: ${targetId}`\n );\n this.#log(\n LogLevel.DEBUG,\n `With condition: ${config.condition}`\n );\n if (\n !config.condition ||\n this.#evaluateCondition(config.condition, fullContext)\n ) {\n hasMatchingCondition = true;\n this.#log(\n LogLevel.DEBUG,\n 'Condition passed, sending transition to:',\n targetId\n );\n Promise.resolve().then(() => {\n if (this.#actor) {\n this.#actor.send({ type: `TRANSITION_${targetId}` });\n }\n });\n }\n }\n );\n // If no conditions matched, send the NO_MATCHING_CONDITIONS event\n if (!hasMatchingCondition) {\n Promise.resolve().then(() => {\n if (this.#actor) {\n this.#actor.send({ type: 'NO_MATCHING_CONDITIONS' });\n }\n });\n }\n }\n\n return newResults;\n }\n\n return context.stepResults;\n },\n }),\n setError: assign({\n error: ({ event }) => {\n if (!isErrorEvent(event)) return null;\n this.#log(LogLevel.ERROR, `Workflow error`, event.error);\n return event.error;\n },\n }),\n initializeTriggerData: assign({\n triggerData: ({ context }) => {\n this.#log(LogLevel.INFO, 'Workflow started', context?.triggerData);\n return context?.triggerData;\n },\n }),\n },\n actors: {\n resolverFunction: fromPromise(\n async ({ input }: { input: ResolverFunctionInput }) => {\n const { step, context } = input;\n const resolvedData = this.#resolveVariables(step, context);\n const result = await step.handler(resolvedData);\n\n return {\n stepId: step.id,\n result,\n };\n }\n ),\n },\n }).createMachine({\n id: this.name,\n initial: this.#steps[0]?.id || 'idle',\n context: ({ input }) => ({\n ...input,\n stepResults: {},\n error: null,\n }),\n entry: ['initializeTriggerData'],\n states: this.#buildStateHierarchy(),\n });\n\n this.#machine = machine;\n return machine;\n }\n\n /**\n * Rebuilds the machine with the current steps configuration and validates the workflow\n *\n * This is the last step of a workflow builder method chain\n * @throws Error if validation fails\n */\n commit() {\n this.#validateWorkflow();\n this.initializeMachine();\n }\n\n /**\n * Builds the state hierarchy for the workflow\n * @returns Object representing the state hierarchy\n */\n #buildStateHierarchy(): WorkflowState {\n const stateHierarchy: any = {\n idle: {},\n success: { type: 'final' },\n failure: { type: 'final' },\n };\n\n // Helper to build nested state structure\n const buildState = (currentStepId: StepId, visited: Set<StepId>) => {\n if (visited.has(currentStepId)) return null;\n visited.add(currentStepId);\n\n const currentStep = this.#steps.find((s) => s.id === currentStepId);\n if (!currentStep) return null;\n\n const state: WorkflowState[typeof currentStepId] = {\n invoke: {\n src: 'resolverFunction',\n input: ({ context }) => ({\n step: currentStep,\n context,\n }),\n onDone: {\n actions: ['updateStepResult'],\n // If no transitions, go to success state\n target: currentStep.transitions ? undefined : 'success',\n },\n onError: {\n target: 'failure',\n actions: ['setError'],\n },\n },\n on: {\n // Default transition will trigger if no conditions match\n NO_MATCHING_CONDITIONS: {\n target: 'failure',\n actions: assign({\n error: () => {\n console.log('No matching transition conditions');\n return new Error('No matching transition conditions');\n },\n }),\n },\n },\n };\n\n // Handle transitions\n if (currentStep.transitions) {\n Object.entries(currentStep.transitions).forEach(\n ([targetId, config]) => {\n // Create flat state structure with transitions\n state.on[`TRANSITION_${targetId}`] = {\n target: targetId,\n guard: ({ context }) =>\n !config.condition ||\n this.#evaluateCondition(config.condition, context),\n };\n }\n );\n }\n\n return state;\n };\n\n // Build flat state structure starting from first step\n const visited = new Set<StepId>();\n this.#steps.forEach((step) => {\n const state = buildState(step.id, visited);\n if (state) {\n stateHierarchy[step.id] = state;\n }\n });\n\n return stateHierarchy;\n }\n\n /**\n * Sets the schema for validating trigger data\n * @param schema - Zod schema for trigger data validation\n * @returns this instance for method chaining\n */\n setTriggerSchema(schema: z.ZodType<any>) {\n this.triggerSchema = schema;\n return this;\n }\n\n /**\n * Type guard to check if a value is a valid VariableReference\n * @param value - Value to check\n * @returns True if value is a VariableReference\n */\n #isVariableReference(value: any): value is VariableReference {\n return typeof value === 'object' && 'stepId' in value && 'path' in value;\n }\n\n /**\n * Creates a validated step ID, ensuring uniqueness within the workflow\n * @param id - Proposed step ID\n * @returns The validated and branded step ID\n * @throws Error if ID is invalid or duplicate\n */\n #createStepId(id: string): StepId {\n // Check for duplicates\n if (this.#steps.some((step) => step.id === id)) {\n throw new Error(\n `Step with ID \"${id}\" already exists in workflow \"${this.name}\"`\n );\n }\n\n return id as StepId;\n }\n\n /**\n * Adds a new step to the workflow\n * @param id - Unique identifier for the step\n * @param config - Step configuration including handler, schema, variables, and payload\n * @returns this instance for method chaining (builder pattern baybyyyy)\n * @throws Error if step ID is duplicate or variable resolution fails\n */\n addStep<\n TSchema extends z.ZodType<any>,\n TOutput = any,\n TTransitions extends string = string\n >(\n id: string,\n config: StepDefinition<TSchema, TOutput, TTransitions>\n ): Workflow<TTrigger, TSteps & Record<typeof id, typeof config>> {\n const stepId = this.#createStepId(id);\n const {\n action,\n inputSchema,\n variables = {},\n payload = {},\n transitions,\n } = config;\n\n // Validate transitions reference existing steps\n if (transitions) {\n Object.keys(transitions).forEach((targetId) => {\n // Skip validation for steps that will be added later\n if (!this.#steps.some((s) => s.id === targetId)) {\n this.#log(\n LogLevel.DEBUG,\n `Step ${targetId} not found yet, will be validated when workflow starts`\n );\n }\n });\n }\n\n const requiredData: Record<string, VariableReference> = {};\n\n // Add valid variables to requiredData\n for (const [key, variable] of Object.entries(variables)) {\n if (variable && this.#isVariableReference(variable)) {\n requiredData[key as string] = variable;\n }\n }\n\n // Create step config\n const stepConfig: StepConfig<z.infer<TSchema>> = {\n id: stepId,\n handler: async (data: z.infer<TSchema>) => {\n // Merge static payload with dynamically resolved variables\n // Variables take precedence over payload values\n const mergedData = {\n ...payload,\n ...data,\n } as z.infer<TSchema>;\n\n // Validate complete input data\n const validatedData = inputSchema\n ? inputSchema.parse(mergedData)\n : mergedData;\n\n return action(validatedData);\n },\n inputSchema,\n requiredData,\n transitions,\n };\n\n this.#steps.push(stepConfig);\n return this;\n }\n\n /**\n * Resolves variables for a step from trigger data or previous step results\n * @param stepConfig - Configuration of the step needing variable resolution\n * @param context - Current workflow context containing results and trigger data\n * @returns Object containing resolved variable values\n * @throws Error if variable resolution fails\n */\n #resolveVariables(\n stepConfig: StepConfig,\n context: WorkflowContext\n ): Record<string, any> {\n const resolvedData: Record<string, any> = {};\n\n for (const [key, variable] of Object.entries(stepConfig.requiredData)) {\n // Check if variable comes from trigger data or a previous step's result\n const sourceData =\n variable.stepId === 'trigger'\n ? context.triggerData\n : context.stepResults[variable.stepId];\n\n if (!sourceData && variable.stepId !== 'trigger') {\n throw new Error(\n `Cannot resolve variable: Step ${variable.stepId} has not been executed yet`\n );\n }\n\n // If path is empty or '.', return the entire source data\n const value =\n variable.path === '' || variable.path === '.'\n ? sourceData[key]\n : get(sourceData, variable.path);\n\n if (value === undefined) {\n throw new Error(\n `Cannot resolve path \"${variable.path}\" from ${variable.stepId}`\n );\n }\n\n resolvedData[key] = value;\n }\n\n return resolvedData;\n }\n\n /**\n * Executes the workflow with the given trigger data\n * @param triggerData - Initial data to start the workflow with\n * @returns Promise resolving to workflow results or rejecting with error\n * @throws Error if trigger schema validation fails\n */\n async executeWorkflow<\n TSchema = unknown,\n TTrigger = this['triggerSchema'] extends z.ZodSchema<infer T> ? T : TSchema\n >(\n triggerData?: TTrigger\n ): Promise<{\n triggerData?: TTrigger;\n results: Record<string, unknown>;\n }> {\n await this.#log(LogLevel.INFO, 'Executing workflow', { triggerData });\n\n if (this.triggerSchema) {\n try {\n this.triggerSchema.parse(triggerData);\n await this.#log(LogLevel.DEBUG, 'Trigger schema validation passed');\n } catch (error) {\n await this.#log(LogLevel.ERROR, 'Trigger schema validation failed', {\n error,\n });\n throw error;\n }\n }\n\n this.#actor = createActor(this.#machine, {\n input: {\n error: null,\n stepResults: {},\n triggerData: triggerData || {},\n },\n });\n\n this.#actor.start();\n\n return new Promise((resolve, reject) => {\n if (!this.#actor) {\n reject(new Error('Actor not initialized'));\n return;\n }\n\n this.#actor.subscribe((state) => {\n if (state.matches('success')) {\n this.#log(LogLevel.INFO, 'Workflow completed successfully', {\n results: state.context.stepResults,\n });\n this.#cleanup();\n resolve({\n triggerData,\n results: state.context.stepResults,\n });\n } else if (state.matches('failure')) {\n this.#log(LogLevel.ERROR, 'Workflow failed', {\n error: state.context.error?.message,\n });\n this.#cleanup();\n reject({ error: state.context.error?.message });\n }\n });\n });\n }\n\n /**\n * Cleans up the actor instance\n */\n #cleanup() {\n if (this.#actor) {\n this.#actor.stop();\n this.#actor = null;\n }\n }\n\n /**\n * Evaluates a single condition against workflow context\n */\n #evaluateCondition(\n condition: StepCondition,\n context: WorkflowContext\n ): boolean {\n let andBranchResult = true;\n let baseResult = true;\n let orBranchResult = true;\n\n // Base condition\n if ('ref' in condition) {\n const { ref, query } = condition;\n const sourceData =\n ref.stepId === 'trigger'\n ? context.triggerData\n : context.stepResults[ref.stepId];\n\n if (!sourceData) {\n throw new Error(\n `Cannot evaluate condition: Step ${ref.stepId} has not been executed yet`\n );\n }\n\n const value = get(sourceData, ref.path);\n baseResult = sift(query)(value);\n }\n\n // AND condition\n if ('and' in condition) {\n andBranchResult = condition.and.every((cond) =>\n this.#evaluateCondition(cond, context)\n );\n }\n\n // OR condition\n if ('or' in condition) {\n orBranchResult = condition.or.some((cond) =>\n this.#evaluateCondition(cond, context)\n );\n }\n\n const finalResult = baseResult && andBranchResult && orBranchResult;\n return finalResult;\n }\n\n /**\n * Validates the workflow for circular dependencies, terminal paths, and unreachable steps\n * @throws Error if validation fails\n */\n #validateWorkflow(): void {\n const errors: ValidationError[] = [\n ...this.#detectCircularDependencies(),\n ...this.#validateTerminalPaths(),\n ...this.#detectUnreachableSteps(),\n ];\n\n if (errors.length > 0) {\n const errorMessages = errors.map(\n (error) =>\n `[${error.type}] ${error.message}${\n error.details.path\n ? ` (Path: ${error.details.path.join(' → ')})`\n : ''\n }${error.details.stepId ? ` (Step: ${error.details.stepId})` : ''}`\n );\n throw new Error(\n `Workflow validation failed:\\n${errorMessages.join('\\n')}`\n );\n }\n }\n\n /**\n * Detects circular dependencies in the workflow\n * @returns Array of ValidationError objects\n */\n #detectCircularDependencies(): ValidationError[] {\n const errors: ValidationError[] = [];\n const stack: StepId[] = [];\n\n const dfs = (stepId: StepId) => {\n if (stack.includes(stepId)) {\n // Found a cycle\n const cycleStartIndex = stack.indexOf(stepId);\n const cyclePath = [...stack.slice(cycleStartIndex), stepId];\n errors.push({\n type: 'circular_dependency',\n message: 'Circular dependency detected in workflow',\n details: { path: cyclePath },\n });\n return;\n }\n\n stack.push(stepId);\n\n const step = this.#steps.find((s) => s.id === stepId);\n if (step?.transitions) {\n Object.keys(step.transitions).forEach((targetId) => {\n dfs(targetId as StepId);\n });\n }\n\n stack.pop();\n };\n\n // Start DFS from first step\n if (this.#steps.length > 0) {\n dfs(this.#steps[0].id);\n }\n\n return errors;\n }\n\n /**\n * Validates the workflow for terminal paths\n * @returns Array of ValidationError objects\n */\n #validateTerminalPaths(): ValidationError[] {\n const errors: ValidationError[] = [];\n const visited = new Set<StepId>();\n const hasTerminalPath = new Set<StepId>();\n\n const dfs = (stepId: StepId, path: StepId[] = []): boolean => {\n if (hasTerminalPath.has(stepId)) return true;\n if (visited.has(stepId) && !hasTerminalPath.has(stepId)) return false;\n\n visited.add(stepId);\n\n const step = this.#steps.find((s) => s.id === stepId);\n if (!step) return false;\n\n // Terminal step\n if (!step.transitions) {\n hasTerminalPath.add(stepId);\n return true;\n }\n\n const transitions = Object.keys(step.transitions);\n if (transitions.length === 0) {\n hasTerminalPath.add(stepId);\n return true;\n }\n\n // Check if any transition leads to a terminal state\n const leadsToTerminal = transitions.some(\n (targetId) =>\n !path.includes(targetId as StepId) &&\n dfs(targetId as StepId, [...path, stepId])\n );\n\n if (leadsToTerminal) {\n hasTerminalPath.add(stepId);\n } else {\n errors.push({\n type: 'no_terminal_path',\n message: 'No path to terminal state found',\n details: {\n stepId,\n path: [...path, stepId],\n },\n });\n }\n\n return leadsToTerminal;\n };\n\n // Start from first step\n if (this.#steps.length > 0) {\n dfs(this.#steps[0].id);\n }\n\n return errors;\n }\n\n /**\n * Detects unreachable steps in the workflow\n * @returns Array of ValidationError objects\n */\n #detectUnreachableSteps(): ValidationError[] {\n const errors: ValidationError[] = [];\n const reachableSteps = new Set<StepId>();\n\n const dfs = (stepId: StepId) => {\n if (reachableSteps.has(stepId)) return;\n\n reachableSteps.add(stepId);\n const step = this.#steps.find((s) => s.id === stepId);\n\n if (step?.transitions) {\n Object.keys(step.transitions).forEach((targetId) => {\n dfs(targetId as StepId);\n });\n }\n };\n\n // Start from first step\n if (this.#steps.length > 0) {\n dfs(this.#steps[0].id);\n }\n\n // Find unreachable steps\n this.#steps.forEach((step) => {\n if (!reachableSteps.has(step.id)) {\n errors.push({\n type: 'unreachable_step',\n message: 'Step is not reachable from the initial step',\n details: { stepId: step.id },\n });\n }\n });\n\n return errors;\n }\n}\n"],"names":["RegisteredLogger","AGENT","WORKFLOW","LogLevel","DEBUG","INFO","WARN","ERROR","BaseLogger","level","_proto","prototype","debug","message","_len","arguments","length","args","Array","_key","log","apply","concat","info","_len2","_key2","warn","_len3","_key3","error","_len4","_key4","formatMessage","JSON","stringify","formatLogEntry","timestamp","Date","toISOString","ConsoleLogger","_BaseLogger2","call","_inheritsLoose","_proto2","_console","logEntry","_len5","_key5","console","_dirPath","_classPrivateFieldLooseKey","FileLogger","_BaseLogger3","dirPath","_this","Object","defineProperty","writable","value","_classPrivateFieldLooseBase","_proto3","Error","fullPath","path","join","destinationPath","ensureDirectoryExists","writeLogToFile","existsSync","mkdirSync","recursive","_extends","createdAt","logs","parse","readFileSync","push","writeFileSync","_redis","_key6","UpstashRedisLogger","_BaseLogger4","redis","key","_this2","_proto4","_log","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","lpush","stop","_x","_x2","getLogs","_getLogs","_callee2","_callee2$","_context2","abrupt","lrange","cleanup","_cleanup","_callee3","_callee3$","_context3","MultiLogger","loggers","_proto5","_debug","_callee4","_len6","_key7","_args4","_callee4$","_context4","Promise","all","map","logger","_x3","_info","_callee5","_len7","_key8","_args5","_callee5$","_context5","_x4","_warn","_callee6","_len8","_key9","_args6","_callee6$","_context6","_x5","_error","_callee7","_len9","_key10","_args7","_callee7$","_context7","_x6","_cleanup2","_callee9","_callee9$","_context9","_ref","_callee8","_callee8$","_context8","_x7","createLogger","config","type","Redis","url","token","createMultiLogger","delay","ms","resolve","setTimeout","_tools","LLM","__setTools","tools","getModelType","model","providerToType","OPEN_AI_VERCEL","ANTHROPIC_VERCEL","GROQ_VERCEL","PERPLEXITY_VERCEL","FIREWORKS_VERCEL","provider","createOpenAICompatibleModel","baseURL","apiKey","defaultModelName","modelName","client","createOpenAI","createModelDef","modelDef","name","openai","process","env","OPENAI_API_KEY","structuredOutputs","anthropic","createAnthropic","ANTHROPIC_API_KEY","_process$env$GROQ_API","GROQ_API_KEY","_process$env$PERPLEXI","PERPLEXITY_API_KEY","_process$env$FIREWORK","FIREWORKS_API_KEY","getParams","_ref2","resultTool","toolsConverted","entries","reduce","memo","_ref3","val","tool","answerTool","answer","toolChoice","convertTools","enabledTools","converted","k","enabled","description","parameters","z","object","data","schema","execute","executor","text","_text","_ref4","messages","_onStepFinish","_ref4$maxSteps","maxSteps","params","argsForExecute","onStepFinish","_onStepFinish2","props","_props$response","_props$response2","response","headers","parseInt","generateText","sent","stream","_stream","_ref5","_this3","_onStepFinish3","_onFinish","_ref5$maxSteps","onFinish","_onStepFinish4","_props$response3","_props$response4","_onFinish2","streamText","Agent","llm","instructions","__setLogger","_ref$maxSteps","messageObjects","content","role","_ref2$maxSteps","createTool","opts","Integration","authType","getApiClient","_getApiClient","_generateIntegrationTools","_this$baseClient","baseClient","clientMethods","_objectWithoutPropertiesLoose","_excluded","schemas","toolSchemas","documentations","toolDocumentations","keys","acc","_documentations$key","_documentations$key2","_extends2","comment","doc","fallbackComment","label","documentation","_executor","_createClass","get","PropertyType","FilterOperators","FieldTypePrimitiveMap","_FieldTypePrimitiveMa","BADGE_LIST","CHECKBOX","BOOLEAN","NUMBER","FLOAT","JSON_ARRAY","JSON_OBJECT","CURRENCY","DATE","LONG_TEXT","MULTI_SELECT","PHONE","SINGLE_LINE_TEXT","SINGLE_SELECT","URL","USER","CONTACT","COMPANY","COMPOSITE","PERSON","ENRICHMENT","splitAndStripQuotes","str","pattern","parts","split","cleanedParts","part","trim","replace","transformFilterValueArray","transformFilterValueBoolean","getJSONField","column","primitiveType","buildQueryString","filterQueryString","sortQueryString","filterQuerySchema","is","array","string","or","optional","eq","not_eq","contains","not_contains","gt","gte","lt","lte","not_in","op","set","transform","not_set","sortQuerySchema","MastraEngine","MastraVector","Mastra","_config$integrations","_config$integrations2","_config$agents","_config$workflows","engine","vectors","agents","integrations","syncs","workflows","Map","setLogger","forEach","integration","has","integrationTools","configuredTools","allTools","hydratedTools","getIntegration","agent","agentLogger","getLogger","workflow","sync","_sync","_this$syncs","syncFn","getAgent","stringifiedName","String","toUpperCase","getTool","_execute","availableIntegrations","from","getTools","isErrorEvent","stateEvent","startsWith","isTransitionEvent","_logger","_steps","_machine","_actor","_buildStateHierarchy","_isVariableReference","_createStepId","_resolveVariables","_evaluateCondition","_validateWorkflow","_detectCircularDependencies","_validateTerminalPaths","_detectUnreachableSteps","Workflow","_detectUnreachableSteps2","_validateTerminalPaths2","_detectCircularDependencies2","_validateWorkflow2","_evaluateCondition2","_resolveVariables2","_createStepId2","_isVariableReference2","_buildStateHierarchy2","_log2","triggerSchema","initializeMachine","_classPrivateFieldLoo","machine","setup","types","actions","updateStepResult","assign","stepResults","_event$output","_event$output2","context","event","stepId","output","result","undefined","newResults","step","find","s","id","transitions","fullContext","hasMatchingCondition","targetId","condition","then","send","setError","initializeTriggerData","triggerData","actors","resolverFunction","fromPromise","_ref6","input","resolvedData","handler","createMachine","initial","_ref7","entry","states","commit","setTriggerSchema","addStep","action","inputSchema","_config$variables","variables","_config$payload","payload","some","requiredData","_i","_Object$entries","_Object$entries$_i","variable","stepConfig","_handler","mergedData","validatedData","executeWorkflow","_executeWorkflow","t0","createActor","start","reject","subscribe","state","matches","results","_state$context$error","_state$context$error2","_log3","_classPrivateFieldLoo2","_classPrivateFieldLoo3","logMessage","logMethod","workflowName","toLowerCase","_this4","stateHierarchy","idle","success","failure","buildState","currentStepId","visited","add","currentStep","invoke","src","_ref8","onDone","target","onError","on","NO_MATCHING_CONDITIONS","_ref9","guard","_ref10","Set","_i2","_Object$entries2","_Object$entries2$_i","sourceData","_this5","andBranchResult","baseResult","orBranchResult","ref","query","sift","and","every","cond","finalResult","errors","errorMessages","details","_this6","stack","dfs","includes","cycleStartIndex","indexOf","cyclePath","slice","pop","_this7","hasTerminalPath","leadsToTerminal","_this8","reachableSteps"],"mappings":"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"}
1
+ {"version":3,"file":"core.cjs.development.js","sources":["../src/logger/index.ts","../src/utils.ts","../src/llm/index.ts","../src/agent/index.ts","../src/tools/index.ts","../src/integration/index.ts","../src/engine/types.ts","../src/engine/utils.ts","../src/engine/schema.ts","../src/engine/index.ts","../src/vector/index.ts","../src/mastra/index.ts","../src/workflows/utils.ts","../src/workflows/main.ts"],"sourcesContent":["import { Redis } from '@upstash/redis';\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';\nimport path from 'path';\n\n// Constants and Types\nexport const RegisteredLogger = {\n AGENT: 'AGENT',\n WORKFLOW: 'WORKFLOW',\n} as const;\n\nexport type RegisteredLogger =\n (typeof RegisteredLogger)[keyof typeof RegisteredLogger];\n\nexport const LogLevel = {\n DEBUG: 'DEBUG',\n INFO: 'INFO',\n WARN: 'WARN',\n ERROR: 'ERROR',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n\n// Base Interfaces\nexport interface BaseLogMessage {\n message: string;\n destinationPath: string;\n type: RegisteredLogger;\n}\n\nexport interface Logger<T extends BaseLogMessage = BaseLogMessage> {\n debug(message: T | string, ...args: any[]): void | Promise<void>;\n info(message: T | string, ...args: any[]): void | Promise<void>;\n warn(message: T | string, ...args: any[]): void | Promise<void>;\n error(message: T | string, ...args: any[]): void | Promise<void>;\n cleanup?(): Promise<void>;\n}\n\n// Configuration Types\nexport type LoggerConfig =\n | { type: 'CONSOLE'; level?: LogLevel }\n | { type: 'FILE'; level?: LogLevel; dirPath?: string }\n | {\n type: 'UPSTASH';\n level?: LogLevel;\n url: string;\n token: string;\n key?: string;\n };\n\n// Abstract Base Logger\nexport abstract class BaseLogger<T extends BaseLogMessage = BaseLogMessage>\n implements Logger<T>\n{\n protected level: LogLevel;\n\n constructor(level: LogLevel = LogLevel.INFO) {\n this.level = level;\n }\n\n abstract log(\n level: LogLevel,\n message: T | string,\n ...args: any[]\n ): void | Promise<void>;\n\n debug(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.DEBUG) {\n return this.log(LogLevel.DEBUG, message, ...args);\n }\n }\n\n info(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.INFO) {\n return this.log(LogLevel.INFO, message, ...args);\n }\n }\n\n warn(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.WARN) {\n return this.log(LogLevel.WARN, message, ...args);\n }\n }\n\n error(message: T | string, ...args: any[]): void | Promise<void> {\n if (this.level <= LogLevel.ERROR) {\n return this.log(LogLevel.ERROR, message, ...args);\n }\n }\n\n protected formatMessage(message: T | string): string {\n if (typeof message === 'string') {\n return message;\n }\n return JSON.stringify(message);\n }\n\n protected formatLogEntry(level: LogLevel, message: T | string): any {\n return {\n timestamp: new Date().toISOString(),\n level: LogLevel[level],\n message: this.formatMessage(message),\n };\n }\n}\n\n// Console Logger Implementation\nclass ConsoleLogger<\n T extends BaseLogMessage = BaseLogMessage\n> extends BaseLogger<T> {\n constructor(level?: LogLevel) {\n super(level ?? LogLevel.INFO);\n }\n\n log(level: LogLevel, message: T | string, ...args: any[]): void {\n const logEntry = this.formatLogEntry(level, message);\n console.log(\n `[${logEntry.timestamp}] [${logEntry.level}] ${logEntry.message}`,\n ...args\n );\n }\n}\n\n// File Logger Implementation\nclass FileLogger<\n T extends BaseLogMessage = BaseLogMessage\n> extends BaseLogger<T> {\n #dirPath: string;\n\n constructor(dirPath: string = 'logs', level?: LogLevel) {\n super(level ?? LogLevel.INFO);\n this.#dirPath = dirPath;\n }\n\n log(level: LogLevel, message: T): void {\n if (typeof message === 'string') {\n throw new Error('FileLogger requires a BaseLogMessage object');\n }\n\n const fullPath = path.join(\n this.#dirPath,\n `${message.destinationPath}.json`\n );\n\n this.ensureDirectoryExists();\n this.writeLogToFile(fullPath, level, message);\n }\n\n private ensureDirectoryExists(): void {\n if (!existsSync(this.#dirPath)) {\n mkdirSync(this.#dirPath, { recursive: true });\n }\n }\n\n private writeLogToFile(fullPath: string, level: LogLevel, message: T): void {\n const logEntry = {\n ...message,\n level: LogLevel[level],\n createdAt: new Date(),\n };\n\n let logs = [];\n if (existsSync(fullPath)) {\n logs = JSON.parse(readFileSync(fullPath, 'utf-8'));\n }\n\n logs.push(logEntry);\n writeFileSync(fullPath, JSON.stringify(logs, null, 2));\n }\n}\n\n// Upstash Redis Logger Implementation\nclass UpstashRedisLogger<\n T extends BaseLogMessage = BaseLogMessage\n> extends BaseLogger<T> {\n #redis: Redis;\n #key: string;\n\n constructor(redis: Redis, key: string = 'logs', level?: LogLevel) {\n super(level ?? LogLevel.INFO);\n this.#redis = redis;\n this.#key = key;\n }\n\n async log(level: LogLevel, message: T): Promise<void> {\n if (typeof message === 'string') {\n throw new Error('UpstashRedisLogger requires a BaseLogMessage object');\n }\n\n const logEntry = {\n ...message,\n level: LogLevel[level],\n createdAt: new Date(),\n };\n\n await this.#redis.lpush(this.#key, JSON.stringify(logEntry));\n }\n\n async getLogs(): Promise<string[]> {\n return this.#redis.lrange(this.#key, 0, -1);\n }\n\n async cleanup(): Promise<void> {\n // Cleanup Redis connection if needed\n }\n}\n\n// Multi Logger Implementation\nexport class MultiLogger<T extends BaseLogMessage = BaseLogMessage>\n implements Logger<T>\n{\n private loggers: Logger<T>[];\n\n constructor(loggers: Logger<T>[]) {\n this.loggers = loggers;\n }\n\n async debug(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.debug(message, ...args))\n );\n }\n\n async info(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.info(message, ...args))\n );\n }\n\n async warn(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.warn(message, ...args))\n );\n }\n\n async error(message: T | string, ...args: any[]): Promise<void> {\n await Promise.all(\n this.loggers.map((logger) => logger.error(message, ...args))\n );\n }\n\n async cleanup(): Promise<void> {\n await Promise.all(\n this.loggers.map(async (logger) => {\n if (logger.cleanup) {\n await logger.cleanup();\n }\n })\n );\n }\n}\n\n// Factory function for built-in loggers\n// In createLogger function\nexport function createLogger<T extends BaseLogMessage = BaseLogMessage>(\n config: LoggerConfig\n): Logger<T> {\n switch (config.type) {\n case 'CONSOLE':\n return new ConsoleLogger<T>(config.level);\n\n case 'FILE':\n return new FileLogger<T>(config.dirPath, config.level);\n\n case 'UPSTASH':\n const redis = new Redis({\n url: config.url,\n token: config.token,\n });\n return new UpstashRedisLogger<T>(redis, config.key, config.level);\n\n default:\n throw new Error(`Unsupported logger type`);\n }\n}\n\nexport function createMultiLogger<T extends BaseLogMessage = BaseLogMessage>(\n loggers: Logger<T>[]\n): Logger<T> {\n return new MultiLogger<T>(loggers);\n}\n","export const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n","import { createAnthropic } from '@ai-sdk/anthropic';\nimport { createOpenAI } from '@ai-sdk/openai';\nimport {\n CoreMessage,\n CoreTool as CT,\n generateText,\n LanguageModelV1,\n streamText,\n tool,\n} from 'ai';\nimport { z, ZodSchema } from 'zod';\nimport { AllTools, CoreTool, ToolApi } from '../tools/types';\nimport { delay } from '../utils';\nimport { Integration } from '../integration';\nimport { createLogger, Logger } from '../logger';\nimport { ModelConfig } from './types';\n\nexport class LLM<\n TTools,\n TIntegrations extends Integration[] | undefined = undefined,\n TKeys extends keyof AllTools<TTools, TIntegrations> = keyof AllTools<\n TTools,\n TIntegrations\n >,\n> {\n #tools: Record<TKeys, ToolApi>;\n logger: Logger;\n\n constructor(logger?: Logger) {\n this.#tools = {} as Record<TKeys, ToolApi>;\n this.logger = logger || createLogger({ type: 'CONSOLE' });\n }\n\n /**\n * Set the concrete tools for the agent\n * @param tools\n */\n __setTools(tools: Record<TKeys, ToolApi>) {\n this.#tools = tools;\n this.logger.debug(`Tools set for LLM`, tools);\n }\n\n getModelType(model: ModelConfig): string {\n const providerToType: Record<string, string> = {\n OPEN_AI_VERCEL: 'openai',\n ANTHROPIC_VERCEL: 'anthropic',\n GROQ_VERCEL: 'groq',\n PERPLEXITY_VERCEL: 'perplexity',\n FIREWORKS_VERCEL: 'fireworks',\n };\n const type = providerToType[model.provider] || 'openai';\n this.logger.debug(\n `Model type resolved to ${type} for provider ${model.provider}`\n );\n return type;\n }\n\n createOpenAICompatibleModel(\n baseURL: string,\n apiKey: string,\n defaultModelName: string,\n modelName?: string\n ): LanguageModelV1 {\n this.logger.debug(\n `Creating OpenAI compatible model with baseURL: ${baseURL}`\n );\n const client = createOpenAI({\n baseURL,\n apiKey,\n });\n return client(modelName || defaultModelName);\n }\n\n createModelDef({\n model,\n }: {\n model: { type: string; name?: string; toolChoice?: 'auto' | 'required' };\n }): LanguageModelV1 {\n let modelDef: LanguageModelV1;\n if (model.type === 'openai') {\n this.logger.info(\n `Initializing OpenAI model ${model.name || 'gpt-4o-2024-08-06'}`\n );\n const openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n });\n modelDef = openai(model.name || 'gpt-4o-2024-08-06', {\n structuredOutputs: true,\n });\n } else if (model.type === 'anthropic') {\n this.logger.info(\n `Initializing Anthropic model ${\n model.name || 'claude-3-5-sonnet-20240620'\n }`\n );\n const anthropic = createAnthropic({\n apiKey: process.env.ANTHROPIC_API_KEY,\n });\n modelDef = anthropic(model.name || 'claude-3-5-sonnet-20240620');\n } else if (model.type === 'groq') {\n this.logger.info(\n `Initializing Groq model ${model.name || 'llama-3.2-90b-text-preview'}`\n );\n modelDef = this.createOpenAICompatibleModel(\n 'https://api.groq.com/openai/v1',\n process.env.GROQ_API_KEY ?? '',\n 'llama-3.2-90b-text-preview',\n model.name\n );\n } else if (model.type === 'perplexity') {\n this.logger.info(\n `Initializing Perplexity model ${\n model.name || 'llama-3.1-sonar-large-128k-chat'\n }`\n );\n modelDef = this.createOpenAICompatibleModel(\n 'https://api.perplexity.ai/',\n process.env.PERPLEXITY_API_KEY ?? '',\n 'llama-3.1-sonar-large-128k-chat',\n model.name\n );\n } else if (model.type === 'fireworks') {\n this.logger.info(\n `Initializing Fireworks model ${\n model.name || 'llama-v3p1-70b-instruct'\n }`\n );\n modelDef = this.createOpenAICompatibleModel(\n 'https://api.fireworks.ai/inference/v1',\n process.env.FIREWORKS_API_KEY ?? '',\n 'llama-v3p1-70b-instruct',\n model.name\n );\n } else {\n const error = `Invalid model type: ${model.type}`;\n this.logger.error(error);\n throw new Error(error);\n }\n\n return modelDef;\n }\n\n getParams({\n tools,\n resultTool,\n model,\n }: {\n tools: Record<string, CoreTool>;\n resultTool?: { description: string; parameters: ZodSchema };\n model: { type: string; name?: string; toolChoice?: 'auto' | 'required' };\n }) {\n const toolsConverted = Object.entries(tools).reduce(\n (memo, [key, val]) => {\n memo[key] = tool(val);\n return memo;\n },\n {} as Record<string, CT>\n );\n\n let answerTool = {};\n if (resultTool) {\n answerTool = { answer: tool(resultTool) };\n }\n\n const modelDef = this.createModelDef({ model });\n\n return {\n toolsConverted,\n modelDef,\n answerTool,\n toolChoice: model.toolChoice || 'required',\n };\n }\n\n convertTools(\n enabledTools?: Partial<Record<TKeys, boolean>>\n ): Record<TKeys, CoreTool> {\n const converted = Object.entries(enabledTools || {}).reduce(\n (memo, value) => {\n const k = value[0] as TKeys;\n const enabled = value[1] as boolean;\n const tool = this.#tools[k];\n\n if (enabled && tool) {\n memo[k] = {\n description: tool.description,\n parameters: z.object({\n data: tool.schema,\n }),\n execute: tool.executor,\n };\n }\n return memo;\n },\n {} as Record<TKeys, CoreTool>\n );\n\n this.logger.debug(`Converted tools for LLM`, converted);\n return converted;\n }\n\n async text({\n model,\n messages,\n onStepFinish,\n maxSteps = 5,\n enabledTools,\n }: {\n enabledTools?: Partial<Record<TKeys, boolean>>;\n model: ModelConfig;\n messages: CoreMessage[];\n onStepFinish?: (step: string) => void;\n maxSteps?: number;\n }) {\n const params = this.getParams({\n tools: this.convertTools(enabledTools || {}),\n model: {\n type: this.getModelType(model),\n name: model.name,\n toolChoice: model.toolChoice,\n },\n });\n\n const argsForExecute = {\n model: params.modelDef,\n tools: {\n ...params.toolsConverted,\n ...params.answerTool,\n },\n toolChoice: params.toolChoice,\n maxSteps,\n onStepFinish: async (props: any) => {\n onStepFinish?.(JSON.stringify(props, null, 2));\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(\n props?.response?.headers?.['x-ratelimit-remaining-tokens'],\n 10\n ) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds');\n await delay(10 * 1000);\n }\n },\n };\n\n this.logger.debug(`Generating text with ${messages.length} messages`);\n return await generateText({\n messages,\n ...argsForExecute,\n });\n }\n\n async stream({\n model,\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n enabledTools,\n }: {\n model: ModelConfig;\n enabledTools: Partial<Record<TKeys, boolean>>;\n messages: CoreMessage[];\n onStepFinish?: (step: string) => void;\n onFinish?: (result: string) => Promise<void> | void;\n maxSteps?: number;\n }) {\n const params = this.getParams({\n tools: this.convertTools(enabledTools),\n model: {\n type: this.getModelType(model),\n name: model.name,\n toolChoice: model.toolChoice,\n },\n });\n\n const argsForExecute = {\n model: params.modelDef,\n tools: {\n ...params.toolsConverted,\n ...params.answerTool,\n },\n toolChoice: params.toolChoice,\n maxSteps,\n onStepFinish: async (props: any) => {\n onStepFinish?.(JSON.stringify(props, null, 2));\n if (\n props?.response?.headers?.['x-ratelimit-remaining-tokens'] &&\n parseInt(\n props?.response?.headers?.['x-ratelimit-remaining-tokens'],\n 10\n ) < 2000\n ) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds');\n await delay(10 * 1000);\n }\n },\n onFinish: async (props: any) => {\n onFinish?.(JSON.stringify(props, null, 2));\n },\n };\n\n this.logger.debug(`Streaming text with ${messages.length} messages`);\n return await streamText({\n messages,\n ...argsForExecute,\n });\n }\n}\n","import { CoreMessage, UserContent } from 'ai';\nimport { Integration } from '../integration';\nimport { createLogger, Logger } from '../logger';\nimport { AllTools, ToolApi } from '../tools/types';\nimport { LLM } from '../llm';\nimport { ModelConfig } from '../llm/types';\n\nexport class Agent<\n TTools,\n TIntegrations extends Integration[] | undefined = undefined,\n TKeys extends keyof AllTools<TTools, TIntegrations> = keyof AllTools<\n TTools,\n TIntegrations\n >,\n> {\n public name: string;\n readonly llm: LLM<TTools, TIntegrations, TKeys>;\n readonly instructions: string;\n readonly model: ModelConfig;\n readonly enabledTools: Partial<Record<TKeys, boolean>>;\n logger: Logger;\n\n constructor(config: {\n name: string;\n instructions: string;\n model: ModelConfig;\n enabledTools?: Partial<Record<TKeys, boolean>>;\n }) {\n this.name = config.name;\n this.instructions = config.instructions;\n\n this.llm = new LLM<TTools, TIntegrations, TKeys>();\n\n this.model = config.model;\n this.enabledTools = config.enabledTools || {};\n this.logger = createLogger({ type: 'CONSOLE' });\n this.logger.info(\n `Agent ${this.name} initialized with model ${this.model.provider}`\n );\n }\n\n /**\n * Set the concrete tools for the agent\n * @param tools\n */\n __setTools(tools: Record<TKeys, ToolApi>) {\n this.llm.__setTools(tools);\n this.logger.debug(`Tools set for agent ${this.name}`, tools);\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: Logger) {\n this.logger = logger;\n this.logger.debug(`Logger updated for agent ${this.name}`);\n }\n\n async text({\n messages,\n onStepFinish,\n maxSteps = 5,\n }: {\n messages: UserContent[];\n onStepFinish?: (step: string) => void;\n maxSteps?: number;\n }) {\n this.logger.info(`Starting text generation for agent ${this.name}`);\n\n const messageObjects: CoreMessage[] = messages.map((content) => ({\n role: 'user',\n content,\n }));\n\n messageObjects.push({\n role: 'system',\n content: this.instructions,\n });\n\n return this.llm.text({\n model: this.model,\n messages: messageObjects,\n enabledTools: this.enabledTools,\n onStepFinish,\n maxSteps,\n });\n }\n\n async stream({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n }: {\n messages: UserContent[];\n onStepFinish?: (step: string) => void;\n onFinish?: (result: string) => Promise<void> | void;\n maxSteps?: number;\n }) {\n this.logger.info(`Starting stream generation for agent ${this.name}`);\n\n const messageObjects: CoreMessage[] = messages.map((content) => ({\n role: 'user',\n content,\n }));\n\n messageObjects.push({\n role: 'system',\n content: this.instructions,\n });\n\n return this.llm.stream({\n messages: messageObjects,\n model: this.model,\n enabledTools: this.enabledTools,\n onStepFinish,\n onFinish,\n maxSteps,\n });\n }\n}\n","import { Integration } from '../';\nimport { ToolApi } from './types';\n\n// TODO: Passing the In/out generics works but seems to break on plugin to mastra, fix.\nexport function createTool<\n IN extends Record<string, any> = Record<string, any>,\n OUT extends Record<string, any> = Record<string, any>,\n>(opts: ToolApi<IN, OUT>): ToolApi<IN, OUT> {\n return opts as ToolApi<IN, OUT>;\n}\n","import { z } from 'zod';\nimport { createTool } from '../tools';\nimport { IntegrationApiExcutorParams, ToolApi } from '../tools/types';\n\nexport abstract class Integration {\n abstract readonly name: string;\n abstract readonly logoUrl: string;\n abstract readonly tools: Record<string, ToolApi>;\n authType: string = 'API_KEY';\n\n constructor() {}\n\n protected get toolSchemas(): any {\n return {};\n }\n\n protected get toolDocumentations(): Record<\n string,\n { comment: string; doc?: string }\n > {\n return {};\n }\n\n protected get baseClient(): any {\n return {};\n }\n\n async getApiClient(): Promise<any> {\n throw new Error('API not implemented');\n }\n\n protected _generateIntegrationTools<T>() {\n const { client, ...clientMethods } = this.baseClient;\n const schemas = this.toolSchemas;\n const documentations = this.toolDocumentations;\n\n const tools = Object.keys(clientMethods).reduce((acc, key) => {\n const comment = documentations[key]?.comment;\n const doc = documentations[key]?.doc;\n const fallbackComment = `Execute ${key}`;\n\n const tool = createTool({\n label: key,\n schema: schemas[key] || z.object({}),\n description: comment || fallbackComment,\n documentation: doc || fallbackComment,\n executor: async ({ data }) => {\n const client = await this.getApiClient();\n const value = client[key as keyof typeof client];\n return (value as any)({\n ...(data as any),\n });\n },\n });\n\n return { ...acc, [key]: tool };\n }, {});\n\n return tools as T;\n }\n}\n","import { z } from 'zod';\nimport { filterQuerySchema } from './schema';\n\nexport interface BaseConnection {\n id: string;\n name: string;\n issues: string[];\n syncConfig: Record<string, any> | null;\n connectionId: string;\n createdAt: Date;\n updatedAt: Date | null;\n lastSyncAt: Date | null;\n subscriptionId?: string | null;\n error?: string | null;\n}\n\nexport interface BaseCredential {\n id: string;\n type: string;\n value: Record<string, any>;\n scope: string[];\n kId: string | null;\n}\n\nexport type CredentialInput = Omit<BaseCredential, \"id\" | \"kId\">;\n\nexport type CredentialWithConnection = {\n id: string;\n type: string;\n value: Record<string, any>;\n scope: string[];\n kId: string | null;\n connection: BaseConnection | null;\n}\n\nexport interface BaseEntity {\n id: string;\n kId: string | null;\n type: string;\n lastSyncId: string | null\n createdBy: string;\n createdAt: Date;\n updatedAt: Date | null;\n}\n\nexport type CredentialUpdateInput = Partial<{\n type: string;\n value: Record<string, any>;\n scope: string[];\n}>;\n\nexport interface BaseRecord {\n id: string;\n entityId: string;\n data: Record<string, any>;\n createdAt: Date;\n updatedAt: Date | null;\n externalId: string | null;\n entityType: string\n}\n\nexport interface BaseProperty {\n id?: string\n name: string\n displayName: string\n visible: boolean\n config: Record<string, any>\n description: string | null\n type: PropertyType\n order: number\n modifiable: boolean\n entityId?: string\n}\n\nexport enum PropertyType {\n 'LONG_TEXT' = 'LONG_TEXT',\n 'SINGLE_LINE_TEXT' = 'SINGLE_LINE_TEXT',\n 'SINGLE_SELECT' = 'SINGLE_SELECT',\n 'MULTI_SELECT' = 'MULTI_SELECT',\n 'CHECKBOX' = 'CHECKBOX',\n 'DATE' = 'DATE',\n 'USER' = 'USER',\n 'BADGE_LIST' = 'BADGE_LIST',\n 'CURRENCY' = 'CURRENCY',\n 'URL' = 'URL',\n 'PHONE' = 'PHONE',\n 'CONTACT' = 'CONTACT',\n 'COMPANY' = 'COMPANY',\n 'PERSON' = 'PERSON',\n 'ENRICHMENT' = 'ENRICHMENT',\n 'COMPOSITE' = 'COMPOSITE',\n 'BOOLEAN' = 'BOOLEAN',\n 'NUMBER' = 'NUMBER',\n 'FLOAT' = 'FLOAT',\n 'JSON_OBJECT' = 'JSON_OBJECT',\n 'JSON_ARRAY' = 'JSON_ARRAY',\n}\n\nexport type FilterObject<T extends string | number | symbol> = Record<\n T,\n z.infer<typeof filterQuerySchema>\n>;\n\nexport interface FilterClauseArgs<T extends string | number | symbol> {\n parentTableRef?: string;\n filters: FilterObject<T>;\n fields?: Pick<BaseProperty, 'name' | 'type'>[];\n}\n\nexport interface SortClauseArgs {\n parentTableRef?: string;\n sort: string[];\n fields?: Pick<BaseProperty, 'name' | 'type'>[];\n}\n\nexport enum FilterOperators {\n IS = 'is',\n EQUAL = 'eq',\n NOT_EQUAL = 'not_eq',\n CONTAINS = 'contains',\n IN = 'in',\n NOT_IN = 'not_in',\n GREATER_THAN = 'gt',\n LESS_THAN = 'lt',\n NOT_CONTAINS = 'not_contains',\n GREATER_THAN_OR_EQUAL = 'gte',\n LESS_THAN_OR_EQUAL = 'lte',\n OP = 'op',\n SET = 'set',\n NOT_SET = 'not_set',\n}\n","import { PropertyType } from './types';\n\nexport const FieldTypePrimitiveMap: Record<PropertyType, string> = {\n [PropertyType.BADGE_LIST]: 'string',\n [PropertyType.CHECKBOX]: 'boolean',\n [PropertyType.BOOLEAN]: 'boolean',\n [PropertyType.NUMBER]: 'number',\n [PropertyType.FLOAT]: 'number',\n [PropertyType.JSON_ARRAY]: 'string',\n [PropertyType.JSON_OBJECT]: 'string',\n [PropertyType.CURRENCY]: 'number',\n [PropertyType.DATE]: 'date',\n [PropertyType.LONG_TEXT]: 'string',\n [PropertyType.MULTI_SELECT]: 'string',\n [PropertyType.PHONE]: 'string',\n [PropertyType.SINGLE_LINE_TEXT]: 'string',\n [PropertyType.SINGLE_SELECT]: 'string',\n [PropertyType.URL]: 'string',\n [PropertyType.USER]: 'string',\n [PropertyType.CONTACT]: 'string',\n [PropertyType.COMPANY]: 'string',\n [PropertyType.COMPOSITE]: 'string',\n [PropertyType.PERSON]: 'string',\n [PropertyType.ENRICHMENT]: 'string',\n};\n\n/**\n * Split a string on commas and strip quotes from each part\n * @param str input string\n * @returns array of strings\n */\nexport const splitAndStripQuotes = (str: string) => {\n // Raw regex pattern for splitting on non-quoted commas\n const pattern = /,\\s*(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;\n // Split the string\n const parts = str.split(pattern);\n // Strip quotes from each part\n const cleanedParts = parts.map((part) => part.trim().replace(/^\"|\"$/g, ''));\n return cleanedParts;\n};\n\nexport const transformFilterValueArray = (value: string | undefined) => {\n if (typeof value === 'string') return value.split(',');\n return value;\n};\n\nexport const transformFilterValueBoolean = (value: string | undefined) => {\n if (typeof value === 'string') return value === 'true';\n return value;\n};\n\n/**\n * This returns the SQL field for a JSON field with appropriate casting.\n * @param column - JSON field to cast.\n * @param type - Type of the JSON field.\n */\nexport const getJSONField = (column: string, type: PropertyType) => {\n const primitiveType = FieldTypePrimitiveMap[type];\n\n switch (primitiveType) {\n case 'number': {\n // cast to number if field is numeric\n return `(${column})::bigint`;\n }\n\n case 'boolean': {\n // cast to boolean if field is boolean\n return `(${column})::boolean`;\n }\n\n case 'date': {\n return `(${column})::timestamp`;\n }\n }\n\n return `(${column})::text`;\n};\n\n/**\n * @description\n * Builds a query string from filter and sort query strings\n * @param filterQueryString Filter query string\n * @param sortQueryString Sort query string\n * @returns\n */\nexport function buildQueryString({\n filterQueryString,\n sortQueryString,\n}: {\n filterQueryString?: string;\n sortQueryString?: string;\n}) {\n if (!filterQueryString && !sortQueryString) return '';\n if (!filterQueryString) return `${sortQueryString}`;\n if (!sortQueryString) return `${filterQueryString}`;\n\n return `${filterQueryString}&${sortQueryString}`;\n}\n","import { z } from 'zod';\nimport { FilterOperators } from './types';\nimport {\n transformFilterValueArray,\n transformFilterValueBoolean,\n} from './utils';\n\ntype ValueOf<T> = Required<T>[keyof T];\n\nexport const filterQuerySchema = z.object<\n Record<ValueOf<typeof FilterOperators>, any>\n>({\n is: z.array(z.string()).or(z.string()).optional(),\n eq: z.array(z.string()).or(z.string()).optional(),\n not_eq: z.array(z.string()).or(z.string()).optional(),\n contains: z.array(z.string()).or(z.string()).optional(),\n not_contains: z.array(z.string()).or(z.string()).optional(),\n gt: z.array(z.string()).or(z.string()).optional(),\n gte: z.array(z.string()).or(z.string()).optional(),\n lt: z.array(z.string()).or(z.string()).optional(),\n lte: z.array(z.string()).or(z.string()).optional(),\n in: z.array(z.string()).or(z.string()).optional(),\n not_in: z.array(z.string()).or(z.string()).optional(),\n op: z.enum(['or', 'and']).optional().default('or'),\n set: z.string().optional().transform(transformFilterValueBoolean),\n not_set: z.string().optional().transform(transformFilterValueBoolean),\n});\n\nexport const sortQuerySchema = z.string().transform(transformFilterValueArray);\n","import { BaseConnection, BaseCredential, BaseEntity, BaseProperty, BaseRecord, CredentialInput, CredentialUpdateInput, CredentialWithConnection, FilterObject } from \"./types\";\n\nexport * from './schema';\nexport * from './types';\nexport * from './utils';\n\nexport interface DatabaseConfig {\n url: string;\n // Add other configuration options as needed\n}\nexport abstract class MastraEngine {\n /**\n * Initializes the database connection\n * @param config Configuration object for database connection\n */\n constructor(config: DatabaseConfig) {};\n\n /**\n * Closes the database connection\n */\n abstract close(): Promise<void>;\n\n // Connection Management\n abstract getConnection(params: { name: string; connectionId: string }): Promise<BaseConnection>;\n abstract getConnectionById(params: { kId: string }): Promise<BaseConnection | undefined>;\n abstract getAllConnections(): Promise<Pick<BaseConnection, 'name' | 'connectionId'>[]>;\n abstract getConnectionsByIntegrationName(params: { name: string }): Promise<BaseConnection[]>;\n abstract getConnectionsBySubscriptionId(params: { subscriptionId: string }): Promise<BaseConnection[]>;\n abstract setConnectionSubscriptionId(params: { kId: string; subscriptionId: string }): Promise<BaseConnection>;\n abstract createConnection(params: {\n connection: Omit<BaseConnection, 'createdAt' | 'updatedAt' | 'id' | 'lastSyncAt'>;\n credential: CredentialInput;\n }): Promise<BaseConnection & { credential: BaseCredential }>;\n abstract setConnectionError(params: { kId: string; error: string }): Promise<BaseConnection>;\n abstract deleteConnection(params: { kId: string }): Promise<BaseConnection | null>;\n\n // Credential Management\n abstract getCredentialsByConnection(kId: string): Promise<CredentialWithConnection>;\n abstract updateConnectionCredentialToken(params: {\n kId: string;\n token: Record<string, any>;\n }): Promise<BaseCredential>;\n abstract updateConnectionCredentials(params: CredentialUpdateInput & { kId: string }): Promise<BaseCredential>;\n\n // Entity Management\n abstract createEntity(params: {\n kId: string;\n type: string;\n connectionId: string;\n }): Promise<BaseEntity>;\n abstract getEntityById(params: { id: string }): Promise<BaseEntity>;\n abstract getEntityByConnectionAndType(params: {\n kId: string;\n type: string;\n }): Promise<BaseEntity | null>;\n abstract getEntityRecordsByConnectionAndType(params: {\n kId: string;\n type: string;\n }): Promise<BaseEntity & { properties: BaseProperty[]; records: BaseRecord[] } | null>;\n abstract updateEntityLastSyncId(params: {\n id: string;\n syncId: string;\n }): Promise<BaseEntity>;\n abstract deleteEntityById(params: { id: string }): Promise<BaseEntity>;\n\n // Record Management\n abstract mergeExternalRecordsForEntity(params: {\n entityId: string;\n records: Pick<BaseRecord, 'externalId' | 'data' | 'entityType'>[];\n }): Promise<void>;\n abstract getRecordsByPropertyName(params: {\n propertyName: string;\n connectionId: string;\n }): Promise<{ record: BaseRecord }[]>;\n abstract getRecordByPropertyNameAndValue(params: {\n propertyName: string;\n propertyValue: string;\n type: string;\n connectionId: string;\n }): Promise<BaseRecord | null>;\n abstract getRecordByPropertyNameAndValues(params: {\n propertyName: string;\n propertyValues: string[];\n type?: string;\n connectionId: string;\n }): Promise<{ record: BaseRecord }[]>;\n abstract deleteRecordsByEntityId(params: { id: string }): Promise<BaseRecord[]>;\n\n // Property Management\n abstract addPropertiesToEntity(params: {\n entityId: string;\n properties: BaseProperty[];\n }): Promise<BaseEntity>;\n abstract getPropertiesByEntityType(params: {\n entityType: string;\n }): Promise<BaseProperty[]>;\n abstract deletePropertiesByEntityId(params: { id: string }): Promise<BaseProperty[]>;\n\n // Data Synchronization\n abstract syncData(params: {\n connectionId: string;\n name: string;\n data: any;\n type: string;\n properties: BaseProperty[];\n lastSyncId?: string;\n }): Promise<void>;\n\n // Query Building and Filtering\n abstract buildRecordQuerySql(params: {\n whereClause: string;\n filterClause?: string;\n entityType: string;\n sortClauses: string[];\n }): string;\n\n abstract getFilteredRecords<T extends string | number | symbol>(params: {\n entityType: string;\n filters?: FilterObject<T>;\n sort?: string[];\n kId: string;\n }): Promise<any[]>;\n\n abstract getRecords<T extends string | number | symbol>(params: {\n entityType: string;\n kId: string;\n filters?: FilterObject<T>;\n sort?: string[];\n }): Promise<any[]>;\n}","export interface QueryResult {\n id: string;\n score: number;\n metadata?: Record<string, any>;\n}\n\nexport interface IndexStats {\n dimension: number;\n count: number;\n metric?: 'cosine' | 'euclidean' | 'dotproduct';\n}\n\nexport abstract class MastraVector {\n abstract upsert(\n indexName: string,\n vectors: number[][],\n metadata?: Record<string, any>[],\n ids?: string[]\n ): Promise<string[]>;\n\n abstract createIndex(\n indexName: string,\n dimension: number,\n metric?: 'cosine' | 'euclidean' | 'dotproduct'\n ): Promise<void>;\n\n abstract query(\n indexName: string,\n queryVector: number[],\n topK?: number,\n filter?: Record<string, any>\n ): Promise<QueryResult[]>;\n\n abstract listIndexes(): Promise<string[]>;\n\n abstract describeIndex(indexName: string): Promise<IndexStats>;\n\n abstract deleteIndex(indexName: string): Promise<void>;\n}","import { Integration } from '../integration';\nimport { Agent } from '../agent';\nimport { createLogger, Logger, RegisteredLogger } from '../logger';\nimport { SyncConfig } from '../sync/types';\nimport { AllTools, ToolApi } from '../tools/types';\nimport { MastraEngine } from '../engine';\nimport { MastraVector } from '../vector';\nimport { LLM } from '../llm';\nimport { z } from 'zod';\nimport { Workflow } from '../workflows';\n\nexport class Mastra<\n TIntegrations extends Integration[],\n MastraTools extends Record<string, any>,\n TSyncs extends Record<\n string,\n SyncConfig<TIntegrations, MastraTools, any>\n > = Record<never, never>,\n> {\n private engine?: MastraEngine;\n private vectors?: Record<string, MastraVector>;\n private tools: AllTools<MastraTools, TIntegrations>;\n private agents: Map<string, Agent<MastraTools, TIntegrations>>;\n llm: LLM<\n MastraTools,\n TIntegrations,\n keyof AllTools<MastraTools, TIntegrations>\n >;\n private integrations: Map<string, Integration>;\n private logger: Map<RegisteredLogger, Logger>;\n private syncs: TSyncs;\n private workflows: Map<string, Workflow> = new Map();\n\n constructor(config: {\n tools?: MastraTools;\n syncs?: TSyncs;\n agents?: Agent<MastraTools, TIntegrations>[];\n integrations?: TIntegrations;\n engine?: MastraEngine;\n vectors?: Record<string, MastraVector>;\n logger?: Logger;\n workflows?: Workflow[];\n }) {\n this.logger = new Map();\n\n let logger: Logger = createLogger({ type: 'CONSOLE' });\n\n if (config.logger) {\n logger = config.logger;\n }\n\n this.setLogger({ key: 'AGENT', logger });\n this.setLogger({ key: 'WORKFLOW', logger });\n\n this.integrations = new Map();\n\n config.integrations?.forEach((integration) => {\n if (this.integrations.has(integration.name)) {\n throw new Error(\n `Integration with name ${integration.name} already exists`\n );\n }\n this.integrations.set(integration.name, integration);\n });\n\n const integrationTools =\n config.integrations?.reduce(\n (acc, integration) => ({\n ...acc,\n ...integration.tools,\n }),\n {}\n ) || {};\n\n const configuredTools = config?.tools || {};\n\n // Merge custom tools with integration tools\n const allTools = {\n ...configuredTools,\n ...integrationTools,\n } as MastraTools;\n\n // Hydrate tools with integration tools\n const hydratedTools = Object.entries(allTools ?? {}).reduce<\n Record<string, ToolApi>\n >((memo, [key, val]) => {\n memo[key] = {\n ...val,\n executor: (params) => {\n return val.executor({\n ...params,\n getIntegration: <I>(name: TIntegrations[number]['name']) =>\n this.getIntegration(name) as I,\n agents: this.agents,\n llm: this.llm,\n engine: this.engine,\n });\n },\n };\n return memo;\n }, {});\n\n this.tools = hydratedTools as AllTools<MastraTools, TIntegrations>;\n this.agents = new Map();\n\n this.llm = new LLM<\n MastraTools,\n TIntegrations,\n keyof AllTools<MastraTools, TIntegrations>\n >();\n this.llm.__setTools(this.tools);\n\n config.agents?.forEach((agent) => {\n if (this.agents.has(agent.name)) {\n throw new Error(`Agent with name ${agent.name} already exists`);\n }\n this.agents.set(agent.name, agent);\n agent.__setTools(this.tools);\n const agentLogger = this.getLogger('AGENT');\n if (agentLogger) {\n agent.__setLogger(agentLogger);\n }\n });\n\n config.workflows?.forEach((workflow) => {\n if (this.workflows.has(workflow.name)) {\n throw new Error(`Workflow with name ${workflow.name} already exists`);\n }\n this.workflows.set(workflow.name, workflow);\n });\n\n if (config.syncs && !config.engine) {\n throw new Error('Engine is required to run syncs');\n }\n\n this.syncs = (config.syncs || {}) as TSyncs;\n\n if (config.engine) {\n this.engine = config.engine;\n }\n\n if (config.vectors) {\n this.vectors = config.vectors;\n }\n }\n public async sync<K extends keyof TSyncs>(\n key: K,\n params: TSyncs[K] extends SyncConfig<any, any, infer P> ? P : never\n ): Promise<void> {\n if (!this.engine) {\n throw new Error(`Sync function ${key as string} not found`);\n }\n\n const syncFn = this.syncs?.[key];\n\n if (!syncFn) {\n throw new Error(`Sync function ${key as string} not found`);\n }\n\n await syncFn({\n tools: this.tools,\n params,\n engine: this.engine,\n agents: this.agents,\n vectors: this.vectors,\n llm: this.llm,\n });\n }\n\n public getAgent(name: string) {\n const agent = this.agents.get(name);\n if (!agent) {\n throw new Error(`Agent with name ${name} not found`);\n }\n return agent;\n }\n\n public getIntegration<I extends TIntegrations[number]['name']>(name: I) {\n const stringifiedName = String(name);\n const integration = this.integrations.get(stringifiedName.toUpperCase());\n\n if (!integration) {\n throw new Error(`Integration with name ${stringifiedName} not found`);\n }\n return integration as Extract<TIntegrations[number], { name: I }>;\n }\n\n public getTool<T extends keyof MastraTools>(name: T) {\n const tool = this.tools[name];\n\n if (!tool) {\n throw new Error(`Tool with name ${String(name)} not found`);\n }\n\n const toolSchema = tool.schema as MastraTools[T]['schema'];\n\n return {\n ...tool,\n execute: async (params: z.infer<typeof toolSchema>) => {\n return tool.executor({\n data: params,\n getIntegration: <I>(name: TIntegrations[number]['name']) =>\n this.getIntegration(name) as I,\n agents: this.agents,\n llm: this.llm,\n engine: this.engine,\n });\n },\n };\n }\n\n public availableIntegrations() {\n return Array.from(this.integrations.entries()).map(\n ([name, integration]) => {\n return {\n name,\n integration,\n };\n }\n );\n }\n\n public getTools() {\n return this.tools;\n }\n\n public setLogger({ key, logger }: { key: RegisteredLogger; logger: Logger }) {\n this.logger.set(key, logger);\n }\n\n public getLogger(key: RegisteredLogger) {\n return this.logger.get(key);\n }\n}\n","export function isErrorEvent(stateEvent: any): stateEvent is {\n type: `xstate.error.actor.${string}`;\n error: Error;\n} {\n return stateEvent.type.startsWith('xstate.error.actor.');\n}\n\nexport function isTransitionEvent(stateEvent: any): stateEvent is {\n type: `xstate.done.actor.${string}`;\n output?: unknown;\n} {\n return (\n stateEvent.type.startsWith('xstate.done.actor.')\n );\n}\n","import sift from 'sift';\nimport { Logger, RegisteredLogger, LogLevel } from '../logger';\nimport { setup, createActor, assign, fromPromise } from 'xstate';\nimport { z } from 'zod';\n\nimport get from 'lodash/get';\n\nimport {\n StepConfig,\n WorkflowLogMessage,\n WorkflowContext,\n StepId,\n VariableReference,\n StepDefinition,\n StepCondition,\n ValidationError,\n WorkflowEvent,\n WorkflowActions,\n WorkflowActors,\n ResolverFunctionOutput,\n ResolverFunctionInput,\n WorkflowState,\n} from './types';\nimport { isErrorEvent, isTransitionEvent } from './utils';\n\nexport class Workflow<\n TTrigger = any,\n TSteps extends Record<string, StepDefinition<any, any>> = Record<\n string,\n StepDefinition<any, any>\n >\n> {\n name: string;\n #logger?: Logger<WorkflowLogMessage>;\n triggerSchema?: z.ZodType<any>;\n\n #steps: StepConfig<z.ZodType<any>>[] = [];\n /** XState machine instance that orchestrates the workflow execution */\n #machine!: ReturnType<typeof this.initializeMachine>;\n /** XState actor instance that manages the workflow execution */\n #actor: ReturnType<\n typeof createActor<ReturnType<typeof this.initializeMachine>>\n > | null = null;\n\n /**\n * Creates a new Workflow instance\n * @param name - Identifier for the workflow (not necessarily unique)\n * @param logger - Optional logger instance\n */\n constructor(name: string, logger?: Logger<WorkflowLogMessage>) {\n this.name = name;\n this.#logger = logger;\n this.initializeMachine();\n }\n\n /**\n * Internal logging helper that formats and sends logs to the configured logger\n * @param level - Severity level of the log\n * @param message - Main log message\n * @param data - Optional data to include in the log\n * @param stepId - Optional ID of the step that generated the log\n */\n async #log(level: LogLevel, message: string, data?: any, stepId?: StepId) {\n if (!this.#logger) return;\n\n const logMessage: WorkflowLogMessage = {\n type: RegisteredLogger.WORKFLOW,\n message,\n workflowName: this.name,\n destinationPath: `workflows/${this.name}`,\n stepId,\n data,\n };\n\n const logMethod = level.toLowerCase() as keyof Logger<WorkflowLogMessage>;\n\n await this.#logger[logMethod]?.(logMessage);\n }\n\n /**\n * Initializes the XState machine for the workflow\n *\n * Registers the machine's types, actions, actors, initial context, entry actions, initial state, and states\n * @returns The initialized machine\n */\n private initializeMachine() {\n const machine = setup({\n types: {} as {\n context: WorkflowContext;\n input: WorkflowContext;\n events: WorkflowEvent;\n actions: WorkflowActions;\n actors: WorkflowActors;\n },\n actions: {\n updateStepResult: assign({\n stepResults: ({ context, event }) => {\n if (!isTransitionEvent(event)) return context.stepResults;\n\n const stepId = (event.output as ResolverFunctionOutput)\n ?.stepId as StepId;\n if (!stepId) return context.stepResults;\n\n this.#log(\n LogLevel.INFO,\n `Step ${stepId} completed`,\n event.output,\n stepId\n );\n\n const result = (event.output as ResolverFunctionOutput)?.result;\n if (result !== undefined) {\n const newResults = {\n ...context.stepResults,\n [stepId]: result,\n };\n\n // Get the step configuration\n const step = this.#steps.find((s) => s.id === stepId);\n\n // Evaluate transitions and send events\n if (step?.transitions) {\n const fullContext = { ...context, stepResults: newResults };\n\n let hasMatchingCondition = false;\n\n this.#log(\n LogLevel.DEBUG,\n 'Evaluating transitions with context:',\n fullContext\n );\n\n Object.entries(step.transitions).forEach(\n ([targetId, config]) => {\n this.#log(\n LogLevel.DEBUG,\n `Checking transition to: ${targetId}`\n );\n this.#log(\n LogLevel.DEBUG,\n `With condition: ${config.condition}`\n );\n if (\n !config.condition ||\n this.#evaluateCondition(config.condition, fullContext)\n ) {\n hasMatchingCondition = true;\n this.#log(\n LogLevel.DEBUG,\n 'Condition passed, sending transition to:',\n targetId\n );\n Promise.resolve().then(() => {\n if (this.#actor) {\n this.#actor.send({ type: `TRANSITION_${targetId}` });\n }\n });\n }\n }\n );\n // If no conditions matched, send the NO_MATCHING_CONDITIONS event\n if (!hasMatchingCondition) {\n Promise.resolve().then(() => {\n if (this.#actor) {\n this.#actor.send({ type: 'NO_MATCHING_CONDITIONS' });\n }\n });\n }\n }\n\n return newResults;\n }\n\n return context.stepResults;\n },\n }),\n setError: assign({\n error: ({ event }) => {\n if (!isErrorEvent(event)) return null;\n this.#log(LogLevel.ERROR, `Workflow error`, event.error);\n return event.error;\n },\n }),\n initializeTriggerData: assign({\n triggerData: ({ context }) => {\n this.#log(LogLevel.INFO, 'Workflow started', context?.triggerData);\n return context?.triggerData;\n },\n }),\n },\n actors: {\n resolverFunction: fromPromise(\n async ({ input }: { input: ResolverFunctionInput }) => {\n const { step, context } = input;\n const resolvedData = this.#resolveVariables(step, context);\n const result = await step.handler(resolvedData);\n\n return {\n stepId: step.id,\n result,\n };\n }\n ),\n },\n }).createMachine({\n id: this.name,\n initial: this.#steps[0]?.id || 'idle',\n context: ({ input }) => ({\n ...input,\n stepResults: {},\n error: null,\n }),\n entry: ['initializeTriggerData'],\n states: this.#buildStateHierarchy(),\n });\n\n this.#machine = machine;\n return machine;\n }\n\n /**\n * Rebuilds the machine with the current steps configuration and validates the workflow\n *\n * This is the last step of a workflow builder method chain\n * @throws Error if validation fails\n */\n commit() {\n this.#validateWorkflow();\n this.initializeMachine();\n }\n\n /**\n * Builds the state hierarchy for the workflow\n * @returns Object representing the state hierarchy\n */\n #buildStateHierarchy(): WorkflowState {\n const stateHierarchy: any = {\n idle: {},\n success: { type: 'final' },\n failure: { type: 'final' },\n };\n\n // Helper to build nested state structure\n const buildState = (currentStepId: StepId, visited: Set<StepId>) => {\n if (visited.has(currentStepId)) return null;\n visited.add(currentStepId);\n\n const currentStep = this.#steps.find((s) => s.id === currentStepId);\n if (!currentStep) return null;\n\n const state: WorkflowState[typeof currentStepId] = {\n invoke: {\n src: 'resolverFunction',\n input: ({ context }) => ({\n step: currentStep,\n context,\n }),\n onDone: {\n actions: ['updateStepResult'],\n // If no transitions, go to success state\n target: currentStep.transitions ? undefined : 'success',\n },\n onError: {\n target: 'failure',\n actions: ['setError'],\n },\n },\n on: {\n // Default transition will trigger if no conditions match\n NO_MATCHING_CONDITIONS: {\n target: 'failure',\n actions: assign({\n error: () => {\n console.log('No matching transition conditions');\n return new Error('No matching transition conditions');\n },\n }),\n },\n },\n };\n\n // Handle transitions\n if (currentStep.transitions) {\n Object.entries(currentStep.transitions).forEach(\n ([targetId, config]) => {\n // Create flat state structure with transitions\n state.on[`TRANSITION_${targetId}`] = {\n target: targetId,\n guard: ({ context }) =>\n !config.condition ||\n this.#evaluateCondition(config.condition, context),\n };\n }\n );\n }\n\n return state;\n };\n\n // Build flat state structure starting from first step\n const visited = new Set<StepId>();\n this.#steps.forEach((step) => {\n const state = buildState(step.id, visited);\n if (state) {\n stateHierarchy[step.id] = state;\n }\n });\n\n return stateHierarchy;\n }\n\n /**\n * Sets the schema for validating trigger data\n * @param schema - Zod schema for trigger data validation\n * @returns this instance for method chaining\n */\n setTriggerSchema(schema: z.ZodType<any>) {\n this.triggerSchema = schema;\n return this;\n }\n\n /**\n * Type guard to check if a value is a valid VariableReference\n * @param value - Value to check\n * @returns True if value is a VariableReference\n */\n #isVariableReference(value: any): value is VariableReference {\n return typeof value === 'object' && 'stepId' in value && 'path' in value;\n }\n\n /**\n * Creates a validated step ID, ensuring uniqueness within the workflow\n * @param id - Proposed step ID\n * @returns The validated and branded step ID\n * @throws Error if ID is invalid or duplicate\n */\n #createStepId(id: string): StepId {\n // Check for duplicates\n if (this.#steps.some((step) => step.id === id)) {\n throw new Error(\n `Step with ID \"${id}\" already exists in workflow \"${this.name}\"`\n );\n }\n\n return id as StepId;\n }\n\n /**\n * Adds a new step to the workflow\n * @param id - Unique identifier for the step\n * @param config - Step configuration including handler, schema, variables, and payload\n * @returns this instance for method chaining (builder pattern baybyyyy)\n * @throws Error if step ID is duplicate or variable resolution fails\n */\n addStep<\n TSchema extends z.ZodType<any>,\n TOutput = any,\n TTransitions extends string = string\n >(\n id: string,\n config: StepDefinition<TSchema, TOutput, TTransitions>\n ): Workflow<TTrigger, TSteps & Record<typeof id, typeof config>> {\n const stepId = this.#createStepId(id);\n const {\n action,\n inputSchema,\n variables = {},\n payload = {},\n transitions,\n } = config;\n\n // Validate transitions reference existing steps\n if (transitions) {\n Object.keys(transitions).forEach((targetId) => {\n // Skip validation for steps that will be added later\n if (!this.#steps.some((s) => s.id === targetId)) {\n this.#log(\n LogLevel.DEBUG,\n `Step ${targetId} not found yet, will be validated when workflow starts`\n );\n }\n });\n }\n\n const requiredData: Record<string, VariableReference> = {};\n\n // Add valid variables to requiredData\n for (const [key, variable] of Object.entries(variables)) {\n if (variable && this.#isVariableReference(variable)) {\n requiredData[key as string] = variable;\n }\n }\n\n // Create step config\n const stepConfig: StepConfig<z.infer<TSchema>> = {\n id: stepId,\n handler: async (data: z.infer<TSchema>) => {\n // Merge static payload with dynamically resolved variables\n // Variables take precedence over payload values\n const mergedData = {\n ...payload,\n ...data,\n } as z.infer<TSchema>;\n\n // Validate complete input data\n const validatedData = inputSchema\n ? inputSchema.parse(mergedData)\n : mergedData;\n\n return action(validatedData);\n },\n inputSchema,\n requiredData,\n transitions,\n };\n\n this.#steps.push(stepConfig);\n return this;\n }\n\n /**\n * Resolves variables for a step from trigger data or previous step results\n * @param stepConfig - Configuration of the step needing variable resolution\n * @param context - Current workflow context containing results and trigger data\n * @returns Object containing resolved variable values\n * @throws Error if variable resolution fails\n */\n #resolveVariables(\n stepConfig: StepConfig,\n context: WorkflowContext\n ): Record<string, any> {\n const resolvedData: Record<string, any> = {};\n\n for (const [key, variable] of Object.entries(stepConfig.requiredData)) {\n // Check if variable comes from trigger data or a previous step's result\n const sourceData =\n variable.stepId === 'trigger'\n ? context.triggerData\n : context.stepResults[variable.stepId];\n\n if (!sourceData && variable.stepId !== 'trigger') {\n throw new Error(\n `Cannot resolve variable: Step ${variable.stepId} has not been executed yet`\n );\n }\n\n // If path is empty or '.', return the entire source data\n const value =\n variable.path === '' || variable.path === '.'\n ? sourceData[key]\n : get(sourceData, variable.path);\n\n if (value === undefined) {\n throw new Error(\n `Cannot resolve path \"${variable.path}\" from ${variable.stepId}`\n );\n }\n\n resolvedData[key] = value;\n }\n\n return resolvedData;\n }\n\n /**\n * Executes the workflow with the given trigger data\n * @param triggerData - Initial data to start the workflow with\n * @returns Promise resolving to workflow results or rejecting with error\n * @throws Error if trigger schema validation fails\n */\n async executeWorkflow<\n TSchema = unknown,\n TTrigger = this['triggerSchema'] extends z.ZodSchema<infer T> ? T : TSchema\n >(\n triggerData?: TTrigger\n ): Promise<{\n triggerData?: TTrigger;\n results: Record<string, unknown>;\n }> {\n await this.#log(LogLevel.INFO, 'Executing workflow', { triggerData });\n\n if (this.triggerSchema) {\n try {\n this.triggerSchema.parse(triggerData);\n await this.#log(LogLevel.DEBUG, 'Trigger schema validation passed');\n } catch (error) {\n await this.#log(LogLevel.ERROR, 'Trigger schema validation failed', {\n error,\n });\n throw error;\n }\n }\n\n this.#actor = createActor(this.#machine, {\n input: {\n error: null,\n stepResults: {},\n triggerData: triggerData || {},\n },\n });\n\n this.#actor.start();\n\n return new Promise((resolve, reject) => {\n if (!this.#actor) {\n reject(new Error('Actor not initialized'));\n return;\n }\n\n this.#actor.subscribe((state) => {\n if (state.matches('success')) {\n this.#log(LogLevel.INFO, 'Workflow completed successfully', {\n results: state.context.stepResults,\n });\n this.#cleanup();\n resolve({\n triggerData,\n results: state.context.stepResults,\n });\n } else if (state.matches('failure')) {\n this.#log(LogLevel.ERROR, 'Workflow failed', {\n error: state.context.error?.message,\n });\n this.#cleanup();\n reject({ error: state.context.error?.message });\n }\n });\n });\n }\n\n /**\n * Cleans up the actor instance\n */\n #cleanup() {\n if (this.#actor) {\n this.#actor.stop();\n this.#actor = null;\n }\n }\n\n /**\n * Evaluates a single condition against workflow context\n */\n #evaluateCondition(\n condition: StepCondition,\n context: WorkflowContext\n ): boolean {\n let andBranchResult = true;\n let baseResult = true;\n let orBranchResult = true;\n\n // Base condition\n if ('ref' in condition) {\n const { ref, query } = condition;\n const sourceData =\n ref.stepId === 'trigger'\n ? context.triggerData\n : context.stepResults[ref.stepId];\n\n if (!sourceData) {\n throw new Error(\n `Cannot evaluate condition: Step ${ref.stepId} has not been executed yet`\n );\n }\n\n const value = get(sourceData, ref.path);\n baseResult = sift(query)(value);\n }\n\n // AND condition\n if ('and' in condition) {\n andBranchResult = condition.and.every((cond) =>\n this.#evaluateCondition(cond, context)\n );\n }\n\n // OR condition\n if ('or' in condition) {\n orBranchResult = condition.or.some((cond) =>\n this.#evaluateCondition(cond, context)\n );\n }\n\n const finalResult = baseResult && andBranchResult && orBranchResult;\n return finalResult;\n }\n\n /**\n * Validates the workflow for circular dependencies, terminal paths, and unreachable steps\n * @throws Error if validation fails\n */\n #validateWorkflow(): void {\n const errors: ValidationError[] = [\n ...this.#detectCircularDependencies(),\n ...this.#validateTerminalPaths(),\n ...this.#detectUnreachableSteps(),\n ];\n\n if (errors.length > 0) {\n const errorMessages = errors.map(\n (error) =>\n `[${error.type}] ${error.message}${\n error.details.path\n ? ` (Path: ${error.details.path.join(' → ')})`\n : ''\n }${error.details.stepId ? ` (Step: ${error.details.stepId})` : ''}`\n );\n throw new Error(\n `Workflow validation failed:\\n${errorMessages.join('\\n')}`\n );\n }\n }\n\n /**\n * Detects circular dependencies in the workflow\n * @returns Array of ValidationError objects\n */\n #detectCircularDependencies(): ValidationError[] {\n const errors: ValidationError[] = [];\n const stack: StepId[] = [];\n\n const dfs = (stepId: StepId) => {\n if (stack.includes(stepId)) {\n // Found a cycle\n const cycleStartIndex = stack.indexOf(stepId);\n const cyclePath = [...stack.slice(cycleStartIndex), stepId];\n errors.push({\n type: 'circular_dependency',\n message: 'Circular dependency detected in workflow',\n details: { path: cyclePath },\n });\n return;\n }\n\n stack.push(stepId);\n\n const step = this.#steps.find((s) => s.id === stepId);\n if (step?.transitions) {\n Object.keys(step.transitions).forEach((targetId) => {\n dfs(targetId as StepId);\n });\n }\n\n stack.pop();\n };\n\n // Start DFS from first step\n if (this.#steps.length > 0) {\n dfs(this.#steps[0].id);\n }\n\n return errors;\n }\n\n /**\n * Validates the workflow for terminal paths\n * @returns Array of ValidationError objects\n */\n #validateTerminalPaths(): ValidationError[] {\n const errors: ValidationError[] = [];\n const visited = new Set<StepId>();\n const hasTerminalPath = new Set<StepId>();\n\n const dfs = (stepId: StepId, path: StepId[] = []): boolean => {\n if (hasTerminalPath.has(stepId)) return true;\n if (visited.has(stepId) && !hasTerminalPath.has(stepId)) return false;\n\n visited.add(stepId);\n\n const step = this.#steps.find((s) => s.id === stepId);\n if (!step) return false;\n\n // Terminal step\n if (!step.transitions) {\n hasTerminalPath.add(stepId);\n return true;\n }\n\n const transitions = Object.keys(step.transitions);\n if (transitions.length === 0) {\n hasTerminalPath.add(stepId);\n return true;\n }\n\n // Check if any transition leads to a terminal state\n const leadsToTerminal = transitions.some(\n (targetId) =>\n !path.includes(targetId as StepId) &&\n dfs(targetId as StepId, [...path, stepId])\n );\n\n if (leadsToTerminal) {\n hasTerminalPath.add(stepId);\n } else {\n errors.push({\n type: 'no_terminal_path',\n message: 'No path to terminal state found',\n details: {\n stepId,\n path: [...path, stepId],\n },\n });\n }\n\n return leadsToTerminal;\n };\n\n // Start from first step\n if (this.#steps.length > 0) {\n dfs(this.#steps[0].id);\n }\n\n return errors;\n }\n\n /**\n * Detects unreachable steps in the workflow\n * @returns Array of ValidationError objects\n */\n #detectUnreachableSteps(): ValidationError[] {\n const errors: ValidationError[] = [];\n const reachableSteps = new Set<StepId>();\n\n const dfs = (stepId: StepId) => {\n if (reachableSteps.has(stepId)) return;\n\n reachableSteps.add(stepId);\n const step = this.#steps.find((s) => s.id === stepId);\n\n if (step?.transitions) {\n Object.keys(step.transitions).forEach((targetId) => {\n dfs(targetId as StepId);\n });\n }\n };\n\n // Start from first step\n if (this.#steps.length > 0) {\n dfs(this.#steps[0].id);\n }\n\n // Find unreachable steps\n this.#steps.forEach((step) => {\n if (!reachableSteps.has(step.id)) {\n errors.push({\n type: 'unreachable_step',\n message: 'Step is not reachable from the initial step',\n details: { stepId: step.id },\n });\n }\n });\n\n return errors;\n }\n}\n"],"names":["RegisteredLogger","AGENT","WORKFLOW","LogLevel","DEBUG","INFO","WARN","ERROR","BaseLogger","level","_proto","prototype","debug","message","_len","arguments","length","args","Array","_key","log","apply","concat","info","_len2","_key2","warn","_len3","_key3","error","_len4","_key4","formatMessage","JSON","stringify","formatLogEntry","timestamp","Date","toISOString","ConsoleLogger","_BaseLogger2","call","_inheritsLoose","_proto2","_console","logEntry","_len5","_key5","console","_dirPath","_classPrivateFieldLooseKey","FileLogger","_BaseLogger3","dirPath","_this","Object","defineProperty","writable","value","_classPrivateFieldLooseBase","_proto3","Error","fullPath","path","join","destinationPath","ensureDirectoryExists","writeLogToFile","existsSync","mkdirSync","recursive","_extends","createdAt","logs","parse","readFileSync","push","writeFileSync","_redis","_key6","UpstashRedisLogger","_BaseLogger4","redis","key","_this2","_proto4","_log","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","lpush","stop","_x","_x2","getLogs","_getLogs","_callee2","_callee2$","_context2","abrupt","lrange","cleanup","_cleanup","_callee3","_callee3$","_context3","MultiLogger","loggers","_proto5","_debug","_callee4","_len6","_key7","_args4","_callee4$","_context4","Promise","all","map","logger","_x3","_info","_callee5","_len7","_key8","_args5","_callee5$","_context5","_x4","_warn","_callee6","_len8","_key9","_args6","_callee6$","_context6","_x5","_error","_callee7","_len9","_key10","_args7","_callee7$","_context7","_x6","_cleanup2","_callee9","_callee9$","_context9","_ref","_callee8","_callee8$","_context8","_x7","createLogger","config","type","Redis","url","token","createMultiLogger","delay","ms","resolve","setTimeout","_tools","LLM","__setTools","tools","getModelType","model","providerToType","OPEN_AI_VERCEL","ANTHROPIC_VERCEL","GROQ_VERCEL","PERPLEXITY_VERCEL","FIREWORKS_VERCEL","provider","createOpenAICompatibleModel","baseURL","apiKey","defaultModelName","modelName","client","createOpenAI","createModelDef","modelDef","name","openai","process","env","OPENAI_API_KEY","structuredOutputs","anthropic","createAnthropic","ANTHROPIC_API_KEY","_process$env$GROQ_API","GROQ_API_KEY","_process$env$PERPLEXI","PERPLEXITY_API_KEY","_process$env$FIREWORK","FIREWORKS_API_KEY","getParams","_ref2","resultTool","toolsConverted","entries","reduce","memo","_ref3","val","tool","answerTool","answer","toolChoice","convertTools","enabledTools","converted","k","enabled","description","parameters","z","object","data","schema","execute","executor","text","_text","_ref4","messages","_onStepFinish","_ref4$maxSteps","maxSteps","params","argsForExecute","onStepFinish","_onStepFinish2","props","_props$response","_props$response2","response","headers","parseInt","generateText","sent","stream","_stream","_ref5","_this3","_onStepFinish3","_onFinish","_ref5$maxSteps","onFinish","_onStepFinish4","_props$response3","_props$response4","_onFinish2","streamText","Agent","llm","instructions","__setLogger","_ref$maxSteps","messageObjects","content","role","_ref2$maxSteps","createTool","opts","Integration","authType","getApiClient","_getApiClient","_generateIntegrationTools","_this$baseClient","baseClient","clientMethods","_objectWithoutPropertiesLoose","_excluded","schemas","toolSchemas","documentations","toolDocumentations","keys","acc","_documentations$key","_documentations$key2","_extends2","comment","doc","fallbackComment","label","documentation","_executor","_createClass","get","PropertyType","FilterOperators","FieldTypePrimitiveMap","_FieldTypePrimitiveMa","BADGE_LIST","CHECKBOX","BOOLEAN","NUMBER","FLOAT","JSON_ARRAY","JSON_OBJECT","CURRENCY","DATE","LONG_TEXT","MULTI_SELECT","PHONE","SINGLE_LINE_TEXT","SINGLE_SELECT","URL","USER","CONTACT","COMPANY","COMPOSITE","PERSON","ENRICHMENT","splitAndStripQuotes","str","pattern","parts","split","cleanedParts","part","trim","replace","transformFilterValueArray","transformFilterValueBoolean","getJSONField","column","primitiveType","buildQueryString","filterQueryString","sortQueryString","filterQuerySchema","is","array","string","or","optional","eq","not_eq","contains","not_contains","gt","gte","lt","lte","not_in","op","set","transform","not_set","sortQuerySchema","MastraEngine","MastraVector","Mastra","_config$integrations","_config$integrations2","_config$agents","_config$workflows","engine","vectors","agents","integrations","syncs","workflows","Map","setLogger","forEach","integration","has","integrationTools","configuredTools","allTools","hydratedTools","getIntegration","agent","agentLogger","getLogger","workflow","sync","_sync","_this$syncs","syncFn","getAgent","stringifiedName","String","toUpperCase","getTool","_execute","availableIntegrations","from","getTools","isErrorEvent","stateEvent","startsWith","isTransitionEvent","_logger","_steps","_machine","_actor","_buildStateHierarchy","_isVariableReference","_createStepId","_resolveVariables","_evaluateCondition","_validateWorkflow","_detectCircularDependencies","_validateTerminalPaths","_detectUnreachableSteps","Workflow","_detectUnreachableSteps2","_validateTerminalPaths2","_detectCircularDependencies2","_validateWorkflow2","_evaluateCondition2","_resolveVariables2","_createStepId2","_isVariableReference2","_buildStateHierarchy2","_log2","triggerSchema","initializeMachine","_classPrivateFieldLoo","machine","setup","types","actions","updateStepResult","assign","stepResults","_event$output","_event$output2","context","event","stepId","output","result","undefined","newResults","step","find","s","id","transitions","fullContext","hasMatchingCondition","targetId","condition","then","send","setError","initializeTriggerData","triggerData","actors","resolverFunction","fromPromise","_ref6","input","resolvedData","handler","createMachine","initial","_ref7","entry","states","commit","setTriggerSchema","addStep","action","inputSchema","_config$variables","variables","_config$payload","payload","some","requiredData","_i","_Object$entries","_Object$entries$_i","variable","stepConfig","_handler","mergedData","validatedData","executeWorkflow","_executeWorkflow","t0","createActor","start","reject","subscribe","state","matches","results","_state$context$error","_state$context$error2","_log3","_classPrivateFieldLoo2","_classPrivateFieldLoo3","logMessage","logMethod","workflowName","toLowerCase","_this4","stateHierarchy","idle","success","failure","buildState","currentStepId","visited","add","currentStep","invoke","src","_ref8","onDone","target","onError","on","NO_MATCHING_CONDITIONS","_ref9","guard","_ref10","Set","_i2","_Object$entries2","_Object$entries2$_i","sourceData","_this5","andBranchResult","baseResult","orBranchResult","ref","query","sift","and","every","cond","finalResult","errors","errorMessages","details","_this6","stack","dfs","includes","cycleStartIndex","indexOf","cyclePath","slice","pop","_this7","hasTerminalPath","leadsToTerminal","_this8","reachableSteps"],"mappings":"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"}