mastra 0.10.19-alpha.0 → 0.10.19-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/dev/DevBundler.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/playground/dist/assets/{index-Cs6HpDde.js → index-BU6rmY3f.js} +227 -227
- package/src/playground/dist/assets/{index-DYUX-s7f.js → index-C_pLcMgU.js} +1 -1
- package/src/playground/dist/assets/{index-DurcFWNn.js → index-CziBY9Vf.js} +1 -1
- package/src/playground/dist/index.html +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevBundler.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/DevBundler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAmE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAInD,qBAAa,UAAW,SAAQ,OAAO;IACrC,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,aAAa,CAAC,EAAE,MAAM;IAKlC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB1B,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DevBundler.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/DevBundler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAmE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAInD,qBAAa,UAAW,SAAQ,OAAO;IACrC,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,aAAa,CAAC,EAAE,MAAM;IAKlC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB1B,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC;IAyIzG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
|
package/dist/index.js
CHANGED
|
@@ -208,9 +208,11 @@ var DevBundler = class extends Bundler {
|
|
|
208
208
|
const __dirname = dirname(__filename);
|
|
209
209
|
const envFiles = await this.getEnvFiles();
|
|
210
210
|
let sourcemapEnabled = false;
|
|
211
|
+
let transpilePackages = [];
|
|
211
212
|
try {
|
|
212
213
|
const bundlerOptions = await getBundlerOptions(entryFile, outputDirectory);
|
|
213
214
|
sourcemapEnabled = !!bundlerOptions?.sourcemap;
|
|
215
|
+
transpilePackages = bundlerOptions?.transpilePackages ?? [];
|
|
214
216
|
} catch (error) {
|
|
215
217
|
this.logger.debug("Failed to get bundler options, sourcemap will be disabled", { error });
|
|
216
218
|
}
|
|
@@ -220,7 +222,7 @@ var DevBundler = class extends Bundler {
|
|
|
220
222
|
{
|
|
221
223
|
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV || "development")
|
|
222
224
|
},
|
|
223
|
-
{ sourcemap: sourcemapEnabled }
|
|
225
|
+
{ sourcemap: sourcemapEnabled, transpilePackages }
|
|
224
226
|
);
|
|
225
227
|
const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);
|
|
226
228
|
const outputDir = join(outputDirectory, this.outputDir);
|
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[]): 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[]): 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 const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const discoveredTools = [defaultToolsPath, ...(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(entryFile: string, outputDirectory: string, toolsPaths: string[]): 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 try {\n const bundlerOptions = await getBundlerOptions(entryFile, outputDirectory);\n sourcemapEnabled = !!bundlerOptions?.sourcemap;\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 },\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 const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const discoveredTools = [defaultToolsPath, ...(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 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 const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n\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\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\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/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[]): 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[]): 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 const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const discoveredTools = [defaultToolsPath, ...(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(entryFile: string, outputDirectory: string, toolsPaths: string[]): 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 const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const discoveredTools = [defaultToolsPath, ...(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 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 const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n\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\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mastra",
|
|
3
|
-
"version": "0.10.19-alpha.
|
|
3
|
+
"version": "0.10.19-alpha.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "cli for mastra",
|
|
6
6
|
"type": "module",
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
"yocto-spinner": "^0.2.3",
|
|
76
76
|
"zod": "^3.25.67",
|
|
77
77
|
"zod-to-json-schema": "^3.24.5",
|
|
78
|
-
"@mastra/deployer": "^0.
|
|
79
|
-
"@mastra/
|
|
80
|
-
"@mastra/
|
|
78
|
+
"@mastra/deployer": "^0.13.0-alpha.1",
|
|
79
|
+
"@mastra/mcp": "^0.10.9",
|
|
80
|
+
"@mastra/loggers": "^0.10.5"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@microsoft/api-extractor": "^7.52.8",
|
|
@@ -96,9 +96,9 @@
|
|
|
96
96
|
"typescript": "^5.8.3",
|
|
97
97
|
"vitest": "^3.2.4",
|
|
98
98
|
"@internal/lint": "0.0.26",
|
|
99
|
-
"@mastra/core": "0.
|
|
100
|
-
"@mastra/
|
|
101
|
-
"@mastra/
|
|
99
|
+
"@mastra/core": "0.13.0-alpha.1",
|
|
100
|
+
"@mastra/playground-ui": "5.1.18-alpha.1",
|
|
101
|
+
"@mastra/client-js": "0.10.19-alpha.1"
|
|
102
102
|
},
|
|
103
103
|
"peerDependencies": {
|
|
104
104
|
"@mastra/core": ">=0.10.2-0 <0.13.0-0"
|