@mastra/deployer 1.49.0 → 1.50.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/build/analyze.cjs +2 -2
  3. package/dist/build/analyze.js +1 -1
  4. package/dist/build/bundler.cjs +5 -5
  5. package/dist/build/bundler.js +1 -1
  6. package/dist/build/index.cjs +24 -20
  7. package/dist/build/index.d.ts +1 -1
  8. package/dist/build/index.d.ts.map +1 -1
  9. package/dist/build/index.js +5 -5
  10. package/dist/build/utils.d.ts +7 -0
  11. package/dist/build/utils.d.ts.map +1 -1
  12. package/dist/bundler/index.cjs +3 -3
  13. package/dist/bundler/index.js +1 -1
  14. package/dist/{chunk-N5CQWHN3.cjs → chunk-2GJY6H6M.cjs} +11 -11
  15. package/dist/{chunk-N5CQWHN3.cjs.map → chunk-2GJY6H6M.cjs.map} +1 -1
  16. package/dist/{chunk-FHLWDI5H.js → chunk-6ARGMWNC.js} +3 -3
  17. package/dist/{chunk-FHLWDI5H.js.map → chunk-6ARGMWNC.js.map} +1 -1
  18. package/dist/{chunk-3GTT2N4V.cjs → chunk-FR6IK3FQ.cjs} +14 -14
  19. package/dist/{chunk-3GTT2N4V.cjs.map → chunk-FR6IK3FQ.cjs.map} +1 -1
  20. package/dist/{chunk-ULWJZHTN.js → chunk-I7PL3OZ7.js} +6 -6
  21. package/dist/{chunk-ULWJZHTN.js.map → chunk-I7PL3OZ7.js.map} +1 -1
  22. package/dist/{chunk-VNJLLLQN.cjs → chunk-ILNCPWNL.cjs} +7 -7
  23. package/dist/{chunk-VNJLLLQN.cjs.map → chunk-ILNCPWNL.cjs.map} +1 -1
  24. package/dist/{chunk-7YI2AEFO.cjs → chunk-JZRFRUGM.cjs} +6 -2
  25. package/dist/chunk-JZRFRUGM.cjs.map +1 -0
  26. package/dist/{chunk-4MVAT24Z.js → chunk-LJBNHINW.js} +4 -4
  27. package/dist/{chunk-4MVAT24Z.js.map → chunk-LJBNHINW.js.map} +1 -1
  28. package/dist/{chunk-YG455MPH.js → chunk-THSS3CYX.js} +6 -6
  29. package/dist/{chunk-YG455MPH.js.map → chunk-THSS3CYX.js.map} +1 -1
  30. package/dist/{chunk-CCBU3OII.js → chunk-UA2DJWFT.js} +3 -3
  31. package/dist/{chunk-CCBU3OII.js.map → chunk-UA2DJWFT.js.map} +1 -1
  32. package/dist/{chunk-ANDDGKY5.js → chunk-WP65JQAT.js} +6 -3
  33. package/dist/chunk-WP65JQAT.js.map +1 -0
  34. package/dist/{chunk-EU74XSTG.cjs → chunk-YMYRP2K7.cjs} +24 -24
  35. package/dist/{chunk-EU74XSTG.cjs.map → chunk-YMYRP2K7.cjs.map} +1 -1
  36. package/dist/{chunk-IMPHNLMW.cjs → chunk-YWKYOGOS.cjs} +52 -52
  37. package/dist/{chunk-IMPHNLMW.cjs.map → chunk-YWKYOGOS.cjs.map} +1 -1
  38. package/dist/docs/SKILL.md +1 -1
  39. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  40. package/dist/index.cjs +4 -4
  41. package/dist/index.js +2 -2
  42. package/dist/server/index.cjs +18 -14
  43. package/dist/server/index.cjs.map +1 -1
  44. package/dist/server/index.d.ts.map +1 -1
  45. package/dist/server/index.js +15 -11
  46. package/dist/server/index.js.map +1 -1
  47. package/dist/server/welcome.d.ts.map +1 -1
  48. package/dist/validator/custom-resolver.cjs +3 -3
  49. package/dist/validator/custom-resolver.js +1 -1
  50. package/package.json +7 -7
  51. package/dist/chunk-7YI2AEFO.cjs.map +0 -1
  52. package/dist/chunk-ANDDGKY5.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","MAX_FS_SUBAGENT_DEPTH","mkdir","writeFile","cp"],"mappings":"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","file":"chunk-EU74XSTG.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 analysisEntries = [entryFile],\n }: { sourcemap?: boolean; bundlerOptions?: BundlerOptions; analysisEntries?: string[] } = {},\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 analysisEntries,\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 { MAX_FS_SUBAGENT_DEPTH } from '@mastra/core/agent';\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 may declare their own `subagents/`, up to `MAX_FS_SUBAGENT_DEPTH`\n * levels below the top-level agent; deeper `subagents/` directories are\n * 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 declared `subagents/`. Returns\n * `undefined` when `dir` is not an agent directory (no `config.(ts|js)` and no\n * `instructions.md`).\n *\n * `depth` is the subagent nesting level (`0` for top-level agents). Discovery\n * recurses into `subagents/` until `MAX_FS_SUBAGENT_DEPTH`; deeper directories\n * are ignored with a warning.\n */\nasync function discoverAgentDir(\n dir: string,\n name: string,\n depth: number,\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, depth, 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/*`. `parentDepth` is the\n * parent agent's nesting level (`0` for top-level agents). Discovery recurses\n * until `MAX_FS_SUBAGENT_DEPTH` levels of subagents; a `subagents/` directory\n * that would exceed the cap is skipped with a warning.\n */\nasync function discoverSubagents(\n parentDir: string,\n parentDepth: number,\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 (parentDepth >= MAX_FS_SUBAGENT_DEPTH) {\n onWarn?.(\n `Ignoring subagents in \"${slash(subagentsDir)}\": subagents may only nest ${MAX_FS_SUBAGENT_DEPTH} levels below a top-level agent.`,\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, parentDepth + 1, 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 agent may declare\n * `subagents/` up to `MAX_FS_SUBAGENT_DEPTH` levels deep. Returns descriptors\n * with absolute, slash-normalized paths ready for codegen. Performs no module\n * evaluation — 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, 0, 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. Discovered subagents are emitted recursively as a nested\n * `subagents: [...]` field (discovery already enforces the depth cap).\n */\nasync function emitAgentEntry(\n agent: DiscoveredFsAgent,\n idPath: string,\n workspaceName: string,\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. Each is itself an `assembleAgentFromFsEntry` entry\n // object, recursively carrying its own `subagents`.\n const subagentExprs: string[] = [];\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}`, lines);\n subagentExprs.push(childExpr);\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 (nested up to `MAX_FS_SUBAGENT_DEPTH`),\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 = (function check(list: DiscoveredFsAgent[]): boolean {\n return list.some(a => (a.skills ?? []).some(s => s.kind === 'packaged') || check(a.subagents ?? []));\n })(agents);\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, 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","MAX_FS_SUBAGENT_DEPTH","mkdir","writeFile","cp"],"mappings":"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","file":"chunk-YMYRP2K7.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 analysisEntries = [entryFile],\n }: { sourcemap?: boolean; bundlerOptions?: BundlerOptions; analysisEntries?: string[] } = {},\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 analysisEntries,\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 { MAX_FS_SUBAGENT_DEPTH } from '@mastra/core/agent';\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 may declare their own `subagents/`, up to `MAX_FS_SUBAGENT_DEPTH`\n * levels below the top-level agent; deeper `subagents/` directories are\n * 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 declared `subagents/`. Returns\n * `undefined` when `dir` is not an agent directory (no `config.(ts|js)` and no\n * `instructions.md`).\n *\n * `depth` is the subagent nesting level (`0` for top-level agents). Discovery\n * recurses into `subagents/` until `MAX_FS_SUBAGENT_DEPTH`; deeper directories\n * are ignored with a warning.\n */\nasync function discoverAgentDir(\n dir: string,\n name: string,\n depth: number,\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, depth, 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/*`. `parentDepth` is the\n * parent agent's nesting level (`0` for top-level agents). Discovery recurses\n * until `MAX_FS_SUBAGENT_DEPTH` levels of subagents; a `subagents/` directory\n * that would exceed the cap is skipped with a warning.\n */\nasync function discoverSubagents(\n parentDir: string,\n parentDepth: number,\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 (parentDepth >= MAX_FS_SUBAGENT_DEPTH) {\n onWarn?.(\n `Ignoring subagents in \"${slash(subagentsDir)}\": subagents may only nest ${MAX_FS_SUBAGENT_DEPTH} levels below a top-level agent.`,\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, parentDepth + 1, 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 agent may declare\n * `subagents/` up to `MAX_FS_SUBAGENT_DEPTH` levels deep. Returns descriptors\n * with absolute, slash-normalized paths ready for codegen. Performs no module\n * evaluation — 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, 0, 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. Discovered subagents are emitted recursively as a nested\n * `subagents: [...]` field (discovery already enforces the depth cap).\n */\nasync function emitAgentEntry(\n agent: DiscoveredFsAgent,\n idPath: string,\n workspaceName: string,\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. Each is itself an `assembleAgentFromFsEntry` entry\n // object, recursively carrying its own `subagents`.\n const subagentExprs: string[] = [];\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}`, lines);\n subagentExprs.push(childExpr);\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 (nested up to `MAX_FS_SUBAGENT_DEPTH`),\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 = (function check(list: DiscoveredFsAgent[]): boolean {\n return list.some(a => (a.skills ?? []).some(s => s.kind === 'packaged') || check(a.subagents ?? []));\n })(agents);\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, 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 chunkN5CQWHN3_cjs = require('./chunk-N5CQWHN3.cjs');
4
- var chunk7YI2AEFO_cjs = require('./chunk-7YI2AEFO.cjs');
3
+ var chunk2GJY6H6M_cjs = require('./chunk-2GJY6H6M.cjs');
4
+ var chunkJZRFRUGM_cjs = require('./chunk-JZRFRUGM.cjs');
5
5
  var fs = require('fs');
6
6
  var promises = require('fs/promises');
7
7
  var path = require('path');
@@ -156,7 +156,7 @@ async function getWorkspaceInformation({
156
156
  mastraEntryFile
157
157
  }) {
158
158
  const closestPkgJson = pkg__namespace.up({ cwd: path.dirname(mastraEntryFile) });
159
- const location = closestPkgJson ? path.dirname(chunk7YI2AEFO_cjs.slash(closestPkgJson)) : chunk7YI2AEFO_cjs.slash(process.cwd());
159
+ const location = closestPkgJson ? path.dirname(chunkJZRFRUGM_cjs.slash(closestPkgJson)) : chunkJZRFRUGM_cjs.slash(process.cwd());
160
160
  const workspaces = await findWorkspaces.findWorkspaces(dir, { cache: workspacesCache });
161
161
  const _workspaceMap = new Map(
162
162
  workspaces?.map((workspace) => [
@@ -298,22 +298,22 @@ function getInputPlugins({ entry, isVirtualFile }, mastraEntry, { sourcemapEnabl
298
298
  }
299
299
  plugins.push(
300
300
  ...[
301
- chunkN5CQWHN3_cjs.protocolExternalResolver(),
302
- chunkN5CQWHN3_cjs.mastraInternalAliasPlugin(mastraEntry),
303
- chunkN5CQWHN3_cjs.mastraToolsAliasPlugin(),
304
- chunkN5CQWHN3_cjs.tsConfigPaths(),
301
+ chunk2GJY6H6M_cjs.protocolExternalResolver(),
302
+ chunk2GJY6H6M_cjs.mastraInternalAliasPlugin(mastraEntry),
303
+ chunk2GJY6H6M_cjs.mastraToolsAliasPlugin(),
304
+ chunk2GJY6H6M_cjs.tsConfigPaths(),
305
305
  json__default.default(),
306
- chunkN5CQWHN3_cjs.esbuild(),
306
+ chunk2GJY6H6M_cjs.esbuild(),
307
307
  commonjs__default.default({
308
308
  strictRequires: "debug",
309
309
  ignoreTryCatch: false,
310
310
  transformMixedEsModules: true,
311
311
  extensions: [".js", ".ts"]
312
312
  }),
313
- chunkN5CQWHN3_cjs.removeDeployer(mastraEntry, {
313
+ chunk2GJY6H6M_cjs.removeDeployer(mastraEntry, {
314
314
  sourcemap: sourcemapEnabled
315
315
  }),
316
- chunkN5CQWHN3_cjs.esbuild()
316
+ chunk2GJY6H6M_cjs.esbuild()
317
317
  ]
318
318
  );
319
319
  return plugins;
@@ -331,25 +331,25 @@ async function captureDependenciesToOptimize(output, workspaceMap, projectRoot,
331
331
  }
332
332
  let entryRootPath = projectRoot;
333
333
  if (!output.facadeModuleId.startsWith("\0virtual:")) {
334
- entryRootPath = await chunkN5CQWHN3_cjs.getPackageRootPath(output.facadeModuleId) || projectRoot;
334
+ entryRootPath = await chunk2GJY6H6M_cjs.getPackageRootPath(output.facadeModuleId) || projectRoot;
335
335
  }
336
336
  for (const [dependency, bindings] of Object.entries(output.importedBindings)) {
337
- if (!chunk7YI2AEFO_cjs.isBareModuleSpecifier(dependency)) {
337
+ if (!chunkJZRFRUGM_cjs.isBareModuleSpecifier(dependency)) {
338
338
  continue;
339
339
  }
340
- const pkgName = chunk7YI2AEFO_cjs.getPackageName(dependency);
340
+ const pkgName = chunkJZRFRUGM_cjs.getPackageName(dependency);
341
341
  let rootPath = null;
342
342
  let isWorkspace = false;
343
343
  let version;
344
344
  let packageSpec;
345
345
  if (pkgName) {
346
- const metadata = await chunkN5CQWHN3_cjs.getPackageMetadata(dependency, entryRootPath);
346
+ const metadata = await chunk2GJY6H6M_cjs.getPackageMetadata(dependency, entryRootPath);
347
347
  rootPath = metadata.rootPath;
348
348
  version = metadata.version;
349
349
  packageSpec = metadata.packageSpec;
350
350
  isWorkspace = workspaceMap.has(pkgName);
351
351
  }
352
- const normalizedRootPath = rootPath ? chunk7YI2AEFO_cjs.slash(rootPath) : null;
352
+ const normalizedRootPath = rootPath ? chunkJZRFRUGM_cjs.slash(rootPath) : null;
353
353
  depsToOptimize.set(dependency, {
354
354
  exports: bindings,
355
355
  rootPath: normalizedRootPath,
@@ -422,20 +422,20 @@ async function captureDependenciesToOptimize(output, workspaceMap, projectRoot,
422
422
  const dynamicImports = output.dynamicImports.filter((d) => !DEPS_TO_IGNORE.includes(d));
423
423
  if (dynamicImports.length) {
424
424
  for (const dynamicImport of dynamicImports) {
425
- if (!depsToOptimize.has(dynamicImport) && chunk7YI2AEFO_cjs.isBareModuleSpecifier(dynamicImport)) {
426
- const pkgName = chunk7YI2AEFO_cjs.getPackageName(dynamicImport);
425
+ if (!depsToOptimize.has(dynamicImport) && chunkJZRFRUGM_cjs.isBareModuleSpecifier(dynamicImport)) {
426
+ const pkgName = chunkJZRFRUGM_cjs.getPackageName(dynamicImport);
427
427
  let version;
428
428
  let packageSpec;
429
429
  let rootPath = null;
430
430
  if (pkgName) {
431
- const metadata = await chunkN5CQWHN3_cjs.getPackageMetadata(dynamicImport, entryRootPath);
431
+ const metadata = await chunk2GJY6H6M_cjs.getPackageMetadata(dynamicImport, entryRootPath);
432
432
  rootPath = metadata.rootPath;
433
433
  version = metadata.version;
434
434
  packageSpec = metadata.packageSpec;
435
435
  }
436
436
  depsToOptimize.set(dynamicImport, {
437
437
  exports: ["*"],
438
- rootPath: rootPath ? chunk7YI2AEFO_cjs.slash(rootPath) : null,
438
+ rootPath: rootPath ? chunkJZRFRUGM_cjs.slash(rootPath) : null,
439
439
  isWorkspace: false,
440
440
  version,
441
441
  packageSpec
@@ -458,7 +458,7 @@ async function analyzeEntry({
458
458
  shouldCheckTransitiveDependencies = false,
459
459
  analyzeCache
460
460
  }) {
461
- const cacheKey = isVirtualFile ? void 0 : chunk7YI2AEFO_cjs.slash(entry);
461
+ const cacheKey = isVirtualFile ? void 0 : chunkJZRFRUGM_cjs.slash(entry);
462
462
  if (cacheKey && analyzeCache?.has(cacheKey)) {
463
463
  return analyzeCache.get(cacheKey);
464
464
  }
@@ -520,7 +520,7 @@ function moduleResolveMap(externals, projectRoot) {
520
520
  }
521
521
  for (const importedId of info.importedIds) {
522
522
  for (const external of externals) {
523
- if (chunk7YI2AEFO_cjs.isDependencyPartOfPackage(importedId, external)) {
523
+ if (chunkJZRFRUGM_cjs.isDependencyPartOfPackage(importedId, external)) {
524
524
  importMap.set(external, info.id);
525
525
  }
526
526
  }
@@ -532,9 +532,9 @@ function moduleResolveMap(externals, projectRoot) {
532
532
  if (chunk.type === "chunk") {
533
533
  for (const [external, resolvedFrom] of importMap) {
534
534
  if (chunk.moduleIds.includes(resolvedFrom)) {
535
- const fullPath = url.pathToFileURL(chunk7YI2AEFO_cjs.slash(path.join(projectRoot, fileName))).toString();
535
+ const fullPath = url.pathToFileURL(chunkJZRFRUGM_cjs.slash(path.join(projectRoot, fileName))).toString();
536
536
  const innerMap = resolveMap.get(fullPath) || /* @__PURE__ */ new Map();
537
- innerMap.set(external, url.pathToFileURL(chunk7YI2AEFO_cjs.slash(resolvedFrom)).toString());
537
+ innerMap.set(external, url.pathToFileURL(chunkJZRFRUGM_cjs.slash(resolvedFrom)).toString());
538
538
  resolveMap.set(fullPath, innerMap);
539
539
  }
540
540
  }
@@ -600,7 +600,7 @@ function nodeGypDetector() {
600
600
 
601
601
  // src/build/analyze/bundleExternals.ts
602
602
  function prepareEntryFileName(name, rootDir) {
603
- return chunk7YI2AEFO_cjs.rollupSafeName(name, rootDir);
603
+ return chunkJZRFRUGM_cjs.rollupSafeName(name, rootDir);
604
604
  }
605
605
  function createVirtualDependencies(depsToOptimize, {
606
606
  projectRoot,
@@ -650,7 +650,7 @@ function createVirtualDependencies(depsToOptimize, {
650
650
  continue;
651
651
  }
652
652
  const fileName = posix.basename(currentDepPath.name);
653
- const entryName = prepareEntryFileName(chunk7YI2AEFO_cjs.getCompiledDepCachePath(rootPath, fileName), rootDir);
653
+ const entryName = prepareEntryFileName(chunkJZRFRUGM_cjs.getCompiledDepCachePath(rootPath, fileName), rootDir);
654
654
  fileNameToDependencyMap.set(entryName, dep);
655
655
  optimizedDependencyEntries.set(dep, {
656
656
  ...currentDepPath,
@@ -670,9 +670,9 @@ async function getInputPlugins2(virtualDependencies, {
670
670
  }) {
671
671
  const transpilePackagesMap = /* @__PURE__ */ new Map();
672
672
  for (const pkg2 of transpilePackages) {
673
- const dir = await chunkN5CQWHN3_cjs.getPackageRootPath(pkg2);
673
+ const dir = await chunk2GJY6H6M_cjs.getPackageRootPath(pkg2);
674
674
  if (dir) {
675
- transpilePackagesMap.set(pkg2, chunk7YI2AEFO_cjs.slash(dir));
675
+ transpilePackagesMap.set(pkg2, chunkJZRFRUGM_cjs.slash(dir));
676
676
  } else {
677
677
  transpilePackagesMap.set(pkg2, workspaceMap.get(pkg2)?.location ?? pkg2);
678
678
  }
@@ -687,10 +687,10 @@ async function getInputPlugins2(virtualDependencies, {
687
687
  {}
688
688
  )
689
689
  ),
690
- chunkN5CQWHN3_cjs.tsConfigPaths(),
691
- chunkN5CQWHN3_cjs.protocolExternalResolver(),
692
- chunkN5CQWHN3_cjs.subpathExternalsResolver(externals),
693
- transpilePackagesMap.size ? chunkN5CQWHN3_cjs.esbuild({
690
+ chunk2GJY6H6M_cjs.tsConfigPaths(),
691
+ chunk2GJY6H6M_cjs.protocolExternalResolver(),
692
+ chunk2GJY6H6M_cjs.subpathExternalsResolver(externals),
693
+ transpilePackagesMap.size ? chunk2GJY6H6M_cjs.esbuild({
694
694
  format: "esm",
695
695
  include: [
696
696
  // Match files from transpilePackages by their actual directory paths
@@ -745,8 +745,8 @@ async function getInputPlugins2(virtualDependencies, {
745
745
  transformMixedEsModules: true,
746
746
  ignoreTryCatch: false
747
747
  }),
748
- bundlerOptions.noBundling ? null : nodeResolve__default.default(chunk7YI2AEFO_cjs.getNodeResolveOptions(platform)),
749
- bundlerOptions.noBundling ? chunkN5CQWHN3_cjs.esmShim() : null,
748
+ bundlerOptions.noBundling ? null : nodeResolve__default.default(chunkJZRFRUGM_cjs.getNodeResolveOptions(platform)),
749
+ bundlerOptions.noBundling ? chunk2GJY6H6M_cjs.esmShim() : null,
750
750
  // hono is imported from deployer, so we need to resolve from here instead of the project root
751
751
  aliasHono(),
752
752
  json__default.default(),
@@ -839,9 +839,9 @@ async function buildExternalDependencies(virtualDependencies, {
839
839
  if (noBundling) {
840
840
  const importedFromPackages = /* @__PURE__ */ new Set();
841
841
  for (const moduleId of chunkInfo.moduleIds) {
842
- const normalized = chunk7YI2AEFO_cjs.slash(moduleId);
842
+ const normalized = chunkJZRFRUGM_cjs.slash(moduleId);
843
843
  for (const [pkgName, pkgInfo] of workspaceMap.entries()) {
844
- const location = chunk7YI2AEFO_cjs.slash(pkgInfo.location);
844
+ const location = chunkJZRFRUGM_cjs.slash(pkgInfo.location);
845
845
  if (normalized.startsWith(location)) {
846
846
  importedFromPackages.add(pkgName);
847
847
  break;
@@ -863,7 +863,7 @@ async function buildExternalDependencies(virtualDependencies, {
863
863
  if (importedFromPackages.size === 1) {
864
864
  const [pkgName] = importedFromPackages;
865
865
  const workspaceLocation = workspaceMap.get(pkgName).location;
866
- return prepareEntryFileName(chunk7YI2AEFO_cjs.getCompiledDepCachePath(workspaceLocation, "[name].mjs"), rootDir);
866
+ return prepareEntryFileName(chunkJZRFRUGM_cjs.getCompiledDepCachePath(workspaceLocation, "[name].mjs"), rootDir);
867
867
  }
868
868
  }
869
869
  return `${outputDirRelative}/[name].mjs`;
@@ -881,7 +881,7 @@ function findExternalImporter(module, external, allOutputs, visited = /* @__PURE
881
881
  visited.add(module.fileName);
882
882
  const capturedFiles = /* @__PURE__ */ new Set();
883
883
  for (const id of [...module.imports, ...module.dynamicImports]) {
884
- if (chunk7YI2AEFO_cjs.isDependencyPartOfPackage(id, external)) {
884
+ if (chunkJZRFRUGM_cjs.isDependencyPartOfPackage(id, external)) {
885
885
  return module;
886
886
  } else {
887
887
  if (id.endsWith(".mjs")) {
@@ -1143,18 +1143,18 @@ async function resolveDependencyInfo(dep, existing, parentPaths) {
1143
1143
  if (existing?.version || existing?.packageSpec) {
1144
1144
  return existing;
1145
1145
  }
1146
- const packageName = chunk7YI2AEFO_cjs.getPackageName(dep);
1146
+ const packageName = chunkJZRFRUGM_cjs.getPackageName(dep);
1147
1147
  const packageNames = [...new Set([dep, packageName].filter(Boolean))];
1148
1148
  for (const parentPath of parentPaths) {
1149
1149
  for (const name of packageNames) {
1150
- const metadata = await chunkN5CQWHN3_cjs.getPackageMetadata(name, parentPath);
1150
+ const metadata = await chunk2GJY6H6M_cjs.getPackageMetadata(name, parentPath);
1151
1151
  if (metadata.version || metadata.packageSpec) {
1152
1152
  return preferDependencyInfo(existing, metadata);
1153
1153
  }
1154
1154
  }
1155
1155
  }
1156
1156
  for (const name of packageNames) {
1157
- const metadata = await chunkN5CQWHN3_cjs.getPackageMetadata(name);
1157
+ const metadata = await chunk2GJY6H6M_cjs.getPackageMetadata(name);
1158
1158
  if (metadata.version || metadata.packageSpec) {
1159
1159
  return preferDependencyInfo(existing, metadata);
1160
1160
  }
@@ -1323,10 +1323,10 @@ async function validateOutput({
1323
1323
  ];
1324
1324
  for (const deps of Object.values(usedExternals)) {
1325
1325
  for (const [dep, importerId] of Object.entries(deps)) {
1326
- if (chunk7YI2AEFO_cjs.isExternalProtocolImport(dep)) {
1326
+ if (chunkJZRFRUGM_cjs.isExternalProtocolImport(dep)) {
1327
1327
  continue;
1328
1328
  }
1329
- const pkgName = chunk7YI2AEFO_cjs.getPackageName(dep);
1329
+ const pkgName = chunkJZRFRUGM_cjs.getPackageName(dep);
1330
1330
  if (pkgName) {
1331
1331
  const versionInfo = depsVersionInfo.get(dep) || depsVersionInfo.get(pkgName);
1332
1332
  const dependencyInfo = await resolveDependencyInfo(
@@ -1418,9 +1418,9 @@ async function analyzeBundle(entries, mastraEntry, {
1418
1418
  });
1419
1419
  await promises.writeFile(path.join(outputDir, `entry-${index++}.mjs`), analyzeResult.output.code);
1420
1420
  for (const [dep, metadata] of analyzeResult.dependencies.entries()) {
1421
- const isPartOfExternals = allExternals.some((external) => chunk7YI2AEFO_cjs.isDependencyPartOfPackage(dep, external));
1421
+ const isPartOfExternals = allExternals.some((external) => chunkJZRFRUGM_cjs.isDependencyPartOfPackage(dep, external));
1422
1422
  if (isPartOfExternals || externalsPreset && !metadata.isWorkspace) {
1423
- const pkgName = chunk7YI2AEFO_cjs.getPackageName(dep);
1423
+ const pkgName = chunkJZRFRUGM_cjs.getPackageName(dep);
1424
1424
  if (pkgName) {
1425
1425
  allUsedExternals.set(pkgName, preferDependencyInfo(allUsedExternals.get(pkgName), metadata));
1426
1426
  }
@@ -1441,7 +1441,7 @@ async function analyzeBundle(entries, mastraEntry, {
1441
1441
  }
1442
1442
  const depsVersionInfo = /* @__PURE__ */ new Map();
1443
1443
  for (const [dep, metadata] of depsToOptimize.entries()) {
1444
- const pkgName = chunk7YI2AEFO_cjs.getPackageName(dep);
1444
+ const pkgName = chunkJZRFRUGM_cjs.getPackageName(dep);
1445
1445
  if (pkgName && (metadata.version || metadata.packageSpec)) {
1446
1446
  depsVersionInfo.set(pkgName, preferDependencyInfo(depsVersionInfo.get(pkgName), metadata));
1447
1447
  }
@@ -1471,7 +1471,7 @@ async function analyzeBundle(entries, mastraEntry, {
1471
1471
  platform
1472
1472
  });
1473
1473
  const relativeWorkspaceFolderPaths = Array.from(workspaceMap.values()).map(
1474
- (pkgInfo) => chunk7YI2AEFO_cjs.slash(path.relative(workspaceRoot || projectRoot, pkgInfo.location))
1474
+ (pkgInfo) => chunkJZRFRUGM_cjs.slash(path.relative(workspaceRoot || projectRoot, pkgInfo.location))
1475
1475
  );
1476
1476
  for (const o of output) {
1477
1477
  if (o.type === "asset") {
@@ -1479,19 +1479,19 @@ async function analyzeBundle(entries, mastraEntry, {
1479
1479
  }
1480
1480
  const importerId = getLastConcreteModuleId(o.moduleIds);
1481
1481
  for (const i of o.imports) {
1482
- if (chunk7YI2AEFO_cjs.isBuiltinModule(i)) {
1482
+ if (chunkJZRFRUGM_cjs.isBuiltinModule(i)) {
1483
1483
  continue;
1484
1484
  }
1485
1485
  if (i.startsWith(".") || i.startsWith("/")) {
1486
1486
  continue;
1487
1487
  }
1488
- if (!chunk7YI2AEFO_cjs.isBareModuleSpecifier(i) || chunk7YI2AEFO_cjs.isExternalProtocolImport(i)) {
1488
+ if (!chunkJZRFRUGM_cjs.isBareModuleSpecifier(i) || chunkJZRFRUGM_cjs.isExternalProtocolImport(i)) {
1489
1489
  continue;
1490
1490
  }
1491
1491
  if (relativeWorkspaceFolderPaths.some((workspacePath) => i.startsWith(workspacePath))) {
1492
1492
  continue;
1493
1493
  }
1494
- const pkgName = chunk7YI2AEFO_cjs.getPackageName(i);
1494
+ const pkgName = chunkJZRFRUGM_cjs.getPackageName(i);
1495
1495
  if (pkgName) {
1496
1496
  const versionInfo = depsVersionInfo.get(i) || depsVersionInfo.get(pkgName);
1497
1497
  const dependencyInfo = await resolveDependencyInfo(
@@ -1520,7 +1520,7 @@ async function analyzeBundle(entries, mastraEntry, {
1520
1520
  );
1521
1521
  const mergedExternalDeps = new Map(result.externalDependencies);
1522
1522
  for (const [dep, info] of allUsedExternals) {
1523
- if (chunk7YI2AEFO_cjs.isExternalProtocolImport(dep)) {
1523
+ if (chunkJZRFRUGM_cjs.isExternalProtocolImport(dep)) {
1524
1524
  continue;
1525
1525
  }
1526
1526
  mergedExternalDeps.set(dep, preferDependencyInfo(mergedExternalDeps.get(dep), info));
@@ -1557,5 +1557,5 @@ async function analyzeBundle(entries, mastraEntry, {
1557
1557
  exports.aliasHono = aliasHono;
1558
1558
  exports.analyzeBundle = analyzeBundle;
1559
1559
  exports.getWorkspaceInformation = getWorkspaceInformation;
1560
- //# sourceMappingURL=chunk-IMPHNLMW.cjs.map
1561
- //# sourceMappingURL=chunk-IMPHNLMW.cjs.map
1560
+ //# sourceMappingURL=chunk-YWKYOGOS.cjs.map
1561
+ //# sourceMappingURL=chunk-YWKYOGOS.cjs.map