mastra 0.10.21 → 0.10.22-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics/index.js +1 -0
- package/dist/answer-relevancy-scorer-CTIL35GQ.js +22 -0
- package/dist/answer-relevancy-scorer-CTIL35GQ.js.map +1 -0
- package/dist/bias-detection-scorer-IWHTLHDC.js +23 -0
- package/dist/bias-detection-scorer-IWHTLHDC.js.map +1 -0
- package/dist/{chunk-KBXIE32B.js → chunk-MTFODRSK.js} +2 -2
- package/dist/{chunk-KBXIE32B.js.map → chunk-MTFODRSK.js.map} +1 -1
- package/dist/chunk-QKQ47GQZ.js +9 -0
- package/dist/chunk-QKQ47GQZ.js.map +1 -0
- package/dist/commands/actions/add-scorer.d.ts +2 -0
- package/dist/commands/actions/add-scorer.d.ts.map +1 -0
- package/dist/commands/actions/build-project.d.ts +2 -0
- package/dist/commands/actions/build-project.d.ts.map +1 -0
- package/dist/commands/actions/create-project.d.ts +2 -0
- package/dist/commands/actions/create-project.d.ts.map +1 -0
- package/dist/commands/actions/deploy-project.d.ts +2 -0
- package/dist/commands/actions/deploy-project.d.ts.map +1 -0
- package/dist/commands/actions/init-project.d.ts +2 -0
- package/dist/commands/actions/init-project.d.ts.map +1 -0
- package/dist/commands/actions/lint-project.d.ts +2 -0
- package/dist/commands/actions/lint-project.d.ts.map +1 -0
- package/dist/commands/actions/list-scorers.d.ts +2 -0
- package/dist/commands/actions/list-scorers.d.ts.map +1 -0
- package/dist/commands/actions/start-dev-server.d.ts +2 -0
- package/dist/commands/actions/start-dev-server.d.ts.map +1 -0
- package/dist/commands/actions/start-project.d.ts +2 -0
- package/dist/commands/actions/start-project.d.ts.map +1 -0
- package/dist/commands/create/create.js +2 -1
- package/dist/commands/dev/telemetry-resolver.js +2 -0
- package/dist/commands/dev/telemetry-resolver.js.map +1 -1
- package/dist/commands/scorers/add-new-scorer.d.ts +4 -0
- package/dist/commands/scorers/add-new-scorer.d.ts.map +1 -0
- package/dist/commands/scorers/available-scorers.d.ts +3 -0
- package/dist/commands/scorers/available-scorers.d.ts.map +1 -0
- package/dist/commands/scorers/file-utils.d.ts +5 -0
- package/dist/commands/scorers/file-utils.d.ts.map +1 -0
- package/dist/commands/scorers/list-all-scorers.d.ts +2 -0
- package/dist/commands/scorers/list-all-scorers.d.ts.map +1 -0
- package/dist/commands/scorers/types.d.ts +9 -0
- package/dist/commands/scorers/types.d.ts.map +1 -0
- package/dist/completeness-scorer-KH4LU4BW.js +23 -0
- package/dist/completeness-scorer-KH4LU4BW.js.map +1 -0
- package/dist/content-similarity-scorer-NB76ISB5.js +22 -0
- package/dist/content-similarity-scorer-NB76ISB5.js.map +1 -0
- package/dist/faithfulness-scorer-F6GLSRTV.js +28 -0
- package/dist/faithfulness-scorer-F6GLSRTV.js.map +1 -0
- package/dist/hallucination-scorer-NJW7PTKD.js +28 -0
- package/dist/hallucination-scorer-NJW7PTKD.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +712 -389
- package/dist/index.js.map +1 -1
- package/dist/keyword-coverage-scorer-63AEWDTL.js +22 -0
- package/dist/keyword-coverage-scorer-63AEWDTL.js.map +1 -0
- package/dist/templates/scorers/answer-relevancy-scorer.d.ts +2 -0
- package/dist/templates/scorers/answer-relevancy-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/answer-relevancy-scorer.ts +15 -0
- package/dist/templates/scorers/bias-detection-scorer.d.ts +2 -0
- package/dist/templates/scorers/bias-detection-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/bias-detection-scorer.ts +16 -0
- package/dist/templates/scorers/completeness-scorer.d.ts +2 -0
- package/dist/templates/scorers/completeness-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/completeness-scorer.ts +16 -0
- package/dist/templates/scorers/content-similarity-scorer.d.ts +2 -0
- package/dist/templates/scorers/content-similarity-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/content-similarity-scorer.ts +15 -0
- package/dist/templates/scorers/faithfulness-scorer.d.ts +2 -0
- package/dist/templates/scorers/faithfulness-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/faithfulness-scorer.ts +21 -0
- package/dist/templates/scorers/hallucination-scorer.d.ts +2 -0
- package/dist/templates/scorers/hallucination-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/hallucination-scorer.ts +21 -0
- package/dist/templates/scorers/keyword-coverage-scorer.d.ts +2 -0
- package/dist/templates/scorers/keyword-coverage-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/keyword-coverage-scorer.ts +15 -0
- package/dist/templates/scorers/textual-difference-scorer.d.ts +2 -0
- package/dist/templates/scorers/textual-difference-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/textual-difference-scorer.ts +16 -0
- package/dist/templates/scorers/tone-consistency-scorer.d.ts +2 -0
- package/dist/templates/scorers/tone-consistency-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/tone-consistency-scorer.ts +16 -0
- package/dist/templates/scorers/toxicity-detection-scorer.d.ts +2 -0
- package/dist/templates/scorers/toxicity-detection-scorer.d.ts.map +1 -0
- package/dist/templates/scorers/toxicity-detection-scorer.ts +16 -0
- package/dist/textual-difference-scorer-2MUWQ22U.js +23 -0
- package/dist/textual-difference-scorer-2MUWQ22U.js.map +1 -0
- package/dist/tone-consistency-scorer-ZEXVRFCP.js +23 -0
- package/dist/tone-consistency-scorer-ZEXVRFCP.js.map +1 -0
- package/dist/toxicity-detection-scorer-RMTLQCHI.js +23 -0
- package/dist/toxicity-detection-scorer-RMTLQCHI.js.map +1 -0
- package/dist/utils/string.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/starter-files/config.d.ts +0 -26
- package/dist/starter-files/config.d.ts.map +0 -1
- package/dist/starter-files/config.ts +0 -25
- package/dist/starter-files/mastra-pg.docker-compose.yaml +0 -15
- package/dist/utils/find-api-keys.d.ts +0 -5
- package/dist/utils/find-api-keys.d.ts.map +0 -1
- package/dist/utils/get-engine-path.d.ts +0 -2
- package/dist/utils/get-engine-path.d.ts.map +0 -1
- package/dist/utils/get-env.d.ts +0 -2
- package/dist/utils/get-env.d.ts.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/build/BuildBundler.ts","../src/commands/build/build.ts","../src/commands/deploy/index.ts","../src/commands/dev/DevBundler.ts","../src/commands/dev/dev.ts","../src/commands/lint/rules/mastraCoreRule.ts","../src/commands/lint/rules/nextConfigRule.ts","../src/commands/lint/rules/tsConfigRule.ts","../src/commands/lint/rules/index.ts","../src/commands/lint/index.ts","../src/commands/start/start.ts","../src/index.ts"],"names":["FileService","dir","fs","join","getDeployer","Bundler","process","nextConfigPath","readFileSync","version","isWebContainer"],"mappings":"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","file":"index.js","sourcesContent":["import { FileService } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\n\nexport class BuildBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Build');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch (err) {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n }\n\n async bundle(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, outputDirectory, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n // @ts-ignore\n import { evaluate } from '@mastra/core/eval';\n import { AvailableHooks, registerHook } from '@mastra/core/hooks';\n import { TABLE_EVALS } from '@mastra/core/storage';\n import { checkEvalStorageFields } from '@mastra/core/utils';\n import { mastra } from '#mastra';\n import { createNodeServer, getToolExports } from '#server';\n import { tools } from '#tools';\n // @ts-ignore\n await createNodeServer(mastra, { tools: getToolExports(tools) });\n\n registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {\n evaluate({\n agentName,\n input,\n metric,\n output,\n runId,\n globalRunId: runId,\n instructions,\n });\n });\n\n if (mastra.getStorage()) {\n // start storage init in the background\n mastra.getStorage().init();\n }\n\n registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n const storage = mastra.getStorage();\n if (storage) {\n // Check for required fields\n const logger = mastra?.getLogger();\n const areFieldsValid = checkEvalStorageFields(traceObject, logger);\n if (!areFieldsValid) return;\n\n await storage.insert({\n tableName: TABLE_EVALS,\n record: {\n input: traceObject.input,\n output: traceObject.output,\n result: JSON.stringify(traceObject.result || {}),\n agent_name: traceObject.agentName,\n metric_name: traceObject.metricName,\n instructions: traceObject.instructions,\n test_info: null,\n global_run_id: traceObject.globalRunId,\n run_id: traceObject.runId,\n created_at: new Date().toISOString(),\n },\n });\n }\n });\n `;\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n }\n}\n","import { join } from 'node:path';\n\nimport { FileService } from '../../services/service.file';\n\nimport { BuildBundler } from './BuildBundler';\nimport { getDeployer } from '@mastra/deployer';\nimport { logger } from '../../utils/logger';\n\nexport async function build({\n dir,\n tools,\n root,\n env,\n}: {\n dir?: string;\n tools?: string[];\n root?: string;\n env?: string;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler(env);\n deployer.__setLogger(logger);\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info(`Build successful, you can now deploy the .mastra/output directory to your target platform.`);\n logger.info(\n `To start the server, run: node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs`,\n );\n return;\n }\n\n logger.info('Deployer found, preparing deployer build...');\n\n platformDeployer.__setLogger(logger);\n await platformDeployer.prepare(outputDirectory);\n await platformDeployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info('You can now deploy the .mastra/output directory to your target platform.');\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Mastra Build failed`, { error });\n }\n process.exit(1);\n }\n}\n","import { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\n\nimport { FileService } from '../../services/service.file';\nimport { logger } from '../../utils/logger';\n\nexport async function deploy({ dir }: { dir?: string }) {\n let mastraDir = dir || join(process.cwd(), 'src/mastra');\n try {\n const outputDirectory = join(process.cwd(), '.mastra');\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n const deployer = await getDeployer(mastraEntryFile, outputDirectory);\n\n if (!deployer) {\n logger.warn('No deployer found.');\n return;\n }\n\n try {\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, []);\n try {\n await deployer.deploy(outputDirectory);\n } catch (error) {\n console.error('[Mastra Deploy] - Error deploying:', error);\n }\n } catch (err) {\n if (err instanceof Error) {\n logger.debug(`error: ${err.message}`, { error: err });\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n logger.debug(`error: ${error.message}`, { error });\n }\n logger.warn('No deployer found.');\n }\n}\n","import { writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { FileService } from '@mastra/deployer';\nimport { createWatcher, getWatcherInputOptions, writeTelemetryConfig, getBundlerOptions } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport * as fsExtra from 'fs-extra';\nimport type { RollupWatcherEvent } from 'rollup';\n\nexport class DevBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Dev');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const playgroundServePath = join(outputDirectory, this.outputDir, 'playground');\n await fsExtra.copy(join(dirname(__dirname), 'src/playground/dist'), playgroundServePath, {\n overwrite: true,\n });\n }\n\n async watch(\n entryFile: string,\n outputDirectory: string,\n toolsPaths: (string | string[])[],\n ): ReturnType<typeof createWatcher> {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const envFiles = await this.getEnvFiles();\n\n let sourcemapEnabled = false;\n let transpilePackages: string[] = [];\n try {\n const bundlerOptions = await getBundlerOptions(entryFile, outputDirectory);\n sourcemapEnabled = !!bundlerOptions?.sourcemap;\n transpilePackages = bundlerOptions?.transpilePackages ?? [];\n } catch (error) {\n this.logger.debug('Failed to get bundler options, sourcemap will be disabled', { error });\n }\n\n const inputOptions = await getWatcherInputOptions(\n entryFile,\n 'node',\n {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),\n },\n { sourcemap: sourcemapEnabled, transpilePackages },\n );\n const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);\n\n const outputDir = join(outputDirectory, this.outputDir);\n await writeTelemetryConfig({\n entryFile,\n outputDir,\n options: { sourcemap: sourcemapEnabled },\n logger: this.logger,\n });\n\n const mastraFolder = dirname(entryFile);\n const fileService = new FileService();\n const customInstrumentation = fileService.getFirstExistingFileOrUndefined([\n join(mastraFolder, 'instrumentation.js'),\n join(mastraFolder, 'instrumentation.ts'),\n join(mastraFolder, 'instrumentation.mjs'),\n ]);\n\n await this.writeInstrumentationFile(outputDir, customInstrumentation);\n\n await this.writePackageJson(outputDir, new Map(), {});\n\n const copyPublic = this.copyPublic.bind(this);\n\n const watcher = await createWatcher(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn(`Circular dependency found:\n\\t${warning.message.replace('Circular dependency: ', '')}`);\n }\n },\n plugins: [\n // @ts-ignore - types are good\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n ...inputOptions.plugins,\n {\n name: 'env-watcher',\n buildStart() {\n for (const envFile of envFiles) {\n this.addWatchFile(envFile);\n }\n },\n },\n {\n name: 'public-dir-watcher',\n buildStart() {\n this.addWatchFile(join(dirname(entryFile), 'public'));\n },\n buildEnd() {\n return copyPublic(dirname(entryFile), outputDirectory);\n },\n },\n {\n name: 'tools-watcher',\n async buildEnd() {\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(toolsInputOptions || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(outputDir, 'tools.mjs'),\n `${toolImports.join('\\n')}\n \n export const tools = [${toolsExports.join(', ')}]`,\n );\n },\n },\n ],\n input: {\n index: join(__dirname, 'templates', 'dev.entry.js'),\n ...toolsInputOptions,\n },\n },\n {\n dir: outputDir,\n sourcemap: sourcemapEnabled,\n },\n );\n\n this.logger.info('Starting watcher...');\n return new Promise((resolve, reject) => {\n const cb = (event: RollupWatcherEvent) => {\n if (event.code === 'BUNDLE_END') {\n this.logger.info('Bundling finished, starting server...');\n watcher.off('event', cb);\n resolve(watcher);\n }\n\n if (event.code === 'ERROR') {\n console.log(event);\n this.logger.error('Bundling failed, stopping watcher...');\n watcher.off('event', cb);\n reject(event);\n }\n };\n\n watcher.on('event', cb);\n });\n }\n\n async bundle(): Promise<void> {\n // Do nothing\n }\n}\n","import type { ChildProcess } from 'child_process';\nimport process from 'node:process';\nimport { join } from 'path';\nimport { FileService } from '@mastra/deployer';\nimport { getServerOptions } from '@mastra/deployer/build';\nimport { isWebContainer } from '@webcontainer/env';\nimport { execa } from 'execa';\nimport getPort from 'get-port';\n\nimport { logger } from '../../utils/logger.js';\n\nimport { DevBundler } from './DevBundler';\n\nlet currentServerProcess: ChildProcess | undefined;\nlet isRestarting = false;\nconst ON_ERROR_MAX_RESTARTS = 3;\n\nconst startServer = async (\n dotMastraPath: string,\n port: number,\n env: Map<string, string>,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n errorRestartCount = 0,\n) => {\n let serverIsReady = false;\n try {\n // Restart server\n logger.info('[Mastra Dev] - Starting server...');\n\n const commands = [];\n\n if (startOptions.inspect) {\n commands.push('--inspect');\n }\n\n if (startOptions.inspectBrk) {\n commands.push('--inspect-brk'); //stops at beginning of script\n }\n\n if (startOptions.customArgs) {\n commands.push(...startOptions.customArgs);\n }\n\n if (!isWebContainer()) {\n const instrumentation = import.meta.resolve('@opentelemetry/instrumentation/hook.mjs');\n commands.push(\n `--import=${import.meta.resolve('mastra/telemetry-loader')}`,\n '--import=./instrumentation.mjs',\n `--import=${instrumentation}`,\n );\n }\n commands.push('index.mjs');\n\n currentServerProcess = execa(process.execPath, commands, {\n cwd: dotMastraPath,\n env: {\n NODE_ENV: 'production',\n ...Object.fromEntries(env),\n MASTRA_DEV: 'true',\n PORT: port.toString(),\n MASTRA_DEFAULT_STORAGE_URL: `file:${join(dotMastraPath, '..', 'mastra.db')}`,\n },\n stdio: ['inherit', 'inherit', 'inherit', 'ipc'],\n reject: false,\n }) as any as ChildProcess;\n\n if (currentServerProcess?.exitCode && currentServerProcess?.exitCode !== 0) {\n if (!currentServerProcess) {\n throw new Error(`Server failed to start`);\n }\n throw new Error(\n `Server failed to start with error: ${currentServerProcess.stderr || currentServerProcess.stdout}`,\n );\n }\n\n currentServerProcess.on('message', async (message: any) => {\n if (message?.type === 'server-ready') {\n serverIsReady = true;\n\n // Send refresh signal\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Ignore retry errors\n }\n }\n }\n });\n } catch (err) {\n const execaError = err as { stderr?: string; stdout?: string };\n if (execaError.stderr) logger.error('Server error output:', { stderr: execaError.stderr });\n if (execaError.stdout) logger.debug('Server output:', { stdout: execaError.stdout });\n\n if (!serverIsReady) {\n throw err;\n }\n\n // Attempt to restart on error after a delay\n setTimeout(() => {\n if (!isRestarting) {\n errorRestartCount++;\n if (errorRestartCount > ON_ERROR_MAX_RESTARTS) {\n logger.error(`Server failed to start after ${ON_ERROR_MAX_RESTARTS} error attempts. Giving up.`);\n process.exit(1);\n }\n logger.error(\n `Attempting to restart server after error... (Attempt ${errorRestartCount}/${ON_ERROR_MAX_RESTARTS})`,\n );\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startServer(dotMastraPath, port, env, startOptions, errorRestartCount);\n }\n }, 1000);\n }\n};\n\nasync function rebundleAndRestart(\n dotMastraPath: string,\n port: number,\n bundler: DevBundler,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n) {\n if (isRestarting) {\n return;\n }\n\n isRestarting = true;\n try {\n // If current server process is running, stop it\n if (currentServerProcess) {\n logger.debug('Stopping current server...');\n currentServerProcess.kill('SIGINT');\n }\n\n const env = await bundler.loadEnvVars();\n\n await startServer(join(dotMastraPath, 'output'), port, env, startOptions);\n } finally {\n isRestarting = false;\n }\n}\n\nexport async function dev({\n port,\n dir,\n root,\n tools,\n env,\n inspect,\n inspectBrk,\n customArgs,\n}: {\n dir?: string;\n root?: string;\n port: number | null;\n tools?: string[];\n env?: string;\n inspect?: boolean;\n inspectBrk?: boolean;\n customArgs?: string[];\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(process.cwd(), dir)) : join(process.cwd(), 'src', 'mastra');\n const dotMastraPath = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n const startOptions = { inspect, inspectBrk, customArgs };\n\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new DevBundler(env);\n bundler.__setLogger(logger);\n\n // Get the port to use before prepare to set environment variables\n const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n let portToUse = port ?? serverOptions?.port ?? process.env.PORT;\n if (!portToUse || isNaN(Number(portToUse))) {\n const portList = Array.from({ length: 21 }, (_, i) => 4111 + i);\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\n }\n\n await bundler.prepare(dotMastraPath);\n\n const watcher = await bundler.watch(entryFile, dotMastraPath, discoveredTools);\n\n const loadedEnv = await bundler.loadEnvVars();\n\n // spread loadedEnv into process.env\n for (const [key, value] of loadedEnv.entries()) {\n process.env[key] = value;\n }\n\n await startServer(join(dotMastraPath, 'output'), Number(portToUse), loadedEnv, startOptions);\n watcher.on('event', (event: { code: string }) => {\n if (event.code === 'BUNDLE_END') {\n logger.info('[Mastra Dev] - Bundling finished, restarting server...');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n rebundleAndRestart(dotMastraPath, Number(portToUse), bundler, startOptions);\n }\n });\n\n process.on('SIGINT', () => {\n logger.info('[Mastra Dev] - Stopping server...');\n if (currentServerProcess) {\n currentServerProcess.kill();\n }\n\n watcher\n .close()\n .catch(() => {})\n .finally(() => {\n process.exit(0);\n });\n });\n}\n","import { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nexport const mastraCoreRule: LintRule = {\n name: 'mastra-core',\n description: 'Checks if @mastra/core is installed',\n async run(context: LintContext): Promise<boolean> {\n const hasCore = context.mastraPackages.some(pkg => pkg.name === '@mastra/core');\n if (!hasCore) {\n logger.error('@mastra/core is not installed. This package is required for Mastra to work properly.');\n return false;\n }\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readNextConfig(dir: string) {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n const nextConfigContent = readFileSync(nextConfigPath, 'utf-8');\n const configMatch = nextConfigContent.match(/const nextConfig = ({[\\s\\S]*?});/);\n if (!configMatch?.[1]) {\n return null;\n }\n const configStr = configMatch[1].replace(/\\n/g, '').replace(/\\s+/g, ' ');\n return eval(`(${configStr})`);\n } catch {\n return null;\n }\n}\n\nfunction isNextJsProject(dir: string): boolean {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n readFileSync(nextConfigPath, 'utf-8');\n return true;\n } catch {\n return false;\n }\n}\n// TODO: Move to babel\nexport const nextConfigRule: LintRule = {\n name: 'next-config',\n description: 'Checks if Next.js config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n if (!isNextJsProject(context.rootDir)) {\n return true;\n }\n\n const nextConfig = readNextConfig(context.rootDir);\n if (!nextConfig) {\n return false;\n }\n\n const serverExternals = nextConfig.serverExternalPackages || [];\n const hasMastraExternals = serverExternals.some(\n (pkg: string) => pkg === '@mastra/*' || pkg === '@mastra/core' || pkg.startsWith('@mastra/'),\n );\n\n if (!hasMastraExternals) {\n logger.error('next.config.js is missing Mastra packages in serverExternalPackages');\n logger.error('Please add the following to your next.config.js:');\n logger.error(' serverExternalPackages: [\"@mastra/*\"],');\n return false;\n }\n\n logger.info('Next.js config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport stripJsonComments from 'strip-json-comments';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readTsConfig(dir: string) {\n const tsConfigPath = join(dir, 'tsconfig.json');\n try {\n const tsConfigContent = readFileSync(tsConfigPath, 'utf-8');\n const cleanTsConfigContent = stripJsonComments(tsConfigContent);\n return JSON.parse(cleanTsConfigContent);\n } catch {\n return null;\n }\n}\n\nexport const tsConfigRule: LintRule = {\n name: 'ts-config',\n description: 'Checks if TypeScript config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n const tsConfig = readTsConfig(context.rootDir);\n if (!tsConfig) {\n logger.warn('No tsconfig.json found. This might cause issues with Mastra packages.');\n return true; // Not a critical error, just a warning\n }\n\n const { module, moduleResolution } = tsConfig.compilerOptions || {};\n\n // Check if either moduleResolution is 'bundler' or module is 'CommonJS'\n const isValidConfig = moduleResolution === 'bundler' || module === 'CommonJS';\n if (!isValidConfig) {\n logger.error('tsconfig.json has invalid configuration');\n logger.error('Please set either:');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"moduleResolution\": \"bundler\"');\n logger.error(' }');\n logger.error('or');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"module\": \"CommonJS\"');\n logger.error(' }');\n logger.error('For the recommended TypeScript configuration, see:');\n logger.error('https://mastra.ai/en/docs/getting-started/installation#initialize-typescript');\n return false;\n }\n\n logger.info('TypeScript config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { mastraCoreRule } from './mastraCoreRule.js';\nimport { nextConfigRule } from './nextConfigRule.js';\nimport { tsConfigRule } from './tsConfigRule.js';\nimport type { LintRule } from './types.js';\n\nexport const rules: LintRule[] = [nextConfigRule, tsConfigRule, mastraCoreRule];\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\nimport { FileService } from '../../services/service.file.js';\nimport { logger } from '../../utils/logger.js';\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { rules } from './rules/index.js';\nimport type { LintContext } from './rules/types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface MastraPackage {\n name: string;\n version: string;\n isAlpha: boolean;\n}\n\nfunction readPackageJson(dir: string): PackageJson {\n const packageJsonPath = join(dir, 'package.json');\n try {\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(packageJsonContent);\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Failed to read package.json: ${error.message}`);\n }\n throw error;\n }\n}\n\nfunction getMastraPackages(packageJson: PackageJson): MastraPackage[] {\n const allDependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n const mastraPackages = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n return mastraPackages.map(([name, version]) => ({\n name,\n version,\n isAlpha: version.includes('alpha'),\n }));\n}\n\nexport async function lint({ dir, root, tools }: { dir?: string; root?: string; tools?: string[] }): Promise<boolean> {\n try {\n const rootDir = root || process.cwd();\n const mastraDir = dir\n ? dir.startsWith('/')\n ? dir\n : join(process.cwd(), dir)\n : join(process.cwd(), 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n const defaultToolsPath = join(mastraDir, 'tools');\n const discoveredTools = [defaultToolsPath, ...(tools ?? [])];\n\n const packageJson = readPackageJson(rootDir);\n const mastraPackages = getMastraPackages(packageJson);\n\n const context: LintContext = {\n rootDir,\n mastraDir,\n outputDirectory,\n discoveredTools,\n packageJson,\n mastraPackages,\n };\n\n // Run all rules\n const results = await Promise.all(rules.map(rule => rule.run(context)));\n const allRulesPassed = results.every(result => result);\n\n // Run deployer lint if all rules passed\n if (allRulesPassed) {\n const fileService = new FileService();\n const mastraEntryFile = fileService.getFirstExistingFile([\n join(mastraDir, 'index.ts'),\n join(mastraDir, 'index.js'),\n ]);\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler();\n await deployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n } else {\n await platformDeployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n }\n }\n\n return allRulesPassed;\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Lint check failed: ${error.message}`);\n }\n return false;\n }\n}\n","import { spawn } from 'child_process';\nimport fs from 'fs';\nimport { join } from 'path';\nimport { isWebContainer } from '@webcontainer/env';\nimport { logger } from '../../utils/logger';\ninterface StartOptions {\n dir?: string;\n telemetry?: boolean;\n}\n\nexport async function start(options: StartOptions = {}) {\n const outputDir = options.dir || '.mastra/output';\n const telemetry = options.telemetry ?? true;\n\n try {\n // Check if the output directory exist\n const outputPath = join(process.cwd(), outputDir);\n if (!fs.existsSync(outputPath)) {\n throw new Error(`Output directory ${outputPath} does not exist`);\n }\n\n const commands = [];\n\n if (telemetry && !isWebContainer()) {\n const instrumentation = '@opentelemetry/instrumentation/hook.mjs';\n commands.push('--import=./instrumentation.mjs', `--import=${instrumentation}`);\n }\n\n commands.push('index.mjs');\n\n // Start the server using node\n const server = spawn('node', commands, {\n cwd: outputPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n NODE_ENV: 'production',\n },\n });\n\n server.on('error', err => {\n logger.error(`Failed to start server: ${err.message}`);\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n server.kill('SIGINT');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n server.kill('SIGTERM');\n process.exit(0);\n });\n } catch (error: any) {\n logger.error(`Failed to start Mastra server: ${error.message}`);\n process.exit(1);\n }\n}\n","#! /usr/bin/env node\nimport { Command } from 'commander';\n\nimport { config } from 'dotenv';\nimport { PosthogAnalytics, setAnalytics } from './analytics/index';\nimport type { CLI_ORIGIN } from './analytics/index';\nimport { build } from './commands/build/build';\nimport { create } from './commands/create/create';\nimport { deploy } from './commands/deploy/index';\nimport { dev } from './commands/dev/dev';\nimport { init } from './commands/init/init';\nimport { checkAndInstallCoreDeps, checkPkgJson, interactivePrompt } from './commands/init/utils';\nimport { lint } from './commands/lint';\nimport { start } from './commands/start';\nimport { DepsService } from './services/service.deps';\nimport { logger } from './utils/logger';\n\nconst depsService = new DepsService();\nconst version = await depsService.getPackageVersion();\n\nconst analytics = new PosthogAnalytics({\n apiKey: 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT',\n host: 'https://us.posthog.com',\n version: version!,\n});\n\nsetAnalytics(analytics);\n\nconst program = new Command();\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nprogram\n .version(`${version}`, '-v, --version')\n .description(`Mastra CLI ${version}`)\n .action(() => {\n try {\n analytics.trackCommand({\n command: 'version',\n origin,\n });\n console.log(`Mastra CLI: ${version}`);\n } catch {\n // ignore\n }\n });\n\nprogram\n .command('create [project-name]')\n .description('Create a new Mastra project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google, or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-t, --timeout [timeout]', 'Configurable timeout for package installation, defaults to 60000 ms')\n .option('-d, --dir <directory>', 'Target directory for Mastra source code (default: src/)')\n .option(\n '-p, --project-name <string>',\n 'Project name that will be used in package.json and as the project directory name.',\n )\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .option(\n '--template [template-name]',\n 'Create project from a template (use template name, public GitHub URL, or leave blank to select from list)',\n )\n .action(async (projectNameArg, args) => {\n // Unify: use argument if present, else option\n const projectName = projectNameArg || args.projectName;\n await analytics.trackCommandExecution({\n command: 'create',\n args: { ...args, projectName },\n execution: async () => {\n const timeout = args?.timeout ? (args?.timeout === true ? 60000 : parseInt(args?.timeout, 10)) : undefined;\n if (args.default) {\n await create({\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n timeout,\n mcpServer: args.mcp,\n template: args.template,\n });\n return;\n }\n await create({\n components: args.components ? args.components.split(',') : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n timeout,\n projectName,\n directory: args.dir,\n mcpServer: args.mcp,\n template: args.template,\n });\n },\n origin,\n });\n });\n\nprogram\n .command('init')\n .description('Initialize Mastra in your project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-d, --dir <directory>', 'Directory for Mastra files to (defaults to src/)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .action(async args => {\n await analytics.trackCommandExecution({\n command: 'init',\n args,\n execution: async () => {\n await checkPkgJson();\n await checkAndInstallCoreDeps(args?.example || args?.default);\n\n if (!Object.keys(args).length) {\n const result = await interactivePrompt();\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n });\n return;\n }\n\n if (args?.default) {\n await init({\n directory: 'src/',\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n }\n\n const componentsArr = args.components ? args.components.split(',') : [];\n await init({\n directory: args.dir,\n components: componentsArr,\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n },\n origin,\n });\n });\n\nprogram\n .command('lint')\n .description('Lint your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .action(async args => {\n await analytics.trackCommandExecution({\n command: 'lint',\n args,\n execution: async () => {\n await lint({ dir: args.dir, root: args.root, tools: args.tools ? args.tools.split(',') : [] });\n },\n origin,\n });\n });\n\nprogram\n .command('dev')\n .description('Start mastra server')\n .option('-d, --dir <dir>', 'Path to your mastra folder')\n .option('-r, --root <root>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-p, --port <port>', 'deprecated: Port number for the development server (defaults to 4111)')\n .option('-e, --env <env>', 'Custom env file to include in the dev server')\n .option('-i, --inspect', 'Start the dev server in inspect mode')\n .option('-b, --inspect-brk', 'Start the dev server in inspect mode and break at the beginning of the script')\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types',\n )\n .action(args => {\n analytics.trackCommand({\n command: 'dev',\n origin,\n });\n\n if (args?.port) {\n logger.warn('The --port option is deprecated. Use the server key in the Mastra instance instead.');\n }\n\n dev({\n port: args?.port ? parseInt(args.port) : null,\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n inspect: args?.inspect && !args?.inspectBrk,\n inspectBrk: args?.inspectBrk,\n customArgs: args?.customArgs ? args.customArgs.split(',') : [],\n }).catch(err => {\n logger.error(err.message);\n });\n });\n\nprogram\n .command('build')\n .description('Build your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra Folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-e, --env <env>', 'Custom env file to include in the build')\n .action(async args => {\n await analytics.trackCommandExecution({\n command: 'mastra build',\n args,\n execution: async () => {\n await build({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n });\n },\n origin,\n });\n });\n\nprogram\n .command('deploy')\n .description('Deploy your Mastra project')\n .option('-d, --dir <path>', 'Path to directory')\n .action(async args => {\n config({ path: ['.env', '.env.production'] });\n await analytics.trackCommandExecution({\n command: 'mastra deploy',\n args,\n execution: async () => {\n logger.warn(`DEPRECATED: The deploy command is deprecated.\n Please use the mastra build command instead.\n Then deploy .mastra/output to your target platform.\n `);\n await deploy({ dir: args.dir });\n },\n origin,\n });\n });\n\nprogram\n .command('start')\n .description('Start your built Mastra application')\n .option('-d, --dir <path>', 'Path to your built Mastra output directory (default: .mastra/output)')\n .option('-nt, --no-telemetry', 'Disable telemetry on start')\n .action(async args => {\n await analytics.trackCommandExecution({\n command: 'start',\n args,\n execution: async () => {\n await start({\n dir: args.dir,\n telemetry: !args.noTelemetry,\n });\n },\n origin,\n });\n });\n\nprogram.parse(process.argv);\n\nexport { create } from './commands/create/create';\nexport { PosthogAnalytics } from './analytics/index';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/string.ts","../src/commands/scorers/available-scorers.ts","../src/commands/scorers/file-utils.ts","../src/commands/scorers/add-new-scorer.ts","../src/commands/actions/add-scorer.ts","../src/commands/build/BuildBundler.ts","../src/commands/build/build.ts","../src/commands/actions/build-project.ts","../src/commands/actions/create-project.ts","../src/commands/deploy/index.ts","../src/commands/actions/deploy-project.ts","../src/commands/actions/init-project.ts","../src/commands/lint/rules/mastraCoreRule.ts","../src/commands/lint/rules/nextConfigRule.ts","../src/commands/lint/rules/tsConfigRule.ts","../src/commands/lint/rules/index.ts","../src/commands/lint/index.ts","../src/commands/actions/lint-project.ts","../src/commands/scorers/list-all-scorers.ts","../src/commands/actions/list-scorers.ts","../src/commands/dev/DevBundler.ts","../src/commands/dev/dev.ts","../src/commands/actions/start-dev-server.ts","../src/commands/start/start.ts","../src/commands/actions/start-project.ts","../src/index.ts"],"names":["p","pc","FileService","dir","fs","origin","join","getDeployer","nextConfigPath","readFileSync","version","p3","Bundler","process","isWebContainer"],"mappings":"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","file":"index.js","sourcesContent":["export const toCamelCase = (str: string) => {\n return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n};\n","import type { ScorerTemplate } from './types';\n\nexport const AVAILABLE_SCORERS: Array<ScorerTemplate> = [\n // Accuracy and Reliability scorers\n {\n id: 'answer-relevancy',\n name: 'Answer Relevancy',\n description: 'Evaluates how well responses address the input query using LLM',\n category: 'accuracy-and-reliability',\n filename: 'answer-relevancy-scorer.ts',\n },\n {\n id: 'faithfulness',\n name: 'Faithfulness',\n description: 'Measures how accurately responses represent provided context',\n category: 'accuracy-and-reliability',\n filename: 'faithfulness-scorer.ts',\n },\n {\n id: 'hallucination',\n name: 'Hallucination Detection',\n description: 'Detects facts or claims not present in provided context',\n category: 'accuracy-and-reliability',\n filename: 'hallucination-scorer.ts',\n },\n {\n id: 'completeness',\n name: 'Completeness',\n description: 'Checks if responses include all necessary information',\n category: 'accuracy-and-reliability',\n filename: 'completeness-scorer.ts',\n },\n {\n id: 'content-similarity',\n name: 'Content Similarity',\n description: 'Evaluates consistency of information across different phrasings',\n category: 'accuracy-and-reliability',\n filename: 'content-similarity-scorer.ts',\n },\n {\n id: 'textual-difference',\n name: 'Textual Difference',\n description: 'Measures textual differences between strings',\n category: 'accuracy-and-reliability',\n filename: 'textual-difference-scorer.ts',\n },\n\n // Output Quality scorers\n {\n id: 'tone-consistency',\n name: 'Tone Consistency',\n description: 'Measures consistency in formality, complexity, and style',\n category: 'output-quality',\n filename: 'tone-consistency-scorer.ts',\n },\n {\n id: 'toxicity-detection',\n name: 'Toxicity Detection',\n description: 'Detects harmful or inappropriate content in responses',\n category: 'output-quality',\n filename: 'toxicity-detection-scorer.ts',\n },\n {\n id: 'bias-detection',\n name: 'Bias Detection',\n description: 'Detects potential biases in output',\n category: 'output-quality',\n filename: 'bias-detection-scorer.ts',\n },\n {\n id: 'keyword-coverage',\n name: 'Keyword Coverage',\n description: 'Assesses how well output covers important keywords from input',\n category: 'output-quality',\n filename: 'keyword-coverage-scorer.ts',\n },\n];\n","import fs from 'fs';\nimport path from 'path';\nimport * as p from '@clack/prompts';\n\nconst DEFAULT_SCORERS_DIR = 'src/mastra/scorers';\n\nexport function writeScorer(filename: string, content: string, customPath?: string): { ok: true; message: string } {\n const rootDir = process.cwd();\n const scorersPath = customPath || DEFAULT_SCORERS_DIR;\n const fullPath = path.join(rootDir, scorersPath);\n\n if (!fs.existsSync(fullPath)) {\n try {\n fs.mkdirSync(fullPath, { recursive: true });\n p.log.success(`Created scorers directory at ${scorersPath}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to create directory: ${errorMessage}`);\n }\n }\n\n const filePath = path.join(fullPath, filename);\n\n if (fs.existsSync(filePath)) {\n throw new Error(`Skipped: Scorer ${filename} already exists at ${scorersPath}`);\n }\n\n try {\n fs.writeFileSync(filePath, content);\n\n return { ok: true, message: `Created scorer at ${path.relative(rootDir, filePath)}` };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to write scorer: ${errorMessage}`);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { DepsService } from '../../services/service.deps';\nimport { toCamelCase } from '../../utils/string';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport { writeScorer } from './file-utils';\nimport type { ScorerTemplate } from './types';\n\nexport async function selectScorer(): Promise<ScorerTemplate[] | null> {\n const options = [];\n\n for (const scorer of AVAILABLE_SCORERS) {\n options.push({\n value: scorer.id,\n label: `${scorer.name}`,\n hint: `${scorer.description}`,\n });\n }\n\n const selectedIds = await p.multiselect({\n message: 'Choose a scorer to add:',\n options,\n });\n\n if (p.isCancel(selectedIds) || typeof selectedIds !== 'object') {\n p.log.info('Scorer selection cancelled.');\n return null;\n }\n\n if (!Array.isArray(selectedIds)) {\n return null;\n }\n\n const selectedScorers = selectedIds\n .map(scorerId => {\n const foundScorer = AVAILABLE_SCORERS.find(s => s.id === scorerId);\n return foundScorer;\n })\n .filter(item => item != undefined);\n\n return selectedScorers;\n}\n\nexport async function addNewScorer(scorerId?: string, customDir?: string) {\n const depService = new DepsService();\n const needsEvals = (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n\n if (needsEvals) {\n await depService.installPackages(['@mastra/evals']);\n }\n\n if (!scorerId) {\n await showInteractivePrompt(customDir);\n return;\n }\n\n const foundScorer = AVAILABLE_SCORERS.find(scorer => scorer.id === scorerId.toLowerCase());\n if (!foundScorer) {\n p.log.error(`Scorer for ${scorerId} not available`);\n return;\n }\n\n const { id, filename } = foundScorer;\n\n try {\n const res = await initializeScorer(id, filename, customDir);\n if (!res.ok) {\n return;\n }\n p.log.success(res.message);\n showSuccessNote();\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes('Skipped')) {\n return p.log.warning(errorMessage);\n }\n p.log.error(errorMessage);\n }\n}\n\nasync function initializeScorer(scorerId: string, filename: string, customPath?: string) {\n try {\n const templateModule = await import(`../../templates/scorers/${filename}`);\n const key = `${toCamelCase(scorerId)}Scorer`;\n const templateContent = templateModule[key];\n const res = writeScorer(filename, templateContent, customPath);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nfunction showSuccessNote() {\n p.note(`\n ${pc.green('To use: Add the Scorer to your workflow or agent!')}\n `);\n}\n\nasync function showInteractivePrompt(providedCustomDir?: string) {\n let selectedScorers = await selectScorer();\n if (!selectedScorers) {\n return;\n }\n\n let customPath: string | undefined = providedCustomDir;\n\n // Only ask for custom directory if one wasn't provided via --dir flag\n if (!providedCustomDir) {\n const useCustomDir = await p.confirm({\n message: `Would you like to use a custom directory?${pc.gray('(Default: src/mastra/scorers)')}`,\n initialValue: false,\n });\n\n if (p.isCancel(useCustomDir)) {\n p.log.info('Operation cancelled.');\n return;\n }\n\n if (useCustomDir) {\n const dirPath = await p.text({\n message: 'Enter the directory path (relative to project root):',\n placeholder: 'src/scorers',\n });\n\n if (p.isCancel(dirPath)) {\n p.log.info('Operation cancelled.');\n return;\n }\n customPath = dirPath as string;\n }\n }\n\n const result = await Promise.allSettled(\n selectedScorers.map(scorer => {\n const { id, filename } = scorer;\n return initializeScorer(id, filename, customPath);\n }),\n );\n\n result.forEach(op => {\n if (op.status === 'fulfilled') {\n p.log.success(op.value.message);\n return;\n }\n const errorMessage = String(op.reason);\n const coreError = errorMessage.replace('Error:', '').trim();\n if (coreError.includes('Skipped')) {\n return p.log.warning(coreError);\n }\n p.log.error(coreError);\n });\n\n const containsSuccessfulWrites = result.some(item => item.status === 'fulfilled');\n\n if (containsSuccessfulWrites) {\n showSuccessNote();\n }\n return;\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { addNewScorer } from '../scorers/add-new-scorer';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const addScorer = async (scorerName: string | undefined, args: any) => {\n await analytics.trackCommandExecution({\n command: 'scorers-add',\n args: { ...args, scorerName },\n execution: async () => {\n await addNewScorer(scorerName, args.dir);\n },\n origin,\n });\n};\n","import { FileService } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\n\nexport class BuildBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Build');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch (err) {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n }\n\n async bundle(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, outputDirectory, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n // @ts-ignore\n import { evaluate } from '@mastra/core/eval';\n import { AvailableHooks, registerHook } from '@mastra/core/hooks';\n import { TABLE_EVALS } from '@mastra/core/storage';\n import { checkEvalStorageFields } from '@mastra/core/utils';\n import { mastra } from '#mastra';\n import { createNodeServer, getToolExports } from '#server';\n import { tools } from '#tools';\n // @ts-ignore\n await createNodeServer(mastra, { tools: getToolExports(tools) });\n\n registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {\n evaluate({\n agentName,\n input,\n metric,\n output,\n runId,\n globalRunId: runId,\n instructions,\n });\n });\n\n if (mastra.getStorage()) {\n // start storage init in the background\n mastra.getStorage().init();\n }\n\n registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n const storage = mastra.getStorage();\n if (storage) {\n // Check for required fields\n const logger = mastra?.getLogger();\n const areFieldsValid = checkEvalStorageFields(traceObject, logger);\n if (!areFieldsValid) return;\n\n await storage.insert({\n tableName: TABLE_EVALS,\n record: {\n input: traceObject.input,\n output: traceObject.output,\n result: JSON.stringify(traceObject.result || {}),\n agent_name: traceObject.agentName,\n metric_name: traceObject.metricName,\n instructions: traceObject.instructions,\n test_info: null,\n global_run_id: traceObject.globalRunId,\n run_id: traceObject.runId,\n created_at: new Date().toISOString(),\n },\n });\n }\n });\n `;\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n }\n}\n","import { join } from 'node:path';\n\nimport { FileService } from '../../services/service.file';\n\nimport { BuildBundler } from './BuildBundler';\nimport { getDeployer } from '@mastra/deployer';\nimport { logger } from '../../utils/logger';\n\nexport async function build({\n dir,\n tools,\n root,\n env,\n}: {\n dir?: string;\n tools?: string[];\n root?: string;\n env?: string;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler(env);\n deployer.__setLogger(logger);\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info(`Build successful, you can now deploy the .mastra/output directory to your target platform.`);\n logger.info(\n `To start the server, run: node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs`,\n );\n return;\n }\n\n logger.info('Deployer found, preparing deployer build...');\n\n platformDeployer.__setLogger(logger);\n await platformDeployer.prepare(outputDirectory);\n await platformDeployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info('You can now deploy the .mastra/output directory to your target platform.');\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Mastra Build failed`, { error });\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { build } from '../build/build';\n\nexport const buildProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'mastra build',\n args,\n execution: async () => {\n await build({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { create } from '../create/create';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const createProject = async (projectNameArg: any, args: any) => {\n const projectName = projectNameArg || args.projectName;\n await analytics.trackCommandExecution({\n command: 'create',\n args: { ...args, projectName },\n execution: async () => {\n const timeout = args?.timeout ? (args?.timeout === true ? 60000 : parseInt(args?.timeout, 10)) : undefined;\n if (args.default) {\n await create({\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n timeout,\n mcpServer: args.mcp,\n template: args.template,\n });\n return;\n }\n await create({\n components: args.components ? args.components.split(',') : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n timeout,\n projectName,\n directory: args.dir,\n mcpServer: args.mcp,\n template: args.template,\n });\n },\n origin,\n });\n};\n","import { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\n\nimport { FileService } from '../../services/service.file';\nimport { logger } from '../../utils/logger';\n\nexport async function deploy({ dir }: { dir?: string }) {\n let mastraDir = dir || join(process.cwd(), 'src/mastra');\n try {\n const outputDirectory = join(process.cwd(), '.mastra');\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n const deployer = await getDeployer(mastraEntryFile, outputDirectory);\n\n if (!deployer) {\n logger.warn('No deployer found.');\n return;\n }\n\n try {\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, []);\n try {\n await deployer.deploy(outputDirectory);\n } catch (error) {\n console.error('[Mastra Deploy] - Error deploying:', error);\n }\n } catch (err) {\n if (err instanceof Error) {\n logger.debug(`error: ${err.message}`, { error: err });\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n logger.debug(`error: ${error.message}`, { error });\n }\n logger.warn('No deployer found.');\n }\n}\n","import { config } from 'dotenv';\nimport { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { deploy } from '../deploy';\n\nexport const deployProject = async (args: any) => {\n config({ path: ['.env', '.env.production'] });\n await analytics.trackCommandExecution({\n command: 'mastra deploy',\n args,\n execution: async () => {\n logger.warn(`DEPRECATED: The deploy command is deprecated.\n Please use the mastra build command instead.\n Then deploy .mastra/output to your target platform.\n `);\n await deploy({ dir: args.dir });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { init } from '../init/init';\nimport { checkAndInstallCoreDeps, checkPkgJson, interactivePrompt } from '../init/utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const initProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'init',\n args,\n execution: async () => {\n await checkPkgJson();\n await checkAndInstallCoreDeps(args?.example || args?.default);\n\n if (!Object.keys(args).length) {\n const result = await interactivePrompt();\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n });\n return;\n }\n\n if (args?.default) {\n await init({\n directory: 'src/',\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n }\n\n const componentsArr = args.components ? args.components.split(',') : [];\n await init({\n directory: args.dir,\n components: componentsArr,\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n },\n origin,\n });\n};\n","import { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nexport const mastraCoreRule: LintRule = {\n name: 'mastra-core',\n description: 'Checks if @mastra/core is installed',\n async run(context: LintContext): Promise<boolean> {\n const hasCore = context.mastraPackages.some(pkg => pkg.name === '@mastra/core');\n if (!hasCore) {\n logger.error('@mastra/core is not installed. This package is required for Mastra to work properly.');\n return false;\n }\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readNextConfig(dir: string) {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n const nextConfigContent = readFileSync(nextConfigPath, 'utf-8');\n const configMatch = nextConfigContent.match(/const nextConfig = ({[\\s\\S]*?});/);\n if (!configMatch?.[1]) {\n return null;\n }\n const configStr = configMatch[1].replace(/\\n/g, '').replace(/\\s+/g, ' ');\n return eval(`(${configStr})`);\n } catch {\n return null;\n }\n}\n\nfunction isNextJsProject(dir: string): boolean {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n readFileSync(nextConfigPath, 'utf-8');\n return true;\n } catch {\n return false;\n }\n}\n// TODO: Move to babel\nexport const nextConfigRule: LintRule = {\n name: 'next-config',\n description: 'Checks if Next.js config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n if (!isNextJsProject(context.rootDir)) {\n return true;\n }\n\n const nextConfig = readNextConfig(context.rootDir);\n if (!nextConfig) {\n return false;\n }\n\n const serverExternals = nextConfig.serverExternalPackages || [];\n const hasMastraExternals = serverExternals.some(\n (pkg: string) => pkg === '@mastra/*' || pkg === '@mastra/core' || pkg.startsWith('@mastra/'),\n );\n\n if (!hasMastraExternals) {\n logger.error('next.config.js is missing Mastra packages in serverExternalPackages');\n logger.error('Please add the following to your next.config.js:');\n logger.error(' serverExternalPackages: [\"@mastra/*\"],');\n return false;\n }\n\n logger.info('Next.js config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport stripJsonComments from 'strip-json-comments';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readTsConfig(dir: string) {\n const tsConfigPath = join(dir, 'tsconfig.json');\n try {\n const tsConfigContent = readFileSync(tsConfigPath, 'utf-8');\n const cleanTsConfigContent = stripJsonComments(tsConfigContent);\n return JSON.parse(cleanTsConfigContent);\n } catch {\n return null;\n }\n}\n\nexport const tsConfigRule: LintRule = {\n name: 'ts-config',\n description: 'Checks if TypeScript config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n const tsConfig = readTsConfig(context.rootDir);\n if (!tsConfig) {\n logger.warn('No tsconfig.json found. This might cause issues with Mastra packages.');\n return true; // Not a critical error, just a warning\n }\n\n const { module, moduleResolution } = tsConfig.compilerOptions || {};\n\n // Check if either moduleResolution is 'bundler' or module is 'CommonJS'\n const isValidConfig = moduleResolution === 'bundler' || module === 'CommonJS';\n if (!isValidConfig) {\n logger.error('tsconfig.json has invalid configuration');\n logger.error('Please set either:');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"moduleResolution\": \"bundler\"');\n logger.error(' }');\n logger.error('or');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"module\": \"CommonJS\"');\n logger.error(' }');\n logger.error('For the recommended TypeScript configuration, see:');\n logger.error('https://mastra.ai/en/docs/getting-started/installation#initialize-typescript');\n return false;\n }\n\n logger.info('TypeScript config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { mastraCoreRule } from './mastraCoreRule.js';\nimport { nextConfigRule } from './nextConfigRule.js';\nimport { tsConfigRule } from './tsConfigRule.js';\nimport type { LintRule } from './types.js';\n\nexport const rules: LintRule[] = [nextConfigRule, tsConfigRule, mastraCoreRule];\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\nimport { FileService } from '../../services/service.file.js';\nimport { logger } from '../../utils/logger.js';\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { rules } from './rules/index.js';\nimport type { LintContext } from './rules/types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface MastraPackage {\n name: string;\n version: string;\n isAlpha: boolean;\n}\n\nfunction readPackageJson(dir: string): PackageJson {\n const packageJsonPath = join(dir, 'package.json');\n try {\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(packageJsonContent);\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Failed to read package.json: ${error.message}`);\n }\n throw error;\n }\n}\n\nfunction getMastraPackages(packageJson: PackageJson): MastraPackage[] {\n const allDependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n const mastraPackages = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n return mastraPackages.map(([name, version]) => ({\n name,\n version,\n isAlpha: version.includes('alpha'),\n }));\n}\n\nexport async function lint({ dir, root, tools }: { dir?: string; root?: string; tools?: string[] }): Promise<boolean> {\n try {\n const rootDir = root || process.cwd();\n const mastraDir = dir\n ? dir.startsWith('/')\n ? dir\n : join(process.cwd(), dir)\n : join(process.cwd(), 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n const defaultToolsPath = join(mastraDir, 'tools');\n const discoveredTools = [defaultToolsPath, ...(tools ?? [])];\n\n const packageJson = readPackageJson(rootDir);\n const mastraPackages = getMastraPackages(packageJson);\n\n const context: LintContext = {\n rootDir,\n mastraDir,\n outputDirectory,\n discoveredTools,\n packageJson,\n mastraPackages,\n };\n\n // Run all rules\n const results = await Promise.all(rules.map(rule => rule.run(context)));\n const allRulesPassed = results.every(result => result);\n\n // Run deployer lint if all rules passed\n if (allRulesPassed) {\n const fileService = new FileService();\n const mastraEntryFile = fileService.getFirstExistingFile([\n join(mastraDir, 'index.ts'),\n join(mastraDir, 'index.js'),\n ]);\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler();\n await deployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n } else {\n await platformDeployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n }\n }\n\n return allRulesPassed;\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Lint check failed: ${error.message}`);\n }\n return false;\n }\n}\n","import { analytics, origin } from '../..';\nimport { lint } from '../lint';\n\nexport const lintProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'lint',\n args,\n execution: async () => {\n await lint({ dir: args.dir, root: args.root, tools: args.tools ? args.tools.split(',') : [] });\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport type { ScorerTemplate } from './types';\n\nexport function listAllScorers(): void {\n p.intro(color.inverse(' Available Scorers '));\n\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, scorer) => {\n if (!acc[scorer.category]) {\n acc[scorer.category] = [];\n }\n acc[scorer.category]!.push(scorer);\n return acc;\n },\n {} as Record<string, ScorerTemplate[]>,\n );\n\n for (const [category, scorers] of Object.entries(groupedScorers)) {\n const categoryLabel = category === 'accuracy-and-reliability' ? 'Accuracy and Reliability' : 'Output Quality';\n\n p.log.info(`${color.bold(color.cyan(categoryLabel))} Scorers:`);\n\n for (const scorer of scorers) {\n p.log.message(` ${color.bold(scorer.name)} ${color.dim(`(${scorer.id})`)}\n ${color.dim(scorer.description)}\n `);\n }\n }\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { listAllScorers } from '../scorers/list-all-scorers';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const listScorers = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'scorers-list',\n args,\n execution: async () => {\n await listAllScorers();\n },\n origin,\n });\n};\n","import { writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { FileService } from '@mastra/deployer';\nimport { createWatcher, getWatcherInputOptions, writeTelemetryConfig, getBundlerOptions } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport * as fsExtra from 'fs-extra';\nimport type { RollupWatcherEvent } from 'rollup';\n\nexport class DevBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Dev');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const playgroundServePath = join(outputDirectory, this.outputDir, 'playground');\n await fsExtra.copy(join(dirname(__dirname), 'src/playground/dist'), playgroundServePath, {\n overwrite: true,\n });\n }\n\n async watch(\n entryFile: string,\n outputDirectory: string,\n toolsPaths: (string | string[])[],\n ): ReturnType<typeof createWatcher> {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const envFiles = await this.getEnvFiles();\n\n let sourcemapEnabled = false;\n let transpilePackages: string[] = [];\n try {\n const bundlerOptions = await getBundlerOptions(entryFile, outputDirectory);\n sourcemapEnabled = !!bundlerOptions?.sourcemap;\n transpilePackages = bundlerOptions?.transpilePackages ?? [];\n } catch (error) {\n this.logger.debug('Failed to get bundler options, sourcemap will be disabled', { error });\n }\n\n const inputOptions = await getWatcherInputOptions(\n entryFile,\n 'node',\n {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),\n },\n { sourcemap: sourcemapEnabled, transpilePackages },\n );\n const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);\n\n const outputDir = join(outputDirectory, this.outputDir);\n await writeTelemetryConfig({\n entryFile,\n outputDir,\n options: { sourcemap: sourcemapEnabled },\n logger: this.logger,\n });\n\n const mastraFolder = dirname(entryFile);\n const fileService = new FileService();\n const customInstrumentation = fileService.getFirstExistingFileOrUndefined([\n join(mastraFolder, 'instrumentation.js'),\n join(mastraFolder, 'instrumentation.ts'),\n join(mastraFolder, 'instrumentation.mjs'),\n ]);\n\n await this.writeInstrumentationFile(outputDir, customInstrumentation);\n\n await this.writePackageJson(outputDir, new Map(), {});\n\n const copyPublic = this.copyPublic.bind(this);\n\n const watcher = await createWatcher(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn(`Circular dependency found:\n\\t${warning.message.replace('Circular dependency: ', '')}`);\n }\n },\n plugins: [\n // @ts-ignore - types are good\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n ...inputOptions.plugins,\n {\n name: 'env-watcher',\n buildStart() {\n for (const envFile of envFiles) {\n this.addWatchFile(envFile);\n }\n },\n },\n {\n name: 'public-dir-watcher',\n buildStart() {\n this.addWatchFile(join(dirname(entryFile), 'public'));\n },\n buildEnd() {\n return copyPublic(dirname(entryFile), outputDirectory);\n },\n },\n {\n name: 'tools-watcher',\n async buildEnd() {\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(toolsInputOptions || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(outputDir, 'tools.mjs'),\n `${toolImports.join('\\n')}\n \n export const tools = [${toolsExports.join(', ')}]`,\n );\n },\n },\n ],\n input: {\n index: join(__dirname, 'templates', 'dev.entry.js'),\n ...toolsInputOptions,\n },\n },\n {\n dir: outputDir,\n sourcemap: sourcemapEnabled,\n },\n );\n\n this.logger.info('Starting watcher...');\n return new Promise((resolve, reject) => {\n const cb = (event: RollupWatcherEvent) => {\n if (event.code === 'BUNDLE_END') {\n this.logger.info('Bundling finished, starting server...');\n watcher.off('event', cb);\n resolve(watcher);\n }\n\n if (event.code === 'ERROR') {\n console.log(event);\n this.logger.error('Bundling failed, stopping watcher...');\n watcher.off('event', cb);\n reject(event);\n }\n };\n\n watcher.on('event', cb);\n });\n }\n\n async bundle(): Promise<void> {\n // Do nothing\n }\n}\n","import type { ChildProcess } from 'child_process';\nimport process from 'node:process';\nimport { join } from 'path';\nimport { FileService } from '@mastra/deployer';\nimport { getServerOptions } from '@mastra/deployer/build';\nimport { isWebContainer } from '@webcontainer/env';\nimport { execa } from 'execa';\nimport getPort from 'get-port';\n\nimport { logger } from '../../utils/logger.js';\n\nimport { DevBundler } from './DevBundler';\n\nlet currentServerProcess: ChildProcess | undefined;\nlet isRestarting = false;\nconst ON_ERROR_MAX_RESTARTS = 3;\n\nconst startServer = async (\n dotMastraPath: string,\n port: number,\n env: Map<string, string>,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n errorRestartCount = 0,\n) => {\n let serverIsReady = false;\n try {\n // Restart server\n logger.info('[Mastra Dev] - Starting server...');\n\n const commands = [];\n\n if (startOptions.inspect) {\n commands.push('--inspect');\n }\n\n if (startOptions.inspectBrk) {\n commands.push('--inspect-brk'); //stops at beginning of script\n }\n\n if (startOptions.customArgs) {\n commands.push(...startOptions.customArgs);\n }\n\n if (!isWebContainer()) {\n const instrumentation = import.meta.resolve('@opentelemetry/instrumentation/hook.mjs');\n commands.push(\n `--import=${import.meta.resolve('mastra/telemetry-loader')}`,\n '--import=./instrumentation.mjs',\n `--import=${instrumentation}`,\n );\n }\n commands.push('index.mjs');\n\n currentServerProcess = execa(process.execPath, commands, {\n cwd: dotMastraPath,\n env: {\n NODE_ENV: 'production',\n ...Object.fromEntries(env),\n MASTRA_DEV: 'true',\n PORT: port.toString(),\n MASTRA_DEFAULT_STORAGE_URL: `file:${join(dotMastraPath, '..', 'mastra.db')}`,\n },\n stdio: ['inherit', 'inherit', 'inherit', 'ipc'],\n reject: false,\n }) as any as ChildProcess;\n\n if (currentServerProcess?.exitCode && currentServerProcess?.exitCode !== 0) {\n if (!currentServerProcess) {\n throw new Error(`Server failed to start`);\n }\n throw new Error(\n `Server failed to start with error: ${currentServerProcess.stderr || currentServerProcess.stdout}`,\n );\n }\n\n currentServerProcess.on('message', async (message: any) => {\n if (message?.type === 'server-ready') {\n serverIsReady = true;\n\n // Send refresh signal\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Ignore retry errors\n }\n }\n }\n });\n } catch (err) {\n const execaError = err as { stderr?: string; stdout?: string };\n if (execaError.stderr) logger.error('Server error output:', { stderr: execaError.stderr });\n if (execaError.stdout) logger.debug('Server output:', { stdout: execaError.stdout });\n\n if (!serverIsReady) {\n throw err;\n }\n\n // Attempt to restart on error after a delay\n setTimeout(() => {\n if (!isRestarting) {\n errorRestartCount++;\n if (errorRestartCount > ON_ERROR_MAX_RESTARTS) {\n logger.error(`Server failed to start after ${ON_ERROR_MAX_RESTARTS} error attempts. Giving up.`);\n process.exit(1);\n }\n logger.error(\n `Attempting to restart server after error... (Attempt ${errorRestartCount}/${ON_ERROR_MAX_RESTARTS})`,\n );\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startServer(dotMastraPath, port, env, startOptions, errorRestartCount);\n }\n }, 1000);\n }\n};\n\nasync function rebundleAndRestart(\n dotMastraPath: string,\n port: number,\n bundler: DevBundler,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n) {\n if (isRestarting) {\n return;\n }\n\n isRestarting = true;\n try {\n // If current server process is running, stop it\n if (currentServerProcess) {\n logger.debug('Stopping current server...');\n currentServerProcess.kill('SIGINT');\n }\n\n const env = await bundler.loadEnvVars();\n\n await startServer(join(dotMastraPath, 'output'), port, env, startOptions);\n } finally {\n isRestarting = false;\n }\n}\n\nexport async function dev({\n port,\n dir,\n root,\n tools,\n env,\n inspect,\n inspectBrk,\n customArgs,\n}: {\n dir?: string;\n root?: string;\n port: number | null;\n tools?: string[];\n env?: string;\n inspect?: boolean;\n inspectBrk?: boolean;\n customArgs?: string[];\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(process.cwd(), dir)) : join(process.cwd(), 'src', 'mastra');\n const dotMastraPath = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n const startOptions = { inspect, inspectBrk, customArgs };\n\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new DevBundler(env);\n bundler.__setLogger(logger);\n\n // Get the port to use before prepare to set environment variables\n const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n let portToUse = port ?? serverOptions?.port ?? process.env.PORT;\n if (!portToUse || isNaN(Number(portToUse))) {\n const portList = Array.from({ length: 21 }, (_, i) => 4111 + i);\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\n }\n\n await bundler.prepare(dotMastraPath);\n\n const watcher = await bundler.watch(entryFile, dotMastraPath, discoveredTools);\n\n const loadedEnv = await bundler.loadEnvVars();\n\n // spread loadedEnv into process.env\n for (const [key, value] of loadedEnv.entries()) {\n process.env[key] = value;\n }\n\n await startServer(join(dotMastraPath, 'output'), Number(portToUse), loadedEnv, startOptions);\n watcher.on('event', (event: { code: string }) => {\n if (event.code === 'BUNDLE_END') {\n logger.info('[Mastra Dev] - Bundling finished, restarting server...');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n rebundleAndRestart(dotMastraPath, Number(portToUse), bundler, startOptions);\n }\n });\n\n process.on('SIGINT', () => {\n logger.info('[Mastra Dev] - Stopping server...');\n if (currentServerProcess) {\n currentServerProcess.kill();\n }\n\n watcher\n .close()\n .catch(() => {})\n .finally(() => {\n process.exit(0);\n });\n });\n}\n","import { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { dev } from '../dev/dev';\n\nexport const startDevServer = async (args: any) => {\n analytics.trackCommand({\n command: 'dev',\n origin,\n });\n\n if (args?.port) {\n logger.warn('The --port option is deprecated. Use the server key in the Mastra instance instead.');\n }\n\n dev({\n port: args?.port ? parseInt(args.port) : null,\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n inspect: args?.inspect && !args?.inspectBrk,\n inspectBrk: args?.inspectBrk,\n customArgs: args?.customArgs ? args.customArgs.split(',') : [],\n }).catch(err => {\n logger.error(err.message);\n });\n};\n","import { spawn } from 'child_process';\nimport fs from 'fs';\nimport { join } from 'path';\nimport { isWebContainer } from '@webcontainer/env';\nimport { logger } from '../../utils/logger';\ninterface StartOptions {\n dir?: string;\n telemetry?: boolean;\n}\n\nexport async function start(options: StartOptions = {}) {\n const outputDir = options.dir || '.mastra/output';\n const telemetry = options.telemetry ?? true;\n\n try {\n // Check if the output directory exist\n const outputPath = join(process.cwd(), outputDir);\n if (!fs.existsSync(outputPath)) {\n throw new Error(`Output directory ${outputPath} does not exist`);\n }\n\n const commands = [];\n\n if (telemetry && !isWebContainer()) {\n const instrumentation = '@opentelemetry/instrumentation/hook.mjs';\n commands.push('--import=./instrumentation.mjs', `--import=${instrumentation}`);\n }\n\n commands.push('index.mjs');\n\n // Start the server using node\n const server = spawn('node', commands, {\n cwd: outputPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n NODE_ENV: 'production',\n },\n });\n\n server.on('error', err => {\n logger.error(`Failed to start server: ${err.message}`);\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n server.kill('SIGINT');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n server.kill('SIGTERM');\n process.exit(0);\n });\n } catch (error: any) {\n logger.error(`Failed to start Mastra server: ${error.message}`);\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { start } from '../start';\n\nexport const startProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'start',\n args,\n execution: async () => {\n await start({\n dir: args.dir,\n telemetry: !args.noTelemetry,\n });\n },\n origin,\n });\n};\n","#! /usr/bin/env node\nimport { Command } from 'commander';\nimport pc from 'picocolors';\n\nimport type { CLI_ORIGIN } from './analytics/index';\nimport { PosthogAnalytics, setAnalytics } from './analytics/index';\nimport { addScorer } from './commands/actions/add-scorer';\nimport { buildProject } from './commands/actions/build-project';\nimport { createProject } from './commands/actions/create-project';\nimport { deployProject } from './commands/actions/deploy-project';\nimport { initProject } from './commands/actions/init-project';\nimport { lintProject } from './commands/actions/lint-project';\nimport { listScorers } from './commands/actions/list-scorers';\nimport { startDevServer } from './commands/actions/start-dev-server';\nimport { startProject } from './commands/actions/start-project';\nimport { DepsService } from './services/service.deps';\n\nconst depsService = new DepsService();\nconst version = await depsService.getPackageVersion();\n\nexport const analytics = new PosthogAnalytics({\n apiKey: 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT',\n host: 'https://us.posthog.com',\n version: version!,\n});\n\nsetAnalytics(analytics);\n\nconst program = new Command();\n\nexport const origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nprogram\n .name('mastra')\n .version(`${version}`, '-v, --version')\n .addHelpText(\n 'before',\n `\n${pc.bold(pc.cyan('Mastra'))} is a typescript framework for building AI applications, agents, and workflows.\n`,\n )\n .action(() => {\n program.help();\n });\n\nprogram\n .command('create [project-name]')\n .description('Create a new Mastra project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google, or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-t, --timeout [timeout]', 'Configurable timeout for package installation, defaults to 60000 ms')\n .option('-d, --dir <directory>', 'Target directory for Mastra source code (default: src/)')\n .option(\n '-p, --project-name <string>',\n 'Project name that will be used in package.json and as the project directory name.',\n )\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .option(\n '--template [template-name]',\n 'Create project from a template (use template name, public GitHub URL, or leave blank to select from list)',\n )\n .action(createProject);\n\nprogram\n .command('init')\n .description('Initialize Mastra in your project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-d, --dir <directory>', 'Directory for Mastra files to (defaults to src/)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .action(initProject);\n\nprogram\n .command('lint')\n .description('Lint your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .action(lintProject);\n\nprogram\n .command('dev')\n .description('Start mastra server')\n .option('-d, --dir <dir>', 'Path to your mastra folder')\n .option('-r, --root <root>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-p, --port <port>', 'deprecated: Port number for the development server (defaults to 4111)')\n .option('-e, --env <env>', 'Custom env file to include in the dev server')\n .option('-i, --inspect', 'Start the dev server in inspect mode')\n .option('-b, --inspect-brk', 'Start the dev server in inspect mode and break at the beginning of the script')\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types',\n )\n .action(startDevServer);\n\nprogram\n .command('build')\n .description('Build your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra Folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-e, --env <env>', 'Custom env file to include in the build')\n .action(buildProject);\n\nprogram\n .command('deploy')\n .description('Deploy your Mastra project')\n .option('-d, --dir <path>', 'Path to directory')\n .action(deployProject);\n\nprogram\n .command('start')\n .description('Start your built Mastra application')\n .option('-d, --dir <path>', 'Path to your built Mastra output directory (default: .mastra/output)')\n .option('-nt, --no-telemetry', 'Disable telemetry on start')\n .action(startProject);\n\nconst scorersCommand = program.command('scorers').description('Manage scorers for evaluating AI outputs');\n\nscorersCommand\n .command('add [scorer-name]')\n .description('Add a new scorer to your project')\n .option('-d, --dir <path>', 'Path to your Mastra directory (default: auto-detect)')\n .action(addScorer);\n\nscorersCommand.command('list').description('List available scorer templates').action(listScorers);\n\nprogram.parse(process.argv);\n\nexport { PosthogAnalytics } from './analytics/index';\nexport { create } from './commands/create/create';\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import './chunk-QKQ47GQZ.js';
|
|
2
|
+
|
|
3
|
+
// src/templates/scorers/keyword-coverage-scorer.ts
|
|
4
|
+
var keywordCoverageScorer = `
|
|
5
|
+
import { createKeywordCoverageScorer } from "@mastra/evals/scorers/code";
|
|
6
|
+
|
|
7
|
+
const scorer = createKeywordCoverageScorer();
|
|
8
|
+
|
|
9
|
+
const input = 'JavaScript frameworks like React and Vue';
|
|
10
|
+
const output = 'Popular JavaScript frameworks include React and Vue for web development';
|
|
11
|
+
|
|
12
|
+
const result = await scorer.run({
|
|
13
|
+
input: [{ role: 'user', content: input }],
|
|
14
|
+
output: { role: 'assistant', text: output },
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
console.log('Score:', result.score);
|
|
18
|
+
console.log('AnalyzeStepResult:', result.analyzeStepResult);`;
|
|
19
|
+
|
|
20
|
+
export { keywordCoverageScorer };
|
|
21
|
+
//# sourceMappingURL=keyword-coverage-scorer-63AEWDTL.js.map
|
|
22
|
+
//# sourceMappingURL=keyword-coverage-scorer-63AEWDTL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/templates/scorers/keyword-coverage-scorer.ts"],"names":[],"mappings":";;;AAAO,IAAM,qBAAA,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4DAAA","file":"keyword-coverage-scorer-63AEWDTL.js","sourcesContent":["export const keywordCoverageScorer = `\nimport { createKeywordCoverageScorer } from \"@mastra/evals/scorers/code\";\n \nconst scorer = createKeywordCoverageScorer();\n \nconst input = 'JavaScript frameworks like React and Vue';\nconst output = 'Popular JavaScript frameworks include React and Vue for web development';\n \nconst result = await scorer.run({\n input: [{ role: 'user', content: input }],\n output: { role: 'assistant', text: output },\n});\n \nconsole.log('Score:', result.score);\nconsole.log('AnalyzeStepResult:', result.analyzeStepResult);`;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const answerRelevancyScorer = "\nimport { openai } from \"@ai-sdk/openai\";\nimport { createAnswerRelevancyScorer } from \"@mastra/evals/scorers/llm\";\n \nconst scorer = createAnswerRelevancyScorer({ model: openai(\"gpt-4o-mini\") });\n \nconst inputMessages = [{ role: 'user', content: \"What are the health benefits of regular exercise?\" }];\nconst outputMessage = { text: \"Regular exercise improves cardiovascular health, strengthens muscles, boosts metabolism, and enhances mental well-being through the release of endorphins.\" };\n \nconst result = await scorer.run({\n input: inputMessages,\n output: outputMessage,\n});\nconsole.log(result);\n";
|
|
2
|
+
//# sourceMappingURL=answer-relevancy-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer-relevancy-scorer.d.ts","sourceRoot":"","sources":["../../../src/templates/scorers/answer-relevancy-scorer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,snBAcjC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const answerRelevancyScorer = `
|
|
2
|
+
import { openai } from "@ai-sdk/openai";
|
|
3
|
+
import { createAnswerRelevancyScorer } from "@mastra/evals/scorers/llm";
|
|
4
|
+
|
|
5
|
+
const scorer = createAnswerRelevancyScorer({ model: openai("gpt-4o-mini") });
|
|
6
|
+
|
|
7
|
+
const inputMessages = [{ role: 'user', content: "What are the health benefits of regular exercise?" }];
|
|
8
|
+
const outputMessage = { text: "Regular exercise improves cardiovascular health, strengthens muscles, boosts metabolism, and enhances mental well-being through the release of endorphins." };
|
|
9
|
+
|
|
10
|
+
const result = await scorer.run({
|
|
11
|
+
input: inputMessages,
|
|
12
|
+
output: outputMessage,
|
|
13
|
+
});
|
|
14
|
+
console.log(result);
|
|
15
|
+
`;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const biasDetectionScorer = "\nimport { openai } from \"@ai-sdk/openai\";\nimport { createBiasScorer } from \"@mastra/evals/scorers/llm\";\n \nconst scorer = createBiasScorer({ model: openai(\"gpt-4o-mini\") });\n \nconst query = \"What makes someone a good leader?\";\nconst response =\n \"Men naturally make better leaders due to their assertiveness and decisiveness. Women tend to be too emotional and collaborative, which can slow down decision-making processes.\";\n \nconst result = await scorer.run({\n input: [{ role: 'user', content: query }],\n output: { text: response },\n});\nconsole.log(result);\n";
|
|
2
|
+
//# sourceMappingURL=bias-detection-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bias-detection-scorer.d.ts","sourceRoot":"","sources":["../../../src/templates/scorers/bias-detection-scorer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,8kBAe/B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const biasDetectionScorer = `
|
|
2
|
+
import { openai } from "@ai-sdk/openai";
|
|
3
|
+
import { createBiasScorer } from "@mastra/evals/scorers/llm";
|
|
4
|
+
|
|
5
|
+
const scorer = createBiasScorer({ model: openai("gpt-4o-mini") });
|
|
6
|
+
|
|
7
|
+
const query = "What makes someone a good leader?";
|
|
8
|
+
const response =
|
|
9
|
+
"Men naturally make better leaders due to their assertiveness and decisiveness. Women tend to be too emotional and collaborative, which can slow down decision-making processes.";
|
|
10
|
+
|
|
11
|
+
const result = await scorer.run({
|
|
12
|
+
input: [{ role: 'user', content: query }],
|
|
13
|
+
output: { text: response },
|
|
14
|
+
});
|
|
15
|
+
console.log(result);
|
|
16
|
+
`;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const completenessScorer = "\nimport { openai } from \"@ai-sdk/openai\";\nimport { createCompletenessScorer } from \"@mastra/evals/scorers/llm\";\n \nconst scorer = createCompletenessScorer({ model: openai(\"gpt-4o-mini\") });\n \nconst query = \"Explain the process of photosynthesis, including the inputs, outputs, and stages involved.\";\nconst response =\n \"Photosynthesis is the process by which plants convert sunlight into chemical energy. Inputs: Carbon dioxide (CO2) from the air enters through stomata, water (H2O) is absorbed by roots, and sunlight provides energy captured by chlorophyll. The process occurs in two main stages: 1) Light-dependent reactions in the thylakoids convert light energy to ATP and NADPH while splitting water and releasing oxygen. 2) Light-independent reactions (Calvin cycle) in the stroma use ATP, NADPH, and CO2 to produce glucose. Outputs: Glucose (C6H12O6) serves as food for the plant, and oxygen (O2) is released as a byproduct. The overall equation is: 6CO2 + 6H2O + light energy \u2192 C6H12O6 + 6O2.\";\n \nconst result = await scorer.run({\n input: [{ role: 'user', content: query }],\n output: { text: response },\n});\n \nconsole.log(result);";
|
|
2
|
+
//# sourceMappingURL=completeness-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeness-scorer.d.ts","sourceRoot":"","sources":["../../../src/templates/scorers/completeness-scorer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,spCAeV,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const completenessScorer = `
|
|
2
|
+
import { openai } from "@ai-sdk/openai";
|
|
3
|
+
import { createCompletenessScorer } from "@mastra/evals/scorers/llm";
|
|
4
|
+
|
|
5
|
+
const scorer = createCompletenessScorer({ model: openai("gpt-4o-mini") });
|
|
6
|
+
|
|
7
|
+
const query = "Explain the process of photosynthesis, including the inputs, outputs, and stages involved.";
|
|
8
|
+
const response =
|
|
9
|
+
"Photosynthesis is the process by which plants convert sunlight into chemical energy. Inputs: Carbon dioxide (CO2) from the air enters through stomata, water (H2O) is absorbed by roots, and sunlight provides energy captured by chlorophyll. The process occurs in two main stages: 1) Light-dependent reactions in the thylakoids convert light energy to ATP and NADPH while splitting water and releasing oxygen. 2) Light-independent reactions (Calvin cycle) in the stroma use ATP, NADPH, and CO2 to produce glucose. Outputs: Glucose (C6H12O6) serves as food for the plant, and oxygen (O2) is released as a byproduct. The overall equation is: 6CO2 + 6H2O + light energy → C6H12O6 + 6O2.";
|
|
10
|
+
|
|
11
|
+
const result = await scorer.run({
|
|
12
|
+
input: [{ role: 'user', content: query }],
|
|
13
|
+
output: { text: response },
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
console.log(result);`;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const contentSimilarityScorer = "\nimport { createContentSimilarityScorer } from \"@mastra/evals/scorers/llm\";\n \nconst scorer = createContentSimilarityScorer();\n \nconst query = \"The quick brown fox jumps over the lazy dog.\";\nconst response = \"A quick brown fox jumped over a lazy dog.\";\n \nconst result = await scorer.run({\n input: [{ role: 'user', content: query }],\n output: { text: response },\n});\n \nconsole.log(result);\n";
|
|
2
|
+
//# sourceMappingURL=content-similarity-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-similarity-scorer.d.ts","sourceRoot":"","sources":["../../../src/templates/scorers/content-similarity-scorer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,+ZAcnC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const contentSimilarityScorer = `
|
|
2
|
+
import { createContentSimilarityScorer } from "@mastra/evals/scorers/llm";
|
|
3
|
+
|
|
4
|
+
const scorer = createContentSimilarityScorer();
|
|
5
|
+
|
|
6
|
+
const query = "The quick brown fox jumps over the lazy dog.";
|
|
7
|
+
const response = "A quick brown fox jumped over a lazy dog.";
|
|
8
|
+
|
|
9
|
+
const result = await scorer.run({
|
|
10
|
+
input: [{ role: 'user', content: query }],
|
|
11
|
+
output: { text: response },
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
console.log(result);
|
|
15
|
+
`;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const faithfulnessScorer = "\nimport { openai } from \"@ai-sdk/openai\";\nimport { createFaithfulnessScorer } from \"@mastra/evals/scorers/llm\";\n \nconst scorer = createFaithfulnessScorer({ model: openai(\"gpt-4o-mini\"), options: {\n context: [\n \"The Tesla Model 3 was launched in 2017.\",\n \"It has a range of up to 358 miles.\",\n \"The base model accelerates 0-60 mph in 5.8 seconds.\"\n ]\n});\n \nconst query = \"Tell me about the Tesla Model 3.\";\nconst response = \"The Tesla Model 3 was introduced in 2017. It can travel up to 358 miles on a single charge and the base version goes from 0 to 60 mph in 5.8 seconds.\";\n \nconst result = await scorer.run({\n input: [{ role: 'user', content: query }],\n output: { text: response },\n});\n \nconsole.log(result);";
|
|
2
|
+
//# sourceMappingURL=faithfulness-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"faithfulness-scorer.d.ts","sourceRoot":"","sources":["../../../src/templates/scorers/faithfulness-scorer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,6vBAoBV,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const faithfulnessScorer = `
|
|
2
|
+
import { openai } from "@ai-sdk/openai";
|
|
3
|
+
import { createFaithfulnessScorer } from "@mastra/evals/scorers/llm";
|
|
4
|
+
|
|
5
|
+
const scorer = createFaithfulnessScorer({ model: openai("gpt-4o-mini"), options: {
|
|
6
|
+
context: [
|
|
7
|
+
"The Tesla Model 3 was launched in 2017.",
|
|
8
|
+
"It has a range of up to 358 miles.",
|
|
9
|
+
"The base model accelerates 0-60 mph in 5.8 seconds."
|
|
10
|
+
]
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const query = "Tell me about the Tesla Model 3.";
|
|
14
|
+
const response = "The Tesla Model 3 was introduced in 2017. It can travel up to 358 miles on a single charge and the base version goes from 0 to 60 mph in 5.8 seconds.";
|
|
15
|
+
|
|
16
|
+
const result = await scorer.run({
|
|
17
|
+
input: [{ role: 'user', content: query }],
|
|
18
|
+
output: { text: response },
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
console.log(result);`;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const hallucinationScorer = "\nimport { openai } from \"@ai-sdk/openai\";\nimport { createHallucinationScorer } from \"@mastra/evals/scorers/llm\";\n \nconst scorer = createHallucinationScorer({ model: openai(\"gpt-4o-mini\"), options: {\n context: [\n \"The iPhone was first released in 2007.\",\n \"Steve Jobs unveiled it at Macworld.\",\n \"The original model had a 3.5-inch screen.\"\n ]\n});\n \nconst query = \"When was the first iPhone released?\";\nconst response = \"The iPhone was first released in 2007, when Steve Jobs unveiled it at Macworld. The original iPhone featured a 3.5-inch screen.\";\n \nconst result = await scorer.run({\n input: [{ role: 'user', content: query }],\n output: { text: response },\n});\n \nconsole.log(result);";
|
|
2
|
+
//# sourceMappingURL=hallucination-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hallucination-scorer.d.ts","sourceRoot":"","sources":["../../../src/templates/scorers/hallucination-scorer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,kuBAoBX,CAAC"}
|