@mastra/deployer 1.48.0 → 1.49.0-alpha.2
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/CHANGELOG.md +26 -0
- package/dist/build/analyze.cjs +2 -2
- package/dist/build/analyze.js +1 -1
- package/dist/build/bundler.cjs +3 -3
- package/dist/build/bundler.js +1 -1
- package/dist/build/index.cjs +20 -20
- package/dist/build/index.js +5 -5
- package/dist/build/utils.d.ts.map +1 -1
- package/dist/bundler/index.cjs +3 -3
- package/dist/bundler/index.js +1 -1
- package/dist/{chunk-IYKMQHY2.cjs → chunk-2XUYQ2EJ.cjs} +25 -25
- package/dist/{chunk-IYKMQHY2.cjs.map → chunk-2XUYQ2EJ.cjs.map} +1 -1
- package/dist/{chunk-FBL7GBNM.cjs → chunk-3JVOVZ2V.cjs} +18 -18
- package/dist/{chunk-FBL7GBNM.cjs.map → chunk-3JVOVZ2V.cjs.map} +1 -1
- package/dist/{chunk-FQC6UUHS.js → chunk-566UDTD4.js} +4 -4
- package/dist/{chunk-FQC6UUHS.js.map → chunk-566UDTD4.js.map} +1 -1
- package/dist/{chunk-I7TERDMR.cjs → chunk-6LWGRT7H.cjs} +5 -5
- package/dist/{chunk-I7TERDMR.cjs.map → chunk-6LWGRT7H.cjs.map} +1 -1
- package/dist/{chunk-VZYB4EVX.cjs → chunk-7RR5PJRM.cjs} +7 -7
- package/dist/{chunk-VZYB4EVX.cjs.map → chunk-7RR5PJRM.cjs.map} +1 -1
- package/dist/{chunk-T6LS4OKA.js → chunk-BYRFFGSN.js} +7 -7
- package/dist/{chunk-T6LS4OKA.js.map → chunk-BYRFFGSN.js.map} +1 -1
- package/dist/{chunk-MPEFRVWJ.js → chunk-CGDATNET.js} +3 -3
- package/dist/{chunk-MPEFRVWJ.js.map → chunk-CGDATNET.js.map} +1 -1
- package/dist/{chunk-CHZ76N6R.cjs → chunk-HMT7QCMZ.cjs} +17 -17
- package/dist/{chunk-CHZ76N6R.cjs.map → chunk-HMT7QCMZ.cjs.map} +1 -1
- package/dist/{chunk-47KJ3RKB.cjs → chunk-IEHRALF6.cjs} +49 -49
- package/dist/{chunk-47KJ3RKB.cjs.map → chunk-IEHRALF6.cjs.map} +1 -1
- package/dist/{chunk-2WEUOK6I.js → chunk-KJ4S6COO.js} +4 -4
- package/dist/{chunk-2WEUOK6I.js.map → chunk-KJ4S6COO.js.map} +1 -1
- package/dist/{chunk-TDNEF2M5.js → chunk-OFMQRNNY.js} +7 -7
- package/dist/{chunk-TDNEF2M5.js.map → chunk-OFMQRNNY.js.map} +1 -1
- package/dist/{chunk-ORSNDVAB.js → chunk-VWD7AY6H.js} +3 -3
- package/dist/{chunk-ORSNDVAB.js.map → chunk-VWD7AY6H.js.map} +1 -1
- package/dist/{chunk-7PMC7SBC.cjs → chunk-WLW5IRHY.cjs} +20 -17
- package/dist/chunk-WLW5IRHY.cjs.map +1 -0
- package/dist/{chunk-V6F2NMS2.js → chunk-Z3DC47CH.js} +20 -17
- package/dist/chunk-Z3DC47CH.js.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +2 -2
- package/dist/server/index.cjs +4 -4
- package/dist/server/index.js +1 -1
- package/dist/validator/custom-resolver.cjs +3 -3
- package/dist/validator/custom-resolver.js +1 -1
- package/package.json +8 -8
- package/dist/chunk-7PMC7SBC.cjs.map +0 -1
- package/dist/chunk-V6F2NMS2.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/build/watcher.ts","../src/build/serverOptions.ts","../src/build/fs-routing/discover.ts","../src/build/fs-routing/codegen.ts","../src/build/fs-routing/prepare.ts","../src/build/fs-routing/mirror.ts"],"names":["getInputOptions","pkg","dirname","slash","getWorkspaceInformation","analyzeBundle","posix","noopLogger","getPackageName","tsConfigPaths","aliasHono","nodeModulesExtensionResolver","watch","extractMastraOption","lstat","join","readdir","path","readFile","matter","mkdir","writeFile","cp"],"mappings":"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","file":"chunk-IYKMQHY2.cjs","sourcesContent":["import { dirname, posix } from 'node:path';\nimport { noopLogger } from '@mastra/core/logger';\nimport * as pkg from 'empathic/package';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport { watch } from 'rollup';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport { analyzeBundle } from './analyze';\nimport { getInputOptions as getBundlerInputOptions } from './bundler';\nimport { aliasHono } from './plugins/hono-alias';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport type { BundlerOptions } from './types';\nimport { getPackageName, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n platform: BundlerPlatform,\n env?: Record<string, string>,\n {\n sourcemap = false,\n bundlerOptions = {\n enableSourcemap: false,\n enableEsmShim: true,\n externals: true,\n },\n }: { sourcemap?: boolean; bundlerOptions?: BundlerOptions } = {},\n) {\n const closestPkgJson = pkg.up({ cwd: dirname(entryFile) });\n const projectRoot = closestPkgJson ? dirname(slash(closestPkgJson)) : slash(process.cwd());\n const { workspaceMap, workspaceRoot } = await getWorkspaceInformation({ mastraEntryFile: entryFile });\n\n const analyzeEntryResult = await analyzeBundle(\n [entryFile],\n entryFile,\n {\n outputDir: posix.join(process.cwd(), '.mastra', '.build'),\n projectRoot: workspaceRoot || process.cwd(),\n platform,\n isDev: true,\n bundlerOptions,\n },\n noopLogger,\n );\n\n const deps = /* @__PURE__ */ new Map();\n for (const [dep, metadata] of analyzeEntryResult.dependencies.entries()) {\n const pkgName = getPackageName(dep);\n if (pkgName && workspaceMap.has(pkgName)) {\n deps.set(dep, metadata);\n }\n }\n\n const inputOptions = await getBundlerInputOptions(\n entryFile,\n {\n dependencies: deps,\n externalDependencies: new Map(),\n workspaceMap,\n },\n platform,\n env,\n { sourcemap, isDev: true, workspaceRoot, projectRoot, externalsPreset: bundlerOptions?.externals === true },\n );\n\n if (Array.isArray(inputOptions.plugins)) {\n // filter out node-resolve plugin so all node_modules are external\n // and tsconfig-paths plugin as we are injection a custom one\n const plugins = [] as Plugin[];\n inputOptions.plugins.forEach(plugin => {\n if ((plugin as Plugin | undefined)?.name === 'node-resolve') {\n return;\n }\n\n if ((plugin as Plugin | undefined)?.name === 'tsconfig-paths') {\n plugins.push(\n tsConfigPaths({\n localResolve: true,\n }),\n );\n return;\n }\n\n plugins.push(plugin as Plugin);\n });\n\n inputOptions.plugins = plugins;\n inputOptions.plugins.push(aliasHono());\n // fixes imports like lodash/fp/get\n inputOptions.plugins.push(nodeModulesExtensionResolver());\n }\n\n return inputOptions;\n}\n\nexport async function createWatcher(inputOptions: InputOptions, outputOptions: OutputOptions) {\n const watcher = await watch({\n ...inputOptions,\n output: {\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n },\n });\n\n return watcher;\n}\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\n\nexport function getServerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('server', entryFile, result);\n}\n\nexport async function getServerOptions(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<Config['server'] | null> {\n const result = await extractMastraOption('server', entryFile, outputDir, logger);\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n","import { lstat, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport matter from 'gray-matter';\nimport { slash } from '../utils';\n\n/**\n * A file-system routed agent directory discovered under `<mastraDir>/agents/`.\n * All paths are absolute and slash-normalized so they can be embedded into\n * generated module source on any platform.\n */\nexport interface DiscoveredFsAgent {\n /** Agent directory name. Used as the default `id`/`name`. */\n name: string;\n /** Absolute, slash-normalized path to the agent directory. */\n dir: string;\n /** Absolute path to `config.ts`/`config.js`, if present. */\n configPath?: string;\n /** Absolute path to `instructions.md`, if present. */\n instructionsPath?: string;\n /** Absolute path to `workspace.ts`/`workspace.js`, if present. */\n workspacePath?: string;\n /** Absolute path to `memory.ts`/`memory.js`, if present. */\n memoryPath?: string;\n /**\n * Absolute, slash-normalized path to an authored `workspace/` directory of\n * seed files, if present. These are mirrored into the deployed workspace at\n * build time (Eve parity) so the agent starts with them on disk.\n */\n workspaceSeedDir?: string;\n /** Tools discovered under `tools/`, in stable (sorted) order. */\n tools: { key: string; path: string }[];\n /** Skills discovered under `skills/`, in stable (sorted) order. */\n skills: DiscoveredFsSkill[];\n /**\n * Declared subagents discovered under `subagents/`, in stable (sorted) order.\n * Subagents are one level deep only: a discovered subagent never carries its\n * own `subagents` (nested `subagents/` directories are ignored with a warning).\n */\n subagents: DiscoveredFsAgent[];\n}\n\n/**\n * A skill discovered under `agents/<name>/skills/`.\n *\n * - `kind: 'module'` — a `.ts`/`.js` file whose default export is a `createSkill(...)`\n * result. Codegen imports it directly; `name`/`description`/`instructions` are\n * unknown at discovery time and resolved at runtime from the module.\n * - `kind: 'packaged'` — a `SKILL.md` (optionally with a `references/` subdir) or a\n * flat `<skill>.md`. Codegen inlines it via `createSkill(...)` using the parsed\n * fields below so the deployed bundle carries no filesystem dependency.\n */\nexport type DiscoveredFsSkill =\n | {\n kind: 'module';\n /** Absolute, slash-normalized path to the `.ts`/`.js` skill module. */\n path: string;\n }\n | {\n kind: 'packaged';\n name: string;\n description: string;\n instructions: string;\n /** Reference file contents keyed by relative path (from `references/`). */\n references: Record<string, string>;\n };\n\nconst CONFIG_BASENAMES = ['config.ts', 'config.js'];\nconst WORKSPACE_BASENAMES = ['workspace.ts', 'workspace.js'];\nconst MEMORY_BASENAMES = ['memory.ts', 'memory.js'];\nconst INSTRUCTIONS_BASENAME = 'instructions.md';\nconst TOOL_EXTENSIONS = ['.ts', '.js'];\nconst SKILL_MODULE_EXTENSIONS = ['.ts', '.js'];\nconst SKILL_MD_BASENAME = 'SKILL.md';\n\n/**\n * Presence check that does NOT follow symlinks. Returns `false` for symlinks\n * (and broken links) so a symlinked `config.ts`/`instructions.md`/`workspace.ts`/\n * `memory.ts` is never inlined or imported into the generated bundle.\n */\nasync function exists(path: string): Promise<boolean> {\n try {\n return !(await lstat(path)).isSymbolicLink();\n } catch {\n return false;\n }\n}\n\n/**\n * Returns the slash-normalized path when `path` is a real directory (not a\n * symlink). Symlinked directories are rejected to prevent the build from\n * following links out of the project tree during discovery.\n */\nasync function realDirectory(path: string): Promise<string | undefined> {\n try {\n const info = await lstat(path);\n if (info.isDirectory() && !info.isSymbolicLink()) {\n return slash(path);\n }\n } catch {\n // not present\n }\n return undefined;\n}\n\nasync function directoryExists(path: string): Promise<string | undefined> {\n return realDirectory(path);\n}\n\nasync function firstExisting(dir: string, basenames: string[]): Promise<string | undefined> {\n for (const basename of basenames) {\n const candidate = join(dir, basename);\n if (await exists(candidate)) {\n return slash(candidate);\n }\n }\n return undefined;\n}\n\nfunction isTestFile(basename: string): boolean {\n return /\\.(test|spec)\\.(ts|js)$/.test(basename);\n}\n\nfunction toolKey(basename: string): string {\n return basename.replace(/\\.(ts|js)$/, '');\n}\n\nasync function discoverTools(toolsDir: string): Promise<DiscoveredFsAgent['tools']> {\n if (!(await exists(toolsDir))) {\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(toolsDir);\n } catch {\n return [];\n }\n\n const tools: DiscoveredFsAgent['tools'] = [];\n for (const basename of entries.sort()) {\n if (isTestFile(basename)) {\n continue;\n }\n if (!TOOL_EXTENSIONS.some(ext => basename.endsWith(ext))) {\n continue;\n }\n const path = join(toolsDir, basename);\n // Use lstat so symlinks are detected (not followed). Skip symlinks and\n // directories: a symlinked tool file could point anywhere on the build\n // machine and be embedded into generated import code.\n const stats = await lstat(path);\n if (stats.isSymbolicLink() || stats.isDirectory()) {\n continue;\n }\n tools.push({ key: toolKey(basename), path: slash(path) });\n }\n\n return tools;\n}\n\nasync function readReferences(referencesDir: string): Promise<Record<string, string>> {\n if (!(await exists(referencesDir))) {\n return {};\n }\n const references: Record<string, string> = {};\n let entries: string[];\n try {\n entries = await readdir(referencesDir);\n } catch {\n return {};\n }\n for (const basename of entries.sort()) {\n const path = join(referencesDir, basename);\n // Use lstat so symlinks are detected (not followed). Skip symlinks: a\n // symlink under `references/` could point anywhere on the build machine and\n // silently embed arbitrary file contents into the generated bundle.\n const stats = await lstat(path);\n if (stats.isSymbolicLink() || stats.isDirectory()) {\n continue;\n }\n references[basename] = await readFile(path, 'utf-8');\n }\n return references;\n}\n\nasync function parsePackagedSkill(\n skillMdPath: string,\n fallbackName: string,\n references: Record<string, string> = {},\n): Promise<Extract<DiscoveredFsSkill, { kind: 'packaged' }>> {\n const raw = await readFile(skillMdPath, 'utf-8');\n const parsed = matter(raw);\n const frontmatter = parsed.data as { name?: string; description?: string };\n const name = frontmatter.name ?? fallbackName;\n const description = frontmatter.description ?? '';\n const instructions = parsed.content.trim();\n return { kind: 'packaged', name, description, instructions, references };\n}\n\nfunction skillModuleName(basename: string): string {\n return basename.replace(/\\.(ts|js)$/, '');\n}\n\nasync function discoverSkills(skillsDir: string): Promise<DiscoveredFsSkill[]> {\n if (!(await exists(skillsDir))) {\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(skillsDir);\n } catch {\n return [];\n }\n\n const skills: DiscoveredFsSkill[] = [];\n for (const basename of entries.sort()) {\n if (isTestFile(basename)) {\n continue;\n }\n const path = join(skillsDir, basename);\n // Use lstat so symlinks are detected (not followed). Skip symlinks: a\n // symlinked skill module/markdown could point anywhere on the build machine\n // and be bundled or inlined into the generated output.\n const stats = await lstat(path);\n if (stats.isSymbolicLink()) {\n continue;\n }\n const isDir = stats.isDirectory();\n\n // Packaged skill directory: <skill>/SKILL.md (+ references/)\n if (isDir) {\n const skillMd = join(path, SKILL_MD_BASENAME);\n if (await exists(skillMd)) {\n const references = await readReferences(join(path, 'references'));\n skills.push(await parsePackagedSkill(skillMd, skillModuleName(basename), references));\n }\n continue;\n }\n\n // createSkill module: <skill>.ts | <skill>.js\n if (SKILL_MODULE_EXTENSIONS.some(ext => basename.endsWith(ext))) {\n skills.push({ kind: 'module', path: slash(path) });\n continue;\n }\n\n // Flat markdown skill: <skill>.md\n if (basename.endsWith('.md')) {\n const skill = await parsePackagedSkill(path, basename.replace(/\\.md$/, ''));\n skills.push(skill);\n }\n }\n\n return skills;\n}\n\n/**\n * Discover a single agent directory: its `config`/`instructions`/`workspace`\n * files plus `tools/`, `skills/`, and (when `allowSubagents`) one level of\n * declared `subagents/`. Returns `undefined` when `dir` is not an agent\n * directory (no `config.(ts|js)` and no `instructions.md`).\n *\n * `allowSubagents` is `true` for top-level agents and `false` when discovering a\n * subagent, so nested `subagents/` directories are never recursed into.\n */\nasync function discoverAgentDir(\n dir: string,\n name: string,\n allowSubagents: boolean,\n onWarn?: (message: string) => void,\n): Promise<DiscoveredFsAgent | undefined> {\n const configPath = await firstExisting(dir, CONFIG_BASENAMES);\n const instructionsPath = (await exists(join(dir, INSTRUCTIONS_BASENAME)))\n ? slash(join(dir, INSTRUCTIONS_BASENAME))\n : undefined;\n\n // Not an agent directory unless it has a config or instructions file.\n if (!configPath && !instructionsPath) {\n return undefined;\n }\n\n const workspacePath = await firstExisting(dir, WORKSPACE_BASENAMES);\n const memoryPath = await firstExisting(dir, MEMORY_BASENAMES);\n const workspaceSeedDir = await directoryExists(join(dir, 'workspace'));\n const tools = await discoverTools(join(dir, 'tools'));\n const skills = await discoverSkills(join(dir, 'skills'));\n const subagents = await discoverSubagents(dir, allowSubagents, onWarn);\n\n return {\n name,\n dir: slash(dir),\n configPath,\n instructionsPath,\n workspacePath,\n memoryPath,\n workspaceSeedDir,\n tools,\n skills,\n subagents,\n };\n}\n\n/**\n * Discover declared subagents under `<dir>/subagents/*`. Subagents are one level\n * deep only: each discovered subagent is scanned with `allowSubagents: false`,\n * so a nested `subagents/` directory inside a subagent is ignored with a warning.\n * When `allowSubagents` is `false` (we are already inside a subagent) the whole\n * `subagents/` directory is skipped and a warning is emitted if present.\n */\nasync function discoverSubagents(\n parentDir: string,\n allowSubagents: boolean,\n onWarn?: (message: string) => void,\n): Promise<DiscoveredFsAgent[]> {\n const subagentsDir = join(parentDir, 'subagents');\n if (!(await exists(subagentsDir))) {\n return [];\n }\n\n if (!allowSubagents) {\n onWarn?.(\n `Ignoring nested subagents in \"${slash(subagentsDir)}\": subagents are one level deep only, so a subagent cannot declare its own subagents.`,\n );\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(subagentsDir);\n } catch {\n return [];\n }\n\n const subagents: DiscoveredFsAgent[] = [];\n for (const name of entries.sort()) {\n const dir = join(subagentsDir, name);\n if (!(await realDirectory(dir))) {\n continue;\n }\n const child = await discoverAgentDir(dir, name, false, onWarn);\n if (child) {\n subagents.push(child);\n }\n }\n\n return subagents;\n}\n\n/**\n * Scan `<mastraDir>/agents/*` for file-system routed agents. A directory is\n * treated as an agent only when it contains a `config.(ts|js)` or an\n * `instructions.md`; other directories are ignored. Each top-level agent may\n * declare one level of `subagents/`. Returns descriptors with absolute,\n * slash-normalized paths ready for codegen. Performs no module evaluation —\n * only filesystem inspection.\n */\nexport async function discoverFsAgents(\n mastraDir: string,\n onWarn?: (message: string) => void,\n): Promise<DiscoveredFsAgent[]> {\n const agentsDir = join(mastraDir, 'agents');\n if (!(await exists(agentsDir))) {\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(agentsDir);\n } catch {\n return [];\n }\n\n const discovered: DiscoveredFsAgent[] = [];\n for (const name of entries.sort()) {\n const dir = join(agentsDir, name);\n if (!(await realDirectory(dir))) {\n continue;\n }\n const agent = await discoverAgentDir(dir, name, true, onWarn);\n if (agent) {\n discovered.push(agent);\n }\n }\n\n return discovered;\n}\n","import { readFile } from 'node:fs/promises';\nimport type { DiscoveredFsAgent } from './discover';\n\nfunction sanitizeIdentifier(name: string, prefix: string, index: string): string {\n const cleaned = name.replace(/[^a-zA-Z0-9_$]/g, '_');\n return `${prefix}_${index}_${cleaned}`;\n}\n\n/**\n * Emit the imports for a single discovered agent into `lines` and return the\n * source of its `assembleAgentFromFsEntry` entry object (the `{ name, config,\n * ... }` argument). `idPath` is a dot-free, unique path index (e.g. `0` for the\n * first top-level agent, `0_1` for its second subagent) used to keep generated\n * identifiers unique across the parent/child tree. `workspaceName` is the\n * slash-joined workspace key (`<parent>/<child>` for subagents) so seed files\n * don't collide. When `allowSubagents` is true the agent's discovered subagents\n * are emitted as a nested `subagents: [...]` field.\n */\nasync function emitAgentEntry(\n agent: DiscoveredFsAgent,\n idPath: string,\n workspaceName: string,\n allowSubagents: boolean,\n lines: string[],\n): Promise<string> {\n const configIdent = sanitizeIdentifier(agent.name, 'config', idPath);\n const toolIdents: { key: string; ident: string }[] = [];\n\n if (agent.configPath) {\n lines.push(`import ${configIdent} from ${JSON.stringify(agent.configPath)};`);\n }\n\n let workspaceIdent: string | undefined;\n if (agent.workspacePath) {\n workspaceIdent = sanitizeIdentifier(`${agent.name}_workspace`, 'workspace', idPath);\n lines.push(`import ${workspaceIdent} from ${JSON.stringify(agent.workspacePath)};`);\n }\n\n let memoryIdent: string | undefined;\n if (agent.memoryPath) {\n memoryIdent = sanitizeIdentifier(`${agent.name}_memory`, 'memory', idPath);\n lines.push(`import ${memoryIdent} from ${JSON.stringify(agent.memoryPath)};`);\n }\n\n for (let t = 0; t < agent.tools.length; t++) {\n const tool = agent.tools[t]!;\n const ident = sanitizeIdentifier(`${agent.name}_${tool.key}`, 'tool', `${idPath}_${t}`);\n lines.push(`import ${ident} from ${JSON.stringify(tool.path)};`);\n toolIdents.push({ key: tool.key, ident });\n }\n\n // Skills: `createSkill(...)` modules are imported and used directly;\n // packaged `SKILL.md` skills are inlined via `createSkill({...})`.\n const skillExprs: string[] = [];\n const agentSkills = agent.skills ?? [];\n for (let s = 0; s < agentSkills.length; s++) {\n const skill = agentSkills[s]!;\n if (skill.kind === 'module') {\n const ident = sanitizeIdentifier(`${agent.name}_skill`, 'skill', `${idPath}_${s}`);\n lines.push(`import ${ident} from ${JSON.stringify(skill.path)};`);\n skillExprs.push(ident);\n } else {\n const referenceFields = Object.entries(skill.references).map(\n ([key, value]) => `${JSON.stringify(key)}: ${JSON.stringify(value)}`,\n );\n const skillFields = [\n `name: ${JSON.stringify(skill.name)}`,\n `description: ${JSON.stringify(skill.description)}`,\n `instructions: ${JSON.stringify(skill.instructions)}`,\n ];\n if (referenceFields.length > 0) {\n skillFields.push(`references: { ${referenceFields.join(', ')} }`);\n }\n skillExprs.push(`__createSkill({ ${skillFields.join(', ')} })`);\n }\n }\n\n let instructionsMd: string | undefined;\n if (agent.instructionsPath) {\n instructionsMd = await readFile(agent.instructionsPath, 'utf-8');\n }\n\n // Declared subagents (one level deep). Each is itself an\n // `assembleAgentFromFsEntry` entry object with no further `subagents`.\n const subagentExprs: string[] = [];\n if (allowSubagents) {\n for (let c = 0; c < agent.subagents.length; c++) {\n const child = agent.subagents[c]!;\n const childExpr = await emitAgentEntry(child, `${idPath}_${c}`, `${workspaceName}/${child.name}`, false, lines);\n subagentExprs.push(childExpr);\n }\n }\n\n const entryFields: string[] = [`name: ${JSON.stringify(agent.name)}`];\n if (agent.configPath) {\n entryFields.push(`config: ${configIdent}`);\n }\n if (instructionsMd !== undefined) {\n entryFields.push(`instructionsMd: ${JSON.stringify(instructionsMd)}`);\n }\n if (toolIdents.length > 0) {\n const toolEntries = toolIdents.map(({ key, ident }) => `{ key: ${JSON.stringify(key)}, tool: ${ident} }`);\n entryFields.push(`tools: [${toolEntries.join(', ')}]`);\n }\n if (skillExprs.length > 0) {\n entryFields.push(`skills: [${skillExprs.join(', ')}]`);\n }\n if (subagentExprs.length > 0) {\n entryFields.push(`subagents: [${subagentExprs.join(', ')}]`);\n }\n if (workspaceIdent) {\n entryFields.push(`workspace: ${workspaceIdent}`);\n }\n if (memoryIdent) {\n entryFields.push(`memory: ${memoryIdent}`);\n }\n // Default-on parity: every FS agent gets a default workspace (file + shell\n // tools) rooted at a per-agent `workspace/` dir next to the bundle, unless\n // config.ts or workspace.ts supplies one. Assembly applies the explicit >\n // convention > default precedence. Subagents nest under `<parent>/<child>` so\n // their seed directories never collide with the parent's.\n entryFields.push(`defaultWorkspaceBasePath: __workspaceBasePath(${JSON.stringify(workspaceName)})`);\n\n return `{ ${entryFields.join(', ')} }`;\n}\n\n/**\n * Generate the source of a wrapper module that:\n * 1. imports the user's real Mastra entry,\n * 2. imports each discovered `config.ts`, `tools/*.ts`, `skills/*.ts`\n * (`createSkill(...)` modules), `workspace.ts`, and `memory.ts`, inlining\n * packaged `SKILL.md` skills,\n * 3. assembles `Agent` instances via `assembleAgentFromFsEntry`, wiring any\n * declared `subagents/` into the parent (one level deep),\n * 4. registers them onto the user's `mastra` instance (code-registered agents\n * win on name collisions), and\n * 5. re-exports everything from the user's entry so this module is a drop-in\n * replacement for the original `#mastra` target.\n *\n * `instructions.md` contents are inlined at codegen time so no markdown loader\n * plugin is required in the bundler graph.\n *\n * @param userEntry slash-normalized absolute path to the user's mastra entry.\n * @param agents discovered fs-routed agents (absolute, slash-normalized paths).\n */\nexport async function generateFsAgentsModule(userEntry: string, agents: DiscoveredFsAgent[]): Promise<string> {\n const lines: string[] = [];\n\n const hasInlineSkills = agents.some(a =>\n [a, ...(a.subagents ?? [])].some(x => (x.skills ?? []).some(s => s.kind === 'packaged')),\n );\n\n lines.push(`import { assembleAgentFromFsEntry } from '@mastra/core/agent';`);\n if (hasInlineSkills) {\n lines.push(`import { createSkill as __createSkill } from '@mastra/core/skills';`);\n }\n lines.push(`import { fileURLToPath as __fileURLToPath } from 'node:url';`);\n lines.push(`import { dirname as __dirname, join as __join } from 'node:path';`);\n lines.push(`import * as __userEntry from ${JSON.stringify(userEntry)};`);\n lines.push(`export * from ${JSON.stringify(userEntry)};`);\n lines.push(``);\n // Resolve workspace base paths relative to this bundled module so they point\n // at `<bundle>/workspace/<name>` wherever the bundle is deployed. Seed files\n // authored under `agents/<name>/workspace/**` are mirrored there at build time.\n // `name` may be a slash-joined path (`<parent>/<child>`) for subagents.\n lines.push(`const __bundleDir = __dirname(__fileURLToPath(import.meta.url));`);\n lines.push(`const __workspaceBasePath = name => __join(__bundleDir, 'workspace', ...name.split('/'));`);\n lines.push(``);\n\n const entryExprs: string[] = [];\n for (let i = 0; i < agents.length; i++) {\n const agent = agents[i]!;\n const expr = await emitAgentEntry(agent, `${i}`, agent.name, true, lines);\n entryExprs.push(expr);\n }\n\n lines.push(``);\n lines.push(`const __fsAgentEntries = [`);\n for (const expr of entryExprs) {\n lines.push(` ${expr},`);\n }\n lines.push(`];`);\n lines.push(``);\n lines.push(`const __fsAgents = Object.create(null);`);\n lines.push(`for (const __entry of __fsAgentEntries) {`);\n lines.push(` __fsAgents[__entry.name] = assembleAgentFromFsEntry(__entry, {`);\n lines.push(` onWarn: msg => __userEntry.mastra?.getLogger?.()?.warn?.(msg) ?? console.warn(msg),`);\n lines.push(` });`);\n lines.push(`}`);\n lines.push(``);\n lines.push(`if (__userEntry.mastra && typeof __userEntry.mastra.__registerFsAgents === 'function') {`);\n lines.push(` __userEntry.mastra.__registerFsAgents(__fsAgents);`);\n lines.push(`}`);\n lines.push(``);\n lines.push(`export const mastra = __userEntry.mastra;`);\n\n return lines.join('\\n');\n}\n","import { mkdir, writeFile } from 'node:fs/promises';\nimport { dirname, join, posix } from 'node:path';\nimport { slash } from '../utils';\nimport { generateFsAgentsModule } from './codegen';\nimport { discoverFsAgents } from './discover';\n\nexport interface PrepareFsAgentsEntryResult {\n /**\n * The entry file that should be fed to the bundler/analyzer. When fs-routed\n * agents are found this is a generated wrapper module that registers them onto\n * the user's mastra instance; otherwise it is the original entry unchanged.\n */\n entryFile: string;\n /**\n * Glob tool paths for tools defined under `agents/*\\/tools` so they are\n * bundled alongside the top-level `tools/` directory.\n */\n toolPaths: string[];\n /** Number of fs-routed agents discovered. */\n agentCount: number;\n /**\n * Generated wrapper source to write to {@link entryFile}, or `undefined` when\n * there are no fs-routed agents. The write is deferred so callers can run it\n * *after* `bundler.prepare()` empties the output directory — otherwise the\n * wrapper is wiped before the bundler reads it.\n */\n moduleSource?: string;\n}\n\n/**\n * Discover fs-routed agents under `<mastraDir>/agents/*` and, if any exist,\n * generate a wrapper entry module that registers them onto the user's mastra\n * instance. Returns the entry the bundler should use plus extra tool glob paths\n * so `agents/*\\/tools` are bundled.\n *\n * This does NOT write the wrapper to disk; call {@link writeFsAgentsEntry} with\n * the result after `bundler.prepare()` so the generated file is not wiped when\n * the output directory is emptied.\n *\n * When no fs-routed agents are present the original entry is returned unchanged,\n * so existing code-only projects are completely unaffected.\n */\nexport async function prepareFsAgentsEntry(\n mastraDir: string,\n entryFile: string,\n outputDirectory: string,\n): Promise<PrepareFsAgentsEntryResult> {\n const agents = await discoverFsAgents(mastraDir);\n\n if (agents.length === 0) {\n return { entryFile, toolPaths: [], agentCount: 0 };\n }\n\n const moduleSource = await generateFsAgentsModule(slash(entryFile), agents);\n const generatedEntry = join(outputDirectory, '.mastra-fs-agents-entry.mjs');\n\n const normalizedMastraDir = slash(mastraDir);\n const toolPaths = [\n posix.join(normalizedMastraDir, 'agents/*/tools/**/*.{js,ts}'),\n `!${posix.join(normalizedMastraDir, 'agents/*/tools/**/*.{test,spec}.{js,ts}')}`,\n `!${posix.join(normalizedMastraDir, 'agents/*/tools/**/__tests__/**')}`,\n ];\n\n return { entryFile: generatedEntry, toolPaths, agentCount: agents.length, moduleSource };\n}\n\n/**\n * Write the generated fs-agents wrapper produced by {@link prepareFsAgentsEntry}\n * to its `entryFile`. No-op when there are no fs-routed agents. Call this AFTER\n * `bundler.prepare()` (which empties the output directory) so the wrapper\n * survives for the bundler/watcher to read.\n */\nexport async function writeFsAgentsEntry(result: PrepareFsAgentsEntryResult): Promise<void> {\n if (!result.moduleSource) {\n return;\n }\n\n await mkdir(dirname(result.entryFile), { recursive: true });\n await writeFile(result.entryFile, result.moduleSource, 'utf-8');\n}\n","import { cp, lstat, mkdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { discoverFsAgents } from './discover';\nimport type { DiscoveredFsAgent } from './discover';\n\n/**\n * Skip symlinks when copying workspace seeds. A symlink under\n * `agents/<name>/workspace/` could point outside the workspace and be preserved\n * in the bundle, letting the agent read arbitrary files at runtime. We copy only\n * regular files and directories.\n */\nasync function rejectSymlinks(source: string): Promise<boolean> {\n const stats = await lstat(source);\n return !stats.isSymbolicLink();\n}\n\nasync function mirrorAgentSeeds(\n agent: DiscoveredFsAgent,\n workspaceName: string,\n bundleDir: string,\n mirrored: string[],\n): Promise<void> {\n if (agent.workspaceSeedDir) {\n const destination = join(bundleDir, 'workspace', ...workspaceName.split('/'));\n await mkdir(destination, { recursive: true });\n await cp(agent.workspaceSeedDir, destination, { recursive: true, filter: rejectSymlinks });\n mirrored.push(workspaceName);\n }\n\n // Subagents nest under `<parent>/<child>`, matching the codegen workspace key.\n for (const child of agent.subagents ?? []) {\n await mirrorAgentSeeds(child, `${workspaceName}/${child.name}`, bundleDir, mirrored);\n }\n}\n\n/**\n * Mirror authored `agents/<name>/workspace/**` seed files into the bundled\n * output so each fs-routed agent starts with them on disk (Eve parity). Files\n * are copied to `<bundleDir>/workspace/<name>`, which is exactly where the\n * generated entry roots each agent's default workspace at runtime (resolved\n * relative to the bundled module via `import.meta.url`). Declared subagents\n * mirror to the nested `<bundleDir>/workspace/<parent>/<child>` path.\n *\n * Must run AFTER the bundle step, since bundling recreates the output dir.\n *\n * @param mastraDir The user's `src/mastra` directory (source of seeds).\n * @param bundleDir The final bundle directory (e.g. `<outputDirectory>/output`).\n * @returns the workspace names whose seeds were mirrored (`<parent>/<child>` for subagents).\n */\nexport async function mirrorFsAgentWorkspaces(mastraDir: string, bundleDir: string): Promise<string[]> {\n const agents = await discoverFsAgents(mastraDir);\n const mirrored: string[] = [];\n\n for (const agent of agents) {\n await mirrorAgentSeeds(agent, agent.name, bundleDir, mirrored);\n }\n\n return mirrored;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/build/watcher.ts","../src/build/serverOptions.ts","../src/build/fs-routing/discover.ts","../src/build/fs-routing/codegen.ts","../src/build/fs-routing/prepare.ts","../src/build/fs-routing/mirror.ts"],"names":["getInputOptions","pkg","dirname","slash","getWorkspaceInformation","analyzeBundle","posix","noopLogger","getPackageName","tsConfigPaths","aliasHono","nodeModulesExtensionResolver","watch","extractMastraOption","lstat","join","readdir","path","readFile","matter","mkdir","writeFile","cp"],"mappings":"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","file":"chunk-2XUYQ2EJ.cjs","sourcesContent":["import { dirname, posix } from 'node:path';\nimport { noopLogger } from '@mastra/core/logger';\nimport * as pkg from 'empathic/package';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport { watch } from 'rollup';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport { analyzeBundle } from './analyze';\nimport { getInputOptions as getBundlerInputOptions } from './bundler';\nimport { aliasHono } from './plugins/hono-alias';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport type { BundlerOptions } from './types';\nimport { getPackageName, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n platform: BundlerPlatform,\n env?: Record<string, string>,\n {\n sourcemap = false,\n bundlerOptions = {\n enableSourcemap: false,\n enableEsmShim: true,\n externals: true,\n },\n }: { sourcemap?: boolean; bundlerOptions?: BundlerOptions } = {},\n) {\n const closestPkgJson = pkg.up({ cwd: dirname(entryFile) });\n const projectRoot = closestPkgJson ? dirname(slash(closestPkgJson)) : slash(process.cwd());\n const { workspaceMap, workspaceRoot } = await getWorkspaceInformation({ mastraEntryFile: entryFile });\n\n const analyzeEntryResult = await analyzeBundle(\n [entryFile],\n entryFile,\n {\n outputDir: posix.join(process.cwd(), '.mastra', '.build'),\n projectRoot: workspaceRoot || process.cwd(),\n platform,\n isDev: true,\n bundlerOptions,\n },\n noopLogger,\n );\n\n const deps = /* @__PURE__ */ new Map();\n for (const [dep, metadata] of analyzeEntryResult.dependencies.entries()) {\n const pkgName = getPackageName(dep);\n if (pkgName && workspaceMap.has(pkgName)) {\n deps.set(dep, metadata);\n }\n }\n\n const inputOptions = await getBundlerInputOptions(\n entryFile,\n {\n dependencies: deps,\n externalDependencies: new Map(),\n workspaceMap,\n },\n platform,\n env,\n { sourcemap, isDev: true, workspaceRoot, projectRoot, externalsPreset: bundlerOptions?.externals === true },\n );\n\n if (Array.isArray(inputOptions.plugins)) {\n // filter out node-resolve plugin so all node_modules are external\n // and tsconfig-paths plugin as we are injection a custom one\n const plugins = [] as Plugin[];\n inputOptions.plugins.forEach(plugin => {\n if ((plugin as Plugin | undefined)?.name === 'node-resolve') {\n return;\n }\n\n if ((plugin as Plugin | undefined)?.name === 'tsconfig-paths') {\n plugins.push(\n tsConfigPaths({\n localResolve: true,\n }),\n );\n return;\n }\n\n plugins.push(plugin as Plugin);\n });\n\n inputOptions.plugins = plugins;\n inputOptions.plugins.push(aliasHono());\n // fixes imports like lodash/fp/get\n inputOptions.plugins.push(nodeModulesExtensionResolver());\n }\n\n return inputOptions;\n}\n\nexport async function createWatcher(inputOptions: InputOptions, outputOptions: OutputOptions) {\n const watcher = await watch({\n ...inputOptions,\n output: {\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n },\n });\n\n return watcher;\n}\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\n\nexport function getServerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('server', entryFile, result);\n}\n\nexport async function getServerOptions(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<Config['server'] | null> {\n const result = await extractMastraOption('server', entryFile, outputDir, logger);\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n","import { lstat, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport matter from 'gray-matter';\nimport { slash } from '../utils';\n\n/**\n * A file-system routed agent directory discovered under `<mastraDir>/agents/`.\n * All paths are absolute and slash-normalized so they can be embedded into\n * generated module source on any platform.\n */\nexport interface DiscoveredFsAgent {\n /** Agent directory name. Used as the default `id`/`name`. */\n name: string;\n /** Absolute, slash-normalized path to the agent directory. */\n dir: string;\n /** Absolute path to `config.ts`/`config.js`, if present. */\n configPath?: string;\n /** Absolute path to `instructions.md`, if present. */\n instructionsPath?: string;\n /** Absolute path to `workspace.ts`/`workspace.js`, if present. */\n workspacePath?: string;\n /** Absolute path to `memory.ts`/`memory.js`, if present. */\n memoryPath?: string;\n /**\n * Absolute, slash-normalized path to an authored `workspace/` directory of\n * seed files, if present. These are mirrored into the deployed workspace at\n * build time (Eve parity) so the agent starts with them on disk.\n */\n workspaceSeedDir?: string;\n /** Tools discovered under `tools/`, in stable (sorted) order. */\n tools: { key: string; path: string }[];\n /** Skills discovered under `skills/`, in stable (sorted) order. */\n skills: DiscoveredFsSkill[];\n /**\n * Declared subagents discovered under `subagents/`, in stable (sorted) order.\n * Subagents are one level deep only: a discovered subagent never carries its\n * own `subagents` (nested `subagents/` directories are ignored with a warning).\n */\n subagents: DiscoveredFsAgent[];\n}\n\n/**\n * A skill discovered under `agents/<name>/skills/`.\n *\n * - `kind: 'module'` — a `.ts`/`.js` file whose default export is a `createSkill(...)`\n * result. Codegen imports it directly; `name`/`description`/`instructions` are\n * unknown at discovery time and resolved at runtime from the module.\n * - `kind: 'packaged'` — a `SKILL.md` (optionally with a `references/` subdir) or a\n * flat `<skill>.md`. Codegen inlines it via `createSkill(...)` using the parsed\n * fields below so the deployed bundle carries no filesystem dependency.\n */\nexport type DiscoveredFsSkill =\n | {\n kind: 'module';\n /** Absolute, slash-normalized path to the `.ts`/`.js` skill module. */\n path: string;\n }\n | {\n kind: 'packaged';\n name: string;\n description: string;\n instructions: string;\n /** Reference file contents keyed by relative path (from `references/`). */\n references: Record<string, string>;\n };\n\nconst CONFIG_BASENAMES = ['config.ts', 'config.js'];\nconst WORKSPACE_BASENAMES = ['workspace.ts', 'workspace.js'];\nconst MEMORY_BASENAMES = ['memory.ts', 'memory.js'];\nconst INSTRUCTIONS_BASENAME = 'instructions.md';\nconst TOOL_EXTENSIONS = ['.ts', '.js'];\nconst SKILL_MODULE_EXTENSIONS = ['.ts', '.js'];\nconst SKILL_MD_BASENAME = 'SKILL.md';\n\n/**\n * Presence check that does NOT follow symlinks. Returns `false` for symlinks\n * (and broken links) so a symlinked `config.ts`/`instructions.md`/`workspace.ts`/\n * `memory.ts` is never inlined or imported into the generated bundle.\n */\nasync function exists(path: string): Promise<boolean> {\n try {\n return !(await lstat(path)).isSymbolicLink();\n } catch {\n return false;\n }\n}\n\n/**\n * Returns the slash-normalized path when `path` is a real directory (not a\n * symlink). Symlinked directories are rejected to prevent the build from\n * following links out of the project tree during discovery.\n */\nasync function realDirectory(path: string): Promise<string | undefined> {\n try {\n const info = await lstat(path);\n if (info.isDirectory() && !info.isSymbolicLink()) {\n return slash(path);\n }\n } catch {\n // not present\n }\n return undefined;\n}\n\nasync function directoryExists(path: string): Promise<string | undefined> {\n return realDirectory(path);\n}\n\nasync function firstExisting(dir: string, basenames: string[]): Promise<string | undefined> {\n for (const basename of basenames) {\n const candidate = join(dir, basename);\n if (await exists(candidate)) {\n return slash(candidate);\n }\n }\n return undefined;\n}\n\nfunction isTestFile(basename: string): boolean {\n return /\\.(test|spec)\\.(ts|js)$/.test(basename);\n}\n\nfunction toolKey(basename: string): string {\n return basename.replace(/\\.(ts|js)$/, '');\n}\n\nasync function discoverTools(toolsDir: string): Promise<DiscoveredFsAgent['tools']> {\n if (!(await exists(toolsDir))) {\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(toolsDir);\n } catch {\n return [];\n }\n\n const tools: DiscoveredFsAgent['tools'] = [];\n for (const basename of entries.sort()) {\n if (isTestFile(basename)) {\n continue;\n }\n if (!TOOL_EXTENSIONS.some(ext => basename.endsWith(ext))) {\n continue;\n }\n const path = join(toolsDir, basename);\n // Use lstat so symlinks are detected (not followed). Skip symlinks and\n // directories: a symlinked tool file could point anywhere on the build\n // machine and be embedded into generated import code.\n const stats = await lstat(path);\n if (stats.isSymbolicLink() || stats.isDirectory()) {\n continue;\n }\n tools.push({ key: toolKey(basename), path: slash(path) });\n }\n\n return tools;\n}\n\nasync function readReferences(referencesDir: string): Promise<Record<string, string>> {\n if (!(await exists(referencesDir))) {\n return {};\n }\n const references: Record<string, string> = {};\n let entries: string[];\n try {\n entries = await readdir(referencesDir);\n } catch {\n return {};\n }\n for (const basename of entries.sort()) {\n const path = join(referencesDir, basename);\n // Use lstat so symlinks are detected (not followed). Skip symlinks: a\n // symlink under `references/` could point anywhere on the build machine and\n // silently embed arbitrary file contents into the generated bundle.\n const stats = await lstat(path);\n if (stats.isSymbolicLink() || stats.isDirectory()) {\n continue;\n }\n references[basename] = await readFile(path, 'utf-8');\n }\n return references;\n}\n\nasync function parsePackagedSkill(\n skillMdPath: string,\n fallbackName: string,\n references: Record<string, string> = {},\n): Promise<Extract<DiscoveredFsSkill, { kind: 'packaged' }>> {\n const raw = await readFile(skillMdPath, 'utf-8');\n const parsed = matter(raw);\n const frontmatter = parsed.data as { name?: string; description?: string };\n const name = frontmatter.name ?? fallbackName;\n const description = frontmatter.description ?? '';\n const instructions = parsed.content.trim();\n return { kind: 'packaged', name, description, instructions, references };\n}\n\nfunction skillModuleName(basename: string): string {\n return basename.replace(/\\.(ts|js)$/, '');\n}\n\nasync function discoverSkills(skillsDir: string): Promise<DiscoveredFsSkill[]> {\n if (!(await exists(skillsDir))) {\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(skillsDir);\n } catch {\n return [];\n }\n\n const skills: DiscoveredFsSkill[] = [];\n for (const basename of entries.sort()) {\n if (isTestFile(basename)) {\n continue;\n }\n const path = join(skillsDir, basename);\n // Use lstat so symlinks are detected (not followed). Skip symlinks: a\n // symlinked skill module/markdown could point anywhere on the build machine\n // and be bundled or inlined into the generated output.\n const stats = await lstat(path);\n if (stats.isSymbolicLink()) {\n continue;\n }\n const isDir = stats.isDirectory();\n\n // Packaged skill directory: <skill>/SKILL.md (+ references/)\n if (isDir) {\n const skillMd = join(path, SKILL_MD_BASENAME);\n if (await exists(skillMd)) {\n const references = await readReferences(join(path, 'references'));\n skills.push(await parsePackagedSkill(skillMd, skillModuleName(basename), references));\n }\n continue;\n }\n\n // createSkill module: <skill>.ts | <skill>.js\n if (SKILL_MODULE_EXTENSIONS.some(ext => basename.endsWith(ext))) {\n skills.push({ kind: 'module', path: slash(path) });\n continue;\n }\n\n // Flat markdown skill: <skill>.md\n if (basename.endsWith('.md')) {\n const skill = await parsePackagedSkill(path, basename.replace(/\\.md$/, ''));\n skills.push(skill);\n }\n }\n\n return skills;\n}\n\n/**\n * Discover a single agent directory: its `config`/`instructions`/`workspace`\n * files plus `tools/`, `skills/`, and (when `allowSubagents`) one level of\n * declared `subagents/`. Returns `undefined` when `dir` is not an agent\n * directory (no `config.(ts|js)` and no `instructions.md`).\n *\n * `allowSubagents` is `true` for top-level agents and `false` when discovering a\n * subagent, so nested `subagents/` directories are never recursed into.\n */\nasync function discoverAgentDir(\n dir: string,\n name: string,\n allowSubagents: boolean,\n onWarn?: (message: string) => void,\n): Promise<DiscoveredFsAgent | undefined> {\n const configPath = await firstExisting(dir, CONFIG_BASENAMES);\n const instructionsPath = (await exists(join(dir, INSTRUCTIONS_BASENAME)))\n ? slash(join(dir, INSTRUCTIONS_BASENAME))\n : undefined;\n\n // Not an agent directory unless it has a config or instructions file.\n if (!configPath && !instructionsPath) {\n return undefined;\n }\n\n const workspacePath = await firstExisting(dir, WORKSPACE_BASENAMES);\n const memoryPath = await firstExisting(dir, MEMORY_BASENAMES);\n const workspaceSeedDir = await directoryExists(join(dir, 'workspace'));\n const tools = await discoverTools(join(dir, 'tools'));\n const skills = await discoverSkills(join(dir, 'skills'));\n const subagents = await discoverSubagents(dir, allowSubagents, onWarn);\n\n return {\n name,\n dir: slash(dir),\n configPath,\n instructionsPath,\n workspacePath,\n memoryPath,\n workspaceSeedDir,\n tools,\n skills,\n subagents,\n };\n}\n\n/**\n * Discover declared subagents under `<dir>/subagents/*`. Subagents are one level\n * deep only: each discovered subagent is scanned with `allowSubagents: false`,\n * so a nested `subagents/` directory inside a subagent is ignored with a warning.\n * When `allowSubagents` is `false` (we are already inside a subagent) the whole\n * `subagents/` directory is skipped and a warning is emitted if present.\n */\nasync function discoverSubagents(\n parentDir: string,\n allowSubagents: boolean,\n onWarn?: (message: string) => void,\n): Promise<DiscoveredFsAgent[]> {\n const subagentsDir = join(parentDir, 'subagents');\n if (!(await exists(subagentsDir))) {\n return [];\n }\n\n if (!allowSubagents) {\n onWarn?.(\n `Ignoring nested subagents in \"${slash(subagentsDir)}\": subagents are one level deep only, so a subagent cannot declare its own subagents.`,\n );\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(subagentsDir);\n } catch {\n return [];\n }\n\n const subagents: DiscoveredFsAgent[] = [];\n for (const name of entries.sort()) {\n const dir = join(subagentsDir, name);\n if (!(await realDirectory(dir))) {\n continue;\n }\n const child = await discoverAgentDir(dir, name, false, onWarn);\n if (child) {\n subagents.push(child);\n }\n }\n\n return subagents;\n}\n\n/**\n * Scan `<mastraDir>/agents/*` for file-system routed agents. A directory is\n * treated as an agent only when it contains a `config.(ts|js)` or an\n * `instructions.md`; other directories are ignored. Each top-level agent may\n * declare one level of `subagents/`. Returns descriptors with absolute,\n * slash-normalized paths ready for codegen. Performs no module evaluation —\n * only filesystem inspection.\n */\nexport async function discoverFsAgents(\n mastraDir: string,\n onWarn?: (message: string) => void,\n): Promise<DiscoveredFsAgent[]> {\n const agentsDir = join(mastraDir, 'agents');\n if (!(await exists(agentsDir))) {\n return [];\n }\n\n let entries: string[];\n try {\n entries = await readdir(agentsDir);\n } catch {\n return [];\n }\n\n const discovered: DiscoveredFsAgent[] = [];\n for (const name of entries.sort()) {\n const dir = join(agentsDir, name);\n if (!(await realDirectory(dir))) {\n continue;\n }\n const agent = await discoverAgentDir(dir, name, true, onWarn);\n if (agent) {\n discovered.push(agent);\n }\n }\n\n return discovered;\n}\n","import { readFile } from 'node:fs/promises';\nimport type { DiscoveredFsAgent } from './discover';\n\nfunction sanitizeIdentifier(name: string, prefix: string, index: string): string {\n const cleaned = name.replace(/[^a-zA-Z0-9_$]/g, '_');\n return `${prefix}_${index}_${cleaned}`;\n}\n\n/**\n * Emit the imports for a single discovered agent into `lines` and return the\n * source of its `assembleAgentFromFsEntry` entry object (the `{ name, config,\n * ... }` argument). `idPath` is a dot-free, unique path index (e.g. `0` for the\n * first top-level agent, `0_1` for its second subagent) used to keep generated\n * identifiers unique across the parent/child tree. `workspaceName` is the\n * slash-joined workspace key (`<parent>/<child>` for subagents) so seed files\n * don't collide. When `allowSubagents` is true the agent's discovered subagents\n * are emitted as a nested `subagents: [...]` field.\n */\nasync function emitAgentEntry(\n agent: DiscoveredFsAgent,\n idPath: string,\n workspaceName: string,\n allowSubagents: boolean,\n lines: string[],\n): Promise<string> {\n const configIdent = sanitizeIdentifier(agent.name, 'config', idPath);\n const toolIdents: { key: string; ident: string }[] = [];\n\n if (agent.configPath) {\n lines.push(`import ${configIdent} from ${JSON.stringify(agent.configPath)};`);\n }\n\n let workspaceIdent: string | undefined;\n if (agent.workspacePath) {\n workspaceIdent = sanitizeIdentifier(`${agent.name}_workspace`, 'workspace', idPath);\n lines.push(`import ${workspaceIdent} from ${JSON.stringify(agent.workspacePath)};`);\n }\n\n let memoryIdent: string | undefined;\n if (agent.memoryPath) {\n memoryIdent = sanitizeIdentifier(`${agent.name}_memory`, 'memory', idPath);\n lines.push(`import ${memoryIdent} from ${JSON.stringify(agent.memoryPath)};`);\n }\n\n for (let t = 0; t < agent.tools.length; t++) {\n const tool = agent.tools[t]!;\n const ident = sanitizeIdentifier(`${agent.name}_${tool.key}`, 'tool', `${idPath}_${t}`);\n lines.push(`import ${ident} from ${JSON.stringify(tool.path)};`);\n toolIdents.push({ key: tool.key, ident });\n }\n\n // Skills: `createSkill(...)` modules are imported and used directly;\n // packaged `SKILL.md` skills are inlined via `createSkill({...})`.\n const skillExprs: string[] = [];\n const agentSkills = agent.skills ?? [];\n for (let s = 0; s < agentSkills.length; s++) {\n const skill = agentSkills[s]!;\n if (skill.kind === 'module') {\n const ident = sanitizeIdentifier(`${agent.name}_skill`, 'skill', `${idPath}_${s}`);\n lines.push(`import ${ident} from ${JSON.stringify(skill.path)};`);\n skillExprs.push(ident);\n } else {\n const referenceFields = Object.entries(skill.references).map(\n ([key, value]) => `${JSON.stringify(key)}: ${JSON.stringify(value)}`,\n );\n const skillFields = [\n `name: ${JSON.stringify(skill.name)}`,\n `description: ${JSON.stringify(skill.description)}`,\n `instructions: ${JSON.stringify(skill.instructions)}`,\n ];\n if (referenceFields.length > 0) {\n skillFields.push(`references: { ${referenceFields.join(', ')} }`);\n }\n skillExprs.push(`__createSkill({ ${skillFields.join(', ')} })`);\n }\n }\n\n let instructionsMd: string | undefined;\n if (agent.instructionsPath) {\n instructionsMd = await readFile(agent.instructionsPath, 'utf-8');\n }\n\n // Declared subagents (one level deep). Each is itself an\n // `assembleAgentFromFsEntry` entry object with no further `subagents`.\n const subagentExprs: string[] = [];\n if (allowSubagents) {\n for (let c = 0; c < agent.subagents.length; c++) {\n const child = agent.subagents[c]!;\n const childExpr = await emitAgentEntry(child, `${idPath}_${c}`, `${workspaceName}/${child.name}`, false, lines);\n subagentExprs.push(childExpr);\n }\n }\n\n const entryFields: string[] = [`name: ${JSON.stringify(agent.name)}`];\n if (agent.configPath) {\n entryFields.push(`config: ${configIdent}`);\n }\n if (instructionsMd !== undefined) {\n entryFields.push(`instructionsMd: ${JSON.stringify(instructionsMd)}`);\n }\n if (toolIdents.length > 0) {\n const toolEntries = toolIdents.map(({ key, ident }) => `{ key: ${JSON.stringify(key)}, tool: ${ident} }`);\n entryFields.push(`tools: [${toolEntries.join(', ')}]`);\n }\n if (skillExprs.length > 0) {\n entryFields.push(`skills: [${skillExprs.join(', ')}]`);\n }\n if (subagentExprs.length > 0) {\n entryFields.push(`subagents: [${subagentExprs.join(', ')}]`);\n }\n if (workspaceIdent) {\n entryFields.push(`workspace: ${workspaceIdent}`);\n }\n if (memoryIdent) {\n entryFields.push(`memory: ${memoryIdent}`);\n }\n // Default-on parity: every FS agent gets a default workspace (file + shell\n // tools) rooted at a per-agent `workspace/` dir next to the bundle, unless\n // config.ts or workspace.ts supplies one. Assembly applies the explicit >\n // convention > default precedence. Subagents nest under `<parent>/<child>` so\n // their seed directories never collide with the parent's.\n entryFields.push(`defaultWorkspaceBasePath: __workspaceBasePath(${JSON.stringify(workspaceName)})`);\n\n return `{ ${entryFields.join(', ')} }`;\n}\n\n/**\n * Generate the source of a wrapper module that:\n * 1. imports the user's real Mastra entry,\n * 2. imports each discovered `config.ts`, `tools/*.ts`, `skills/*.ts`\n * (`createSkill(...)` modules), `workspace.ts`, and `memory.ts`, inlining\n * packaged `SKILL.md` skills,\n * 3. assembles `Agent` instances via `assembleAgentFromFsEntry`, wiring any\n * declared `subagents/` into the parent (one level deep),\n * 4. registers them onto the user's `mastra` instance (code-registered agents\n * win on name collisions), and\n * 5. re-exports everything from the user's entry so this module is a drop-in\n * replacement for the original `#mastra` target.\n *\n * `instructions.md` contents are inlined at codegen time so no markdown loader\n * plugin is required in the bundler graph.\n *\n * @param userEntry slash-normalized absolute path to the user's mastra entry.\n * @param agents discovered fs-routed agents (absolute, slash-normalized paths).\n */\nexport async function generateFsAgentsModule(userEntry: string, agents: DiscoveredFsAgent[]): Promise<string> {\n const lines: string[] = [];\n\n const hasInlineSkills = agents.some(a =>\n [a, ...(a.subagents ?? [])].some(x => (x.skills ?? []).some(s => s.kind === 'packaged')),\n );\n\n lines.push(`import { assembleAgentFromFsEntry } from '@mastra/core/agent';`);\n if (hasInlineSkills) {\n lines.push(`import { createSkill as __createSkill } from '@mastra/core/skills';`);\n }\n lines.push(`import { fileURLToPath as __fileURLToPath } from 'node:url';`);\n lines.push(`import { dirname as __dirname, join as __join } from 'node:path';`);\n lines.push(`import * as __userEntry from ${JSON.stringify(userEntry)};`);\n lines.push(`export * from ${JSON.stringify(userEntry)};`);\n lines.push(``);\n // Resolve workspace base paths relative to this bundled module so they point\n // at `<bundle>/workspace/<name>` wherever the bundle is deployed. Seed files\n // authored under `agents/<name>/workspace/**` are mirrored there at build time.\n // `name` may be a slash-joined path (`<parent>/<child>`) for subagents.\n lines.push(`const __bundleDir = __dirname(__fileURLToPath(import.meta.url));`);\n lines.push(`const __workspaceBasePath = name => __join(__bundleDir, 'workspace', ...name.split('/'));`);\n lines.push(``);\n\n const entryExprs: string[] = [];\n for (let i = 0; i < agents.length; i++) {\n const agent = agents[i]!;\n const expr = await emitAgentEntry(agent, `${i}`, agent.name, true, lines);\n entryExprs.push(expr);\n }\n\n lines.push(``);\n lines.push(`const __fsAgentEntries = [`);\n for (const expr of entryExprs) {\n lines.push(` ${expr},`);\n }\n lines.push(`];`);\n lines.push(``);\n lines.push(`const __fsAgents = Object.create(null);`);\n lines.push(`for (const __entry of __fsAgentEntries) {`);\n lines.push(` __fsAgents[__entry.name] = assembleAgentFromFsEntry(__entry, {`);\n lines.push(` onWarn: msg => __userEntry.mastra?.getLogger?.()?.warn?.(msg) ?? console.warn(msg),`);\n lines.push(` });`);\n lines.push(`}`);\n lines.push(``);\n lines.push(`if (__userEntry.mastra && typeof __userEntry.mastra.__registerFsAgents === 'function') {`);\n lines.push(` __userEntry.mastra.__registerFsAgents(__fsAgents);`);\n lines.push(`}`);\n lines.push(``);\n lines.push(`export const mastra = __userEntry.mastra;`);\n\n return lines.join('\\n');\n}\n","import { mkdir, writeFile } from 'node:fs/promises';\nimport { dirname, join, posix } from 'node:path';\nimport { slash } from '../utils';\nimport { generateFsAgentsModule } from './codegen';\nimport { discoverFsAgents } from './discover';\n\nexport interface PrepareFsAgentsEntryResult {\n /**\n * The entry file that should be fed to the bundler/analyzer. When fs-routed\n * agents are found this is a generated wrapper module that registers them onto\n * the user's mastra instance; otherwise it is the original entry unchanged.\n */\n entryFile: string;\n /**\n * Glob tool paths for tools defined under `agents/*\\/tools` so they are\n * bundled alongside the top-level `tools/` directory.\n */\n toolPaths: string[];\n /** Number of fs-routed agents discovered. */\n agentCount: number;\n /**\n * Generated wrapper source to write to {@link entryFile}, or `undefined` when\n * there are no fs-routed agents. The write is deferred so callers can run it\n * *after* `bundler.prepare()` empties the output directory — otherwise the\n * wrapper is wiped before the bundler reads it.\n */\n moduleSource?: string;\n}\n\n/**\n * Discover fs-routed agents under `<mastraDir>/agents/*` and, if any exist,\n * generate a wrapper entry module that registers them onto the user's mastra\n * instance. Returns the entry the bundler should use plus extra tool glob paths\n * so `agents/*\\/tools` are bundled.\n *\n * This does NOT write the wrapper to disk; call {@link writeFsAgentsEntry} with\n * the result after `bundler.prepare()` so the generated file is not wiped when\n * the output directory is emptied.\n *\n * When no fs-routed agents are present the original entry is returned unchanged,\n * so existing code-only projects are completely unaffected.\n */\nexport async function prepareFsAgentsEntry(\n mastraDir: string,\n entryFile: string,\n outputDirectory: string,\n): Promise<PrepareFsAgentsEntryResult> {\n const agents = await discoverFsAgents(mastraDir);\n\n if (agents.length === 0) {\n return { entryFile, toolPaths: [], agentCount: 0 };\n }\n\n const moduleSource = await generateFsAgentsModule(slash(entryFile), agents);\n const generatedEntry = join(outputDirectory, '.mastra-fs-agents-entry.mjs');\n\n const normalizedMastraDir = slash(mastraDir);\n const toolPaths = [\n posix.join(normalizedMastraDir, 'agents/*/tools/**/*.{js,ts}'),\n `!${posix.join(normalizedMastraDir, 'agents/*/tools/**/*.{test,spec}.{js,ts}')}`,\n `!${posix.join(normalizedMastraDir, 'agents/*/tools/**/__tests__/**')}`,\n ];\n\n return { entryFile: generatedEntry, toolPaths, agentCount: agents.length, moduleSource };\n}\n\n/**\n * Write the generated fs-agents wrapper produced by {@link prepareFsAgentsEntry}\n * to its `entryFile`. No-op when there are no fs-routed agents. Call this AFTER\n * `bundler.prepare()` (which empties the output directory) so the wrapper\n * survives for the bundler/watcher to read.\n */\nexport async function writeFsAgentsEntry(result: PrepareFsAgentsEntryResult): Promise<void> {\n if (!result.moduleSource) {\n return;\n }\n\n await mkdir(dirname(result.entryFile), { recursive: true });\n await writeFile(result.entryFile, result.moduleSource, 'utf-8');\n}\n","import { cp, lstat, mkdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { discoverFsAgents } from './discover';\nimport type { DiscoveredFsAgent } from './discover';\n\n/**\n * Skip symlinks when copying workspace seeds. A symlink under\n * `agents/<name>/workspace/` could point outside the workspace and be preserved\n * in the bundle, letting the agent read arbitrary files at runtime. We copy only\n * regular files and directories.\n */\nasync function rejectSymlinks(source: string): Promise<boolean> {\n const stats = await lstat(source);\n return !stats.isSymbolicLink();\n}\n\nasync function mirrorAgentSeeds(\n agent: DiscoveredFsAgent,\n workspaceName: string,\n bundleDir: string,\n mirrored: string[],\n): Promise<void> {\n if (agent.workspaceSeedDir) {\n const destination = join(bundleDir, 'workspace', ...workspaceName.split('/'));\n await mkdir(destination, { recursive: true });\n await cp(agent.workspaceSeedDir, destination, { recursive: true, filter: rejectSymlinks });\n mirrored.push(workspaceName);\n }\n\n // Subagents nest under `<parent>/<child>`, matching the codegen workspace key.\n for (const child of agent.subagents ?? []) {\n await mirrorAgentSeeds(child, `${workspaceName}/${child.name}`, bundleDir, mirrored);\n }\n}\n\n/**\n * Mirror authored `agents/<name>/workspace/**` seed files into the bundled\n * output so each fs-routed agent starts with them on disk (Eve parity). Files\n * are copied to `<bundleDir>/workspace/<name>`, which is exactly where the\n * generated entry roots each agent's default workspace at runtime (resolved\n * relative to the bundled module via `import.meta.url`). Declared subagents\n * mirror to the nested `<bundleDir>/workspace/<parent>/<child>` path.\n *\n * Must run AFTER the bundle step, since bundling recreates the output dir.\n *\n * @param mastraDir The user's `src/mastra` directory (source of seeds).\n * @param bundleDir The final bundle directory (e.g. `<outputDirectory>/output`).\n * @returns the workspace names whose seeds were mirrored (`<parent>/<child>` for subagents).\n */\nexport async function mirrorFsAgentWorkspaces(mastraDir: string, bundleDir: string): Promise<string[]> {\n const agents = await discoverFsAgents(mastraDir);\n const mirrored: string[] = [];\n\n for (const agent of agents) {\n await mirrorAgentSeeds(agent, agent.name, bundleDir, mirrored);\n }\n\n return mirrored;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk6LWGRT7H_cjs = require('./chunk-6LWGRT7H.cjs');
|
|
4
|
+
var chunkWLW5IRHY_cjs = require('./chunk-WLW5IRHY.cjs');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
var url = require('url');
|
|
7
7
|
var rollupPlugin = require('@optimize-lodash/rollup-plugin');
|
|
@@ -80,7 +80,7 @@ function localStorageDetector() {
|
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
async function getPackageJSON(pkgName, importer) {
|
|
83
|
-
const pkgRoot = await
|
|
83
|
+
const pkgRoot = await chunk6LWGRT7H_cjs.getPackageRootPath(pkgName, importer);
|
|
84
84
|
if (!pkgRoot) {
|
|
85
85
|
throw new Error(`Package ${pkgName} not found`);
|
|
86
86
|
}
|
|
@@ -92,7 +92,7 @@ function nodeModulesExtensionResolver() {
|
|
|
92
92
|
return {
|
|
93
93
|
name: "node-modules-extension-resolver",
|
|
94
94
|
async resolveId(id, importer, options) {
|
|
95
|
-
if (!importer || !
|
|
95
|
+
if (!importer || !chunkWLW5IRHY_cjs.isBareModuleSpecifier(id) || chunkWLW5IRHY_cjs.isExternalProtocolImport(id) || path.isAbsolute(id)) {
|
|
96
96
|
return null;
|
|
97
97
|
}
|
|
98
98
|
const parts = id.split("/");
|
|
@@ -100,7 +100,7 @@ function nodeModulesExtensionResolver() {
|
|
|
100
100
|
if (isScoped && parts.length === 2 || !isScoped && parts.length === 1) {
|
|
101
101
|
return null;
|
|
102
102
|
}
|
|
103
|
-
const pkgName =
|
|
103
|
+
const pkgName = chunkWLW5IRHY_cjs.getPackageName(id);
|
|
104
104
|
if (!pkgName) {
|
|
105
105
|
return null;
|
|
106
106
|
}
|
|
@@ -109,7 +109,7 @@ function nodeModulesExtensionResolver() {
|
|
|
109
109
|
if (!!packageJSON.exports) {
|
|
110
110
|
return null;
|
|
111
111
|
}
|
|
112
|
-
const packageRoot = await
|
|
112
|
+
const packageRoot = await chunk6LWGRT7H_cjs.getPackageRootPath(pkgName, importer);
|
|
113
113
|
const nodeResolved = await nodeResolvePlugin.resolveId?.handler?.call(this, id, importer, options);
|
|
114
114
|
if (!nodeResolved?.id) {
|
|
115
115
|
return null;
|
|
@@ -140,18 +140,18 @@ async function getInputOptions(entryFile, analyzedBundleInfo, platform, env = {
|
|
|
140
140
|
enableEsmShim = true,
|
|
141
141
|
externalsPreset = false
|
|
142
142
|
}) {
|
|
143
|
-
const nodeResolvePlugin = nodeResolve__default.default(
|
|
143
|
+
const nodeResolvePlugin = nodeResolve__default.default(chunkWLW5IRHY_cjs.getNodeResolveOptions(platform));
|
|
144
144
|
const externalsCopy = new Set(analyzedBundleInfo.externalDependencies.keys());
|
|
145
145
|
const externals = externalsPreset ? [] : Array.from(externalsCopy);
|
|
146
|
-
const normalizedEntryFile =
|
|
146
|
+
const normalizedEntryFile = chunkWLW5IRHY_cjs.slash(entryFile);
|
|
147
147
|
return {
|
|
148
148
|
logLevel: process.env.MASTRA_BUNDLER_DEBUG === "true" ? "debug" : "silent",
|
|
149
149
|
treeshake: "smallest",
|
|
150
150
|
preserveSymlinks: true,
|
|
151
151
|
external: externals,
|
|
152
152
|
plugins: [
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
chunk6LWGRT7H_cjs.protocolExternalResolver(),
|
|
154
|
+
chunk6LWGRT7H_cjs.subpathExternalsResolver(externals),
|
|
155
155
|
{
|
|
156
156
|
name: "alias-optimized-deps",
|
|
157
157
|
resolveId(id) {
|
|
@@ -176,7 +176,7 @@ async function getInputOptions(entryFile, analyzedBundleInfo, platform, env = {
|
|
|
176
176
|
entries: [
|
|
177
177
|
{
|
|
178
178
|
find: /^\#server$/,
|
|
179
|
-
replacement:
|
|
179
|
+
replacement: chunkWLW5IRHY_cjs.slash(url.fileURLToPath(undefined("@mastra/deployer/server")))
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
find: /^\@mastra\/server\/(.*)/,
|
|
@@ -192,7 +192,7 @@ async function getInputOptions(entryFile, analyzedBundleInfo, platform, env = {
|
|
|
192
192
|
{ find: /^\#mastra$/, replacement: normalizedEntryFile }
|
|
193
193
|
]
|
|
194
194
|
}),
|
|
195
|
-
|
|
195
|
+
chunk6LWGRT7H_cjs.tsConfigPaths(),
|
|
196
196
|
{
|
|
197
197
|
name: "tools-rewriter",
|
|
198
198
|
resolveId(id) {
|
|
@@ -204,7 +204,7 @@ async function getInputOptions(entryFile, analyzedBundleInfo, platform, env = {
|
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
},
|
|
207
|
-
|
|
207
|
+
chunk6LWGRT7H_cjs.esbuild({
|
|
208
208
|
platform,
|
|
209
209
|
define: env
|
|
210
210
|
}),
|
|
@@ -218,7 +218,7 @@ async function getInputOptions(entryFile, analyzedBundleInfo, platform, env = {
|
|
|
218
218
|
return externals.includes(id);
|
|
219
219
|
}
|
|
220
220
|
}),
|
|
221
|
-
enableEsmShim ?
|
|
221
|
+
enableEsmShim ? chunk6LWGRT7H_cjs.esmShim() : void 0,
|
|
222
222
|
externalsPreset ? nodeModulesExtensionResolver() : nodeResolvePlugin,
|
|
223
223
|
// for debugging
|
|
224
224
|
// {
|
|
@@ -236,9 +236,9 @@ async function getInputOptions(entryFile, analyzedBundleInfo, platform, env = {
|
|
|
236
236
|
// },
|
|
237
237
|
json__default.default(),
|
|
238
238
|
localStorageDetector(),
|
|
239
|
-
|
|
239
|
+
chunk6LWGRT7H_cjs.removeDeployer(entryFile, { sourcemap }),
|
|
240
240
|
// treeshake unused imports
|
|
241
|
-
|
|
241
|
+
chunk6LWGRT7H_cjs.esbuild({
|
|
242
242
|
include: entryFile,
|
|
243
243
|
platform
|
|
244
244
|
})
|
|
@@ -265,5 +265,5 @@ async function createBundler(inputOptions, outputOptions) {
|
|
|
265
265
|
exports.createBundler = createBundler;
|
|
266
266
|
exports.getInputOptions = getInputOptions;
|
|
267
267
|
exports.nodeModulesExtensionResolver = nodeModulesExtensionResolver;
|
|
268
|
-
//# sourceMappingURL=chunk-
|
|
269
|
-
//# sourceMappingURL=chunk-
|
|
268
|
+
//# sourceMappingURL=chunk-3JVOVZ2V.cjs.map
|
|
269
|
+
//# sourceMappingURL=chunk-3JVOVZ2V.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/build/plugins/local-storage-detector.ts","../src/build/plugins/node-modules-extension-resolver.ts","../src/build/bundler.ts"],"names":["getPackageRootPath","readFile","join","nodeResolve","isBareModuleSpecifier","isExternalProtocolImport","isAbsolute","getPackageName","getNodeResolveOptions","slash","protocolExternalResolver","subpathExternalsResolver","pathToFileURL","alias","fileURLToPath","tsConfigPaths","esbuild","optimizeLodashImports","commonjs","esmShim","json","removeDeployer","rollup"],"mappings":"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","file":"chunk-FBL7GBNM.cjs","sourcesContent":["import type { Plugin } from 'rollup';\n\n/**\n * Connection-string-shaped patterns that resolve to the build host and will\n * never work inside the deploy container.\n */\nconst LOCAL_HOST_PATTERNS: Array<{ pattern: RegExp; hint: string }> = [\n {\n pattern: /\\bfile:\\.{1,2}\\/[^\\s'\"`]+\\.(?:db|sqlite)\\b/gi,\n hint: 'LibSQL/SQLite file path relative to the build host',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*localhost\\b/gi,\n hint: 'localhost in a connection string',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*127\\.0\\.0\\.1\\b/g,\n hint: '127.0.0.1 in a connection string',\n },\n];\n\nexport interface LocalStorageDetection {\n value: string;\n hint: string;\n module: string;\n}\n\n/**\n * Matches the deployer's own intermediate dependency shims emitted under\n * `.mastra/.build/` (e.g. `@mastra__core.mjs`, `@mastra__core__mastra.mjs`).\n * These pre-bundled chunks preserve JSDoc examples from the original library\n * source (e.g. `LibSQLStore({ url: 'file:./data.db' })`) which would otherwise\n * trip the host-local detector even though they're not user code.\n */\nconst MASTRA_SHIM_PATH = /[\\\\/]\\.mastra[\\\\/]\\.build[\\\\/]@mastra__/;\n\n/**\n * Rollup plugin that detects host-local storage URLs (e.g. `file:./mastra.db`,\n * `postgres://localhost`) in **user source modules** during bundling.\n *\n * Only modules outside `node_modules` (and the deployer's own\n * `.mastra/.build/@mastra__*` shim files) are inspected, so library code\n * (like Agent Builder prompt templates or JSDoc examples in `@mastra/core`)\n * is naturally excluded. Tree-shaken modules are excluded via\n * `generateBundle` — only modules that actually contribute rendered code to\n * the output are reported.\n *\n * Detected paths are emitted as `preflight-local-paths.json` in the output\n * directory for the CLI preflight check to consume.\n */\nexport function localStorageDetector(): Plugin {\n const userModuleMatches = new Map<string, Array<{ value: string; hint: string }>>();\n\n return {\n name: 'mastra-local-storage-detector',\n\n transform(_code, id) {\n if (id.includes('node_modules')) return null;\n if (MASTRA_SHIM_PATH.test(id)) return null;\n\n const matches: Array<{ value: string; hint: string }> = [];\n for (const { pattern, hint } of LOCAL_HOST_PATTERNS) {\n const re = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');\n for (const m of _code.matchAll(re)) {\n matches.push({ value: m[0], hint });\n }\n }\n\n if (matches.length > 0) {\n userModuleMatches.set(id, matches);\n }\n\n return null;\n },\n\n generateBundle(_, bundle) {\n const detections: LocalStorageDetection[] = [];\n const seen = new Set<string>();\n\n for (const chunk of Object.values(bundle)) {\n if (chunk.type !== 'chunk') continue;\n\n for (const [moduleId, moduleInfo] of Object.entries(chunk.modules)) {\n if (moduleInfo.renderedLength === 0) continue;\n\n const matches = userModuleMatches.get(moduleId);\n if (!matches) continue;\n\n for (const { value, hint } of matches) {\n const key = `${hint}::${value}`;\n if (seen.has(key)) continue;\n seen.add(key);\n\n detections.push({ value, hint, module: moduleId });\n }\n }\n }\n\n this.emitFile({\n type: 'asset',\n fileName: 'preflight-local-paths.json',\n source: JSON.stringify(detections),\n });\n },\n };\n}\n","import { readFile } from 'node:fs/promises';\nimport { join, isAbsolute } from 'node:path';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport type { Plugin } from 'rollup';\nimport type { PackageJson } from 'type-fest';\nimport { getPackageRootPath } from '../package-info';\nimport { getPackageName, isExternalProtocolImport, isBareModuleSpecifier } from '../utils';\n\n/**\n * Check if a package has an exports field in its package.json.\n * Results are cached to avoid repeated filesystem reads.\n */\nasync function getPackageJSON(pkgName: string, importer: string): Promise<PackageJson> {\n const pkgRoot = await getPackageRootPath(pkgName, importer);\n if (!pkgRoot) {\n throw new Error(`Package ${pkgName} not found`);\n }\n\n const pkgJSON = JSON.parse(await readFile(join(pkgRoot, 'package.json'), 'utf-8')) as PackageJson;\n return pkgJSON;\n}\n\n/**\n * Rollup plugin that resolves module extensions for external dependencies.\n *\n * This plugin handles ESM compatibility for external imports when node-resolve is not used:\n * - Packages WITH exports field (e.g., hono, date-fns): Keep imports as-is or strip redundant extensions\n * - Packages WITHOUT exports field (e.g., lodash): Add .js extension for direct file imports\n */\nexport function nodeModulesExtensionResolver(): Plugin {\n // Create a single instance of node-resolve to reuse\n const nodeResolvePlugin = nodeResolve();\n\n return {\n name: 'node-modules-extension-resolver',\n async resolveId(id, importer, options) {\n // Only bare package imports are relevant here.\n if (!importer || !isBareModuleSpecifier(id) || isExternalProtocolImport(id) || isAbsolute(id)) {\n return null;\n }\n\n // Skip direct package imports (e.g., 'lodash', '@mastra/core')\n const parts = id.split('/');\n const isScoped = id.startsWith('@');\n if ((isScoped && parts.length === 2) || (!isScoped && parts.length === 1)) {\n return null;\n }\n\n const pkgName = getPackageName(id);\n if (!pkgName) {\n return null;\n }\n\n try {\n const packageJSON = await getPackageJSON(pkgName, importer);\n // if it has exports, node should be able to rsolve it, if not the exports map is wrong.\n if (!!packageJSON.exports) {\n return null;\n }\n\n const packageRoot = await getPackageRootPath(pkgName, importer);\n // @ts-expect-error - handle is part of resolveId signature\n const nodeResolved = await nodeResolvePlugin.resolveId?.handler?.call(this, id, importer, options);\n // if we cannot resolve it, it's not a valid import so we let node handle it\n if (!nodeResolved?.id) {\n return null;\n }\n\n let filePath = nodeResolved.id;\n if (nodeResolved.resolvedBy === 'commonjs--resolver') {\n filePath = filePath.substring(1).split('?')[0];\n }\n\n const resolvedImportPath = filePath.replace(packageRoot, pkgName);\n\n return {\n id: resolvedImportPath,\n external: true,\n };\n } catch (err) {\n console.error(err);\n return null;\n }\n },\n };\n}\n","import { join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport alias from '@rollup/plugin-alias';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport { rollup } from 'rollup';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport type { analyzeBundle } from './analyze';\nimport { esbuild } from './plugins/esbuild';\nimport { esmShim } from './plugins/esm-shim';\nimport { localStorageDetector } from './plugins/local-storage-detector';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { protocolExternalResolver } from './plugins/protocol-external-resolver';\nimport { removeDeployer } from './plugins/remove-deployer';\nimport { subpathExternalsResolver } from './plugins/subpath-externals-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport { getNodeResolveOptions, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n analyzedBundleInfo: Awaited<ReturnType<typeof analyzeBundle>>,\n platform: BundlerPlatform,\n env: Record<string, string> = { 'process.env.NODE_ENV': JSON.stringify('production') },\n {\n sourcemap = false,\n isDev = false,\n projectRoot,\n workspaceRoot = undefined,\n enableEsmShim = true,\n externalsPreset = false,\n }: {\n sourcemap?: boolean;\n isDev?: boolean;\n workspaceRoot?: string;\n projectRoot: string;\n enableEsmShim?: boolean;\n externalsPreset?: boolean;\n },\n): Promise<InputOptions> {\n const nodeResolvePlugin = nodeResolve(getNodeResolveOptions(platform));\n\n const externalsCopy = new Set<string>(analyzedBundleInfo.externalDependencies.keys());\n const externals = externalsPreset ? [] : Array.from(externalsCopy);\n\n const normalizedEntryFile = slash(entryFile);\n return {\n logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n treeshake: 'smallest',\n preserveSymlinks: true,\n external: externals,\n plugins: [\n protocolExternalResolver(),\n subpathExternalsResolver(externals),\n {\n name: 'alias-optimized-deps',\n resolveId(id: string) {\n if (!analyzedBundleInfo.dependencies.has(id)) {\n return null;\n }\n\n const filename = analyzedBundleInfo.dependencies.get(id)!;\n const absolutePath = join(workspaceRoot || projectRoot, filename);\n\n // During `mastra dev` we want to keep deps as external\n if (isDev) {\n return {\n id: process.platform === 'win32' ? pathToFileURL(absolutePath).href : absolutePath,\n external: true,\n };\n }\n\n // For production builds return the absolute path as-is so Rollup can handle itself\n return {\n id: absolutePath,\n external: false,\n };\n },\n } satisfies Plugin,\n alias({\n entries: [\n {\n find: /^\\#server$/,\n replacement: slash(fileURLToPath(import.meta.resolve('@mastra/deployer/server'))),\n },\n {\n find: /^\\@mastra\\/server\\/(.*)/,\n replacement: `@mastra/server/$1`,\n customResolver: id => {\n if (id.startsWith('@mastra/server')) {\n return {\n id: fileURLToPath(import.meta.resolve(id)),\n };\n }\n },\n },\n { find: /^\\#mastra$/, replacement: normalizedEntryFile },\n ],\n }),\n tsConfigPaths(),\n {\n name: 'tools-rewriter',\n resolveId(id: string) {\n if (id === '#tools') {\n return {\n id: './tools.mjs',\n external: true,\n };\n }\n },\n } satisfies Plugin,\n esbuild({\n platform,\n define: env,\n }),\n optimizeLodashImports({\n include: '**/*.{js,ts,mjs,cjs}',\n }),\n externalsPreset\n ? null\n : commonjs({\n extensions: ['.js', '.ts'],\n transformMixedEsModules: true,\n esmExternals(id) {\n return externals.includes(id);\n },\n }),\n enableEsmShim ? esmShim() : undefined,\n externalsPreset ? nodeModulesExtensionResolver() : nodeResolvePlugin,\n // for debugging\n // {\n // name: 'logger',\n // //@ts-expect-error\n // resolveId(id, ...args) {\n // console.log({ id, args });\n // },\n // // @ts-expect-error\n // transform(code, id) {\n // if (code.includes('class Duplexify ')) {\n // console.log({ duplex: id });\n // }\n // },\n // },\n json(),\n localStorageDetector(),\n removeDeployer(entryFile, { sourcemap }),\n // treeshake unused imports\n esbuild({\n include: entryFile,\n platform,\n }),\n ].filter(Boolean),\n } satisfies InputOptions;\n}\n\nexport async function createBundler(\n inputOptions: InputOptions,\n outputOptions: Partial<OutputOptions> & { dir: string },\n) {\n const bundler = await rollup(inputOptions);\n\n return {\n write: () => {\n return bundler.write({\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n });\n },\n close: () => {\n return bundler.close();\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/build/plugins/local-storage-detector.ts","../src/build/plugins/node-modules-extension-resolver.ts","../src/build/bundler.ts"],"names":["getPackageRootPath","readFile","join","nodeResolve","isBareModuleSpecifier","isExternalProtocolImport","isAbsolute","getPackageName","getNodeResolveOptions","slash","protocolExternalResolver","subpathExternalsResolver","pathToFileURL","alias","fileURLToPath","tsConfigPaths","esbuild","optimizeLodashImports","commonjs","esmShim","json","removeDeployer","rollup"],"mappings":"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","file":"chunk-3JVOVZ2V.cjs","sourcesContent":["import type { Plugin } from 'rollup';\n\n/**\n * Connection-string-shaped patterns that resolve to the build host and will\n * never work inside the deploy container.\n */\nconst LOCAL_HOST_PATTERNS: Array<{ pattern: RegExp; hint: string }> = [\n {\n pattern: /\\bfile:\\.{1,2}\\/[^\\s'\"`]+\\.(?:db|sqlite)\\b/gi,\n hint: 'LibSQL/SQLite file path relative to the build host',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*localhost\\b/gi,\n hint: 'localhost in a connection string',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*127\\.0\\.0\\.1\\b/g,\n hint: '127.0.0.1 in a connection string',\n },\n];\n\nexport interface LocalStorageDetection {\n value: string;\n hint: string;\n module: string;\n}\n\n/**\n * Matches the deployer's own intermediate dependency shims emitted under\n * `.mastra/.build/` (e.g. `@mastra__core.mjs`, `@mastra__core__mastra.mjs`).\n * These pre-bundled chunks preserve JSDoc examples from the original library\n * source (e.g. `LibSQLStore({ url: 'file:./data.db' })`) which would otherwise\n * trip the host-local detector even though they're not user code.\n */\nconst MASTRA_SHIM_PATH = /[\\\\/]\\.mastra[\\\\/]\\.build[\\\\/]@mastra__/;\n\n/**\n * Rollup plugin that detects host-local storage URLs (e.g. `file:./mastra.db`,\n * `postgres://localhost`) in **user source modules** during bundling.\n *\n * Only modules outside `node_modules` (and the deployer's own\n * `.mastra/.build/@mastra__*` shim files) are inspected, so library code\n * (like Agent Builder prompt templates or JSDoc examples in `@mastra/core`)\n * is naturally excluded. Tree-shaken modules are excluded via\n * `generateBundle` — only modules that actually contribute rendered code to\n * the output are reported.\n *\n * Detected paths are emitted as `preflight-local-paths.json` in the output\n * directory for the CLI preflight check to consume.\n */\nexport function localStorageDetector(): Plugin {\n const userModuleMatches = new Map<string, Array<{ value: string; hint: string }>>();\n\n return {\n name: 'mastra-local-storage-detector',\n\n transform(_code, id) {\n if (id.includes('node_modules')) return null;\n if (MASTRA_SHIM_PATH.test(id)) return null;\n\n const matches: Array<{ value: string; hint: string }> = [];\n for (const { pattern, hint } of LOCAL_HOST_PATTERNS) {\n const re = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');\n for (const m of _code.matchAll(re)) {\n matches.push({ value: m[0], hint });\n }\n }\n\n if (matches.length > 0) {\n userModuleMatches.set(id, matches);\n }\n\n return null;\n },\n\n generateBundle(_, bundle) {\n const detections: LocalStorageDetection[] = [];\n const seen = new Set<string>();\n\n for (const chunk of Object.values(bundle)) {\n if (chunk.type !== 'chunk') continue;\n\n for (const [moduleId, moduleInfo] of Object.entries(chunk.modules)) {\n if (moduleInfo.renderedLength === 0) continue;\n\n const matches = userModuleMatches.get(moduleId);\n if (!matches) continue;\n\n for (const { value, hint } of matches) {\n const key = `${hint}::${value}`;\n if (seen.has(key)) continue;\n seen.add(key);\n\n detections.push({ value, hint, module: moduleId });\n }\n }\n }\n\n this.emitFile({\n type: 'asset',\n fileName: 'preflight-local-paths.json',\n source: JSON.stringify(detections),\n });\n },\n };\n}\n","import { readFile } from 'node:fs/promises';\nimport { join, isAbsolute } from 'node:path';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport type { Plugin } from 'rollup';\nimport type { PackageJson } from 'type-fest';\nimport { getPackageRootPath } from '../package-info';\nimport { getPackageName, isExternalProtocolImport, isBareModuleSpecifier } from '../utils';\n\n/**\n * Check if a package has an exports field in its package.json.\n * Results are cached to avoid repeated filesystem reads.\n */\nasync function getPackageJSON(pkgName: string, importer: string): Promise<PackageJson> {\n const pkgRoot = await getPackageRootPath(pkgName, importer);\n if (!pkgRoot) {\n throw new Error(`Package ${pkgName} not found`);\n }\n\n const pkgJSON = JSON.parse(await readFile(join(pkgRoot, 'package.json'), 'utf-8')) as PackageJson;\n return pkgJSON;\n}\n\n/**\n * Rollup plugin that resolves module extensions for external dependencies.\n *\n * This plugin handles ESM compatibility for external imports when node-resolve is not used:\n * - Packages WITH exports field (e.g., hono, date-fns): Keep imports as-is or strip redundant extensions\n * - Packages WITHOUT exports field (e.g., lodash): Add .js extension for direct file imports\n */\nexport function nodeModulesExtensionResolver(): Plugin {\n // Create a single instance of node-resolve to reuse\n const nodeResolvePlugin = nodeResolve();\n\n return {\n name: 'node-modules-extension-resolver',\n async resolveId(id, importer, options) {\n // Only bare package imports are relevant here.\n if (!importer || !isBareModuleSpecifier(id) || isExternalProtocolImport(id) || isAbsolute(id)) {\n return null;\n }\n\n // Skip direct package imports (e.g., 'lodash', '@mastra/core')\n const parts = id.split('/');\n const isScoped = id.startsWith('@');\n if ((isScoped && parts.length === 2) || (!isScoped && parts.length === 1)) {\n return null;\n }\n\n const pkgName = getPackageName(id);\n if (!pkgName) {\n return null;\n }\n\n try {\n const packageJSON = await getPackageJSON(pkgName, importer);\n // if it has exports, node should be able to rsolve it, if not the exports map is wrong.\n if (!!packageJSON.exports) {\n return null;\n }\n\n const packageRoot = await getPackageRootPath(pkgName, importer);\n // @ts-expect-error - handle is part of resolveId signature\n const nodeResolved = await nodeResolvePlugin.resolveId?.handler?.call(this, id, importer, options);\n // if we cannot resolve it, it's not a valid import so we let node handle it\n if (!nodeResolved?.id) {\n return null;\n }\n\n let filePath = nodeResolved.id;\n if (nodeResolved.resolvedBy === 'commonjs--resolver') {\n filePath = filePath.substring(1).split('?')[0];\n }\n\n const resolvedImportPath = filePath.replace(packageRoot, pkgName);\n\n return {\n id: resolvedImportPath,\n external: true,\n };\n } catch (err) {\n console.error(err);\n return null;\n }\n },\n };\n}\n","import { join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport alias from '@rollup/plugin-alias';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport { rollup } from 'rollup';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport type { analyzeBundle } from './analyze';\nimport { esbuild } from './plugins/esbuild';\nimport { esmShim } from './plugins/esm-shim';\nimport { localStorageDetector } from './plugins/local-storage-detector';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { protocolExternalResolver } from './plugins/protocol-external-resolver';\nimport { removeDeployer } from './plugins/remove-deployer';\nimport { subpathExternalsResolver } from './plugins/subpath-externals-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport { getNodeResolveOptions, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n analyzedBundleInfo: Awaited<ReturnType<typeof analyzeBundle>>,\n platform: BundlerPlatform,\n env: Record<string, string> = { 'process.env.NODE_ENV': JSON.stringify('production') },\n {\n sourcemap = false,\n isDev = false,\n projectRoot,\n workspaceRoot = undefined,\n enableEsmShim = true,\n externalsPreset = false,\n }: {\n sourcemap?: boolean;\n isDev?: boolean;\n workspaceRoot?: string;\n projectRoot: string;\n enableEsmShim?: boolean;\n externalsPreset?: boolean;\n },\n): Promise<InputOptions> {\n const nodeResolvePlugin = nodeResolve(getNodeResolveOptions(platform));\n\n const externalsCopy = new Set<string>(analyzedBundleInfo.externalDependencies.keys());\n const externals = externalsPreset ? [] : Array.from(externalsCopy);\n\n const normalizedEntryFile = slash(entryFile);\n return {\n logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n treeshake: 'smallest',\n preserveSymlinks: true,\n external: externals,\n plugins: [\n protocolExternalResolver(),\n subpathExternalsResolver(externals),\n {\n name: 'alias-optimized-deps',\n resolveId(id: string) {\n if (!analyzedBundleInfo.dependencies.has(id)) {\n return null;\n }\n\n const filename = analyzedBundleInfo.dependencies.get(id)!;\n const absolutePath = join(workspaceRoot || projectRoot, filename);\n\n // During `mastra dev` we want to keep deps as external\n if (isDev) {\n return {\n id: process.platform === 'win32' ? pathToFileURL(absolutePath).href : absolutePath,\n external: true,\n };\n }\n\n // For production builds return the absolute path as-is so Rollup can handle itself\n return {\n id: absolutePath,\n external: false,\n };\n },\n } satisfies Plugin,\n alias({\n entries: [\n {\n find: /^\\#server$/,\n replacement: slash(fileURLToPath(import.meta.resolve('@mastra/deployer/server'))),\n },\n {\n find: /^\\@mastra\\/server\\/(.*)/,\n replacement: `@mastra/server/$1`,\n customResolver: id => {\n if (id.startsWith('@mastra/server')) {\n return {\n id: fileURLToPath(import.meta.resolve(id)),\n };\n }\n },\n },\n { find: /^\\#mastra$/, replacement: normalizedEntryFile },\n ],\n }),\n tsConfigPaths(),\n {\n name: 'tools-rewriter',\n resolveId(id: string) {\n if (id === '#tools') {\n return {\n id: './tools.mjs',\n external: true,\n };\n }\n },\n } satisfies Plugin,\n esbuild({\n platform,\n define: env,\n }),\n optimizeLodashImports({\n include: '**/*.{js,ts,mjs,cjs}',\n }),\n externalsPreset\n ? null\n : commonjs({\n extensions: ['.js', '.ts'],\n transformMixedEsModules: true,\n esmExternals(id) {\n return externals.includes(id);\n },\n }),\n enableEsmShim ? esmShim() : undefined,\n externalsPreset ? nodeModulesExtensionResolver() : nodeResolvePlugin,\n // for debugging\n // {\n // name: 'logger',\n // //@ts-expect-error\n // resolveId(id, ...args) {\n // console.log({ id, args });\n // },\n // // @ts-expect-error\n // transform(code, id) {\n // if (code.includes('class Duplexify ')) {\n // console.log({ duplex: id });\n // }\n // },\n // },\n json(),\n localStorageDetector(),\n removeDeployer(entryFile, { sourcemap }),\n // treeshake unused imports\n esbuild({\n include: entryFile,\n platform,\n }),\n ].filter(Boolean),\n } satisfies InputOptions;\n}\n\nexport async function createBundler(\n inputOptions: InputOptions,\n outputOptions: Partial<OutputOptions> & { dir: string },\n) {\n const bundler = await rollup(inputOptions);\n\n return {\n write: () => {\n return bundler.write({\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n });\n },\n close: () => {\n return bundler.close();\n },\n };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { tsConfigPaths, protocolExternalResolver, esbuild, removeDeployer, getPackageRootPath, subpathExternalsResolver, esmShim } from './chunk-
|
|
2
|
-
import { slash, isDependencyPartOfPackage, getPackageName, isBuiltinModule, isBareModuleSpecifier, isExternalProtocolImport, getCompiledDepCachePath, rollupSafeName, getNodeResolveOptions } from './chunk-
|
|
1
|
+
import { tsConfigPaths, protocolExternalResolver, esbuild, removeDeployer, getPackageRootPath, subpathExternalsResolver, esmShim } from './chunk-VWD7AY6H.js';
|
|
2
|
+
import { slash, isDependencyPartOfPackage, getPackageName, isBuiltinModule, isBareModuleSpecifier, isExternalProtocolImport, getCompiledDepCachePath, rollupSafeName, getNodeResolveOptions } from './chunk-Z3DC47CH.js';
|
|
3
3
|
import { existsSync } from 'fs';
|
|
4
4
|
import { readFile, writeFile } from 'fs/promises';
|
|
5
5
|
import * as path from 'path';
|
|
@@ -1463,5 +1463,5 @@ async function analyzeBundle(entries, mastraEntry, {
|
|
|
1463
1463
|
}
|
|
1464
1464
|
|
|
1465
1465
|
export { aliasHono, analyzeBundle, getWorkspaceInformation };
|
|
1466
|
-
//# sourceMappingURL=chunk-
|
|
1467
|
-
//# sourceMappingURL=chunk-
|
|
1466
|
+
//# sourceMappingURL=chunk-566UDTD4.js.map
|
|
1467
|
+
//# sourceMappingURL=chunk-566UDTD4.js.map
|